{"version":3,"file":"vendorFluentUI.f6d45c2bfa28a6f6564c.js","mappings":"uJAAO,IAAIA,EAAgB,CACvBC,qBAAsB,MACtBC,mBAAoB,IACpBC,mBAAoB,IACpBC,qBAAsB,KACtBC,oBAAqB,KACrBC,gBAAiB,KACjBC,iBAAkB,GAClBC,cAAe,EACfC,eAAgB,GAChBC,cAAe,GACfC,mBAAoB,GACpBC,qBAAsB,GAQtBC,gBAAiB,sC,kDCZd,SAASC,EAAgBC,EAAQC,EAAOC,QACf,IAAxBA,IAAkCA,GAAsB,GAC5D,IAAIC,GAAc,EAClB,GAAIH,GAAUC,EACV,GAAIC,EACA,GAAIF,IAAWC,EACXE,GAAc,OAId,IADAA,GAAc,EACPF,GAAO,CACV,IAAIG,GAAa,OAAUH,GAC3B,GAAIG,IAAeJ,EAAQ,CACvBG,GAAc,EACd,KACJ,CACAF,EAAQG,CACZ,MAGCJ,EAAOK,WACZF,EAAcH,EAAOK,SAASJ,IAGtC,OAAOE,CACX,C,kDC1BO,SAASG,EAAqBC,EAASC,GAC1C,OAAKD,GAAWA,IAAYE,SAASC,KAG9BF,EAAcD,GAAWA,EAAUD,GAAqB,OAAUC,GAAUC,GAFxE,IAGf,C,kDCJO,SAASG,EAAUV,EAAOC,GAE7B,YAD4B,IAAxBA,IAAkCA,GAAsB,GACpDD,IACFC,GCLH,SAA0BD,GAC7B,IAAID,EAIJ,OAHIC,IAAS,EAAAW,EAAA,GAAiBX,KAC1BD,EAASC,EAAMY,SAASb,QAErBA,CACX,CDDiCc,CAAiBb,IAAYA,EAAMc,YAAcd,EAAMc,WACxF,C,kBEPO,SAASH,EAAiBL,GAC7B,OAAOA,KAAaA,EAAQM,QAChC,C,4ECGO,SAASG,EAAsBC,EAAQjB,GAC1C,IAAIkB,GAAe,OAAqBD,GAAQ,SAAUE,GAAe,OAAOnB,IAAWmB,GAAeA,EAAYC,aAAa,IAAwB,IAC3J,OAAwB,OAAjBF,GAAyBA,EAAaE,aAAa,IAC9D,C,2CCbO,IAAIC,EAAwB,sBAK5B,SAASC,EAAmBf,GAC/BA,EAAQgB,aAAaF,EAAuB,OAChD,C,mHCkBO,SAASG,EAAgBC,EAAMC,QAClB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIC,EAAKD,EAAQE,eACbC,QADqD,IAAPF,EAAgB,CAAC,EAAIA,GACtCE,YAC7BC,EAAkB,SAAUC,GAC5B,IAmEoBC,EAAaC,EAASC,EAI1CC,EAvEIC,GAmEgBJ,EAnEcN,EAAQM,YAmETC,EAnEsB,aAAiB,KAmE9BC,EAnEkDR,EAAQQ,OAuEpGC,EAAgB,CAAC,QAAS,SAAU,UACjC,IAAeE,YAAYH,GAAUC,EAAeH,EAAaC,EAAQK,iBAvExEC,EAAeb,EAAQc,MACvBD,IAEAR,GAAiB,SAAS,QAAS,CAAC,EAAGA,GAAiBQ,EAAaR,KAEzE,IAAIU,EAAQV,EAAeU,OAASL,EAASK,MACzCC,EAASC,EAAeZ,EAAgBU,EAAOf,EAAQgB,OAAQN,EAASM,OAAQX,EAAeW,QAC/FE,EAkBZ,SAAwBC,EAAOJ,EAAOC,GAElC,IADA,IAAII,EAAY,GACPC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAUC,EAAK,GAAKC,UAAUD,GAElC,OAAO,KAAgBG,WAAM,EAAQJ,EAAUK,KAAI,SAAUP,GACzD,MAAyB,mBAAXA,EAAwBA,EAAOC,EAAOJ,EAAOC,GAAUE,CACzE,IACJ,CA1BqBQ,CAAerB,EAAgBU,EAAOC,EAAQhB,EAAQkB,OAAQR,EAASQ,OAAQb,EAAea,QACvGS,GAAY,SAAS,QAAS,CAAC,EAAGtB,GAAiB,CAAEa,OAAQA,EAAQF,OAAQA,EAAQY,eAAgBV,EAAQH,MAAOA,IACxH,OAAOhB,EAAK4B,EAChB,EAUA,OATAvB,EAAgBE,YAAcN,EAAQM,aAAeP,EAAK8B,KAItD1B,IACAC,EAAgB0B,QAAS,QAAc1B,EAAiB,CAAED,YAAaA,MAE3E,OAAOC,EAAiBJ,EAAQ+B,SAEzB3B,CACX,CAgBA,SAASa,EAAeE,EAAOJ,GAE3B,IADA,IAAIiB,EAAY,GACPX,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCW,EAAUX,EAAK,GAAKC,UAAUD,GAGlC,IADA,IAAIL,EAAS,CAAC,EACLf,EAAK,EAAGgC,EAAcD,EAAW/B,EAAKgC,EAAYV,OAAQtB,IAAM,CACrE,IAAIiC,EAAgBD,EAAYhC,GAC5BiC,IAEAA,EAC6B,mBAAlBA,EACDA,EAAcf,EAAOJ,GACrBmB,EACNC,MAAMC,QAAQF,KACdA,EAAgBjB,EAAeO,WAAM,GAAQ,QAAc,CAACL,EAAOJ,GAAQmB,GAAe,MAE9F,OAAOlB,EAAQkB,GAEvB,CACA,OAAOlB,CACX,C,iICtEO,SAASqB,EAAUC,EAAMnB,GAE5B,IADA,IAAIoB,EAAW,GACNlB,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCkB,EAASlB,EAAK,GAAKC,UAAUD,GAEjC,IAAImB,EAAWF,EACf,OAAIE,EAASC,OAWe,KAHxBF,EAAW,WAAeG,QAAQH,IAGrBhB,OACFiB,EAASrB,GAEbqB,GAAS,SAAS,QAAS,CAAC,EAAGrB,GAAQ,CAAEoB,SAAUA,KASnD,gBAAoBf,MAAM,iBAAO,QAAc,CAACc,EAAMnB,GAAQoB,GAAU,GAEvF,CAOO,SAASI,EAAcC,EAAkB5C,QAC5B,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIC,EAAKD,EAAQG,YAAaA,OAAqB,IAAPF,EAAgB,WAAaA,EAqBzE,OApBa,SAAUI,EAAgBwC,EAAWC,EAAiBC,EAAehC,GAE9E,GAAI,iBAAqB8B,GACrB,OAAOA,EAEX,IAAIG,EAwEZ,SAA6B7C,EAAa8C,GACtC,IAAIhD,EACAiD,EASJ,MARyB,iBAAdD,GAA+C,iBAAdA,GAA+C,kBAAdA,IACrDhD,EAAK,CAAC,GACnBE,GAAe8C,EADtBC,EAEIjD,GAGJiD,EAAmBD,EAEhBC,CACX,CApFiCC,CAAoBhD,EAAa0C,GACtDO,EAuFZ,SAA8BL,EAAehC,GAEzC,IADA,IAAIsC,EAAW,GACNhC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCgC,EAAShC,EAAK,GAAKC,UAAUD,GAIjC,IAFA,IAAI+B,EAAa,CAAC,EACdE,EAAa,GACRrD,EAAK,EAAGsD,EAAaF,EAAUpD,EAAKsD,EAAWhC,OAAQtB,IAAM,CAClE,IAAIkB,EAAQoC,EAAWtD,GACvBqD,EAAWE,KAAKrC,GAASA,EAAMsC,YAC/B,OAAOL,EAAYjC,EACvB,CAEA,OADAiC,EAAWK,WAAY,OAAS,CAACV,EAAeO,GAAa,CAAEI,KAAK,QAAO3C,KACpEqC,CACX,CArGyBO,CAAqBZ,EAAehC,EAAOV,EAAgB2C,GAC5E,GAAIF,EAAiB,CACjB,GAAIA,EAAgBc,UAAW,CAG3B,IAAIC,EAAgBf,EAAgBc,UACpC,OAAO,gBAAoBC,GAAe,QAAS,CAAC,EAAGT,GAC3D,CACA,GAAIN,EAAgBgB,OAChB,OAAOhB,EAAgBgB,OAAOV,EAAYR,EAElD,CACA,OAAO,gBAAoBA,GAAkB,QAAS,CAAC,EAAGQ,GAC9D,CAEJ,CAIA,IAAIW,GAAiB,SAAgB,SAAUzB,GAAQ,OAAOK,EAAcL,EAAO,IAO5E,SAAS0B,EAASnB,EAAWoB,GAChC,IAAIC,EAAS,CAAC,EAEVC,EAAatB,EACbuB,EAAU,SAAUC,GACpB,GAAIJ,EAAMK,eAAeD,GAAS,CAK9B,IAAIE,EAAO,SAAUlE,GAEjB,IADA,IAAImE,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,EAAK,GAAKC,UAAUD,GAE7B,GAAImD,EAAKjD,OAAS,EAGd,MAAM,IAAIkD,MAAM,6FAMpB,OA2DhB,SAAqBC,EAAerE,EAAgBwC,EAAW8B,EAAa5B,EAAehC,GACvF,YAA6B6D,IAAzBF,EAAc5C,OACP4C,EAAc5C,OAAOzB,EAAgBwC,EAAW8B,EAAa5B,GAI7DgB,EAAeW,EAAfX,CAA8B1D,EAAgBwC,EAAW8B,EAAa5B,EAAehC,EAEpG,CAnEuB8D,CAAYZ,EAAMI,GAEzBhE,EAAgB8D,EAAWE,GAASF,EAAWF,OAASE,EAAWF,MAAMI,GAGzEF,EAAWvC,gBAAkBuC,EAAWvC,eAAeyC,GAASF,EAAWpD,MAC/E,EACAwD,EAAK9B,QAAS,EACdyB,EAAOG,GAAUE,CACrB,CACJ,EACA,IAAK,IAAIF,KAAUJ,EACfG,EAAQC,GAEZ,OAAOH,CACX,C,sCClIWY,E,SAAS,E,mCCepB,IAAIC,EAAgB,SAASC,EAAGC,GAI9B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBjD,OAAS,SAAU6C,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOC,OAAOI,UAAUhB,eAAeiB,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,GAAI,EAC7FN,EAAcC,EAAGC,EAC1B,EAUO,IAAIO,EAAW,WAQpB,OAPAA,EAAWN,OAAOJ,QAAU,SAAkBW,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAItE,UAAUC,OAAQoE,EAAIC,EAAGD,IAE5C,IAAK,IAAIN,KADTK,EAAIpE,UAAUqE,GACOT,OAAOI,UAAUhB,eAAeiB,KAAKG,EAAGL,KAAII,EAAEJ,GAAKK,EAAEL,IAE9E,OAAOI,CACX,EACOD,EAAShE,MAAMqE,KAAMvE,UAC9B,EAgH6B4D,OAAOpD,OA0GXoD,OAAOpD,OAyDkB,mBAApBgE,iBAAiCA,gB,IC7S3DC,E,yLARAC,EAAyB,oBAEzBC,EAAyB,oBACzBC,EAAW,WACXC,EAAmB,wBACnBC,EAAqB,0BACrBC,EAA6B,UAC7BC,GAAuC,UAM3C,SAASC,EAA4BhH,EAAQiH,GACzC,IAAIC,EACsB,mBAAfC,WACPD,EAAQ,IAAIC,WAAW,QAAS,CAC5BC,QAASH,aAA+B,EAASA,EAAGG,QACpDC,QAASJ,aAA+B,EAASA,EAAGI,QACpDC,SAAUL,aAA+B,EAASA,EAAGK,SACrDC,OAAQN,aAA+B,EAASA,EAAGM,OACnDC,QAASP,aAA+B,EAASA,EAAGO,QACpDC,WAAYR,aAA+B,EAASA,EAAGQ,cAI3DP,EAAQ1H,SAASkI,YAAY,gBAEvBC,eAAe,UAASV,GAAKA,EAAGO,UAAiBP,GAAKA,EAAGQ,WAAoBG,OACnF,EACA,EACA,EACA,EACA,IACAX,GAAKA,EAAGG,UAAiBH,GAAKA,EAAGM,SAAgBN,GAAKA,EAAGK,WAAkBL,GAAKA,EAAGI,QAAiB,EACpG,MAEJrH,EAAO6H,cAAcX,EACzB,CAcA,IAAIY,EAAgB,CAAC,EACjBC,EAAc,IAAIC,IAClBC,EAAsB,CAAC,OAAQ,SAAU,WAAY,QAAS,MAAO,MAAO,SAAU,YACtFC,GAAyB,EACzBC,EAA2B,SAAUC,GAErC,SAASD,EAAUvG,GACf,IACIlB,EAAI2H,EAAIC,EAAIC,EADZC,EAAQlC,MAEZkC,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,MAC9BmC,MAAQ,cACdD,EAAME,YAAa,EAAAC,EAAA,KACnBH,EAAMI,SAAW,SAAU3B,GACvB,IAAIuB,EAAMK,uBAAuB5B,EAAGjH,QAApC,CAIA,IAMI8I,EANApI,EAAK8H,EAAM5G,MAAOmH,EAAyBrI,EAAGqI,uBAElDC,EAAkCtI,EAAGsI,gCAAiCC,EAAuBvI,EAAGuI,qBAEhGC,EAAsBxI,EAAGwI,oBAAqBC,EAAUzI,EAAGyI,QAASC,EAA2C1I,EAAG0I,yCAA0CC,EAAyB3I,EAAG2I,uBACpLC,EAAwBd,EAAMe,6BAA6BtC,EAAGjH,QAElE,GAAIsJ,EACAR,EAAmB7B,EAAGjH,YAItB,IADA,IAAIwJ,EAAgBvC,EAAGjH,OAChBwJ,GAAiBA,IAAkBhB,EAAMC,MAAMgB,SAAS,CAC3D,IAAI,QAAkBD,IAAkBhB,EAAMe,6BAA6BC,GAAgB,CACvFV,EAAmBU,EACnB,KACJ,CACAA,GAAgB,EAAA9J,EAAA,GAAU8J,EAAetB,EAC7C,CAGJ,GAAIkB,GAA4CnC,EAAGjH,SAAWwI,EAAMC,MAAMgB,QAAS,CAC/E,IAAIC,EAAsBL,GACY,mBAA3BA,GACPb,EAAMC,MAAMgB,SACZJ,EAAuBb,EAAMC,MAAMgB,SAEnCC,IAAuB,QAAkBA,IACzCZ,EAAmBY,EACnBA,EAAoBC,UAIpBnB,EAAMmB,OAAM,GACRnB,EAAMoB,iBAENd,EAAmB,MAG/B,CACA,IAAIe,GAAyBrB,EAAMoB,eAG/Bd,GAAoBA,IAAqBN,EAAMoB,kBAC3CN,GAAyBO,IACzBrB,EAAMsB,mBAAmBhB,GAAkB,GAAM,GAErDN,EAAMoB,eAAiBd,EACnBe,GACArB,EAAMuB,qBAGVhB,GACAA,EAAuBP,EAAMoB,eAAgB3C,IAE7CgC,GAAwBD,IACxB/B,EAAG+C,kBAEHb,EACAA,EAAQlC,GAEHiC,GACLA,GA/DJ,CAiEJ,EACAV,EAAMyB,QAAU,WACZzB,EAAM0B,iBAAgB,EAC1B,EACA1B,EAAM2B,aAAe,SAAUlD,GAC3B,IAAIuB,EAAMK,uBAAuB5B,EAAGjH,UAIrBwI,EAAM5G,MAAMwI,SAC3B,CAKA,IAFA,IAAIpK,EAASiH,EAAGjH,OACZqK,EAAO,GACJrK,GAAUA,IAAWwI,EAAMC,MAAMgB,SACpCY,EAAKpG,KAAKjE,GACVA,GAAS,EAAAN,EAAA,GAAUM,EAAQkI,GAE/B,KAAOmC,EAAKrI,UACRhC,EAASqK,EAAKC,SACA,QAAkBtK,IAC5BwI,EAAM+B,kBAAkBvK,GAAQ,KAEhC,QAAmBA,MAZ3B,CAiBJ,EAIAwI,EAAMgC,WAAa,SAAUvD,EAAIzF,GAC7B,IAAIgH,EAAMK,uBAAuB5B,EAAGjH,QAApC,CAKA,IAAIU,EAAK8H,EAAM5G,MAAO6I,EAAY/J,EAAG+J,UAAWL,EAAW1J,EAAG0J,SAAUM,EAAuBhK,EAAGgK,qBAAsBC,EAAwBjK,EAAGiK,sBAAuBC,EAAuBlK,EAAGkK,qBACpM,KAAIR,IAGA5B,EAAM5G,MAAMiJ,WACZrC,EAAM5G,MAAMiJ,UAAU5D,GAGtBA,EAAG6D,sBAGHtC,EAAMuC,eAAeC,gBAAkBxC,EAAMC,MAAMgB,SAAWjB,EAAMyC,eAAxE,CAKA,IAAML,GAAwBA,EAAqB3D,IAASyD,GAAwBA,EAAqBzD,KACrGuB,EAAMe,6BAA6BtC,EAAGjH,QAAS,CAE/C,IAAIkL,EAAY1C,EAAM2C,qBACtB,GAAID,GACA,IAAKA,EAAUvB,OAAM,GACjB,WAGH,MAAI,QAAsB1C,EAAGjH,QAM9B,OALA,IAAKwI,EAAM4C,cAAa,QAAenE,EAAGjH,OAAQiH,EAAGjH,OAAOqL,YAAY,IACpE,MAKR,CACJ,KACK,IAAIpE,EAAGM,OACR,OAIA,OAAQN,EAAGqE,OACP,KAAKC,EAAA,EAASC,MACV,GAAIhD,EAAMiD,2BAA6BjD,EAAMkD,4BAA4BzE,EAAGjH,OAAQiH,GAChF,MAEJ,OACJ,KAAKsE,EAAA,EAASI,KACV,GAAIlB,IAAc,IAAmBmB,WACjCpD,EAAMqD,2BAA2B5E,GAC7BuB,EAAMsD,eAAetK,IACrB,MAGR,OACJ,KAAK+J,EAAA,EAASQ,MACV,GAAItB,IAAc,IAAmBmB,WACjCpD,EAAMqD,2BAA2B5E,GAC7BuB,EAAMwD,gBAAgBxK,IACtB,MAGR,OACJ,KAAK+J,EAAA,EAASU,GACV,GAAIxB,IAAc,IAAmByB,aACjC1D,EAAMqD,2BAA2B5E,GAC7BuB,EAAM2D,gBACN,MAGR,OACJ,KAAKZ,EAAA,EAASa,KACV,GAAI3B,IAAc,IAAmByB,aACjC1D,EAAMqD,2BAA2B5E,GAC7BuB,EAAM6D,kBACN,MAGR,OACJ,KAAKd,EAAA,EAASe,SACV,IAAK3B,GAAyBnC,EAAM+D,kBAAiB,GACjD,MAEJ,OACJ,KAAKhB,EAAA,EAASiB,OACV,IAAK7B,GAAyBnC,EAAM+D,kBAAiB,GACjD,MAEJ,OACJ,KAAKhB,EAAA,EAASkB,IACV,GAEAjE,EAAM5G,MAAM8K,aACRlE,EAAM5G,MAAM+K,eAAiB,IAA0BC,KACtDpE,EAAM5G,MAAM+K,eAAiB,IAA0BE,WACpDrE,EAAMsE,gBAAgB7F,EAAGjH,QAAU,CACvC,IAAI+M,GAAe,EAWnB,GAVAvE,EAAMwE,mBAAoB,EAOtBD,EANAtC,IAAc,IAAmBmB,UAChCpD,EAAMyE,iBAAiBzE,EAAMoB,eAAgB/C,KAIvB,QAAOrF,IAAUyF,EAAGK,SAAWL,EAAGK,UACvBkB,EAAMsD,eAAetK,GAASgH,EAAMwD,gBAAgBxK,GAJvEyF,EAAGK,SAAWkB,EAAM2D,eAAiB3D,EAAM6D,iBAM9D7D,EAAMwE,mBAAoB,EACtBD,EACA,MAEKvE,EAAM5G,MAAMsL,0CACjB1E,EAAMoB,eAAiB,KAE/B,CACA,OACJ,KAAK2B,EAAA,EAAS4B,KACV,GAAI3E,EAAM4E,0BAA0BnG,EAAGjH,SAClCwI,EAAMsE,gBAAgB7F,EAAGjH,UACrBwI,EAAM6E,sBAAsBpG,EAAGjH,QAAQ,GAC5C,OAAO,EAEX,IAAIqL,EAAa7C,EAAMC,MAAMgB,SAAWjB,EAAMC,MAAMgB,QAAQ4B,WAC5D,GAAI7C,EAAMC,MAAMgB,SACZ4B,GACA7C,EAAM4C,cAAa,QAAe5C,EAAMC,MAAMgB,QAAS4B,GAAY,IACnE,MAEJ,OACJ,KAAKE,EAAA,EAAS+B,IACV,GAAI9E,EAAM4E,0BAA0BnG,EAAGjH,SAClCwI,EAAMsE,gBAAgB7F,EAAGjH,UACrBwI,EAAM6E,sBAAsBpG,EAAGjH,QAAQ,GAC5C,OAAO,EAEX,IAAIuN,EAAY/E,EAAMC,MAAMgB,SAAWjB,EAAMC,MAAMgB,QAAQ8D,UAC3D,GAAI/E,EAAMC,MAAMgB,SACZjB,EAAM4C,cAAa,QAAmB5C,EAAMC,MAAMgB,QAAS8D,GAAW,GAAM,GAAM,IAClF,MAEJ,OACJ,KAAKhC,EAAA,EAASiC,MACV,GAAIhF,EAAMiF,2BAA6BjF,EAAMkD,4BAA4BzE,EAAGjH,OAAQiH,GAChF,MAEJ,OACJ,QACI,OAEZ,CACAA,EAAGyG,iBACHzG,EAAG+C,iBArIH,CAjBA,CAuJJ,EACAxB,EAAMmF,iCAAmC,SAAUC,EAEnDC,EAEAC,GAEI,IAAIC,EAAgBvF,EAAMwF,gBAAgBrC,MAAQnD,EAAMwF,gBAAgBC,GAAK,EAKzEC,EAAgBC,KAAKC,MAAMN,EAAWO,KACtCC,EAAmBH,KAAKC,MAAMP,EAAWU,QACzCC,EAAmBL,KAAKC,MAAMN,EAAWS,QACzCE,EAAgBN,KAAKC,MAAMP,EAAWQ,KAG1C,OAFmCT,GAAaM,EAAgBI,IAC9BV,GAAaY,EAAmBC,EAE1DV,GAAiBD,EAAWnC,MAAQoC,GAAiBD,EAAWnC,KAAOmC,EAAWY,MAC3E,EAEJP,KAAKQ,IAAIb,EAAWnC,KAAOmC,EAAWY,MAAQ,EAAIX,GAExDvF,EAAMyE,iBAAiBzE,EAAMoB,eAAgBhD,GAG3CE,EAFIC,CAGf,GAEA,EAAA6H,EAAA,GAAuBpG,GAUvBA,EAAMqG,KAAM,EAAAC,EAAA,GAAM,aAClBtG,EAAMwF,gBAAkB,CACpBrC,KAAM,EACN0C,IAAK,GAET7F,EAAMwE,mBAAoB,EAC1B,IAAI+B,EAAgJ,QAAnH1G,EAAwC,QAAlC3H,EAAKkB,EAAMoN,yBAAsC,IAAPtO,EAAgBA,EAAKyH,EAAU8G,aAAaD,yBAAsC,IAAP3G,GAAgBA,EAG5K,OAFAG,EAAMiF,0BAAsE,QAAzCnF,EAAK1G,EAAMsN,gCAA6C,IAAP5G,EAAgBA,EAAKyG,EACzGvG,EAAMiD,0BAAsE,QAAzClD,EAAK3G,EAAMuN,gCAA6C,IAAP5G,EAAgBA,EAAKwG,EAClGvG,CACX,CA8tBA,ODhkCG,SAAmB/C,EAAGC,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI0J,UAAU,uBAAyBC,OAAO3J,GAAK,iCAE7D,SAAS4J,IAAOhJ,KAAKiJ,YAAc9J,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEM,UAAkB,OAANL,EAAaC,OAAOpD,OAAOmD,IAAM4J,EAAGvJ,UAAYL,EAAEK,UAAW,IAAIuJ,EACjF,CCkCIE,CAAUrH,EAAWC,GA4TrBD,EAAUsH,cAAgB,WACtB,OAAO1H,EAAY2H,IACvB,EAMAvH,EAAUwH,kBAAoB,SAAU1I,GAEhCA,EAAGqE,QAAUC,EAAA,EAASkB,KACtB1E,EAAY6H,SAAQ,SAAUC,GAAQ,OAAOA,EAAK9F,mBAAqB,GAE/E,EACA5B,EAAUpC,UAAU+J,kBAAoB,WACpC,IAAIC,EAAOzJ,KAAKmC,MAAMgB,QAEtB,GADA3B,EAAcxB,KAAKuI,KAAOvI,KACtByJ,EAAM,CAEN,IADA,IAAIvG,GAAgB,EAAA9J,EAAA,GAAUqQ,EAAM7H,GAC7BsB,GAAiBA,IAAkBlD,KAAKyE,eAAetL,MAAmC,IAA3B+J,EAAcwG,UAAgB,CAChG,IAAI,QAAmBxG,GAAgB,CACnClD,KAAK2E,cAAe,EACpB,KACJ,CACAzB,GAAgB,EAAA9J,EAAA,GAAU8J,EAAetB,EAC7C,CACK5B,KAAK2E,eACNlD,EAAYkI,IAAI3J,MAChBA,KAAKmC,MAAMgB,SAAWnD,KAAKmC,MAAMgB,QAAQyG,iBAAiB,UAAW/H,EAAUwH,mBAAmB,IAEtGrJ,KAAKmC,MAAMgB,SAAWnD,KAAKmC,MAAMgB,QAAQyG,iBAAiB,OAAQ5J,KAAK2D,SAAS,GAEhF3D,KAAKyD,oBACDzD,KAAK1E,MAAMyH,wBAAuE,iBAAtC/C,KAAK1E,MAAMyH,uBACvD/C,KAAKsD,eAAiBtD,KAAKyE,eAAeoF,cAAc7J,KAAK1E,MAAMyH,wBAG9D/C,KAAK1E,MAAMwO,uBAEhB9J,KAAKsD,eAAiBtD,KAAKyE,eAAeoF,cAAc7J,KAAK1E,MAAMwO,uBAEnE9J,KAAK1E,MAAMyO,oBACX/J,KAAKqD,OAEb,CACJ,EACAxB,EAAUpC,UAAUuK,mBAAqB,WACrC,IAAIP,EAAOzJ,KAAKmC,MAAMgB,QAClB8G,EAAMjK,KAAKyE,eAUf,IAPKzE,KAAKsD,kBAAmB,EAAA9K,EAAA,GAAgBwH,KAAKmC,MAAMgB,QAASnD,KAAKsD,eAAgB1B,IACjF5B,KAAKkK,wBACD,EAAA1R,EAAA,GAAgBwH,KAAKmC,MAAMgB,QAASnD,KAAKkK,qBAAsBtI,MACpE5B,KAAKsD,eAAiB,KACtBtD,KAAKkK,qBAAuB,KAC5BlK,KAAKyD,sBAEJzD,KAAK1E,MAAM6O,yBACZF,GACAjK,KAAKoK,iBACJH,EAAIvF,gBAAkBuF,EAAI9Q,MAA8B,OAAtB8Q,EAAIvF,eAA0BuF,EAAIvF,gBAAkB+E,GAAO,CAE9F,IAAIY,GAAiB,QAAwBZ,EAAMzJ,KAAKoK,gBACpDC,GACArK,KAAKiE,kBAAkBoG,GAAgB,GACvCA,EAAehH,QACfrD,KAAK4D,iBAAgB,IAKrB5D,KAAK4D,iBAAgB,EAE7B,CACJ,EACA/B,EAAUpC,UAAU6K,qBAAuB,kBAChC9I,EAAcxB,KAAKuI,KACrBvI,KAAK2E,eACNlD,EAAY8I,OAAOvK,MACnBA,KAAKmC,MAAMgB,SAAWnD,KAAKmC,MAAMgB,QAAQqH,oBAAoB,UAAW3I,EAAUwH,mBAAmB,IAErGrJ,KAAKmC,MAAMgB,SACXnD,KAAKmC,MAAMgB,QAAQqH,oBAAoB,OAAQxK,KAAK2D,SAAS,GAEjE3D,KAAKsD,eAAiB,KACtBtD,KAAKkK,qBAAuB,IAChC,EACArI,EAAUpC,UAAUxB,OAAS,WACzB,IAAIiE,EAAQlC,KAER5F,EAAK4F,KAAK1E,MAAOmP,EAAMrQ,EAAGsQ,GAAIC,EAAcvQ,EAAGuQ,YAAaC,EAAYxQ,EAAGwQ,UAAWC,EAAkBzQ,EAAGyQ,gBAAiBC,EAAiB1Q,EAAG0Q,eAAgBlN,EAAYxD,EAAGwD,UAC/KmN,GAAW,QAAe/K,KAAK1E,MAAO,MACtC0P,EAAMP,GAAOE,GAAe,MAMhC3K,KAAKiL,6BAEL,IAAI/P,GAAQ,UACZ,OAAQ,gBAAoB8P,EAAKrL,EAAS,CAAE,kBAAmBmL,EAAgB,mBAAoBD,GAAmBE,EAAUH,EAAW,CAIvIhN,WAAW,EAAAsN,EAAA,IAtbdhL,IACDA,GAAkB,EAAAiL,EAAA,GAAY,CAC1BC,UAAW,CACP,SAAU,CACNC,QAAS,UApCR,iBAyCVnL,GA6agCtC,GAE/B0N,IAAKtL,KAAKoC,WAAWpC,KAAK1E,MAAMiQ,WAAYvL,KAAKmC,OAAQ,oBAAqBnC,KAAKuI,IAEnFhE,UAAW,SAAU5D,GAAM,OAAOuB,EAAMgC,WAAWvD,EAAIzF,EAAQ,EAAG2H,QAAS7C,KAAKsC,SAAUkJ,mBAAoBxL,KAAK6D,eAAiB7D,KAAK1E,MAAMoB,SACvJ,EAQAmF,EAAUpC,UAAU4D,MAAQ,SAAUoI,EAAuBC,GAGzD,QAF8B,IAA1BD,IAAoCA,GAAwB,QACnC,IAAzBC,IAAmCA,GAAuB,GAC1D1L,KAAKmC,MAAMgB,QAAS,CACpB,IAAKsI,GAC2D,SAA5DzL,KAAKmC,MAAMgB,QAAQwI,aAAaxL,IAChCH,KAAK2E,aAAc,CACnB,IAAIiH,EAAmB5L,KAAK6L,cAAc7L,KAAKmC,MAAMgB,SACrD,GAAIyI,IAAqB5L,KAAKmC,MAAMgB,QAAS,CACzC,IAAI2I,EAAYtK,EAAcoK,EAAiBD,aAAavL,IAC5D,QAAS0L,GAAaA,EAAUhH,aAAa9E,KAAKmC,MAAMgB,QAC5D,CACA,OAAO,CACX,CACK,IAAKsI,GACNzL,KAAKsD,iBACL,EAAA9K,EAAA,GAAgBwH,KAAKmC,MAAMgB,QAASnD,KAAKsD,kBACzC,QAAkBtD,KAAKsD,mBACrBoI,IAAwB,QAA6B1L,KAAKsD,iBAE5D,OADAtD,KAAKsD,eAAeD,SACb,EAGP,IAAI0B,EAAa/E,KAAKmC,MAAMgB,QAAQ4B,WACpC,OAAO/E,KAAK8E,cAAa,QAAe9E,KAAKmC,MAAMgB,QAAS4B,GAAY,OAAMhG,OAAWA,OAAWA,OAAWA,OAAWA,EAAW2M,GAE7I,CACA,OAAO,CACX,EAKA7J,EAAUpC,UAAUsM,UAAY,WAC5B,GAAI/L,KAAKmC,MAAMgB,QAAS,CACpB,IAAI8D,EAAYjH,KAAKmC,MAAMgB,SAAWnD,KAAKmC,MAAMgB,QAAQ8D,UACzD,OAAOjH,KAAK8E,cAAa,QAAmB9E,KAAKmC,MAAMgB,QAAS8D,GAAW,GAAM,GAAM,GAC3F,CACA,OAAO,CACX,EASApF,EAAUpC,UAAUqF,aAAe,SAAU9L,EAASgT,GAElD,IAAI5R,EAAK4F,KAAK1E,MAAO2Q,EAAgB7R,EAAG6R,cAAeC,EAAqB9R,EAAG8R,mBAC/E,QAAKA,IAAuBA,EAAmBlT,IAAciT,IAAkBA,EAAcjT,KAGzFA,IAEAgH,KAAKiE,kBAAkBjL,EAASgT,GAC5BhM,KAAKsD,gBACLtD,KAAKsD,eAAeD,QAEjB,GAGf,EAMAxB,EAAUpC,UAAU0M,kBAAoB,SAAUC,GAC9CpM,KAAK0H,gBAAkB0E,CAC3B,EACA/M,OAAOgN,eAAexK,EAAUpC,UAAW,sBAAuB,CAC9D6M,IAAK,WACD,OAAOtM,KAAKkK,oBAChB,EACAqC,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAexK,EAAUpC,UAAW,gBAAiB,CACxD6M,IAAK,WACD,OAAOtM,KAAKsD,cAChB,EACAiJ,YAAY,EACZC,cAAc,IAElB3K,EAAUpC,UAAUwL,2BAA6B,WAC7C,IAAIxB,EAAOzJ,KAAKmC,MAAMgB,QAClB8G,EAAMjK,KAAKyE,eACf,GAAIwF,EAAK,CACL,IAAIwC,EAAiBxC,EAAIvF,cAEzB,GAAI+H,IAAmBhD,EAAM,CACzB,IAAIiD,GAAqB,EAAAlU,EAAA,GAAgBiR,EAAMgD,GAAgB,GAC/DzM,KAAKoK,eAAiBsC,GAAqB,QAAoBjD,EAAMgD,QAAkB1N,CAC3F,CACJ,CACJ,EAOA8C,EAAUpC,UAAUmE,gBAAkB,SAAU+I,GAC5C,IAAIlD,EAAOzJ,KAAKmC,MAAMgB,QAClBsG,GAAQzJ,KAAK4M,YAAcD,IAC3B3M,KAAK4M,UAAYD,EACbA,GACK3M,KAAK1E,MAAMuR,iBACZ7M,KAAK8M,gBAAkBrD,EAAKkC,aAAa,YACzClC,EAAKzP,aAAa,WAAY,OAElCyP,EAAKpG,SAECrD,KAAK1E,MAAMuR,iBACb7M,KAAK8M,iBACLrD,EAAKzP,aAAa,WAAYgG,KAAK8M,iBACnC9M,KAAK8M,qBAAkB/N,GAGvB0K,EAAKsD,gBAAgB,aAIrC,EACAlL,EAAUpC,UAAUwE,kBAAoB,SAAUjL,EAASgT,GACvD,IAAIgB,EAAwBhN,KAAKsD,eACjCtD,KAAKsD,eAAiBtK,EAClBgU,KACI,QAAmBA,IACnBhN,KAAKyD,kBAAkBuJ,GAE3BA,EAAsBC,UAAY,GAElCjN,KAAKsD,iBACAtD,KAAK0H,kBAAmBsE,GACzBhM,KAAKwD,mBAAmBxK,GAAS,GAAM,GAE3CgH,KAAKsD,eAAe2J,SAAW,EAEvC,EACApL,EAAUpC,UAAU8F,2BAA6B,SAAU5E,GACvDX,KAAK1E,MAAM4R,2BAA6BvM,EAAGyG,gBAC/C,EAIAvF,EAAUpC,UAAU2F,4BAA8B,SAAU+H,EAAexM,GACvE,IAAIjH,EAASyT,EACb,GAAIzT,IAAWsG,KAAKmC,MAAMgB,QACtB,OAAO,EAEX,EAAG,CACC,GAAuB,WAAnBzJ,EAAO0T,SACY,MAAnB1T,EAAO0T,SACY,UAAnB1T,EAAO0T,SACY,aAAnB1T,EAAO0T,SACY,YAAnB1T,EAAO0T,QACP,OAAO,EAEX,GAAIpN,KAAKiD,6BAA6BvJ,IACc,SAAhDA,EAAOiS,aAAaxL,IACiC,SAArDzG,EAAOiS,aA9oBW,+BAgpBlB,OADAjL,EAA4BhH,EAAQiH,IAC7B,EAEXjH,GAAS,EAAAN,EAAA,GAAUM,EAAQkI,EAC/B,OAASlI,IAAWsG,KAAKmC,MAAMgB,SAC/B,OAAO,CACX,EAIAtB,EAAUpC,UAAUoF,mBAAqB,SAAUwI,GAE/C,KADAA,EAAcA,GAAerN,KAAKsD,gBAAkBtD,KAAKmC,MAAMgB,SAE3D,OAAO,KAEX,IAAI,QAAmBkK,GACnB,OAAO7L,EAAc6L,EAAY1B,aAAavL,IAGlD,IADA,IAAI1H,EAAQ2U,EAAYC,kBACjB5U,GAAO,CACV,IAAI,QAAmBA,GACnB,OAAO8I,EAAc9I,EAAMiT,aAAavL,IAE5C,IAAImN,EAAQvN,KAAK6E,mBAAmBnM,GACpC,GAAI6U,EACA,OAAOA,EAEX7U,EAAQA,EAAM8U,kBAClB,CACA,OAAO,IACX,EACA3L,EAAUpC,UAAUgO,WAAa,SAAUnG,EAE3CoG,EAAuB/M,EAAIgN,QACA,IAAnBA,IAA6BA,GAAiB,GAClD,IAAI3U,EAAUgH,KAAKsD,eACfsK,GAAqB,EACrBC,OAAmB9O,EACnB+O,GAAe,EACfC,EAAkB/N,KAAK1E,MAAM6I,YAAc,IAAmB6J,cAClE,IAAKhV,IAAYgH,KAAKmC,MAAMgB,QACxB,OAAO,EAEX,GAAInD,KAAKwG,gBAAgBxN,KAChBgH,KAAK+G,sBAAsB/N,EAASsO,GACrC,OAAO,EAGf,IAAIC,EAAawG,EAAkB/U,EAAQiV,wBAA0B,KACrE,EAAG,CAEC,GADAjV,EAAWsO,GAAY,QAAetH,KAAKmC,MAAMgB,QAASnK,IAAW,QAAmBgH,KAAKmC,MAAMgB,QAASnK,IACxG+U,EAkBC,CACDF,EAAmB7U,EACnB,KACJ,CApBI,GAAIA,EAAS,CACT,IAEIkV,EAAkBR,EAAsBnG,EAF3BvO,EAAQiV,yBAGzB,IAAyB,IAArBC,IAAiD,IAAvBN,EAA0B,CACpDC,EAAmB7U,EACnB,KACJ,CAKA,GAJIkV,GAAmB,KAA6B,IAAvBN,GAA4BM,EAAkBN,KACvEA,EAAoBM,EACpBL,EAAmB7U,GAEnB4U,GAAqB,GAAKM,EAAkB,EAC5C,KAER,CAMR,OAASlV,GAET,GAAI6U,GAAoBA,IAAqB7N,KAAKsD,eAC9CwK,GAAe,EACf9N,KAAK8E,aAAa+I,QAEjB,GAAI7N,KAAK1E,MAAM6S,sBAAwBR,EACxC,OAAIrG,EACOtH,KAAK8E,cAAa,QAAe9E,KAAKmC,MAAMgB,QAASnD,KAAKmC,MAAMgB,QAAQmK,mBAAmB,IAG3FtN,KAAK8E,cAAa,QAAmB9E,KAAKmC,MAAMgB,QAASnD,KAAKmC,MAAMgB,QAAQiL,kBAAkB,GAAM,GAAM,IAGzH,OAAON,CACX,EACAjM,EAAUpC,UAAUsG,eAAiB,WACjC,IAAI7D,EAAQlC,KACRqO,GAAa,EAEb5G,EAAgBzH,KAAK0H,gBAAgBrC,MAAQrF,KAAK0H,gBAAgBC,GAAK,EAC3E,QAEA3H,KAAKyN,YAAW,GAAM,SAAUlG,EAAYC,GACxC,IAAI8G,GAAY,EAKZ1G,EAAgBC,KAAKC,MAAMN,EAAWO,KACtCC,EAAmBH,KAAKC,MAAMP,EAAWU,QAC7C,OAAIL,EAAgBI,EACX9F,EAAMyE,iBAAiBzE,EAAMoB,eAAgBhD,GAG3CE,EAFIC,KAIK,IAAf4N,GAAoBzG,GAAiBI,GAAqBJ,IAAkByG,KAC7EA,EAAYzG,EAER0G,EADA7G,GAAiBD,EAAWnC,MAAQoC,GAAiBD,EAAWnC,KAAOmC,EAAWY,MACvE,EAGAP,KAAKQ,IAAIb,EAAWnC,KAAOmC,EAAWY,MAAQ,EAAIX,IAG9D6G,EACX,MACItO,KAAKwD,mBAAmBxD,KAAKsD,gBAAgB,GAAO,IAC7C,EAGf,EACAzB,EAAUpC,UAAUoG,aAAe,WAC/B,IAAI3D,EAAQlC,KACRqO,GAAa,EAEb5G,EAAgBzH,KAAK0H,gBAAgBrC,MAAQrF,KAAK0H,gBAAgBC,GAAK,EAC3E,QAEA3H,KAAKyN,YAAW,GAAO,SAAUlG,EAAYC,GACzC,IAAI8G,GAAY,EAKZpG,EAAmBL,KAAKC,MAAMN,EAAWS,QACzCL,EAAgBC,KAAKC,MAAMN,EAAWO,KACtCI,EAAgBN,KAAKC,MAAMP,EAAWQ,KAC1C,OAAIG,EAAmBC,EACdjG,EAAMyE,iBAAiBzE,EAAMoB,eAAgBhD,GAG3CE,EAFIC,KAIK,IAAf4N,GAAoBnG,GAAoBC,GAAkBP,IAAkByG,KAC7EA,EAAYzG,EAER0G,EADA7G,GAAiBD,EAAWnC,MAAQoC,GAAiBD,EAAWnC,KAAOmC,EAAWY,MACvE,EAGAP,KAAKQ,IAAIb,EAAWnC,KAAOmC,EAAWY,MAAQ,EAAIX,IAG9D6G,EACX,MACItO,KAAKwD,mBAAmBxD,KAAKsD,gBAAgB,GAAO,IAC7C,EAGf,EACAzB,EAAUpC,UAAU+F,eAAiB,SAAUtK,GAC3C,IAAIgH,EAAQlC,KACRuO,EAAavO,KAAK2G,iBAAiB3G,KAAKsD,eAAgB/C,GAC5D,QAAIP,KAAKyN,YAAW,QAAOvS,IAE3B,SAAUqM,EAAYC,GAClB,IAAI8G,GAAY,EAoBhB,QAlBI,QAAOpT,GAKesT,WAAWhH,EAAWO,IAAI0G,QAAQ,IAAMD,WAAWjH,EAAWU,OAAOwG,QAAQ,IAG7ED,WAAWhH,EAAWS,OAAOwG,QAAQ,IAAMD,WAAWjH,EAAWQ,IAAI0G,QAAQ,MAGnGjH,EAAW/B,OAAS8B,EAAW9B,OAC/BvD,EAAM5G,MAAM6I,YAAc,IAAmBmB,SAC7CgJ,EAAW/G,EAAW9B,MAAQ+B,EAAW/B,MAEnC8I,IACND,EAAW7N,GAER6N,CACX,QAAGvP,EAAkBwP,KACjBvO,KAAKwD,mBAAmBxD,KAAKsD,gBAAgB,GAAM,IAC5C,EAGf,EACAzB,EAAUpC,UAAUiG,gBAAkB,SAAUxK,GAC5C,IAAIgH,EAAQlC,KACRuO,EAAavO,KAAK2G,iBAAiB3G,KAAKsD,eAAgB/C,GAC5D,QAAIP,KAAKyN,aAAY,QAAOvS,IAE5B,SAAUqM,EAAYC,GAClB,IAAI8G,GAAY,EAoBhB,QAlBI,QAAOpT,GAKesT,WAAWhH,EAAWS,OAAOwG,QAAQ,IAAMD,WAAWjH,EAAWQ,IAAI0G,QAAQ,IAG7ED,WAAWhH,EAAWO,IAAI0G,QAAQ,IAAMD,WAAWjH,EAAWU,OAAOwG,QAAQ,MAGnGjH,EAAWnC,MAAQkC,EAAWlC,MAC9BnD,EAAM5G,MAAM6I,YAAc,IAAmBmB,SAC7CgJ,EAAW9G,EAAWnC,KAAOkC,EAAWlC,KAElCkJ,IACND,EAAW7N,GAER6N,CACX,QAAGvP,EAAkBwP,KACjBvO,KAAKwD,mBAAmBxD,KAAKsD,gBAAgB,GAAM,IAC5C,EAGf,EACAzB,EAAUpC,UAAUwG,iBAAmB,SAAUqB,EAAWqG,QACjC,IAAnBA,IAA6BA,GAAiB,GAClD,IAAI3U,EAAUgH,KAAKsD,eACnB,IAAKtK,IAAYgH,KAAKmC,MAAMgB,QACxB,OAAO,EAEX,GAAInD,KAAKwG,gBAAgBxN,KAChBgH,KAAK+G,sBAAsB/N,EAASsO,GACrC,OAAO,EAGf,IAAIoH,GAAmB,QAAqB1V,GAC5C,IAAK0V,EACD,OAAO,EAEX,IAAId,GAAqB,EACrBC,OAAmB9O,EACnBsP,GAAa,EACbM,GAAgB,EAChBC,EAAWF,EAAiBG,aAC5BtH,EAAavO,EAAQiV,wBACzB,GAII,GAHAjV,EAAUsO,GACJ,QAAetH,KAAKmC,MAAMgB,QAASnK,IACnC,QAAmBgH,KAAKmC,MAAMgB,QAASnK,GAChC,CACT,IAAIwO,EAAaxO,EAAQiV,wBACrBrG,EAAgBC,KAAKC,MAAMN,EAAWO,KACtCC,EAAmBH,KAAKC,MAAMP,EAAWU,QACzCC,EAAmBL,KAAKC,MAAMN,EAAWS,QACzCE,EAAgBN,KAAKC,MAAMP,EAAWQ,KACtCmG,EAAkBlO,KAAKqH,iCAAiCC,EAAWC,EAAYC,GAGnF,GAF0CF,GAAaM,EAAgBI,EAAmB4G,IACjDtH,GAAaY,EAAmBC,EAAgByG,EAErF,MAEAV,GAAmB,IAEf5G,GAAaM,EAAgByG,GAC7BA,EAAYzG,EACZgG,EAAoBM,EACpBL,EAAmB7U,IAEbsO,GAAaY,EAAmByG,GAEtCA,EAAezG,EACf0F,EAAoBM,EACpBL,EAAmB7U,KAES,IAAvB4U,GAA4BM,GAAmBN,KACpDA,EAAoBM,EACpBL,EAAmB7U,GAG/B,QACKA,GACT,IAAI8U,GAAe,EAEnB,GAAID,GAAoBA,IAAqB7N,KAAKsD,eAC9CwK,GAAe,EACf9N,KAAK8E,aAAa+I,GAClB7N,KAAKwD,mBAAmBqK,GAAkB,GAAO,QAEhD,GAAI7N,KAAK1E,MAAM6S,sBAAwBR,EACxC,OAAIrG,EACOtH,KAAK8E,cAAa,QAAe9E,KAAKmC,MAAMgB,QAASnD,KAAKmC,MAAMgB,QAAQmK,mBAAmB,IAE/FtN,KAAK8E,cAAa,QAAmB9E,KAAKmC,MAAMgB,QAASnD,KAAKmC,MAAMgB,QAAQiL,kBAAkB,GAAM,GAAM,IAErH,OAAON,CACX,EACAjM,EAAUpC,UAAU+D,mBAAqB,SAAUxK,EAAS8V,EAAcC,GACtE,GAAI/O,KAAK1E,MAAM6I,YAAc,IAAmB6J,iBAC1ChO,KAAK0H,iBAAmBoH,GAAgBC,GAAa,CACvD,IAAIC,EAAOhW,EAAQiV,wBACf5I,EAAO2J,EAAK3J,KAAO2J,EAAK5G,MAAQ,EAChC6G,EAAQD,EAAKjH,IAAMiH,EAAKE,OAAS,EAChClP,KAAK0H,kBACN1H,KAAK0H,gBAAkB,CAAErC,KAAMA,EAAM0C,IAAKkH,IAE1CH,IACA9O,KAAK0H,gBAAgBrC,KAAOA,GAE5B0J,IACA/O,KAAK0H,gBAAgBK,IAAMkH,EAEnC,CACJ,EACApN,EAAUpC,UAAUwD,6BAA+B,SAAUjK,GACzD,OAAOgH,KAAK6L,cAAc7S,KAAagH,KAAKmC,MAAMgB,OACtD,EACAtB,EAAUpC,UAAUoM,cAAgB,SAAU7S,GAE1C,IADA,IAAIkK,GAAgB,EAAA9J,EAAA,GAAUJ,EAAS4I,GAChCsB,GAAiBA,IAAkBlD,KAAKmC,MAAMgB,SAAWD,IAAkBlD,KAAKyE,eAAetL,MAAM,CACxG,IAAI,QAAmB+J,GACnB,OAAOA,EAEXA,GAAgB,EAAA9J,EAAA,GAAU8J,EAAetB,EAC7C,CACA,OAAOsB,CACX,EACArB,EAAUpC,UAAUgE,kBAAoB,SAAUzK,IACzCgH,KAAKsD,gBACNtD,KAAK1E,MAAMyH,wBACkC,mBAAtC/C,KAAK1E,MAAMyH,yBAClB/C,KAAKsD,eAAiBtD,KAAK1E,MAAMyH,uBAAuB/C,KAAKmC,MAAMgB,WAElEnK,GAAWgH,KAAKmC,MAAMgB,UACvBnD,KAAKkK,qBAAuB,KAC5BlR,EAAUgH,KAAKmC,MAAMgB,QACjBnD,KAAKsD,kBAAmB,EAAA9K,EAAA,GAAgBQ,EAASgH,KAAKsD,kBACtDtD,KAAKsD,eAAiB,OAK1BtD,KAAKsD,kBAAmB,QAAkBtD,KAAKsD,kBAC/CtD,KAAKsD,eAAiB,MAG1B,IADA,IAAI6L,EAAanW,GAAWA,EAAQ0D,SAC3B0S,EAAa,EAAGD,GAAcC,EAAaD,EAAWzT,OAAQ0T,IAAc,CACjF,IAAI1W,EAAQyW,EAAWC,IAClB,QAAmB1W,GAyBgC,SAA/CA,EAAMiT,aAAaxL,KACnBH,KAAK2E,eACH3E,KAAKsD,gBAAmBtD,KAAKkK,uBAAyBlK,KAAKsD,iBAAmB5K,EAM3C,OAAjCA,EAAMiT,aAAatL,IACxB3H,EAAMsB,aAAaqG,EAAU,OAN7BL,KAAKkK,qBAAuBxR,EACS,MAAjCA,EAAMiT,aAAatL,IACnB3H,EAAMsB,aAAaqG,EAAU,QA5BjC3H,EAAMiT,cAA+D,UAA/CjT,EAAMiT,aAAaxL,IACzCzH,EAAMsB,aAAaqG,EAAU,OAE7B,QAAkB3H,GACdsH,KAAK1E,MAAMwI,SACXpL,EAAMsB,aAAaqG,EAAU,MAEvBL,KAAK2E,eACR3E,KAAKsD,gBAAmBtD,KAAKkK,uBAAyBlK,KAAKsD,iBAAmB5K,EAM3C,OAAjCA,EAAMiT,aAAatL,IACxB3H,EAAMsB,aAAaqG,EAAU,OAN7BL,KAAKkK,qBAAuBxR,EACS,MAAjCA,EAAMiT,aAAatL,IACnB3H,EAAMsB,aAAaqG,EAAU,MAOd,QAAlB3H,EAAM0U,SAAyD,UAApC1U,EAAMiT,aAAa,cAEnDjT,EAAMsB,aAAa,YAAa,UAexCgG,KAAKyD,kBAAkB/K,EAC3B,CACJ,EACAmJ,EAAUpC,UAAUqH,0BAA4B,SAAU9N,GACtD,OAAOA,GAAuD,SAA5CA,EAAQ2S,aAAa,kBAC3C,EACA9J,EAAUpC,UAAU+G,gBAAkB,SAAUxN,GAC5C,SAAIA,IACAA,EAAQoU,SAC2B,UAAlCpU,EAAQoU,QAAQiC,eAA+D,aAAlCrW,EAAQoU,QAAQiC,cAItE,EACAxN,EAAUpC,UAAUsH,sBAAwB,SAAU/N,EAASsO,GAE3D,IAAKtH,KAAK0G,mBACN1N,GACAA,EAAQyD,MACRkF,EAAoB2N,QAAQtW,EAAQyD,KAAK4S,gBAAkB,EAAG,CAC9D,IAAIE,EAAiBvW,EAAQuW,eAEzBC,EAAkBD,IADHvW,EAAQyW,aAEvBC,EAAa1W,EAAQ2W,MACrBC,EAAa5W,EAAQ6W,SAQzB,GAAIL,GACCD,EAAiB,IAAMjI,IAAcsI,GACrCL,IAAmBG,EAAWhU,QAAU4L,IAAcsI,GACpD5P,KAAK1E,MAAM+K,gBACRrG,KAAK1E,MAAMwU,iCAAkC9P,KAAK1E,MAAMwU,+BAA+B9W,IAC7F,OAAO,CAEf,CACA,OAAO,CACX,EACA6I,EAAUpC,UAAUkH,iBAAmB,SAAU3N,EAAS+W,GACtD,OAAO/P,KAAK1E,MAAM0U,iBAAiB,QAAgBhX,EAAS+W,EAChE,EAIAlO,EAAUpC,UAAU8C,uBAAyB,SAAUvJ,GACnD,OAAOA,KAAagH,KAAKmC,MAAMgB,UAAW,EAAA1J,EAAA,GAAsBT,EAASgH,KAAKmC,MAAMgB,QACxF,EACAtB,EAAUpC,UAAUgF,aAAe,WAC/B,OAAO,EAAAwL,EAAA,GAAYjQ,KAAKmC,MAAMgB,QAClC,EACAtB,EAAU8G,aAAe,CACrBwF,sBAAsB,EACtBhK,UAAW,IAAmB6J,cAC9BtF,mBAAmB,GAEhB7G,CACX,CA1hC8B,CA0hC5B,Y,2CCrlCK,IAWIqO,EAXAC,EAA4B,CAEnCC,KAAM,EAEN9J,IAAK,EAELC,UAAW,IAMf,SAAW2J,GAEPA,EAAmBA,EAA6B,SAAI,GAAK,WAEzDA,EAAmBA,EAA+B,WAAI,GAAK,aAE3DA,EAAmBA,EAAkC,cAAI,GAAK,gBAK9DA,EAAmBA,EAA6B,SAAI,GAAK,UAC5D,CAZD,CAYGA,IAAuBA,EAAqB,CAAC,G,2DCtBzC,SAASG,IACZ,IAAIC,EAAW,WAWf,OAVKA,EAASnN,UACVmN,EAASnN,QAAU,IAAI,KAE3B,aAAgB,WACZ,OAAO,WACH,IAAI/I,EACwB,QAA3BA,EAAKkW,EAASnN,eAA4B,IAAP/I,GAAyBA,EAAGmW,UAChED,EAASnN,aAAUpE,CACvB,CACJ,GAAG,IACIuR,EAASnN,OACpB,C,6DCTO,SAASqN,EAAWC,GACvB,IAAIrW,EAAK,WAAeqW,GAAed,EAAQvV,EAAG,GAAIsW,EAAWtW,EAAG,GAUpE,MAAO,CAACuV,EAAO,CAAEgB,SATH,QAAS,WAAc,OAAO,WACxCD,GAAS,EACb,CAAG,IAOgCE,UANpB,QAAS,WAAc,OAAO,WACzCF,GAAS,EACb,CAAG,IAIoDG,QAH1C,QAAS,WAAc,OAAO,WACvCH,GAAS,SAAUI,GAAgB,OAAQA,CAAc,GAC7D,CAAG,KAEP,C,kDCTO,SAASC,EAASC,GAIrB,IAAI1F,EAAM,WAQV,YAPoBvM,IAAhBuM,EAAInI,UAGJmI,EAAInI,QAAU,CACVwM,MAA+B,mBAAjBqB,EAA8BA,IAAiBA,IAG9D1F,EAAInI,QAAQwM,KACvB,C,6DCvBO,SAASsB,EAAqBC,EAAiBC,EAA0BC,GAC5E,IAAIhX,EAAK,WAAe+W,GAA2BxB,EAAQvV,EAAG,GAAIsW,EAAWtW,EAAG,GAC5EiX,GAAe,YAA6BtS,IAApBmS,GACxBJ,EAAeO,EAAeH,EAAkBvB,EAGhD2B,EAAW,SAAaR,GACxBS,EAAc,SAAaH,GAC/B,aAAgB,WACZE,EAASnO,QAAU2N,EACnBS,EAAYpO,QAAUiO,CAC1B,IAGA,IAAII,GAAyB,QAAS,WAAc,OAAO,SAAUC,EAAQ9Q,GAGzE,IAAI+Q,EAA6B,mBAAXD,EAAwBA,EAAOH,EAASnO,SAAWsO,EACrEF,EAAYpO,SACZoO,EAAYpO,QAAQxC,EAAI+Q,GAEvBL,GACDX,EAASgB,EAEjB,CAAG,IACH,MAAO,CAACZ,EAAcU,EAC1B,C,4DClBO,SAASG,EAAMC,EAAQC,GAG1B,IAAIvG,EAAM,SAAauG,GAIvB,OAHKvG,EAAInI,UACLmI,EAAInI,SAAU,OAAMyO,IAEjBtG,EAAInI,OACf,C,mCCsI6B9D,OAAOpD,OA0GXoD,OAAOpD,OAyDkB,mBAApBgE,iBAAiCA,gB,eCnTxD,SAAS6R,IAEZ,IADA,IAAIC,EAAO,GACFvW,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCuW,EAAKvW,GAAMC,UAAUD,GAEzB,IAAIwW,EAAiB,eAAkB,SAAUrC,GAE7CqC,EAAe7O,QAAUwM,EACzB,IAAK,IAAInU,EAAK,EAAGyW,EAASF,EAAMvW,EAAKyW,EAAOvW,OAAQF,IAAM,CACtD,IAAI8P,EAAM2G,EAAOzW,GACE,mBAAR8P,EACPA,EAAIqE,GAECrE,IAELA,EAAInI,QAAUwM,EAEtB,CACJ,GD2LG,SAAuBuC,EAAIC,EAAMC,GACtC,GAAIA,GAA6B,IAArB3W,UAAUC,OAAc,IAAK,IAA4B2W,EAAxBvS,EAAI,EAAGwS,EAAIH,EAAKzW,OAAYoE,EAAIwS,EAAGxS,KACxEuS,GAAQvS,KAAKqS,IACRE,IAAIA,EAAK/V,MAAMmD,UAAU8S,MAAM7S,KAAKyS,EAAM,EAAGrS,IAClDuS,EAAGvS,GAAKqS,EAAKrS,IAGrB,OAAOoS,EAAGM,OAAOH,GAAM/V,MAAMmD,UAAU8S,MAAM7S,KAAKyS,GACpD,CCnMOM,CAAc,GAAIV,GAAM,IAC3B,OAAOC,CACX,C,6DCnBO,SAASU,EAAW1Z,EAAS2Z,EAAWC,EAAUC,GAErD,IAAIC,EAAc,SAAaF,GAC/BE,EAAY3P,QAAUyP,EACtB,aAAgB,WACZ,IAAIG,EAAgB/Z,GAAW,YAAaA,EAAUA,EAAQmK,QAAUnK,EACxE,GAAK+Z,EAIL,OADc,IAAAC,IAAGD,EAAeJ,GAAW,SAAUhS,GAAM,OAAOmS,EAAY3P,QAAQxC,EAAK,GAAGkS,EAElG,GAAG,CAAC7Z,EAAS2Z,EAAWE,GAC5B,C,kDCfO,SAASI,EAAYtD,GACxB,IAAIrE,GAAM,IAAA4H,UAIV,OAHA,IAAAC,YAAU,WACN7H,EAAInI,QAAUwM,CAClB,IACOrE,EAAInI,OACf,C,6DCPWiQ,EAAgB,WACvB,IAAIC,GAAa,OAAS,CAAC,GAY3B,OAVA,aAAgB,WAAc,OAAO,WACjC,IAAK,IAAI7X,EAAK,EAAGpB,EAAKiF,OAAOiU,KAAKD,GAAa7X,EAAKpB,EAAGsB,OAAQF,IAAM,CACjE,IAAI+X,EAAKnZ,EAAGoB,GAEZgY,aAAaD,EACjB,CACJ,CAAG,GAEH,CAACF,KAEM,OAAS,CACZI,WAAY,SAAUC,EAAMC,GACxB,IAAIJ,EAAKE,WAAWC,EAAMC,GAE1B,OADAN,EAAWE,GAAM,EACVA,CACX,EACAC,aAAc,SAAUD,UACbF,EAAWE,GAClBC,aAAaD,EACjB,GAER,C,wECnBO,SAASK,EAAUla,EAAQma,GAC9B,IAAIC,EAAqB,WACrBC,EAAY,SAAa,MAKzBC,GAAe,UAInB,IAAKta,GAAUA,IAAWoa,EAAmB3Q,SAA6B,iBAAXzJ,EAAqB,CAChF,IAAIua,EAAiBJ,aAAiD,EAASA,EAAY1Q,QAC3F,GAAIzJ,EACA,GAAsB,iBAAXA,EAAqB,CAC5B,IAAIwa,GAAa,OAAYD,GAC7BF,EAAU5Q,QAAU+Q,EAAaA,EAAWrK,cAAcnQ,GAAU,IACxE,MAEIqa,EAAU5Q,QADL,oBAAqBzJ,GAGrB,0BAA2BA,EAFZA,EAKf,YAAaA,EACEA,EAAOyJ,QAGPzJ,EAG5Boa,EAAmB3Q,QAAUzJ,CACjC,CACA,MAAO,CAACqa,EAAWC,EACvB,C,kDCtCWG,EAAa,SAAUvB,GAC9B,IAAIwB,EAAa,SAAaxB,GAC9BwB,EAAWjR,QAAUyP,EACrB,aAAgB,WAAc,OAAO,WACjC,IAAIxY,EAC0B,QAA7BA,EAAKga,EAAWjR,eAA4B,IAAP/I,GAAyBA,EAAGsF,KAAK0U,EAC3E,CAAG,GAAG,GACV,C,qECRWC,EAAgB,gBAAoB,CAC3C/S,OAA0B,iBAAXA,OAAsBA,YAASvC,IAKvCuV,EAAY,WAAc,OAAO,aAAiBD,GAAe/S,MAAQ,EAIzEiT,EAAc,WAAc,IAAIna,EAAI,OAAyD,QAAjDA,EAAK,aAAiBia,GAAe/S,cAA2B,IAAPlH,OAAgB,EAASA,EAAGlB,QAAU,C,mCCf/I,IAAIsb,EAAkB,CAIzBC,YAAa,EAIbC,UAAW,EAIXC,aAAc,EAKdC,YAAa,EAIbC,eAAgB,EAIhBC,aAAc,EAIdC,gBAAiB,EAKjBC,eAAgB,EAIhBC,YAAa,EAIbC,WAAY,EAIZC,eAAgB,GAIhBC,aAAc,GAIdC,YAAa,GAIbC,gBAAiB,G,yICrDjBC,EAAqB,WAIrBC,EAA0B,SAAU1T,GAEpC,SAAS0T,EAASla,GACd,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA8GxC,OA7GAkC,EAAMuT,cAAgB,cACtBvT,EAAMwT,kBAAmB,EAIzBxT,EAAMyT,oBAAsB,SAAUhV,GAClCuB,EAAM0T,SAAS,CAAEC,aAAa,IAC9B3T,EAAMwT,kBAAmB,CAC7B,EAIAxT,EAAM4T,qBAAuB,YACrB,UACA5T,EAAM6T,aAAa7T,EAAM8T,yBAAyB,EAE1D,EAIA9T,EAAM+T,kBAAoB,SAAUtV,GAChC,IAAI+O,EAAaxN,EAAM8T,wBACvB9T,EAAMgU,mBAAmBxG,EAAYxN,EAAMyN,OAAO,GAAO,GACzDzN,EAAM0T,SAAS,CAAEC,aAAa,IAE9B3T,EAAMiU,OAAO1C,YAAW,WAIpBvR,EAAM6T,aAAa7T,EAAM8T,yBAAyB,EACtD,GAAG,EACP,EACA9T,EAAMkU,SAAW,WACTlU,EAAMyN,OAAyB,KAAhBzN,EAAMyN,OAAgBzN,EAAMwT,mBAC3CxT,EAAMwT,kBAAmB,EAEjC,EACAxT,EAAMgC,WAAa,SAAUvD,GAMzB,GALIuB,EAAM5G,MAAMiJ,WACZrC,EAAM5G,MAAMiJ,UAAU5D,IAIrBA,EAAG0V,YAAYR,YAEhB,OAAQlV,EAAGqE,OACP,KAAK,IAASsR,UACVpU,EAAMwT,kBAAmB,EACzB,MACJ,KAAK,IAASrQ,KACd,KAAK,IAASI,MACNvD,EAAMwT,mBACNxT,EAAM0T,UAAS,SAAUW,GAAQ,MAAO,CACpC7G,WAAYxN,EAAM5G,MAAMkb,uBAAyBD,EAAK7G,WACtD,IACJxN,EAAMwT,kBAAmB,GAE7B,MACJ,QACSxT,EAAMwT,mBAEyD,IAA5DxT,EAAM5G,MAAMmb,yBAAyBnH,QAAQ3O,EAAGqE,SAChD9C,EAAMwT,kBAAmB,GAMjD,EACAxT,EAAMwU,gBAAkB,SAAU/V,GAC9B,IAAIgP,EAAQzN,EAAM8T,sBAAsBrV,GAKxC,GAJKuB,EAAMjH,MAAM4a,aACb3T,EAAMgU,mBAAmBvG,EAAOzN,EAAMyN,MAAOhP,EAAG0V,YAAYR,eAG1D,WAAY3T,EAAMjH,MAAM4a,YAAc,CACxC,IAAIc,EAAuBhW,EAAG0V,YAAYR,YACtCA,OAAuC9W,IAAzB4X,EAAqCzU,EAAMjH,MAAM4a,YAAcc,EACjFzU,EAAM6T,aAAapG,EAAOkG,EAC9B,CACJ,EACA3T,EAAM0U,WAAa,WAInB,EAKA1U,EAAM6T,aAAe,SAAUrE,EAAUmF,GAGrC,GAAKnF,GAAYA,IAAaxP,EAAMyN,MAApC,CAIA,IAAIvV,EAAK8H,EAAM5G,MAAOwb,EAAgB1c,EAAG0c,cAAeC,EAAqB3c,EAAG2c,mBAC5ED,IACApF,GAAYoF,aAAqD,EAASA,EAAcpF,EAAUmF,KAAe,IAErH3U,EAAM0T,SAAS,CAAElG,WAAYgC,IAAY,WAAc,OAAOqF,aAA+D,EAASA,EAAmBrF,EAAUmF,EAAY,GAN/K,CAOJ,GACA,OAAuB3U,GACvBA,EAAMiU,OAAS,IAAI,IAAMjU,GACzBA,EAAMjH,MAAQ,CACVyU,WAAYpU,EAAM0b,qBAAuB,GACzCnB,aAAa,GAEV3T,CACX,CA0LA,OA3SA,QAAUsT,EAAU1T,GAkHpB0T,EAASyB,yBAA2B,SAAU3b,EAAOL,GAEjD,GAAIK,EAAM4b,8BAA+B,CAErC,IAAIC,EAAoB7b,EAAM4b,gCAG9B,GAA0B,OAAtBC,GAA8BA,IAAsBlc,EAAMyU,aAAezU,EAAM4a,YAC/E,OAAO,SAAS,QAAS,CAAC,EAAG5a,GAAQ,CAAEyU,WAAYyH,GAE3D,CACA,OAAO,IACX,EACA9X,OAAOgN,eAAemJ,EAAS/V,UAAW,iBAAkB,CACxD6M,IAAK,WACD,GAAItM,KAAKyV,cAActS,QAAS,CAC5B,IAAIiU,EAAepX,KAAKyV,cAActS,QACtC,MAzIQ,YAyIJiU,EAAaC,mBACND,EAAa3H,aAGb2H,EAAa7H,cAE5B,CAEI,OAAQ,CAEhB,EACAhD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemJ,EAAS/V,UAAW,kBAAmB,CACzD6M,IAAK,WACD,OAAOgL,QAAQtX,KAAKoX,cAAgBpX,KAAKoX,aAAa7H,iBAAmBvP,KAAKoX,aAAa3H,aAC/F,EACAlD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemJ,EAAS/V,UAAW,QAAS,CAC/C6M,IAAK,WACD,OAAOtM,KAAKuX,uBAAyBvX,KAAK/E,MAAMyU,YAAc,EAClE,EACAnD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemJ,EAAS/V,UAAW,iBAAkB,CACxD6M,IAAK,WACD,OAAOtM,KAAKyV,cAActS,QAAUnD,KAAKyV,cAActS,QAAQoM,gBAAkB,CACrF,EACAhD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemJ,EAAS/V,UAAW,eAAgB,CACtD6M,IAAK,WACD,OAAOtM,KAAKyV,cAActS,QAAUnD,KAAKyV,cAActS,QAAQsM,cAAgB,CACnF,EACAlD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemJ,EAAS/V,UAAW,eAAgB,CACtD6M,IAAK,WACD,OAAOtM,KAAKyV,cAActS,OAC9B,EACAoJ,YAAY,EACZC,cAAc,IAElBgJ,EAAS/V,UAAUuK,mBAAqB,SAAUwN,EAAGC,EAAIC,GACrD,IAAItd,EACA2H,EAAK/B,KAAK1E,MAAOkb,EAAwBzU,EAAGyU,sBAAuBmB,EAAiD5V,EAAG4V,+CACvHC,EAAkB,EACtB,IAFmM7V,EAAG8V,sBAEtM,CAGA,IAAI3e,GAAoC,QAAvBkB,EAAK4F,KAAKtF,eAA4B,IAAPN,OAAgB,EAASA,EAAGkH,OAAOpI,YAAa,OAAY8G,KAAKyV,cAActS,SAE/H,GADgBnD,KAAKyV,cAActS,SAAWnD,KAAKyV,cAActS,WAAajK,aAA2C,EAASA,EAASwL,gBAEvI1E,KAAK0V,kBACL1V,KAAK2P,OACL6G,GACAsB,EAAmBtB,EAAuBxW,KAAK2P,OAAQ,CACvD,IAAIoI,GAAwB,EAI5B,GAHIJ,IACAI,EAAwBJ,KAExBI,EACA/X,KAAKyV,cAActS,QAAQ6U,kBAAkB,EAAGxB,EAAsB9a,OAAQ6Z,OAE7E,CACD,KAAOqC,EAAkB5X,KAAK2P,MAAMjU,QAChCsE,KAAK2P,MAAMiI,GAAiBK,sBAAwBzB,EAAsBoB,GAAiBK,qBAC3FL,IAEAA,EAAkB,GAClB5X,KAAKyV,cAActS,QAAQ6U,kBAAkBJ,EAAiBpB,EAAsB9a,OAAQ6Z,EAEpG,CACJ,MACSvV,KAAKyV,cAActS,UACT,OAAXuU,GAAoB1X,KAAK0V,kBAAqB1V,KAAK/E,MAAM4a,aACzD7V,KAAKyV,cAActS,QAAQ6U,kBAAkBN,EAAOQ,MAAOR,EAAO1Q,IAAK0Q,EAAOS,KA3BtF,CA8BJ,EACA3C,EAAS/V,UAAU6K,qBAAuB,WACtCtK,KAAKmW,OAAO5F,SAChB,EACAiF,EAAS/V,UAAUxB,OAAS,WACxB,IAAIma,GAAc,QAAepY,KAAK1E,MAAO,MACzC+c,GAAQ,SAAS,QAAS,CAAC,EAAGrY,KAAK1E,MAAM+c,OAAQ,CAAEC,WAAY,YACnE,OAAQ,gBAAoB,SAAS,QAAS,CAAEC,eAAgB,MAAOC,aAAc,MAAO,oBAAqB,QAAUJ,EAAa,CAAEC,MAAOA,EAAO/M,IAAKtL,KAAKyV,cAAe9F,MAAO3P,KAAKyY,mBAAoBC,mBAAoB1Y,KAAK2V,oBAAqBgD,oBAAqB3Y,KAAK8V,qBAAsB8C,iBAAkB5Y,KAAKiW,kBAElU7E,SAAUpR,KAAK4W,WAAYiC,QAAS7Y,KAAK0W,gBAAiBnS,UAAWvE,KAAKkE,WAAY4U,QAAS9Y,KAAK1E,MAAMwd,QAAU9Y,KAAK1E,MAAMwd,QAAU9Y,KAAKoW,SAAU,iBAAiB,IACjL,EACAZ,EAAS/V,UAAU4D,MAAQ,WACvBrD,KAAKyV,cAActS,SAAWnD,KAAKyV,cAActS,QAAQE,OAC7D,EACAmS,EAAS/V,UAAUsZ,MAAQ,WACvB/Y,KAAK0V,kBAAmB,EACxB1V,KAAK+V,aAAa,IAAI,GACtB/V,KAAKyV,cAActS,SAAWnD,KAAKyV,cAActS,QAAQ6U,kBAAkB,EAAG,EAClF,EACAxC,EAAS/V,UAAUuZ,wBAA0B,WACzC,IAAI5e,EAAI2H,EACJkX,EAAOjZ,KAAKyV,cAActS,QAC9B,OAAI8V,GAAQA,EAAK1J,iBAAmBvP,KAAK2P,MAAMjU,OACpC,CACHwc,MAAsC,QAA9B9d,EAAK6e,EAAK1J,sBAAmC,IAAPnV,EAAgBA,EAAK6e,EAAKtJ,MAAMjU,OAC9EsL,IAAkC,QAA5BjF,EAAKkX,EAAKxJ,oBAAiC,IAAP1N,EAAgBA,EAAKkX,EAAKtJ,MAAMjU,OAC1Eyc,IAAKc,EAAK5B,oBAAsB,YAGjC,IACX,EACA7B,EAAS/V,UAAUuW,sBAAwB,SAAUrV,GACjD,OAAIA,GAAMA,EAAGjH,QAAUiH,EAAGjH,OAAOiW,MACtBhP,EAAGjH,OAAOiW,MAEZ3P,KAAKoX,cAAgBpX,KAAKoX,aAAazH,MACrC3P,KAAKoX,aAAazH,MAGlB,EAEf,EAYA6F,EAAS/V,UAAUyW,mBAAqB,SAAUxE,EAAUwH,EAAUrD,EAAasD,IAC1EtD,GACDnE,GACA1R,KAAKyV,cAActS,SACnBnD,KAAKyV,cAActS,QAAQoM,iBAAmBmC,EAAShW,SACtDsE,KAAK0V,mBACLhE,EAAShW,OAASwd,EAASxd,QAAUyd,KACtCnZ,KAAK0V,kBAAmB,EAEhC,EACAF,EAAS/V,UAAUgZ,iBAAmB,WAClC,OAAIzY,KAAK0V,kBA6BShG,EA5BU1P,KAAK2P,MA4BH6G,EA5BUxW,KAAK1E,MAAMkb,sBA6BnD4C,EAAe1J,EACf8G,GAAyB9G,GAAcoI,EAAmBtB,EAAuB4C,KACjFA,EAAe5C,GAEZ4C,GA/BIpZ,KAAK2P,MA0BpB,IAA0BD,EAAY8G,EAC9B4C,CA1BJ,EACA5D,EAAS/V,UAAU8X,oBAAsB,WACrC,IAAI5H,EAAQ3P,KAAK1E,MAAMqU,MACvB,YAAc5Q,IAAV4Q,GAAwC,iBAAVA,EACvBA,GAGX0J,QAAQC,KAAK,yDAAyD9G,OAAO7C,EAAO,kBAAkB6C,cAAc7C,IAC7GA,EAAM4J,WACjB,EACA/D,EAAS7M,aAAe,CACpB8N,yBAA0B,CAAC,IAAS3Q,KAAM,IAASH,KAGvD6P,EAASgE,YAAc,KAChBhE,CACX,CA7S6B,CA6S3B,aAgBF,SAASsC,EAAmB2B,EAAMC,GAC9B,SAAKD,IAASC,IAa6D,IAApED,EAAKxB,oBAAoB3I,QAAQoK,EAAUzB,oBACtD,C,kOC1UI0B,GAAgB,EAAAC,EAAA,KAEhBC,EAAe,WAAc,OAAO,IAAM,EAC1CC,EAAyB,CACzBze,OAAQ,SAAUC,GAEd,MAAO,CACHmO,KAAM,CACF2B,UAAW,CACP,gBAAiB,CACb2O,MALJze,EAAMJ,MAKW8e,eAAeC,YAKhD,GAKAC,EAAgC,SAAUpY,GAE1C,SAASoY,EAAe5e,GACpB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAiHxC,OAhHAkC,EAAMiY,WAAa,cAInBjY,EAAMkY,cAAgB,SAAUC,GAC5B,IAAIC,EAAgBD,EAAKC,cAAeC,EAAwBF,EAAKE,sBACjEC,EAAgBH,EAAK/e,MAAMkf,cAC3BC,EAAYH,EAAcE,GAC9B,GAAKC,EAML,OAHAH,GAAgB,QAAc,GAAIA,GAAe,IACnCI,OAAOF,EAAe,GACpCD,GAAwB,SAAc,QAAc,GAAIA,GAAuB,GAAO,CAACE,IAAY,IAC5F,SAAS,QAAS,CAAC,EAAGJ,GAAO,CAAEC,cAAeA,EAAeC,sBAAuBA,GAC/F,EAKArY,EAAMyY,YAAc,SAAUN,GAC1B,IAAIC,EAAgBD,EAAKC,cAAeC,EAAwBF,EAAKE,sBACjEngB,EAAKigB,EAAK/e,MAAOkf,EAAgBpgB,EAAGogB,cAAeI,EAAoBxgB,EAAGwgB,kBAE1EH,GADJF,GAAwB,QAAc,GAAIA,GAAuB,IAC3BvW,MACtC,GAAKyW,KAAaH,EAAc5e,QAAUkf,GAK1C,OAFAN,GAAgB,QAAc,GAAIA,GAAe,IACnCI,OAAOF,EAAe,EAAGC,IAChC,SAAS,QAAS,CAAC,EAAGJ,GAAO,CAAEC,cAAeA,EAAeC,sBAAuBA,GAC/F,EACArY,EAAM2Y,oBAAsB,SAAUR,GAClC,IAAIjgB,EAAKigB,EAAK/e,MAAOwf,EAAY1gB,EAAG0gB,UAAW/Y,EAAK3H,EAAG2gB,UAAWC,OAAqB,IAAPjZ,EAAgBkZ,EAAA,EAAOlZ,EAAImZ,EAAe9gB,EAAG8gB,aAAcC,EAAoB/gB,EAAG+gB,kBAAmBX,EAAgBpgB,EAAGogB,cAAeY,EAAuBhhB,EAAGghB,qBAAsBC,EAAmBjhB,EAAGihB,iBACzRd,EAAwBF,EAAKE,sBAAuBD,EAAgBD,EAAKC,cACzEgB,EAAkBf,EAAsB3e,KAAI,SAAU2f,GACtD,IAAIC,KAAkBD,EAAKzC,UAAWyC,EAAKE,MAC3C,MAAO,CACHhC,KAAM8B,EAAK9B,KACXzd,KAAMuf,EAAK9B,KACXiC,IAAKH,EAAKG,IACV5C,QAASyC,EAAKzC,QAAU5W,EAAMyZ,qBAAqBC,KAAK1Z,EAAOqZ,GAAQ,KACvEE,KAAMF,EAAKE,KACX3X,UAAW0X,EACXK,UAAWL,OAAezc,EAAY+a,EAE9C,IAGIgC,EAAgBxB,EAAc5e,OAAS,EACvCqgB,EAAmBxB,GAA0D,IAAjCA,EAAsB7e,OAClEsgB,EAAe1B,EAAc1e,KAAI,SAAU2f,EAAMU,GACjD,IAAIC,EAAoBha,EAAMia,cAO9B,OANIZ,EAAKa,WACLF,GAAoB,EAAAG,EAAA,GAAsBd,EAAKa,SAAUF,IAEzDhB,IACAgB,GAAoB,EAAAG,EAAA,GAAsBnB,EAAcgB,IAEpD,gBAAoB,KAAM,CAAEte,UAAWsE,EAAMoa,YAAYC,SAAUb,IAAKH,EAAKG,KAAO3S,OAAOkT,IAC/FC,EAAkBX,IACjBU,IAAUH,GAAkBC,GAAoBE,IAAUzB,EAAgB,IAAQ,gBAAoBQ,EAAa,CAAEpd,UAAWsE,EAAMoa,YAAYE,QAASC,UAAU,QAAOva,EAAM5G,MAAMJ,OAAS,cAAgB,eAAgBqgB,KAAMA,IAChP,IACA,GAAIQ,EAAkB,CAClB,IAAIW,EAAatB,EAA8C,CAAC,EAAxB,CAAEqB,SAAU,QAChDE,EAAmBvB,GAA8CvB,EACjE+C,EAAiBvB,GAAsCwB,EAAA,EAC3Db,EAAatB,OAAOF,EAAe,EAAG,gBAAoB,KAAM,CAAE5c,UAAWsE,EAAMoa,YAAYQ,SAAUpB,IA1FtG,YA2FC,gBAAoBkB,EAAgB,CAAEhf,UAAWsE,EAAMoa,YAAYS,eAAgBL,UAAWA,EAAWM,KAAM,SAAU,gBAAiB,OAAQlC,UAAWK,EAAmBwB,iBAAkBA,EAAkBM,UAAW,CACvNC,MAAO5B,EACP6B,gBAAiB3I,EAAA,EAAgBK,kBAEzC2F,IAAkBsB,EAAgB,GAAM,gBAAoBd,EAAa,CAAEpd,UAAWsE,EAAMoa,YAAYE,QAASC,UAAU,QAAOva,EAAM5G,MAAMJ,OAAS,cAAgB,eAAgBqgB,KAAMhB,EAAsBA,EAAsB7e,OAAS,MAC1P,CACA,IAAI0c,GAAc,QAAelW,EAAM5G,MAAO,KAAuB,CACjE,cAEJ,OAAQ,gBAAoB,OAAO,QAAS,CAAEsC,UAAWsE,EAAMoa,YAAY7S,KAAMuT,KAAM,aAAc,aAAclC,GAAa1C,GAC5H,gBAAoBvW,EAAA,GAAW,QAAS,CAAEub,aAAclb,EAAMiY,WAAYhW,UAAW,IAAmByB,YAAc1D,EAAM5G,MAAM+hB,gBAC9H,gBAAoB,KAAM,CAAEzf,UAAWsE,EAAMoa,YAAYgB,MAAQtB,IAC7E,EACA9Z,EAAMia,cAAgB,SAAUZ,GAC5B,IAAKA,EACD,OAAO,KAEX,IAAI7Q,EAAK6Q,EAAK7Q,GAAI+Q,EAAOF,EAAKE,KAAM3C,EAAUyC,EAAKzC,QAASyE,EAAgBhC,EAAKgC,cAAe9D,EAAO8B,EAAK9B,KAAM+D,EAAkBjC,EAAKiC,gBAAiBC,GAAkB,QAAOlC,EAAM,CAAC,KAAM,OAAQ,UAAW,gBAAiB,OAAQ,oBACxOmC,EAAuBC,EAO3B,GANIH,IACAE,GAAuB,EAAArB,EAAA,GAAsBmB,EAAiBE,IAE9Dxb,EAAM5G,MAAMsiB,sBACZF,GAAuB,EAAArB,EAAA,GAAsBna,EAAM5G,MAAMsiB,oBAAqBF,IAE9E5E,GAAW2C,EACX,OAAQ,gBAAoBoC,EAAA,GAAM,QAAS,CAAC,EAAGJ,EAAiB,CAAE/S,GAAIA,EAAI9M,UAAWsE,EAAMoa,YAAYwB,SAAUrC,KAAMA,EAAM,eAAgB8B,EAAgB,YAASxe,EAElK+Z,QAAS5W,EAAMyZ,qBAAqBC,KAAK1Z,EAAOqZ,KAChD,gBAAoBwC,EAAA,GAAa,QAAS,CAAEC,QAASvE,EAAMwE,aAAc,IAAoBC,QAAUhc,EAAM5G,MAAM6iB,kBAAmBT,EAAqBnC,KAG/J,IAAIvQ,EAAMN,GAAM,OAChB,OAAQ,gBAAoBM,GAAK,QAAS,CAAC,EAAGyS,EAAiB,CAAE7f,UAAWsE,EAAMoa,YAAYf,OAC1F,gBAAoBwC,EAAA,GAAa,QAAS,CAAEC,QAASvE,EAAMwE,aAAc,IAAoBC,QAAUhc,EAAM5G,MAAM6iB,kBAAmBT,EAAqBnC,IAEvK,EACArZ,EAAMyZ,qBAAuB,SAAUJ,EAAM5a,GACrC4a,EAAKzC,SACLyC,EAAKzC,QAAQnY,EAAI4a,EAEzB,GACA,EAAAjT,EAAA,GAAuBpG,GACvBA,EAAMkc,eAAe9iB,GACd4G,CACX,CA0CA,OA9JA,QAAUgY,EAAgBpY,GAwH1BoY,EAAeza,UAAU4D,MAAQ,WACzBrD,KAAKma,WAAWhX,SAChBnD,KAAKma,WAAWhX,QAAQE,OAEhC,EACA6W,EAAeza,UAAUxB,OAAS,WAC9B+B,KAAKoe,eAAepe,KAAK1E,OACzB,IAAIlB,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGikB,aAAcA,OAAsB,IAAPtc,EAAgB/B,KAAKoa,cAAgBrY,EAAIC,EAAK5H,EAAGkkB,WAAYA,OAAoB,IAAPtc,EAAgBhC,KAAK2a,YAAc3Y,EAAIwY,EAAgBpgB,EAAGogB,cAAeI,EAAoBxgB,EAAGwgB,kBAAmBsC,EAAQ9iB,EAAG8iB,MAAOtf,EAAYxD,EAAGwD,UAAW1C,EAAQd,EAAGc,MAAOG,EAASjB,EAAGiB,OAC7Tif,GAAgB,QAAc,GAAI4C,GAAO,GACzC3C,EAAwBD,EAAcI,OAAOF,EAAeF,EAAc5e,OAASkf,GACnF2D,EAAiB,CACjBjjB,MAAO0E,KAAK1E,MACZgf,cAAeA,EACfC,sBAAuBA,GAM3B,OAJAva,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCuC,UAAWA,EACX1C,MAAOA,IAEH,gBAAoBsjB,EAAA,EAAa,CAAEC,aAAcze,KAAK6a,oBAAqBwD,aAAcA,EAAcC,WAAYA,EAAYjE,KAAMkE,GACjJ,EAKArE,EAAeza,UAAU2e,eAAiB,SAAU9iB,GAChD,IAAIsf,EAAoBtf,EAAMsf,kBAAmBJ,EAAgBlf,EAAMkf,cAAe0C,EAAQ5hB,EAAM4hB,MACpG,GAAI1C,EAAgB,GACfI,EAAoB,GAAKJ,EAAgBI,EAAoB,GAC7DsC,EAAMxhB,OAAS,GAAK8e,EAAgB0C,EAAMxhB,OAAS,EACpD,MAAM,IAAIkD,MAAM,yCAExB,EACAsb,EAAevR,aAAe,CAC1BuU,MAAO,GACPtC,kBAAmB,IACnBJ,cAAe,GAEZN,CACX,CAhKmC,CAgKjC,aAEF,SAASyD,EAA4BpC,GACjC,OAAOA,EAAO,gBAAoB,WAAgB,KAAMA,EAAK9B,MAAQ,IACzE,C,0BChMIiF,EAAmB,CACnBjV,KAAM,gBACN6T,KAAM,qBACNf,SAAU,yBACVC,QAAS,wBACTM,SAAU,yBACVC,eAAgB,+BAChBe,SAAU,yBACVvC,KAAM,sBAENoD,EAAsB,CACtBC,WAAY,SACZC,aAAc,WACd/B,SAAU,UAMVgC,GAAwB,QAAkB,EAAG,MAC7CC,GAAuB,QAAkB,KAAsB,MCpBxDC,GAAa,EAAAC,EAAA,GAAO/E,GDqBR,SAAU5e,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBthB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3CikB,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GAEnDmkB,EAA6BrF,EAAesF,0BAC5CC,EAA6BvF,EAAewF,0BAC5CC,EAAgBN,EAAQO,iBACxBC,EAAqB,KAAYC,QACjCC,EAAgCV,EAAQW,eACxCC,EAAyBZ,EAAQW,eACjCE,EAA8B,KAAYC,SAC1CC,EAAqBf,EAAQO,iBAC7BS,EAAsBhB,EAAQO,iBAC9BU,EAAsB,CACtBC,WAAYL,EACZjG,MAAOgG,GAEPO,EAAqB,CACrB,SAAU,CACNvG,MAAO8F,EACPU,gBAAiBlB,EACjB3H,OAAQ,UACRtM,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,YACPwG,gBAAiB,eAErBnmB,IAER,UAAW,CACPmmB,gBAAiBhB,EACjBxF,MAAO8F,GAEX,iBAAkB,CACd9F,MAAO8F,EACPU,gBAAiBhB,GAErB,oCAAqC,CACjCiB,eAAgB,SAGpBC,EAAmB,CACnB1G,MAAO0F,EACPiB,QAAS,QACTC,WAlDa,GAmDbC,SAlDW,GAmDXP,WAAYV,GAQhB,MAAO,CACHlW,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACN,CACIC,OAAQ,cAEZljB,GAEJ0f,KAAM,CACF7f,EAAW6f,KACX,CACIsB,WAAY,SACZ8B,QAAS,EACTI,OAAQ,EACRC,QAAS,OACTC,WAAY,YAGpBzE,SAAU,CACN9e,EAAW8e,SACX,CACI0E,cAAe,OACfH,OAAQ,IACRJ,QAAS,IACTK,QAAS,OACTG,SAAU,WACVF,WAAY,SACZ5V,UAAW,CACP,wCAAwC,SAAS,QAAS,CAAC,EAAGgV,IAAuBre,EAAK,CAAC,EAAGA,EAAG,MAAwB,CACrHof,qBAAsB,OACtBC,kBAAmB,QACpBrf,IACH,mCAAoCqe,KAIhD5D,QAAS,CACL/e,EAAW+e,QACX,CACIzC,MAAOmG,EACPU,SAAUxB,EAAMiC,MAAMT,SACtBxV,WAAYpJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE+X,MAAO,eAAgB,WAC7D/X,EAAG+c,GAAwB,CACvB6B,SA1GG,GA4GP5e,EAAG8c,GAAyB,CACxB8B,SA7GG,GA+GP5e,KAGZ8a,SAAU,CACNrf,EAAWqf,SACX,CACIoE,SAAU,WACVH,QAAS,OACTC,WAAY,WAGpBjE,eAAgB,CACZtf,EAAWsf,gBACX,QAAc7hB,EAAO,CAAEomB,kBArEO,CAClCjc,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,KAkEJ0W,EACA,CACIiC,SAhIa,GAiIb7G,MAAOoG,EACPjR,OAAQ,OACRwI,OAAQ,UACRtM,WAAW,SAAS,QAAS,CAAC,EAAGkV,IAAsBre,EAAK,CAAC,EAAGA,EAAG6c,GAAyB,CACxF4B,QAAS,WACVze,EAAG8c,GAAwB,CAC1B6B,SAAUxB,EAAMmC,WAAWX,UAC5B3e,MAGX6b,SAAU,CACNrgB,EAAWqgB,UACX,QAAc5iB,GACdyjB,GACA,SAAS,QAAS,CAAC,EAAG8B,GAAmB,CAAErV,WAAW,SAAU8T,EAAK,CAAE,SAAU,CACjEnF,MAAOoF,EAAQqC,cACdtC,EAAG,IAAI1M,OAAO,KAAyB,aAAe,CAC/DnH,QAAS,QACV6T,GAAKoB,MAEhB/E,KAAM,CACF9d,EAAW8d,MACX,SAAS,QAAS,CAAC,EAAGkF,GAAmB,CAAErV,UAAW,CAC9C,SAAU,CACNsM,OAAQ,eAKhC,QC7K0D3Y,EAAW,CAAE0iB,MAAO,c,wGCK1EC,EAA8B,SAAU5f,GAExC,SAAS4f,IACL,OAAkB,OAAX5f,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAQA,OAXA,QAAU0hB,EAAc5f,GAIxB4f,EAAajiB,UAAUxB,OAAS,WAC5B,IAAI7D,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MACpD,OAAQ,gBAAoB,KAAY,QAAS,CAAC,EAAG8E,KAAK1E,MAAO,CAAEqmB,iBAAkB,uCAAwCtmB,QAAQ,OAAUH,EAAOG,GAASumB,oBAAqB,MACxL,GACe,QAAW,EACtB,OAAa,eAAgB,CAAC,QAAS,WAAW,IACnDF,EAEP,CAbiC,CAa/B,Y,uEChBSG,GAAY,SAAgB,SAAU3mB,EAAO4mB,GACpD,IAAI1nB,EAAI2H,EAAIC,EACR+f,GAAmB,OAAoB7mB,GACvC8mB,EAAqB,CACrBvY,KAAM,CACFiX,QANU,QAOVxR,OARgB,OAShB6K,MAAO7e,EAAMikB,QAAQW,eACrBS,gBAAiB,cACjB0B,OAAQ,wBACR7W,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,UAEjB9nB,IAER+nB,YAAa,CACTpI,MAAO7e,EAAMikB,QAAQiD,aACrBhX,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,aAEXhY,IAERsgB,YAAa,CACTtI,MAAO7e,EAAMikB,QAAQiD,cAEzBE,YAAa,CACTvI,MAAO7e,EAAMikB,QAAQoD,OAEzBC,aAAc,CACVzI,MAAO7e,EAAMikB,QAAQiD,cAEzBK,YAAa,CACT1I,MAAO7e,EAAMikB,QAAQuD,aAEzBC,aAAc,CACV5I,MAAO7e,EAAMikB,QAAQyD,gBACrBrC,gBAAiB,cACjB2B,YAAa,cACb9W,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,YAEX/X,IAER6gB,YAAa,CACT9I,MAAO7e,EAAMikB,QAAQoD,OAEzBO,YAAa,CACT/I,MAAO7e,EAAMikB,QAAQuD,aAEzBK,cAAe,CACXC,eAAgB,cAEpBC,KAAM,CACFlJ,MAAO7e,EAAMikB,QAAQ+D,cAEzBC,aAAc,CACVpJ,MAAO,WAEXqJ,SAAU,CACNrJ,MAAO7e,EAAMikB,QAAQO,kBAEzB2D,cAAe,CACXC,SAAU,IAGlB,OAAO,QAAgBvB,EAAkBC,EAAoBF,EACjE,G,qECxEWyB,EAAyB,CAChCC,SAAU,YACVC,gBAAiB,qBACjBC,aAAc,iBACdC,iBAAkB,qBAClBC,cAAe,kBACfC,oBAAqB,wBACrBC,yBAA0B,6BAC1BC,sBAAuB,0BACvBC,sBAAuB,2BAEhBC,GAA0B,SAAgB,SAAU/oB,EAAOG,EAAQuC,EAAW+jB,EAAkBuC,EAAeC,EAAmBrgB,EAAUsgB,EAASC,EAASC,EAAUC,GAC/K,IAAInqB,EAAI2H,EACJtE,GAAa,QAAoB8lB,EAAwBroB,GAAS,CAAC,GACnEspB,EAAaF,IAAaC,EAC9B,OAAO,QAAe,CAClB9a,KAAM,CACFhM,EAAW+lB,SACXnoB,EAAOoO,KACPkY,EACA0C,GAAW,CAAC,aAAchpB,EAAOwnB,aACjC2B,GAAc,CACV,cACAnpB,EAAOmnB,aACP,CACIpX,WAAYhR,EAAK,CAAC,EACdA,EAAG,WAAWoY,OAAO/U,EAAWimB,eAAiBroB,EAAOopB,oBAExDrqB,EAAG,WAAWoY,OAAO/U,EAAWkmB,mBAAqBtoB,EAAOqpB,yBAA2BrpB,EAAOspB,oBAC9FvqB,EAAG,UAAYiB,EAAOspB,oBACtBvqB,KAGZgqB,GAAW,CAACb,EAAuBE,gBAAiBpoB,EAAOupB,aAC3D9gB,GAAY,CAAC,cAAezI,EAAOsnB,eAClC7e,IACI0gB,IACAH,GAAW,CACZjZ,WAAYrJ,EAAK,CACT,SAAU1G,EAAO8mB,aAErBpgB,EAAG,WAAWyQ,OAAO/U,EAAWmmB,gBAAkBvoB,EAAOwpB,aACzD9iB,EAAG,WAAWyQ,OAAO/U,EAAWimB,eAAiBroB,EAAOgnB,YACxDtgB,EAAG,WAAWyQ,OAAO/U,EAAWomB,sBAAwBxoB,EAAOypB,mBAC/D/iB,EAAG,WAAWyQ,OAAO/U,EAAWkmB,mBAAqBtoB,EAAO0pB,gBAC5DhjB,EAAG,UAAY1G,EAAO2pB,YACtBjjB,EAAG,WAAa1G,EAAOinB,YACvBvgB,EAAG,YAAYyQ,OAAO/U,EAAWimB,eAAiBroB,EAAOonB,YACzD1gB,EAAG,YAAYyQ,OAAO/U,EAAWomB,sBAAwBxoB,EAAO4pB,mBAChEljB,EAAG,YAAYyQ,OAAO/U,EAAWkmB,mBAAqBtoB,EAAO6pB,gBAC7DnjB,IAER+B,GAAYugB,GAAW,CAAChpB,EAAO8pB,sBAC9BrhB,GACGugB,GAAW,CACXjZ,UAAW,CACP,SAAU/P,EAAO+pB,mBACjB,UAAW/pB,EAAOgqB,qBAG1BznB,GAEJmlB,cAAe,CAACtlB,EAAWsmB,sBAAuB1oB,EAAO0nB,eACzDM,cAAe,CAAC5lB,EAAWumB,sBAAuB3oB,EAAOgoB,eACzDJ,KAAM,CACFxlB,EAAWimB,aACXQ,EACA7oB,EAAO4nB,KACPuB,GAAcnpB,EAAOiqB,aACrBjB,GAAWhpB,EAAOynB,YAClBhf,GAAYzI,EAAO8nB,cAEvBoC,MAAO,CAAC9nB,EAAWmmB,cAAevoB,EAAOkqB,MAAOlB,GAAWhpB,EAAOmqB,aAAc1hB,GAAYzI,EAAOoqB,eACnGrC,SAAU,CACN3lB,EAAWkmB,iBACXQ,EACA9oB,EAAO+nB,SACPiB,GAAWhpB,EAAOqqB,gBAClB5hB,IAAaygB,GAAWlpB,EAAOsqB,kBAC9B7hB,IACI0gB,IACAH,GAAW,CACZjZ,UAAW,CACP,SAAU/P,EAAO0pB,gBACjB,UAAW1pB,EAAO6pB,kBAG1BV,GAAc,CAAC,cAAenpB,EAAOuqB,mBAEzCC,YAAa,CACTpoB,EAAWomB,oBACXxoB,EAAOwqB,YACPxB,GAAWhpB,EAAOyqB,mBAClBhiB,GAAYzI,EAAO0qB,qBAEvBC,iBAAkB,CAACvoB,EAAWqmB,yBAA0BzoB,EAAO2qB,mBAEvE,G,iSCzFWC,EAAY,SAAU3qB,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWsoB,EAAa5qB,EAAM4qB,WAChD9N,GAAc,QAAe9c,EAAO,KAAuB,CAC3D,aACA,kBACA,QACA,qBAEA6qB,EAAUD,EAAWE,KAAO9qB,EAAM,cAClC+qB,EAAUF,GACV7qB,EAAM,oBACNA,EAAMgrB,OACNJ,EAAW,eACXA,EAAW,oBACXA,EAAWI,MAEXC,EAAiB,CACjB,kBAAmBjrB,EAAM,mBACzB,mBAAoBA,EAAM,oBAC1BgrB,MAAOhrB,EAAMgrB,OAEbE,EAAiBH,EACf,CAAC,EACD,CACE,eAAe,GAEvB,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGG,EAAgBpO,EAAa,CAAExa,WAAW,EAAAsN,EAAA,GAAI,KAAS,KAAWzB,KAAM,KAAWgd,MAAO7oB,KACtI,gBAAoB8oB,EAAA,GAAO,QAAS,CAAC,EAAGH,EAAgBL,EAAY,CAAEE,IAAKC,EAAUF,EAAU,MACvG,E,4CCpCW,GAA2B,EAAAQ,EAAA,KAAgB,SAAUtrB,EAAQyI,EAAUwgB,EAAUD,EAASuC,GACjG,MAAO,CACHnd,MAAM,QAAYpO,EAAOwrB,sBAAuBvC,GAAY,CAACjpB,EAAOyrB,+BAAgChjB,GAAY,CAACzI,EAAO0rB,+BAAgC1C,IAAYvgB,GAAY,CAACzI,EAAO2rB,8BAA+BJ,IAClN9iB,GAAY,CACb,CACIsH,UAAW,CACP,SAAU/P,EAAO4rB,2BAI7BC,sBAAsB,QAAY7rB,EAAO6rB,sBAAuBpjB,GAC5DugB,GAAW,CACXhpB,EAAO8rB,4BACP,CACI/b,UAAW,CACP,SAAU/P,EAAO+rB,uCAGzBtjB,IACCugB,GAAW,CACZ,CACIjZ,UAAW,CACP,SAAU/P,EAAOgsB,4BACjB,SAAUhsB,EAAOisB,+BAG1BxjB,GAAYzI,EAAOksB,8BACtBtE,MAAM,QAAY5nB,EAAOmsB,oBAAqB1jB,GAAYzI,EAAOosB,6BAA8B3jB,GAAY8iB,GAAmBvrB,EAAOmsB,qBACrIzE,eAAe,QAAY1nB,EAAOqsB,0BAClCC,SAAS,QAAYtsB,EAAOusB,oBAAqBhB,GAAmB9iB,IAAazI,EAAOwsB,4BAEhG,I,sBCtBIC,EAAiB,aAIjBC,EAA4B,SAAUjmB,GAEtC,SAASimB,EAAWzsB,GAChB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAqRxC,OApRAkC,EAAM8lB,eAAiB,cACvB9lB,EAAM+lB,sBAAwB,cAC9B/lB,EAAME,YAAa,EAAAC,EAAA,KACnBH,EAAMgmB,sBAAuB,EAC7BhmB,EAAMimB,mCAAoC,EAAAxB,EAAA,KAAgB,SAAUyB,GAChE,OAAO,SAAS,QAAS,CAAC,EAAGA,GAAc,CAAEhE,SAAS,GAC1D,IACAliB,EAAMmmB,cAAgB,SAAUC,EAAaC,GACzC,IAAI7L,EAAYxa,EAAM5G,MAAMohB,UAC5B,GAAIA,SAAqC3d,IAAvB2d,EAAUD,UAA0BC,EAAUwJ,YAAa,CACzE,IAAItoB,EAAY8e,EAAU9e,UAAWsoB,EAAaxJ,EAAUwJ,WAAYsC,GAAO,QAAO9L,EAAW,CAAC,YAAa,eAG/G,GAAIA,EAAUrhB,OACV,OAAO,gBAAoB4f,EAAA,GAAM,QAAS,CAAErd,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAY2G,KAAMrlB,GAAYsoB,WAAYA,GAAcsC,IAE7H,GAAI9L,EAAUD,SACV,OAAO,gBAAoBgM,EAAA,IAAU,QAAS,CAAE7qB,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAY2G,KAAMrlB,IAAc4qB,IAEzG,GAAItC,EACA,OAAO,gBAAoBD,GAAW,QAAS,CAAEroB,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAY2G,KAAMrlB,GAAYsoB,WAAYA,GAAcsC,GAEtI,CACA,OAAO,IACX,EACAtmB,EAAMwmB,sBAAwB,WAC1B,IAAItuB,EAAK8H,EAAM5G,MAAOme,EAAOrf,EAAGqf,KAAM/c,EAAWtC,EAAGsC,SAEpDqF,EAAK3H,EAAGuuB,cAERA,OAAuB,IAAP5mB,EAAgBG,EAAM5G,MAAMuqB,YAAc9jB,EAAIC,EAAK5H,EAAGwuB,aAAcA,OAAsB,IAAP5mB,EAAgBE,EAAM2mB,cAAgB7mB,EAAIC,EAAK7H,EAAGwnB,oBAAqBA,OAA6B,IAAP3f,EAAgBC,EAAM4mB,qBAAuB7mB,EAC7O,OAAIwX,GAA4B,iBAAb/c,GAAyBisB,EAChC,gBAAoB,OAAQ,CAAE/qB,UAAWsE,EAAMoa,YAAY+G,eAC/DuF,EAAa1mB,EAAM5G,MAAO4G,EAAM2mB,eAChCjH,EAAoB1f,EAAM5G,MAAO4G,EAAM4mB,uBAExC,CAACF,EAAa1mB,EAAM5G,MAAO4G,EAAM2mB,eAAgBjH,EAAoB1f,EAAM5G,MAAO4G,EAAM4mB,sBACnG,EACA5mB,EAAM2mB,cAAgB,WAClB,IAAIpP,EAAOvX,EAAM5G,MAAMme,KACnB/c,EAAWwF,EAAM5G,MAAMoB,SAK3B,YAHaqC,IAAT0a,GAA0C,iBAAb/c,IAC7B+c,EAAO/c,GAEPwF,EAAM6mB,WACE,gBAAoB,OAAQ,CAAErN,IAAKxZ,EAAM8mB,SAAUprB,UAAWsE,EAAMoa,YAAYiJ,MAAOhS,GAAIrR,EAAM8mB,UAAYvP,GAElH,IACX,EACAvX,EAAM+mB,kBAAoB,WACtB,IAAIvsB,EAAWwF,EAAM5G,MAAMoB,SAG3B,MAAwB,iBAAbA,EACA,KAEJA,CACX,EACAwF,EAAM4mB,qBAAuB,SAAUxtB,GAEnC,IAAIlB,EAAKkB,EAAMqtB,cAAeA,OAAuB,IAAPvuB,EAAgB8H,EAAM5G,MAAMuqB,YAAczrB,EAGxF,OAAOuuB,EAAiB,gBAAoB,OAAQ,CAAEjN,IAAKxZ,EAAMgnB,eAAgBtrB,UAAWsE,EAAMoa,YAAYuJ,YAAatS,GAAIrR,EAAMgnB,gBAAkBP,GAAkB,IAC7K,EACAzmB,EAAMinB,yBAA2B,WAC7B,IAAIC,EAAkBlnB,EAAM5G,MAAM8tB,gBAGlC,OAAOA,EAAmB,gBAAoB,OAAQ,CAAExrB,UAAWsE,EAAMoa,YAAY0J,iBAAkBzS,GAAIrR,EAAMmnB,oBAAsBD,GAAoB,IAC/J,EACAlnB,EAAMonB,kBAAoB,SAAUhuB,GAChC,IAAIiuB,EAAgBrnB,EAAM5G,MAAMiuB,cAChC,OAAO,gBAAoBd,EAAA,IAAU,QAAS,CAAEhM,SAAU,eAAiB8M,EAAe,CAAE3rB,UAAWsE,EAAMoa,YAAY8G,WAC7H,EACAlhB,EAAMsnB,cAAgB,SAAUvM,GAC5B,IAAIwM,EAAWvnB,EAAM5G,MAAMouB,QAAS,EAAAC,EAAA,GAAmBznB,EAAM5G,MAAMouB,OAAQE,EAAA,GAAkBA,EAAA,EAC7F,OAAO,gBAAoBH,GAAU,QAAS,CAAC,EAAGxM,GACtD,EACA/a,EAAM2nB,eAAiB,SAAUlpB,GAC7B,IAAIsc,EAAY/a,EAAM5G,MAAM2hB,UACxBA,GAAaA,EAAU6M,WACvB7M,EAAU6M,UAAUnpB,GAEnBA,GAAOA,EAAGopB,kBACX7nB,EAAM8nB,cAEd,EACA9nB,EAAM8nB,aAAe,WACjB9nB,EAAM+nB,6BAA0BlrB,EAChCmD,EAAMgoB,iCAA8BnrB,EACpCmD,EAAM0T,SAAS,CAAEuU,YAAY,GACjC,EACAjoB,EAAMkoB,UAAY,SAAUC,EAAwBtgB,QACrB,IAAvBA,IAAiCA,GAAqB,GACtD7H,EAAM5G,MAAM2hB,YACZ/a,EAAMgoB,4BAA8BG,EACpCnoB,EAAM+nB,wBAA0BlgB,EAChC7H,EAAMgmB,sBAAuB,EAC7BhmB,EAAM0T,SAAS,CAAEuU,YAAY,IAErC,EACAjoB,EAAMooB,cAAgB,SAAUD,GAC5B,IAAItgB,GAAqB,EACrB7H,EAAM5G,MAAM2hB,YAA0D,IAA7C/a,EAAM5G,MAAM2hB,UAAUlT,qBAC/CA,GAAqB,GAEzB7H,EAAMjH,MAAMkvB,WAAajoB,EAAMkoB,UAAUC,EAAwBtgB,GAAsB7H,EAAM8nB,cACjG,EACA9nB,EAAMqoB,8BAAgC,SAAU5pB,GAC5C,IAAI6pB,EAAYtoB,EAAM+lB,sBAAsB9kB,SAEvCqnB,GAAc7pB,EAAGjH,SAAU,EAAAD,EAAA,GAAsBkH,EAAGjH,OAAQ8wB,IAKjEA,EAAUnnB,OACd,EACAnB,EAAMuoB,2BAA6B,SAAU9pB,GACpCuB,EAAMjH,MAAMkvB,YACbjoB,EAAM8nB,eAGV,IAAIU,EAAoBxoB,EAAMyoB,mBAAqBzoB,EAAM5G,MAAMuV,QAC1D6Z,GAAqBxoB,EAAM5G,MAAMwd,QAClC5W,EAAM5G,MAAMwd,QAAQnY,GAEf+pB,GACLxoB,EAAM0oB,aAAajqB,EAE3B,EACAuB,EAAMgC,WAAa,SAAUvD,IAGrBuB,EAAM5G,MAAMwI,UAAanD,EAAGqE,QAAUC,EAAA,EAASiC,OAASvG,EAAGqE,QAAUC,EAAA,EAASC,MAIxEhD,EAAM5G,MAAMwI,WACd5B,EAAM5G,MAAM2hB,UACZ/a,EAAM2oB,eAAelqB,QAEU5B,IAA1BmD,EAAM5G,MAAMiJ,WACjBrC,EAAM5G,MAAMiJ,UAAU5D,KAR1BA,EAAGyG,iBACHzG,EAAG+C,kBAUX,EACAxB,EAAM4oB,SAAW,SAAUnqB,GAClBuB,EAAM5G,MAAMwI,eAAoC/E,IAAxBmD,EAAM5G,MAAMyvB,SACrC7oB,EAAM5G,MAAMyvB,QAAQpqB,EAE5B,EACAuB,EAAM8oB,YAAc,SAAUrqB,GAErBuB,EAAM5G,MAAMwI,eAAuC/E,IAA3BmD,EAAM5G,MAAM2vB,YAErC/oB,EAAM5G,MAAM2vB,WAAWtqB,EAE/B,EACAuB,EAAMgpB,WAAa,SAAUvqB,GACpBuB,EAAM5G,MAAMwI,eAAsC/E,IAA1BmD,EAAM5G,MAAM6vB,WACrCjpB,EAAM5G,MAAM6vB,UAAUxqB,EAE9B,EACAuB,EAAM2B,aAAe,SAAUlD,GACtBuB,EAAM5G,MAAMwI,eAAwC/E,IAA5BmD,EAAM5G,MAAM8vB,aACrClpB,EAAM5G,MAAM8vB,YAAYzqB,EAEhC,EACAuB,EAAMkU,SAAW,SAAUzV,GAClBuB,EAAM5G,MAAMwI,WACT5B,EAAM5G,MAAM2hB,UACZ/a,EAAM0oB,aAAajqB,QAEU5B,IAAxBmD,EAAM5G,MAAMwd,SACjB5W,EAAM5G,MAAMwd,QAAQnY,GAGhC,EACAuB,EAAMmpB,+BAAiC,SAAU1qB,GAEzCA,EAAGqE,QAAUC,EAAA,EAASiC,OAASvG,EAAGqE,QAAUC,EAAA,EAASC,MACjDhD,EAAM8lB,eAAe7kB,UACrBjB,EAAM8lB,eAAe7kB,QAAQmoB,QAC7B3qB,EAAGyG,iBACHzG,EAAG+C,mBAIPxB,EAAM2oB,eAAelqB,EAE7B,EACAuB,EAAM2oB,eAAiB,SAAUlqB,GAC7B,IAAIvG,EACJ,IAAI8H,EAAM5G,MAAMwI,SAAhB,CAGI5B,EAAM5G,MAAMiJ,WACZrC,EAAM5G,MAAMiJ,UAAU5D,GAG1B,IAAI4qB,EAAO5qB,EAAGqE,QAAUC,EAAA,EAASU,GAE7B6lB,EAAS7qB,EAAGqE,QAAUC,EAAA,EAASa,KACnC,IAAKnF,EAAGopB,kBAAoB7nB,EAAMupB,oBAAoB9qB,GAAK,CACvD,IAAI+qB,EAAcxpB,EAAM5G,MAAMowB,YAC1BA,GACAA,EAAY/qB,EAAIuB,EAAM5G,OAE1B4G,EAAMooB,eAAc,GACpB3pB,EAAGyG,iBACHzG,EAAG+C,iBACP,CAEI/C,EAAGqE,QAAUC,EAAA,EAASiC,OAASvG,EAAGqE,QAAUC,EAAA,EAASC,QAIrD,EAAAymB,EAAA,KAAmB,EAAMhrB,EAAGjH,OAAiC,QAAxBU,EAAK8H,EAAMxH,eAA4B,IAAPN,OAAgB,EAASA,EAAGwxB,qBAE/FjrB,EAAGM,QAAUN,EAAGI,UAAawqB,IAAQC,IAGlCtpB,EAAMjH,MAAMkvB,YAAcjoB,EAAM5G,MAAM2hB,kBAC2Ble,IAAlCmD,EAAM+nB,wBAChC/nB,EAAM+nB,wBACN/nB,EAAM5G,MAAM2hB,UAAUlT,sBAExBpJ,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAM+nB,yBAA0B,EAChC/nB,EAAM2pB,eAnClB,CAuCJ,EACA3pB,EAAM4pB,cAAgB,WACd5pB,EAAM6pB,gBACN7pB,EAAM+lB,sBAAsB9kB,WAC1B,kBAAmBjB,EAAM+lB,sBAAsB9kB,UACjDjB,EAAM8pB,6BAEd,EACA9pB,EAAM0oB,aAAe,SAAUjqB,GAC3B,IAAIvG,EAAK8H,EAAM5G,MAAOowB,EAActxB,EAAGsxB,YAAazO,EAAY7iB,EAAG6iB,UAC/DyO,GACAA,EAAY/qB,EAAIuB,EAAM5G,OAI1B,IAAI+uB,EAA6H,kBAA5FpN,aAA6C,EAASA,EAAUoN,wBAC/FpN,EAAUoN,uBACqB,UAA/B1pB,EAAG0V,YAAY4V,YAChBtrB,EAAGopB,mBACJ7nB,EAAMooB,cAAcD,GACpB1pB,EAAGyG,iBACHzG,EAAG+C,kBAEX,GACA,EAAA4E,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,IAC/B,EAAAmqB,EAAAC,GAA+BxE,EAAgBxsB,EAAO,CAAC,YAAa,WAAY,QAAS4G,EAAM5G,MAAMixB,QACrG,EAAAC,EAAA,GAAiB1E,EAAgBxsB,EAAO,CACpCsP,eAAW7L,EACX8mB,YAAa,gBACb4G,QAAS,YAEbvqB,EAAM8mB,UAAW,EAAAxgB,EAAA,KACjBtG,EAAMgnB,gBAAiB,EAAA1gB,EAAA,KACvBtG,EAAMmnB,oBAAqB,EAAA7gB,EAAA,KAC3BtG,EAAMjH,MAAQ,CACVkvB,YAAY,GAETjoB,CACX,CAwUA,OAhmBA,QAAU6lB,EAAYjmB,GAyRtBzC,OAAOgN,eAAe0b,EAAWtoB,UAAW,iBAAkB,CAC1D6M,IAAK,WACD,QAAStM,KAAK1E,MAAM2hB,aAAejd,KAAK1E,MAAMwd,UAAgC,IAArB9Y,KAAK1E,MAAMixB,KACxE,EACAhgB,YAAY,EACZC,cAAc,IAElBub,EAAWtoB,UAAUxB,OAAS,WAC1B,IAAI7D,EACA2H,EAAK/B,KAAK1E,MAAO8tB,EAAkBrnB,EAAGqnB,gBAAiBtO,EAAY/Y,EAAG+Y,UAAW4R,EAAa3qB,EAAG2qB,WAAY9uB,EAAYmE,EAAGnE,UAAWkG,EAAW/B,EAAG+B,SAAU6oB,EAAqB5qB,EAAG4qB,mBAAoB/F,EAAkB7kB,EAAG6kB,gBAEpO5kB,EAAKD,EAAG4mB,cAERA,OAAuB,IAAP3mB,EAAgBhC,KAAK1E,MAAMuqB,YAAc7jB,EAAIyZ,EAAO1Z,EAAG0Z,KAAMiB,EAAY3a,EAAG2a,UAAW6M,EAAgBxnB,EAAGwnB,cAAeluB,EAAS0G,EAAG1G,OAAQgpB,EAAUtiB,EAAGsiB,QAAS1C,EAAmB5f,EAAG4f,iBAAkBzmB,EAAQ6G,EAAG7G,MAAO2V,EAAS9O,EAAG8O,OAAQ8I,EAAgB5X,EAAG4X,cAAeqD,EAAOjb,EAAGib,KACzSmN,EAAanqB,KAAK/E,MAAMkvB,WAExByC,EAA0B9oB,GAAY8iB,EAC1C5mB,KAAKsc,YAAc3C,EACbA,EAAcze,EAAO0C,EAAW+jB,EAAkBjF,GAAaA,EAAU9e,UAAW2rB,GAAiBA,EAAc3rB,UAAWgvB,EAAyBvI,GAAU8F,IAAcnqB,KAAK1E,MAAM2hB,UAAWjd,KAAK1E,MAAMixB,QAASI,IACzN,OAAwBzxB,EAAOG,EAAQuC,EAAW+jB,EAAkBjF,GAAaA,EAAU9e,UAAW2rB,GAAiBA,EAAc3rB,UAAWgvB,IAA2B5sB,KAAK1E,MAAM2hB,UAAWoH,GAAU8F,EAAYnqB,KAAK1E,MAAMixB,OACxO,IAAItqB,EAAKjC,KAAMqpB,EAAqBpnB,EAAGonB,mBAAoBL,EAAW/mB,EAAG+mB,SAAUE,EAAiBjnB,EAAGinB,eAGnG2D,GAAkBD,KAA6BnR,EAC/ChR,EAAMoiB,EAAiB,IAAM,SAC7BzU,GAAc,SAElB,QAAOyU,EAAiB,CAAC,EAAI,CAAEpwB,KAAM,UAAYuD,KAAK1E,MAAMsP,UAAW5K,KAAK1E,OAAQuxB,EAAiB,KAAmB,KAAkB,CACtI,aAGAC,EAAoBhS,GAAa1C,EAAY,cAG7CvN,OAAkB9L,EAClBqqB,EACAve,EAAkBwe,EAEbV,GAAiB3oB,KAAK1E,MAAMsmB,sBAAwB,IAGzD/W,EAAkBqe,EAEb9Q,EAAY,sBACjBvN,EAAkBuN,EAAY,qBAMlC,IAAItN,OAAiB/L,EACjBqZ,EAAY,mBACZtN,EAAiBsN,EAAY,mBAExBvN,IAAoBiiB,IACzBhiB,EAAiB9K,KAAK+oB,WAAaC,OAAWjqB,GAElD,IAAIguB,KAAsD,IAApC/sB,KAAK1E,MAAM,sBAAmCwI,IAAa6oB,GAAuB3sB,KAAK+rB,gBAGzGiB,EAA8B,qBAAThQ,GAAwC,aAATA,EAKpDiQ,EAAwBD,IAA4C,IAAXnc,IAAVwT,OAAwCtlB,EACvFupB,GAAc,QAAOlQ,IAAche,EAAK,CACpCwD,UAAWoC,KAAKsc,YAAY7S,KAE5B6B,IAAKtL,KAAKoC,WAAWpC,KAAK1E,MAAMiQ,WAAYvL,KAAKgoB,gBACjDlkB,SAAU8oB,IAA4BD,EACtCpoB,UAAWvE,KAAKkE,WAChB+mB,WAAYjrB,KAAKgrB,YACjBD,QAAS/qB,KAAK8qB,SACdM,YAAaprB,KAAK6D,aAClBsnB,UAAWnrB,KAAKkrB,WAChBpS,QAAS9Y,KAAKoW,SACd,aAAc0W,EACd,kBAAmBhiB,EACnB,mBAAoBD,EACpB,gBAAiB+hB,EACjB,oBAAqBG,IAItBC,EAAqB,eAAiB,gBAAkBC,EAC3D7yB,IAIJ,GAHIsyB,IACApE,EAAY,gBAAiB,GAE7BtoB,KAAK+rB,eACL,OAAO/rB,KAAKktB,4BAA4BziB,EAAK6d,GAE5C,GAAItoB,KAAK1E,MAAM2hB,UAAW,CAC3B,IAAIiC,EAAKlf,KAAK1E,MAAM2hB,UAAU1J,GAAIA,OAAY,IAAP2L,EAAgB,GAAG1M,OAAOxS,KAAKgpB,SAAU,SAAW9J,GAC3F,QAAOoJ,EAAa,CAChB,iBAAkB6B,EAClB,gBAAkBA,EAAkB,KAAL5W,EAC/B,iBAAiB,GAEzB,CACA,OAAOvT,KAAKmtB,iBAAiB1iB,EAAK6d,EACtC,EACAP,EAAWtoB,UAAU+J,kBAAoB,WAIjCxJ,KAAK+rB,gBAAkB/rB,KAAKioB,sBAAsB9kB,UAC9C,kBAAmBnD,KAAKioB,sBAAsB9kB,SAC9CnD,KAAKmsB,QAAQnZ,GAAGhT,KAAKioB,sBAAsB9kB,QAAS,cAAenD,KAAKotB,gBAAgB,GAExF,gBAAiBptB,KAAKioB,sBAAsB9kB,SAAWnD,KAAK1E,MAAM+xB,aAClErtB,KAAKmsB,QAAQnZ,GAAGhT,KAAKioB,sBAAsB9kB,QAAS,YAAanD,KAAK1E,MAAM+xB,aAAa,GAGrG,EACAtF,EAAWtoB,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAEvDvtB,KAAK1E,MAAMkyB,qBAAuBD,EAAUpD,YAAcnqB,KAAK/E,MAAMkvB,YACrEnqB,KAAK1E,MAAMkyB,oBAEnB,EACAzF,EAAWtoB,UAAU6K,qBAAuB,WACxCtK,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,SACjB,EACAwX,EAAWtoB,UAAU4D,MAAQ,WACzB,IAAIjJ,EAAI2H,EACJ/B,KAAK+rB,gBAAkB/rB,KAAKioB,sBAAsB9kB,UAClD,EAAAwoB,EAAA,KAAmB,OAAM5sB,EAAmC,QAAvB3E,EAAK4F,KAAKtF,eAA4B,IAAPN,OAAgB,EAASA,EAAGwxB,qBAChG5rB,KAAKioB,sBAAsB9kB,QAAQE,SAE9BrD,KAAKgoB,eAAe7kB,WACzB,EAAAwoB,EAAA,KAAmB,OAAM5sB,EAAmC,QAAvBgD,EAAK/B,KAAKtF,eAA4B,IAAPqH,OAAgB,EAASA,EAAG6pB,qBAChG5rB,KAAKgoB,eAAe7kB,QAAQE,QAEpC,EACA0kB,EAAWtoB,UAAUguB,YAAc,WAC/BztB,KAAKgqB,cACT,EACAjC,EAAWtoB,UAAUiuB,SAAW,SAAUrD,EAAwBtgB,GAC9D/J,KAAKoqB,UAAUC,EAAwBtgB,EAC3C,EACAge,EAAWtoB,UAAU0tB,iBAAmB,SAAU1iB,EAAK6d,GACnD,IAAIpmB,EAAQlC,KACR1E,EAAQ0E,KAAK1E,MACb0P,EAAMP,EACN8e,EAAgBjuB,EAAMiuB,cAAetM,EAAY3hB,EAAM2hB,UAAW7iB,EAAKkB,EAAMqyB,aAAcA,OAAsB,IAAPvzB,EAAgB4F,KAAKqoB,cAAgBjuB,EAAI2H,EAAKzG,EAAMsyB,wBAAyBA,OAAiC,IAAP7rB,EAAgB/B,KAAKmpB,yBAA2BpnB,EAAIC,EAAK1G,EAAMuyB,iBAAkBA,OAA0B,IAAP7rB,EAAgBhC,KAAKipB,kBAAoBjnB,EAElWC,EAAK3G,EAAMwyB,aAEXA,OAAsB,IAAP7rB,EAAgBjC,KAAKwpB,cAAgBvnB,EAAIid,EAAK5jB,EAAMqhB,iBAAkBA,OAA0B,IAAPuC,EAAgBlf,KAAKspB,kBAAoBpK,EAAIpb,EAAWxI,EAAMwI,SAClKskB,EAAc9sB,EAAM8sB,YACpBA,GAAenL,IACfmL,EAAcpoB,KAAKmoB,kCAAkCC,IAEzD,IAAI2F,EAAS,SAAUC,GAAoB,OAAQ,gBAAoBhjB,GAAK,QAAS,CAAC,EAAGsd,EAAa0F,GAClG,gBAAoB,OAAQ,CAAEpwB,UAAWsE,EAAMoa,YAAYyG,cAAe,oBAAqB,sBAC3F4K,EAAaryB,EAAO4G,EAAMmmB,eAC1BnmB,EAAMwmB,wBACNkF,EAAwBtyB,EAAO4G,EAAMinB,0BACrC0E,EAAiBvyB,EAAO4G,EAAM+mB,oBAC7B/mB,EAAM6pB,iBACF9O,GAAasM,GAAiBrnB,EAAM5G,MAAMqhB,mBAC3CA,EAAiBza,EAAM5G,MAAO4G,EAAMonB,mBACxCrM,IACKA,EAAUgR,YACX/rB,EAAMgsB,qBACNJ,EAAa5rB,EAAMisB,cAAclR,GAAY/a,EAAMsnB,gBAAmB,EAC9E4E,EAAUhG,EAEd,gBAAoBiG,EAAA,EAAY,CAAEjG,YAAcpoB,KAAK+rB,oBAA+BhtB,EAAdqpB,EAAyBvd,gBAAiByd,EAAY,oBAAqBxkB,SAAUA,IAAY,SAAUkqB,GAAoB,OAAOD,EAAOC,EAAmB,IAAOD,IAC7O,OAAI9Q,GAAaA,EAAUgR,WACf,gBAAoB,WAAgB,KACxCG,EACApuB,KAAKkuB,qBAAuBJ,EAAa9tB,KAAKmuB,cAAclR,GAAYjd,KAAKwpB,gBAE7E,gBAAoB,WAAgB,KACxC4E,EACA,gBAAoB,IAAY,MACxC,EAMArG,EAAWtoB,UAAUyuB,kBAAoB,WACrC,IAAI/D,EAAanqB,KAAK/E,MAAMkvB,WAExB/vB,EAAK4F,KAAK1E,MAAOgzB,EAAcl0B,EAAGk0B,YAAaC,EAAmCn0B,EAAGm0B,iCACzF,OAAKpE,MAIImE,IAAgBtuB,KAAKkoB,uBAAwBqG,EAM1D,EACAxG,EAAWtoB,UAAUspB,SAAW,WAK5B,OAA2B,OAApB/oB,KAAK1E,MAAMme,YAAsC1a,IAApBiB,KAAK1E,MAAMme,MAAqD,iBAAxBzZ,KAAK1E,MAAMoB,SAC3F,EACAqrB,EAAWtoB,UAAU0uB,cAAgB,SAAUlR,GAC3C,IAAIqR,EAActuB,KAAK1E,MAAMgzB,YACzBnE,EAAanqB,KAAK/E,MAAMkvB,WAO5B,OAHKlN,EAAUnC,WAAcmC,EAAUuR,iBAAkBxuB,KAAK+oB,aAC1D9L,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAEuR,eAAgBxuB,KAAKgpB,aAElE,SAAS,QAAS,CAAEzV,GAAIvT,KAAKgpB,SAAW,QAAS7L,gBAAiB3I,EAAA,EAAgBK,gBAAkBoI,GAAY,CAAEoN,uBAAwBrqB,KAAKkqB,4BAA6BngB,mBAAoB/J,KAAKiqB,wBAAyBwE,OAAQH,EAAcnE,OAAaprB,EAAWnB,WAAW,EAAAsN,EAAA,GAAI,yBAA0B+R,EAAUrf,WAAYlE,OAAQsG,KAAK+rB,eAAiB/rB,KAAKioB,sBAAsB9kB,QAAUnD,KAAKgoB,eAAe7kB,QAAS2mB,UAAW9pB,KAAK6pB,gBACtc,EACA9B,EAAWtoB,UAAUytB,4BAA8B,SAAUziB,EAAK6d,GAC9D,IAAIpmB,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGiB,OAAQA,OAAgB,IAAP0G,EAAgB,CAAC,EAAIA,EAAI+B,EAAW1J,EAAG0J,SAAU6oB,EAAqBvyB,EAAGuyB,mBAAoBtI,EAAUjqB,EAAGiqB,QAASqK,EAA2Bt0B,EAAGs0B,yBAA0B9H,EAAkBxsB,EAAGwsB,gBAAiB3J,EAAY7iB,EAAG6iB,UAAWpM,EAASzW,EAAGyW,OAAQmM,EAAO5iB,EAAG4iB,KAAM2R,EAA2Bv0B,EAAGu0B,yBACvVvG,EAAcpoB,KAAK1E,MAAM8sB,YACzB+B,EAAanqB,KAAK/E,MAAMkvB,WACxB1sB,EAAaixB,EACXA,IAA2B5qB,GAAWqmB,IAAc9F,IAAWsI,GAC/DtxB,GAAU,EAA6BA,IAAUyI,GAAWqmB,IAAc9F,IAAWuC,IAC3F,QAAO0B,EAAa,CAChBxP,aAAS/Z,EACT6vB,mBAAe7vB,EACfsuB,iBAAatuB,EACbkO,UAAW,EACX,qBAAqB,IAErBmb,GAAenL,IACfmL,EAAcpoB,KAAKmoB,kCAAkCC,IAEzD,IAAI5B,GAAiB,QAAe8B,EAAa,GAAI,CAAC,aAElDqG,IACA,QAAOrG,EAAaqG,GAExB,IAAIE,EAAc,SAAUb,GAAoB,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGxH,EAAgB,CAAE,kBAAmBwH,EAAmBA,EAAiB,wBAAqBjvB,EAAWie,KAAMA,GAAc,SAAU,gBAAiBlZ,EAAU,iBAAiB,EAAM,iBAAkBqmB,EAAY,eAAgBtZ,IAAWwT,OAAUtlB,EAAW,oBAAoB,OAAyBupB,EAAY,oBAAqB0F,EAAmBA,EAAiB,yBAAsBjvB,GAAYnB,UAAWH,GAAcA,EAAWypB,qBAAsB3iB,UAAWrC,EAAMmpB,+BAAgCyD,aAAc5sB,EAAM4pB,cAAexgB,IAAKpJ,EAAM+lB,sBAAuB,qBAAqB,EAAMnP,QAAUhV,GAAa8iB,OAAqD7nB,EAAnCmD,EAAMuoB,2BAAwCxd,UAAYnJ,IAAa8iB,GAAoB+F,EAAqB,OAAI5tB,EAAW,uBAAwBupB,EAAY,wBAAyByG,eAAgB7sB,EAAMqoB,gCAC77B,gBAAoB,OAAQ,CAAElS,MAAO,CAAE0I,QAAS,OAAQ3Y,MAAO,SAC3DlG,EAAMirB,iBAAiB1iB,EAAK6d,GAC5BpmB,EAAM8sB,+BAA+BvxB,EAAYuwB,GACjD9rB,EAAM+sB,4BAA4BxxB,IAAgB,EAC1D,OAAO2qB,EAAe,gBAAoBiG,EAAA,EAAY,CAAEjG,YAAaA,EAAatkB,SAAUA,IAAY,SAAUkqB,GAAoB,OAAOa,EAAYb,EAAmB,IAAOa,GACvL,EACA9G,EAAWtoB,UAAUwvB,4BAA8B,SAAUxxB,GACzD,OAAIA,GAAcA,EAAWkqB,QAIlB,gBAAoB,OAAQ,CAAE/pB,UAAWH,EAAWkqB,QAAS,eAAe,EAAM7O,QAH3E,SAAUnY,GACpBA,EAAG+C,iBACP,IAGG,IACX,EACAqkB,EAAWtoB,UAAUuvB,+BAAiC,SAAUvxB,EAAYuwB,GACxE,IAAI5zB,EAAK4F,KAAK1E,MAAOqxB,EAAqBvyB,EAAGuyB,mBAAoBtI,EAAUjqB,EAAGiqB,QAASvgB,EAAW1J,EAAG0J,SAAUorB,EAAuB90B,EAAG80B,qBAAsBC,EAAuB/0B,EAAG+0B,qBAAsBvI,EAAkBxsB,EAAGwsB,gBAChOuD,EAAanqB,KAAK/E,MAAMkvB,WACxBZ,EAAgBvpB,KAAK1E,MAAMiuB,mBACTxqB,IAAlBwqB,IACAA,EAAgB,CACZ9M,SAAU,gBAGlB,IAAI2S,GAAmB,SAAS,QAAS,CAAC,EAAGF,GAAuB,CAAE7zB,OAAQoC,EAAY4mB,QAASA,EAASvgB,SAAUA,EAAU6oB,mBAAoBA,EAAoB7T,QAAS9Y,KAAK4qB,aAAc3N,eAAWle,EAAW2d,WAAW,SAAS,QAAS,CAAC,EAAG6M,GAAgB,CAAE3rB,UAAWoC,KAAKsc,YAAY8G,WAAatI,UAAWqU,EAAsB,iBAAiB,EAAM,iBAAkBhF,EAAY,qBAAqB,IAEja,OAAQ,gBAAoBpC,GAAY,QAAS,CAAC,EAAGqH,EAAkB,CAAE,0BAA2BpB,EAAmBA,EAAiB,2BAA6BA,EAAkB5C,YAAaprB,KAAK6D,aAAcoJ,SAAU2Z,IAAoB+F,EAAqB,GAAK,IACnR,EACA5E,EAAWtoB,UAAU2tB,eAAiB,SAAUzsB,GAC5C,IAAIiuB,EAAgB5uB,KAAK1E,MAAMszB,cAC3BA,GACAA,EAAcjuB,GAEK,UAAnBA,EAAGsrB,cACHjsB,KAAKgsB,8BACLrrB,EAAGyG,iBACHzG,EAAG0uB,2BAEX,EACAtH,EAAWtoB,UAAUusB,4BAA8B,WAC/C,IAAI9pB,EAAQlC,UAGqBjB,IAA7BiB,KAAKsvB,sBACLtvB,KAAKmW,OAAO3C,aAAaxT,KAAKsvB,qBAC9BtvB,KAAKsvB,yBAAsBvwB,GAE/BiB,KAAK2qB,kBAAmB,EACxB3qB,KAAKsvB,oBAAsBtvB,KAAKmW,OAAO1C,YAAW,WAC9CvR,EAAMyoB,kBAAmB,EACzBzoB,EAAMotB,yBAAsBvwB,EAIxBmD,EAAMjH,MAAMkvB,YACZjoB,EAAMmB,OAEd,GA3kBa,IA4kBjB,EAMA0kB,EAAWtoB,UAAUgsB,oBAAsB,SAAU9qB,GACjD,OAAIX,KAAK1E,MAAMi0B,mBAEJ5uB,EAAGqE,QAAUhF,KAAK1E,MAAMi0B,qBAE1BvvB,KAAK1E,MAAM2hB,WAETtc,EAAGqE,QAAUC,EAAA,EAASa,OAASnF,EAAGM,QAAUN,EAAGI,QAK9D,EACAgnB,EAAWpf,aAAe,CACtB6mB,cAAe,YACfn0B,OAAQ,CAAC,EACTkxB,OAAO,GAGXxE,EAAWvO,YAAc,KAClBuO,CACX,CAlmB+B,CAkmB7B,Y,6DC/mBE0H,EAAY,CACZpkB,QAAS,GAETqkB,EAAY,SAAU9O,GACtB,MAAO,CACHA,SAAUA,EACVE,OAAQ,QACR5R,OAAQ,OACRyR,WAAY,OACZgP,UAAW,SACXC,WAAY,EAEpB,EAMW/N,GAAY,SAAgB,SAAU3mB,GAC7C,IAAId,EAAI2H,EACJiY,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAC9E6C,EAASjI,EAAe8V,aACxBC,EAAqB/V,EAAe+V,mBACpCC,EAAehW,EAAegW,aAC9BC,EAA0B,CAC1B5qB,MAAO,EACP0C,KAAM,EACNE,QAAS,EACTxC,OAAQ,EACRyqB,aAAc,cAElB,MAAO,CACHzmB,KAAM,EACF,QAAcvO,EAAO,CAAEi1B,MAAO,EAAG7O,kBAAmB2O,EAAyB/N,YAAa,gBAC1FhnB,EAAMkkB,MAAMyB,OACZ,CACIoB,OAAQ,aAAeA,EACvBmO,aAAcP,EAAQQ,eACtBC,UAAW,aACX5Y,OAAQ,UACRqJ,QAAS,eACTL,QAAS,SACTF,eAAgB,OAChBmP,UAAW,SACXY,WAAY,OACZnlB,UAAW,CAEP,iBAAkB,CACd8V,SAAU,WACV7b,KAAM,EACN0C,IAAK,MAKrB4a,aAAc,EACV,QAAcznB,EAAO,CAAEi1B,MAAO,EAAG7O,kBAAmB2O,EAAyB/N,YAAa,gBAC1F,CACI3B,gBAAiBwP,EACjB7N,YAAa6N,EACbhW,MAAOiW,EACPtY,OAAQ,UACRtM,UAAW,CACP,SAAUqkB,EACV,SAAUA,KAItBtM,aAAc,CACVpJ,MAAOiW,EACP5kB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,YAEX3f,IAERurB,iBAAkB,CACd5L,MAAOiW,EACP5kB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,YAEXhY,IAERghB,cAAe,CACXhC,QAAS,OACT7R,OAAQ,OACRshB,SAAU,SACVxN,eAAgB,SAChBhC,WAAY,UAEhB6E,YAAa,CACT9E,QAAS,SAEbsC,cAAe,CACXC,SAAU,EACVvC,QAAS,SAEbkC,KAAMyM,EAAUtQ,EAAMmC,WAAWX,UACjCwC,SAAUsM,EAAUtQ,EAAMiC,MAAMT,UAChC2E,MAAO,CACHzE,OAAQ,QACRH,WAAY,OACZI,QAAS,SAEbiF,iBAAkB,KAE1B,G,gFC1GIyK,EAA+B,WAC/B,MAAO,CACHvP,SAAU,WACV9Y,MAAO,EACP3C,MAAO,GACPsC,IAAK,EACLE,OAAQ,EAEhB,EACO,SAASyoB,EAAex1B,GAC3B,IAAId,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBrf,EAAI3E,EAAM8e,eAAgBxa,EAAItE,EAAMikB,QACpCwR,EAAmB9wB,EAAE8wB,iBACrBC,EAA0B/wB,EAAE+wB,wBAC5BC,EAA0BhxB,EAAEgxB,wBAC5BC,EAA2BjxB,EAAEixB,yBAC7BC,EAAalxB,EAAEkxB,WACfC,EAAoBnxB,EAAEmxB,kBACtBC,EAAqBpxB,EAAEoxB,mBACvBC,EAAoBrxB,EAAEqxB,kBACtBC,EAA2BtxB,EAAEsxB,yBACjC,MAAO,CACH1nB,KAAM,CACF8W,gBAAiBoQ,EACjB5W,MAAOgX,GAEX5O,YAAa,CACT5B,gBAAiBsQ,EACjB9W,MAAOiX,EACP5lB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,YACbnI,MAAO,aAEX3f,IAERkoB,YAAa,CACT/B,gBAAiBqQ,EACjB7W,MAAOmX,GAEX1O,aAAc,CACVjC,gBAAiBqQ,EACjB7W,MAAOmX,GAEXrO,YAAa,CACTtC,gBAAiBqQ,EACjB7W,MAAOmX,GAEX9L,mBAAoB,CAChB7E,gBAAiBqQ,EACjB7W,MAAOoX,GAEXxO,aAAc,CACV5I,MAAOkX,EACP1Q,gBAAiBuQ,EACjB1lB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,WACPmI,YAAa,WACb3B,gBAAiB,UAErBxe,IAGRmlB,qBAAsB,CAClB9b,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBigB,OAAQ,QAEZjgB,IAER6kB,sBAAuB,CACnB9M,MAAOva,EAAE4xB,MACT7Q,gBAAiB,cACjBnV,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAE6xB,aACnBjmB,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8X,MAAO,aAEX9X,MAIhB8kB,8BAA+B,CAC3BxG,gBAAiB1gB,EAAEixB,yBACnB1lB,UAAW,CACP,SAAU,CACNmV,gBAAiB1gB,EAAEixB,4BAI/BlJ,oBAAoB,SAAS,QAAS,CAAC,EAAG6I,KAAiC,CAAElQ,gBAAiB/gB,EAAE8xB,mBAAoBlmB,WAAY8T,EAAK,CAAC,EAC9HA,EAAG,MAAwB,CACvBqB,gBAAiB,cAErBrB,KACR2I,2BAA4B,CACxBtH,gBAAiBrlB,EAAMikB,QAAQmS,oBAEnCtK,6BAA8B,CAC1BzG,gBAAiB/gB,EAAE+xB,qBACnBnmB,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAE+xB,wBAI/BzK,8BAA+B,CAC3BvG,gBAAiB/gB,EAAE+xB,qBACnBnmB,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAE+xB,wBAI/B/J,oBAAqB,CACjBzN,MAAOla,EAAEkxB,YAEbtJ,4BAA6B,CACzB1N,MAAOla,EAAEoxB,oBAGrB,CACO,SAASO,EAAct2B,GAC1B,IAAId,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAChCpyB,EAAItE,EAAMikB,QAAStf,EAAI3E,EAAM8e,eACjC,MAAO,CACHvQ,KAAM,CACF8W,gBAAiB1gB,EAAEgyB,wBACnB5P,OAAQ,aAAazP,OAAO3S,EAAEgyB,yBAC9B9X,MAAOla,EAAEiyB,kBACT1mB,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE2f,MAAO,SAAUwG,gBAAiB,aAAc2B,YAAa,eAAgB,WACnH9nB,EAAG,IAAIoY,OAAO,KAAyB,aAAe,CAClDpH,UAAW,CACP,SAAU,CACN6W,OAAQ,OACRiO,aAAc1wB,EAAE4xB,SAI5Bh3B,IAER+nB,YAAa,CACT5B,gBAAiB1gB,EAAEkyB,+BACnB9P,OAAQ,aAAazP,OAAO3S,EAAEkyB,gCAC9BhY,MAAOla,EAAEmyB,yBACT5mB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,SACPwG,gBAAiB,YACjB2B,YAAa,aAEjBngB,IAERugB,YAAa,CACT/B,gBAAiB1gB,EAAEoyB,+BACnBhQ,OAAQ,aAAazP,OAAO3S,EAAEoyB,gCAC9BlY,MAAOla,EAAEqyB,yBACT9mB,WAAYpJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE+X,MAAO,SAAUwG,gBAAiB,aAAc2B,YAAa,eAAgB,WACnHlgB,IAERwgB,aAAc,CACVjC,gBAAiB1gB,EAAEoyB,+BACnBlY,MAAOla,EAAEqyB,0BAEbrP,YAAa,CACTtC,gBAAiB1gB,EAAEoyB,+BACnBlY,MAAOla,EAAEqyB,0BAEb9M,mBAAoB,CAChB7E,gBAAiB1gB,EAAEoyB,+BACnBlY,MAAOla,EAAEqyB,0BAEbvP,aAAc,CACV5I,MAAOla,EAAEsyB,0BACT5R,gBAAiB1gB,EAAEuyB,gCACnBhnB,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8X,MAAO,WACPmI,YAAa,WACb3B,gBAAiB,UAErBte,IAGRilB,qBAAsB,CAClB9b,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+C,OAAQ,QAEZ/C,IAER0I,oBAAoB,SAAS,QAAS,CAAC,EAAG6I,KAAiC,CAAElQ,gBAAiB/gB,EAAE4xB,MAAOhmB,WAAYqmB,EAAK,CAAC,EACjHA,EAAG,MAAwB,CACvBlR,gBAAiB,UAErBkR,KACR5K,sBAAuB,CACnBtG,gBAAiB1gB,EAAEgyB,wBACnB9X,MAAOla,EAAEiyB,kBACT1mB,WAAYsmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnR,gBAAiB,UAErBmR,EAAG,UAAY,CACXnR,gBAAiB1gB,EAAEkyB,+BACnB3mB,WAAYumB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB5X,MAAO,aAEX4X,IAERD,IAER3K,8BAA+B,CAC3BxG,gBAAiB1gB,EAAEuyB,gCACnBhnB,UAAW,CACP,SAAU,CACNmV,gBAAiB1gB,EAAEuyB,mCAI/BpL,6BAA8B,CAC1BzG,gBAAiB1gB,EAAEoyB,+BACnB7mB,UAAW,CACP,SAAU,CACNmV,gBAAiB1gB,EAAEoyB,kCAI/BnL,8BAA+B,CAC3BvG,gBAAiB1gB,EAAEoyB,+BACnB7mB,UAAW,CACP,SAAU,CACNmV,gBAAiB1gB,EAAEoyB,kCAI/BzK,oBAAqB,CACjBzN,MAAOla,EAAEiyB,mBAEbrK,4BAA6B,CACzB1N,MAAOva,EAAEojB,gBACTxX,WAAYwmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB7X,MAAO,YAEX6X,IAGhB,C,qJC3PW/P,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO4mB,EAAcuQ,EAAYC,GAC9E,IAAIl4B,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAAIC,EACpD5Q,GAAmB,OAAoB7mB,GACvC03B,GAAwB,OAAqB13B,GAC7CsE,EAAItE,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAQ1C6Y,EAAsB,CACtBppB,KAAM,EACF,QAAcvO,EAAO,CACjBi1B,MAAO,EACP7O,kBAXyB,CACjCjc,KAAM,EACN0C,IAAK,EACLE,OAAQ,EACRxC,MAAO,EACPwc,OAAQ,QAOAC,YAAa,gBAEjBhnB,EAAMkkB,MAAMyB,OACZ,CACIiS,SAAU,OACVvS,gBAAiB/gB,EAAE4xB,MACnBrX,MAAOva,EAAEsgB,eACTY,QAAS,QACTuB,OAAQ,OACRmO,aAAc,EACdhlB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB6nB,OAAQ,QAEZ7nB,KAGZ+nB,YAAa,CACT5B,gBAAiB/gB,EAAEuzB,eACnBhZ,MAAOva,EAAEgiB,YACTpW,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,aAEXhY,EAAG,IAAIyQ,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAE0jB,cAEbnhB,EAAG,IAAIyQ,OAAO,IAAuBmR,mBAAqB,CACtD5J,MAAOva,EAAEsgB,gBAEb/d,IAERugB,YAAa,CACT/B,gBAAiB/gB,EAAE6xB,aACnBtX,MAAOva,EAAEgiB,YACTpW,WAAYpJ,EAAK,CAAC,EACdA,EAAG,IAAIwQ,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEwzB,WAEbhxB,EAAG,IAAIwQ,OAAO,IAAuBmR,mBAAqB,CACtD5J,MAAOva,EAAEsgB,gBAEb9d,IAER6gB,YAAa,CACTtC,gBAAiB/gB,EAAE6xB,aACnBtX,MAAOva,EAAEgiB,YACTpW,WAAYnJ,EAAK,CAAC,EACdA,EAAG,IAAIuQ,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEwzB,WAEb/wB,EAAG,IAAIuQ,OAAO,IAAuBmR,mBAAqB,CACtD5J,MAAOva,EAAEsgB,gBAEb7d,IAERmjB,mBAAoB,CAChB7E,gBAAiB/gB,EAAE+xB,qBACnBnmB,WAAY8T,EAAK,CAAC,EACdA,EAAG,IAAI1M,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEwzB,WAEb9T,EAAG,IAAI1M,OAAO,IAAuBmR,mBAAqB,CACtD5J,MAAOva,EAAEsgB,gBAEbZ,IAERsD,aAAc,CACVjC,gBAAiB/gB,EAAE6xB,aACnBtX,MAAOva,EAAEgiB,YACTpW,WAAYqmB,EAAK,CAAC,EACdA,EAAG,IAAIjf,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEwzB,WAEbvB,EAAG,IAAIjf,OAAO,IAAuBmR,mBAAqB,CACtD5J,MAAOva,EAAEsgB,gBAEb2R,IAER9M,oBAAqB,CACjBpE,gBAAiB/gB,EAAE+xB,sBAEvB5O,aAAc,CACVpC,gBAAiB/gB,EAAE4xB,MACnBhmB,WAAYsmB,EAAK,CAAC,EACdA,EAAG,IAAIlf,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOC,EAAeiZ,oBACtB7nB,WAAYumB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE5X,MAAO,aAAc,WAC3D4X,IAERD,EAAG,OAAwB,QAAS,CAAE3X,MAAO,WAAYwG,gBAAiB,WAAY,WACtFmR,IAGRxK,qBAAsB,CAClBhY,OAAQ,OACR9D,WAAYwmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB3P,OAAQ,QAEZ2P,IAER/J,2BAA4B,CACxBzc,WAAYmnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBhS,gBAAiB,UAErBgS,IAER3K,mBAAoB,CAChBrH,gBAAiB/gB,EAAE8xB,oBAEvBzK,sBAAuB,CACnBtG,gBAAiB/gB,EAAE4xB,MACnBnP,OAAQ,OACRiR,qBAAsB,IACtBC,wBAAyB,IACzBpZ,MAAOva,EAAEkgB,iBACTtU,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAEuzB,eACnBhZ,MAAOva,EAAEgiB,YACTpW,WAAYonB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBzY,MAAO,aAEXyY,EAAG,IAAIhgB,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEsgB,gBAEb0S,IAER,UAAW,CACPjS,gBAAiB/gB,EAAE6xB,aACnBjmB,WAAYqnB,EAAK,CAAC,EACdA,EAAG,IAAIjgB,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOva,EAAEsgB,gBAEb2S,MAIhB1L,8BAA+B,CAC3BxG,gBAAiB/gB,EAAE4xB,MACnBhmB,WAAYsnB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE3Y,MAAO,WAAYkI,OAAQ,OAAQ1B,gBAAiB,WAAY,WACtGmS,IAER1L,6BAA8B,CAC1BzG,gBAAiB/gB,EAAE6xB,aACnBtX,MAAOva,EAAEgiB,YACTpW,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAE+xB,wBAI/BzK,8BAA+B,CAC3BvG,gBAAiB/gB,EAAE6xB,aACnBtX,MAAOva,EAAE+iB,MACTnX,UAAW,CACP,SAAU,CACNmV,gBAAiB/gB,EAAE+xB,wBAI/B/J,oBAAqB,CACjBzN,MAAOva,EAAEsgB,gBAEb2H,4BAA6B,CACzB1N,MAAOva,EAAEojB,iBAEb2C,MAAO,CACHlF,WAAY,UAEhB4C,KAAM,CACFlJ,MAAOva,EAAE4iB,cAEbgB,UAAWuP,EAAK,CACR5Y,MAAOva,EAAEkgB,kBAEbiT,EAAG,MAAwB,CACvB5Y,MAAO,YAEX4Y,IAER,OAAO,QAAgB5Q,EAAkB6Q,EAAuBC,EAAqB/Q,EACzF,IC1MIsR,EAAkC,SAAUtxB,GAE5C,SAASsxB,IACL,OAAkB,OAAXtxB,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAQA,OAXA,QAAUozB,EAAkBtxB,GAI5BsxB,EAAiB3zB,UAAUxB,OAAS,WAChC,IAAI7D,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MACpD,OAAQ,gBAAoB6sB,EAAA,GAAY,QAAS,CAAC,EAAG/nB,KAAK1E,MAAO,CAAEqmB,iBAAkB,wBAAyBtmB,OAAQwmB,EAAU3mB,EAAOG,GAASumB,oBAAqB,MACzK,GACmB,QAAW,EAC1B,EAAAyR,EAAA,GAAa,mBAAoB,CAAC,QAAS,WAAW,IACvDD,EAEP,CAbqC,CAanC,Y,sCCjBSE,E,SAAgB,C,0ICEhBzR,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO4mB,EAAcyR,GAClE,IAAIn5B,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBE,EAAQlkB,EAAMkkB,MAAOD,EAAUjkB,EAAMikB,QACrC4C,GAAmB,OAAoB7mB,GACvCs4B,GAAoB,OAAqBt4B,GACzCu4B,EAAuB,CACvBhqB,KAAM,CACFiqB,SAAU,QACVC,UAAW,OACXzkB,OAAQ,OACRwR,QAAS,aAEbqC,cAAe,CACX6Q,cAAe,MACf5S,WAAY,aACZ8R,SAAU,OACVhS,OAAQ,IAEZuC,cAAe,CACXsM,UAAW,QAEf1M,KAAM,CACFrC,SAAU,MACVD,WAAY,MACZzR,OAAQ,MACR4R,OAAQ,kBACR+S,UAAW,MACXjE,WAAY,KAEhBrK,MAAO,CACHzE,OAAQ,UACRH,WAAY,OACZN,WAAY,KAAYJ,UAE5B4F,YAAa,CACTzG,EAAMiC,MACN,CACIV,WAAY,UAIpBmT,EAAwB,CACxBjO,YAAa,CACT9L,MAAOoF,EAAQO,kBAEnBoF,mBAAoB,CAChB/K,MAAOoF,EAAQqC,aAEnByD,mBAAoB,CAChBlL,MAAO,WAEX+L,mBAAoB,CAChB/L,MAAO,WAEXgM,oBAAqB,CACjBhM,MAAO,YAGXga,EAAuB,CACvBlO,YAAa,CACT9L,MAAOoF,EAAQiS,MACfhmB,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEmmB,gBAAiB,aAAcxG,MAAO,WAAY,WACxF3f,IAER0qB,mBAAoB,CAChB/K,MAAOoF,EAAQiS,MACfhmB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBwe,gBAAiB,YACjBxG,MAAO,UAEXhY,IAERkjB,mBAAoB,CAChBlL,MAAO,UACP3O,WAAYpJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE+X,MAAO,SAAUwG,gBAAiB,eAAgB,WACxFve,IAER8jB,mBAAoB,CAChB/L,MAAO,UACP3O,WAAYnJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE8X,MAAO,SAAUwG,gBAAiB,eAAgB,WACxFte,IAER8jB,oBAAqB,CACjBhM,MAAO,UACP3O,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnF,MAAO,WAEXmF,KAGZ,OAAO,QAAgB6C,EAAkB0R,EAAsBF,GAAU,OAAcr4B,IAAS,OAAeA,GAAQq4B,EAAUQ,EAAuBD,EAAuBN,EAAmB1R,EACtM,IC9FIkS,EAAgC,SAAUlyB,GAE1C,SAASkyB,IACL,OAAkB,OAAXlyB,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAQA,OAXA,QAAUg0B,EAAgBlyB,GAI1BkyB,EAAev0B,UAAUxB,OAAS,WAC9B,IAAI7D,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGm5B,QAASA,OAAiB,IAAPxxB,GAAwBA,EAAI1G,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAC3G,OAAQ,gBAAoB6sB,EAAA,GAAY,QAAS,CAAC,EAAG/nB,KAAK1E,MAAO,CAAEqmB,iBAAkB4R,EAAU,6BAA+B,sBAAuBl4B,OAAQwmB,EAAU3mB,EAAOG,EAAQk4B,KAC1L,GACiB,QAAW,EACxB,EAAAF,EAAA,GAAa,iBAAkB,CAAC,QAAS,WAAW,IACrDW,EAEP,CAbmC,CAajC,Y,qJCdSnS,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO4mB,EAAcyR,GAClE,IAAIxR,GAAmB,OAAoB7mB,GACvCs4B,GAAoB,OAAqBt4B,GACzC+4B,EAAsB,CACtBxqB,KAAM,CACFqpB,SANmB,OAOnB5jB,OARgB,QAUpBqW,MAAO,CACHlF,WAAY,KAAYJ,WAGhC,OAAO,QAAgB8B,EAAkBkS,EAAqBV,GAAU,OAAcr4B,IAAS,OAAeA,GAAQs4B,EAAmB1R,EAC7I,ICZIoS,EAA+B,SAAUpyB,GAEzC,SAASoyB,IACL,OAAkB,OAAXpyB,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAQA,OAXA,QAAUk0B,EAAepyB,GAIzBoyB,EAAcz0B,UAAUxB,OAAS,WAC7B,IAAI7D,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGm5B,QAASA,OAAiB,IAAPxxB,GAAwBA,EAAI1G,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAC3G,OAAQ,gBAAoB6sB,EAAA,GAAY,QAAS,CAAC,EAAG/nB,KAAK1E,MAAO,CAAEqmB,iBAAkB4R,EAAU,qBAAuB,qBAAsBl4B,OAAQwmB,EAAU3mB,EAAOG,EAAQk4B,GAAU3R,oBAAqB,MAChN,GACgB,QAAW,EACvB,EAAAyR,EAAA,GAAa,gBAAiB,CAAC,QAAS,WAAW,IACpDa,EAEP,CAbkC,CAahC,Y,0ICjBSrS,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO4mB,GACpD,IAAI1nB,EACA2nB,GAAmB,OAAoB7mB,GACvCs4B,GAAoB,OAAqBt4B,GACzCikB,EAAUjkB,EAAMikB,QAChBgV,EAAmB,CACnB1qB,KAAM,CACFiX,QAAS,QACTtY,MAAO,OACP8G,OAAQ,OACRqR,gBAAiB,cACjB0B,OAAQ,OACRlI,MARsC7e,EAAM8e,eAQtBoa,MAE1BjS,YAAa,CACTpI,MAAOoF,EAAQ+D,aACf3C,gBAAiBpB,EAAQ4T,eACzB3nB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,YACbnI,MAAO,aAEX3f,IAERwqB,YAAa,CACTxc,MAAO,QAEXka,YAAa,CACTvI,MAAOoF,EAAQ6T,UACfzS,gBAAiBpB,EAAQkS,cAE7B7O,aAAc,CACVzI,MAAOoF,EAAQ6T,UACfzS,gBAAiBpB,EAAQkS,cAE7BxO,YAAa,CACT9I,MAAOoF,EAAQ6T,UACfzS,gBAAiBpB,EAAQkS,cAE7BjM,mBAAoB,CAChBrL,MAAOoF,EAAQ6T,UACfzS,gBAAiBpB,EAAQoS,sBAE7B5O,aAAc,CACV5I,MAAOoF,EAAQmS,qBAGvB,OAAO,QAAgBvP,EAAkBoS,EAAkBX,EAAmB1R,EAClF,IC5CIjF,EAA4B,SAAU/a,GAEtC,SAAS+a,IACL,OAAkB,OAAX/a,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAQA,OAXA,QAAU6c,EAAY/a,GAItB+a,EAAWpd,UAAUxB,OAAS,WAC1B,IAAI7D,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MACpD,OAAQ,gBAAoB6sB,EAAA,GAAY,QAAS,CAAC,EAAG/nB,KAAK1E,MAAO,CAAEqmB,iBAAkB,kBAAmBtmB,OAAQwmB,EAAU3mB,EAAOG,GAASutB,aAAc,IAAYhH,oBAAqB,MAC7L,GACa,QAAW,EACpB,EAAAyR,EAAA,GAAa,aAAc,CAAC,QAAS,WAAW,IACjDxW,EAEP,CAb+B,CAa7B,Y,8FCdEwX,EAA+B,SAAUvyB,GAEzC,SAASuyB,IACL,OAAkB,OAAXvyB,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAOA,OAVA,QAAUq0B,EAAevyB,GAIzBuyB,EAAc50B,UAAUxB,OAAS,WAC7B,OAAO,gBAAoB,KAAe,QAAS,CAAC,EAAG+B,KAAK1E,MAAO,CAAEi4B,SAAS,EAAM3R,oBAAqB,MAC7G,GACgB,QAAW,EACvB,OAAa,gBAAiB,CAAC,QAAS,WAAW,IACpDyS,EAEP,CAZkC,CAYhC,Y,6DChBSxS,GAAY,E,SAAA,KAAgB,SAAU3mB,EAAO4mB,GACpD,IAAI1nB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAChD7C,EAAU30B,EAAM20B,QAAS1Q,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eACzEiW,EAA0B,CAC1B5qB,MAAO,EACP0C,KAAM,EACNE,QAAS,EACTxC,OAAQ,EACRwc,OAAQ,QAERwO,EAA+B,CAC/BvP,SAAU,WACV9Y,MAAO,EACP3C,MAAO,GACPsC,IAAK,EACLE,OAAQ,GAERurB,EAAoB,CACpBtM,qBAAsB,EAClB,QAAchsB,EAAO,CAAEomB,kBAAmB2O,EAAyBE,MAAO,EAAGmE,cAAe,SAC5F,CACIvT,QAAS,cACT3V,UAAW,CACP,sBAAuB,CACnB8nB,qBAAsB,IACtBC,wBAAyB,IACzBoB,YAAa,OACbjR,SAAU,KAEd,sBAAuB,CACnB4P,qBAAsB,IACtBC,wBAAyB,IACzBlR,OAAQ,OACRqB,SAAU,IACVlY,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE2f,MAAO,aAAcwG,gBAAiB,SAAU0B,OAAQ,uBAAwBuS,iBAAkB,MAAO,WAC/Ip6B,EAAG,UAAY,CACX6nB,OAAQ,QAEZ7nB,EAAG,WAAa,CACZ6nB,OAAQ,QAEZ7nB,IAER,mCAAoC,CAChC6nB,OAAQ,OACR7W,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBkgB,OAAQ,uBACRwS,gBAAiB,KAErB1yB,OAKpBslB,4BAA6B,CACzBjc,UAAW,CACP,sBAAuB,CACnBA,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,SACPwG,gBAAiB,aAErBve,IAER,yBAA0B,CACtB+X,MAAOC,EAAeiX,mBACtB7lB,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8X,MAAO,WACPmI,YAAa,WACb3B,gBAAiB,UAErBte,MAIhBklB,4BAA6B,CACzB/b,UAAW,CACP,sBAAuB,CACnBA,WAAY8T,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEnF,MAAO,SAAUwG,gBAAiB,eAAgB,WACxFrB,MAIhBkI,mCAAoC,CAChChc,UAAW,CACP,sBAAuB,CACnBA,WAAYqmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE1X,MAAO,SAAUwG,gBAAiB,eAAgB,WACxFkR,MAIhBnK,4BAA6B,CACzBjc,QAAS,kBAEbwb,uBAAwB6K,EAAK,CACrBhR,QAAS,EACTxR,OAAQ,OACRohB,UAAW,aACXF,aAAc,EACd8C,qBAAsBrD,EAAQQ,eAC9B8C,wBAAyBtD,EAAQQ,eACjCpO,OAAQ,aAAazP,OAAO2M,EAAQuV,qBACpCC,WAAY,OACZtpB,QAAS,cACTklB,WAAY,OACZxP,QAAS,eACTP,eAAgB,OAChBmP,UAAW,SACXjY,OAAQ,UACRkd,cAAe,MACfxsB,MAAO,GACPysB,YAAa,EACbC,UAAW,EACXC,YAAa,EACbC,aAAc,GAElBtD,EAAG,MAAwB,CACvB,sBAAuB,CACnB3X,MAAO,eAGf2X,GACJ9J,oBAAoB,SAAS,QAAS,CAAC,EAAG6I,GAA+B,CAAErlB,WAAYumB,EAAK,CAAC,EACrFA,EAAG,MAAwB,CACvBpR,gBAAiB,cAErBoR,KACR9J,4BAA4B,SAAS,QAAS,CAAC,EAAG4I,GAA+B,CAAErlB,WAAYwmB,EAAK,CAAC,EAC7FA,EAAG,MAAwB,CACvBrR,gBAAiB,YAErBqR,KACR7K,8BAA+B,CAC3BuN,cAAe,OACfrS,OAAQ,OACR7W,WAAYmnB,EAAK,CACT,SAAU,CACN7a,OAAQ,WAEZ,sBAAuB,CACnBtM,WAAYonB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBzY,MAAO,WACPmI,YAAa,WACb3B,gBAAiB,UAErBiS,IAER,sBAAuB,CACnBpnB,WAAYqnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB1Y,MAAO,YAEX0Y,KAGZF,EAAG,MAAwB,CACvBxY,MAAO,WACPkI,OAAQ,qBACR1B,gBAAiB,UAErBgS,IAER7K,yBAA0B,CACtB3G,QAAS,OACT7R,OAAQ,OACRshB,SAAU,SACVxN,eAAgB,SAChBhC,WAAY,UAEhBuG,6BAA8B,CAC1Blc,QAAS,OACT4W,OAAQ,OACR7W,WAAYsnB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE3Y,MAAO,WAAYmI,YAAa,WAAY3B,gBAAiB,WAAY,WAC/GmS,IAERzL,wBAAwB,QAAS,CAAC,GAAG,QAAc/rB,EAAO,CAAEomB,kBAAmB2O,EAAyBE,MAAO,MAEnH,OAAO,QAAgBqD,EAAmB1R,EAC9C,G,wCC5LI1nB,E,0JCMA,EAA2B,WAC3B,SAAS66B,EAAU5vB,EAAMI,EAAOsC,EAAKE,QACpB,IAAT5C,IAAmBA,EAAO,QAChB,IAAVI,IAAoBA,EAAQ,QACpB,IAARsC,IAAkBA,EAAM,QACb,IAAXE,IAAqBA,EAAS,GAClCjI,KAAK+H,IAAMA,EACX/H,KAAKiI,OAASA,EACdjI,KAAKqF,KAAOA,EACZrF,KAAKyF,MAAQA,CACjB,CAgCA,OA/BApG,OAAOgN,eAAe4oB,EAAUx1B,UAAW,QAAS,CAIhD6M,IAAK,WACD,OAAOtM,KAAKyF,MAAQzF,KAAKqF,IAC7B,EACAkH,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAe4oB,EAAUx1B,UAAW,SAAU,CAIjD6M,IAAK,WACD,OAAOtM,KAAKiI,OAASjI,KAAK+H,GAC9B,EACAwE,YAAY,EACZC,cAAc,IAKlByoB,EAAUx1B,UAAUy1B,OAAS,SAAUlmB,GAGnC,OAAQR,WAAWxO,KAAK+H,IAAI0G,QAAQ,MAAQD,WAAWQ,EAAKjH,IAAI0G,QAAQ,KACpED,WAAWxO,KAAKiI,OAAOwG,QAAQ,MAAQD,WAAWQ,EAAK/G,OAAOwG,QAAQ,KACtED,WAAWxO,KAAKqF,KAAKoJ,QAAQ,MAAQD,WAAWQ,EAAK3J,KAAKoJ,QAAQ,KAClED,WAAWxO,KAAKyF,MAAMgJ,QAAQ,MAAQD,WAAWQ,EAAKvJ,MAAMgJ,QAAQ,GAC5E,EACOwmB,CACX,CA3C8B,GDA9B,SAASE,EAAoBC,EAAYC,EAAeC,GACpD,MAAO,CACHF,WAAYA,EACZC,cAAeA,EACfC,OAAQA,EAEhB,CAEA,IAAIC,IAAyBn7B,EAAK,CAAC,GAC5Boa,EAAA,EAAgBC,aAAe0gB,EAAoB,IAAcptB,IAAK,IAAc1C,MACvFjL,EAAGoa,EAAA,EAAgBE,WAAaygB,EAAoB,IAAcptB,KAClE3N,EAAGoa,EAAA,EAAgBG,cAAgBwgB,EAAoB,IAAcptB,IAAK,IAActC,OACxFrL,EAAGoa,EAAA,EAAgBI,aAAeugB,EAAoB,IAAcptB,SAAKhJ,GAAW,GACpF3E,EAAGoa,EAAA,EAAgBK,gBAAkBsgB,EAAoB,IAAcltB,OAAQ,IAAc5C,MAC7FjL,EAAGoa,EAAA,EAAgBM,cAAgBqgB,EAAoB,IAAcltB,QACrE7N,EAAGoa,EAAA,EAAgBO,iBAAmBogB,EAAoB,IAAcltB,OAAQ,IAAcxC,OAC9FrL,EAAGoa,EAAA,EAAgBQ,gBAAkBmgB,EAAoB,IAAcltB,YAAQlJ,GAAW,GAC1F3E,EAAGoa,EAAA,EAAgBS,aAAekgB,EAAoB,IAAc9vB,KAAM,IAAc0C,KACxF3N,EAAGoa,EAAA,EAAgBU,YAAcigB,EAAoB,IAAc9vB,MACnEjL,EAAGoa,EAAA,EAAgBW,gBAAkBggB,EAAoB,IAAc9vB,KAAM,IAAc4C,QAC3F7N,EAAGoa,EAAA,EAAgBY,cAAgB+f,EAAoB,IAAc1vB,MAAO,IAAcsC,KAC1F3N,EAAGoa,EAAA,EAAgBa,aAAe8f,EAAoB,IAAc1vB,OACpErL,EAAGoa,EAAA,EAAgBc,iBAAmB6f,EAAoB,IAAc1vB,MAAO,IAAcwC,QAC7F7N,GACJ,SAASo7B,EAAyBxmB,EAAMymB,GACpC,QAAIzmB,EAAKjH,IAAM0tB,EAAa1tB,KAGxBiH,EAAK/G,OAASwtB,EAAaxtB,QAG3B+G,EAAK3J,KAAOowB,EAAapwB,MAGzB2J,EAAKvJ,MAAQgwB,EAAahwB,MAIlC,CAKA,SAASiwB,EAAqB1mB,EAAMymB,GAChC,IAAIE,EAAc,GAalB,OAZI3mB,EAAKjH,IAAM0tB,EAAa1tB,KACxB4tB,EAAYh4B,KAAK,IAAcoK,KAE/BiH,EAAK/G,OAASwtB,EAAaxtB,QAC3B0tB,EAAYh4B,KAAK,IAAcsK,QAE/B+G,EAAK3J,KAAOowB,EAAapwB,MACzBswB,EAAYh4B,KAAK,IAAc0H,MAE/B2J,EAAKvJ,MAAQgwB,EAAahwB,OAC1BkwB,EAAYh4B,KAAK,IAAc8H,OAE5BkwB,CACX,CACA,SAASC,EAAc5mB,EAAM6mB,GACzB,OAAO7mB,EAAK,IAAc6mB,GAC9B,CACA,SAASC,EAAc9mB,EAAM6mB,EAAMlmB,GAE/B,OADAX,EAAK,IAAc6mB,IAASlmB,EACrBX,CACX,CAMA,SAAS+mB,EAAgB/mB,EAAM6mB,GAC3B,IAAIG,EAAQC,EAAkBJ,GAC9B,OAAQD,EAAc5mB,EAAMgnB,EAAME,cAAgBN,EAAc5mB,EAAMgnB,EAAMG,eAAiB,CACjG,CAYA,SAASC,EAAsBP,EAAMlmB,GACjC,OAAIkmB,EAAO,EACAlmB,GAGS,EAATA,CAEf,CACA,SAAS0mB,EAA0BR,EAAM7mB,GACrC,OAAOonB,EAAsBP,EAAMD,EAAc5mB,EAAM6mB,GAC3D,CACA,SAASS,EAA2BtnB,EAAMunB,EAAUV,GAEhD,OAAOO,EAAsBP,EADRD,EAAc5mB,EAAM6mB,GAAQD,EAAcW,EAAUV,GAE7E,CAMA,SAASW,EAAUxnB,EAAM6mB,EAAMnkB,EAAU+kB,QAChB,IAAjBA,IAA2BA,GAAe,GAC9C,IAAIC,EAAad,EAAc5mB,EAAM6mB,GAAQnkB,EACzCilB,EAAab,EAAc9mB,EAAM6mB,EAAMnkB,GAI3C,OAHI+kB,IACAE,EAAab,EAAc9mB,GAAc,EAAR6mB,EAAWD,EAAc5mB,GAAc,EAAR6mB,GAAaa,IAE1EC,CACX,CAIA,SAASC,EAAY5nB,EAAMtV,EAAQm8B,EAAMgB,GAErC,YADY,IAARA,IAAkBA,EAAM,GACrBL,EAAUxnB,EAAM6mB,EAAMD,EAAcl8B,EAAQm8B,GAAQO,EAAsBP,EAAMgB,GAC3F,CAcA,SAASC,EAAgB9nB,EAAM+nB,EAAQlB,GAEnC,OADwBQ,EAA0BR,EAAM7mB,GAC7BqnB,EAA0BR,EAAMkB,EAC/D,CAMA,SAASC,EAAsBhoB,EAAM+nB,GAGjC,IAFA,IACIE,EAAQ,EACHz7B,EAAK,EAAG07B,EAFGxB,EAAqB1mB,EAAM+nB,GAEGv7B,EAAK07B,EAAgBx7B,OAAQF,IAAM,CACjF,IAAIq6B,EAAOqB,EAAgB17B,GAC3By7B,GAASpvB,KAAKsvB,IAAIb,EAA2BtnB,EAAM+nB,EAAQlB,GAAO,EACtE,CACA,OAAOoB,CACX,CAgIA,SAASG,EAAuBC,EAAkBC,EAAiBC,EAAUC,GACzE,IAAK,IAAIh8B,EAAK,EAAGi8B,EAAqBJ,EAAkB77B,EAAKi8B,EAAmB/7B,OAAQF,IAAM,CAC1F,IAAI2I,EAAYszB,EAAmBj8B,GAC/Bk8B,OAAc,EAGdF,GAAgBA,KAA8B,EAAbrzB,GACjCuzB,EAAclB,EAAUc,EAAgBK,iBAAkBxzB,EAAWyxB,EAAc2B,EAAUpzB,IAAY,GACzGmzB,EAAgBM,gBAAiB,GAIlBd,EADfY,EAAcd,EAAYU,EAAgBK,iBAAkBJ,EAAUpzB,GAC1BozB,GAAuB,EAAbpzB,KAGlDuzB,EAAclB,EAAUkB,GAA0B,EAAbvzB,EAAgByxB,EAAc2B,GAAuB,EAAbpzB,IAAiB,GAC9FmzB,EAAgBM,gBAAiB,GAGzCN,EAAgBK,iBAAmBD,CACvC,CACA,OAAOJ,CACX,CAMA,SAASO,EAAmB7oB,EAAM6mB,EAAMzpB,GACpC,IAAI8pB,EAAeD,EAAkBJ,GAAMK,aAG3C,OAAOM,EAAUxnB,EAAMknB,EAAc9pB,GAFjB2pB,EAAgB/mB,EAAM6mB,GACHD,EAAc5mB,EAAMknB,IAE/D,CAKA,SAAS4B,EAAkBC,EAAmBr+B,EAAQs+B,EAAcnB,EAAKoB,QACzD,IAARpB,IAAkBA,EAAM,GAC5B,IAAIqB,EAA2B,IAAI,EAAUH,EAAkB1yB,KAAM0yB,EAAkBtyB,MAAOsyB,EAAkBhwB,IAAKgwB,EAAkB9vB,QACnIotB,EAAgB2C,EAAa3C,cAAeD,EAAa4C,EAAa5C,WACtE+C,EAAcF,EAAc7C,GAA2B,EAAdA,EAY7C,OAXA8C,EAA2BD,EACrBrB,EAAYsB,EAA0Bx+B,EAAQ07B,EAAYyB,GAtMpE,SAA6B7nB,EAAMtV,EAAQ07B,EAAYyB,QACvC,IAARA,IAAkBA,EAAM,GAC5B,IACIuB,EAAchC,GADe,EAAdhB,EACmCyB,GACtD,OAAOL,EAAUxnB,GAAoB,EAAdomB,EAAiBQ,EAAcl8B,EAAQ07B,GAAcgD,EAChF,CAkMUC,CAAoBH,EAA0Bx+B,EAAQ07B,EAAYyB,GAOpEqB,EALC7C,EAK0BuB,EAAYsB,EAA0Bx+B,EAAQ27B,GAH9CwC,EAAmBK,EAA0BC,EADhDpC,EAAgBr8B,EAAQ07B,GAOxD,CAKA,SAASa,EAAkBJ,GACvB,OAAIA,IAAS,IAAc9tB,KAAO8tB,IAAS,IAAc5tB,OAC9C,CACHiuB,aAAc,IAAc7wB,KAC5B8wB,aAAc,IAAc1wB,OAIzB,CACHywB,aAAc,IAAcnuB,IAC5BouB,aAAc,IAAcluB,OAGxC,CAKA,SAASqwB,EAAoBX,EAAkBY,EAAYxB,GACvD,OAAIA,GACAlvB,KAAKQ,IAAIiuB,EAA2BqB,EAAkBZ,EAAQwB,IAC1D1wB,KAAKQ,IAAIiuB,EAA2BqB,EAAkBZ,GAAsB,EAAdwB,KAC7C,EAAdA,EAEJA,CACX,CAkBA,SAASC,EAAyBb,EAAkB9jB,EAAauhB,EAAY2B,EAAQ1B,EAAe4C,EAAaQ,EAAyBC,GACtI,IAuS4B7C,EAvSxB8C,EAAc,CAAC,EACfpC,EAAWqC,EAAyB/kB,GACpCskB,EAAcF,EAAc7C,GAA2B,EAAdA,EACzCmD,EAAalD,GAAgCY,EAAkBb,GAAYc,aAgB/E,OAVKuC,IApBT,SAAyBd,EAAkB9B,EAAMkB,GAC7C,YAAkBh4B,IAAXg4B,GAAwBnB,EAAc+B,EAAkB9B,KAAUD,EAAcmB,EAAQlB,EACnG,CAkBoCgD,CAAgBlB,GA8RpB9B,EA9RsD0C,GA+RnE,EAAR1C,GA/RwFkB,KAC3FwB,EAAaD,EAAoBX,EAAkBY,EAAYxB,IAEnE4B,EAAY,IAAcR,IAAgB7B,EAA2BqB,EAAkBpB,EAAU4B,GACjGQ,EAAY,IAAcJ,IAAejC,EAA2BqB,EAAkBpB,EAAUgC,GAE5FG,IACAC,EAAY,KAA6B,EAAfR,IAAqB7B,EAA2BqB,EAAkBpB,GAAyB,EAAf4B,GACtGQ,EAAY,KAA4B,EAAdJ,IAAoBjC,EAA2BqB,EAAkBpB,GAAwB,EAAdgC,IAElGI,CACX,CA8CA,SAASG,EAAe1D,EAAY17B,EAAQ+7B,GACxC,IAAIsD,EAAehD,EAAgBr8B,EAAQ07B,GACvC4D,EAAiBjD,EAAgBN,EAAcL,GAC/Ch7B,EAAK67B,EAAkBb,GAAac,EAAe97B,EAAG87B,aAAcC,EAAe/7B,EAAG+7B,aAC1F,OAAI4C,GAAgBC,EACT9C,EAGAC,CAEf,CACA,SAAS8C,EAA6BlB,EAAmBr+B,EAAQ69B,EAAUS,EAAcnB,EAAKqC,EAAsBjB,GAChH,IAAIC,EAA2BJ,EAAkBC,EAAmBr+B,EAAQs+B,EAAcnB,EAAKoB,GAC/F,OAAIzC,EAAyB0C,EAA0BX,GAC5C,CACHI,iBAAkBO,EAClB9C,WAAY4C,EAAa5C,WACzBC,cAAe2C,EAAa3C,eAzOxC,SAAgCr8B,EAASU,EAAQ69B,EAAUS,EAAcnB,EAAKqC,EAAsBjB,QACpF,IAARpB,IAAkBA,EAAM,GAC5B,IAAIxB,EAAgB2C,EAAa3C,cAAe8D,EAAkBnB,EAAamB,gBAC3E7B,EAAkB,CAClBK,iBAAkB3+B,EAClBo8B,WAAY4C,EAAa5C,WACzBC,cAAeA,GAEd6D,GAAyBjB,IAC1BX,EAtFR,SAAoBtoB,EAAMtV,EAAQ69B,EAAUS,EAAcnB,QAC1C,IAARA,IAAkBA,EAAM,GAC5B,IAAIuC,EAAa,CACb,IAAc/zB,KACd,IAAcI,MACd,IAAcwC,OACd,IAAcF,MAGd,YACAqxB,EAAW,KAAO,EAClBA,EAAW,KAAO,GAWtB,IATA,IAIIC,EAJAC,EAAkBtqB,EAClBuqB,EAAcvB,EAAa5C,WAC3BoE,EAAmBxB,EAAa3C,cAGhCoE,EAAWF,EACXG,EAAgBF,EAGX15B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,GAAKg3B,EAAgBwC,EAAiB/B,EAAUgC,GAqB5C,MAAO,CACH5B,iBAAkB2B,EAClBlE,WAAYmE,EACZlE,cAAemE,GAtBnB,IAAIG,EAAmB3C,EAAsBsC,EAAiB/B,KACzD8B,GAAaM,EAAmBN,KACjCA,EAAYM,EACZF,EAAWF,EACXG,EAAgBF,GAEpBJ,EAAW1e,OAAO0e,EAAW9pB,QAAQiqB,GAAc,GAC/CH,EAAW19B,OAAS,IAChB09B,EAAW9pB,SAAuB,EAAfiqB,IAAqB,EACxCA,IAA6B,GAG7BC,EAAmBD,EACnBA,EAAcH,EAAW7mB,OAAO,GAAG,IAEvC+mB,EAAkBxB,EAAkB9oB,EAAMtV,EAAQ,CAAE07B,WAAYmE,EAAalE,cAAemE,GAAoB3C,GAU5H,CAGA,MAAO,CACHc,iBAFJ2B,EAAkBxB,EAAkB9oB,EAAMtV,EAAQ,CAAE07B,WAAYqE,EAAUpE,cAAeqE,GAAiB7C,GAGtGzB,WAAYqE,EACZpE,cAAeqE,EAEvB,CA4B0BE,CAAW5gC,EAASU,EAAQ69B,EAAUS,EAAcnB,IAE1E,IAAIlB,EAAcD,EAAqB4B,EAAgBK,iBAAkBJ,GAGrEsC,EAAYX,GAAwB5B,EAAgBlC,gBAAar2B,EACrE,GAAI42B,EAAYj6B,OAAS,EACrB,GAAIy9B,EAGA,GAAI7B,EAAgBjC,eAAiBM,EAAYrmB,SAAyC,EAAjCgoB,EAAgBjC,gBAAuB,EAAG,CAC/F,IAAIyE,EAlCpB,SAA4BxC,EAAiB59B,EAAQm9B,EAAKoB,GACtD,IAAI5C,EAAgBiC,EAAgBjC,cAAeD,EAAakC,EAAgBlC,WAC5E2E,GAAgC,EAAjB1E,EAEnB,MAAO,CACHsC,iBAFcG,EAF6FR,EAAgBK,iBAEzEj+B,EAAQ,CAAE07B,WAAYA,EAAYC,cAAe0E,GAAgBlD,EAAKoB,GAGxH7C,WAAYA,EACZC,cAAe0E,EAEvB,CAyB6CC,CAAmB1C,EAAiB59B,EAAQm9B,EAAKoB,GAC9E,GAAIzC,EAAyBsE,EAAuBnC,iBAAkBJ,GAClE,OAAOuC,EAIPxC,EAAkBF,EAAuB1B,EAAqBoE,EAAuBnC,iBAAkBJ,GAAWD,EAAiBC,EAAUsC,EAErJ,MAEIvC,EAAkBF,EAAuBzB,EAAa2B,EAAiBC,EAAUsC,QAIrFvC,EAAkBF,EAAuBzB,EAAa2B,EAAiBC,EAAUsC,GAGzF,OAAOvC,CACX,CAuMe2C,CAAuB/B,EAA0Bx+B,EAAQ69B,EAAUS,EAAcnB,EAAKqC,EAAsBjB,EAE3H,CAyCA,SAASW,EAAyB5/B,GAE9B,IAAIkhC,EAAalhC,EAAQiV,wBACzB,OAAO,IAAI,EAAUisB,EAAW70B,KAAM60B,EAAWz0B,MAAOy0B,EAAWnyB,IAAKmyB,EAAWjyB,OACvF,CA+DA,SAASkyB,EAAyB7+B,EAAOy8B,EAAmBtC,EAAc2E,GACtE,IAAIvD,EAAMv7B,EAAM++B,SAAW/+B,EAAM++B,SAAW,EACxC7yB,EA7DR,SAAwBuvB,EAAQr9B,GAC5B,IAAI4gC,EACJ,GAAI5gC,EAAQ,CAER,GAAMA,EAAO0N,eAAgB,CACzB,IAAIzG,EAAKjH,EACT4gC,EAAkB,IAAI,EAAU35B,EAAG45B,QAAS55B,EAAG45B,QAAS55B,EAAG65B,QAAS75B,EAAG65B,QAE3E,MACK,GAAM9gC,EAAOuU,sBACdqsB,EAAkB1B,EAAyBl/B,OAG1C,CACD,IAAI+gC,EAAc/gC,EAEd2L,EAAOo1B,EAAYp1B,MAAQo1B,EAAY9yB,EAEvCsH,EAAQwrB,EAAY1yB,KAAO0yB,EAAYC,EACvCj1B,EAAQg1B,EAAYh1B,OAASJ,EAC7B4C,EAASwyB,EAAYxyB,QAAUgH,EACnCqrB,EAAkB,IAAI,EAAUj1B,EAAMI,EAAOwJ,EAAOhH,EACxD,CACA,IAAKutB,EAAyB8E,EAAiBvD,GAE3C,IADA,IACSv7B,EAAK,EAAGm/B,EADCjF,EAAqB4E,EAAiBvD,GACVv7B,EAAKm/B,EAAcj/B,OAAQF,IAAM,CAC3E,IAAI2I,EAAYw2B,EAAcn/B,GAC9B8+B,EAAgB,IAAcn2B,IAAc4yB,EAAO,IAAc5yB,GACrE,CAER,MAEIm2B,EAAkB,IAAI,EAAU,EAAG,EAAG,EAAG,GAE7C,OAAOA,CACX,CA0BqBM,CAAenF,EAAcn6B,EAAM5B,QAChDs+B,EA7IR,SAA2BA,EAAct+B,EAAQ+7B,EAAcwC,EAAakB,GAKxE,OAJInB,EAAa1C,SACb0C,EAAa3C,cAAgByD,EAAed,EAAa5C,WAAY17B,EAAQ+7B,IAEjFuC,EAAamB,gBAAkBA,EACxBnB,CACX,CAuIuB6C,CArKvB,SAA0B1d,EAAiB2d,EAAuBV,GAE9D,QADwB,IAApBjd,IAA8BA,EAAkB3I,EAAA,EAAgBQ,gBAChEolB,EACA,MAAO,CACH/E,cAAe+E,EAAkB/E,cACjCC,OAAQ8E,EAAkB9E,OAC1BF,WAAYgF,EAAkBhF,YAGtC,IAAI2F,GAAsB,QAAS,CAAC,EAAGxF,EAAsBpY,IAC7D,OAAI,WAEI4d,EAAoB1F,eAAiB0F,EAAoB1F,cAAgB,GAAM,IAC/E0F,EAAoB1F,eAAqD,EAArC0F,EAAoB1F,oBAE3Bt2B,IAA1B+7B,EAAsCvF,EAAsBuF,GAAyBC,GAEzFA,CACX,CAmJyCC,CAAiB1/B,EAAM6hB,gBAAiB7hB,EAAMw/B,sBAAuBV,GAAoB5yB,EAAYiuB,EAAcn6B,EAAM28B,YAAa38B,EAAM69B,iBAC7K8B,EAAoBhC,EAA6BL,EAAyBb,GAAoBvwB,EAAYiuB,EAAcuC,EAAcnB,EAAKv7B,EAAM49B,qBAAsB59B,EAAM28B,aACjL,OAAO,SAAS,QAAS,CAAC,EAAGgD,GAAoB,CAAEX,gBAAiB9yB,GACxE,CAgBA,SAAS0zB,EAAiB5/B,EAAOuY,EAAasnB,EAASf,EAAmB3B,GACtE,IAAI2C,EAAY9/B,EAAM+/B,eAAgB//B,EAAM8/B,WAAiB,EACzDvE,EArMR,SAA2CuE,GACvC,OAAOvzB,KAAKyzB,KAAKF,EAAYA,EAAY,EAC7C,CAmMcG,CAAkCH,GAAa,GAAK9/B,EAAM++B,SAAW/+B,EAAM++B,SAAW,GAC5FmB,EAAgBlgC,EACpBkgC,EAAcnB,SAAWxD,EACzB,IAtI2B4E,EAAiBC,EAAgB3E,EACxD3B,EAEAriB,EACA4lB,EACAJ,EAGAoD,EAqCwB3sB,EAyFxBymB,EAAen6B,EAAMy7B,QAzFG/nB,EA0FC1T,EAAMy7B,OAzF5B,IAAI,EAAU/nB,EAAK3J,KAAM2J,EAAKvJ,MAAOuJ,EAAKjH,IAAKiH,EAAK/G,SA0FrD,IAAI,EAAU,EAAG3G,OAAOs6B,YAAa,UAAqB,EAAGt6B,OAAOu6B,aACtEZ,EAAoBd,EAAyBqB,EAAeL,EAAS1F,EAAc2E,GAEnF0B,GA3IuBL,EA2IuBR,EA3INS,EAkBhD,SAAuBN,EAAWK,GAC9B,IAAI/hC,EAAS+hC,EAAgBnB,gBAOzBlgC,EAAK67B,EAAkBwF,EAAgBrG,YAAac,EAAe97B,EAAG87B,aAAcC,EAAe/7B,EAAG+7B,aACtG4F,EAAkBhG,EAAgBr8B,EAAQ+hC,EAAgBrG,YAC1D4G,EAAgB,IAAI,EAAUZ,EAAY,EAAGK,EAAgB9D,iBAAiBvvB,MAAQgzB,EAAY,EAAGA,EAAY,EAAGK,EAAgB9D,iBAAiBzoB,OAASksB,EAAY,GAC1Ka,EAAe,IAAI,EAAU,EAAGb,EAAW,EAAGA,GASlD,OANKtE,EADLmF,EAAepE,EADfoE,EAAezF,EAAUyF,GAA4C,EAA9BR,EAAgBrG,YAAkBgG,EAAY,IACP,EAA9BK,EAAgBrG,WAAiB2G,EAAkB1F,EAA0BH,EAAcuF,EAAgB9D,mBACxHqE,EAAe9F,GAGxCY,EAAgBmF,EAAcD,EAAe7F,KACnD8F,EAAerF,EAAYqF,EAAcD,EAAe7F,IAHxD8F,EAAerF,EAAYqF,EAAcD,EAAe9F,GAKrD+F,CACX,CAmGyBC,CAAcd,EAAWH,GA1IclE,EA2IyBtB,EA1IjFL,GAA2C,EAA9BqG,EAAgBrG,WAE7BriB,EAAgB,IAAI,EAAU,EAAG0oB,EAAgB9D,iBAAiBvvB,MAAO,EAAGqzB,EAAgB9D,iBAAiBzoB,QAC7GypB,EAAc,CAAC,EACfJ,EAAaD,EAAoBmD,EAAgB9D,iBAAkB8D,EAAgBpG,cAAgBoG,EAAgBpG,cAAgBY,EAAkBb,GAAYc,aAAca,GAG/K4E,EADqBrF,EAA2BmF,EAAgB9D,iBAAkB8D,EAAgBnB,gBAAiBlF,GACnFvtB,KAAKQ,IAAIutB,EAAc8F,EAAgBtG,IAC3EuD,EAAY,IAAcvD,IAAeQ,EAAc8F,EAAgBtG,GACvEuD,EAAY,IAAcJ,IAAejC,EAA2BoF,EAAgB3oB,EAAewlB,GAC5F,CACHkD,iBAAiB,QAAS,CAAC,EAAG9C,GAC9BwD,YAAarD,EAAe2C,EAAgBrG,WAAYsG,EAAgB3oB,GACxEqiB,WAAYA,EACZgH,UAAWT,IA6Hf,OAAO,SAAS,QAAS,CAAC,EA1B9B,SAA+BV,EAAmBpnB,EAAakjB,EAAQkB,EAAaQ,GAEhF,MAAO,CACHgD,gBAFmBjD,EAAyByC,EAAkBtD,iBAAkB9jB,EAAaonB,EAAkB7F,WAAY2B,EAAQkE,EAAkB5F,cAAe4C,EAAaQ,EAAyBwC,EAAkBrD,gBAG5NxC,WAAY6F,EAAkB7F,WAC9BC,cAAe4F,EAAkB5F,cAEzC,CAmBiCgH,CAAsBpB,EAAmBpnB,EAAa4hB,EAAcn6B,EAAM28B,YAAaQ,IAA2B,CAAEwD,aAAcH,GACnK,C,IE7mBI,E,sFAWAQ,IAAc,EAAK,CAAC,GACjB,IAAcv0B,KAAO,KAAoBw0B,YAC5C,EAAG,IAAct0B,QAAU,KAAoBu0B,cAC/C,EAAG,IAAcn3B,MAAQ,KAAoBo3B,cAC7C,EAAG,IAAch3B,OAAS,KAAoBi3B,eAC9C,GAOAC,GAAmB,CACnBC,QAAS,EACTC,OAAQ,aACRvI,cAAe,QAKfwI,GAAuB,CAAC,OAAQ,wBAChCC,GAAgB,CAChBC,2BAA2B,EAC3BC,wBAAwB,EACxBC,wBAAwB,EACxB7B,eAAe,EACfD,UAAW,GACXf,SAAU,EACV8C,eAAgB,EAChBhgB,gBAAiB3I,EAAA,EAAgBQ,gBAEjC2E,IAAgB,EAAAC,EAAA,GAAmB,CACnCwjB,gBAAgB,IAoEpB,SAASC,GAAa/hC,EAAOuY,EAAaypB,EAAgBvpB,EAAWwpB,GACjE,IAAInjC,EAAK,aAAkBojC,EAAYpjC,EAAG,GAAIqjC,EAAerjC,EAAG,GAC5DsjC,EAAmB,SAAa,GAChCC,EAAiB,WACjBC,GAAQ,EAAAvtB,EAAA,KACRoe,EAASnzB,EAAMmzB,OAAQ/0B,EAAS4B,EAAM5B,OAAQmkC,EAAcviC,EAAMuiC,YAAaC,EAAmBxiC,EAAMwiC,iBAAkBC,EAAeziC,EAAMyiC,aAAc5gB,EAAkB7hB,EAAM6hB,gBA8DzL,OA7DA,aAAgB,WACZ,IAAKsR,EAAQ,CACT,IAAIuP,EAAYJ,EAAMK,uBAAsB,WACxC,IAAI7jC,EAAI2H,EA0RGm8B,EAAsBC,EAzRjC,GAAItqB,EAAY1Q,SAAWm6B,EAAgB,CACvC,IAAIc,GAAe,SAAS,QAAS,CAAC,EAAG9iC,GAAQ,CAAE5B,OAAQqa,EAAU5Q,QAAS4zB,OAAQwG,MAElFc,EAAqBf,EAAegB,WAAU,GAClDD,EAAmBhmB,MAAMkmB,UAAYT,EAAmB,GAAGtrB,OAAOsrB,GAAoB,GACtFO,EAAmBhmB,MAAMmmB,WAAa,SACE,QAAvCpkC,EAAKkjC,EAAep6B,qBAAkC,IAAP9I,GAAyBA,EAAGqkC,YAAYJ,GACxF,IAAIjE,EAAoBuD,EAAex6B,UAAYzJ,EAAS8jC,OAAYz+B,EAGpE2/B,EAAeb,EFmgBhC,SAAsBviC,EAAOuY,EAAakkB,EAAmBqC,GAChE,OAzBJ,SAAuB9+B,EAAOuY,EAAasnB,EAASf,GAChD,OAAOc,EAAiB5/B,EAAOuY,EAAasnB,EAASf,GAAmB,EAC5E,CAuBWuE,CAAcrjC,EAAOuY,EAAakkB,EAAmBqC,EAChE,CEpgB0BwE,CAAaR,EAAcvqB,EAAY1Q,QAASk7B,EAAoBjE,GF+fvF,SAAyB9+B,EAAOuY,EAAakkB,EAAmBqC,GACnE,OAAOc,EAAiB5/B,EAAOuY,EAAakkB,EAAmBqC,EACnE,CEhgB0ByE,CAAgBT,EAAcvqB,EAAY1Q,QAASk7B,EAAoBjE,GAErC,QAAvCr4B,EAAKu7B,EAAep6B,qBAAkC,IAAPnB,GAAyBA,EAAG+8B,YAAYT,IAGlFb,GAAakB,GACdlB,GAAakB,IAuQWP,EAvQmCO,GAwQxEK,IADeb,EAvQ8CV,GAwQvB/B,gBAAiB0C,EAAmB1C,mBAC9EsD,GAAiBb,EAAqBjC,aAAaR,gBAAiB0C,EAAmBlC,aAAaR,mBAzQPiC,EAAiBv6B,QAAU,GAGxGu6B,EAAiBv6B,UACjBs6B,EAAaiB,IAERhB,EAAiBv6B,QAAU,IAEhCu6B,EAAiBv6B,QAAU,EAC3B46B,SAA4DA,EAAaP,GAEjF,CACJ,GAAGF,GAEH,OADAK,EAAex6B,QAAUzJ,EAClB,WACHkkC,EAAMoB,qBAAqBhB,GAC3BL,EAAex6B,aAAUpE,CAC7B,CACJ,CAGI0+B,OAAa1+B,GACb2+B,EAAiBv6B,QAAU,CAEnC,GAAG,CACCsrB,EACAtR,EACAygB,EACAN,EACAQ,EACAjqB,EACAE,EACA8pB,EACAN,EACAQ,EACAP,EACAliC,EACA5B,IAEG8jC,CACX,CA+HO,IAAIyB,GAAqB,OAAW,cAAiB,SAAUC,EAAsBC,GACxF,IAAI7jC,GAAQ,EAAA8jC,EAAA,GAAqBrC,GAAemC,GAC5C7jC,EAASC,EAAMD,OAAQgd,EAAQ/c,EAAM+c,MAAOyC,EAAYxf,EAAMwf,UAAWjQ,EAAkBvP,EAAMuP,gBAAiBC,EAAiBxP,EAAMwP,eAAgBlN,EAAYtC,EAAMsC,UAAWy9B,EAAgB//B,EAAM+/B,cAAe3+B,EAAWpB,EAAMoB,SAAU0+B,EAAY9/B,EAAM8/B,UAAWiE,EAAe/jC,EAAM+jC,aAAcC,EAAkBhkC,EAAMgkC,gBAAiBC,EAAkBjkC,EAAMikC,gBAAiBtR,EAAa3yB,EAAM2yB,WAAY4P,EAAcviC,EAAMuiC,YAAazjC,EAAKkB,EAAMkkC,aAAcA,OAAsB,IAAPplC,IAAkByjC,EAAczjC,EAAImmB,EAAkBjlB,EAAMilB,gBAAiBud,EAAmBxiC,EAAMwiC,iBAAkB2B,EAAWnkC,EAAMmkC,SAE7nB19B,EAAKzG,EAAMoR,mBAEXA,OAA4B,IAAP3K,GAAuBA,EAAIrI,EAAS4B,EAAM5B,OAAQ+0B,EAASnzB,EAAMmzB,OAAQiR,EAAiBpkC,EAAMokC,eAAgBC,EAAarkC,EAAMqkC,WACpJ9rB,EAAc,SAAa,MAC3B7R,EAAK,WAAe,MAAOs7B,EAAiBt7B,EAAG,GAAI49B,EAAoB59B,EAAG,GAC1E69B,EAAkB,eAAkB,SAAUC,GAC9CF,EAAkBE,EACtB,GAAG,IACCC,GAAU,EAAAjuB,EAAA,GAAc+B,EAAasrB,GACrCl9B,GAAK,EAAA2R,EAAA,GAAUtY,EAAM5B,OAAQ,CAC7ByJ,QAASm6B,IACTvpB,EAAY9R,EAAG,GAAI+R,EAAe/R,EAAG,GACrCs7B,EAlRR,SAAmBnjC,EAAI2Z,EAAWC,GAC9B,IAAI+iB,EAAS38B,EAAG28B,OAAQh1B,EAAK3H,EAAG+iC,eAAgBA,OAAwB,IAAPp7B,EAAgBg7B,GAAcI,eAAiBp7B,EAAIrI,EAASU,EAAGV,OAC5HsI,EAAK,YAAe,GAAQg+B,EAAsBh+B,EAAG,GAAIi+B,EAAyBj+B,EAAG,GACrFk+B,EAAe,WACf3C,EAAY,eAAkB,WAC9B,IAAK2C,EAAa/8B,SAAW68B,EAAqB,CAC9C,IAAIG,EAAkC,mBAAXpJ,EAAyB/iB,EAAe+iB,EAAOr9B,EAAQsa,QAAgBjV,EAAag4B,GAC1GoJ,GAAiBnsB,IAClBmsB,EFyqBT,SAAmCzmC,EAAQsa,GAC9C,OAlDJ,SAAoCta,EAAQsa,GACxC,IAAIosB,OAAWrhC,EAKf,GAJIiV,EAAaqsB,oBACbD,EAAWpsB,EAAaqsB,0BAGXthC,IAAbqhC,GAA0BA,EAAS1kC,QAAU,EAC7C,MAAO,CACHqM,IAAK,EACL1C,KAAM,EACNI,MAAOuO,EAAa4nB,WACpB3zB,OAAQ+L,EAAa6nB,YACrBzzB,MAAO4L,EAAa4nB,WACpB1sB,OAAQ8E,EAAa6nB,aAI7B,IAAIl0B,EAAI,EACJ+yB,EAAI,EAER,GAAe,OAAXhhC,GAAqBA,EAAOuU,sBAAuB,CACnD,IAAIisB,EAAaxgC,EAAOuU,wBACxBtG,GAAKuyB,EAAW70B,KAAO60B,EAAWz0B,OAAS,EAC3Ci1B,GAAKR,EAAWnyB,IAAMmyB,EAAWjyB,QAAU,CAC/C,MAEoB,OAAXvO,IAELiO,EAAIjO,EAAO2L,MAAQ3L,EAAOiO,EAE1B+yB,EAAIhhC,EAAOqO,KAAOrO,EAAOghC,GAI7B,IAFA,IAAI3D,EAAS,CAAEhvB,IAAK,EAAG1C,KAAM,EAAGI,MAAO,EAAGwC,OAAQ,EAAGG,MAAO,EAAG8G,OAAQ,GAE9D1T,EAAK,EAAG8kC,EAAaF,EAAU5kC,EAAK8kC,EAAW5kC,OAAQF,IAAM,CAClE,IAAI+kC,EAAUD,EAAW9kC,GACrBmM,GAAK44B,EAAQl7B,MAAQsC,GAAK44B,EAAQ96B,OAASkC,GAAK+yB,GAAK6F,EAAQx4B,KAAO2yB,GAAK6F,EAAQt4B,QAAUyyB,IAC3F3D,EAAS,CACLhvB,IAAKw4B,EAAQx4B,IACb1C,KAAMk7B,EAAQl7B,KACdI,MAAO86B,EAAQ96B,MACfwC,OAAQs4B,EAAQt4B,OAChBG,MAAOm4B,EAAQn4B,MACf8G,OAAQqxB,EAAQrxB,QAG5B,CACA,OAAO6nB,CACX,CAEWyJ,CAA2B9mC,EAAQsa,EAC9C,CE3qBgCysB,CAA0B1sB,EAAU5Q,QAAS6Q,GAC7DmsB,EAAgB,CACZp4B,IAAKo4B,EAAcp4B,IAAMo1B,EACzB93B,KAAM86B,EAAc96B,KAAO83B,EAC3B13B,MAAO06B,EAAc16B,MAAQ03B,EAC7Bl1B,OAAQk4B,EAAcl4B,OAASk1B,EAC/B/0B,MAAO+3B,EAAc/3B,MAAyB,EAAjB+0B,EAC7BjuB,OAAQixB,EAAcjxB,OAA0B,EAAjBiuB,IAGvC+C,EAAa/8B,QAAUg9B,EACvBH,GAAuBC,GAAuB,EAClD,CACA,OAAOC,EAAa/8B,OACxB,GAAG,CAAC4zB,EAAQoG,EAAgBzjC,EAAQqa,EAAWC,EAAcgsB,IACzDpC,GAAQ,EAAAvtB,EAAA,KAIZ,OAHA,EAAAqC,EAAA,GAAWsB,EAAc,SAAU4pB,EAAM8C,UAAS,WAC9CT,GAAuB,EAC3B,GAAG,IAAK,CAAEU,SAAS,KACZpD,CACX,CAsPoBqD,CAAUtlC,EAAOyY,EAAWC,GACxCwpB,EAAYH,GAAa/hC,EAAOuY,EAAaypB,EAAgBvpB,EAAWwpB,GACxEgB,GApPR,SAAsBnkC,EAAImjC,EAAWC,GACjC,IAAIz7B,EACA+7B,EAAmB1jC,EAAG0jC,iBAAkBD,EAAczjC,EAAGyjC,YAAa1gB,EAAkB/iB,EAAG+iB,gBAAiB+b,EAAuB9+B,EAAG8+B,qBAAsBzK,EAASr0B,EAAGq0B,OACxKzsB,EAAK,aAAkBu8B,EAAYv8B,EAAG,GAAI6+B,EAAe7+B,EAAG,GAC5DC,EAAgG,QAA1FF,EAAKy7B,aAA6C,EAASA,EAAU/B,uBAAoC,IAAP15B,EAAgBA,EAAK,CAAC,EAAGgG,EAAM9F,EAAG8F,IAAKE,EAAShG,EAAGgG,OAsB/J,OArBA,aAAgB,WACZ,IAAI7N,EAEA0mC,EADA/+B,EAA4B,QAAtB3H,EAAKmjC,WAAgC,IAAPnjC,EAAgBA,EAAK,CAAC,EAAG2mC,EAAYh/B,EAAGgG,IAAKi5B,EAAej/B,EAAGkG,OAEpF,iBAARF,GAAoBi5B,EAC3BF,EAAmBE,EAAej5B,EAEX,iBAAXE,GAA4C,iBAAd84B,GAA0BC,IACpEF,EAAmBE,EAAeD,EAAY94B,GAI9C44B,GAFE/C,IAAqBrP,GACtBqP,GAAoBgD,GAAoBhD,EAAmBgD,EAC/CA,EAERhD,QAIQ/+B,EAErB,GAAG,CAACkJ,EAAQ61B,EAAkBD,EAAa1gB,EAAiB+b,EAAsBqE,EAAW9O,EAAQ+O,EAAWz1B,IACzGw2B,CACX,CAyNoB0C,CAAa3lC,EAAOiiC,EAAWC,GAC3Cte,GAhIR,SAA4B9kB,EAAIojC,EAAW3pB,EAAaE,EAAWC,GAC/D,IAAIya,EAASr0B,EAAGq0B,OAAQ3E,EAAY1vB,EAAG0vB,UAEvCmT,EAAyB7iC,EAAG6iC,uBAE5BC,EAAyB9iC,EAAG8iC,uBAE5BF,EAA4B5iC,EAAG4iC,0BAA2BkE,EAAuB9mC,EAAG8mC,qBAAsBC,EAA6B/mC,EAAG+mC,2BAA4BC,EAAwBhnC,EAAGgnC,sBAC7LC,EAAqB,UAAa,GAClCzD,GAAQ,EAAAvtB,EAAA,KACRixB,GAAoB,EAAAvwB,EAAA,GAAS,CAC7B,WACIswB,EAAmBl+B,SAAU,CACjC,EACA,WACIk+B,EAAmBl+B,SAAU,CACjC,IAEAo+B,IAAoB/D,EAyFxB,OAxFA,aAAgB,WACZ,IAAIgE,EAAkB,SAAU7gC,GACxB4gC,IAAoBtE,GACpBwE,EAAuB9gC,EAE/B,EACI+gC,EAAkB,SAAU/gC,GACvBu8B,GAA4BkE,GAAyBA,EAAsBzgC,IAC5EmpB,SAAsDA,EAAUnpB,EAExE,EACIghC,EAAqB,SAAUhhC,GAC1Bq8B,GACDyE,EAAuB9gC,EAE/B,EACI8gC,EAAyB,SAAU9gC,GACnC,IAAIihC,EAAajhC,EAAGkhC,aAAelhC,EAAGkhC,eAAiB,GACnDnoC,EAASkoC,EAAWlmC,OAAS,EAAIkmC,EAAW,GAAKjhC,EAAGjH,OACpDooC,EAA8BjuB,EAAY1Q,WAAY,EAAA3K,EAAA,GAAgBqb,EAAY1Q,QAASzJ,GAE/F,GAAIooC,GAA+BT,EAAmBl+B,QAClDk+B,EAAmBl+B,SAAU,OAGjC,IAAM4Q,EAAU5Q,SAAW2+B,GACtBnhC,EAAGjH,SAAWsa,GACX8tB,KACE/tB,EAAU5Q,SACR,oBAAqB4Q,EAAU5Q,SAC/B+9B,GACCxnC,IAAWqa,EAAU5Q,WAAY,EAAA3K,EAAA,GAAgBub,EAAU5Q,QAASzJ,IAAY,CACzF,GAAI0nC,GAAyBA,EAAsBzgC,GAC/C,OAEJmpB,SAAsDA,EAAUnpB,EACpE,CACJ,EACIohC,EAA4B,SAAUphC,GAEjCwgC,MAGCC,GAA0BA,EAAsBzgC,MAChDygC,GAA0BpE,KAC1BhpB,aAAmD,EAASA,EAAa9a,SAAS8oC,aAC/D,OAArBrhC,EAAGshC,eACHnY,SAAsDA,EAAUnpB,GAExE,EAKIuhC,EAAqB,IAAIC,SAAQ,SAAUC,GAC3CxE,EAAMnqB,YAAW,WACb,IAAKgb,GAAUza,EAAc,CACzB,IAAIquB,EAAgB,EAChB,EAAArvB,EAAAA,IAAGgB,EAAc,SAAUwtB,GAAiB,IAC5C,EAAAxuB,EAAAA,IAAGgB,EAAc,SAAU0tB,GAAiB,IAC5C,EAAA1uB,EAAAA,IAAGgB,EAAa9a,SAASopC,gBAAiB,QAASX,GAAoB,IACvE,EAAA3uB,EAAAA,IAAGgB,EAAa9a,SAASopC,gBAAiB,QAASX,GAAoB,IACvE,EAAA3uB,EAAAA,IAAGgB,EAAc,OAAQ+tB,GAA2B,IAExDK,GAAQ,WACJC,EAAc/4B,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,GACjE,GACJ,CACJ,GAAG,EACP,IACA,OAAO,WACH2xB,EAAmBK,MAAK,SAAUhyB,GAAW,OAAOA,GAAW,GACnE,CACJ,GAAG,CACCke,EACAmP,EACA/pB,EACAE,EACAC,EACA8V,EACAqX,EACAD,EACAlE,EACAE,EACAD,EACAsE,EACAH,IAEGE,CACX,CAoBakB,CAAmBlnC,EAAOkiC,EAAW3pB,EAAaE,EAAWC,GAAeyuB,GAAmBvjB,GAAG,GAAIwjB,GAAiBxjB,GAAG,GAG/HyjB,IAAoBnF,aAA6C,EAASA,EAAU/B,gBAAgB1zB,OAASy1B,aAA6C,EAASA,EAAU/B,gBAAgBxzB,QAC7L26B,IAAe,SAAS,QAAS,CAAC,EAAGpF,aAA6C,EAASA,EAAU/B,iBAAkB,CAAE8C,UAAWA,KAYxI,GAXIoE,KACAC,GAAa36B,YAASlJ,GApJ9B,SAAsB3E,EAAIojC,EAAWF,GACjC,IAAI7O,EAASr0B,EAAGq0B,OAAQoU,EAAkBzoC,EAAGyoC,gBACzCjF,GAAQ,EAAAvtB,EAAA,KACRyyB,IAAiBtF,EACrB,aAAgB,WACZ,IAAK/O,GAAUoU,GAAmBC,GAAgBxF,EAAgB,CAC9D,IAAIyF,EAAYnF,EAAMK,uBAAsB,WAAc,OAAO,QAAgBX,EAAiB,GAAGA,GACrG,OAAO,WAAc,OAAOM,EAAMoB,qBAAqB+D,EAAY,CACvE,CACJ,GAAG,CAACtU,EAAQqU,EAAclF,EAAON,EAAgBuF,GACrD,CA4IIG,CAAa1nC,EAAOkiC,EAAWF,GAC/B,aAAgB,WACP7O,GACDiR,SAAgEA,GAGxE,GAAG,CAACjR,KAECza,EACD,OAAO,KAEX,IAAIivB,GAAkBzD,EAClB0D,GAAc7H,KAAmB3hC,EACjC+D,GAAakc,GAActe,EAAQ,CACnCH,MAAOI,EAAMJ,MACb0C,UAAWA,EACXqlC,gBAAiBA,GACjB5D,aAAcA,EACd7B,UAAWA,EACXpC,UAAWA,EACX7a,gBAAiBA,EACjB+e,gBAAiBA,EACjBC,gBAAiBA,EACjBtR,WAAYA,IAEZkV,IAAgB,SAAS,QAAS,CAAE5E,UAAWT,GAAsC,QAAUzlB,GAAS4qB,IAAmB,CAAEG,UAAW,WACxIC,GAAkB/nC,EAAMmzB,OAAS,CAAE+P,WAAY,eAAaz/B,EAEhE,OAAQ,gBAAoB,MAAO,CAAEuM,IAAKy0B,EAASniC,UAAWH,GAAW+sB,UAAWnS,MAAOgrB,IACvF,gBAAoB,OAAO,QAAS,CAAC,GAAG,QAAe/nC,EAAO,KAAewhC,IAAuB,CAAEl/B,WAAW,EAAAsN,EAAA,GAAIzN,GAAWgM,KAAM+zB,GAAaA,EAAUpI,YAAckH,EAAWkB,EAAUpI,aAAc/c,MAAOmlB,GAAY,QAAS,CAAC,EAAGoF,IAAgBjG,GAG1P1vB,UAAW,EAAG3B,IAAKu0B,IACnBqD,IAAe,gBAAoB,MAAO,CAAEtlC,UAAWH,GAAW6lC,KAAMjrB,MAAOkrB,GAAgB/F,KAC/F0F,IAAe,gBAAoB,MAAO,CAAEtlC,UAAWH,GAAW+lC,cAClE,gBAAoBC,EAAA,GAGlB,QAAS,CAGPzmB,KAAM1hB,EAAM0hB,KAAM,uBAAwB1hB,EAAM,wBAAyBuP,gBAAiBA,EAAiBiQ,UAAWA,EAAWhQ,eAAgBA,EAAgBlN,UAAWH,GAAWimC,YAAa5Z,UAAWxuB,EAAMwuB,UAAWsB,YAAaqX,GAAkBtX,UAAWuX,GAAgBiB,eAAgBroC,EAAMqoC,eAAgBlE,SAAUA,EAAU/yB,mBAAoBA,EAAoB2L,MAAO8qB,IAAiBxD,GAAajjC,IACjb,KAAI,SAAUknC,EAAeC,GACzB,QAAKA,EAAUC,yBAA0BF,EAAcnV,SAAUoV,EAAUpV,UAIpE,QAAemV,EAAeC,EACzC,IAMA,SAASN,GAAgB/F,GACrB,IAAIpjC,EAAI2H,EACJgiC,GAAoB,SAAS,QAAS,CAAC,EAA2F,QAAvF3pC,EAAKojC,aAA6C,EAASA,EAAUvB,oBAAiC,IAAP7hC,OAAgB,EAASA,EAAGqhC,iBAAkB,CAAE1a,SAAkG,QAAvFhf,EAAKy7B,aAA6C,EAASA,EAAUvB,oBAAiC,IAAPl6B,OAAgB,EAASA,EAAGq6B,UAAY,YAASr9B,IAKzV,OAJKglC,EAAkBh8B,KAAQg8B,EAAkB97B,QAAW87B,EAAkB1+B,MAAS0+B,EAAkBt+B,QACrGs+B,EAAkB1+B,KAtXiB,EAuXnC0+B,EAAkBh8B,IAvXQ,GAyXvBg8B,CACX,CAiBA,SAAShF,GAAiBb,EAAsB8F,GAC5C,IAAK,IAAItoB,KAAOsoB,EACZ,GAAIA,EAAoBvlC,eAAeid,GAAM,CACzC,IAAIuoB,EAAkB/F,EAAqBxiB,GACvCwoB,EAAkBF,EAAoBtoB,GAC1C,QAAwB3c,IAApBklC,QAAqDllC,IAApBmlC,EAMjC,OAAO,EALP,GAAID,EAAgBx1B,QAAQ,KAAOy1B,EAAgBz1B,QAAQ,GACvD,OAAO,CAMnB,CAEJ,OAAO,CACX,CC3aA,SAAS01B,GAAa/I,GAClB,MAAO,CACHlsB,OAAQksB,EACRhzB,MAAOgzB,EAEf,CDuaA6D,GAAmBxkC,YAnaE,qBCHrB,IAAIikB,GAAmB,CACnB8L,UAAW,uBACX/gB,KAAM,aACN65B,KAAM,kBACNE,YAAa,yBACbE,YAAa,mBCTNU,IAAiB,EAAAnlB,EAAA,GAAOggB,IDWZ,SAAU3jC,GAC7B,IAAIlB,EACAc,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWqlC,EAAkB3nC,EAAM2nC,gBAAiB5D,EAAe/jC,EAAM+jC,aAAcjE,EAAY9/B,EAAM8/B,UAAW7a,EAAkBjlB,EAAMilB,gBAAiB+e,EAAkBhkC,EAAMgkC,gBAAiBC,EAAkBjkC,EAAMikC,gBAAiBtR,EAAa3yB,EAAM2yB,WACzSxwB,GAAa,QAAoBihB,GAAkBxjB,GACnD8e,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAC3D,MAAO,CACHrF,UAAW,CACP/sB,EAAW+sB,UACX,CACItJ,SAAU,aAGlBzX,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIK,SAAU,WACVH,QAAS,OACTsjB,OAAQpW,EAAa,KAASqW,WAAQvlC,EACtCuxB,UAAW,aACXF,aAAcP,EAAQQ,eACtBkU,UAAW1U,EAAQ2U,YACnBp5B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBqqC,YAAa,EACbC,YAAa,QACbxiB,YAAa,cAEjB9nB,KAER,UACAwD,IACEyhC,GAAgB,CAAEj3B,MAAOi3B,KACzBC,GAAmB,CAAE5L,SAAU4L,KAC/BC,GAAmB,CAAEzM,SAAUyM,IAErC+D,KAAM,CACF7lC,EAAW6lC,KACX,CACIpiB,SAAU,WACVX,gBAAiBvG,EAAe2qB,eAChCJ,UAAW,UACXtiB,OAAQ,UACRqO,UAAW,aACXsU,UAAW,iBAEfT,GAAa/I,GACb7a,GAAmB,CACfA,gBAAiBA,IAGzBijB,YAAa,CACT/lC,EAAW+lC,YACX,CACItiB,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACNkb,gBAAiBvG,EAAe2qB,eAChCvU,aAAcP,EAAQQ,iBAG9BqT,YAAa,CACTjmC,EAAWimC,YACX,CACInjB,gBAAiBvG,EAAe2qB,eAChCE,UAAW,SACXzB,UAAW,OACXliB,SAAU,WACV9Y,MAAO,OACPgoB,aAAcP,EAAQQ,gBAE1B4S,GAAmB,CACfG,UAAW,UAEf7iB,GAAmB,CACfA,gBAAiBA,IAIjC,QC5FkExhB,EAAW,CACzE0iB,MAAO,mB,YCAAqjB,GAAU,cAAiB,SAAU1qC,EAAI+kC,GAChD,IAAI4F,EAAa3qC,EAAG2qC,WAAY9W,EAAa7zB,EAAG6zB,WAAYzF,GAAO,QAAOpuB,EAAI,CAAC,aAAc,eACzF4jB,EAAU,gBAAoBomB,IAAgB,QAAS,CAAC,EAAG5b,EAAM,CAAEyF,WAAYA,EAAY3iB,IAAK6zB,KACpG,OAAOlR,EAAajQ,EAAU,gBAAoBsmB,GAAA,GAAO,QAAS,CAAC,EAAGS,GAAa/mB,EACvF,IACA8mB,GAAQrqC,YAAc,S,mFCNlBkf,GAAgB,E,SAAA,KACTqrB,EAAY,cAAiB,SAAU1pC,EAAOgQ,GACrD,IAAIlR,EAAKkB,EAAM+oB,QAASA,OAAiB,IAAPjqB,GAAwBA,EAAIwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOG,EAASC,EAAMD,OAAQ0G,EAAKzG,EAAM2pC,aAAcA,OAAsB,IAAPljC,GAAuBA,EAClMtE,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAO0C,UAAWA,EAAWymB,QAASA,IAClF6gB,EAAgBD,EAAexc,EAAA,GAAWxN,EAAA,EAC9C,OAAQ,gBAAoB,MAAO,CAAErd,UAAWH,EAAWgM,KAAM6B,IAAKA,GAClE,gBAAoB45B,EAAe,CAAEzoB,SAAU,aAAc7e,UAAWH,EAAW0nC,SACnF,gBAAoBD,EAAe,CAAEzoB,SAAU,wBAAyB7e,UAAWH,EAAW2nC,QACtG,IACAJ,EAAUvqC,YAAc,Y,eCTb4qC,GAAQ,EAAApmB,EAAA,GAAO+lB,EAAW,SAAWjmC,EAAW,CACvD0iB,MAAO,UACR,E,gFCFQ6jB,EAAwB,CAC/B77B,KAAM,WACN07B,OAAQ,kBACRC,MAAO,iBAEPG,UAAW,sBAEJ1jB,EAAY,SAAUvmB,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAEhBuS,EAAKn2B,EAAM4T,OAAQA,OAAgB,IAAPuiB,EAAgBn2B,EAAMkqC,gBAAkB,OAAS/T,EAAIpN,EAAU/oB,EAAM+oB,QAASzmB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MACrJikB,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9EqmB,GAAQ,QAAOvqC,GACfuC,GAAa,QAAoB6nC,EAAuBpqC,GACxDwqC,EAAoB,CACpB9kB,SAAU1R,EACVgS,SAAU,WACV7b,KAAM,EACN0C,IAAK,EACLK,MAAO8G,EACPA,OAAQA,EACRygB,UAAW,SAEX5O,QAAS,cACTC,WAAY,SACZgC,eAAgB,SAChB4R,cAAe,UAEnB,MAAO,CACHnrB,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACN,CAEIF,WAAY,IACZvY,MAAO8G,EACPA,OAAQA,EACR0lB,cAAe,MACf1T,SAAU,WACVqP,WAAY,OACZnlB,WAAYhR,EAAK,CACT,UAAW,CACP4jB,QAAS,KACTkD,SAAU,WACVnZ,IAAK,MACLtC,MAAO,MACPwC,OAAQ,MACR5C,KAAM,MACN+qB,aAAc,MACdwM,QAAS,EACT+I,WAAY3rB,EAAe4rB,iBAGnCxrC,EAAG,IAAIoY,OAAO/U,EAAW8nC,UAAW,eAAe/yB,OAAO/U,EAAW8nC,UAAW,+BAAiC,CAC7G3I,QAAS,GAEbxiC,IAERiqB,GAAW,CACP,aACA,CACIjZ,UAAW,CACP,UAAW,CACPu6B,WAAYxmB,EAAQiD,aACpBwa,QAAS,EACTxxB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB4jC,WAAY,UAEhB5jC,OAKpBnE,GAEJunC,OAAQ,CACJ1nC,EAAW0nC,OACXO,EACA,CACI3rB,MAAOoF,EAAQO,iBACftU,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,cAEX/X,IAERqiB,GAAW,CACPtK,MAAOoF,EAAQiS,QAGvBgU,MAAO,CACH3nC,EAAW2nC,MACXM,EACA,CACI9I,QAAS,EACT7iB,MAAOoF,EAAQO,iBACfkB,SAAU,KAAcC,OACxBxb,KAAMogC,EAAQ,SAAW,OACzB19B,IAAK,OACLqD,WAAYnJ,EAAK,CACT,SAAU,CACN26B,QAAS,IAGjB36B,EAAG,OAAwB,QAAS,CAAC,GAAG,WACxCA,IAERoiB,GAAW,CACPuY,QAAS,EACT7iB,MAAOoF,EAAQiS,MACf/Q,WAAY,IACZjV,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+C,OAAQ,OACRlI,MAAO,cAEXmF,KAGZqmB,UAAW9nC,EAAW8nC,UAE9B,C,yICxHI5rB,GAAgB,EAAAC,EAAA,KACTisB,EAAe,cAAiB,SAAUvqC,EAAO6jC,GACxD,IAAIr7B,EAAWxI,EAAMwI,SAAUgiC,EAAWxqC,EAAMwqC,SAAUC,EAAazqC,EAAMyqC,WAAY/pC,EAAOV,EAAMU,KAAM8e,EAAYxf,EAAMwf,UAAWhQ,EAAiBxP,EAAMwP,eAAgBD,EAAkBvP,EAAMuP,gBAAiBm7B,EAAoB1qC,EAAM0qC,kBAAmBC,EAAc3qC,EAAM2qC,YAAa3f,EAAQhrB,EAAMgrB,MAAO4f,EAAqB5qC,EAAM4qC,mBAAoB7qC,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWxD,EAAKkB,EAAM6qC,QAASA,OAAiB,IAAP/rC,EAAgB,QAAUA,EACxemZ,GAAK,EAAA5B,EAAA,GAAM,YAAarW,EAAMiY,IAC9BwsB,EAAU,SAAa,MACvBqG,GAAiB,EAAAt0B,EAAA,GAAciuB,EAASZ,GACxCkH,EAAW,SAAa,MACxBtkC,GAAK,EAAAkP,EAAA,GAAqB3V,EAAM+oB,QAAS/oB,EAAMgrC,eAAgBhrC,EAAM8V,UAAWm1B,EAAYxkC,EAAG,GAAIykC,EAAezkC,EAAG,GACrHC,GAAK,EAAAiP,EAAA,GAAqB3V,EAAMmrC,cAAenrC,EAAMorC,sBAAuBC,EAAkB3kC,EAAG,GAAI4kC,EAAqB5kC,EAAG,IACjI,EAAA6kC,EAAA,IAAc9G,GAEd,IAAItiC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXkG,SAAUA,EACV2iC,cAAeE,EACftiB,QAASkiB,EACTO,SAAsB,UAAZX,EACVY,2BAA4BzrC,EAAM0rC,gBAElC51B,EAAW,eAAkB,SAAUxQ,GACnC+lC,GAIAH,IAAeD,EAAW3lC,GAC1BgmC,GAAmB,IAGnBJ,GAAcD,EAAW3lC,EAEjC,GAAG,CAAC4lC,EAAcI,EAAoBD,EAAiBJ,IACnDU,EAAuB,eAAkB,SAAUC,GACnD,OAAKA,GAGEA,EAAc3hB,MAAS,gBAAoB,OAAQ,CAAE3nB,UAAWH,EAAWgc,KAAM6M,MAAO4gB,EAAc5gB,OAAS4gB,EAAc3hB,OAFzH,IAGf,GAAG,CAAC9nB,EAAWgc,OACX0tB,EAAyB,eAAkB,SAAUV,GACrD,GAAKJ,EAASljC,QAAd,CAGA,IAAIwM,IAAU82B,EACdJ,EAASljC,QAAQsjC,cAAgB92B,EACjCi3B,EAAmBj3B,EAHnB,CAIJ,GAAG,CAACi3B,KA6BR,SAAyBtrC,EAAOirC,EAAWI,EAAiBS,EAAkBC,GAC1E,sBAA0B/rC,EAAM8hB,cAAc,WAAc,MAAO,CAC3DiH,cACA,QAASkiB,CACb,EACIE,oBACA,QAASE,CACb,EACIF,kBAAcA,GACdW,EAAiBX,EACrB,EACApjC,MAAO,WACCgkC,EAAYlkC,SACZkkC,EAAYlkC,QAAQE,OAE5B,EACA,GAAG,CAACgkC,EAAad,EAAWI,EAAiBS,GACrD,CA7CIE,CAAgBhsC,EAAOirC,EAAWI,EAAiBQ,EAAwBd,GAC3E,aAAgB,WAAc,OAAOc,EAAuBR,EAAkB,GAAG,CAACQ,EAAwBR,IAC1G,IAAIK,EAAgB1rC,EAAM0rC,eAAiBC,EACvCM,EAAcZ,EACZ,aACA5nC,EACFyoC,GAAmB,SAAS,QAAS,CAAE5pC,UAAWH,EAAWgqC,MAAOhrC,KAAM,YAAcspC,GAAa,CAAE1hB,UAAWkiB,EAAWziC,SAAUA,EAAUgiC,SAAUA,EAAU9pC,KAAMA,EAAMuX,GAAIA,EAAI+S,MAAOA,EAAOlV,SAAUA,EAAU,gBAAiBtN,EAAU,aAAcgX,EAAW,kBAAmBhQ,EAAgB,mBAAoBD,EAAiB,gBAAiBm7B,EAAmB,eAAgBC,EAAa,eAAgBsB,IAC5a,OAAQ,gBAAoB,MAAO,CAAE3pC,UAAWH,EAAWgM,KAAM6c,MAAOA,EAAOhb,IAAK86B,GAChF,gBAAoB,SAAS,QAAS,CAAC,EAAGoB,EAAkB,CAAEl8B,IAAK+6B,EAAU/f,MAAOA,EAAO,2BAA2B,KACtH,gBAAoB,QAAS,CAAE1oB,UAAWH,EAAW8nB,MAAOmiB,QAASn0B,GACjE,gBAAoB,MAAO,CAAE3V,UAAWH,EAAWkqC,SAAU,mBAAmB,GAC5E,gBAAoB1sB,EAAA,GAAM,QAAS,CAAEwB,SAAU,aAAeypB,EAAoB,CAAEtoC,UAAWH,EAAWmqC,cAC9GZ,EAAc1rC,EAAO2rC,IACjC,IACApB,EAAaprC,YAAc,e,0BC9DvBikB,EAAmB,CACnBjV,KAAM,cACN8b,MAAO,oBACPoiB,SAAU,uBACVC,UAAW,wBACXnuB,KAAM,oBAENouB,EAAyB,OACzBC,EAAkC,QAClCC,EAAgC,8BCTzBC,GAAW,EAAA/oB,EAAA,GAAO4mB,GDUN,SAAUvqC,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAAIC,EAAIsV,EAAIC,EAAIC,EAAIC,EACpExqC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO4rC,EAAWxrC,EAAMwrC,SAAUziB,EAAU/oB,EAAM+oB,QAASvgB,EAAWxI,EAAMwI,SAAUijC,EAA2BzrC,EAAMyrC,yBAA0BN,EAAgBnrC,EAAMmrC,cAClNzsB,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAAS1Q,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MACvG3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDmtC,EAAqBruB,EAAesuB,uBAEpCC,EAA4BppB,EAAQO,iBAEpC8oB,EAAsBrpB,EAAQW,eAC9B2oB,EAAmCzuB,EAAe0uB,uBAClDC,EAA6B3uB,EAAe0uB,uBAC5CE,EAA8B5uB,EAAeiZ,oBAC7C4V,EAA6B7uB,EAAe8uB,mBAC5CC,EAA0C/uB,EAAegvB,8BACzDC,EAA4BjvB,EAAe0uB,uBAG3CQ,EAAmClvB,EAAegvB,8BAClDG,EAAoCnvB,EAAegvB,8BACnDI,EAA2BpvB,EAAeqvB,iBAC1CC,EAAoCtvB,EAAeiZ,oBACnDsW,EAAoBvvB,EAAeC,SACnCuvB,EAA4BxvB,EAAegW,aAC3CyZ,EAAyB,EACxBrvC,EAAK,CACE4jB,QAAS,KACToS,aAAcP,EAAQQ,eACtBnP,SAAU,WACV9Y,MAAO,GACP8G,OAAQ,GACRnH,IAAK,EACL1C,KAAM,EACNirB,UAAW,aACXmU,YAAa,EACbC,YAAa,QACbxiB,YAAape,EAAW8kC,EAA8BH,EACtDiB,mBAAoB,qCACpBC,mBAAoB7B,EACpB8B,yBAA0B7B,GAE9B3tC,EAAG,MAAwB,CACvB8nB,YAAa,cAEjB9nB,IAER,MAAO,CACHqP,KAAM,CACFhM,EAAWgM,KACX,CACIyX,SAAU,WACVH,QAAS,QAEb+lB,GAAY,WACZziB,GAAW,cACVvgB,GAAY,aACbA,GAAY,eACXA,GAAY,EACRugB,IAAYtiB,EAAK,CAAC,EACfA,EAAG,WAAWyQ,OAAO/U,EAAWkqC,YAAc3lC,EAAK,CAC3CkgB,YAAa2mB,GAEjB7mC,EAAG,MAAwB,CACvBkgB,YAAa,aAEjBlgB,GACJD,EAAG,WAAWyQ,OAAO/U,EAAWkqC,WAAa,CAAEzlB,YAAa2mB,GAC5D9mC,EAAG,WAAWyQ,OAAO/U,EAAWmqC,aAAe3lC,EAAK,CAC5C8X,MAAOwuB,EACP3L,QAAS,KAEb36B,EAAG,MAAwB,CACvB8X,MAAO,aAEX9X,GACJF,GACJsiB,IACKoiB,IAAkBvnB,EAAK,CAAC,EACzBA,EAAG,WAAW1M,OAAO/U,EAAWkqC,WAAa,CACzChC,WAAYuD,EACZhnB,YAAainB,GAEjBjqB,EAAG,WAAW1M,OAAO/U,EAAWkqC,WAAa,CACzChC,WAAYuD,EACZhnB,YAAainB,GAEjBjqB,EAAG,OAAyBuS,EAAK,CAAC,EAC9BA,EAAG,WAAWjf,OAAO/U,EAAWkqC,WAAa,CACzChC,WAAY,YACZzjB,YAAa,aAEjBuP,EAAG,WAAWjf,OAAO/U,EAAWkqC,WAAa,CACzChC,WAAY,aAEhBlU,EAAG,iBAAiBjf,OAAO/U,EAAWkqC,WAAa,CAC/ChC,WAAY,aAEhBlU,EAAG,iBAAiBjf,OAAO/U,EAAWmqC,YAAc,CAChD7tB,MAAO,UAEX0X,EAAG,WAAWjf,OAAO/U,EAAWmqC,YAAc,CAC1C7tB,MAAO,UAEX0X,GACJvS,GACJunB,IAAkB/U,EAAK,CAAC,EACpBA,EAAG,WAAWlf,OAAO/U,EAAWkqC,SAAU,cAAcn1B,OAAO/U,EAAWkqC,SAAU,YAAchW,EAAK,CAC/FzP,YAAa6mB,GAEjBpX,EAAG,MAAwB,CACvBzP,YAAa,cAEjByP,GACJD,EAAG,WAAWlf,OAAO/U,EAAWkqC,WAAa,CACzCzlB,YAAa6mB,GAEjBrX,EAAG,WAAWlf,OAAO/U,EAAWmqC,YAAc,CAC1ChL,QAAS,KAEblL,IACHE,EAAK,CAAC,EACHA,EAAG,WAAWpf,OAAO/U,EAAWgc,KAAM,cAAcjH,OAAO/U,EAAWgc,QAAU8Y,EAAK,CAC7ExY,MAAOqvB,GAEX7W,EAAG,MAAwB,CACvBxY,MAAOjW,EAAW,WAAa,cAEnCyuB,GACJX,IAERh0B,GAEJ6pC,OAAQjV,EAAK,CACLtR,SAAU,WACVykB,WAAY,OACZ/I,QAAS,GAEbpK,EAAG,IAAIhgB,OAAO,KAAyB,8BAAgCigB,EAAK,CACpEpnB,QAAS,aAAenQ,EAAMikB,QAAQO,iBACtCmqB,cAAe,OAEnBpX,EAAG,MAAwB,CACvBpnB,QAAS,wBAEbonB,GACJD,GACJjN,MAAO,CACH9nB,EAAW8nB,MACXrqB,EAAMkkB,MAAMyB,OACZ,CACIE,QAAS,OACTC,WAAY+lB,EAA2B,SAAW,aAClDrvB,OAAQ5T,EAAW,UAAY,UAC/Bod,SAAU,WACVqP,WAAY,QAEhBuW,GAAY,CACRlT,cAAe,cACf5Q,eAAgB,YAEpB,CACI,YAAa,CACT9B,SAAU,WACV7b,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,EACR+V,QAAS,KACTsW,cAAe,UAI3BqT,SAAU,CACNlqC,EAAWkqC,UACVjV,EAAK,CACExR,SAAU,WACVH,QAAS,OACT6O,WAAY,EACZ5O,WAAY,SACZgC,eAAgB,SAChB9T,OAAQ24B,EACRz/B,MAAOy/B,EACP5lB,OAAQ,aAAazP,OAAOg2B,GAC5BpY,aAAcP,EAAQQ,eACtBC,UAAW,aACXoZ,mBAAoB,mCACpBC,mBAAoB7B,EACpB8B,yBAA0B7B,EAE1BjrB,SAAU,SACV,SAAU2pB,EAAgBgD,EAAyB,MAEvD/W,EAAG,OAAwB,QAAS,CAAExQ,YAAa,eAAgB,WACnEwQ,GACJ+T,GAAiB,CACbvkB,YAAaumB,GAEhB3B,EAQK,CACEjS,WAAY,GAJZ,CACIE,YAAa,IAKxBjxB,IACI2iC,GACDpiB,IAAYsO,EAAK,CACbgT,WAAYsD,EACZ/mB,YAAaymB,GAEjBhW,EAAG,MAAwB,CACvBgT,WAAY,YACZzjB,YAAa,aAEjByQ,GACJ7uB,IAAamkC,EAAK,CACV/lB,YAAa0mB,GAEjBX,EAAG,MAAwB,CACvB/lB,YAAa,YAEjB+lB,GACJ5jB,GACIvgB,IAAaokC,EAAK,CACdvC,WAAY2D,EACZpnB,YAAa0mB,GAEjBV,EAAG,MAAwB,CACvBvC,WAAY,UAEhBuC,IAERN,UAAW,CACPnqC,EAAWmqC,WACVO,EAAK,CACEvL,QAASvY,IAAYoiB,EAAgB,IAAM,IAC3C1sB,MAAOsuB,GAEXF,EAAG,OAAwB,QAAS,CAAEpuB,MAAOjW,EAAW,WAAa,WAAY,WACjFqkC,IAER1uB,KAAM,CACFhc,EAAWgc,MACV2uB,EAAK,CACEruB,MAAOjW,EAAW0lC,EAA4BD,EAC9C3oB,SAAUxB,EAAMyB,OAAOD,SACvBD,WAAY,QAEhBynB,EAAG,OAAwB,QAAS,CAAEruB,MAAOjW,EAAW,WAAa,eAAgB,WACrFskC,GACHtB,EAIK,CACE/R,YAAa,GAJf,CACEF,WAAY,IAOhC,QCjRsD91B,EAAW,CAAE0iB,MAAO,Y,gMCEtE9H,GAAgB,EAAAC,EAAA,KAEhBmjB,EAAgB,CAEhB+M,UAAW,CAAE1hC,MAAO,GAAI8G,OAAQ,KAEzB66B,EAAwB,SAAU7K,GAGzC,IAAI5jC,GAAQ,EAAA8jC,EAAA,IAAqB,SAAS,QAAS,CAAC,EAAGrC,GAAgB,CAAErhB,IAAKwjB,EAAqB8K,UAAY9K,GAC3GpkB,EAAYxf,EAAMwf,UAAWmvB,EAAU3uC,EAAM2uC,QAASnE,EAAWxqC,EAAMwqC,SAAU5qC,EAAQI,EAAMJ,MAAOwhB,EAAYphB,EAAMohB,UAAWwtB,EAAW5uC,EAAM4uC,SAAUJ,EAAYxuC,EAAMwuC,UAAWhmC,EAAWxI,EAAMwI,SAAUugB,EAAU/oB,EAAM+oB,QAAS9Q,EAAKjY,EAAMiY,GAAIlY,EAASC,EAAMD,OAAQW,EAAOV,EAAMU,KAAMwsB,GAAO,QAAOltB,EAAO,CAAC,YAAa,UAAW,WAAY,QAAS,YAAa,WAAY,YAAa,WAAY,UAAW,KAAM,SAAU,SACxbmC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPivC,UAAWztB,EACX0tB,WAAYF,EACZ7lB,QAASA,EACTvgB,SAAUA,EACVumC,eAAgBH,IAAaJ,EAAU1hC,MAhBxB,IAgBoD0hC,EAAU56B,OAhB9D,IAiBf46B,UAAWA,EACXG,QAASA,IAET7vC,GAAK,QAAeouB,EAAM,MAAkB5qB,EAAYxD,EAAGwD,UAAWwa,GAAc,QAAOhe,EAAI,CAAC,cAChGkwC,EAAuB,WACvB,OAAQ,gBAAoB,OAAQ,CAAE/2B,GAAIjY,EAAMivC,QAAS3sC,UAAW,uBAAyBtC,EAAMme,KACvG,EACI+wB,EAAuB,WACvB,IAAIpwC,EAAKkB,EAAMmvC,SAAUA,OAAkB,IAAPrwC,EAAgB,GAAKA,EAAIswC,EAAmBpvC,EAAMovC,iBAIlFnlB,GAHgBjqB,EAAM0rC,eACpB,EAAA3qB,EAAA,GAAsB/gB,EAAM0rC,cAAesD,GAC3CA,IACoB,SAAS,QAAS,CAAC,EAAGhvC,GAAQ,CAAEogB,IAAKpgB,EAAM0uC,WACrE,OAAQ,gBAAoB,QAAS,CAAEtC,QAASn0B,EAAI3V,UAAWH,EAAWktC,OACtET,GAAa,gBAAoB,MAAO,CAAEtsC,UAAWH,EAAWmtC,YAC5D,gBAAoB,MAAO,CAAEhtC,UAAWH,EAAWotC,cAC/C,gBAAoBnkB,EAAA,GAAO,QAAS,CAAEokB,IAAKZ,EAAU9jB,IAAKqkB,GAAYX,KAC1E,gBAAoB,MAAO,CAAElsC,UAAWH,EAAWstC,sBAC/C,gBAAoBrkB,EAAA,GAAO,QAAS,CAAEokB,IAAKJ,EAAkBtkB,IAAKqkB,GAAYX,MACtFptB,GAAc,gBAAoB,MAAO,CAAE9e,UAAWH,EAAWmtC,YAC7D,gBAAoB,MAAO,CAAEhtC,UAAWH,EAAWutC,aAC/C,gBAAoB/vB,EAAA,GAAM,QAAS,CAAC,EAAGyB,MAC/CwtB,GAAYxtB,EAAY,gBAAoB,MAAO,CAAE9e,UAAWH,EAAWwtC,cAAgB1lB,GAASA,EAC5G,EACIxjB,EAAKzG,EAAM4vC,cAAeA,OAAuB,IAAPnpC,EAAgByoC,EAAuBzoC,EAarF,OAAQ,gBAAoB,MAAO,CAAEnE,UAAWH,EAAWgM,MACvD,gBAAoB,MAAO,CAAE7L,UAAWH,EAAW0tC,oBAC/C,gBAAoB,SAAS,QAAS,CAAE,aAAcrwB,EAAWvH,GAAIA,EAAI3V,WAAW,EAAAsN,EAAA,GAAIzN,EAAWgqC,MAAO7pC,GAAYnB,KAAM,QAAST,KAAMA,EAAM8H,SAAUA,EAAUugB,QAASA,EAASyhB,SAAUA,GAAY1tB,EAAa,CAAEhH,SAdrN,SAAUg6B,GACrB,IAAIhxC,EACsB,QAAzBA,EAAKkB,EAAM8V,gBAA6B,IAAPhX,GAAyBA,EAAGsF,KAAKpE,EAAO8vC,GAAK,SAAS,QAAS,CAAC,EAAG9vC,GAAQ,CAAEogB,IAAKpgB,EAAM0uC,UAC9H,EAWwPnnC,QAN1O,SAAUuoC,GACpB,IAAIhxC,EACqB,QAAxBA,EAAKkB,EAAMuH,eAA4B,IAAPzI,GAAyBA,EAAGsF,KAAKpE,EAAO8vC,GAAK,SAAS,QAAS,CAAC,EAAG9vC,GAAQ,CAAEogB,IAAKpgB,EAAM0uC,UAC7H,EAG0QqB,OAV7P,SAAUD,GACnB,IAAIhxC,EACoB,QAAvBA,EAAKkB,EAAM+vC,cAA2B,IAAPjxC,GAAyBA,EAAGsF,KAAKpE,EAAO8vC,EAC5E,KAQQF,GAAc,SAAS,QAAS,CAAC,EAAG5vC,GAAQ,CAAEogB,IAAKpgB,EAAM0uC,UAAYQ,IACjF,EACAT,EAAsBtvC,YAAc,oB,eC9DhCikB,EAAmB,CACnBjV,KAAM,iBACN0hC,mBAAoB,yBACpB1D,MAAO,uBACPkD,MAAO,uBACPC,WAAY,4BACZC,aAAc,8BACdG,YAAa,6BACbC,aAAc,8BACd5mB,QAAS,cAMTinB,EAAgC,QAChCC,EAA8B,8BAGlC,SAASC,EAAyBC,EAAkBC,GAChD,IAAItxC,EAAI2H,EACR,MAAO,CACH,aACA,CACIqJ,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,KAAyB,OAAS,CAC5C0O,SAAU,WACV7V,QAAS,cACTD,UAAW,CACP,qBAAsB,CAClB6W,OAAQ,GAEZ,SAAU,CACNjE,QAAS,KACTjW,KAAM,EACNtC,OAAQ,EACRwC,QAAS,EACT5C,MAAO,EACPivB,cAAe,OACfrS,OAAQ,aAAazP,OAAOi5B,GAC5BvqB,SAAU,WACV9V,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,aACbuiB,YAAaiH,EAAiB,EAAI,GAEtC3pC,MAIhB3H,IAGhB,CACA,SAASuxC,EAAqBC,EAAwBhuC,EAAWymB,GAC7D,MAAO,CACHzmB,EACA,CACIiuC,cAAe,EACfnC,mBAAoB,UACpBC,mBAAoB2B,EACpB1B,yBAA0B,OAC1Bx+B,UAAW,CACP,YAAa,CACT2V,QAAS,eACT2jB,YAAa,WAIxBrgB,GAAWunB,EAAyBA,IAA2B,CAC5D,YACA,CACI1qB,SAAU,WACV7b,KAAM,EACN0C,IAAK,EACLK,MAAO,OACP8G,OAAQ,OACR4N,SAAU,SACV8f,QAAS,IAIzB,CACO,ICnFIkP,GAAoB,EAAA7sB,EAAA,GAAO8qB,GDmFf,SAAUzuC,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBhkB,EAAQI,EAAMJ,MAAOivC,EAAU7uC,EAAM6uC,QAASC,EAAW9uC,EAAM8uC,SAAU/lB,EAAU/oB,EAAM+oB,QAASvgB,EAAWxI,EAAMwI,SAAUumC,EAAe/uC,EAAM+uC,aAAcJ,EAAU3uC,EAAM2uC,QAASH,EAAYxuC,EAAMwuC,UAC3M3qB,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GAGnD6wC,EAAoB5sB,EAAQW,eAC5BksB,EAA2BhyB,EAAe8uB,mBAC1CmD,EAA2BjyB,EAAe0uB,uBAE1CwD,EAAkC/sB,EAAQ6T,UAC1CmZ,EAA4BnyB,EAAeiZ,oBAC3CmZ,EAAwBpyB,EAAe4rB,eACvCyG,EAA2BltB,EAAQO,iBACnC4sB,EAAkBtyB,EAAe0uB,uBAEjC6D,EAAyBptB,EAAQ6T,UACjCwZ,EAAmBxyB,EAAeiZ,oBAElCwZ,EAAuBttB,EAAQqC,YAC/BiqB,EAAmBzxB,EAAe0yB,YAClCC,EAA+C3yB,EAAe8uB,mBAE9D8D,EAAsC5yB,EAAe0uB,uBACrDmE,EAA6C1tB,EAAQ6T,UACrD8Z,EAAmC3tB,EAAQ4T,eAC3Cga,EAA8B,CAC9B3hC,UAAW,CACP,uBAAwB,CACpB2O,MAAO0yB,GAEX,UAAW,CACPvqB,YAAamC,EAAU6nB,EAAkCF,GAE7D,SAAU,EACL7B,IACIC,IACA/lB,GAAW,CACZrG,QAAS,KACT0rB,mBAAoB,mBACpBrkC,KAAM,EACN0C,IAAK,EACLK,MAAO,GACP8G,OAAQ,GACRqR,gBAAiB8rB,GAErBhoB,GAAW,CACPnC,YAAaqqB,EACb5G,WAAY4G,MAKxBS,EAA8C,CAC9C9qB,YAAamC,EAAUwoB,EAA6CF,EACpEvhC,UAAW,CACP,UAAW,CACPwxB,QAAS,EACT1a,YAAamC,EAAU6nB,EAAkCF,KAIjEiB,EAAuB,CACvB,CACIjvB,QAAS,KACT+C,QAAS,eACTR,gBAAiB6rB,EACjB3H,YAAa,EACbC,YAAa,QACbxiB,YAAa6pB,EACb3jC,MA5IU,GA6IV8G,OA7IU,GA8IVmR,WAAY,SACZa,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACNirB,UAAW,aACXoZ,mBAAoB,eACpBC,mBAAoB2B,EACpB1B,yBAA0B2B,EAC1Bnb,aAAc,OAElBtsB,GAAY,CACRoe,YAAaiqB,EACb/gC,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE8nB,YAAa,WAAYyjB,WAAY,WAAY,WACvFvrC,IAERiqB,GAAW,CACPnC,YAAape,EAAWqoC,EAA4BF,EACpD7gC,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,YACbyjB,WAAY,SACZvkB,kBAAmB,QAEvBrf,KAEPooC,GAAWC,IAAa,CACrBriC,IAtKa,EAuKbtC,MAvKa,EAwKbJ,KAAM,OACNu3B,QAASvY,EAAU,EAAI,IAG3B6oB,EAAoB,CACpB,CACIlvB,QAAS,KACT5V,MAAO,EACP8G,OAAQ,EACRkhB,aAAc,MACdlP,SAAU,WACV7b,KAAM8nC,GACN1nC,MAAO,EACPikC,mBAAoB,eACpBC,mBAAoB2B,EACpB1B,yBAA0B2B,EAC1Bjb,UAAW,cAEfjM,GAAW,CACPogB,YAAa,EACbC,YAAa,QACbxiB,YAAape,EAAW0oC,EAAmBF,EAC3C3G,WAAY2G,EACZjnC,KAAM,EACN0C,IAAK,EACLK,MAAO,GACP8G,OAAQ,GACR9D,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBkgB,YAAa,YACbd,kBAAmB,QAEvBpf,IAERqiB,IACK8lB,GAAWC,IAAa,CACzBriC,IAAKqlC,EACL3nC,MAAO2nC,EACP/nC,KAAM,SAGd,MAAO,CACHoE,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIE,QAAS,OACTC,WAAY,SACZsP,UAAW,aACXvW,MAAOC,EAAeC,SACtB0Z,UAAW,GACX1R,OAAQ,OACRf,SAAU,WACV4T,UAAW,EACX1pB,UAAW,CACP,uBAAwB,CACpB2V,QAAS,mBAIpBopB,IACIC,GAAY,CACbh/B,UAAW,CACP,uBAAwB,CACpBiiC,YAAa,UAIzBjD,GAAY,wBACZD,GAAW,wBACVA,GAAWC,IAAa,CACrBrpB,QAAS,cACTH,SAAU,EACVE,OAAQ,cACRusB,YAAa,EACb9sB,gBAAiBusB,EACjB59B,OAAQ,SAGhBi8B,mBAAoB,CAChB1tC,EAAW0tC,mBACXlB,GAAWuB,EAAyBC,EAAkBtB,GAAWC,IAGrE3C,MAAO,CACHhqC,EAAWgqC,MACX,CACIvmB,SAAU,WACV0b,QAAS,EACT70B,IAAK,EACLtC,MAAO,EACP2C,MAAO,OACP8G,OAAQ,OACR4R,OAAQ,GAEZhd,GAAY,eAEhB6mC,MAAO,CACHltC,EAAWktC,MACXtmB,GAAW5mB,EAAW4mB,QACtB,CACItD,QAAS,eACTrJ,OAAQ,UACRod,UAAW,EACX5T,SAAU,WACV0T,cAAe,MACfrE,WAAY,OACZoD,UAAW,GACXvoB,UAAW,CACP,UAAWtH,GAAYipC,EACvB,UAAWjpC,GAAYipC,EAEvB,UAAWE,EAEX,SAAUC,IAGlB/C,GAAW,uBACXC,GAAY,+BACXD,GAAWC,IAAa,CACrB9Z,UAAW,cACX5Y,OAAQ,UACR41B,WAAY,GACZxsB,OAAQ,EACR6O,UAAW,SACX+Z,mBAAoB,MACpBC,mBAAoB2B,EACpB1B,yBAA0B,OAC1B3nB,OAAQ,wBACRe,eAAgB,SAChBhC,WAAY,SACZD,QAAS,OACT6S,cAAe,UAEnBvP,GAAW,CACPnC,YAAa0qB,IAEhBzC,GAAWC,KACPtmC,GAAY,CACbsH,UAAW,CACP,SAAU4hC,EACV,SAAUA,IAGlBlpC,GAAY,CACR4T,OAAQ,UACRtM,UAAW,CACP,uBAAwB,CACpB2O,MAAOC,EAAeuzB,iBACtBniC,WAAYnJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE8X,MAAO,aAAc,WAC3D9X,MAIhBoiB,GACIvgB,GAAY,CACZoe,YAAa4qB,IAGrBlC,WAAY,CACRntC,EAAWmtC,WACXR,GAAY,CAERl7B,OAAQ46B,EAAU56B,OAClB9G,MAAO0hC,EAAU1hC,QAEpB+hC,GAAWC,IAAa,CACrBlpB,SAAU,WACVH,QAAS,eACTssB,YAAa,GACbG,aAAc,KAEjBrD,GAAWC,IACRC,GAAgB,CAChBgD,YAAa,GACbG,aAAc,KAEjBrD,GAAWC,IACRtmC,GAAY,CACZ84B,QAAS,IACTxxB,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnF,MAAO,WACP6iB,QAAS,GAEb1d,KAGZ2rB,aAAcc,GAAqB,EAAOluC,EAAWotC,aAAcxmB,GACnE0mB,qBAAsBY,GAAqB,EAAMluC,EAAWotC,aAAcxmB,GAC1E2mB,YAAa,CACTvtC,EAAWutC,YACX,CACIpqB,SA9WD,GA+WCD,WA/WD,GAgXCzR,OAhXD,KAmXP+7B,aAAc,CACVxtC,EAAWwtC,aACX7rB,EAAMyB,QACLspB,GAAWC,IAAa,CACrBrpB,QAAS,QACTG,SAAU,WACVJ,OAAQ,kBACR5R,OA3XSu+B,GA4XT9sB,WA7Xa,GA+Xb+S,SAA4B,EAAlBoW,EAAU1hC,MACpB0U,SAAU,SACV8B,WAAY,aAI5B,QChZwE7f,EAAW,CAAE0iB,MAAO,sB,iCCGxF,GAAgB,EAAA7H,EAAA,KAChB8zB,EAAc,SAAUC,EAAQp6B,GAChC,MAAO,GAAGf,OAAOe,EAAI,KAAKf,OAAOm7B,EAAOjyB,IAC5C,EACIkyB,EAAa,SAAUzzC,EAASuhB,GAChC,YAAe3c,IAAR2c,OAAoB3c,GAAY,QAAK5E,GAAS,SAAUwV,GAAS,OAAOA,EAAM+L,MAAQA,CAAK,GACtG,EACImyB,EAAsB,SAAU1zC,EAAS2zC,EAAYv6B,EAAIw6B,GACzD,IAAIC,EAAgBJ,EAAWzzC,EAAS2zC,IAAe3zC,EAAQ0iC,QAAO,SAAU8Q,GAAU,OAAQA,EAAO7pC,QAAU,IAAG,GAClHuG,EAAiB2jC,GAAiB90C,SAAS+0C,eAAeP,EAAYM,EAAez6B,IACrFlJ,IACAA,EAAehH,SACf,EAAAsoB,EAAA,KAAmB,EAAMthB,EAAgB0jC,GAEjD,EAeWG,EAAkB,cAAiB,SAAU5yC,EAAO6jC,GAC3D,IAAIvhC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOG,EAASC,EAAMD,OAAQjB,EAAKkB,EAAMnB,QAASA,OAAiB,IAAPC,EAAgB,GAAKA,EAAImrB,EAAQjqB,EAAMiqB,MAAOugB,EAAWxqC,EAAMwqC,SAAUhiC,EAAWxI,EAAMwI,SAAU9H,EAAOV,EAAMU,KAAMmyC,EAAqB7yC,EAAM6yC,mBAAoB/wB,EAAe9hB,EAAM8hB,aAAchM,EAAW9V,EAAM8V,SACjUmC,GAAK,EAAA5B,EAAA,GAAM,eACX44B,GAAU,EAAA54B,EAAA,GAAM,oBAChB5G,GAAW,QAAezP,EAAO,KAAe,CAChD,WACA,YACA,aAEAmC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXwwC,0BAA2Bj0C,EAAQk0C,MAAK,SAAUV,GAAU,SAAUA,EAAOjxB,YAAaixB,EAAOzD,SAAW,MAE5Gp/B,EAAiBxP,EAAMwP,iBAAmBya,EAAQglB,EAAUjvC,EAAM,oBAClEyG,GAAK,EAAAkP,EAAA,GAAqB3V,EAAMgzC,YAAaH,GAAqBL,EAAa/rC,EAAG,GAAIwsC,EAAgBxsC,EAAG,GACzGC,EAAK,aAAkBwsC,EAAaxsC,EAAG,GAAIysC,EAAgBzsC,EAAG,GAC9D+9B,EAAU,SAAa,MACvBqG,GAAiB,EAAAt0B,EAAA,GAAciuB,EAASZ,GACxCuP,EAAe,aAAiB,OA9BlB,SAAUv0C,EAAS2zC,EAAYv6B,EAAI6J,EAAc2wB,GACnE,sBAA0B3wB,GAAc,WAAc,MAAO,CACrDuxB,oBACA,OAAOf,EAAWzzC,EAAS2zC,EAC/B,EACAzqC,MAAO,WACHwqC,EAAoB1zC,EAAS2zC,EAAYv6B,EAAIw6B,EACjD,EACA,GAAG,CAAC5zC,EAAS2zC,EAAYv6B,EAAIw6B,GACrC,CAuBIzG,CAAgBntC,EAAS2zC,EAAYv6B,EAAI6J,EAAcsxB,aAAmD,EAASA,EAAa9iB,sBAChI,EAAAib,EAAA,IAAc9G,GACd,IAAIl9B,EAAU,eAAkB,SAAUlC,EAAIgtC,GAC1C,IAAIvzC,EACAuzC,IACAc,EAAcd,EAAO3D,SACK,QAAzB5vC,EAAKuzC,EAAO9qC,eAA4B,IAAPzI,GAAyBA,EAAGsF,KAAKiuC,EAAQhtC,GAEnF,GAAG,IACC0qC,EAAS,eAAkB,SAAU1qC,EAAIgtC,GACzC,IAAIvzC,EACJq0C,OAAc1vC,GAC2D,QAAxE3E,EAAKuzC,aAAuC,EAASA,EAAOtC,cAA2B,IAAPjxC,GAAyBA,EAAGsF,KAAKiuC,EAAQhtC,EAC9H,GAAG,IACCiuC,EAAiB,eAAkB,SAAUxD,EAAKuC,GAClD,IAAIvzC,EACCuzC,IAGLY,EAAcZ,EAAO3D,SACM,QAA1B5vC,EAAKuzC,EAAOv8B,gBAA6B,IAAPhX,GAAyBA,EAAGsF,KAAKiuC,EAAQvC,GAC5Eh6B,SAAoDA,EAASg6B,EAAKwC,EAAWzzC,EAASwzC,EAAO3D,UACjG,GAAG,CAAC54B,EAAUjX,EAASo0C,IACnBM,EAAe,eAAkB,SAAUzD,IA1DtB,SAAUA,GACnC,OAAOA,EAAInJ,yBAAyB6M,aAAmE,SAApD1D,EAAInJ,cAAc8M,QAAQC,qBACjF,EA0DYC,CAAuB7D,IACvByC,EAAoB1zC,EAAS2zC,EAAYv6B,EAAIm7B,aAAmD,EAASA,EAAa9iB,oBAE9H,GAAG,CAACzxB,EAAS2zC,EAAYv6B,EAAIm7B,IAC7B,OAAQ,gBAAoB,OAAO,QAAS,CAAE9wC,UAAWH,EAAWgM,MAAQsB,EAAU,CAAEO,IAAK86B,IACzF,gBAAoB,OAAO,QAAS,CAAEppB,KAAM,cAAiBlS,GAAkB,CAAE,kBAAmBA,GAAmB,CAAEjI,QAASgsC,IAC9HtpB,GAAU,gBAAoB2pB,EAAA,EAAO,CAAEtxC,UAAWH,EAAW8nB,MAAOugB,SAAUA,EAAUvyB,GAAIg3B,EAASzmC,SAAUA,GAAYyhB,GAC3H,gBAAoB,MAAO,CAAE3nB,UAAWH,EAAWslB,eAAiB5oB,EAAQyB,KAAI,SAAU+xC,GACtF,OAAQ,gBAAoB7B,GAAmB,QAAS,CAAE9B,QAAS2D,EAAOjyB,KAAOiyB,EAAQ,CAAEjyB,IAAKiyB,EAAOjyB,IAAK2vB,OAAQA,EAAQxoC,QAASA,EAASuO,SAAUw9B,EAAgB3E,QAAS0D,EAAOjyB,MAAQ8yB,EAAYnqB,QAASspB,EAAOjyB,MAAQoyB,EAAYhqC,SAAU6pC,EAAO7pC,UAAYA,EAAUyP,GAAIm6B,EAAYC,EAAQp6B,GAAKg3B,QAASoD,EAAOpD,SAAW,GAAG/3B,OAAO+3B,EAAS,KAAK/3B,OAAOm7B,EAAOjyB,KAAM1f,KAAMA,GAAQuX,EAAIuyB,SAAUA,IAC3Z,MACZ,IACAoI,EAAgBzzC,YA1DK,cCjCrB,IAAI,EAAmB,CACnBgP,KAAM,sBACNsZ,cAAe,qCCARosB,GAAc,EAAAlwB,EAAA,GAAOivB,GDET,SAAU5yC,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWwwC,EAA4B9yC,EAAM8yC,0BAA2BlzC,EAAQI,EAAMJ,MACxGuC,GAAa,QAAoB,EAAkBvC,GACvD,MAAO,CACHuO,KAAM,CACF7L,EACAH,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIE,QAAS,UAGjBgC,cAAe,CACXtlB,EAAWslB,cACXqrB,GAA6B,CACzBrtB,QAAS,OACT6S,cAAe,MACfpD,SAAU,SAI1B,QCvB4DzxB,EAAW,CAAE0iB,MAAO,e,sNCGzE,SAAS2tB,EAAmBr1B,GAC/B,MAAO,IAAIvH,QCJS68B,EDIMt1B,EAAMs1B,ECJTxvC,EDIY,KCJTyvC,EDI+B,KCH9BC,GAAvBn1C,GAAK,EAAAo1C,EAAA,GAAQH,EAAGxvC,EAAGyvC,IAAWC,EAAGE,EAAIr1C,EAAGq1C,EAAGrwC,EAAIhF,EAAGgF,GAC/C,EAAAswC,EAAA,GAAQH,EAAGE,EAAGrwC,KAFlB,IAAiBiwC,EAAGxvC,EAAGyvC,EACtBl1C,EAAuBm1C,EAAUE,EAAUrwC,CDInD,C,eEEO,SAASuwC,EAAS51B,EAAOla,EAAGyvC,GAC/B,IAAIl1C,GAAK,EAAAo1C,EAAA,GAAQz1B,EAAMs1B,EAAGxvC,EAAGyvC,GAAIC,EAAIn1C,EAAGm1C,EAAGE,EAAIr1C,EAAGq1C,EAAGrwC,EAAIhF,EAAGgF,EACxDwwC,GAAM,EAAAF,EAAA,GAAQH,EAAGE,EAAGrwC,GACxB,OAAO,SAAS,QAAS,CAAC,EAAG2a,GAAQ,CAAEla,EAAGA,EAAGyvC,EAAGA,EAAGC,EAAGA,EAAGE,EAAGA,EAAGrwC,EAAGA,EAAGwwC,IAAKA,EAAKC,KAAK,EAAAC,EAAA,GAAiBP,EAAGE,EAAGrwC,EAAG2a,EAAMg2B,EAAGH,IAC3H,C,eCNIj2B,GAAgB,EAAAC,EAAA,KAIhBo2B,EAAoC,SAAUluC,GAE9C,SAASkuC,EAAmB10C,GACxB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAkFxC,OAjFAkC,EAAM+tC,aAAe,GACrB/tC,EAAMC,MAAQ,cACdD,EAAMguC,wBAAyB,EAC/BhuC,EAAMgnB,gBAAiB,EAAA1gB,EAAA,GAAM,8BAC7BtG,EAAMgC,WAAa,SAAUvD,GACzB,IAAIoZ,EAAQ7X,EAAMjH,MAAM8e,MACpBla,EAAIka,EAAMla,EAAGyvC,EAAIv1B,EAAMu1B,EACvBa,EAAYxvC,EAAGK,SAAW,GAAK,EAInC,OAAQL,EAAGqE,OACP,KAAKC,EAAA,EAASU,GACVzD,EAAMguC,wBAAyB,EAC/BZ,GAAKa,EACL,MAEJ,KAAKlrC,EAAA,EAASa,KACV5D,EAAMguC,wBAAyB,EAC/BZ,GAAKa,EACL,MAEJ,KAAKlrC,EAAA,EAASI,KACVnD,EAAMguC,wBAAyB,EAC/BrwC,GAAKswC,EACL,MAEJ,KAAKlrC,EAAA,EAASQ,MACVvD,EAAMguC,wBAAyB,EAC/BrwC,GAAKswC,EACL,MAEJ,QACI,OAERjuC,EAAMkuC,aAAazvC,EAAIgvC,EAAS51B,GAAO,EAAAs2B,EAAA,GAAMxwC,EAAG,OAAuB,EAAAwwC,EAAA,GAAMf,EAAG,OACpF,EACAptC,EAAM2B,aAAe,SAAUlD,GAC3BuB,EAAM+tC,aAAatyC,MAAK,EAAAqV,EAAAA,IAAG1R,OAAQ,YAAaY,EAAMouC,cAAc,IAAO,EAAAt9B,EAAAA,IAAG1R,OAAQ,UAAWY,EAAMquC,mBAAmB,IAC1HruC,EAAMouC,aAAa3vC,EACvB,EACAuB,EAAMouC,aAAe,SAAU3vC,GAC3B,GAAKuB,EAAMC,MAAMgB,QAAjB,CAUA,IAAIqtC,EAAWC,EAAa9vC,EAAIuB,EAAMjH,MAAM8e,MAAO7X,EAAMC,MAAMgB,SAC3DqtC,GACAtuC,EAAMkuC,aAAazvC,EAAI6vC,EAV3B,CAYJ,EACAtuC,EAAM4pB,cAAgB,SAAUnrB,GACvBuB,EAAMC,MAAMgB,SAIjBxC,EAAG+C,iBACP,EACAxB,EAAMwuC,aAAe,SAAU/vC,GAC3B,GAAKuB,EAAMC,MAAMgB,QAAjB,CAGA,IAAIqtC,EAAWC,EAAa9vC,EAAIuB,EAAMjH,MAAM8e,MAAO7X,EAAMC,MAAMgB,SAC3DqtC,GACAtuC,EAAMkuC,aAAazvC,EAAI6vC,GAE3B7vC,EAAGyG,iBACHzG,EAAG+C,iBANH,CAOJ,EACAxB,EAAMquC,kBAAoB,WACtBruC,EAAM+tC,aAAa3mC,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,IAClErO,EAAM+tC,aAAe,EACzB,GACA,EAAA3nC,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CAAE8e,MAAOze,EAAMye,OACtB7X,CACX,CAgEA,OArJA,QAAU8tC,EAAoBluC,GAsF9BzC,OAAOgN,eAAe2jC,EAAmBvwC,UAAW,QAAS,CACzD6M,IAAK,WACD,OAAOtM,KAAK/E,MAAM8e,KACtB,EACAxN,YAAY,EACZC,cAAc,IAElBwjC,EAAmBvwC,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAG/DD,IAActtB,KAAK1E,OAAS0E,KAAK1E,MAAMye,OACvC/Z,KAAK4V,SAAS,CAAEmE,MAAO/Z,KAAK1E,MAAMye,OAE1C,EACAi2B,EAAmBvwC,UAAU+J,kBAAoB,WACzCxJ,KAAKmC,MAAMgB,UAEXnD,KAAKmC,MAAMgB,QAAQyG,iBAAiB,aAAc5J,KAAK8rB,cAAe,CAAE6kB,SAAS,EAAMC,SAAS,IAChG5wC,KAAKmC,MAAMgB,QAAQyG,iBAAiB,YAAa5J,KAAK0wC,aAAc,CAAEC,SAAS,EAAMC,SAAS,IAEtG,EACAZ,EAAmBvwC,UAAU6K,qBAAuB,WAC5CtK,KAAKmC,MAAMgB,UACXnD,KAAKmC,MAAMgB,QAAQqH,oBAAoB,aAAcxK,KAAK8rB,eAC1D9rB,KAAKmC,MAAMgB,QAAQqH,oBAAoB,YAAaxK,KAAK0wC,eAE7D1wC,KAAKuwC,mBACT,EACAP,EAAmBvwC,UAAUxB,OAAS,WAClC,IAAI7D,EAAK4F,KAAK1E,MAAOu1C,EAAUz2C,EAAGy2C,QAAS31C,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAAQy1C,EAAkB12C,EAAG02C,gBAAiBh2B,EAAY1gB,EAAG0gB,UAAWsO,EAAkBhvB,EAAGgvB,gBAC5LrP,EAAQ/Z,KAAK/E,MAAM8e,MACnBtc,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXizC,QAASA,IAETE,EAAYD,EAAgBE,QAAQ,MAAOjoC,OAAOgR,EAAMla,IAAImxC,QAAQ,MAAOjoC,OAAOgR,EAAMu1B,IAC5F,OAAQ,gBAAoB,MAAO,CAAEhkC,IAAKtL,KAAKmC,MAAO8K,SAAU,EAAGrP,UAAWH,EAAWgM,KAAM4O,MAAO,CAAEkI,gBAAiB6uB,EAAmBr1B,IAAUqR,YAAaprB,KAAK6D,aAAcU,UAAWvE,KAAKkE,WAAY8Y,KAAM,SAAU,iBAAkB+zB,EAAW,gBAAiB/wC,KAAKkwC,uBAAyBn2B,EAAMla,EAAIka,EAAMu1B,EAAG,gBAAiB,EAAG,gBAAiB,KAAiB,aAAcx0B,EAAW,mBAAoB9a,KAAKkpB,eAAgB,qBAAqB,GAC1c,gBAAoB,MAAO,CAAEtrB,UAAWH,EAAWooB,YAAatS,GAAIvT,KAAKkpB,gBAAkBE,GAC3F,gBAAoB,MAAO,CAAExrB,UAAWH,EAAWwzC,QACnD,gBAAoB,MAAO,CAAErzC,UAAWH,EAAWyzC,OACnD,gBAAoB,MAAO,CAAEtzC,UAAWH,EAAW0zC,MAAO94B,MAAO,CAAEhT,KAAM0U,EAAMla,EAAI,IAAKkI,IAAK,KAAkBgS,EAAMu1B,EAAI,IAAK/uB,gBAAiBxG,EAAM81B,OAC7J,EACAG,EAAmBvwC,UAAU2wC,aAAe,SAAUzvC,EAAIoZ,GACtD,IAAI3I,EAAWpR,KAAK1E,MAAM8V,SACtBggC,EAAWpxC,KAAK/E,MAAM8e,MACtBA,EAAMla,IAAMuxC,EAASvxC,GAAKka,EAAMu1B,IAAM8B,EAAS9B,IAG/Cl+B,GACAA,EAASzQ,EAAIoZ,GAEZpZ,EAAGopB,mBACJ/pB,KAAK4V,SAAS,CAAEmE,MAAOA,IACvBpZ,EAAGyG,kBAEX,EACA4oC,EAAmBrnC,aAAe,CAC9BkoC,QAAS,IACT/1B,UAAW,4BACXg2B,gBAAiB,gCACjB1nB,gBAAiB,kGAEd4mB,CACX,CAvJuC,CAuJrC,aAMK,SAASS,EAAa9vC,EAAI0wC,EAAW5nC,GACxC,IAAI6nC,EAAW7nC,EAAKwE,wBAChBsjC,OAASxyC,EACTyyC,EAAa7wC,EACjB,GAAI6wC,EAAWC,QAAS,CACpB,IAAIC,EAAYF,EAAWC,QAAQD,EAAWC,QAAQ/1C,OAAS,QACrCqD,IAAtB2yC,EAAUnX,cAA+Cx7B,IAAtB2yC,EAAUlX,UAC7C+W,EAAS,CACLhX,QAASmX,EAAUnX,QACnBC,QAASkX,EAAUlX,SAG/B,CACA,IAAK+W,EAAQ,CACT,IAAII,EAAahxC,OACU5B,IAAvB4yC,EAAWpX,cAAgDx7B,IAAvB4yC,EAAWnX,UAC/C+W,EAAS,CACLhX,QAASoX,EAAWpX,QACpBC,QAASmX,EAAWnX,SAGhC,CACA,GAAI+W,EAAQ,CACR,IAAIK,GAAeL,EAAOhX,QAAU+W,EAASjsC,MAAQisC,EAASlpC,MAC1DypC,GAAeN,EAAO/W,QAAU8W,EAASvpC,KAAOupC,EAASpiC,OAC7D,OAAOygC,EAAS0B,GAAW,EAAAhB,EAAA,GAAMxoC,KAAKiqC,MAAMF,EAAc,MAAuB,OAAuB,EAAAvB,EAAA,GAAMxoC,KAAKiqC,MAAM,KAAkBD,EAAc,MAAkB,MAC/K,CACJ,C,0BCjMWE,GAAiB,EAAA9yB,EAAA,GAAO+wB,GCCZ,SAAU10C,GAC7B,IAAIlB,EAAI2H,EACJnE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO21C,EAAUv1C,EAAMu1C,QAClE1xB,EAAUjkB,EAAMikB,QAAS0Q,EAAU30B,EAAM20B,QAC7C,MAAO,CACHpmB,KAAM,CACF,2BACA,CACIyX,SAAU,WACV8T,aAAc,EACd/S,OAAQ,aAAazP,OAAO2M,EAAQ4T,gBACpC3C,aAAcP,EAAQQ,eACtByC,SAAU+d,EACVld,UAAWkd,EACXxlC,QAAS,OACTD,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAC,GAAG,WACxCA,EAAG,IAAIoY,OAAO,KAAyB,cAAgBzQ,EAAK,CACpDsJ,QAAS,aAAamH,OAAO2M,EAAQO,mBAEzC3d,EAAG,GAAGyQ,OAAO,OAAyB,CAClCnH,QAAS,wBAEbtJ,GACJ3H,IAERwD,GAEJqzC,MAAO,CACH,uBACA,CACI/vB,SAAU,WACV7b,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,EAGR09B,WAAY,sEAGpBuL,KAAM,CACF,sBACA,CACIhwB,SAAU,WACV7b,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,EACR09B,WAAY,yDAGpBwL,MAAO,CACH,uBACA,CACIjwB,SAAU,WACV9Y,MAAO,GACP8G,OAAQ,GACRy2B,WAAY,QACZ1jB,OAAQ,aAAazP,OAAO2M,EAAQuV,qBACpCtE,aAAc,MACdmU,UAAW1U,EAAQmiB,WACnBpN,UAAW,wBACXx5B,UAAW,CACP,UAAW,CACP8V,SAAU,WACV7b,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,EACRga,OAAQ,aAAazP,OAAO2M,EAAQiS,OACpChB,aAAc,MACdE,UAAW,aACXtS,QAAS,SAKzB6H,YAAa,KAErB,QDjFkE9mB,EAAW,CAAE0iB,MAAO,mB,UEElF,GAAgB,EAAA7H,EAAA,KAIhBq4B,EAAiC,SAAUnwC,GAE3C,SAASmwC,EAAgB32C,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA2FxC,OA1FAkC,EAAM+tC,aAAe,GACrB/tC,EAAMC,MAAQ,cACdD,EAAMgC,WAAa,SAAUvD,GACzB,IAAImQ,EAAe5O,EAAMyN,MACrBuiC,EAAWhwC,EAAMiwC,UACjBhC,EAAYxvC,EAAGK,SAAW,GAAK,EAInC,OAAQL,EAAGqE,OACP,KAAKC,EAAA,EAASI,KACVyL,GAAgBq/B,EAChB,MAEJ,KAAKlrC,EAAA,EAASQ,MACVqL,GAAgBq/B,EAChB,MAEJ,KAAKlrC,EAAA,EAAS4B,KACViK,EAAe,EACf,MAEJ,KAAK7L,EAAA,EAAS+B,IACV8J,EAAeohC,EACf,MAEJ,QACI,OAGRhwC,EAAM6T,aAAapV,GAAI,EAAA0vC,EAAA,GAAMv/B,EAAcohC,GAC/C,EACAhwC,EAAM2B,aAAe,SAAUlD,GAC3B,IAAIyxC,GAAM,EAAAC,EAAA,GAAUnwC,GAChBkwC,GACAlwC,EAAM+tC,aAAatyC,MAAK,EAAAqV,EAAAA,IAAGo/B,EAAK,YAAalwC,EAAMouC,cAAc,IAAO,EAAAt9B,EAAAA,IAAGo/B,EAAK,UAAWlwC,EAAMquC,mBAAmB,IAExHruC,EAAMouC,aAAa3vC,EACvB,EACAuB,EAAMouC,aAAe,SAAU3vC,GAC3B,GAAKuB,EAAMC,MAAMgB,QAAjB,CAGA,IAAI+uC,EAAWhwC,EAAMiwC,UACjBb,EAAWpvC,EAAMC,MAAMgB,QAAQ8K,wBAC/BqkC,GAAqB3xC,EAAG45B,QAAU+W,EAASjsC,MAAQisC,EAASlpC,MAC5DsJ,GAAW,EAAA2+B,EAAA,GAAMxoC,KAAKiqC,MAAMQ,EAAoBJ,GAAWA,GAC/DhwC,EAAM6T,aAAapV,EAAI+Q,EALvB,CAMJ,EACAxP,EAAM4pB,cAAgB,SAAUnrB,GACvBuB,EAAMC,MAAMgB,SAIjBxC,EAAG+C,iBACP,EACAxB,EAAMwuC,aAAe,SAAU/vC,GAC3B,GAAKuB,EAAMC,MAAMgB,QAAjB,CAGA,IAAIuuC,EAAY/wC,EAAG8wC,QAAQ9wC,EAAG8wC,QAAQ/1C,OAAS,GAC/C,QAA0BqD,IAAtB2yC,EAAUnX,QAAuB,CACjC,IAAI2X,EAAWhwC,EAAMiwC,UACjBb,EAAWpvC,EAAMC,MAAMgB,QAAQ8K,wBAC/BqkC,GAAqBZ,EAAUnX,QAAU+W,EAASjsC,MAAQisC,EAASlpC,MACnEsJ,GAAW,EAAA2+B,EAAA,GAAMxoC,KAAKiqC,MAAMQ,EAAoBJ,GAAWA,GAC/DhwC,EAAM6T,aAAapV,EAAI+Q,EAC3B,CACA/Q,EAAGyG,iBACHzG,EAAG+C,iBAVH,CAWJ,EACAxB,EAAMquC,kBAAoB,WACtBruC,EAAM+tC,aAAa3mC,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,IAClErO,EAAM+tC,aAAe,EACzB,GACA,EAAA3nC,EAAA,GAAuBpG,IACvB,EAAAsqB,EAAA,GAAiB,cAAelxB,EAAO,CACnCi3C,WAAY,qBACZC,aAAc,eACdC,QAAS,OACTP,SAAU,OACVQ,SAAU,SAGM,QAAhBxwC,EAAMywC,OAAqBr3C,EAAMs3C,cAAgBt3C,EAAMk3C,eACvD,EAAAl5B,EAAA,GAAK,wFAETpX,EAAMjH,MAAQ,CACV6V,aAAcxV,EAAMqU,OAAS,GAE1BzN,CACX,CAwFA,OAtLA,QAAU+vC,EAAiBnwC,GA+F3BzC,OAAOgN,eAAe4lC,EAAgBxyC,UAAW,QAAS,CACtD6M,IAAK,WACD,OAAOtM,KAAK/E,MAAM6V,YACtB,EACAvE,YAAY,EACZC,cAAc,IAElBylC,EAAgBxyC,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAG5DD,IAActtB,KAAK1E,YAA8ByD,IAArBiB,KAAK1E,MAAMqU,OACvC3P,KAAK4V,SAAS,CAAE9E,aAAc9Q,KAAK1E,MAAMqU,OAEjD,EACAsiC,EAAgBxyC,UAAU+J,kBAAoB,WACtCxJ,KAAKmC,MAAMgB,UAEXnD,KAAKmC,MAAMgB,QAAQyG,iBAAiB,aAAc5J,KAAK8rB,cAAe,CAAE6kB,SAAS,EAAMC,SAAS,IAChG5wC,KAAKmC,MAAMgB,QAAQyG,iBAAiB,YAAa5J,KAAK0wC,aAAc,CAAEC,SAAS,EAAMC,SAAS,IAEtG,EACAqB,EAAgBxyC,UAAU6K,qBAAuB,WACzCtK,KAAKmC,MAAMgB,UACXnD,KAAKmC,MAAMgB,QAAQqH,oBAAoB,aAAcxK,KAAK8rB,eAC1D9rB,KAAKmC,MAAMgB,QAAQqH,oBAAoB,YAAaxK,KAAK0wC,eAE7D1wC,KAAKuwC,mBACT,EACA0B,EAAgBxyC,UAAUxB,OAAS,WAC/B,IAAIxB,EAAOuD,KAAK2yC,MACZT,EAAWlyC,KAAKmyC,UAChB/3C,EAAK4F,KAAK1E,MAEdk3C,EAAep4C,EAAGo4C,aAAcI,EAAex4C,EAAGw4C,aAAc13C,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAAQ0G,EAAK3H,EAAG0gB,UAAWA,OAAmB,IAAP/Y,EAAgBtF,EAAOsF,EAClL+O,EAAe9Q,KAAK2P,MACpBlS,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXnB,KAAMA,IAEN61C,EAAqB,IAAMxhC,EAAgBohC,EAC/C,OAAQ,gBAAoB,MAAO,CAAE5mC,IAAKtL,KAAKmC,MAAOvE,UAAWH,EAAWgM,KAAMwD,SAAU,EAAG1I,UAAWvE,KAAKkE,WAAYknB,YAAaprB,KAAK6D,aAAcmZ,KAAM,SAAU,gBAAiBlM,EAAc,iBAAkB/H,OAAO+H,GAAe,gBAAiB,EAAG,gBAAiBohC,EAAU,aAAcp3B,EAAW,qBAAqB,MACxU83B,IAAgBJ,IAAkB,gBAAoB,MAAO,CAAE50C,UAAWH,EAAWo1C,cAEpFx6B,MAAOu6B,EACD,CACEjN,WAAqB,iBAATlpC,EACN,8BAA8B+V,OAAOogC,EAAc,kBACnD,2CAA2CpgC,OAAOogC,EAAc,MAExEJ,IACV,gBAAoB,MAAO,CAAE50C,UAAWH,EAAWq1C,YAAaz6B,MAAO,CAAEhT,KAAMitC,EAAoB,OAC3G,EACAjzC,OAAOgN,eAAe4lC,EAAgBxyC,UAAW,QAAS,CACtD6M,IAAK,WAED,IAAIlS,EAAK4F,KAAK1E,MAAOm3C,EAAUr4C,EAAGq4C,QAAS1wC,EAAK3H,EAAGqC,KACnD,YADuE,IAAPsF,EAAgB0wC,EAAU,QAAU,MAAQ1wC,CAEhH,EACAwK,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAe4lC,EAAgBxyC,UAAW,YAAa,CAC1D6M,IAAK,WACD,MAAsB,QAAftM,KAAK2yC,MAAkB,KAAgB,IAClD,EACApmC,YAAY,EACZC,cAAc,IAElBylC,EAAgBxyC,UAAUsW,aAAe,SAAUpV,EAAI+Q,GACnD,GAAIA,IAAa1R,KAAK2P,MAAtB,CAGA,IAAIyB,EAAWpR,KAAK1E,MAAM8V,SACtBA,GACAA,EAASzQ,EAAI+Q,GAEZ/Q,EAAGopB,mBACJ/pB,KAAK4V,SAAS,CACV9E,aAAcY,IAElB/Q,EAAGyG,iBATP,CAWJ,EACA6qC,EAAgBtpC,aAAe,CAC3BgH,MAAO,GAEJsiC,CACX,CAxLoC,CAwLlC,aC/LEc,EAAW,CACXpN,WAAY,mBAAmBnzB,OAAO,CAClC,UACA,QACA,WACA,cACA,cACA,WACA,cACA,WACA,cACA,cACA,WACA,YACFwgC,KAAK,KAAM,MAEbC,EAAa,CACbC,gBAAiB,+JChBVC,GAAc,EAAAl0B,EAAA,GAAOgzB,GDkBT,SAAU32C,GAC7B,IAAIlB,EAAI2H,EAEJ7G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWoE,EAAK1G,EAAMmB,KAAMA,OAAc,IAAPuF,EAAgB,MAAQA,EAAIC,EAAK3G,EAAMm3C,QAASW,OAA4B,IAAPnxC,EAAyB,QAATxF,EAAiBwF,EAChLkd,EAAUjkB,EAAMikB,QAAS0Q,EAAU30B,EAAM20B,QAC7C,MAAO,CACHpmB,KAAM,CACF,wBACA,CACIyX,SAAU,WACVhS,OAAQ,GACR8lB,aAAc,EACd/S,OAAQ,aAAazP,OAAO2M,EAAQkS,cACpCjB,aAAcP,EAAQQ,eACtBC,UAAW,aACXjlB,QAAS,OACT+V,kBAAmB,OACnBhW,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,KAAyB,cAAgBzQ,EAAK,CACpDsJ,QAAS,aAAamH,OAAO2M,EAAQO,mBAEzC3d,EAAG,GAAGyQ,OAAO,OAAyB,CAClCnH,QAAS,wBAEbtJ,GACJ3H,IAERg5C,EAAqBH,EAAaF,EAClCn1C,GAEJi1C,cAAe,CACX,+BACA,CACI70B,QAAS,GACTkD,SAAU,WACV7b,KAAM,EACNI,MAAO,EACPsC,IAAK,EACLE,OAAQ,IAGhB6qC,YAAa,CACT,uBACA,YACA,CACI5xB,SAAU,WACV9Y,MAAO,GACP8G,OAAQ,GACRy2B,WAAY,QACZ1jB,OAAQ,aAAazP,OAAO2M,EAAQuV,qBACpCtE,aAAc,MACdmU,UAAW1U,EAAQmiB,WACnBpN,UAAW,wBACX78B,IAAK,MACLqZ,kBAAmB,SAInC,QC5E4DriB,EAAW,CAAE0iB,MAAO,gB,sBCIzE,SAAS4xB,EAAQt5B,EAAOg2B,GAC3B,OAAO,SAAS,QAAS,CAAC,EAAGh2B,GAAQ,CAAEg2B,EAAGA,EAAGnwC,EAAG,KAAkBmwC,EAAGF,KAAK,EAAAC,EAAA,GAAiB/1B,EAAMw1B,EAAGx1B,EAAM01B,EAAG11B,EAAM3a,EAAG2wC,EAAGh2B,EAAM61B,MACnI,CCFO,SAAS0D,EAAQv5B,EAAOna,GAC3B,IAAImwC,EAAI,KAAkBnwC,EAC1B,OAAO,SAAS,QAAS,CAAC,EAAGma,GAAQ,CAAEna,EAAGA,EAAGmwC,EAAGA,EAAGF,KAAK,EAAAC,EAAA,GAAiB/1B,EAAMw1B,EAAGx1B,EAAM01B,EAAG11B,EAAM3a,EAAG2wC,EAAGh2B,EAAM61B,MACjH,CCSA,IAAI,GAAgB,EAAAh2B,EAAA,KAChB25B,EAAqB,CAAC,MAAO,IAAK,IAAK,IAAK,IAAK,KACjDC,EAAY,CACZ5D,IAAK,WACLL,EAAG,WACHE,EAAG,aACHrwC,EAAG,YACH2wC,EAAG,aACHnwC,EAAG,qBAKH6zC,EAAiC,SAAU3xC,GAE3C,SAAS2xC,EAAgBn4C,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMwxC,aAAe,SAAU/yC,EAAIoZ,GAC/B7X,EAAMkuC,aAAazvC,EAAIoZ,EAC3B,EACA7X,EAAMyxC,YAAc,SAAUhzC,EAAI0uC,GAC9BntC,EAAMkuC,aAAazvC,EC9BxB,SAAiBoZ,EAAOs1B,GAC3B,IAAIj1C,GAAK,EAAAo1C,EAAA,GAAQH,EAAGt1B,EAAMla,EAAGka,EAAMu1B,GAAIC,EAAIn1C,EAAGm1C,EAAGE,EAAIr1C,EAAGq1C,EAAGrwC,EAAIhF,EAAGgF,EAC9DwwC,GAAM,EAAAF,EAAA,GAAQH,EAAGE,EAAGrwC,GACxB,OAAO,SAAS,QAAS,CAAC,EAAG2a,GAAQ,CAAEs1B,EAAGA,EAAGE,EAAGA,EAAGE,EAAGA,EAAGrwC,EAAGA,EAAGwwC,IAAKA,EAAKC,KAAK,EAAAC,EAAA,GAAiBP,EAAGE,EAAGrwC,EAAG2a,EAAMg2B,EAAGH,IACrH,CD0BmCgE,CAAQ1xC,EAAMjH,MAAM8e,MAAOs1B,GACtD,EAEAntC,EAAM2xC,aAAe,SAAUlzC,EAAIgP,GAC/B,IAAImkC,EAAoC,iBAA1B5xC,EAAM5G,MAAMy4C,UAA+BT,EAAUD,EACnEnxC,EAAMkuC,aAAazvC,EAAImzC,EAAQ5xC,EAAMjH,MAAM8e,MAAOlS,KAAKiqC,MAAMniC,IACjE,EACAzN,EAAMyB,QAAU,SAAU/C,GACtB,IAAIxG,EACA2H,EAAKG,EAAMjH,MAAO8e,EAAQhY,EAAGgY,MAAOi6B,EAAejyC,EAAGiyC,aAC1D,GAAKA,EAAL,CAIA,IEhDepE,EFgDXjgC,EAAQqkC,EAAarkC,MAAO5R,EAAYi2C,EAAaj2C,UACrDk2C,EAAsB,QAAdl2C,EACR00C,EAAwB,MAAd10C,EACVm2C,EAA+B,MAAdn2C,EACjBo2C,EAAYF,EAAQ,KAAiB,KACzC,GAAItkC,EAAMjU,QAAUy4C,IAAcF,IAAUG,MAAMC,OAAO1kC,KAAU,CAE/D,IAAI6gC,OAAW,EAEXA,EADAyD,GACW,EAAAK,EAAA,GAAmB,OEzDvB1E,EFyDwCjgC,IExDnDigC,EAAIl0C,OAAS,KACd,SAEPk0C,EAAIl0C,QAAU,KACPk0C,EAAI2E,UAAU,EAAG,MAErB3E,EAAI2E,UAAU,EAAG,QFoDH9B,GAAWyB,GACFzB,EAAUY,EAAUC,GACfv5B,GAAO,EAAAs2B,EAAA,GAAMgE,OAAO1kC,GAAQ,QAGpC,EAAA6kC,EAAA,GGnExB,SAAoBz6B,GACvB,MAAO,CACHw1B,GAAG,EAAAc,EAAA,GAAMt2B,EAAMw1B,EAAG,MAClBE,GAAG,EAAAY,EAAA,GAAMt2B,EAAM01B,EAAG,MAClBrwC,GAAG,EAAAixC,EAAA,GAAMt2B,EAAM3a,EAAG,MAClB2wC,EAAsB,iBAAZh2B,EAAMg2B,GAAiB,EAAAM,EAAA,GAAMt2B,EAAMg2B,EAAG,MAAmBh2B,EAAMg2B,EAEjF,CH4DgD0E,EAAW,SAAS,QAAS,CAAC,EAAG16B,KAAS3f,EAAK,CAAC,GAAM2D,GAAas2C,OAAO1kC,GAAQvV,MAGlH8H,EAAMkuC,aAAaxvC,EAAO4vC,EAC9B,MAIItuC,EAAM0T,SAAS,CAAEo+B,kBAAcj1C,GA1BnC,CA4BJ,GACA,EAAAuJ,EAAA,GAAuBpG,GACvB,IAAIwyC,EAAUp5C,EAAMo5C,SACpB,EAAAloB,EAAA,GAAiB,cAAelxB,EAAO,CACnCq5C,SAAU,cACVC,SAAU,cACVC,WAAY,gBACZC,UAAW,eACXC,WAAY,gBACZC,kBAAmB,cAGnBN,EAAQO,MAER,EAAA37B,EAAA,GAAK,4GAETpX,EAAMjH,MAAQ,CACV8e,MAAOm7B,EAAmB55C,KAAU,EAAAg5C,EAAA,GAAmB,YAE3DpyC,EAAMizC,oBAAsB,CAAC,EAC7B,IAAK,IAAI35C,EAAK,EAAG45C,EAAuB7B,EAAoB/3C,EAAK45C,EAAqB15C,OAAQF,IAAM,CAChG,IAAIuC,EAAYq3C,EAAqB55C,GACrC0G,EAAMizC,oBAAoBp3C,GAAamE,EAAMmzC,cAAcz5B,KAAK1Z,EAAOnE,EAC3E,CACA,IAAIu3C,EAAiB7B,EAAgB9qC,aAAa+rC,QAclD,OAbAxyC,EAAMqzC,YAAc,CAEhBhG,EAAGj0C,EAAMs5C,UAAYF,EAAQc,KAAOF,EAAeE,IACnD/F,EAAGn0C,EAAMu5C,YAAcH,EAAQe,OAASH,EAAeG,MACvDr2C,EAAG9D,EAAMw5C,WAAaJ,EAAQgB,MAAQJ,EAAeI,KACrD3F,EAAGz0C,EAAMy5C,YAAcL,EAAQiB,OAASL,EAAeK,MACvD/F,IAAKt0C,EAAMq5C,UAAYD,EAAQ9E,KAAO0F,EAAe1F,IACrDhwC,EAAG80C,EAAQkB,cAAgBN,EAAeM,cAG9C1zC,EAAM2zC,UAAW,SAAS,SAAS,QAAS,CAAC,EAAGP,GAAiB,CAE7DQ,eAAgB5zC,EAAMqzC,YAAYxF,EAAGgG,sBAAuB7zC,EAAMqzC,YAAY31C,IAAM80C,GACjFxyC,CACX,CA0MA,OAhSA,QAAUuxC,EAAiB3xC,GAuF3BzC,OAAOgN,eAAeonC,EAAgBh0C,UAAW,QAAS,CACtD6M,IAAK,WACD,OAAOtM,KAAK/E,MAAM8e,KACtB,EACAxN,YAAY,EACZC,cAAc,IAElBinC,EAAgBh0C,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAEhE,GAAID,IAActtB,KAAK1E,MAAO,CAC1B,IAAIye,EAAQm7B,EAAmBl1C,KAAK1E,OAChCye,GACA/Z,KAAKowC,kBAAarxC,EAAWgb,EAErC,CACJ,EACA05B,EAAgBh0C,UAAUxB,OAAS,WAC/B,IAAIiE,EAAQlC,KACR1E,EAAQ0E,KAAK1E,MACbo5C,EAAU10C,KAAK61C,SACfG,EAAah2C,KAAKu1C,YAClBr6C,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWvC,EAASC,EAAMD,OAAQ04C,EAAYz4C,EAAMy4C,UAE/F35C,EAAKkB,EAAM05C,kBAEXA,OAA2B,IAAP56C,EAA8B,SAAd25C,EAAuB35C,EAAI67C,EAAe36C,EAAM26C,aAChFl8B,EAAQ/Z,KAAK/E,MAAM8e,MACnBm8B,EAAgC,iBAAdnC,EAClBoC,EAAkB,CAAC,MAAO,IAAK,IAAK,IAAKD,EAAkB,IAAM,KACjEE,EAAUF,EAAkBn8B,EAAMna,EAAIma,EAAMg2B,EAC5CsG,EAAUH,EAAkBF,EAAWp2C,EAAIo2C,EAAWjG,EACtDtyC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXm2C,UAAWA,IAEXuC,EAAyB,CAACN,EAAWzG,EAAGx1B,EAAMw1B,EAAGyG,EAAWvG,EAAG11B,EAAM01B,EAAGuG,EAAW52C,EAAG2a,EAAM3a,GAC3F41C,GAAwC,iBAAZoB,GAC7BE,EAAuB34C,KAAK04C,EAAS,GAAG7jC,OAAO4jC,EAAS,MAE5D,IAAIt7B,EAAY45B,EAAQ6B,oBAAoBvF,QAAQ,MAAOsF,EAAuBtD,KAAK,MACvF,OAAQ,gBAAoB,MAAO,CAAEp1C,UAAWH,EAAWgM,KAAMuT,KAAM,QAAS,aAAclC,GAC1F,gBAAoB,MAAO,CAAEld,UAAWH,EAAW+4C,OAC/C,gBAAoBzE,EAAgB,CAAEh4B,MAAOA,EAAO3I,SAAUpR,KAAK0zC,aAAc54B,UAAW45B,EAAQ+B,YAAartB,gBAAiBsrB,EAAQgC,kBAAmB5F,gBAAiB4D,EAAQiC,kBAAmB/4C,UAAWH,EAAWm5C,iBAC/N,gBAAoB,MAAO,CAAEh5C,UAAWH,EAAWslB,eAC/C,gBAAoB,MAAO,CAAEnlB,UAAWH,EAAWo5C,YAC/C,gBAAoB1D,EAAa,CAAEv1C,UAAW,SAAUnB,KAAM,MAE1Dqe,UAAW45B,EAAQO,KAAOP,EAAQoC,aAAcnnC,MAAOoK,EAAMs1B,EAAGj+B,SAAUpR,KAAK2zC,eAClFqB,GAAsB,gBAAoB7B,EAAa,CAAEv1C,UAAW,WAAYnB,KAAMs3C,EAAWj5B,UAAWo7B,EAAkBxB,EAAQqB,sBAAwBrB,EAAQoB,eAAgBlD,aAAc74B,EAAM61B,IAAKjgC,MAAOymC,EAAShlC,SAAUpR,KAAK6zC,gBACnPv4C,EAAMy7C,aAAgB,gBAAoB,MAAO,CAAEn5C,UAAWH,EAAWu5C,gBACrE,gBAAoB,MAAO,CAAEp5C,UAAWH,EAAWw5C,YAAc,cAAe5+B,MAAO,CAC/EkI,gBAAiBxG,EAAM81B,SAEvC,gBAAoB,QAAS,CAAEjyC,UAAWH,EAAWy5C,MAAOl6B,KAAM,QAASm6B,YAAa,IAAKC,YAAa,KACtG,gBAAoB,QAAS,KACzB,gBAAoB,KAAM,CAAEx5C,UAAWH,EAAW45C,aAC9C,gBAAoB,KAAM,CAAEz5C,UAAWH,EAAW65C,cAAgBtB,EAAWpG,KAC7E,gBAAoB,KAAM,KAAMoG,EAAWzG,GAC3C,gBAAoB,KAAM,KAAMyG,EAAWvG,GAC3C,gBAAoB,KAAM,KAAMuG,EAAW52C,IAC1C41C,GAAqB,gBAAoB,KAAM,CAAEp3C,UAAWH,EAAW85C,gBAAkBlB,KAClG,gBAAoB,QAAS,KACzB,gBAAoB,KAAM,KAAMF,EAAgBv6C,KAAI,SAAU47C,GAC1D,IAAc,MAATA,GAAyB,MAATA,IAAiBxC,EAClC,OAAO,KAEX,IAAIyC,EAAiBv1C,EAAMw1C,iBAAiBF,GAC5C,OAAQ,gBAAoB,KAAM,CAAE97B,IAAK87B,GACrC,gBAAoBz5B,EAAA,GAAa,QAAS,CAAEC,QAASy5B,EAAgBt6B,gBAAiB3I,EAAA,EAAgBM,aAAckI,KAAM,SAAWi5B,GACjI,gBAAoB0B,EAAA,EAAW,CAAE/5C,UAAWH,EAAWgqC,MAAOr2B,SAAUlP,EAAMizC,oBAAoBqC,GAAOnM,OAAQnpC,EAAMyB,QAASgM,MAAOzN,EAAMuW,iBAAiB++B,GAAOI,YAAY,EAAO98B,UAAWk7B,EAAWwB,GAAOh/B,aAAc,MAAOq/B,UAAWJ,KACjQ,QACpB,EACAhE,EAAgBh0C,UAAUgZ,iBAAmB,SAAU1a,GACnD,IAAI3D,EAAK4F,KAAK/E,MAAO8e,EAAQ3f,EAAG2f,MAAOi6B,EAAe55C,EAAG45C,aACzD,OAAIA,GAAgBA,EAAaj2C,YAAcA,EACpCi2C,EAAarkC,MAEN,QAAd5R,EACOgc,EAAMhc,IAAc,GAEM,iBAArBgc,EAAMhc,IAA4Bq2C,MAAMr6B,EAAMhc,IAGvD,GAFIgL,OAAOgR,EAAMhc,GAG5B,EAEA01C,EAAgBh0C,UAAUi4C,iBAAmB,SAAU35C,GACnD,IAAIi2C,EAAeh0C,KAAK/E,MAAM+4C,aAE9B,GAAKA,GAAgBA,EAAaj2C,YAAcA,EAAhD,CAGA,IAAI4R,EAAQqkC,EAAarkC,MAEzB,KAAkB,QAAd5R,GAAuB4R,EAAMjU,QAAU,MAAkBiU,EAAMjU,QAAU,MAA7E,CAGA,IAAIo8C,EAAWtE,EAAUz1C,GACzB,OAAOiC,KAAK61C,SAASiC,EAFrB,CALA,CAQJ,EACArE,EAAgBh0C,UAAU41C,cAAgB,SAAUt3C,EAAW6C,EAAO8Q,GAClE,IAAItX,EACA2f,EAAQ/Z,KAAK/E,MAAM8e,MACnBk6B,EAAsB,QAAdl2C,EACR00C,EAAwB,MAAd10C,EACVm2C,EAA+B,MAAdn2C,EAKrB,GAHA2T,GAAYA,GAAY,IAAIqmC,OAAO,EAAG9D,EAAQ,KAAiB,OAEzCA,EAAQ,KAAY,MACrB+D,KAAKtmC,GAqB1B,GAhBiB,KAAbA,IAIKuiC,EAIKviC,EAAShW,SAAW,KAEzB+2C,GAAWyB,EACNG,OAAO3iC,IAAa,KAGpB2iC,OAAO3iC,IAAa,MAO7B,GAAI3I,OAAOgR,EAAMhc,MAAgB2T,EAI9B1R,KAAK/E,MAAM+4C,cACXh0C,KAAK4V,SAAS,CAAEo+B,kBAAcj1C,QAGjC,CAED,IAAIyxC,EAAWyD,GACT,EAAAK,EAAA,GAAmB,IAAM5iC,GACzBwiC,EACIZ,EAAQv5B,EAAOs6B,OAAO3iC,KACtB,EAAA8iC,EAAA,IAAiB,SAAS,QAAS,CAAC,EAAGz6B,KAAS3f,EAAK,CAAC,GAAM2D,GAAas2C,OAAO3iC,GAAWtX,KACrG4F,KAAKowC,aAAaxvC,EAAO4vC,EAC7B,MAlBIxwC,KAAK4V,SAAS,CAAEo+B,aAAc,CAAEj2C,UAAWA,EAAW4R,MAAO+B,IAmBrE,EAMA+hC,EAAgBh0C,UAAU2wC,aAAe,SAAUzvC,EAAI6vC,GACnD,GAAKA,EAAL,CAGA,IAAIp2C,EAAK4F,KAAK/E,MAAO8e,EAAQ3f,EAAG2f,MAAOi6B,EAAe55C,EAAG45C,aAGzD,GADuBxD,EAASnB,IAAMt1B,EAAMs1B,GAAKmB,EAASX,MAAQ91B,EAAM81B,KAChDmE,EAAc,CAGlC,GAAIrzC,GAAMX,KAAK1E,MAAM8V,WACjBpR,KAAK1E,MAAM8V,SAASzQ,EAAI6vC,GACpB7vC,EAAGopB,kBACH,OAGR/pB,KAAK4V,SAAS,CAAEmE,MAAOy2B,EAAUwD,kBAAcj1C,GACnD,CAdA,CAeJ,EACA00C,EAAgB9qC,aAAe,CAC3BorC,UAAW,QACXW,QAAS,CACL6B,oBAAqB,8BACrB3G,IAAK,MACL4F,IAAK,MACLC,MAAO,QACPC,KAAM,OACNC,MAAO,QACPC,aAAc,eACdkB,aAAc,MACdL,YAAazG,EAAmBrnC,aAAamS,UAC7C67B,kBAAmB3G,EAAmBrnC,aAAamoC,gBACnD4F,kBAAmB1G,EAAmBrnC,aAAaygB,gBACnD6uB,SAAU,qDACVC,WAAY,kCACZC,kBAAmB,yCACnBC,SAAU,gCACVC,WAAY,kCACZC,UAAW,mCAGZ7E,CACX,CAlSoC,CAkSlC,aAEF,SAASyB,EAAmB55C,GACxB,IAAIye,EAAQze,EAAMye,MAClB,MAAwB,iBAAVA,GAAqB,EAAAu6B,EAAA,GAAmBv6B,GAASA,CACnE,CIvUO,ICGIw+B,GAAc,EAAAt5B,EAAA,GAAOw0B,GDHT,SAAUn4C,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO64C,EAAYz4C,EAAMy4C,UACxE,MAAO,CACHtqC,KAAM,CACF,iBACAvO,EAAMkkB,MAAMyB,OACZ,CACIK,SAAU,WACVwS,SAAU,KAEd91B,GAEJ44C,MAAO,CACH,uBACA,CACI91B,QAAS,SAGjBw2B,MAAO,CACH,uBACA,CACIsB,YAAa,QACbpwC,MAAO,OACPgD,UAAW,CACP,8CAA+C,CAC3CoiC,aAAc,MAK9B6J,YAAa,CACTn8C,EAAMkkB,MAAMiC,MACZ,CACIjW,UAAW,CACPqtC,GAAI,CACA5M,cAAe,MAK/ByL,aAAc,CACVlvC,MAAO,OAGXmvC,eAA8B,iBAAdxD,GAAgC,CAC5C3rC,MAAO,OAEX6uC,YAAa,CACT,6BACA,CACI7uC,MAAO,GACP8G,OAAQ,GACR4R,OAAQ,YACRmB,OAAQ,oBACRb,kBAAmB,SAG3B2B,cAAe,CACXhC,QAAS,QAEb81B,WAAY,CACRvzB,SAAU,KAEd0zB,eAAgB,CACZ1zB,SAAU,KAEdmkB,MAAO,CACH,uBACA,CACIr/B,MAAO,OACP6Z,OAAQ,OACRqO,UAAW,aACXphB,OAAQ,GACR9D,UAAW,CACP,iBAAkB,CACdoiC,aAAc,GAElB,wBAAyB,CACrB1a,SAAU,OACVpS,QAAS,EACT7B,aAAc,WAMtC,QCnF4D9f,EAAW,CAAE0iB,MAAO,e,uCCH5ErnB,EAAI2H,ECaJ22C,EAMAC,E,+QDXAC,GAAoB,EAAAjyB,EAAA,KAAgB,SAAUzrB,GAC9C,IAAId,EACA4f,EAAiB9e,EAAM8e,eAC3B,MAAO,CACHuG,gBAAiBvG,EAAe+V,mBAChChW,MAAOC,EAAegW,aACtBtY,OAAQ,UACRtM,WAAYhR,EAAK,CACT,SAAU,CACN8nB,YAAalI,EAAe+V,qBAGpC31B,EAAG,MAAwB,CACvB2f,MAAO,WACP3O,UAAW,CACP,SAAU,CACN8W,YAAa,cAIzB9nB,GAEZ,IACIy+C,EAA+B,CAC/BztC,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEmmB,gBAAiB,YAAa2B,YAAa,YAAanI,MAAO,kBAAmB,WACxH3f,IAEJ0+C,EAA0B,CAC1B1tC,WAAYrJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEgY,MAAO,aAAcwG,gBAAiB,WAAY,WACxFxe,IAEGg3C,GAAkB,EAAApyB,EAAA,KAAgB,SAAUzrB,EAAO89C,EAA2BC,EAAoCC,EAAWC,EAAUC,GAC9I,IAAIh/C,EACA+kB,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAChD2zB,EAAS,CACT0L,iBAAkBr/B,EAAes/B,oBACjCC,kBAAmBp6B,EAAQqC,YAC3Bg4B,kBAAmBx/B,EAAegW,aAClCypB,uBAAwBz/B,EAAesF,0BACvCo6B,uBAAwB1/B,EAAewF,2BAEvCm6B,EAAe,CACflwC,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZ,CACIN,gBAAiB24B,EAAYvL,EAAO8L,uBAAyB,cAC7DnpB,UAAW,aACX5Y,OAAQ,UACRqJ,QAASo4B,EAAW,OAAS,QAC7B/wC,MAAO,OACP8G,OAAQ,OACRykB,UAtDW,GAuDXhT,WAAY,OACZD,QAAS,QACTQ,SAAU,WACVujB,YAAa,MACbC,YAAa,QACbxiB,YAAa,cACbkO,aAAc,EACdwpB,SAAU,aACVC,aAAc,aACdlqB,UAAW,OACXvkB,WAAW,SAAS,SAAUhR,EAAK,CAAC,EAAGA,EAAG,MAAwB,CAC9D6nB,OAAQ,OACRC,YAAa,cACd9nB,IAAO++C,GAAY,CAClB,gBAAiB,CACbp4B,QAAS,OACTC,WAAY,YAEf,CAAE,oCAAqC,CACpCT,gBAAiBotB,EAAO+L,wBACzB,qBAAsB,CACrBtxC,MAAO,WAGnBgxC,EACM,CACE,CACI74B,gBAAiB,cACjBxG,MAAO4zB,EAAO4L,kBACdnuC,UAAW,CACP,SAAU,CACN,CACImV,gBAAiBotB,EAAO8L,wBAE5BZ,MAIZ,QAAc39C,EAAO,CAAEi1B,OAAQ,EAAG2pB,eAAe,IACjDjB,GAEF,IAEV12B,YAAa,CACT5B,gBAAiBotB,EAAO8L,uBACxB1/B,MAAO4zB,EAAO0L,kBAElBr0B,YAAa,CACTzE,gBAAiBotB,EAAO8L,wBAE5B92B,aAAc,CACV5I,MAAO4zB,EAAO6L,kBACd9hC,OAAQ,WAEZqiC,WAAY,CACRj9B,SAAU,SACV8B,WAAY,SACZC,aAAc,WACdiU,SAAU,MACVY,SAAU,OACVkmB,SAAU,aACVC,aAAc,aACd94B,QAAS,gBAEbi5B,kBAAmB,CACftmB,SAAU,OACV3S,QAAS,OACTC,WAAY,WAGpB,OAAO,QAAgB24B,EAAcX,EAA2BC,EACpE,IACWgB,GAA2B,EAAAtzB,EAAA,KAAgB,SAAUzrB,EAAO4mB,GACnE,IAAI1nB,EAAI2H,EACJiY,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MACrD86B,EAAQ,CACRC,gBAAiBngC,EAAeogC,YAChCC,8BAA+BrgC,EAAekX,kBAC9CopB,6BAA8BtgC,EAAeugC,0BAC7CC,6BAA8BxgC,EAAeygC,0BAC7CC,oCAAqC1gC,EAAe2gC,kCAEpDC,EAA2B,CAC3BxvC,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEmmB,gBAAiB,YAAa2B,YAAa,YAAanI,MAAO,kBAAmB,WACxH3f,IAEJiB,EAAS,CACToO,KAAM,CACFsQ,MAAOmgC,EAAMC,gBACbv5B,SAAUxB,EAAMiC,MAAMT,SACtBM,SAAU,WACVnZ,IAAK,EACLmH,OAAQ,OACRyR,WAvJa,GAwJbvY,MAvJiB,GAwJjBunB,UAAW,SACXjY,OAAQ,UACRtM,WAAYrJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEwe,gBAAiB,aAAc2B,YAAa,aAAcnI,MAAO,eAAgB,WACvHhY,IAERkhB,KAAM,CACFrC,SAAUxB,EAAMiC,MAAMT,UAE1BuB,YAAa,CACT,CACI5B,gBAAiB25B,EAAMI,6BACvBvgC,MAAOmgC,EAAMG,8BACb3iC,OAAQ,WAEZkjC,GAEJt4B,YAAa,CACT,CACI/B,gBAAiB25B,EAAMM,6BACvBzgC,MAAOmgC,EAAMG,+BAEjBO,GAEJ/3B,YAAa,CACT,CACItC,gBAAiB25B,EAAMM,6BACvBzgC,MAAOmgC,EAAMG,+BAEjBO,GAEJx1B,mBAAoB,CAChB,CACI7E,gBAAiB25B,EAAMQ,oCACvB3gC,MAAOmgC,EAAMG,+BAEjBO,GAEJj4B,aAAc,CACVi2B,EAAkB19C,GAClB,CACIgmB,SAAU,cAItB,OAAO,QAAgB7lB,EAAQymB,EACnC,IACWD,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO4mB,EAAc+4B,GAClE,IAAIzgD,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EACpBzX,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAAOyQ,EAAU30B,EAAM20B,QAC5EpmB,EAAO,CACPqxC,UAAW9gC,EAAe+gC,UAC1B74B,YAAalI,EAAeghC,YAC5BC,mBAAoBjhC,EAAe8uB,mBACnCoS,mBAAoBlhC,EAAemhC,oBACnCC,mBAAoBphC,EAAemhC,oBACnC56B,gBAAiBvG,EAAeqhC,gBAChCC,aAActhC,EAAeuhC,WAE7B5N,EAAS,CACT6N,gBAAiBxhC,EAAeyhC,WAChCC,mBAAoB1hC,EAAe2hC,aAGnCC,EAAgC,CAChCxwC,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,YAEX3f,IAEJyhD,EAAoB,CACpB,CACI9hC,MAAOC,EAAe8hC,sBAE1BF,GAEAG,EAA2B,CAC3B,CACIhiC,MAAOC,EAAeqvB,kBAE1BuS,GAEAI,EAA4B,CAC5B,CACIjiC,MAAOC,EAAegW,cAE1B4rB,GAEAK,GAAkC,SAAS,QAAS,CAAEliC,MAAO,gBAAiBwG,gBAAiB,WAAY,WAAiC,CAAEnV,UAAW,CACrJ,SAAU,CACN8W,YAAa,gBAGrBg6B,GAAoB,QAAmBzyC,EAAKyxC,mBAAoBrrB,EAAQQ,eAAgB,SAAU,GAClGh1B,EAAS,CACTmvB,UAAW,CAAC,EACZjF,MAAO,CAAC,EACRE,cAAe,CAAC,EAChBhc,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZ,CACI0jB,UAAW,OACX1P,WAAY,IACZ2Y,aAhQa,GAiQbH,YAAa,EACbtzB,MAAOtQ,EAAKqxC,UACZ55B,SAAU,WACV7V,QAAS,IACTklB,WAAY,OACZhQ,gBAAiB9W,EAAK8W,gBACtB7I,OAAQ,OACRqJ,QAAS,QACT7R,OA3QK,GA4QL0P,WAAY,SACZC,aAAc,WACdyR,UAAW,aACXllB,UAAW,CACP,YAAa,CACT2V,QAAS,eACTiU,aAAc,OAElB,YAAa,CACT5pB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwBk6C,EAC3Bl6C,IAIR,SAAU,CACNuyB,cAAe,OACftW,QAAS,KACTkD,SAAU,WACV7b,KAAM,EACN0C,IAAK,EACLE,OAAQ,EACRxC,MAAO,EACPg/B,YAAa,MACbC,YAAa,QACbxiB,YAAazY,EAAKyY,YAClBkO,aAAcP,EAAQQ,mBAKtClO,YAAa,CACT/W,WAAYpJ,EAAK,CACT,SAAU,CACNkgB,YAAazY,EAAKwxC,oBAEtB,qBAAsB,CAClB,CACIlhC,MAAOC,EAAeqvB,mBAE1B,QAAqB0S,GACrBjD,IAGR92C,EAAG,OAAwB,SAAS,QAAS,CAAE+X,MAAO,gBAAiBwG,gBAAiB,WAAY,WAAiC,CAAEnV,UAAW,CAC1I,SAAU,CACN8W,YAAa,gBAGzBlgB,IAERsgB,YAAa,CACT,CACIpB,SAAU,WACV9V,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwBg6C,EAC3Bh6C,KAGZ+iB,YAAa,CACT,CACI5Z,WAAY8T,EAAK,CACT,qBAAsB,CAClB,CACInF,MAAOC,EAAeqvB,kBAE1ByP,IAGR55B,EAAG,MAAwB+8B,EAC3B/8B,IAERg9B,GAEJv5B,aAAci2B,EAAkB19C,GAChCihD,UAAW,CACP/wC,UAAW,CACP,SAAU,CACN8W,YAAazY,EAAK6xC,cAEtB,eAAgB,CACZp5B,YAAalI,EAAe8uB,sBAIxCsT,qBAAsB,CAAC,EACvB3U,MAAO,EACH,QAAqBoU,GACrB,CACIt7B,gBAAiB9W,EAAK8W,gBACtBxG,MAAOtQ,EAAKqxC,UACZxqB,UAAW,aACXloB,MAAO,OACP8G,OAAQ,OACRw1B,YAAa,OACbr5B,QAAS,OACTgxC,KAAM,UACNx9B,aAAc,WACd6B,QAAS,IACTtV,UAAW,CACP,cAAe,CACX2V,QAAS,UAIrB+3B,GAEJwD,cAAe,CAAC1D,EAAkB19C,IAAQ,QAAqB8gD,IAC/DO,aAAc,CACVrhD,EAAMkkB,MAAMiC,MACZ,CACItH,MAAOtQ,EAAK6xC,aACZxmB,UAAW,QAGnBqG,QAAS,CACLoJ,UAAW1U,EAAQmiB,YAEvBwK,wBAAyB,CACrBp0C,MAAOyyC,GAEX4B,iBAAkB,CACd17B,QAAS,SAEbiF,iBAAkB,KAClB02B,OAAQ,CACJt9B,EAAMyB,OACN,CACIR,WAAY,KAAYJ,SACxBlG,MAAO4zB,EAAO6N,gBACdj7B,gBAAiB,OACjBmkB,YAAa,OACbx1B,OA7YW,GA8YXyR,WA9YW,GA+YXjJ,OAAQ,UACRgJ,QAAS,QACT6P,WAAY,OACZZ,UAAW,OACXvkB,WAAYqmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE1X,MAAO,aAAc,WAC3D0X,KAGZ9J,QAAS,CACLzY,OAAQ,EACRqR,gBAAiBotB,EAAO+N,qBAGhC,OAAO,QAAgBrgD,EAAQymB,EACnC,IEnaWnI,GAAgB,EAAAgN,EAAA,KAAgB,SAAUtrB,EAAQuC,EAAW++C,EAAQ74C,EAAUgiC,EAAUmE,EAAS2S,EAAeC,GACxH,MAAO,CACHryB,WAAW,QAAY,wBAAyB5sB,EAAWvC,EAAOmvB,WAClEjF,OAAO,QAAYlqB,EAAOkqB,MAAOzhB,GAAYzI,EAAOoqB,eACpDhc,MAAM,QAAY,cAAeozC,EAAkBxhD,EAAO8gD,UAAYQ,GAAU,UAAW7W,GAAY,cAAezqC,EAAOoO,MAAOmzC,GAAiBvhD,EAAO+gD,qBAAsBS,IAAoB5S,EAAU5uC,EAAO8gD,WAAar4C,GAAYmmC,GAAW5uC,EAAO2pB,aAAclhB,GAAY,CACxRsH,UAAW,CACP,SAAUyxC,EAAkBxhD,EAAO8gD,WAAaQ,IAAW1S,GAAW5uC,EAAO8mB,YAC7E,UAAW06B,EAAkBxhD,EAAO8gD,UAAY9gD,EAAOinB,YACvD,SAAUu6B,EAAkBxhD,EAAO8gD,UAAY9gD,EAAO2pB,cAE3DlhB,GAAY,CAAC,cAAezI,EAAOsnB,eACtC8kB,OAAO,QAAY,oBAAqBpsC,EAAOosC,MAAO3jC,GAAYzI,EAAOihD,eACzEC,cAAc,QAAYlhD,EAAOkhD,cACjCphB,SAAS,QAAY,sBAAuB9/B,EAAO8/B,SACnDqhB,yBAAyB,QAAY,sCAAuCnhD,EAAOmhD,yBACnFC,kBAAkB,QAAY,+BAAgCphD,EAAOohD,kBACrEC,QAAQ,QAAY,qBAAsBrhD,EAAOqhD,QACjD/0B,SAAS,QAAY,sBAAuBtsB,EAAOssB,SACnD3B,kBAAkB,QAAY3qB,EAAO2qB,kBAE7C,IACW82B,GAA8B,EAAAn2B,EAAA,KAAgB,SAAUtrB,GAC/D,MAAO,CACH0+C,YAAY,QAAY,yBAA0B1+C,EAAO0+C,YACzDtwC,MAAM,QAAY,qBAAsBpO,EAAOoO,KAAM,CACjD2B,UAAW,CACP,SAAU/P,EAAO8mB,YACjB,SAAU9mB,EAAO2pB,YACjB,UAAW3pB,EAAOinB,eAG1B03B,mBAAmB,QAAY3+C,EAAO2+C,mBAE9C,I,6EDrBA,SAAWtB,GACPA,EAAgBA,EAA0B,UAAK,GAAK,WACpDA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAAyB,QAAI,GAAK,SACrD,CAJD,CAIGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GAEPA,EAAYA,EAAsB,UAAK,GAAK,WAE5CA,EAAYA,EAAqB,SAAK,GAAK,SAC9C,CALD,CAKGA,IAAgBA,EAAc,CAAC,IAClC,IAYIoE,EAAwB,QAAW,SAAU3iD,GAE7C,OAAO6D,EADM7D,EAAG6D,SAEpB,IAAG,SAAU7D,EAAI2H,GACG3H,EAAG6D,OAAnB,IAA2B++C,GAAW,QAAO5iD,EAAI,CAAC,WACvB6iD,GAAXl7C,EAAG9D,QAAmB,QAAO8D,EAAI,CAAC,YAElD,OAAO,QAAei7C,EAAUC,EACpC,IACIn1B,EAAiB,WACjBiV,EAAgB,CAChB5iC,QAAS,GACT+iD,eAAe,EACf1kC,aAAc,KACd2kC,gBAAiB,CAAE1gC,SAAU,gBAkC1B,IAAI2gC,EAAW,cAAiB,SAAUle,EAAsBC,GACnE,IAAI/kC,GAAK,EAAAglC,EAAA,GAAqBrC,EAAemC,GAAqC5jC,GAARlB,EAAGkR,KAAa,QAAOlR,EAAI,CAAC,SAClG2lC,EAAU,SAAa,MACvBsd,GAAgB,EAAAvrC,EAAA,GAAciuB,EAASZ,GACvCp9B,EApCR,SAAyB3H,GACrB,IAAID,EAAUC,EAAGD,QAASg0C,EAAqB/zC,EAAG+zC,mBAAoBG,EAAcl0C,EAAGk0C,YAEnFvsC,EAAK,YAAe,WACpB,OAAOu7C,EAAmBnjD,EAutDlC,SAAkCg0C,EAAoBG,GAClD,IAAIiP,EAAeC,GAAkBrP,GACrC,OAAIoP,EAAa7hD,OACN6hD,EAEJC,GAAkBlP,EAC7B,CA7tD2CmP,CAAyBtP,EAAoBG,GACpF,IAAIoP,EAAkB37C,EAAG,GAAI47C,EAAqB57C,EAAG,GAEjDC,EAAK,WAAe7H,GAAUyjD,EAAiB57C,EAAG,GAAI67C,EAAoB77C,EAAG,GAE7EC,EAAK,aAAkBuU,EAAwBvU,EAAG,GAAI67C,EAA2B77C,EAAG,GAcxF,OAbA,aAAgB,WACZ,QAAoBlD,IAAhBuvC,EAA2B,CAC3B,IAAIiP,EAAeC,GAAkBlP,GACjCyP,EAAUT,EAAmBnjD,EAASojD,GAC1CI,EAAmBI,EACvB,CACAF,EAAkB1jD,EACtB,GAAG,CAACA,EAASm0C,IACb,aAAgB,WACQ,OAAhBA,GACAwP,OAAyB/+C,EAEjC,GAAG,CAACuvC,IACG,CACHoP,EACAC,EACAC,EACAC,EACArnC,EACAsnC,EAER,CAKaE,CAAgB1iD,GAAQoiD,EAAkB37C,EAAG,GAAI47C,EAAqB57C,EAAG,GAAI67C,EAAiB77C,EAAG,GAAI87C,EAAoB97C,EAAG,GAAIyU,EAAwBzU,EAAG,GAAI+7C,EAA2B/7C,EAAG,GACtM,OAAQ,gBAAoBk8C,GAAkB,QAAS,CAAC,EAAG3iD,EAAO,CAAE4iD,QAAS,CACrEb,cAAeA,EACftd,QAASA,EACT2d,gBAAiBA,EACjBC,mBAAoBA,EACpBC,eAAgBA,EAChBC,kBAAmBA,EACnBrnC,sBAAuBA,EACvBsnC,yBAA0BA,KAEtC,IAQA,SAASK,EAAoBnlD,EAASuU,GAGlC,IAFA,IAAI7Q,EEtGD,SAAqBjE,EAAQ2lD,QACH,IAAzBA,IAAmCA,GAAuB,GAC9D,IAAI1hD,EAAW,GACf,GAAIjE,EAAQ,CACR,IAAK,IAAIqH,EAAI,EAAGA,EAAIrH,EAAOiE,SAAShB,OAAQoE,IACxCpD,EAASiB,KAAKlF,EAAOiE,SAAS6e,KAAKzb,IAEnCs+C,IAAwB,EAAA/kD,EAAA,GAAiBZ,IACzCiE,EAASiB,KAAKhC,MAAMe,EAAUjE,EAAOa,SAASoD,SAEtD,CACA,OAAOA,CACX,CF0FmB2hD,CAAYrlD,GAElBijB,EAAQ,EAAGA,EAAQvf,EAAShB,OAAQugB,IAAS,CAClD,IAAIvjB,EAAQgE,EAASuf,GACrB,GAAI1O,EAAM7U,GACN,OAAOA,EAEX,IAAI4lD,EAAYH,EAAoBzlD,EAAO6U,GAC3C,GAAI+wC,EACA,OAAOA,CAEf,CACA,OAAO,IACX,CArBAlB,EAAS3iD,YAAcqtB,EAsBvB,IAAIm2B,EAAkC,SAAUn8C,GAE5C,SAASm8C,EAAiB3iD,GACtB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAqtBxC,OAntBAkC,EAAMq8C,UAAY,cAElBr8C,EAAMs8C,iBAAmB,cAEzBt8C,EAAMu8C,cAAgB,cAEtBv8C,EAAMw8C,iBAAmB,cAEzBx8C,EAAMy8C,wBAAyB,EAI/Bz8C,EAAMmB,MAAQ,SAAUu7C,EAAmBC,GACnC38C,EAAM5G,MAAMwI,WAGZ5B,EAAMq8C,UAAUp7C,UACZ07C,GACA,QAAW38C,EAAMq8C,UAAUp7C,SAG3BjB,EAAMq8C,UAAUp7C,QAAQE,QAExBu7C,GACA18C,EAAM0T,SAAS,CACX+mC,QAAQ,KAMfz6C,EAAM48C,aACP58C,EAAM0T,SAAS,CAAEmpC,WAAY,YAErC,EAIA78C,EAAMurB,YAAc,WACHvrB,EAAMjH,MAAM0hD,QACfz6C,EAAM0T,SAAS,CAAE+mC,QAAQ,GACvC,EAQAz6C,EAAM88C,yCAA2C,WAC7C,IAAIC,EAAW/8C,EAAMq8C,UAAUp7C,QAC/B,OAAK87C,EAGkB,OAAnBA,EAAStvC,YAAqC5Q,IAAnBkgD,EAAStvC,MAC7B,KAEJuvC,GAAkBh9C,EAAMi9C,sBALpB,IAMf,EACAj9C,EAAMk9C,uBAAyB,SAAUC,EAA2BC,GAChE,IAAIllD,EAAK8H,EAAM5G,MAAOiqB,EAAQnrB,EAAGmrB,MAAOzhB,EAAW1J,EAAG0J,SAAUgX,EAAY1gB,EAAG0gB,UAAW/Y,EAAK3H,EAAGyQ,gBAAiBA,OAAyB,IAAP9I,EAAgBG,EAAM5G,MAAM,oBAAsByG,EAAI+jC,EAAW1rC,EAAG0rC,SAAUyW,EAAeniD,EAAGmiD,aAAcY,EAAkB/iD,EAAG+iD,gBAAiBoC,EAAqBnlD,EAAGmlD,mBAAoBj5B,EAAQlsB,EAAGksB,MAAOk5B,EAAkBplD,EAAGqlD,YAAaxyC,EAAW7S,EAAG6S,SAAUyyC,EAAWtlD,EAAGslD,SAAUC,EAAkBvlD,EAAGulD,gBAAiBnpC,EAAwBpc,EAAG8jD,QAAQ1nC,sBAC9exU,EAAKE,EAAMjH,MAAO2kD,EAA4B59C,EAAG49C,0BAA2BjD,EAAS36C,EAAG26C,OAKxF8C,EAAcv9C,EAAM48C,aAAe58C,EAAM5G,MAAMukD,aAAeR,EAC5DA,EACAG,EAEFM,EAAa,CACb,kBAFa,CAAC59C,EAAM5G,MAAM,mBAAoBiqB,GAASrjB,EAAMqG,IAAM,UAAUyqC,KAAK,KAAK+M,aAE1ChhD,EAC7C,aAAc+b,IAAcyK,EAAQzK,OAAY/b,GAEpD,OAAQ,gBAAoB,MAAO,CAAE,mBAAmB,EAAMuM,IAAKpJ,EAAMs8C,iBAAkBjrC,GAAIrR,EAAMqG,IAAM,UAAW3K,UAAWsE,EAAMoa,YAAY7S,KAAM,YAAakzC,EAASz6C,EAAMqG,IAAM,aAAUxJ,GACjM,gBAAoByW,EAAA,GAAU,QAAS,CAAE,2BAA2B,EAAM,wBAAyB1R,EAAUsZ,aAAclb,EAAMq8C,UAAWhrC,GAAIrR,EAAMqG,IAAM,SAAU3K,UAAWsE,EAAMoa,YAAYmrB,MAAOhrC,KAAM,OAAQoG,QAASX,EAAMI,SAAU+oC,OAAQnpC,EAAMyB,QAASY,UAAWrC,EAAM89C,gBAAiBj1B,QAAS7oB,EAAM+9C,cAAennC,QAAS5W,EAAMg+C,iBAAkBpxB,aAAc5sB,EAAM4pB,cAAe/U,mBAAoB7U,EAAMi+C,eAAgB,gBAAiBxD,EAAQ,oBAAqBz6C,EAAMk+C,4BAA6BpjC,KAAM,WAAYnN,SAAU/L,GAAYg8C,EAAY,CAAE,wBAAqC/gD,IAAjBw9C,GAA6B,OAAyB1xC,EAAiBy0C,GAAkBz0C,EAAiB,wBAAyB+0C,EAA2B,gBAAiB9Z,EAAU,gBAAiBhiC,EAAU,gBAAiB64C,EAASz6C,EAAMqG,IAAM,aAAUxJ,EAAW64C,YAAY,EAAO5gC,oBAAqB9U,EAAMi9C,qBAAsB3oC,sBAAuBA,EAAuBU,8BAA+BhV,EAAM88C,yCAA0CrnC,+CAAgDzV,EAAMm+C,0DAA2D/5B,MAAOA,EAAOzO,uBAAwB3V,EAAM48C,YAAaW,YAAaA,EAAaxyC,SAAUnJ,GAAY,EAAImJ,GAAYyyC,IAC3wC,gBAAoB7iC,EAAA,GAAY,QAAS,CAAEjf,UAAW,+BAAgCvC,OAAQ6G,EAAMo+C,wBAAyBtjC,KAAMuiC,EAAqB,oBAAiBxgD,EAAW,cAAewgD,GAAwBA,OAAkCxgD,EAAb+gD,EAAyB,CAAE,qBAAqB,EAAO7yC,UAAW,EAAG6L,QAAS5W,EAAMq+C,iBAAkBlV,OAAQnpC,EAAMyB,QAAS+Y,UAAWygC,EAAiBr5C,SAAUA,EAAUugB,QAASs4B,GAAUgD,IACxb,EASAz9C,EAAMm+C,0DAA4D,WAC9D,OAAOn+C,EAAMi9C,uBAAyBj9C,EAAM5G,MAAM4iD,QAAQ1nC,qBAC9D,EAMAtU,EAAMs+C,iBAAmB,WACrB,IAAIpmD,EAAK8H,EAAM5G,MAAOme,EAAOrf,EAAGqf,KAAMyjC,EAAgB9iD,EAAG8iD,cAAeuD,EAAiBrmD,EAAGqmD,eAAgBjoC,EAAepe,EAAGoe,aAAczW,EAAK3H,EAAG8jD,QAAS1nC,EAAwBzU,EAAGyU,sBAAuBknC,EAAkB37C,EAAG27C,gBAAiBE,EAAiB77C,EAAG67C,eACrQ57C,EAAKE,EAAMjH,MAAOylD,EAAgC1+C,EAAG0+C,8BAA+BC,EAAsB3+C,EAAG2+C,oBAAqBhE,EAAS36C,EAAG26C,OAC9IiE,EAA2BC,GAAkBjD,EAAgB8C,GAGjE,KAAM/D,IAAUiE,KACXnnC,GAAiB,KAATA,IACT,MAACknC,EACD,OAAOlnC,EAEX,GAAIvX,EAAM5G,MAAMukD,YAAa,CAEzB,GAAI39C,EAAM48C,YAAa,CACnB,IAAI7iC,GAAS,EAIb,MAHqB,OAAjBzD,GAAyBooC,IACzB3kC,EAAQykC,GAELx+C,EAAM4+C,kBAAkBH,EAAqB/C,EAAgB3hC,EACxE,CAEI,OAAO/Z,EAAM6+C,6BAA6BrD,EAAiBE,EAAgBpnC,EAEnF,CAII,OADIyF,EAAQ/Z,EAAM8+C,yBACd9D,GAAiBuD,GAII,OAAjBjoC,GAAyBooC,IACzB3kC,EAAQykC,GAILx+C,EAAM4+C,kBAAkBH,EAAqB/C,EAAgB3hC,IAKhE2kC,GAA6C,OAAjBpoC,GAG5ByD,EAAQykC,EACDxB,GAAkByB,KAEnBz+C,EAAMjH,MAAM0hD,QAAUgE,EACrBE,GAAkBjD,EAAgB3hC,GACnC0kC,EACAzB,GAAkB1oC,GAGjBqqC,GAAkBjD,EAAgB3hC,GACnCglC,GAAerD,EAAe3hC,IAC9BijC,GAAkB1oC,EAIxC,EAKAtU,EAAMi+C,eAAiB,SAAUe,GACzBh/C,EAAM5G,MAAMwI,SACZ5B,EAAMi/C,yBAAyB,OAG/Bj/C,EAAM5G,MAAMyb,oBACZ7U,EAAM5G,MAAMyb,mBAAmBmqC,GAEnCh/C,EAAM5G,MAAM4hD,eAAiBh7C,EAAM5G,MAAMmlD,eACnCv+C,EAAMk/C,gCAAgCF,GACtCh/C,EAAMm/C,mCAAmCH,GACnD,EAKAh/C,EAAMI,SAAW,WACb,IAAIlI,EAAI2H,EACuF,QAA9FA,EAAwC,QAAlC3H,EAAK8H,EAAMq8C,UAAUp7C,eAA4B,IAAP/I,OAAgB,EAASA,EAAGgd,oBAAiC,IAAPrV,GAAyBA,EAAGu/C,SAC9Hp/C,EAAM48C,aACP58C,EAAM0T,SAAS,CAAEmpC,WAAY,YAErC,EAMA78C,EAAMq/C,kBAAoB,WACtB,GAAIr/C,EAAM5G,MAAMkmD,iBAAkB,CAE9B,IAAIC,EAAev/C,EAAM5G,MAAMkmD,kBAAiB,QAAc,GAAIt/C,EAAM5G,MAAM4iD,QAAQN,gBAAgB,IAIlGthD,MAAMC,QAAQklD,GACdv/C,EAAM5G,MAAM4iD,QAAQL,kBAAkB4D,GAEjCA,GAAgBA,EAAalf,OAGlCrgC,EAAMw/C,gBAAkBD,EACxBA,EAAalf,MAAK,SAAUof,GACpBF,IAAiBv/C,EAAMw/C,iBACvBx/C,EAAM5G,MAAM4iD,QAAQL,kBAAkB8D,EAE9C,IAER,CACJ,EAMAz/C,EAAMyB,QAAU,SAAU/C,GACtB,IAAIxG,EAAI2H,EAIJkgC,EAAgBrhC,EAAMqhC,cAS1B,GAR4B,OAAxBrhC,EAAMqhC,gBAMNA,EAAgB/oC,SAASwL,eAEzBu9B,EAAe,CACf,IAAI2f,EAAyE,QAA9CxnD,EAAK8H,EAAM5G,MAAM4iD,QAAQne,QAAQ58B,eAA4B,IAAP/I,OAAgB,EAASA,EAAGtB,SAASmpC,GACtH4f,EAAgE,QAAtC9/C,EAAKG,EAAMu8C,cAAct7C,eAA4B,IAAPpB,OAAgB,EAASA,EAAGjJ,SAASmpC,GAC7G6f,EAAiC5/C,EAAMu8C,cAAct7C,UACrD,EAAApK,EAAA,GAAqBmJ,EAAMu8C,cAAct7C,SAAS,SAAUnK,GAAW,OAAOA,IAAYipC,CAAe,IAC7G,GAAI2f,GAA2BC,GAA0BC,EAQrD,OAPIA,GACA5/C,EAAM48C,eACJ58C,EAAM5G,MAAMukD,aAAe39C,EAAM5G,MAAM4hD,gBACzCh7C,EAAM6/C,oBAAoBnhD,GAE9BA,EAAMwG,sBACNxG,EAAM8C,iBAGd,CACIxB,EAAM48C,cACN58C,EAAM0T,SAAS,CAAEmpC,WAAY,SACxB78C,EAAM5G,MAAMukD,cAAe39C,EAAM5G,MAAM4hD,eACxCh7C,EAAM6/C,oBAAoBnhD,GAGtC,EAEAsB,EAAM8/C,mBAAqB,SAAU1mD,EAAOitB,GACxC,IAAI05B,EAAe3mD,EAAM2mD,aAAcC,EAAe5mD,EAAM4mD,aAAcC,EAAgB7mD,EAAM6mD,cAAeC,EAAmB9mD,EAAM8mD,iBAAkBhoD,EAAKkB,EAAM+mD,qBAAsBA,OAA8B,IAAPjoD,EAAgB8H,EAAMogD,sBAAwBloD,EAAI2H,EAAKzG,EAAMinD,qBAAsBA,OAA8B,IAAPxgD,EAAgBG,EAAMsgD,sBAAwBzgD,EAAI0gD,EAAyBnnD,EAAMmnD,uBAAwBn0B,EAAchzB,EAAMgzB,YAAatsB,EAAK1G,EAAMoR,mBAAoBA,OAA4B,IAAP1K,GAAuBA,EAC7gB26C,EAASz6C,EAAMjH,MAAM0hD,OACrBppC,EAAKrR,EAAMqG,IACXm6C,EAAoBD,GAA0BvgD,EAAMs8C,iBAAiBr7C,QACnEjB,EAAMs8C,iBAAiBr7C,QAAQw/C,YAAc,OAC7C5jD,EACN,OAAQ,gBAAoB+lC,EAAA,GAAS,QAAS,CAAEzJ,eAAe,EAAOhB,SAAU,EAAGpM,YAAY,EAAO9Q,gBAAiB3I,EAAA,EAAgBK,eAAgBqkB,sBAAsB,GAASgpB,EAAc,CAAExiB,eAAgBx9B,EAAM0gD,gBAAiBhlD,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAY6e,QAAS+mB,aAAmD,EAASA,EAAatkD,WAAYlE,OAAQwI,EAAMs8C,iBAAiBr7C,QAAS2mB,UAAW5nB,EAAM2gD,WAAYz3B,YAAalpB,EAAM4gD,oBAAqBrjB,SAAUv9B,EAAM6gD,UAAWlgB,iBAAiB,EAAOxD,aAAcojB,GAA0BvgD,EAAMs8C,iBAAiBr7C,QACjkBu/C,GAAqBA,EACrBP,EAAe7iB,gBAAiB8iB,GAAsCM,EAAmBj0B,OAAQH,GAAequB,OAAS59C,EAAW2N,mBAAoBA,EAE9J00B,sBAAuB,SAAUzgC,GAAM,OAAOuB,EAAM8gD,gCAAgCriD,EAAK,IACzF0hD,EAAqBngD,EAAM5G,MAAO4G,EAAMogD,uBACxC,gBAAoB,MAAO,CAAE1kD,UAAWsE,EAAMoa,YAAYkgC,wBAAyBlxC,IAAKpJ,EAAMu8C,eAAiBwD,aAAmD,EAASA,GAAa,SAAS,QAAS,CAAC,EAAG3mD,GAAQ,CAAEiY,GAAIA,IAAOrR,EAAM+gD,gBACzOV,EAAqBrgD,EAAM5G,MAAO4G,EAAMsgD,uBAChD,EACAtgD,EAAM0gD,gBAAkB,WACpB1gD,EAAMghD,yBAGNhhD,EAAMiU,OAAO1C,YAAW,WACpBvR,EAAMihD,iBACV,GAAG,GACCjhD,EAAM5G,MAAM4mD,cAAgBhgD,EAAM5G,MAAM4mD,aAAaxiB,gBACrDx9B,EAAM5G,MAAM4mD,aAAaxiB,gBAEjC,EACAx9B,EAAMkhD,eAAiB,SAAUC,GAC7B,IAAIjpD,EAAKipD,EAAmB/nD,MAAOiqB,EAAQnrB,EAAGmrB,MAAOzhB,EAAW1J,EAAG0J,SAAUgiC,EAAW1rC,EAAG0rC,SAC3F,OAAIvgB,EACQ,gBAAoB2pB,EAAA,EAAO,CAAE37B,GAAIrR,EAAMqG,IAAM,SAAUzE,SAAUA,EAAUgiC,SAAUA,EAAUloC,UAAWsE,EAAMoa,YAAYiJ,OAChIA,EACA89B,EAAmBhE,2BAA8B,gBAAoB,OAAQ,CAAEzhD,UAAWsE,EAAMoa,YAAY0J,kBAAoBq9B,EAAmBhE,4BAEpJ,IACX,EAEAn9C,EAAM+gD,cAAgB,SAAU3nD,GAC5B,IAAIlB,EAAKkB,EAAM4f,aAAcA,OAAsB,IAAP9gB,EAAgB8H,EAAMia,cAAgB/hB,EAAImrB,EAAQjqB,EAAMiqB,MAAOzK,EAAYxf,EAAMwf,UAAW+kC,EAAcvkD,EAAMukD,YACxJyD,EAAQ,CAAEpmC,MAAO,IACjBqmC,EAAe,GACfC,EAAa,WACb,IAAIC,EAAWH,EAAM/vC,GACf,CACE,gBAAoB,MAAO,CAAEyJ,KAAM,QAAStB,IAAK4nC,EAAM/vC,GAAI,kBAAmB+vC,EAAM/vC,IAAM+vC,EAAMpmC,QAElGomC,EAAMpmC,MACZqmC,GAAe,SAAc,QAAc,GAAIA,GAAc,GAAOE,GAAU,GAE9EH,EAAQ,CAAEpmC,MAAO,GACrB,EA6BA5hB,EAAMnB,QAAQmP,SAAQ,SAAUiS,EAAMU,IA5BH,SAAUV,EAAMU,GAY/C,OAAQV,EAAKmoC,UACT,KAAK,IAA6BC,OAC9BL,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IAC1B,IAAII,EAAO1hD,EAAMqG,IAAMgT,EAAKG,IAC5B4nC,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAE3H,GAAIqwC,GAAQroC,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBAC9FmnC,EAAM/vC,GAAKqwC,EACX,MACJ,KAAK,IAA6BC,QAC9B5nC,EAAQ,GAAKqnC,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAC,EAAGK,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBACjGmnC,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IAC1B,MACJ,QACIF,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAC,EAAGK,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBAEhG,CAGI2nC,CAA6BvoC,EAAMU,EACvC,IAEAqnC,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IAC1B,IAAIjwC,EAAKrR,EAAMqG,IACf,OAAQ,gBAAoB,MAAO,CAAEgL,GAAIA,EAAK,QAAS3V,UAAWsE,EAAMoa,YAAYmgC,iBAAkB,kBAAmBl3B,GAAShS,EAAK,SAAU,aAAcuH,IAAcyK,EAAQzK,OAAY/b,EAAW,uBAAwB8gD,EAAc,YAAS9gD,EAAWie,KAAM,WAAaumC,EAC7R,EAEArhD,EAAMia,cAAgB,SAAUZ,GAC5B,OAAQA,EAAKmoC,UACT,KAAK,IAA6BG,QAC9B,OAAO3hD,EAAM6hD,iBAAiBxoC,GAClC,KAAK,IAA6BooC,OAC9B,OAAOzhD,EAAM8hD,cAAczoC,GAC/B,QACI,OAAOrZ,EAAM+hD,cAAc1oC,GAEvC,EAEArZ,EAAMsgD,sBAAwB,WAC1B,OAAO,IACX,EAEAtgD,EAAMogD,sBAAwB,WAC1B,OAAO,IACX,EACApgD,EAAM+hD,cAAgB,SAAU1oC,GAC5B,IAAInhB,EACA2H,EAAKG,EAAM5G,MAAM4oD,eAAgBA,OAAwB,IAAPniD,EAAgBG,EAAMiiD,uBAAyBpiD,EACjGwR,EAAwB,QAAlBnZ,EAAKmhB,EAAKhI,UAAuB,IAAPnZ,EAAgBA,EAAK8H,EAAMqG,IAAM,QAAUgT,EAAKU,MAChFm9B,EAAal3C,EAAMkiD,kBAAkB7oC,EAAKU,OAC1CsqB,EAAYrkC,EAAMmiD,iBAAiB9oC,EAAKU,OACxC0qB,EAAkBzkC,EAAMoiD,uBAAuB/oC,EAAKU,OACpD09B,EAAez3C,EAAMqiD,wBAAwBhpC,GAC7CipC,EAAmB1H,EAA4B56C,EAAMqiD,wBAAwBhpC,IAC7E+K,EAAQ/K,EAAK+K,MAejB,OAAQ,gBAAoBy2B,EAAuB,CAAErhC,IAAKH,EAAKG,IAAKO,MAAOV,EAAKU,MAAOnY,SAAUyX,EAAKzX,SAAUs1C,WAAYA,EAAY7S,UAAWA,EAAWI,gBAAiBA,EAAiBltB,KAAM8B,EAAK9B,KAEvMxb,OAhBqB,WACrB,OAAQiE,EAAM5G,MAAMukD,YAI0Z,gBAAoB7X,EAAA,EAAU,CAAEz0B,GAAIA,EAAIuH,UAAWS,EAAKT,UAAWhQ,eAAgByQ,EAAKT,eAAY/b,EAAYwU,EAAK,SAAUmI,IAAKH,EAAKG,IAAKrgB,OAAQs+C,EAAc/7C,UAAW,qBAAsBwT,SAAUlP,EAAMuiD,aAAalpC,GAAOgK,MAAOhK,EAAK9B,KAAM4K,QAASkiB,EAAWE,cAAeE,EAAiBrgB,MAAOA,EAAOxiB,SAAUyX,EAAKzX,SAEtvBkjC,cAAe9kC,EAAMwiD,qBAAqB9oC,KAAK1Z,GAAO,SAAS,QAAS,CAAC,EAAGqZ,GAAO,CAAEhI,GAAIA,EAAK,YAAcwyB,YAAY,QAAS,CAE7H,gBAAiBQ,EAAY,OAAS,QAASvpB,KAAM,UAAY,CACjE,aAAczB,EAAKU,MACnB,qBAAqB,MAVM,gBAAoBqX,EAAA,EAAe,CAAE/f,GAAIA,EAAImI,IAAKH,EAAKG,IAAK,aAAcH,EAAKU,MAAO5gB,OAAQs+C,EAAct1B,QAAS+0B,EAAYx7C,UAAW,qBAAsBkb,QAAS5W,EAAMuiD,aAAalpC,GAE7NopC,aAAcziD,EAAM0iD,oBAAoBhpC,KAAK1Z,EAAOqZ,EAAKU,OAEzD4oC,YAAa3iD,EAAM4iD,mBAAmBlpC,KAAK1Z,EAAOqZ,EAAKU,OAAQ8oC,aAAc7iD,EAAM8iD,oBAAqBhoC,KAAM,SAAU,gBAAiBo8B,EAAa,OAAS,QAASt+B,UAAWS,EAAKT,UAAWhX,SAAUyX,EAAKzX,SAAUwiB,MAAOA,GAAS,gBAAoB,OAAQ,CAAE1oB,UAAW4mD,EAAiBxK,kBAAmB1uC,IAAK8tC,EAAal3C,EAAMw8C,sBAAmB3/C,GAAamlD,EAAe3oC,EAAMrZ,EAAMiiD,yBAQpZ,EAGgC9pC,KAAMkB,EAAKlB,MAC/C,EAIAnY,EAAM4gD,oBAAsB,SAAUniD,GAClCA,EAAGyG,gBACP,EAKAlF,EAAM6gD,UAAY,WACd,IAAI3oD,EACC8H,EAAM+iD,oBAAgDlmD,IAA/BmD,EAAMgjD,qBAK9BhjD,EAAM+iD,eAAgB,GAJtB/iD,EAAMiU,OAAO3C,aAAatR,EAAMgjD,sBAChChjD,EAAMgjD,0BAAuBnmD,IAKO,QAAnC3E,EAAK8H,EAAM5G,MAAM4mD,oBAAiC,IAAP9nD,OAAgB,EAASA,EAAGqlC,WACxEv9B,EAAM5G,MAAM4mD,aAAaziB,WAE7Bv9B,EAAMgjD,qBAAuBhjD,EAAMiU,OAAO1C,YAAW,WACjDvR,EAAM+iD,eAAgB,CAC1B,GAhgBU,IAigBd,EACA/iD,EAAMiiD,uBAAyB,SAAU5oC,GACrC,IAAIipC,EAAmB1H,EAA4B56C,EAAMqiD,wBAAwBhpC,IACjF,OAAO,gBAAoB,OAAQ,CAAE3d,UAAW4mD,EAAiBzK,YAAcx+B,EAAK9B,KACxF,EAKAvX,EAAMijD,kCAAoC,SAAU5pC,GAChD,IAAIipC,EAAmB1H,EAA4B56C,EAAMqiD,wBAAwBhpC,IACjF,OAAQ,gBAAoB,OAAQ,CAAEhI,GAAIgI,EAAKhI,GAAI,cAAe,OAAQ3V,UAAW4mD,EAAiBzK,YAAcx+B,EAAK9B,KAC7H,EAIAvX,EAAM2gD,WAAa,WACf,IAAIuC,EAAgBljD,EAAM5G,MAAM8pD,cAC5BA,GACAA,IAKAljD,EAAM5G,MAAMgzB,aACZpsB,EAAMghD,yBAGVhhD,EAAMmjD,8BAA6B,GAAoB,GAGvDnjD,EAAMojD,qBACV,EACApjD,EAAMqjD,yBAA2B,WAC7BrjD,EAAMsjD,6BAA8B,CACxC,EAKAtjD,EAAM89C,gBAAkB,SAAUr/C,GAC9B,IAAIvG,EAAK8H,EAAM5G,MAAOwI,EAAW1J,EAAG0J,SAAUo5C,EAAgB9iD,EAAG8iD,cAAeuD,EAAiBrmD,EAAGqmD,eAAgBjoC,EAAepe,EAAGoe,aAAcolC,EAAiBxjD,EAAG8jD,QAAQN,eAC5K77C,EAAKG,EAAMjH,MAAO0hD,EAAS56C,EAAG46C,OAAQ8I,EAAuC1jD,EAAG0jD,qCAIpF,GADAvjD,EAAMwjD,yBAA2BC,GAAYhlD,GACzCmD,EACA5B,EAAMi/C,yBAAyBxgD,OADnC,CAIA,IAAIsb,EAAQ/Z,EAAM0jD,0BAAyB,GAE3C,OAAQjlD,EAAGqE,OACP,KAAKC,EAAA,EAASiC,MACNhF,EAAMq8C,UAAUp7C,SAAWjB,EAAMq8C,UAAUp7C,QAAQiU,cACnDlV,EAAMq8C,UAAUp7C,QAAQiU,aAAakqC,SAEzCp/C,EAAM6/C,oBAAoBphD,GACtBuB,EAAM5G,MAAMukD,aAAelD,EAC3Bz6C,EAAM0T,SAAS,CACX8qC,8BAA+BzkC,KAK/B0gC,KACGO,QACqCn+C,IAApCmD,EAAMjH,MAAM0lD,qBACwB,OAApCz+C,EAAMjH,MAAM0lD,qBACZz+C,EAAMjH,MAAM0lD,oBAAoBjlD,QAAU,IAC1CwG,EAAMjH,MAAMylD,8BAAgC,IAMhDx+C,EAAM0T,SAAS,CACX+mC,QAASA,IAIrB,MACJ,KAAK13C,EAAA,EAASkB,IAWV,OATKjE,EAAM5G,MAAMukD,aACb39C,EAAM6/C,oBAAoBphD,QAI1Bg8C,GACAz6C,EAAMmjD,8BAA8B1I,GAAQ,IAIpD,KAAK13C,EAAA,EAAS4gD,OAIV,GAFA3jD,EAAMojD,uBAEF3I,EAMA,OALAz6C,EAAM0T,SAAS,CACX+mC,QAAQ,IAMhB,MACJ,KAAK13C,EAAA,EAASU,GAOV,GAHI8/C,IAAyC9M,EAAYmN,WACrD7pC,EAAQ/Z,EAAM5G,MAAM4iD,QAAQN,eAAeliD,QAE3CiF,EAAGM,QAAUN,EAAGI,QAAS,CAIzB,GAAI47C,EAAQ,CACRz6C,EAAMmjD,8BAA8B1I,GAAQ,GAC5C,KACJ,CACA,MACJ,CAEAh8C,EAAGyG,iBAEHlF,EAAM6jD,qCAAqC9pC,EAAOy8B,EAAgBsN,UAClE,MACJ,KAAK/gD,EAAA,EAASa,KAENnF,EAAGM,QAAUN,EAAGI,QAChBmB,EAAMmjD,8BAA6B,GAAmB,IAMlDI,IAAyC9M,EAAYmN,WACrD7pC,GAAS,GAGbtb,EAAGyG,iBAEHlF,EAAM6jD,qCAAqC9pC,EAAOy8B,EAAgBuN,UAEtE,MACJ,KAAKhhD,EAAA,EAAS4B,KACd,KAAK5B,EAAA,EAAS+B,IACV,GAAIk2C,GAAiBuD,EACjB,OAIJxkC,GAAS,EACT,IAAIiqC,EAAoBxN,EAAgBuN,QAIpCtlD,EAAGqE,QAAUC,EAAA,EAAS+B,MACtBiV,EAAQ2hC,EAAeliD,OACvBwqD,EAAoBxN,EAAgBsN,UAExC9jD,EAAM6jD,qCAAqC9pC,EAAOiqC,GAClD,MAEJ,KAAKjhD,EAAA,EAASC,MAEV,IAAKg4C,IAAkBuD,GAAmC,QAAjBjoC,EACrC,MAER,QAII,GAAI7X,EAAGqE,OAAS,KAAgBrE,EAAGqE,OAAS,IACxC,OAKJ,GAAIrE,EAAGwlD,UAAYlhD,EAAA,EAASmhB,KAAkB,SAAXzlB,EAAG+a,IAClC,OAIJ,IAAKwhC,IAAkBuD,GAAmC,OAAjBjoC,EAAuB,CAC5DtW,EAAMi+C,eAAex/C,EAAG+a,KACxB,KACJ,CAEA,OAER/a,EAAG+C,kBACH/C,EAAGyG,gBAjJH,CAkJJ,EAKAlF,EAAM+9C,cAAgB,SAAUt/C,GAC5B,IAAIvG,EAAK8H,EAAM5G,MAAOwI,EAAW1J,EAAG0J,SAAUo5C,EAAgB9iD,EAAG8iD,cAAeuD,EAAiBrmD,EAAGqmD,eAAgBjoC,EAAepe,EAAGoe,aAClImkC,EAASz6C,EAAMjH,MAAM0hD,OAQrByJ,EAA2BlkD,EAAMwjD,0BAA4BC,GAAYhlD,GAC7EuB,EAAMwjD,0BAA2B,EACjC,IAAIW,EAAkBD,MAA8B,WAAW,UAC3DtiD,EACA5B,EAAMi/C,yBAAyBxgD,GAI3BA,EAAGqE,QACFC,EAAA,EAASC,MASNmhD,GAAmB1J,EACnBz6C,EAAMmjD,8BAA8B1I,GAAQ,IAGb,aAA3Bz6C,EAAMjH,MAAM8jD,YAA6B78C,EAAM5G,MAAMgrD,qBACrDpkD,EAAM0T,SAAS,CAAE+mC,QAAQ,IAEE,YAA3Bz6C,EAAMjH,MAAM8jD,YACZ78C,EAAM0T,SAAS,CAAEmpC,WAAY,aAbhC7B,GAAkBuD,GAAmC,QAAjBjoC,GACrCtW,EAAMmjD,8BAA8B1I,IAAUA,EAiB9D,EACAz6C,EAAM8iD,oBAAsB,WACpB9iD,EAAMqkD,2BAKNrkD,EAAM5G,MAAMgzB,cAAgBpsB,EAAMjH,MAAM0hD,QAG5Cz6C,EAAM0T,SAAS,CACX6vC,qCAAsC9M,EAAYmN,UAE1D,EAKA5jD,EAAMq+C,iBAAmB,WACrB,IAAIz8C,EAAW5B,EAAM5G,MAAMwI,SACvB64C,EAASz6C,EAAMjH,MAAM0hD,OACpB74C,IACD5B,EAAMmjD,8BAA8B1I,GAAQ,GAC5Cz6C,EAAM0T,SAAS,CAAEmpC,WAAY,YAErC,EAIA78C,EAAMg+C,iBAAmB,WACrB,IAAI9lD,EAAK8H,EAAM5G,MAAOwI,EAAW1J,EAAG0J,SAA0B1J,EAAG8iD,gBAC3Cp5C,EAClB5B,EAAMmB,MAAMnB,EAAMjH,MAAM0hD,QAAUz6C,EAAMyoB,kBAGxCzoB,EAAMq+C,kBAEd,EACAr+C,EAAM4pB,cAAgB,WACd5pB,EAAMs8C,iBAAiBr7C,WAAa,kBAAmBjB,EAAMs8C,mBAC7Dt8C,EAAM8pB,6BAEd,EACA9pB,EAAMkrB,eAAiB,SAAUzsB,GACN,UAAnBA,EAAGsrB,cACH/pB,EAAM8pB,8BACNrrB,EAAGyG,iBACHzG,EAAG0uB,2BAEX,GACA,EAAA/mB,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,IAC/B,EAAAskD,EAAA,GAAsB1+B,EAAgBxsB,EAAO,CACzC6yC,mBAAoB,cACpB10B,KAAM,qBACN60B,YAAa,QACb6T,cAAe,yBACfrnC,UAAW,UAEf5Y,EAAMqG,IAAMjN,EAAMiY,KAAM,EAAA/K,EAAA,GAAM,YAC9BtG,EAAM+iD,eAAgB,EACtB/iD,EAAMyoB,kBAAmB,EACzBzoB,EAAMukD,eAAgB,EACtBvkD,EAAMsjD,6BAA8B,EACpCtjD,EAAMjH,MAAQ,CACV0hD,QAAQ,EACRoC,WAAY,OACZ2B,+BAAgC,EAChCC,yBAAqB5hD,EACrB0mD,qCAAsC9M,EAAY+N,SAE/CxkD,CACX,CAu5BA,OA/mDA,QAAU+7C,EAAkBn8C,GAytB5BzC,OAAOgN,eAAe4xC,EAAiBx+C,UAAW,kBAAmB,CAIjE6M,IAAK,WACD,IAAIlS,EAAK4F,KAAK1E,MAAM4iD,QAASN,EAAiBxjD,EAAGwjD,eAAgBF,EAAkBtjD,EAAGsjD,gBACtF,OAAO,OAAsBE,EAAgBF,EACjD,EACAnxC,YAAY,EACZC,cAAc,IAElByxC,EAAiBx+C,UAAU+J,kBAAoB,WACvCxJ,KAAKw+C,iBAAiBr7C,UAAYnD,KAAK1E,MAAMwI,WAE7C9D,KAAKmsB,QAAQnZ,GAAGhT,KAAKw+C,iBAAiBr7C,QAAS,QAASnD,KAAKuhD,mBAAmB,GAC5E,kBAAmBvhD,KAAKw+C,iBAAiBr7C,SAIzCnD,KAAKmsB,QAAQnZ,GAAGhT,KAAKw+C,iBAAiBr7C,QAAS,cAAenD,KAAKotB,gBAAgB,GAG/F,EACA6wB,EAAiBx+C,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GACjE,IACInzB,EAAI2H,EAAIC,EADRE,EAAQlC,KAERiC,EAAKjC,KAAK1E,MAAO4hD,EAAgBj7C,EAAGi7C,cAAeuD,EAAiBx+C,EAAGw+C,eAAgBhnC,EAAOxX,EAAGwX,KAAMktC,EAAa1kD,EAAG0kD,WAAYC,EAAkB3kD,EAAG2kD,gBAAiB1nC,EAAKjd,EAAGi8C,QAASN,EAAiB1+B,EAAG0+B,eAAgBF,EAAkBx+B,EAAGw+B,gBACnPjsB,EAAKzxB,KAAK/E,MAAO0lD,EAAsBlvB,EAAGkvB,oBAAqBD,EAAgCjvB,EAAGivB,8BAA+B/D,EAASlrB,EAAGkrB,QAG7IA,GAAYpvB,EAAUovB,QAAUpvB,EAAUmzB,gCAAkCA,GAE5E1gD,KAAKmW,OAAO1C,YAAW,WAAc,OAAOvR,EAAMihD,iBAAmB,GAAG,GAKxEnjD,KAAK8+C,cACJnC,GACIpvB,EAAUovB,SACNA,GACD38C,KAAK6mD,uBACL7mD,KAAKu+C,UAAUp7C,SACfjK,SAASwL,gBAAkB1E,KAAKu+C,UAAUp7C,QAAQiU,eAC1DpX,KAAKqD,WAAMtE,GAAiC,GAS5CiB,KAAK6mD,wBACHt5B,EAAUovB,SAAWA,GAClB38C,KAAK8+C,eACCnC,IACE38C,KAAK1E,MAAMukD,aACZvyB,EAAU4wB,QAAQR,iBAClBA,GACApwB,EAAU4wB,QAAQR,gBAAgB,KAAOA,EAAgB,KACvDR,IAAkBuD,GACpBhnC,IAAS6T,EAAU7T,QAC/BzZ,KAAKsC,WAETtC,KAAK8mD,2BAA2Bv5B,GAC5BovB,IAAWpvB,EAAUovB,SAErB38C,KAAK2+C,wBAAyB,EAC9B3+C,KAAKmW,OAAO3C,aAAaxT,KAAK+mD,8BAC9B/mD,KAAK+mD,6BAA+B/mD,KAAKmW,OAAO1C,YAAW,WACvDvR,EAAMy8C,wBAAyB,CACnC,GAAG,KACHgI,SAAwDA,MAEvDhK,GAAUpvB,EAAUovB,QAAUiK,GAC/BA,IAEJ,IAAII,EAAmCtG,EACnCvmD,EAAUyjD,EAAehiD,KAAI,SAAU2f,EAAMU,GAAS,OAAQ,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GAAW,MAG9G,QAAeqR,EAAU4wB,QAAQN,eAAgBA,IAAmB+C,IACrEqG,EACIhnD,KAAK1E,MAAM4hD,eAAiBl9C,KAAK1E,MAAMmlD,eACjCzgD,KAAKohD,gCAAgCT,GACrC3gD,KAAKinD,wCAAwCtG,IAE3D,IAAIuG,OAAiBnoD,EACjB49C,GAAU38C,KAAK8+C,cAAqD,IAAtCkI,EAC9BE,EAC4D,QAAvD9sD,EAAKD,EAAQ6sD,GAAkCzzC,UAAuB,IAAPnZ,EAAgBA,EAAK4F,KAAKuI,IAAM,QAAUy+C,EAEzGrK,GAAUe,EAAgBhiD,SAC/BwrD,EAA0G,QAAxFllD,EAA4C,QAAtCD,EAAK5H,EAAQujD,EAAgB,WAAwB,IAAP37C,OAAgB,EAASA,EAAGwR,UAAuB,IAAPvR,EAAgBA,EAAKhC,KAAKuI,IAAM,QAAUm1C,EAAgB,IAE5KwJ,IAAmBlnD,KAAK/E,MAAM2kD,2BAC9B5/C,KAAK4V,SAAS,CACVgqC,0BAA2BsH,GAGvC,EACAjJ,EAAiBx+C,UAAU6K,qBAAuB,WAC9CtK,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,SACjB,EAEA0tC,EAAiBx+C,UAAUxB,OAAS,WAChC,IACIqhD,EADKt/C,KAAKuI,IACY,SACtBnO,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWkG,EAAW1J,EAAG0J,SAAUgiC,EAAW1rC,EAAG0rC,SAAUyW,EAAeniD,EAAGmiD,aAAcx6C,EAAK3H,EAAG+sD,kBAAmBA,OAA2B,IAAPplD,EAAgB/B,KAAKgiD,mBAAqBjgD,EAAIC,EAAK5H,EAAG4sC,cAAeA,OAAuB,IAAPhlC,EAAgBhC,KAAKojD,eAAiBphD,EAAIC,EAAK7H,EAAG6nD,aAAcA,OAAsB,IAAPhgD,EAAgBjC,KAAKijD,cAAgBhhD,EAAIid,EAAK9kB,EAAG8gB,aAAcA,OAAsB,IAAPgE,EAAgBlf,KAAKmc,cAAgB+C,EAAIuS,EAAKr3B,EAAG8pD,eAAgBA,OAAwB,IAAPzyB,EAAgBzxB,KAAKmkD,uBAAyB1yB,EAAIyrB,EAAgB9iD,EAAG8iD,cAAep7B,EAAe1nB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAOozB,EAAcl0B,EAAGk0B,YAAauxB,EAAczlD,EAAGylD,YAAanuB,EAAKt3B,EAAG8jD,QAAS1nC,EAAwBkb,EAAGlb,sBAAuBknC,EAAkBhsB,EAAGgsB,gBAAiBE,EAAiBlsB,EAAGksB,eACvyBjB,EAAS38C,KAAK/E,MAAM0hD,OACxB38C,KAAKm/C,qBAAuBn/C,KAAKwgD,mBAIjC,IAAInB,EAA4BQ,EAC1B7/C,KAAK+gD,6BAA6BrD,EAAiBE,EAAgBpnC,QACnEzX,EACFgM,GAAW,QAAe/K,KAAK1E,MAAO,KAAe,CACrD,WACA,QACA,mBACA,oBAEAuhD,KAAkBN,GAAgBA,EAAa7gD,OAAS,GAC5DsE,KAAKsc,YAActc,KAAK1E,MAAMqe,cACxB3Z,KAAK1E,MAAMqe,cAAcze,IAASyhD,IAAU74C,IAAYgiC,IAAY9lC,KAAK8+C,cAAe5B,IAAiBL,EAAiBj/C,GAC1H+b,EAAckI,EAAU3mB,EAAO4mB,GAAelkB,IAAa++C,IAAU74C,IAAYgiC,IAAY9lC,KAAK8+C,cAAe5B,IAAiBL,GACxI,IAAIuK,EAAkBpnD,KAAKo/C,uBAAuBC,EAA2BC,GAC7E,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGv0C,EAAU,CAAEO,IAAKtL,KAAK1E,MAAM4iD,QAAQb,cAAez/C,UAAWoC,KAAKsc,YAAYkO,YAC3Hwc,EAAc,CAAE1rC,MAAO0E,KAAK1E,MAAO+jD,0BAA2BA,GAA6Br/C,KAAKojD,gBAChGgE,GACC94B,GAAequB,IACZwK,GAAkB,SAAS,QAAS,CAAC,EAAGnnD,KAAK1E,OAAQ,CAAE2mD,aAAcA,EAAc/mC,aAAcA,EAAcgpC,eAAgBA,EAAgB/pD,QAASyjD,EAAehiD,KAAI,SAAU2f,EAAMU,GAAS,OAAQ,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GAAW,IAAI6N,UAAW9pB,KAAK6iD,aAAe7iD,KAAKgiD,oBACzSnF,GAAoB,gBAAoB,MAAO,CAAE7/B,KAAM,QAASzJ,GAAI+rC,EAAgB1hD,UAAWoC,KAAKsc,YAAYigC,cAAgBA,GACxI,EACA0B,EAAiBx+C,UAAUqhD,kBAAoB,SAAUH,EAAqB/C,EAAgB3hC,GAC1F,OAAO0kC,QACDA,EACAE,GAAkBjD,EAAgB3hC,GAC9BglC,GAAerD,EAAe3hC,IAC9B,EACd,EAKAgiC,EAAiBx+C,UAAUshD,6BAA+B,SAAUrD,EAAiBE,EAAgBpnC,GAEjG,IADA,IAAI6wC,EAAgB,GACXC,EAAM,EAAG5J,GAAmB4J,EAAM5J,EAAgBhiD,OAAQ4rD,IAAO,CACtE,IAAIrrC,EAAQyhC,EAAgB4J,GACxB1J,EAAe3hC,GAAOynC,WAAa,IAA6B6D,WAChEF,EAAc1pD,KAAKkjD,GAAkBjD,EAAgB3hC,GAC/C2hC,EAAe3hC,GAAOxC,KACtBylC,GAAkB1oC,GAEhC,CACA,IAAIpc,EAAK4F,KAAK1E,MAAMksD,qBAAsBA,OAA8B,IAAPptD,EAAgB,KAAOA,EACxF,OAAOitD,EAAcrU,KAAKwU,EAC9B,EAOAvJ,EAAiBx+C,UAAUujD,gCAAkC,SAAUriD,GACnE,SAAIX,KAAK2+C,wBAAuC,WAAZh+C,EAAGlE,MAAiC,WAAZkE,EAAGlE,KAInE,EAMAwhD,EAAiBx+C,UAAU2hD,gCAAkC,SAAUF,GACnE,IAAItD,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACpCoJ,GAAoC,EAExC,GAAqB,KAAjB9F,EASA,OAJqB,KAJjBhkC,EAAQ0gC,EACPhiD,KAAI,SAAU2f,EAAMU,GAAS,OAAQ,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GAAW,IACtF4gB,QAAO,SAAU8Q,GAAU,OAAO8Z,GAAe9Z,KAAYA,EAAO7pC,UAAYm9C,GAAetT,KAAYuT,CAAc,KAEpHxlD,SACNsrD,EAAmC9pC,EAAM,GAAGjB,OAEhDjc,KAAK0nD,gBAAgBxG,EAAc8F,EAAkC9F,GAC9D8F,EAGX,IAAIW,EAAuBzG,EAC3BA,EAAeA,EAAajpC,oBAC5B,IAsBQiF,EAtBJ0qC,EAA2B,GAE/B,GAAgC,OAA5B5nD,KAAK1E,MAAMkd,cASX,IAPI0E,EAAQ0gC,EACPhiD,KAAI,SAAU2f,EAAMU,GAAS,OAAQ,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GAAW,IACtF4gB,QAAO,SAAU8Q,GAClB,OAAO8Z,GAAe9Z,KACjBA,EAAO7pC,UAC6D,IAArEm9C,GAAetT,GAAQ11B,oBAAoB3I,QAAQ4xC,EAC3D,KACUxlD,OAAS,EAAG,CAElB,IAAI+d,EAAOwnC,GAAe/jC,EAAM,IAEhC0qC,EAA2BnuC,EAAKxB,sBAAwBipC,EAAeznC,EAAO,GAE9EutC,EAAmC9pC,EAAM,GAAGjB,KAChD,OAUqB,KANjBiB,EAAQ0gC,EACPhiD,KAAI,SAAU2f,EAAMU,GAAS,OAAQ,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GAAW,IACtF4gB,QAAO,SAAU8Q,GAClB,OAAO8Z,GAAe9Z,KAAYA,EAAO7pC,UAAYm9C,GAAetT,GAAQ11B,sBAAwBipC,CACxG,KAEUxlD,SACNsrD,EAAmC9pC,EAAM,GAAGjB,OAKpD,OADAjc,KAAK0nD,gBAAgBC,EAAsBX,EAAkCY,GACtEZ,CACX,EAMA/I,EAAiBx+C,UAAU4hD,mCAAqC,SAAUH,GACtE,IAAIh/C,EAAQlC,KACR5F,EAAK4F,KAAK/E,MAAO0lD,EAAsBvmD,EAAGumD,oBAAqBD,EAAgCtmD,EAAGsmD,8BACtG,GAAgC,OAA5B1gD,KAAK1E,MAAMkd,cAMU,KAAjB0oC,EAAqB,CAKjBlhD,KAAK6nD,uBACL7nD,KAAKmW,OAAO3C,aAAaxT,KAAK6nD,sBAC9B7nD,KAAK6nD,0BAAuB9oD,EAC5BmiD,EAAehC,GAAkByB,GAAuBO,GAE5D,IAAI4G,EAAgB9nD,KAAKinD,wCAAwC/F,GAKjE,OAHAlhD,KAAK6nD,qBAAuB7nD,KAAKmW,OAAO1C,YAAW,WAC/CvR,EAAM2lD,0BAAuB9oD,CACjC,GA1jCyB,KA2jClB+oD,CACX,CAKJ,IAAI7rC,EAAQykC,GAAiC,EAAIA,EAAgC1gD,KAAKghD,yBAMtF,OADAhhD,KAAK+nD,yBAAyB9rC,GACvBA,CACX,EACAgiC,EAAiBx+C,UAAUwnD,wCAA0C,SAAU/F,GAC3E,IAAItD,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACpC+J,EAAuBzG,EAC3BA,EAAeA,EAAajpC,oBAE5B,IAAIiF,EAAQ0gC,EACPhiD,KAAI,SAAU2f,EAAMzb,GAAK,OAAQ,SAAS,QAAS,CAAC,EAAGyb,GAAO,CAAEU,MAAOnc,GAAO,IAC9E+8B,QAAO,SAAU8Q,GAClB,OAAO8Z,GAAe9Z,KAAYA,EAAO7pC,UAAsE,IAA1D6pC,EAAOl0B,KAAKxB,oBAAoB3I,QAAQ4xC,EACjG,IAEA,OAAIhkC,EAAMxhB,OAAS,GACfsE,KAAK0nD,gBAAgBC,EAAsBzqC,EAAM,GAAGjB,MAAOglC,GAAe/jC,EAAM,KACzEA,EAAM,GAAGjB,QAEZ,CACZ,EACAgiC,EAAiBx+C,UAAUuhD,uBAAyB,WAChD,IAAItD,EAAkB19C,KAAK1E,MAAM4iD,QAAQR,gBACzC,OAAQA,aAAyD,EAASA,EAAgBhiD,QAAUgiD,EAAgB,IAAM,CAC9H,EASAO,EAAiBx+C,UAAUuoD,wBAA0B,SAAU/rC,EAAOgsC,GAClE,IAAIrK,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACpCsK,EAAWjsC,EAAQgsC,EAEvB,IAAKpH,GAAkBjD,EADvBsK,EAAWrgD,KAAKsgD,IAAI,EAAGtgD,KAAKugD,IAAIxK,EAAeliD,OAAS,EAAGwsD,KAEvD,OAAQ,EAEZ,IAAIva,EAASiQ,EAAesK,GAC5B,IAAKG,GAAmB1a,KAA6B,IAAlBA,EAAOlf,OAAiB,CAEvD,GAAIw5B,IAAoBvP,EAAgBtoC,QAClC83C,EAAW,GAAKD,EAAkBvP,EAAgBtoC,MAC/C83C,GAAY,GAAKA,EAAWtK,EAAeliD,QAAUusD,EAAkBvP,EAAgBtoC,MAK5F,OAAO6L,EAJPisC,EAAWloD,KAAKgoD,wBAAwBE,EAAUD,EAM1D,CAEA,OAAOC,CACX,EAOAjK,EAAiBx+C,UAAU6oD,kBAAoB,SAAUrsC,EAAOssC,EAAyBN,QAC7D,IAApBA,IAA8BA,EAAkBvP,EAAgBtoC,MACpE,IAAIhW,EAAK4F,KAAK1E,MAAO8V,EAAWhX,EAAGgX,SAAUo3C,EAAwBpuD,EAAGouD,sBAAuBzmD,EAAK3H,EAAG8jD,QAASuK,EAAiB1mD,EAAG27C,gBAAiBE,EAAiB77C,EAAG67C,eAErKF,EAAkB+K,EAAiBA,EAAel2C,QAAU,GAC5Dm2C,EAAiB9K,EAAerrC,QAIpC,GAAKsuC,GAAkBjD,EADvB3hC,EAAQjc,KAAKgoD,wBAAwB/rC,EAAOgsC,IAC5C,CAKA,GAAIjoD,KAAK1E,MAAMukD,aACXnC,EAAgBhiD,OAAS,GACG,IAA3BgiD,EAAgBhiD,QAAgBgiD,EAAgB,KAAOzhC,EAAQ,CAChE,IAAI0xB,GAAS,QAAS,CAAC,EAAGiQ,EAAe3hC,IAEzC,IAAK0xB,GAAUA,EAAO7pC,SAClB,OAEJ,GAAI9D,KAAK1E,MAAMukD,YAKX,GAFAlS,EAAOgb,cAA+B5pD,IAApB4uC,EAAOgb,UAA0Bhb,EAAOgb,SAAWjL,EAAgBpuC,QAAQ2M,GAAS,EAElG0xB,EAAO+V,WAAa,IAA6B6D,UACjD7J,EAAkB,GAEd/P,EAAOgb,SACP/K,EAAet0C,SAAQ,SAAUs/C,EAAe9oD,IACvC8oD,EAAc9kD,UAAYukD,GAAmBO,KAC9ClL,EAAgB//C,KAAKmC,GACrB4oD,EAAe5oD,IAAK,SAAS,QAAS,CAAC,EAAG8oD,GAAgB,CAAED,UAAU,IAE9E,IAIAD,EAAiB9K,EAAehiD,KAAI,SAAUgtD,GAAiB,OAAQ,SAAS,QAAS,CAAC,EAAGA,GAAgB,CAAED,UAAU,GAAW,QAIvI,CACGhb,EAAOgb,UAAYjL,EAAgBpuC,QAAQ2M,GAAS,EACpDyhC,EAAgB//C,KAAKse,IAEf0xB,EAAOgb,UAAYjL,EAAgBpuC,QAAQ2M,IAAU,IAC3DyhC,EAAkBA,EAAgB7gB,QAAO,SAAUltB,GAAS,OAAOA,IAAUsM,CAAO,KAExFysC,EAAezsC,GAAS0xB,EAExB,IAAIkb,EAAkBH,EAAe7rB,QAAO,SAAUisB,GAAK,OAAOA,EAAEpF,WAAa,IAA6B6D,SAAW,IAAG,GAC5H,GAAIsB,EAAiB,CACjB,IAAIE,EAAiB/oD,KAAKgpD,oBAAoBtL,GAC1CuL,EAAmBP,EAAep5C,QAAQu5C,GAC1CE,GACArL,EAAgB//C,KAAKsrD,GACrBP,EAAeO,IAAoB,SAAS,QAAS,CAAC,EAAGJ,GAAkB,CAAEF,UAAU,MAGvFjL,EAAkBA,EAAgB7gB,QAAO,SAAUltB,GAAS,OAAOA,IAAUs5C,CAAkB,IAC/FP,EAAeO,IAAoB,SAAS,QAAS,CAAC,EAAGJ,GAAkB,CAAEF,UAAU,IAE/F,CACJ,MAGAjL,EAAgB,GAAKzhC,EAEzBssC,EAAwBW,UAEpBlpD,KAAK1E,MAAMgzC,aAA0C,OAA3BtuC,KAAK1E,MAAMgzC,cAQrCtuC,KAAK1E,MAAM4iD,QAAQP,mBAAmBD,GACtC19C,KAAK1E,MAAM4iD,QAAQL,kBAAkB6K,IAPjC1oD,KAAKmpD,kBAAoBX,IACzBA,IACAxoD,KAAKmpD,kBAAmB,GAa5B/3C,GACAA,EAASm3C,EAAyB5a,EAAQ1xB,EAAOglC,GAAetT,GAExE,CACI3tC,KAAK1E,MAAMukD,aAAe7/C,KAAK/E,MAAM0hD,QAIzC38C,KAAKopD,mBAvFL,CAwFJ,EAIAnL,EAAiBx+C,UAAUsiD,oBAAsB,SAAUwG,GACvD,IAAInuD,EACA2H,EAAK/B,KAAK1E,MAAO8V,EAAWrP,EAAGqP,SAAU8rC,EAAgBn7C,EAAGm7C,cAAe1kC,EAAezW,EAAGyW,aAAcqnC,EAAc99C,EAAG89C,YAAa3B,EAAUn8C,EAAGm8C,QACtJN,EAAiBM,EAAQN,eACzB57C,EAAKhC,KAAK/E,MAAO0lD,EAAsB3+C,EAAG2+C,oBAAqBD,EAAgC1+C,EAAG0+C,8BAA+B+E,EAAuCzjD,EAAGyjD,qCAC3K/H,EAAkB19C,KAAK1E,MAAM4iD,QAAQR,gBAGzC,IAAI19C,KAAKwlD,4BAAT,CAIA,GAAItI,EAAe,CAGf,GAAIyD,QAMA,YAJI8E,GAAwC,IACxCzlD,KAAKsoD,kBAAkB7C,EAAsC8C,GAC7DvoD,KAAKopD,sBAKb,GAAIvI,GAAkBjD,EAAgB8C,GAAgC,CAClE,IAAI2I,EAAoBpI,GAAerD,EAAe8C,IAAgCzoC,oBAClFynC,EAAW1/C,KAAKu+C,UAAUp7C,QAK9B,GAAIw9C,EAAoB1oC,sBAAwBoxC,GAC3C7wC,GAC0E,IAAvE6wC,EAAkB/5C,QAAQqxC,EAAoB1oC,uBAC7CynC,aAA2C,EAASA,EAAS4J,kBAC9D3I,EAAoBjlD,QAAUgkD,EAASjwC,aAAeiwC,EAASnwC,kBAC3D85C,EAAkB3tD,SAC4D,QAApFtB,EAAKslD,aAA2C,EAASA,EAAStoC,oBAAiC,IAAPhd,OAAgB,EAASA,EAAGuV,MAAMsI,uBAAyBoxC,EAAmB,CAE5K,GADArpD,KAAKsoD,kBAAkB5H,EAA+B6H,GAClD1I,GAAe7/C,KAAK/E,MAAM0hD,OAC1B,OAGJ,YADA38C,KAAKopD,mBAET,CACJ,CACA,GAAIh4C,EACIA,GAEAA,EAASm3C,OAAyBxpD,OAAWA,EAAW4hD,OAG3D,CAED,IAAI4I,EAAY,CACZ7tC,IAAKilC,IAAuB,EAAAn4C,EAAA,KAC5BiR,KAAMylC,GAAkByB,IAGxBd,IACA0J,EAAUZ,UAAW,GAEzB,IAAIa,EAAa5L,EAAeprC,OAAO,CAAC+2C,IACpC7L,IACKmC,IACDnC,EAAkB,IAEtBA,EAAgB//C,KAAK6rD,EAAW9tD,OAAS,IAE7CwiD,EAAQL,kBAAkB2L,GAC1BtL,EAAQP,mBAAmBD,EAC/B,CACJ,MACSgD,GAAiC,EAGtC1gD,KAAKsoD,kBAAkB5H,EAA+B6H,GAEjD9C,GAAwC,GAE7CzlD,KAAKsoD,kBAAkB7C,EAAsC8C,GAGjEvoD,KAAKopD,mBAzEL,CA0EJ,EACAnL,EAAiBx+C,UAAUyjD,uBAAyB,WAKhDljD,KAAKymD,eAAgB,CACzB,EAEAxI,EAAiBx+C,UAAUskD,iBAAmB,SAAUxoC,GACpD,IAAIU,EAAQV,EAAKU,MAAOP,EAAMH,EAAKG,IACnC,OAAIO,GAASA,EAAQ,EACV,gBAAoB,MAAO,CAAEe,KAAM,eAAgBtB,IAAKA,EAAK9d,UAAWoC,KAAKsc,YAAYqL,UAE7F,IACX,EACAs2B,EAAiBx+C,UAAUukD,cAAgB,SAAUzoC,GACjD,IAAInhB,EAAK4F,KAAK1E,MAAM4oD,eAAgBA,OAAwB,IAAP9pD,EAAgB4F,KAAKmkD,uBAAyB/pD,EACnG,OAAQ,gBAAoB,MAAO,CAAEmZ,GAAIgI,EAAKhI,GAAImI,IAAKH,EAAKG,IAAK9d,UAAWoC,KAAKsc,YAAYogC,QAAUwH,EAAe3oC,EAAMvb,KAAKmkD,wBACrI,EACAlG,EAAiBx+C,UAAUilD,qBAAuB,SAAUnpC,GACxD,IAAInhB,EAAK4F,KAAK1E,MAAM4oD,eACpB,YAD4D,IAAP9pD,EAAgB4F,KAAKmlD,kCAAoC/qD,GACxFmhB,EAAMvb,KAAKmlD,kCACrC,EAaAlH,EAAiBx+C,UAAUgqD,qBAAuB,SAAUxtC,GACxD,IAAIwpC,EAAuCzlD,KAAK/E,MAAMwqD,qCAGtD,OAAIA,IAAyC9M,EAAYmN,WAGlDL,GAAwC,EACzCA,IAAyCxpC,EACzCjc,KAAKokD,kBAAkBnoC,GACjC,EACAgiC,EAAiBx+C,UAAU2kD,kBAAoB,SAAUnoC,GACrD,OAAOjc,KAAK4lD,0BAAyB,KAAoC3pC,CAC7E,EACAgiC,EAAiBx+C,UAAU4kD,iBAAmB,SAAUpoC,GACpD,SAAIjc,KAAK1E,MAAMukD,kBAAyB9gD,IAAVkd,IAAuBjc,KAAK1E,MAAM4iD,QAAQR,kBAE/C19C,KAAK1E,MAAM4iD,QAAQR,gBAAgBpuC,QAAQ2M,IACnC,CAGrC,EACAgiC,EAAiBx+C,UAAU6kD,uBAAyB,SAAUroC,GAC1D,IAAI7hB,EAAK4F,KAAK1E,MAAOukD,EAAczlD,EAAGylD,YAAa3B,EAAU9jD,EAAG8jD,QAChE,GAAI2B,QAAyB9gD,IAAVkd,GAAuBiiC,EAAQR,iBAAmBQ,EAAQN,eAAgB,CACzF,IAAIjQ,EAASuQ,EAAQN,eAAe3hC,GACpC,GAAI0xB,GAAUA,EAAO+V,WAAa,IAA6B6D,UAC3D,OAAOrJ,EAAQR,gBAAgBhiD,OAAS,IAAMsE,KAAKgpD,qBAE3D,CACA,OAAO,CACX,EACA/K,EAAiBx+C,UAAUupD,oBAAsB,SAAUU,GACvD,IAAItvD,EAAK4F,KAAK1E,MAAOukD,EAAczlD,EAAGylD,YAAa3B,EAAU9jD,EAAG8jD,QAC5D2K,EAAkB3K,EAAQN,eAAe+L,MAAK,SAAUhc,GAAU,OAAOA,EAAO+V,WAAa,IAA6B6D,SAAW,IACrI7J,EAAkBgM,GAAexL,EAAQR,gBAC7C,IAAKmC,IAAgBnC,IAAoBmL,EACrC,OAAO,EAGX,IAAIe,EAAiB1L,EAAQN,eAAetuC,QAAQu5C,GAChDgB,EAAyBnM,EAAgB7gB,QAAO,SAAUltB,GAAS,OAAOA,IAAUi6C,CAAgB,IAEpGE,EAAoB5L,EAAQN,eAAe/gB,QAAO,SAAU8Q,GAC5D,OAAQA,EAAO7pC,UAAY6pC,EAAO+V,WAAa,IAA6B6D,WAAac,GAAmB1a,EAChH,IACA,OAAOkc,EAAuBnuD,SAAWouD,EAAkBpuD,MAC/D,EAMAuiD,EAAiBx+C,UAAUmmD,yBAA2B,SAAUmE,GAC5D,IAAI3vD,EAAK4F,KAAK/E,MAAOylD,EAAgCtmD,EAAGsmD,8BAA+BC,EAAsBvmD,EAAGumD,oBAChH,OAAOD,GAAiC,GACnCqJ,GAAD,MAA+BpJ,EAC7BD,EACA1gD,KAAK1E,MAAMukD,aACN,EACD7/C,KAAKghD,wBACnB,EAIA/C,EAAiBx+C,UAAU0jD,gBAAkB,WACzC,IAAI/oD,EAAK4F,KAAK1E,MAAO0uD,EAAiB5vD,EAAG4vD,eAAgBC,EAAsB7vD,EAAG6vD,oBAC9EC,EAA8BlqD,KAAK4lD,0BAAyB,GAChE,GAAIoE,EAEAA,EAAeE,GAA+B,EAAIA,EAA8BlqD,KAAKghD,8BAFzF,CAKA,IAAImJ,EAAkBnqD,KAAK0+C,iBAAiBv7C,QAS5C,GANInD,KAAK1E,MAAMukD,aAAe7/C,KAAKy+C,cAAct7C,UAC7CgnD,EAAkBhM,EAAoBn+C,KAAKy+C,cAAct7C,SAAS,SAAUnK,GACxE,IAAIoB,EACJ,OAAmC,QAA1BA,EAAKpB,EAAQ+1C,eAA4B,IAAP30C,OAAgB,EAASA,EAAG6hB,SAAWiuC,EAA4B3wC,UAClH,KAEA4wC,GAAmBA,EAAgBC,aAAc,CACjD,IAAIC,GAAa,EAEjB,GAAIrqD,KAAKy+C,cAAct7C,SAAWnD,KAAKy+C,cAAct7C,QAAQinD,aAAc,CACvE,IAAI17C,EAAmB1O,KAAKy+C,cAAct7C,QAAQinD,aAE9CroD,EADkBooD,EAAgBC,aACZE,EAAevoD,EAAGuoD,aAAcC,EAAYxoD,EAAGwoD,UACrEvoD,EAAK0M,EAAkB87C,EAAqBxoD,EAAGsoD,aAAcG,EAAYzoD,EAAGyoD,UAE5EC,EAAUH,EAAYD,EAAeG,EAAYD,EADvCD,EAAYE,GAEXR,GACXI,GAAa,EACb37C,EAAiBi8C,SAAS,EAAGJ,IAExBG,GACLh8C,EAAiBi8C,SAAS,EAAGJ,EAAYC,EAAqBF,EAEtE,MAGIH,EAAgBC,aAAaQ,eAAeP,EAEpD,CAhCA,CAiCJ,EAMApM,EAAiBx+C,UAAUglD,aAAe,SAAUlpC,GAChD,IAAIrZ,EAAQlC,KACR6qD,EAAc7qD,KAAK1E,MAAMuvD,YACzB5uC,EAAQV,EAAKU,MACjB,OAAO,SAAUtb,GAERuB,EAAM5G,MAAMukD,cAEb39C,EAAMq8C,UAAUp7C,SAAWjB,EAAMq8C,UAAUp7C,QAAQE,QACnDnB,EAAM0T,SAAS,CACX+mC,QAAQ,KAKhBkO,GAAeA,EAAYlqD,EAAI4a,EAAMU,GACrC/Z,EAAMomD,kBAAkBrsC,EAAOtb,EACnC,CACJ,EAOAs9C,EAAiBx+C,UAAU6lD,oBAAsB,WAC7C,IAAI1H,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACxC59C,KAAKopD,oBACL,IAAI0B,EAAgB9qD,KAAKghD,yBACrB8J,EAAgB,GAAKA,EAAgBlN,EAAeliD,OACpDsE,KAAK1E,MAAM4iD,QAAQJ,yBAAyBF,EAAekN,GAAerxC,MAErEzZ,KAAK1E,MAAMme,MAEhBzZ,KAAK1E,MAAM4iD,QAAQJ,yBAAyB99C,KAAK1E,MAAMme,KAE/D,EAIAwkC,EAAiBx+C,UAAU2pD,kBAAoB,WAC3CppD,KAAKwlD,6BAA8B,EACnCxlD,KAAK1E,MAAM4iD,QAAQJ,8BAAyB/+C,GAC5CiB,KAAK4V,SAAS,CACV+qC,yBAAqB5hD,EACrB2hD,+BAAgC,EAChC+E,qCAAsC9M,EAAY+N,SACnD1mD,KAAKulD,yBACZ,EAOAtH,EAAiBx+C,UAAUioD,gBAAkB,SAAU/G,EAAqBD,EAA+BlqC,QACjE,IAAlCkqC,IAA4CA,GAAiC,GAC7E1gD,KAAKwlD,8BAGTxlD,KAAK1E,MAAM4iD,QAAQJ,yBAAyBtnC,GAC5CxW,KAAK4V,SAAS,CACV+qC,oBAAqBzB,GAAkByB,GACvCD,8BAA+BA,EAC/B+E,qCAAsC9M,EAAY+N,UAE1D,EAKAzI,EAAiBx+C,UAAUsoD,yBAA2B,SAAU9rC,GAC5D,IAAI2hC,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACxC,GAAI3hC,GAAS,GAAKA,EAAQ2hC,EAAeliD,OAAQ,CAC7C,IAAIiyC,EAASiQ,EAAe3hC,GAC5Bjc,KAAK0nD,gBAAgBzG,GAAetT,GAAS1xB,EAAOglC,GAAetT,GACvE,MAEI3tC,KAAKopD,mBAEb,EAMAnL,EAAiBx+C,UAAUsmD,qCAAuC,SAAU9pC,EAAOgsC,GAC/E,IAAIrK,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eAEpCqK,IAAoBvP,EAAgBuN,SAAWhqC,GAAS2hC,EAAeliD,OAAS,EAChFugB,GAAS,EAEJgsC,IAAoBvP,EAAgBsN,UAAY/pC,GAAS,IAC9DA,EAAQ2hC,EAAeliD,QAG3B,IAAIqvD,EAAc/qD,KAAKgoD,wBAAwB/rC,EAAOgsC,GAKlDhsC,IAAU8uC,EACN9C,IAAoBvP,EAAgBuN,QACpChqC,EAAQjc,KAAKgoD,yBAAyB,EAAGC,GAEpCA,IAAoBvP,EAAgBsN,WACzC/pC,EAAQjc,KAAKgoD,wBAAwBpK,EAAeliD,OAAQusD,IAIhEhsC,EAAQ8uC,EAERlK,GAAkBjD,EAAgB3hC,IAClCjc,KAAK+nD,yBAAyB9rC,EAEtC,EACAgiC,EAAiBx+C,UAAUqnD,2BAA6B,SAAUv5B,GAC9D,IAAIi7B,EAAwBxoD,KAAK1E,MAAMktD,sBACvC,GAAKA,EAAL,CAGA,IAAI5K,EAAiB59C,KAAK1E,MAAM4iD,QAAQN,eACpCxjD,EAAK4F,KAAK/E,MAAO0lD,EAAsBvmD,EAAGumD,oBAAqBD,EAAgCtmD,EAAGsmD,8BAA+B+E,EAAuCrrD,EAAGqrD,qCAC3KuF,OAAkBjsD,EAClBksD,OAAkBlsD,EAClB0mD,IAAyCl4B,EAAUk4B,sCACnD5E,GAAkBjD,EAAgB6H,GAElCuF,EAAkBvF,EAEb/E,IAAkCnzB,EAAUmzB,+BACjDG,GAAkBjD,EAAgB8C,GAElCsK,EAAkBtK,EAEbC,IAAwBpzB,EAAUozB,sBAEvCsK,EAAkBtK,SAGE5hD,IAApBisD,QAAqDjsD,IAApBksD,GAAiCjrD,KAAKmpD,oBACvEX,OAA0CzpD,IAApBisD,EAAgCpN,EAAeoN,QAAmBjsD,EAAWisD,EAAiBC,GACpHjrD,KAAKmpD,sBAAuCpqD,IAApBisD,QAAqDjsD,IAApBksD,EAtB7D,CAwBJ,EAIAhN,EAAiBx+C,UAAU4lD,6BAA+B,SAAU1I,EAAQuO,GACxElrD,KAAK6mD,sBAAwBqE,EAC7BlrD,KAAK4V,SAAS,CAAE+mC,OAAQA,GAC5B,EACAsB,EAAiBx+C,UAAUmlD,oBAAsB,SAAU3oC,GACnDjc,KAAKumD,2BAGTvmD,KAAK4V,SAAS,CACV6vC,qCAAsCxpC,GAE9C,EACAgiC,EAAiBx+C,UAAUqlD,mBAAqB,SAAU7oC,GACtDjc,KAAKymD,eAAgB,EAChBzmD,KAAKilD,eAAiBjlD,KAAK/E,MAAMwqD,uCAAyCxpC,GAG/Ejc,KAAK4V,SAAS,CACV6vC,qCAAsCxpC,GAE9C,EACAgiC,EAAiBx+C,UAAU8mD,wBAA0B,WACjD,OAAQvmD,KAAKilD,gBAAkBjlD,KAAKymD,aACxC,EAKAxI,EAAiBx+C,UAAU0hD,yBAA2B,SAAUxgD,GAGxDX,KAAK1E,MAAMwI,WACP9D,KAAK/E,MAAM0hD,QACX38C,KAAK4V,SAAS,CAAE+mC,QAAQ,IAIjB,OAAPh8C,GAEAA,EAAGqE,QAAUC,EAAA,EAASkB,KAEtBxF,EAAGqE,QAAUC,EAAA,EAAS4gD,SAErBllD,EAAGqE,MAAQ,KAAgBrE,EAAGqE,MAAQ,OACvCrE,EAAG+C,kBACH/C,EAAGyG,kBAGf,EACA62C,EAAiBx+C,UAAUusB,4BAA8B,WACrD,IAAI9pB,EAAQlC,UAGqBjB,IAA7BiB,KAAKsvB,sBACLtvB,KAAKmW,OAAO3C,aAAaxT,KAAKsvB,qBAC9BtvB,KAAKsvB,yBAAsBvwB,GAE/BiB,KAAK2qB,kBAAmB,EACxB3qB,KAAKsvB,oBAAsBtvB,KAAKmW,OAAO1C,YAAW,WAC9CvR,EAAMyoB,kBAAmB,EACzBzoB,EAAMotB,yBAAsBvwB,CAChC,GAvqDa,IAwqDjB,EAKAk/C,EAAiBx+C,UAAU6gD,sBAAwB,WAC/C,IAAI6K,EAA8BnrD,KAAK1E,MAAM8vD,sBAC7C,OAAOnR,EAAyBj6C,KAAK1E,MAAMJ,MAAOiwD,EACtD,EAKAlN,EAAiBx+C,UAAU8kD,wBAA0B,SAAUhpC,GAC3D,IAAIy9B,EAA4Bh5C,KAAK1E,MAAM+vD,qBACvCC,EAA+B/vC,EAAKlgB,OACxC,OAAO09C,EAAgB/4C,KAAK1E,MAAMJ,MAAO89C,EAA2BsS,EAA8BtrD,KAAKurD,iBAAiBhwC,GAAOA,EAAKkT,OAAQzuB,KAAKypD,qBAAqBluC,EAAKU,OAC/K,EAQAgiC,EAAiBx+C,UAAU2gD,0BAA4B,WAEnD,OADoBpgD,KAAK1E,MAAMwI,UAAwC,OAA5B9D,KAAK1E,MAAMkd,aACiB,OAAhDxY,KAAK1E,MAAM4hD,cAAgB,SAAW,MACjE,EACAe,EAAiBx+C,UAAU8rD,iBAAmB,SAAUhwC,GACpD,OAAOA,GAAQA,EAAKU,QAAUjc,KAAK/E,MAAMylD,6BAC7C,EAIAzC,EAAiBx+C,UAAUq/C,UAAY,WACnC,MAAiC,SAA1B9+C,KAAK/E,MAAM8jD,UACtB,GACmB,QAAW,EAC1B,EAAA1rB,EAAA,GAAa,WAAY,CAAC,QAAS,WAAW,IAC/C4qB,EAEP,CAjnDqC,CAinDnC,aAOF,SAASX,EAAmBnjD,EAASojD,GACjC,IAAKpjD,IAAYojD,EACb,MAAO,GAEX,IAAIG,EAAkB,CAAC,EACvBvjD,EAAQmP,SAAQ,SAAUqkC,EAAQ1xB,GAC1B0xB,EAAOgb,WACPjL,EAAgBzhC,IAAS,EAEjC,IAOA,IANA,IAAI1d,EAAU,SAAU+vC,GACpB,IAAIryB,GAAQ,QAAU9hB,GAAS,SAAUwzC,GAAU,OAAOA,EAAOjyB,MAAQ4yB,CAAa,IAClFryB,GAAS,IACTyhC,EAAgBzhC,IAAS,EAEjC,EACSzgB,EAAK,EAAGgwD,EAAiBjO,EAAc/hD,EAAKgwD,EAAe9vD,OAAQF,IAExE+C,EADkBitD,EAAehwD,IAGrC,OAAO6D,OAAOiU,KAAKoqC,GAAiB9hD,IAAIy4C,QAAQoX,MACpD,CAeA,SAASjO,GAAkBlP,GACvB,YAAoBvvC,IAAhBuvC,EACO,GAGHA,aAAuBhyC,MAAQgyC,EAAc,CAACA,EAC1D,CACA,SAAS4Q,GAAkBvvC,GACvB,OAAOA,GAAS,EACpB,CAOA,SAASkxC,GAAkB1mD,EAAS8hB,GAChC,QAAS9hB,GAAW8hB,GAAS,GAAKA,EAAQ9hB,EAAQuB,MACtD,CAEA,SAAS+rD,GAAe9Z,GACpB,OAAQA,EAAO+V,WAAa,IAA6BC,QACrDhW,EAAO+V,WAAa,IAA6BG,SACjDlW,EAAO+V,WAAa,IAA6B6D,SACzD,CAEA,SAASc,GAAmB1a,GACxB,OAAQA,EAAO+V,WAAa,IAA6BC,QAAUhW,EAAO+V,WAAa,IAA6BG,OACxH,CAMA,SAAS5C,GAAe1lC,GACpB,OAAOA,EAAKmwC,oBAAsBnwC,EAAKT,UAAYS,EAAKT,UAAYS,EAAK9B,IAC7E,CAIA,SAASksC,GAAYhlD,GAEjB,OAAOA,EAAGqE,QAAUC,EAAA,EAASmhB,KAAkB,SAAXzlB,EAAG+a,GAC3C,C,4MG/xDWiwC,GAAyB,E,SAAA,KAAgB,SAAU7pC,GAC1D,IAAI8pC,EAAa,CACb18C,OAAQ,QAER28C,EAAc,CACdjtC,WAAY,UAEZxkB,EAAK0nB,GAAgB,CAAC,EAAGrY,EAAOrP,EAAGqP,KAAM8b,EAAQnrB,EAAGmrB,MAAOumC,GAAmB,QAAO1xD,EAAI,CAAC,OAAQ,UACtG,OAAO,SAAS,QAAS,CAAC,EAAG0xD,GAAmB,CAAEriD,KAAMA,EAAO,CAACmiD,EAAYniD,GAAQmiD,EAAYrmC,MAAOA,EAAQ,CAACsmC,EAAatmC,GAASsmC,GAC1I,ICpCIlyC,GAAgB,EAAAC,EAAA,KAChBmyC,EAAgC,SAAUjqD,GAE1C,SAASiqD,EAAezwD,GACpB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA2FxC,OA1FAkC,EAAM8pD,aAAe,cACrB9pD,EAAM+pD,aAAe,cACrB/pD,EAAMgqD,cAAgB,SAAU7xC,GAC5B,IAAIjgB,EAAK8H,EAAM5G,MAAOwf,EAAY1gB,EAAG0gB,UAAWqxC,EAAwB/xD,EAAG+xD,sBAAuBC,EAAyBhyD,EAAGgyD,uBAC1HC,EAAehyC,EAAKiyC,UAAYjyC,EAAKiyC,SAAS5wD,OAAS,EAC3D,OAAQ,gBAAoBmG,EAAA,EAAW,CAAEjE,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAY7S,MAAOtF,UAAW,IAAmByB,WAAYoX,KAAM,UAAW,aAAclC,GACtJ,gBAAoByxC,EAAA,EAAa,CAAEvvC,KAAMqvC,EAAe,QAAU,OAAQ,aAAcA,EAAeF,OAAwBptD,EAAWqe,aAAclb,EAAM8pD,aAAcpuD,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAYkwC,YAAatvC,MAAO7C,EAAKoyC,aAAcC,cAAeryC,EAAKqyC,cAAchxD,OAAS2e,EAAKqyC,mBAAgB3tD,EAAWmc,aAAchZ,EAAMia,cAAewwC,uBAAwBzqD,EAAM0qD,0BAChYP,GAAiB,gBAAoBE,EAAA,EAAa,CAAEvvC,KAAM,QAAS,aAAcovC,EAAwBxuD,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAYuwC,cAAe3vC,MAAO7C,EAAKiyC,SAAUpxC,aAAchZ,EAAMia,cAAewwC,uBAAwB,MAClP,EACAzqD,EAAMia,cAAgB,SAAUZ,GAC5B,GAAIA,EAAKa,SAGL,OAAOb,EAAKa,SAASb,GAAM,WAAgC,IAG/D,IAAIuxC,EAAWvxC,EAAK9B,MAAQ8B,EAAKvf,KAC7B+wD,GAAqB,SAAS,QAAS,CAAEpgC,oBAAoB,EAAM3P,KAAM,YAAczB,GAAO,CAAElgB,OAAQswD,EAAuBpwC,EAAKyxC,cAAepvD,WAAW,EAAAsN,EAAA,GAAI,yBAA0BqQ,EAAK3d,WAAY6b,KAAO8B,EAAK0xC,cAAsBluD,EAAX+tD,EAAsB7vC,UAAW1B,EAAK2xC,aAAcp0C,QAAS5W,EAAMirD,eAAe5xC,KAC1T,OAAIA,EAAK0xC,gBAA0BluD,IAAb+tD,GAA0BvxC,EAAK4C,kBACzC,gBAAoBJ,EAAA,GAAa,QAAS,CAAEf,KAAM,OAAQgB,QAAS8uC,EAAUM,oBAAoB,GAAS7xC,EAAK4C,kBAAmBjc,EAAMmrD,eAAe9xC,EAAMwxC,IAElK7qD,EAAMmrD,eAAe9xC,EAAMwxC,EACtC,EACA7qD,EAAMmrD,eAAiB,SAAU9xC,EAAMjgB,GACnC,IAAIgyD,EAAWprD,EAAM5G,MAAMiyD,SACvBC,EAAqBjyC,EAAKkyC,mBAG1BC,EAFkBt6B,EAAA,EAUtB,OAPIo6B,IACAE,GAAO,EAAA/jC,EAAA,GAAmB6jC,EAAoBE,IAE9CJ,IACAI,GAAO,EAAA/jC,EAAA,GAAmB2jC,EAAUI,IAGjC,gBAAoBA,GAAM,QAAS,CAAC,EAAGpyD,GAClD,EACA4G,EAAM0qD,wBAA0B,SAAUF,GACtC,IAAItyD,EAAK8H,EAAM5G,MAAMqyD,oBAAqBA,OAA6B,IAAPvzD,EAAgB,CAAC,EAAIA,EACjFwzD,GAAwB,SAAc,QAAc,GAAKD,EAAoB1wC,UAAY0wC,EAAoB1wC,UAAUC,MAAQ,IAAK,GAAOwvC,GAAe,GAC1JmB,GAAgB,SAAS,QAAS,CAAE7wC,KAAM,YAAc2wC,GAAsB,CAAEtyD,QAAQ,QAAS,CAAE+nB,SAAU,CAAExC,SAAU,SAAY+sC,EAAoBtyD,QAASuC,WAAW,EAAAsN,EAAA,GAAI,+BAAgCyiD,EAAoB/vD,WAAYqf,WAAW,SAAS,QAAS,CAAC,EAAG0wC,EAAoB1wC,WAAY,CAAEC,MAAO0wC,IAA0BrkC,eAAe,QAAS,CAAE9M,SAAU,QAAUkxC,EAAoBpkC,iBACvZukC,EAAqB5rD,EAAM5G,MAAM+f,kBAC/B,EAAAsO,EAAA,GAAmBznB,EAAM5G,MAAM+f,iBAAkB+X,EAAA,GACjDA,EAAA,EACN,OAAO,gBAAoB06B,GAAoB,QAAS,CAAC,EAAGD,GAChE,EACA3rD,EAAMkY,cAAgB,SAAUC,GAC5B,IAAIjgB,EAAK8H,EAAM5G,MAAOyyD,EAAgB3zD,EAAG2zD,cAAeC,EAAgB5zD,EAAG4zD,cACvEvB,EAAepyC,EAAKoyC,aAAcC,EAAgBryC,EAAKqyC,cAAeuB,EAAW5zC,EAAK4zC,SACtF3B,EAAWjyC,EAAKiyC,SAEhB7xC,EAAYgyC,EAAasB,EAAgB,EAAItB,EAAa/wD,OAAS,GACvE,QAAkBqD,IAAd0b,EAAyB,CACzBA,EAAUyzC,oBAAqB,EAC/BxB,GAAgB,QAAc,CAACjyC,GAAYiyC,GAAe,GAC1DD,EAAesB,EAAgBtB,EAAal6C,MAAM,GAAKk6C,EAAal6C,MAAM,GAAI,GAC9E,IAAI47C,GAAU,SAAS,QAAS,CAAC,EAAG9zC,GAAO,CAAEoyC,aAAcA,EAAcC,cAAeA,IAMxF,OALAuB,EAAW/rD,EAAMksD,iBAAiB,CAAE3B,aAAcA,EAAc3vC,SAAU4vC,EAAchxD,OAAS,EAAG4wD,SAAUA,IAC1G0B,GACAA,EAAcvzC,GAElB0zC,EAAQF,SAAWA,EACZE,CACX,CAEJ,EACAjsD,EAAMyY,YAAc,SAAUN,GAC1B,IAAIjgB,EAAK8H,EAAM5G,MAAOyyD,EAAgB3zD,EAAG2zD,cAAeM,EAAcj0D,EAAGi0D,YACrEC,EAAuBj0C,EAAKi0C,qBAC5B7B,EAAepyC,EAAKoyC,aAAcC,EAAgBryC,EAAKqyC,cAAeuB,EAAW5zC,EAAK4zC,SACtF3B,EAAWjyC,EAAKiyC,SAChB7xC,EAAYiyC,EAAc,GAE9B,QAAkB3tD,IAAd0b,GAA2BiyC,EAAchxD,OAAS4yD,EAAsB,CACxE7zC,EAAUyzC,oBAAqB,EAC/BxB,EAAgBA,EAAcn6C,MAAM,GAEpCk6C,EAAesB,GAAgB,QAAc,CAACtzC,GAAYgyC,GAAc,IAAQ,SAAc,QAAc,GAAIA,GAAc,GAAO,CAAChyC,IAAY,GAClJ,IAAI0zC,GAAU,SAAS,QAAS,CAAC,EAAG9zC,GAAO,CAAEoyC,aAAcA,EAAcC,cAAeA,IAMxF,OALAuB,EAAW/rD,EAAMksD,iBAAiB,CAAE3B,aAAcA,EAAc3vC,SAAU4vC,EAAchxD,OAAS,EAAG4wD,SAAUA,IAC1G+B,GACAA,EAAY5zC,GAEhB0zC,EAAQF,SAAWA,EACZE,CACX,CAEJ,GACA,EAAA7lD,EAAA,GAAuBpG,GAChBA,CACX,CAsDA,OApJA,QAAU6pD,EAAgBjqD,GA+F1BiqD,EAAetsD,UAAUxB,OAAS,WAC9B,IAAI7D,EAAK4F,KAAK1E,MAAO4hB,EAAQ9iB,EAAG8iB,MAAOwvC,EAAgBtyD,EAAGsyD,cAAeJ,EAAWlyD,EAAGkyD,SAAUjxD,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAOqzD,EAAgBn0D,EAAGm0D,cAAexsD,EAAK3H,EAAGikB,aAAcA,OAAsB,IAAPtc,EAAgB/B,KAAKoa,cAAgBrY,EAAIC,EAAK5H,EAAGkkB,WAAYA,OAAoB,IAAPtc,EAAgBhC,KAAK2a,YAAc3Y,EAAIC,EAAK7H,EAAGo0D,cAAeC,OAAuB,IAAPxsD,EAAgBuc,EAAA,EAAcvc,EAChYysD,EAAiB,CACjBjC,cAAc,QAAc,GAAIvvC,GAAO,GACvCwvC,eAAe,QAAc,GAAIA,GAAe,GAChD4B,sBAAsB,QAAc,GAAI5B,GAAe,GAAMhxD,OAC7D4wD,SAAUA,EACV2B,SAAUjuD,KAAKouD,iBAAiB,CAC5B3B,cAAc,QAAc,GAAIvvC,GAAO,GACvCJ,SAAU4vC,GAAiBA,EAAchxD,OAAS,EAClD4wD,SAAUA,KAGlBtsD,KAAKsc,YAAc3C,EAActe,EAAQ,CAAEH,MAAOA,IAGlD,IAAIkd,GAAc,QAAepY,KAAK1E,MAAO,MAC7C,OAAQ,gBAAoBmzD,GAAe,QAAS,CAAC,EAAGr2C,EAAa,CAAEgF,aAAcpd,KAAKisD,aAAc5xC,KAAMq0C,EAAgBrwC,aAAcA,EAAcC,WAAYA,EAAYG,aAAcze,KAAKksD,cAAeqC,cAAeA,IACvO,EACAxC,EAAetsD,UAAU4D,MAAQ,WAC7B,IAAIsrD,EAAc3uD,KAAKgsD,aAAa7oD,QACpCwrD,GAAeA,EAAYtrD,OAC/B,EACA0oD,EAAetsD,UAAUmvD,UAAY,WACjC5uD,KAAKisD,aAAa9oD,SAAWnD,KAAKisD,aAAa9oD,QAAQyrD,WAC3D,EACA7C,EAAetsD,UAAU0tD,eAAiB,SAAU5xC,GAChD,OAAO,SAAU5a,GAGT4a,EAAKszC,UAGLtzC,EAAKzC,SACLyC,EAAKzC,QAAQnY,EAAI4a,EAEzB,CACJ,EACAwwC,EAAetsD,UAAU2uD,iBAAmB,SAAU/zC,GAClD,IAAIoyC,EAAepyC,EAAKoyC,aAAc3vC,EAAWzC,EAAKyC,SAAUwvC,EAAWjyC,EAAKiyC,SAC5EwC,EAAY,SAAUC,EAAK5rD,GAC3B,IAAI/I,EAAK+I,EAAQ8qD,SACjB,OAAOc,QADsC,IAAP30D,EAAgB+I,EAAQuY,IAAMthB,EAExE,EAIA,MAAO,CAHUqyD,GAAgBA,EAAauC,OAAOF,EAAW,IAC9ChyC,EAAW,WAAa,GAC7BwvC,GAAYA,EAAS0C,OAAOF,EAAW,KACX9b,KAAK,GAClD,EACA+Y,EAAepjD,aAAe,CAC1BuU,MAAO,GACPwvC,cAAe,IAEZX,CACX,CAtJmC,CAsJjC,aC5JSkD,GAAa,EAAAhwC,EAAA,GAAO8sC,GFDR,SAAUzwD,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3C8e,EAAiB9e,EAAM8e,eAC3B,MAAO,CACHvQ,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZ,gBACA,CACIE,QAAS,OACTR,gBAAiBvG,EAAe4rB,eAChCllB,QAAS,gBACTxR,OAZS,IAcbtR,GAEJ4uD,WAAY,CACR,+BACA,CACIlpC,SAAU,IACVvC,QAAS,OACTC,WAAY,YAGpB6rC,aAAc,CACV,iCACA,CACIj9B,WAAY,IACZ7O,QAAS,OACTC,WAAY,YAI5B,QE/B0DjiB,EAAW,CACjE0iB,MAAO,c,0RCGJ,SAASytC,EAAa3zC,GACzB,OAAIA,EAAK4zC,YACK5zC,EAAKgrB,YAAahrB,EAAK8I,SAEP,kBAAnB9I,EAAKgrB,UACLhrB,EAAKgrB,UAEY,kBAAjBhrB,EAAK8I,QACL9I,EAAK8I,QAGT,IACX,CACO,SAAS+qC,EAAW7zC,GAEvB,SAAUA,EAAK2xC,eAAgB3xC,EAAK2B,MACxC,CACO,SAASmyC,EAAe9zC,GAC3B,SAAUA,EAAK+zC,aAAc/zC,EAAKzX,SACtC,CACO,SAASyrD,EAAoBh0C,GAGhC,OAD6B,OADb2zC,EAAa3zC,GAEX,mBAAqB,UAC3C,C,qCC3BIi0C,EAAsB,SAAUl0D,GAChC,IAAIigB,EAAOjgB,EAAMigB,KAAM9d,EAAanC,EAAMmC,WACtCif,EAAYnB,EAAKmB,UACrB,OAAO,gBAAoBzB,EAAA,GAAM,QAAS,CAAC,EAAGyB,EAAW,CAAE9e,UAAWH,EAAWwlB,OACrF,EACIwsC,EAAiB,SAAUn0D,GAC3B,IAAIigB,EAAOjgB,EAAMigB,KACjB,OADkCjgB,EAAMo0D,SAIpCn0C,EAAKoS,aACEpS,EAAKoS,aAAaryB,EAAOk0D,GAE7BA,EAAoBl0D,GALhB,IAMf,EACIq0D,EAAsB,SAAUv1D,GAChC,IAAIw1D,EAAmBx1D,EAAGw1D,iBAAkBr0C,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WACxEoyD,EAAgBX,EAAa3zC,GACjC,OAAIq0C,EAGQ,gBAAoB30C,EAAA,EAAM,CAAEwB,UAA4B,IAAlBlB,EAAK4zC,UAAsBU,EAAgB,YAAc,GAAIjyD,UAAWH,EAAWqyD,cAE7Hh3C,QAHU,SAAUi3C,GAAK,OAAOH,EAAiBr0C,EAAMw0C,EAAI,IAK5D,IACX,EACIC,EAAiB,SAAU51D,GAC3B,IAAImhB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WAEpC,OAAI8d,EAAK9B,MAAQ8B,EAAKvf,KACX,gBAAoB,OAAQ,CAAE4B,UAAWH,EAAW8nB,OAAShK,EAAK9B,MAAQ8B,EAAKvf,MAGnF,IACX,EACIi0D,EAAsB,SAAU71D,GAChC,IAAImhB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WACpC,OAAI8d,EAAKoN,cACE,gBAAoB,OAAQ,CAAE/qB,UAAWH,EAAWkrB,eAAiBpN,EAAKoN,eAE9E,IACX,EACIunC,EAAoB,SAAU91D,GAC9B,IAAImhB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WAAYvC,EAAQd,EAAGc,MAC3D,OAAIk0D,EAAW7zC,GACH,gBAAoBN,EAAA,GAAM,QAAS,CAAEwB,UAAU,QAAOvhB,GAAS,cAAgB,gBAAkBqgB,EAAK40C,iBAAkB,CAAEvyD,UAAWH,EAAW2yD,eAErJ,IACX,EACIC,EAAwC,SAAUvuD,GAElD,SAASuuD,EAAuB/0D,GAC5B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAuBxC,OAtBAkC,EAAMouD,YAAc,WAChB,IAAIl2D,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM+0C,EAAcl2D,EAAGk2D,YAAaC,EAAmBn2D,EAAGm2D,iBAC1F,GAAIA,EAAkB,CAClB,IAAIC,EAAgBD,IAChBnB,EAAW7zC,IAAS+0C,GAAeE,GACnCF,EAAY/0C,EAAMi1C,EAE1B,CACJ,EACAtuD,EAAMuuD,eAAiB,WACnB,IAAIr2D,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMk1C,EAAiBr2D,EAAGq2D,eACtDrB,EAAW7zC,IAASk1C,GACpBA,GAER,EACAvuD,EAAMurB,YAAc,SAAUijC,GAC1B,IAAIjjC,EAAcvrB,EAAM5G,MAAMmyB,YAC1BA,GACAA,OAAY1uB,EAAoB2xD,EAExC,GACA,EAAApoD,EAAA,GAAuBpG,GAChBA,CACX,CAoBA,OA9CA,QAAUmuD,EAAwBvuD,GA2BlCuuD,EAAuB5wD,UAAUxB,OAAS,WACtC,IAAI7D,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WACjDkzD,EAAgBp1C,EAAKiC,iBAAmBxd,KAAK4wD,cACjD,OAAQ,gBAAoB,MAAO,CAAEhzD,UAAW2d,EAAKgR,MAAQ9uB,EAAWozD,gBAAkBpzD,EAAWqzD,aAAeH,EAAc3wD,KAAK1E,MAAO,CAC1Iq0D,oBAAqBA,EACrBF,eAAgBA,EAChBO,eAAgBA,EAChBC,oBAAqBA,EACrBC,kBAAmBA,IAE3B,EACAG,EAAuB5wD,UAAUmxD,cAAgB,SAAUt1D,EAAOy1D,GAC9D,OAAQ,gBAAoB,WAAgB,KACxCA,EAAepB,oBAAoBr0D,GACnCy1D,EAAetB,eAAen0D,GAC9By1D,EAAef,eAAe10D,GAC9By1D,EAAed,oBAAoB30D,GACnCy1D,EAAeb,kBAAkB50D,GACzC,EACO+0D,CACX,CAhD2C,CAgDzC,a,WClGSW,GAAuB,EAAArqC,EAAA,KAElC,SAAUzrB,GACN,OAAO,QAAe,CAClB+1D,QAAS,CACLlwC,QAAS,cACT7R,OAAQ,OACR8R,WAAY,UAEhB2G,QAAS,CACLvf,MAAO,EACP8G,OAAQ,OACRqR,gBAAiBrlB,EAAMikB,QAAQmS,qBAG3C,ICjBW4/B,EAA8B,GACrCnyC,GAAuB,QAAkB,EAAG,MACrCoyC,GAAoB,EAAAxqC,EAAA,KAAgB,SAAUzrB,GACrD,IAAId,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBlF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAAOD,EAAUjkB,EAAMikB,QAC5EiyC,EAAyCp3C,EAAesF,0BACxD+xC,EAAmCr3C,EAAes/B,oBAClDgY,EAA4Ct3C,EAAewF,0BAC3D+xC,EAAiCv3C,EAAe2hC,YAChD6V,EAAiB,CACjBj2C,KAAM,CACF6D,EAAMyB,OACN,CACI9G,MAAOC,EAAeC,SACtBiH,SAAU,WACVoP,UAAW,eAGnB3I,QAAS,CACL5G,QAAS,QACT7R,OAAQ,MACRqR,gBAAiBgxC,EACjBrwC,SAAU,YAEdzX,KAAM,EACF,QAAcvO,GACdkkB,EAAMyB,OACN,CACI9G,MAAOC,EAAeC,SACtBsG,gBAAiB,cACjB0B,OAAQ,OACR7Z,MAAO,OACP8G,OAAQgiD,EACRvwC,WAAYuwC,EACZnwC,QAAS,QACTrJ,OAAQ,UACRgJ,QAAS,gBACTiP,UAAW,SAGnBhN,aAAc,CACV5I,MAAOC,EAAeuzB,iBACtB71B,OAAQ,UACR4c,cAAe,OACflpB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CAEvB2f,MAAO,WACP6iB,QAAS,GAEbxiC,IAER+nB,YAAa,CACT5B,gBAAiB6wC,EACjBr3C,MAAOs3C,EACPjmD,UAAW,CACP,0BAA2B,CACvB2O,MAAOoF,EAAQ+D,cAEnB,iCAAkC,CAC9BnJ,MAAOoF,EAAQW,kBAI3BkF,YAAa,CACTzE,gBAAiBpB,EAAQiS,OAE7BvO,YAAa,CACTzX,UAAW,CACP,mCAAoC,CAChC2O,MAAOoF,EAAQW,kBAI3BwC,YAAa,CACT/B,gBAAiB+wC,EACjBlmD,UAAW,CACP,0BAA2B,CACvB2O,MAAOoF,EAAQ6T,WAEnB,iCAAkC,CAC9BjZ,MAAOoF,EAAQW,kBAI3B0C,aAAc,CACVjC,gBAAiB+wC,EACjBv3C,MAAOC,EAAey3C,gBACtBrmD,WAAYrJ,EAAK,CACT,kCAAmCC,EAAK,CAAC,EACrCA,EAAG,MAAwB,CAEvB+X,MAAO,WAEX/X,IAERD,EAAG,OAAwB,QAAS,CAAC,GAAG,WACxCA,IAER+uD,YAAa,CACTlyC,WAAY,SACZ1P,OAAQ,UACR6R,QAAS,OACTC,WAAY,SACZ0S,SAAU,QAEdg+B,WAAY,CACRhxC,QAAS,gBACTixC,cAAe,OACf53C,MAAO,UACP63C,cAAe,SACfC,YAAa,SACbC,cAAe,OACfC,WAAY,MACZC,WAAY,OACZxxC,eAAgB,OAChB8P,UAAW,cAEf/K,MAAO,CACHzE,OAAQ,QACR8T,cAAe,SACf7T,QAAS,eACTuC,SAAU,IACVzE,aAAc,WACdD,WAAY,SACZ9B,SAAU,UAEd6L,cAAe,CACX5O,MAAO7e,EAAMikB,QAAQO,iBACrB2tB,YAAa,OACb1d,UAAW,SAEf1M,KAAM,CACFlC,QAAS,eACT4S,UAAW,MACX4K,UAAW2yB,EACXtwC,SAAU,KAAcC,OACxBzY,MAAO,KAAcyY,OACrBC,OAAQ,QACR8T,cAAe,SACfhF,WAAY,IACZxkB,WAAYnJ,EAAK,CAAC,EACdA,EAAG8c,GAAwB,CACvB6B,SAAU,KAAcqxC,MACxB7pD,MAAO,KAAc6pD,OAEzBhwD,IAERiwD,UAAW,CACPn4C,MAAOC,EAAeoJ,UAE1BD,aAAc,CACVpJ,MAAOC,EAAeuzB,kBAE1BuiB,cAAe,CACX/1C,MAAOC,EAAeogC,aAE1BgW,YAAa,CACTlhD,OAAQgiD,EACRvwC,WAAYuwC,EACZn3C,MAAOoF,EAAQO,iBACfiQ,UAAW,SACX5O,QAAS,eACT6T,cAAe,SACfhF,WAAY,IACZhP,SAAU,KAAcS,MACxBjW,WAAY8T,EAAK,CACT,SAAU,CACNnF,MAAOoF,EAAQW,gBAEnB,UAAW,CACP/F,MAAOoF,EAAQW,iBAGvBZ,EAAGH,GAAwB,CACvB6B,SAAU,KAAcC,QAE5B3B,IAERwI,yBAA0B,EACtB,QAAcxsB,GACd,CACI6lB,QAAS,OACT7R,OAAQgiD,EACR1gC,SAAU,SACVxN,eAAgB,SAChBhC,WAAY,gBAIxB,OAAO,QAAgBwwC,EAC3B,I,WC9LIW,EAAiC,OACjC,GAAuB,QAAkB,EAAG,MACrCC,GAA0C,EAAAzrC,EAAA,KAErD,SAAUzrB,GACN,IAAId,EACJ,OAAO,QAAe42D,EAAqB91D,GAAQ,CAE/C+1D,QAAS,CACL/vC,SAAU,WACVzb,MAAO,GACP2F,WAAYhR,EAAK,CAAC,EACdA,EAAG,GAAwB,CACvBqL,MAAO,IAEXrL,IAERutB,QAAS,CACLzY,OAAQ,GACR9G,MAAO,IAGnB,IACIsW,EAAmB,CACnBnD,KAAM,yBACNoM,QAAS,4BACTle,KAAM,yBACN88B,UAAW,aACX/hB,WAAY,cACZ8qC,WAAY,cACZwB,YAAa,gCACbD,gBAAiB,gCACjB5tC,KAAM,yBACNivC,UAAW,8BACXpC,cAAe,kCACfM,YAAa,gCACb7qC,MAAO,6BACPoD,cAAe,kCACf0pC,UAAW,8BACXrsC,iBAAkB,sCAUXssC,GAAoB,EAAA3rC,EAAA,KAAgB,SAAUzrB,EAAO4I,EAAUwgB,EAAUD,EAASkuC,EAAcC,EAAWC,EAAeC,EAAkBxuC,EAAeyuC,EAAkB/rC,EAAiBhpB,GACrM,IAAIxD,EAAI2H,EAAIC,EAAIC,EACZ5G,EAAS81D,EAAkBj2D,GAC3BuC,GAAa,QAAoBihB,EAAkBxjB,GACvD,OAAO,QAAe,CAClBqgB,KAAM,CAAC9d,EAAW8d,KAAMlgB,EAAOkgB,KAAMk3C,GACrC9qC,QAAS,CAAClqB,EAAWkqB,QAAStsB,EAAOssB,QAAS+qC,GAC9CjpD,KAAM,CACFhM,EAAWgM,KACXpO,EAAOoO,KACP4a,GAAW,CAAC5mB,EAAW8oC,UAAWlrC,EAAOwnB,aACzC0vC,GAAgBl3D,EAAOq2D,WACvBptC,GAAY,CAAC7mB,EAAW+mB,WAAYnpB,EAAOmnB,cAC3C1e,GAAY,CAACrG,EAAW6xD,WAAYj0D,EAAOsnB,eAC1C7e,IACIwgB,GAAY,CACb,CACIlZ,WAAYhR,EAAK,CACT,SAAUiB,EAAO8mB,YACjB,UAAW9mB,EAAOinB,aAEtBloB,EAAG,IAAIoY,OAAO,KAAyB,eAAeA,OAAO,KAAyB,mBAAqBnX,EAAO2pB,YAClH5qB,EAAG,IAAIoY,OAAO,KAAyB,aAAe,CAAEmzB,WAAY,YACpEvrC,KAGZwD,GAEJg1D,aAAc,CACVv3D,EAAOoO,KACP,CACIrB,MAAO,eAAeoK,OAAO2/C,EAAgC,MAEjE9tC,GAAW,CAAC,aAAchpB,EAAOwnB,cAChC/e,GAAY8iB,IAAoB,CAAC,cAAevrB,EAAOsnB,gBACtD7e,GAAY8iB,KACTvC,GAAW,CACZ,CACIjZ,WAAYrJ,EAAK,CACT,SAAU1G,EAAO8mB,aAGrBpgB,EAAG,aAAayQ,OAAO/U,EAAW40D,YAAch3D,EAAO8mB,YACvDpgB,EAAG,WAAa1G,EAAOinB,YACvBvgB,EAAG,IAAIyQ,OAAO,KAAyB,eAAeA,OAAO,KAAyB,mBAAqBnX,EAAO2pB,YAClHjjB,EAAG,IAAIyQ,OAAO,KAAyB,aAAe,CAAEmzB,WAAY,YACpE5jC,MAIhBswD,UAAW,CACP50D,EAAW40D,UACXh3D,EAAOoO,KACP,CACIoqB,UAAW,IACXnT,QAAS,QACToS,SAAUq/B,GAEd7tC,GAAY,CAAC,cAAejpB,EAAOmnB,cACnC1e,GAAY,CAAC,cAAezI,EAAOsnB,eAClC7e,IACIwgB,GAAY,CACb,CACIlZ,WAAYpJ,EAAK,CACT,SAAU3G,EAAO8mB,YACjB,UAAW9mB,EAAOinB,aAEtBtgB,EAAG,IAAIwQ,OAAO,KAAyB,eAAeA,OAAO,KAAyB,mBAAqBnX,EAAO2pB,YAClHhjB,EAAG,IAAIwQ,OAAO,KAAyB,aAAe,CAAEmzB,WAAY,YACpE3jC,MAIhB0vD,WAAYr2D,EAAOq2D,WACnBZ,YAAa,CAACrzD,EAAWqzD,YAAaz1D,EAAOy1D,aAC7CD,gBAAiB,CACbpzD,EAAWozD,gBACXx1D,EAAOy1D,YACP,CACI9tC,eAAgB,WAGxBC,KAAM,CACFxlB,EAAWwlB,KACXuvC,GAAan3D,EAAO62D,UACpB72D,EAAO4nB,KACPiB,EACApgB,GAAY,CAACrG,EAAW6xD,WAAYj0D,EAAO8nB,eAE/C+uC,UAAW72D,EAAO62D,UAClBpC,cAAe,CAACryD,EAAWqyD,cAAe0C,GAAan3D,EAAOy0D,cAAez0D,EAAO4nB,KAAMiB,GAC1FksC,YAAa,CACT3yD,EAAW2yD,YACX/0D,EAAO+0D,YACPuC,EACAruC,GAAY,CAAEvK,MAAO7e,EAAMikB,QAAQW,gBACnChc,GAAY,CAACzI,EAAO8nB,eAExBoC,MAAO,CAAC9nB,EAAW8nB,MAAOlqB,EAAOkqB,OACjCoD,cAAe,CAAClrB,EAAWkrB,cAAettB,EAAOstB,eACjDkqC,eAAgB,CACZx3D,EAAOqsB,0BACN5jB,IACIugB,GAAW,CACZ,CACIjZ,WAAYnJ,EAAK,CAAC,EACdA,EAAG,IAAIuQ,OAAO,KAAyB,eAAeA,OAAO,KAAyB,mBAAqBnX,EAAO2pB,YAClH/iB,MAIhB+jB,iBAAkB,CACdvoB,EAAWuoB,iBACX3qB,EAAO2qB,iBACP,KACA,CAAEwY,WAAY,YAG1B,IAQWs0B,EAAgB,SAAUx3D,GACjC,IAAIJ,EAAQI,EAAMJ,MAAO4I,EAAWxI,EAAMwI,SAAUwgB,EAAWhpB,EAAMgpB,SAAUD,EAAU/oB,EAAM+oB,QAASkuC,EAAej3D,EAAMi3D,aAAcC,EAAYl3D,EAAMk3D,UAAWC,EAAgBn3D,EAAMm3D,cAAeC,EAAmBp3D,EAAMo3D,iBAAkBxuC,EAAgB5oB,EAAM4oB,cAAeyuC,EAAmBr3D,EAAMq3D,iBAAkB/rC,EAAkBtrB,EAAMsrB,gBAAiBhpB,EAAYtC,EAAMsC,UAEnY,OAAO00D,EAAkBp3D,EAAO4I,EAAUwgB,EAAUD,EAASkuC,EAAcC,EAAWC,EAAeC,EAAkBxuC,EAAeyuC,EAAkB/rC,EAAiBhpB,EAC7K,ECjLWm1D,GAAqB,EAAA9zC,EAAA,GAAOoxC,EAAwByC,OAAe/zD,EAAW,CAAE0iB,MAAO,uB,qBCH9FuxC,GAA2C,SAAUlxD,GAErD,SAASkxD,EAA0B13D,GAC/B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAmCxC,OAlCAkC,EAAM+wD,kBAAoB,SAAUtyD,GAChC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM23C,EAAmB94D,EAAG84D,iBACxDA,GACAA,EAAiB33C,EAAM5a,EAAIA,EAAGwyD,cAEtC,EACAjxD,EAAMuiD,aAAe,SAAU9jD,GAC3B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM63C,EAAkBh5D,EAAGg5D,gBACvDA,GACAA,EAAgB73C,EAAM5a,EAAIA,EAAGwyD,cAErC,EACAjxD,EAAMmxD,kBAAoB,SAAU1yD,GAChC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM+3C,EAAmBl5D,EAAGk5D,iBACxDA,GACAA,EAAiB/3C,EAAM5a,EAE/B,EACAuB,EAAMqxD,eAAiB,SAAU5yD,GAC7B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMi4C,EAAgBp5D,EAAGo5D,cACrDA,GACAA,EAAcj4C,EAAM5a,EAE5B,EACAuB,EAAMuxD,iBAAmB,SAAU9yD,GAC/B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMm4C,EAAkBt5D,EAAGs5D,gBACvDA,GACAA,EAAgBn4C,EAAM5a,EAAIA,EAAGwyD,cAErC,EACAjxD,EAAMyxD,kBAAoB,WAE1B,GACA,EAAArrD,EAAA,GAAuBpG,GAChBA,CACX,CAIA,OA1CA,QAAU8wD,EAA2BlxD,GAuCrCkxD,EAA0BvzD,UAAUm0D,sBAAwB,SAAU3W,GAClE,QAAQ,QAAeA,EAAUj9C,KAAK1E,MAC1C,EACO03D,CACX,CA5C8C,CA4C5C,a,YCxCEa,GAAsC,SAAU/xD,GAEhD,SAAS+xD,IACL,IAAI3xD,EAAmB,OAAXJ,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,KAkBhE,OAjBAkC,EAAM4xD,QAAU,cAChB5xD,EAAMimB,mCAAoC,EAAAxB,EAAA,KAAgB,SAAUyB,GAChE,OAAO,SAAS,QAAS,CAAC,EAAGA,GAAc,CAAEhE,SAAS,GAC1D,IACAliB,EAAMyxD,kBAAoB,WACtB,OAAOzxD,EAAM4xD,QAAQ3wD,QAAUjB,EAAM4xD,QAAQ3wD,aAAUpE,CAC3D,EACAmD,EAAMuiD,aAAe,SAAU9jD,GAC3B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMsvC,EAAczwD,EAAGywD,YACnDA,GACAA,EAAYtvC,EAAM5a,EAE1B,EACAuB,EAAM6xD,uBAAyB,SAAU3qC,EAAiBxrB,GAEtD,OAAOwrB,EAAmB,gBAAoB,OAAQ,CAAE7V,GAAIrR,EAAMmnB,mBAAoBzrB,UAAWA,GAAawrB,GAAoB,IACtI,EACOlnB,CACX,CAuCA,OA5DA,QAAU2xD,EAAsB/xD,GAsBhC+xD,EAAqBp0D,UAAUxB,OAAS,WACpC,IAAIiE,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WAAYwe,EAAQ7hB,EAAG6hB,MAAO+3C,EAAwB55D,EAAG45D,sBAAuBC,EAAiB75D,EAAG65D,eAAgBC,EAAgB95D,EAAG85D,cAAexE,EAAWt1D,EAAGs1D,SAAUyE,EAAsB/5D,EAAG+5D,oBAAqBtJ,EAAczwD,EAAGywD,YAAayF,EAAcl2D,EAAGk2D,YAAaG,EAAiBr2D,EAAGq2D,eAAgBhjC,EAAcrzB,EAAGqzB,YAC9X2mC,EAAmBrB,EACnB/yD,KAAK1E,MAAMigB,KAAK84C,uBAChBD,GAAmB,EAAAzqC,EAAA,GAAmB3pB,KAAK1E,MAAMigB,KAAK84C,qBAAsBD,IAE5Ep0D,KAAK1E,MAAM+4D,uBACXD,GAAmB,EAAAzqC,EAAA,GAAmB3pB,KAAK1E,MAAM+4D,qBAAsBD,IAE3E,IAAIE,EAAY/4C,EAAKg5C,IACjBh5C,EAAK7hB,QAAwC,WAA9B6hB,EAAK7hB,OAAO2V,gBAC3BilD,EAAYA,GAAwB,gCAExC,IAAIE,EAAiBpF,EAAW7zC,GAC5BnD,GAAc,QAAemD,EAAM,MACnCzX,EAAWurD,EAAe9zC,GAC1BM,EAAYN,EAAKM,UAAWuN,EAAkB7N,EAAK6N,gBACnDhB,EAAc7M,EAAK6M,YACnBA,GAAeosC,IACfpsC,EAAcpoB,KAAKmoB,kCAAkCC,IAIrDgB,IACAppB,KAAKqpB,oBAAqB,EAAA7gB,EAAA,MAE9B,IAAIisD,GAAqB,OAAyBl5C,EAAK1Q,gBAAiBue,EAAkBppB,KAAKqpB,wBAAqBtqB,EAAWqZ,EAAY,qBACvIs8C,EAA2B,CAC3B,mBAAoBD,GAExB,OAAQ,gBAAoB,MAAO,KAC/B,gBAAoBpmC,GAAA,EAAY,CAAEjG,YAAa7M,EAAK6M,YAAavd,gBAAiB4pD,EAAoB3wD,SAAUA,IAAY,SAAUkqB,GAAoB,OAAQ,gBAAoB,KAAK,QAAS,CAAC,EAAG0mC,EAA0Bt8C,EAAa4V,EAAkB,CAAE1iB,IAAKpJ,EAAM4xD,QAASr4C,KAAMF,EAAKE,KAAM/hB,OAAQ6hB,EAAK7hB,OAAQ66D,IAAKD,EAAW12D,UAAWH,EAAWgM,KAAMuT,KAAM,WAAY,gBAAiBw3C,QAAkBz1D,EAAW,gBAAiBy1D,EAAiBj5C,EAAKG,MAAQy4C,OAAsBp1D,EAAW,gBAAiBi1D,EAAwB,EAAG,eAAgBC,EAAgB,gBAAiB5E,EAAe9zC,GAEjmBlD,MAAOkD,EAAKlD,MAAOS,QAAS5W,EAAMuiD,aAAcE,aAAcziD,EAAM+wD,kBAAmBlO,aAAc7iD,EAAMmxD,kBAAmBxO,YAAa3iD,EAAMuxD,iBAAkBlvD,UAAWiwD,EAAiBtyD,EAAMqxD,oBAAiBx0D,IACtN,gBAAoBq1D,GAAkB,QAAS,CAAEh3C,aAAc7B,EAAK6B,aAAc7B,KAAMA,EAAM9d,WAAYA,EAAYwe,MAAOA,EAAO2zC,iBAAkBsE,GAAiBrJ,EAAcA,OAAc9rD,EAAW2wD,SAAUA,EAAUY,YAAaA,EAAaG,eAAgBA,EAAgBhjC,YAAaA,EAAa8iC,iBAAkBruD,EAAMyxD,mBAAqB93C,IACnW3Z,EAAM6xD,uBAAuB3qC,EAAiB3rB,EAAWuoB,kBAAqB,IAC1F,EACO6tC,CACX,CA9DyC,CA8DvCb,I,mCC3DE2B,GAA2C,SAAU7yD,GAErD,SAAS6yD,EAA0Br5D,GAC/B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAgFxC,OA/EAkC,EAAMimB,mCAAoC,EAAAxB,EAAA,KAAgB,SAAUyB,GAChE,OAAO,SAAS,QAAS,CAAC,EAAGA,GAAc,CAAEhE,SAAS,GAC1D,IACAliB,EAAMqxD,eAAiB,SAAU5yD,GAC7B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMi4C,EAAgBp5D,EAAGo5D,cAErD7yD,EAAGqE,QAAUC,EAAA,EAASiC,OACtBhF,EAAM0yD,kBAAkBj0D,GACxBA,EAAGyG,iBACHzG,EAAG+C,mBAEE8vD,GACLA,EAAcj4C,EAAM5a,EAE5B,EACAuB,EAAMyxD,kBAAoB,WACtB,OAAOzxD,EAAM2yD,YACjB,EACA3yD,EAAM6xD,uBAAyB,SAAU3qC,EAAiBxrB,GAEtD,OAAOwrB,EAAmB,gBAAoB,OAAQ,CAAE7V,GAAIrR,EAAMmnB,mBAAoBzrB,UAAWA,GAAawrB,GAAoB,IACtI,EACAlnB,EAAM4yD,yBAA2B,SAAUn0D,GACvC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM23C,EAAmB94D,EAAG84D,iBACxDA,GACAA,GAAiB,SAAS,QAAS,CAAC,EAAG33C,GAAO,CAAE2xC,kBAAcnuD,EAAWme,WAAOne,IAAc4B,EAAIuB,EAAM2yD,aAEhH,EACA3yD,EAAM6yD,sBAAwB,SAAUp0D,GACpC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM23C,EAAmB94D,EAAG84D,iBACxDA,GACAA,EAAiB33C,EAAM5a,EAAIuB,EAAM2yD,aAEzC,EACA3yD,EAAM8yD,wBAA0B,SAAUr0D,GACtC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMm4C,EAAkBt5D,EAAGs5D,gBACvDA,GACAA,GAAgB,SAAS,QAAS,CAAC,EAAGn4C,GAAO,CAAE2xC,kBAAcnuD,EAAWme,WAAOne,IAAc4B,EAAIuB,EAAM2yD,aAE/G,EACA3yD,EAAM+yD,qBAAuB,SAAUt0D,GACnC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAMm4C,EAAkBt5D,EAAGs5D,gBACvDA,GACAA,EAAgBn4C,EAAM5a,EAAIuB,EAAM2yD,aAExC,EACA3yD,EAAMgzD,iBAAmB,SAAUv0D,GAC/B,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM63C,EAAkBh5D,EAAGg5D,gBACvDA,GACAA,EAAgB73C,EAAM5a,EAAKuB,EAAM2yD,aAAe3yD,EAAM2yD,aAAel0D,EAAGwyD,cAEhF,EACAjxD,EAAM0yD,kBAAoB,SAAUj0D,GAChC,IAAIvG,EAAK8H,EAAM5G,MAAOigB,EAAOnhB,EAAGmhB,KAAM45C,EAAmB/6D,EAAG+6D,iBAAkBtK,EAAczwD,EAAGywD,YAC/F,IAAItvC,EAAKzX,WAAYyX,EAAK+zC,WAG1B,OAAIptD,EAAMyoB,mBAAqBpP,EAAK4zC,UAAYtE,EACrCA,EAAYtvC,EAAM5a,QAEzBw0D,GACAA,EAAiB55C,EAAM5a,GAE/B,EACAuB,EAAM4pB,cAAgB,SAAUnrB,GACxBuB,EAAM2yD,gBAAkB,kBAAmB3yD,EAAM2yD,eACjD3yD,EAAM8pB,4BAA4BrrB,EAE1C,EACAuB,EAAMkrB,eAAiB,SAAUzsB,GACN,UAAnBA,EAAGsrB,cACH/pB,EAAM8pB,4BAA4BrrB,GAClCA,EAAGyG,iBACHzG,EAAG0uB,2BAEX,EACAntB,EAAMiU,OAAS,IAAI+V,GAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,GAAA,EAAWlqB,GAC/BA,EAAMkzD,iBAAkB,EAAA5sD,EAAA,KACjBtG,CACX,CAmHA,OAtMA,QAAUyyD,EAA2B7yD,GAoFrC6yD,EAA0Bl1D,UAAU+J,kBAAoB,WAChDxJ,KAAK60D,cAAgB,kBAAmB70D,KAAK60D,cAC7C70D,KAAKmsB,QAAQnZ,GAAGhT,KAAK60D,aAAc,cAAe70D,KAAKotB,gBAAgB,EAE/E,EACAunC,EAA0Bl1D,UAAU6K,qBAAuB,WACvDtK,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,SACjB,EACAokD,EAA0Bl1D,UAAUxB,OAAS,WACzC,IACI7D,EADA8H,EAAQlC,KAER+B,EAAK/B,KAAK1E,MAAOigB,EAAOxZ,EAAGwZ,KAAM9d,EAAasE,EAAGtE,WAAYwe,EAAQla,EAAGka,MAAO+3C,EAAwBjyD,EAAGiyD,sBAAuBC,EAAiBlyD,EAAGkyD,eAAgBC,EAAgBnyD,EAAGmyD,cAAexE,EAAW3tD,EAAG2tD,SAAU4D,EAAmBvxD,EAAGuxD,iBAAkBa,EAAsBpyD,EAAGoyD,oBAChSK,EAAiBpF,EAAW7zC,GAC5B6M,EAAc7M,EAAK6M,YACnBA,IACAA,EAAcpoB,KAAKmoB,kCAAkCC,IAIzD,IAAIgB,EAAkB7N,EAAK6N,gBACvBA,IACAppB,KAAKqpB,oBAAqB,EAAA7gB,EAAA,MAE9B,IAAI++B,EAA4C,QAA7BntC,EAAK80D,EAAa3zC,UAA0B,IAAPnhB,EAAgBA,OAAK2E,EAC7E,OAAQ,gBAAoBsvB,GAAA,EAAY,CAAEjG,YAAaA,EAAatkB,SAAUurD,EAAe9zC,KAAS,SAAUyS,GAAoB,OAAQ,gBAAoB,MAAO,CAAE,kBAAmBA,EAAiB,mBAAoB1iB,IAAK,SAAU+pD,GAAe,OAAQnzD,EAAM2yD,aAAeQ,CAAc,EAAGr4C,KAAMuyC,EAAoBh0C,GAAO,aAAcA,EAAKT,UAAWld,UAAWH,EAAWo1D,eAAgB,gBAAiBxD,EAAe9zC,GAAO,gBAAiBi5C,EAAiBj5C,EAAKG,MAAQy4C,OAAsBp1D,EAAW,iBAAiB,EAAM,oBAAoB,OAAyBwc,EAAK1Q,gBAAiBue,EAAkBlnB,EAAMmnB,wBAAqBtqB,EAAWivB,EAAiB,qBAAsB,eAAgBuZ,EAAa,gBAAiBysB,EAAwB,EAAG,eAAgBC,EAAgBtP,aAAcziD,EAAM4yD,yBAA0B/P,aAAcuO,EAAmBA,EAAiB13C,KAAK1Z,GAAO,SAAS,QAAS,CAAC,EAAGqZ,GAAO,CAAE2xC,aAAc,KAAMhwC,MAAO,aAAWne,EAAW8lD,YAAa3iD,EAAM8yD,wBAAyBzwD,UAAWrC,EAAMqxD,eAAgBz6C,QAAS5W,EAAM0yD,kBAAmB9lC,aAAc5sB,EAAM4pB,cAAe7e,SAAU,EAAG,qBAAqB,EAAM,uBAAwBsO,EAAK,yBAC1rCrZ,EAAMozD,0BAA0B/5C,EAAM9d,EAAYwe,EAAOi4C,EAAexE,GACxExtD,EAAMqzD,oBAAoBh6C,GAC1BrZ,EAAMszD,uBAAuBj6C,EAAM9d,EAAYwe,EAAO+R,GACtD9rB,EAAM6xD,uBAAuB3qC,EAAiB3rB,EAAWuoB,kBAAqB,GACtF,EACA2uC,EAA0Bl1D,UAAU61D,0BAA4B,SAAU/5C,EAE1E9d,EAAYwe,EAAOi4C,EAAexE,GAC9B,IAAIt1D,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGi6D,qBAAsBD,OAA0B,IAAPryD,EAAgBgxD,EAAqBhxD,EAAI8oD,EAAczwD,EAAGywD,YAC5HhvC,EAAY,CACZH,IAAKH,EAAKG,IACV5X,SAAUurD,EAAe9zC,IAASA,EAAKqL,gBAEvC5qB,KAAMuf,EAAKvf,KACXyd,KAAM8B,EAAK9B,MAAQ8B,EAAKvf,KACxB2sB,cAAepN,EAAKoN,cAEpB/qB,UAAWH,EAAWm1D,aACtBzD,SAAU5zC,EAAK4zC,SACf5oB,UAAWhrB,EAAKgrB,UAChBliB,QAAS9I,EAAK8I,QACd3H,UAAWnB,EAAKmB,UAChBnJ,GAAIvT,KAAKo1D,gBACTznC,aAAcpS,EAAKoS,aACnBtT,KAAMkB,EAAKlB,KACX,qBAAqB,GAErBo7C,EAAqBl6C,EAAKM,UAC9B,OAAQ,gBAAoB,UAAU,QAAS,CAAC,GAAG,QAAeA,EAAW,OACzE,gBAAoBu4C,GAAkB,QAAS,CAAE,qBAAqB,EAAO74C,KAAMM,EAAWpe,WAAYA,EAAYwe,MAAOA,EAAO2zC,iBAAkBsE,GAAiBrJ,EAAcA,OAAc9rD,EAAW2wD,SAAUA,GAAY+F,IAC5O,EACAd,EAA0Bl1D,UAAU81D,oBAAsB,SAAUh6C,GAChE,IAAIy1C,EAAuBz1C,EAAK62C,yCAA2CA,EAC3E,OAAO,gBAAoBsD,GAAA,EAAiB,CAAE/7C,cAAeq3C,GACjE,EACA2D,EAA0Bl1D,UAAU+1D,uBAAyB,SAAUj6C,EAAM9d,EAC7Ewe,EAAO+R,GACH,IAAI5zB,EAAK4F,KAAK1E,MAAOg4D,EAAmBl5D,EAAGk5D,iBAAkBqC,EAAkBv7D,EAAGu7D,gBAAiBrF,EAAcl2D,EAAGk2D,YAAaG,EAAiBr2D,EAAGq2D,eAAgBhjC,EAAcrzB,EAAGqzB,YAClL2mC,EAAmBrB,EACnB/yD,KAAK1E,MAAMigB,KAAK84C,uBAChBD,GAAmB,EAAAzqC,EAAA,GAAmB3pB,KAAK1E,MAAMigB,KAAK84C,qBAAsBD,IAE5Ep0D,KAAK1E,MAAM+4D,uBACXD,GAAmB,EAAAzqC,EAAA,GAAmB3pB,KAAK1E,MAAM+4D,qBAAsBD,IAE3E,IAAIv4C,EAAY,CACZ/C,QAAS9Y,KAAKk1D,iBACdpxD,SAAUurD,EAAe9zC,GACzB3d,UAAWH,EAAW40D,UACtBnF,aAAc3xC,EAAK2xC,aACnBiD,iBAAkB50C,EAAK40C,iBACvB5jC,OAAO,EACP7Q,IAAKH,EAAKG,IACV,kBAAmB1b,KAAKo1D,iBAExB9sC,GAAc,SAAS,QAAS,CAAC,GAAG,QAAezM,EAAW,OAAoB,CAClF8oC,aAAc3kD,KAAK+0D,sBACnBhQ,aAAcuO,EAAmBA,EAAiB13C,KAAK5b,KAAMub,QAAQxc,EACrEqsB,YAAa,SAAUzqB,GACnB,OAAOg1D,EAAkBA,EAAgBp6C,EAAM5a,QAAM5B,CACzD,EACA8lD,YAAa7kD,KAAKi1D,qBAClB,qBAAqB,EACrB,0BAA2BjnC,EAAiB,2BAC5C,iBAAiB,IAEjBynC,EAAqBl6C,EAAKM,UAC9B,OAAQ,gBAAoB,UAAU,QAAS,CAAC,EAAGyM,GAC/C,gBAAoB8rC,GAAkB,QAAS,CAAEh3C,aAAc7B,EAAK6B,aAAc7B,KAAMM,EAAWpe,WAAYA,EAAYwe,MAAOA,EAAOyzC,UAAU,EAAOY,YAAaA,EAAaG,eAAgBA,EAAgBhjC,YAAaA,EAAa8iC,iBAAkBvwD,KAAK2zD,mBAAqB8B,IAClS,EACAd,EAA0Bl1D,UAAUusB,4BAA8B,SAAUrrB,GACxE,IAAIuB,EAAQlC,KACR41D,EAAQ51D,KAAK1E,MAAMs6D,MACnBA,GACAA,EAAMj1D,GAINX,KAAKsvB,sBACLtvB,KAAKmW,OAAO3C,aAAaxT,KAAKsvB,qBAC9BtvB,KAAKsvB,yBAAsBvwB,GAE/BiB,KAAK2qB,kBAAmB,EACxB3qB,KAAKsvB,oBAAsBtvB,KAAKmW,OAAO1C,YAAW,WAC9CvR,EAAMyoB,kBAAmB,EACzBzoB,EAAMotB,yBAAsBvwB,CAChC,GAtMa,IAuMjB,EACO41D,CACX,CAxM8C,CAwM5C3B,IC3ME6C,GAAsC,SAAU/zD,GAEhD,SAAS+zD,IACL,IAAI3zD,EAAmB,OAAXJ,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,KAYhE,OAXAkC,EAAM4zD,KAAO,cACb5zD,EAAMimB,mCAAoC,EAAAxB,EAAA,KAAgB,SAAUyB,GAChE,OAAO,SAAS,QAAS,CAAC,EAAGA,GAAc,CAAEhE,SAAS,GAC1D,IACAliB,EAAM6xD,uBAAyB,SAAU3qC,EAAiBxrB,GAEtD,OAAOwrB,EAAmB,gBAAoB,OAAQ,CAAE7V,GAAIrR,EAAMmnB,mBAAoBzrB,UAAWA,GAAawrB,GAAoB,IACtI,EACAlnB,EAAMyxD,kBAAoB,WACtB,OAAOzxD,EAAM4zD,KAAK3yD,QAAUjB,EAAM4zD,KAAK3yD,aAAUpE,CACrD,EACOmD,CACX,CA2DA,OA1EA,QAAU2zD,EAAsB/zD,GAgBhC+zD,EAAqBp2D,UAAUxB,OAAS,WACpC,IAAIiE,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAM9d,EAAarD,EAAGqD,WAAYwe,EAAQ7hB,EAAG6hB,MAAO+3C,EAAwB55D,EAAG45D,sBAAuBC,EAAiB75D,EAAG65D,eAAgBC,EAAgB95D,EAAG85D,cAAexE,EAAWt1D,EAAGs1D,SAAU2E,EAAuBj6D,EAAGi6D,qBAAsBF,EAAsB/5D,EAAG+5D,oBAAqBwB,EAAkBv7D,EAAGu7D,gBAAiB9K,EAAczwD,EAAGywD,YAAayF,EAAcl2D,EAAGk2D,YAAaG,EAAiBr2D,EAAGq2D,eAAgBhjC,EAAcrzB,EAAGqzB,YACpd2mC,EAAmBrB,EACnBx3C,EAAK84C,uBACLD,GAAmB,EAAAzqC,EAAA,GAAmBpO,EAAK84C,qBAAsBD,IAEjEC,IACAD,GAAmB,EAAAzqC,EAAA,GAAmB0qC,EAAsBD,IAEhE,IAAI7tB,EAAY2oB,EAAa3zC,GACzB4zC,EAAyB,OAAd5oB,EACXwvB,EAAcxG,EAAoBh0C,GAClCi5C,EAAiBpF,EAAW7zC,GAC5BM,EAAYN,EAAKM,UAAWf,EAAYS,EAAKT,UAAWsO,EAAkB7N,EAAK6N,gBAC/E4sC,GAAyB,QAAez6C,EAAM,aAE3Cy6C,EAAuBlyD,SAC9B,IAAImyD,EAAW16C,EAAKyB,MAAQ+4C,EAGxB3sC,IACAppB,KAAKqpB,oBAAqB,EAAA7gB,EAAA,MAE9B,IAAIisD,GAAqB,OAAyBl5C,EAAK1Q,gBAAiBue,EAAkBppB,KAAKqpB,wBAAqBtqB,EAAWi3D,EAAuB,qBAClJE,EAAuB,CACvBt4D,UAAWH,EAAWgM,KACtBqP,QAAS9Y,KAAKykD,aACdlgD,UAAWiwD,EAAiBx0D,KAAKuzD,oBAAiBx0D,EAClD4lD,aAAc3kD,KAAKizD,kBACnBlO,aAAc/kD,KAAKqzD,kBACnBjoC,YAAa,SAAUzqB,GACnB,OAAOg1D,EAAkBA,EAAgBp6C,EAAM5a,QAAM5B,CACzD,EACA8lD,YAAa7kD,KAAKyzD,iBAClBh4C,KAAMF,EAAKE,KACX6K,MAAO/K,EAAK+K,MACZ,aAAcxL,EACd,mBAAoB25C,EACpB,gBAAiBD,QAAkBz1D,EACnC,gBAAiBy1D,EAAiBj5C,EAAKG,MAAQy4C,OAAsBp1D,EACrE,gBAAiBi1D,EAAwB,EACzC,eAAgBC,EAChB,gBAAiB5E,EAAe9zC,GAChC,eAA8B,qBAAb06C,GAAgD,kBAAbA,IAAiC9G,OAAyBpwD,IAAZwnC,EAClG,gBAA8B,aAAb0vB,GAA2B9G,IAAa5oB,OAAYxnC,EACrEie,KAAMi5C,EAEN59C,MAAOkD,EAAKlD,OAEZ+P,EAAc7M,EAAK6M,YAIvB,OAHIA,GAAeosC,IACfpsC,EAAcpoB,KAAKmoB,kCAAkCC,IAEjD,gBAAoBiG,GAAA,EAAY,CAAEjG,YAAaA,EAAavd,gBAAiB4pD,EAAoB3wD,SAAUurD,EAAe9zC,KAAS,SAAUyS,GAAoB,OAAQ,gBAAoB,UAAU,QAAS,CAAE1iB,IAAKpJ,EAAM4zD,MAAQE,EAAwBE,EAAsBloC,GACvR,gBAAoBomC,GAAkB,QAAS,CAAEh3C,aAAc7B,EAAK6B,aAAc7B,KAAMA,EAAM9d,WAAYA,EAAYwe,MAAOA,EAAO2zC,iBAAkBsE,GAAiBrJ,EAAcA,OAAc9rD,EAAW2wD,SAAUA,EAAUY,YAAaA,EAAaG,eAAgBA,EAAgBhjC,YAAaA,EAAa8iC,iBAAkBruD,EAAMyxD,mBAAqB93C,IACnW3Z,EAAM6xD,uBAAuB3qC,EAAiB3rB,EAAWuoB,kBAAqB,GACtF,EACO6vC,CACX,CA5EyC,CA4EvC7C,I,kFClFSmD,GAAc,gBAAoB,CAAC,GCc1Cx8C,IAAgB,EAAAC,EAAA,KAChBw8C,IAAkC,EAAAx8C,EAAA,KAElCmjB,GAAgB,CAChB7f,MAAO,GACPnT,oBAAoB,EACpBswB,SAAU,EACVld,gBAAiB3I,EAAA,EAAgBQ,eACjComB,UAAW,IAGf,SAASi7B,GAAan5C,GAElB,IADA,IAAI+2C,EAAiB,EACZz4D,EAAK,EAAG86D,EAAUp5C,EAAO1hB,EAAK86D,EAAQ56D,OAAQF,IAAM,CACzD,IAAI+f,EAAO+6C,EAAQ96D,GACf+f,EAAKmoC,WAAa,IAAuBG,SAAWtoC,EAAKmoC,WAAa,IAAuBC,SAE7FsQ,GADgB14C,EAAKg7C,yBAA2Bh7C,EAAKg7C,yBAA2B,EAGxF,CACA,OAAOtC,CACX,CACO,SAASuC,GAAgBj7C,EAAMphB,GAClC,IAAIT,EAASS,aAAyC,EAASA,EAAQT,OAEnEwjB,EAAQ3B,EAAK2xC,aAAe3xC,EAAK2xC,aAAahwC,MAAQ3B,EAAK2B,MAC/D,GAAIA,EAAO,CAEP,IADA,IAAIu5C,EAAgB,GACXj7D,EAAK,EAAGk7D,EAAUx5C,EAAO1hB,EAAKk7D,EAAQh7D,OAAQF,IAAM,CACzD,IAAIm7D,EAAUD,EAAQl7D,GACtB,GAAIm7D,EAAQC,8BAA+B,CAEvC,IAAI99C,EAAU69C,EAAQ79C,QAAS+9C,GAAc,QAAOF,EAAS,CAAC,YAC9DF,EAAc94D,MAAK,SAAS,QAAS,CAAC,EAAGk5D,GAAc,CAAE/9C,QAASg+C,GAA6Bh+C,EAASpf,KAC5G,MAEI+8D,EAAc94D,KAAKg5D,EAE3B,CACA,OAAOF,CACX,CACJ,CAgBA,IACI3uC,GAAiB,iBACjBivC,IAA6B,EAAApwC,EAAA,KAAgB,WAE7C,IADA,IAAItrB,EAAS,GACJG,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCH,EAAOG,GAAMC,UAAUD,GAE3B,OAAO,SAAUw7D,GACb,OAAO,KAAyBr7D,WAAM,GAAQ,QAAc,CAACq7D,EAAYlE,GAAgBz3D,GAAQ,GACrG,CACJ,IAwBA,SAAS47D,GAAgB78D,EAAI88D,GACzB,IAAIzoC,EAASr0B,EAAGq0B,OAAQvR,EAAQ9iB,EAAG8iB,MAAOhiB,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAAW2V,EAAKnZ,EAAGmZ,GAAI4jD,EAAa/8D,EAAGV,OAC9GqI,EAAK,aAAkBoyD,EAAsBpyD,EAAG,GAAIq1D,EAAyBr1D,EAAG,GAChFC,EAAK,aAAkBwuD,EAAgBxuD,EAAG,GAAIq1D,EAAmBr1D,EAAG,GAEpEC,EAAK,aAAkBooB,EAAyBpoB,EAAG,GAAIq1D,EAA4Br1D,EAAG,GACtFs1D,GAAY,EAAA5lD,GAAA,GAAMmW,GAAgBvU,GAClCikD,EAAe,eAAkB,WACjCF,OAA0Bv4D,GAC1Bq4D,OAAuBr4D,GACvBs4D,OAAiBt4D,EACrB,GAAG,IACCuxD,EAAc,eAAkB,SAAUl2D,EAAIV,EAAQ+9D,GACtD,IAAIC,EAAiBt9D,EAAGshB,IACpBy4C,IAAwBuD,IAG5Bh+D,EAAO2J,QACPi0D,EAA0BG,GAC1BL,EAAuBM,GACvBL,EAAiB39D,GACrB,GAAG,CAACy6D,IACJ,aAAgB,WACR1lC,GACA+oC,GAER,GAAG,CAAC/oC,EAAQ+oC,IACZ,IAAIG,EA8MR,SAA6BT,EAASM,GAClC,IAAII,EAAe,UAAa,GAChC,aAAgB,WAEZ,OADAA,EAAaz0D,SAAU,EAChB,WACHy0D,EAAaz0D,SAAU,CAC3B,CACJ,GAAG,IAeH,OARuB,SAAUxC,EAAI+vD,GAC7BA,EACAwG,EAAQv2D,EAAI+vD,GAEPkH,EAAaz0D,SAClBq0D,GAER,CAEJ,CArO2BK,CAAoBX,EAASM,GA4BpD,MAAO,CAACrD,EAAqB7D,EA3BP,WAClB,IAAI/0C,EAAOu8C,GAAuB3D,EAAqBj3C,GACnD66C,EAAe,KACnB,GAAIx8C,IACAw8C,EAAe,CACX76C,MAAOs5C,GAAgBj7C,EAAM,CAAE7hB,OAAQy9D,IACvCz9D,OAAQ82D,EACR1mC,UAAW6tC,EACXK,WAAW,EACXzkD,GAAIgkD,EACJxtD,oBAAoB,EACpBsgB,uBAAwBA,EACxBlN,iBAAiB,QAAOjiB,GAASsZ,EAAA,EAAgBS,YAAcT,EAAA,EAAgBY,aAC/ExX,UAAWA,EACXy8B,SAAU,EACVgB,eAAe,GAEf9f,EAAK2xC,eACL,QAAO6K,EAAcx8C,EAAK2xC,cAE1B3xC,EAAKq7C,+BAA+B,CACpC,IAAI/L,EAActvC,EAAKsvC,YACvBkN,EAAalN,YAAciM,GAA6BjM,EAAasM,EACzE,CAEJ,OAAOY,CACX,EAC2DJ,EAC/D,CA4WO,IAAIM,GAAqB,OAAW,cAAiB,SAAU/4B,EAAsBC,GACxF,IAAI/kC,EACA2H,GAAK,EAAAq9B,EAAA,GAAqBrC,GAAemC,GAAqC5jC,GAARyG,EAAGuJ,KAAa,QAAOvJ,EAAI,CAAC,SAClG8R,EAAc,SAAa,MAC3BqkD,GAAe,EAAA7nD,GAAA,KACf8nD,GAAS,EAAAxmD,GAAA,GAAMmW,GAAgBxsB,EAAMiY,IAQrC2jD,EAAU,SAAUv2D,EAAI+vD,GAAc,IAAIt2D,EAAI,OAAkC,QAA1BA,EAAKkB,EAAMwuB,iBAA8B,IAAP1vB,OAAgB,EAASA,EAAGsF,KAAKpE,EAAOqF,EAAI+vD,EAAa,EACjJ1uD,GAAK,EAAA4R,GAAA,GAAUtY,EAAM5B,OAAQma,GAAcE,EAAY/R,EAAG,GAAIgS,EAAehS,EAAG,GAChFo2D,EA3WR,SAAkCh+D,EAAI4Z,EAAcH,GAChD,IAAI4a,EAASr0B,EAAGq0B,OAAQkV,EAAiBvpC,EAAGupC,eACxC32B,EAAwB,WACxBorD,EAAgC,eAAkB,SAAUj+D,GAC5D,IAAIC,EAAI2H,EACJ4hC,EACAA,EAAexpC,IAEVA,aAAyC,EAASA,EAAQk+D,yBAI+B,QAA7Ft2D,EAA8C,QAAxC3H,EAAK4S,EAAsB7J,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,GAE/I,GAAG,CAACupC,IAkBJ,OAjBA,EAAA20B,GAAA,IAA0B,WACtB,IAAIl+D,EAAI2H,EACR,GAAK0sB,EAMIzhB,EAAsB7J,UAC3Bi1D,EAA8B,CAC1BG,gBAAiBvrD,EAAsB7J,QACvCq1D,eAAe,EACfH,uBAAiD,QAAxBt2D,GAAK,EAAAkO,EAAA,YAAkC,IAAPlO,OAAgB,EAASA,EAAGigC,cAAe,IAExGh1B,EAAsB7J,aAAUpE,OAZvB,CACT,IAAI05D,EAAazkD,aAAmD,EAASA,EAAa9a,SAASwL,eAC9D,QAA9BtK,EAAKyZ,EAAY1Q,eAA4B,IAAP/I,OAAgB,EAASA,EAAGtB,SAAS2/D,KAAuC,SAAvBA,EAAWrrD,UACzGJ,EAAsB7J,QAAUs1D,EAExC,CASJ,GAAG,CAAChqC,EAAQza,aAAmD,EAASA,EAAa9a,SAASwL,cAAe0zD,EAA+BvkD,IACrI,CAACukD,EACZ,CA0UwCM,CAAyBp9D,EAAO0Y,EAAcH,GAAa,GAC3F5R,EAAKg1D,GAAgB37D,EAAO47D,GAAU/C,EAAsBlyD,EAAG,GAAIquD,EAAcruD,EAAG,GAAI02D,EAAkB12D,EAAG,GAAI01D,EAAmB11D,EAAG,GACvIid,EA5XR,SAAyC9kB,GACrC,IAAIw+D,EAA0Bx+D,EAAGw+D,wBAAyBnqC,EAASr0B,EAAGq0B,OAClEoqC,EAAgC,UAAcD,GAC9CE,EAAe,UAAa,GAChC,aAAgB,WACZD,EAA8B11D,SAAWy1D,EACzCE,EAAa31D,SAAUsrB,IAAkBmqC,GAA2BE,EAAa31D,OACrF,GAAG,CAACy1D,EAAyBnqC,IAC7B,IAAIsqC,EAAqB,eAAkB,WACnCH,IACAC,EAA8B11D,SAAU,EAEhD,GAAG,CAACy1D,IACJ,MAAO,CAACC,EAA+BC,EAAcC,EACzD,CA8WaC,CAAgC19D,GAAQu9D,EAAgC35C,EAAG,GAAI45C,EAAe55C,EAAG,GAAI65C,EAAqB75C,EAAG,GAClIuS,EAlOR,SAA0BymC,GACtB,IAAIe,EAAe,UAAa,GAC5BC,EAAsB,WAiB1B,MAAO,CAZQ,WACND,EAAa91D,cAA2CpE,IAAhCm6D,EAAoB/1D,QAK7C81D,EAAa91D,SAAU,GAJvB+0D,EAAa1kD,aAAa0lD,EAAoB/1D,SAC9C+1D,EAAoB/1D,aAAUpE,GAKlCm6D,EAAoB/1D,QAAU+0D,EAAazkD,YAAW,WAClDwlD,EAAa91D,SAAU,CAC3B,GAvQkB,IAwQtB,EACkB81D,EACtB,CA8MaE,CAAiBjB,GAAez4B,EAAWhO,EAAG,GAAIwnC,EAAexnC,EAAG,GACzEC,EAtLR,SAA8Bt3B,EAAI89D,GAC9B,IAAIn2D,EAAK3H,EAAGg/D,kBAAmBA,OAA2B,IAAPr3D,EApS7B,IAoSmEA,EACrFs3D,EAAgB,cAAat6D,GAC7Bu6D,EAAqB,gBACSv6D,IAA1Bs6D,EAAcl2D,UACd+0D,EAAa1kD,aAAa6lD,EAAcl2D,SACxCk2D,EAAcl2D,aAAUpE,EAEhC,EAOA,MAAO,CAACu6D,EANgB,SAAUC,GAC9BF,EAAcl2D,QAAU+0D,EAAazkD,YAAW,WAC5C8lD,IACAD,GACJ,GAAGF,EACP,EAC+CC,EACnD,CAsKaG,CAAqBl+D,EAAO48D,GAAeoB,EAAqB5nC,EAAG,GAAI+nC,EAAoB/nC,EAAG,GAAIgoC,EAAoBhoC,EAAG,GAC9HioC,GAAiB,EAAAC,GAAA,GAAkB/lD,EAAavY,EAAMq+D,iBA9c9D,SAAuBr+D,EAAO0Y,GAC1B,IAAI5Z,EAAKkB,EAAMmzB,OAAQA,OAAgB,IAAPr0B,GAAwBA,EAAIwsD,EAAkBtrD,EAAMsrD,gBAAiBiT,EAAev+D,EAAMu+D,aACtHC,GAAiB,EAAA7mD,GAAA,GAAYwb,GAC7BsrC,EAAkB,SAAaF,GAC/BG,EAAkB,SAAapT,GAC/BqT,EAAW,SAAa3+D,GAC5By+D,EAAgB52D,QAAU02D,EAC1BG,EAAgB72D,QAAUyjD,EAC1BqT,EAAS92D,QAAU7H,EACnB,aAAgB,WACZ,IAAIlB,EAAI2H,EAEJ0sB,IAA6B,IAAnBqrC,EACyB,QAAlC1/D,EAAK4/D,EAAgB72D,eAA4B,IAAP/I,GAAyBA,EAAGsF,KAAKs6D,EAAiBC,EAAS92D,SAEhGsrB,IAA6B,IAAnBqrC,GACmB,QAAlC/3D,EAAKg4D,EAAgB52D,eAA4B,IAAPpB,GAAyBA,EAAGrC,KAAKq6D,EAAiBE,EAAS92D,QAE9G,GAAG,CAACsrB,EAAQqrC,IAEZ,aAAgB,WAAc,OAAO,WAAc,IAAI1/D,EAAI,OAA0C,QAAlCA,EAAK4/D,EAAgB72D,eAA4B,IAAP/I,OAAgB,EAASA,EAAGsF,KAAKs6D,EAAiBC,EAAS92D,QAAU,CAAG,GAAG,GAC5L,CA0bI+2D,CAAc5+D,GACd,IA6QI6+D,EA7QAxoC,EAhVR,SAAwBv3B,EAAI88D,EAASrjD,EAAay8C,GAC9C,IAAIp1D,EAAQd,EAAGc,MAAO88D,EAAY59D,EAAG49D,UAAWj2D,EAAK3H,EAAGijB,eAAgBrb,OAAY,IAAPD,EAAgB,CAAC,EAAIA,EAAIiO,EAAiBhO,EAAGgO,eAAgB/N,EAAKD,EAAGmC,UAAWi2D,OAA4B,IAAPn4D,EAAgB,IAAmBqD,SAAWrD,EAE5No4D,EAA0B,WAU1BC,EAAa,SAAU35D,EAAI0lD,EAAiBkU,GAC5C,IAAIC,GAAU,EAOd,OANInU,EAAgB1lD,KAChBu2D,EAAQv2D,EAAI45D,GACZ55D,EAAGyG,iBACHzG,EAAG+C,kBACH82D,GAAU,GAEPA,CACX,EAaIC,EAAsB,SAAU95D,GAChC,OAEAA,EAAGqE,QAAUC,EAAA,EAAS4gD,QAZD,SAAUllD,GAC/B,IAAI+5D,GAAkB,QAAOx/D,GAAS+J,EAAA,EAASQ,MAAQR,EAAA,EAASI,KAEhE,QAAI1E,EAAGqE,QAAU01D,IAAoB1C,GAG3BoC,IAAuB,IAAmB90D,YAC/C0K,IAAmB,QAAgBrP,EAAGjH,OAAQ,4BACvD,CAKQihE,CAAmBh6D,IAElBA,EAAGqE,QAAUC,EAAA,EAASU,KAAOhF,EAAGM,QAAUN,EAAGI,QACtD,EACIwD,EAAY,SAAU5D,GAGtB05D,EAAwBl3D,QAAUwiD,GAAYhlD,GAG9C,IAAI45D,EAAkB55D,EAAGqE,QAAUC,EAAA,EAAS4gD,UAAW,WAAW,UAClE,OAAOyU,EAAW35D,EAAI85D,EAAqBF,EAC/C,EAWIK,EAAoB,SAAUj6D,GAC9B,IAAIylD,EAA2BiU,EAAwBl3D,SAAWwiD,GAAYhlD,GAE9E,OADA05D,EAAwBl3D,SAAU,IACzBijD,MAA8B,WAAW,SACtD,EAsCA,MAAO,CAAC7hD,EArCM,SAAU5D,GACpB,OAAO25D,EAAW35D,EAAIi6D,GAAmB,EAC7C,EACoB,SAAUj6D,GAI1B,IADc4D,EAAU5D,IACRkT,EAAY1Q,QAA5B,CAKA,IAAI03D,KAAiBl6D,EAAGM,SAAUN,EAAGI,SAEjCwqB,EAAO5qB,EAAGqE,QAAUC,EAAA,EAASU,GAE7B6lB,EAAS7qB,EAAGqE,QAAUC,EAAA,EAASa,KACnC,IAAK+0D,IAAgBtvC,GAAQC,GAAS,CAClC,IAAInhB,EAAiBkhB,GACf,QAAiB1X,EAAY1Q,QAAS0Q,EAAY1Q,QAAQ8D,WAAW,IACrE,QAAkB4M,EAAY1Q,QAAS0Q,EAAY1Q,QAAQ4B,YAAY,GACzEsF,IACAA,EAAehH,QACf1C,EAAGyG,iBACHzG,EAAG+C,kBAEX,CAjBA,CAkBJ,EACoB,SAAU6X,EAAM5a,GAChC,IAAIm6D,GAAU,QAAO5/D,GAAS+J,EAAA,EAASI,KAAOJ,EAAA,EAASQ,MAClD8V,EAAKzX,UAELnD,EAAGqE,QAAU81D,GAAWn6D,EAAGqE,QAAUC,EAAA,EAASiC,QAAUvG,EAAGqE,QAAUC,EAAA,EAASa,OAASnF,EAAGM,SAAUN,EAAGI,WACxGuvD,EAAY/0C,EAAM5a,EAAGwyD,eACrBxyD,EAAGyG,iBAEX,EAEJ,CAuOa2zD,CAAez/D,EAAO47D,EAASrjD,EAAay8C,GAAc/rD,EAAYotB,EAAG,GAAI5G,GAAU4G,EAAG,GAAIqpC,GAAgBrpC,EAAG,GAAI6hC,GAAgB7hC,EAAG,GAC7IC,GAzKR,SAA0Bt2B,EAAO29D,EAAcS,EAAmB1lD,EAAc6kD,EAA+BC,EAAc3E,EAAqBtgD,EAAa4lD,EAAmBH,EAAoBhJ,EAAaqH,EAAkBT,GACjO,IAAIC,EAAa77D,EAAM5B,OA0BnBuhE,EAAyB,WACzB,OAAQhC,EAAa91D,UAAY21D,EAAa31D,OAClD,EAgCI+3D,EAA0B,SAAU3/C,EAAM5a,EAAIjH,GAC9C,IAAIyT,EAAgBzT,GAAkBiH,EAAGwyD,cACrC53C,EAAKG,MAAQy4C,IAGjBmF,SAE4Bv6D,IAAxBo1D,GACAhnD,EAAc9J,QAId+rD,EAAW7zC,IACX5a,EAAG+C,kBACH+1D,GAAkB,WACdtsD,EAAc9J,QACditD,EAAY/0C,EAAMpO,GAAe,EACrC,KAGAssD,GAAkB,WACd9B,EAAiBh3D,GACjBwM,EAAc9J,OAClB,IAER,EAII+vD,EAAkB,SAAU73C,EAAM5a,EAAIjH,GACtC,IAAIwjB,EAAQs5C,GAAgBj7C,EAAM,CAAE7hB,OAAQy9D,IAI5C,GADAmC,IACKlK,EAAW7zC,IAAW2B,GAAUA,EAAMxhB,QAKvC,GAAI6f,EAAKG,MAAQy4C,EAAqB,CAIlC,IAAI9pC,EAAiE,kBAAjC/uB,EAAM+uB,uBACpC/uB,EAAM+uB,uBACyB,UAA/B1pB,EAAG0V,YAAY4V,YACrBqkC,EAAY/0C,EAAM7hB,EAAQ2wB,EAC9B,OAXA8qC,EAAiB55C,EAAM5a,GAa3BA,EAAG+C,kBACH/C,EAAGyG,gBACP,EAKI+tD,EAAmB,SAAU55C,EAAM5a,GACnC,IAAI4a,EAAKzX,WAAYyX,EAAK+zC,WAA1B,CAGI/zC,EAAKq7C,+BACLuE,GAAex6D,EAAIw2D,GAEvB,IAAIiE,GAAgB,EAChB7/C,EAAKzC,QACLsiD,IAAkB7/C,EAAKzC,QAAQnY,EAAI4a,GAE9BjgB,EAAMuvD,cACXuQ,IAAkB9/D,EAAMuvD,YAAYlqD,EAAI4a,KAExC6/C,GAAkBz6D,EAAGopB,kBACrBmtC,EAAQv2D,GAAI,EAZhB,CAcJ,EACA,MAAO,CArIoB,SAAU4a,EAAM5a,EAAIjH,GACvCm/D,EAA8B11D,UAC9B21D,EAAa31D,SAAU,GAEvB83D,KAGJC,EAAwB3/C,EAAM5a,EAAIjH,EACtC,EAC0B,SAAU6hB,EAAM5a,EAAIjH,GAC1C,IAAIyT,EAAgBxM,EAAGwyD,cAEnB0F,EAA8B11D,UAC9B21D,EAAa31D,SAAU,EAKtB81D,EAAa91D,cACgBpE,IAA9B26D,EAAkBv2D,SAClBgK,KAAmB6G,aAAmD,EAASA,EAAa9a,SAASwL,gBAGzGw2D,EAAwB3/C,EAAM5a,EAAIjH,GACtC,EAIuB,SAAU6hB,EAAM5a,GACnC,IAAIvG,EACJ,IAAI6gE,MAGJ3B,SAC4Bv6D,IAAxBo1D,GAQJ,GAAItgD,EAAY1Q,QAAQk4D,UACpB,IACIxnD,EAAY1Q,QAAQk4D,WACxB,CACA,MAAOtL,GAEP,MAG+B,QAA9B31D,EAAKyZ,EAAY1Q,eAA4B,IAAP/I,GAAyBA,EAAGiJ,OAE3E,EAgCkB,SAAUkY,EAAM5a,GAC9ByyD,EAAgB73C,EAAM5a,EAAIA,EAAGwyD,cACjC,EAwBoB,SAAU53C,EAAM5a,GAChCw0D,EAAiB55C,EAAM5a,GACvBA,EAAG+C,iBACP,EAyBIyxD,EACA/B,EAER,CAyBakI,CAAiBhgE,EAAO29D,EAAcS,EAAmB1lD,EAAc6kD,EAA+BC,EAAc3E,EAAqBtgD,EAAa4lD,EAAmBH,EAAoBhJ,EAAaqH,EAAkBT,GAAUqE,GAAuB3pC,GAAG,GAAI4pC,GAAsB5pC,GAAG,GAAI6pC,GAAmB7pC,GAAG,GAAIi5B,GAAcj5B,GAAG,GAAI8pC,GAAgB9pC,GAAG,GAAIujC,GAAmBvjC,GAAG,GAAIwhC,GAAkBxhC,GAAG,GAE3Z+pC,GAA0B,SAAUC,EAExCC,EAAgBtzC,GACZ,IAAIuzC,EAAkB,EAClB5+C,EAAQ0+C,EAAc1+C,MAAO+2C,EAAiB2H,EAAc3H,eAAgBC,EAAgB0H,EAAc1H,cAAexE,EAAWkM,EAAclM,SACtJ,OAAQ,gBAAoB,KAAM,CAAE9xD,UAAWi+D,EAAev+C,KAAM/Y,UAAWA,EAAWwmB,QAASA,GAAS/N,KAAM,gBAAkBE,EAAMthB,KAAI,SAAU2f,EAAMU,GAC1J,IAAI8/C,EAAWC,GAAezgD,EAAMU,EAAO6/C,EAAiB7H,EAAgBC,EAAexE,EAAUmM,GACrG,GAAItgD,EAAKmoC,WAAa,IAAuBG,SAAWtoC,EAAKmoC,WAAa,IAAuBC,OAAQ,CACrG,IAAIsY,EAAgB1gD,EAAKg7C,yBAA2Bh7C,EAAKg7C,yBAA2B,EACpFuF,GAAmBG,CACvB,CACA,OAAOF,CACX,IACJ,EASIC,GAAiB,SAAUzgD,EAAMU,EAAO+3C,EAAuBC,EAAgBC,EAAexE,EAElGmM,GACI,IAAIzhE,EAWA8hE,EAVA5hD,EAAgB,GAChBoC,EAAYnB,EAAKmB,WAAa,CAAED,SAAU,QAC1C61C,EAAoB/2C,EAAK+2C,kBAC7Bz2C,EAAYN,EAAKM,UACbxgB,EAASwgB,EAAYA,EAAUxgB,YAAS0D,EAGxC2zD,EAAmBn3C,EAAKmoC,WAAa,IAAuBG,QAAUtoC,EAAK3d,eAAYmB,EACvFo9D,EAAuB5gD,EAAK40C,iBAAmB50C,EAAK40C,iBAAiBvyD,UAAY,GAKrF,GAAI00D,EACA4J,EAAiB5J,EAAkBh3D,EAAMJ,MAAOm0D,EAAe9zC,GAAO44C,IAAwB54C,EAAKG,MAAOwzC,EAAa3zC,KAASA,EAAKE,KAA6B,SAAvBiB,EAAUD,SAAqBlB,EAAK3d,UAAW80D,EAAkBh2C,EAAU9e,UAAWu+D,EAAsB5gD,EAAKqL,qBAE3P,CACD,IAAIw1C,EAAiB,CACjBlhE,MAAOI,EAAMJ,MACb4I,SAAUurD,EAAe9zC,GACzB+I,SAAU6vC,IAAwB54C,EAAKG,IACvC2I,UAAW6qC,EAAa3zC,GACxBg3C,eAAgBh3C,EAAKE,KACrB+2C,UAAkC,SAAvB91C,EAAUD,SACrBg2C,cAAel3C,EAAK3d,UACpB80D,iBAAkBA,EAClBxuC,cAAexH,EAAU9e,UACzB+0D,iBAAkBwJ,EAClBv1C,gBAAiBrL,EAAKqL,iBAI1Bs1C,EAAiB9F,GAAgCW,GAAwE,QAA5C38D,EAAKyhE,EAAeQ,0BAAuC,IAAPjiE,OAAgB,EAASA,EAAG2hE,SAAU1gE,GAAS+gE,EACpL,CAKA,OAHkB,MAAd7gD,EAAK9B,MAA8B,MAAd8B,EAAKvf,OAC1Buf,EAAKmoC,SAAW,IAAuBG,SAEnCtoC,EAAKmoC,UACT,KAAK,IAAuBG,QACxBvpC,EAAc3c,KAAK2+D,GAAgBrgD,EAAOigD,IAC1C,MACJ,KAAK,IAAuBvY,OACxBrpC,EAAc3c,KAAK2+D,GAAgBrgD,EAAOigD,IAC1C,IAAIK,EAAaC,GAAqBjhD,EAAM2gD,EAAgBL,EAAgB5/C,EAAOi4C,EAAexE,GAClGp1C,EAAc3c,KAAK8+D,GAAeF,EAAYhhD,EAAKG,KAAOO,EAAOigD,EAAgB3gD,EAAK+K,QACtF,MACJ,KAAK,IAAuBo2C,QACxBpiD,EAAc3c,KAAKg/D,GAAkBphD,EAAM2gD,EAAgBL,EAAgB5/C,EAAOi4C,EAAexE,IACjG,MACJ,QACI,IAAIkN,EAA0B,WAC1B,OAAOC,GAAiBthD,EAAM2gD,EAAgBjgD,EAAO+3C,EAAuBC,EAAgBC,EAAexE,EAC/G,EACIqM,EAAWzgE,EAAMwhE,2BACfxhE,EAAMwhE,2BAA2BvhD,EAAMqhD,GACvCA,IACNtiD,EAAc3c,KAAK8+D,GAAeV,EAAUxgD,EAAKG,KAAOO,EAAOigD,EAAgB3gD,EAAK+K,QAK5F,OAAO,gBAAoB,WAAgB,CAAE5K,IAAKH,EAAKG,KAAOpB,EAClE,EAOIqiD,GAAoB,SAAUI,EAElCb,EAEAL,EAAgB5/C,EAAOi4C,EAAexE,GAClC,IAAIsN,EAAeD,EAAYC,aAC/B,GAAKA,EAAL,CAGA,IAAIT,EACAU,EACJ,GAAID,EAAa12C,MAAO,CACpB,IAAI42C,OAA2Bn+D,EAC3Bo+D,EAAiB,GACrB,GAAkC,iBAAvBH,EAAa12C,MAAoB,CAGxC,IAAIs9B,EAAOuU,EAAS6E,EAAa12C,MAAM0qB,QAAQ,MAAO,IACtDksB,EAA2B,CACvBxhD,IAAK,WAAWlJ,OAAOwqD,EAAa12C,MAAO,UAC3Co9B,SAAU,IAAuBC,OACjClqC,KAAMujD,EAAa12C,MACnB/S,GAAIqwC,GAERuZ,EAAiBvZ,CACrB,KACK,CACD,IAAIwZ,EAAOJ,EAAa12C,MAAM/S,IAAM4kD,EAAS6E,EAAa12C,MAAM5K,IAAIs1B,QAAQ,MAAO,IACnFksB,GAA2B,SAAS,QAAS,CAAC,EAAGF,EAAa12C,OAAQ,CAAE/S,GAAI6pD,IAC5ED,EAAiBC,CACrB,CACIF,IACAD,EAAa,CACTjgD,KAAM,QACN,kBAAmBmgD,GAEvBZ,EAAaC,GAAqBU,EAA0BhB,EAAgBL,EAAgB5/C,EAAOi4C,EAAexE,GAE1H,CACA,GAAIsN,EAAa9/C,OAAS8/C,EAAa9/C,MAAMxhB,OAAS,EAAG,CACrD,IAAI2hE,EAAmB,EACvB,OAAQ,gBAAoB,KAAM,CAAErgD,KAAM,eAAgBtB,IAAKshD,EAAathD,KAAOqhD,EAAYrhD,KAAO,WAAWlJ,OAAOyJ,IACpH,gBAAoB,OAAO,QAAS,CAAC,EAAGghD,GACpC,gBAAoB,KAAM,CAAEr/D,UAAWi+D,EAAev+C,KAAMN,KAAM,gBAC9DggD,EAAaM,YAAchB,GAAgBrgD,EAAOigD,GAAgB,GAAM,GACxEK,GAAcE,GAAeF,EAAYQ,EAAYrhD,KAAOO,EAAOigD,EAAgBa,EAAYz2C,OAC/F02C,EAAa9/C,MAAMthB,KAAI,SAAU2hE,EAAoBC,GACjD,IAAIzB,EAAWC,GAAeuB,EAAoBC,EAAYH,EAAkBhH,GAAa2G,EAAa9/C,OAAQg3C,EAAexE,EAAUmM,GAC3I,GAAI0B,EAAmB7Z,WAAa,IAAuBG,SACvD0Z,EAAmB7Z,WAAa,IAAuBC,OAAQ,CAC/D,IAAIsY,EAAgBsB,EAAmBhH,yBACjCgH,EAAmBhH,yBACnB,EACN8G,GAAoBpB,CACxB,CACA,OAAOF,CACX,IACAiB,EAAaS,eAAiBnB,GAAgBrgD,EAAOigD,GAAgB,GAAO,KAC5F,CAlDA,CAmDJ,EACIO,GAAiB,SAAUz+C,EAAStC,EAAKje,EAC7C6oB,GACI,OAAQ,gBAAoB,KAAM,CAAEtJ,KAAM,eAAgBsJ,MAAOA,EAAO5K,IAAKA,EAAK9d,UAAWH,EAAW8d,MAAQyC,EACpH,EACIs+C,GAAkB,SAAUrgD,EAAOxe,EACvCsK,EAAK21D,GACD,OAAIA,GAAezhD,EAAQ,EACf,gBAAoB,KAAM,CAAEe,KAAM,YAAatB,IAAK,aAAeO,QAAiBld,IAARgJ,EAAoB,GAAKA,EAAM,OAAS,WAAYnK,UAAWH,EAAWkqB,QAAS,cAAe,SAEnL,IACX,EACIk1C,GAAmB,SAAUthD,EAAM9d,EACvCwe,EAAO+3C,EAAuBC,EAAgBC,EAAexE,GACzD,GAAIn0C,EAAKa,SACL,OAAOb,EAAKa,UAAS,QAAS,CAAE,gBAAiB43C,EAAwB,EAAG,eAAgBC,GAAkB14C,GAAO27C,GAEzH,IACIyG,EAAc,CACdpiD,KAAMA,EACN9d,WAAYA,EACZwe,MAAOA,EACP+3C,sBAAuBA,EACvBC,eAAgBA,EAChBC,cAAeA,EACfxE,SAAUA,EACV2E,qBATuB/4D,EAAM+4D,qBAU7BnB,iBAAkBqI,GAClBjI,iBAAkBmI,GAClB/H,gBAAiB8H,GACjB7F,gBAAiBA,GACjBR,iBAAkBA,GAClB3B,cAAeA,GACfW,oBAAqBA,EACrB7D,YAAaA,EACbG,eAAgBkH,EAChBlqC,YAAaypC,GAEjB,GAAI37C,EAAKE,KAAM,CACX,IAAImiD,EAAyB/J,GAI7B,OAHIt4C,EAAKsiD,8BACLD,GAAyB,EAAAj0C,EAAA,GAAmBpO,EAAKsiD,4BAA6BD,IAE3E,gBAAoBA,GAAwB,QAAS,CAAC,EAAGD,EAAa,CAAE9S,YAAa6Q,KAChG,CACA,GAAIngD,EAAKgR,OAAS6iC,EAAW7zC,GAAO,CAChC,IAAIuiD,EAA8BnJ,GAIlC,OAHIp5C,EAAKsiD,8BACLC,GAA8B,EAAAn0C,EAAA,GAAmBpO,EAAKsiD,4BAA6BC,IAE/E,gBAAoBA,GAA6B,QAAS,CAAC,EAAGH,EAAa,CAAE9S,YAAaA,GAAauI,gBAAiBA,GAAiBwC,MAAO0D,IAC5J,CACA,IAAIyE,EAAyBlI,GAI7B,OAHIt6C,EAAKsiD,8BACLE,GAAyB,EAAAp0C,EAAA,GAAmBpO,EAAKsiD,4BAA6BE,IAE3E,gBAAoBA,GAAwB,QAAS,CAAC,EAAGJ,EAAa,CAAE9S,YAAaA,GAAauI,gBAAiBA,KAC9H,EACIoJ,GAAuB,SAAUjhD,EAErC2gD,EAEAL,EAAgB5/C,EAAOi4C,EAAexE,GAClC,IAAI0E,EAAmBrB,EACnBx3C,EAAK84C,uBACLD,GAAmB,EAAAzqC,EAAA,GAAmBpO,EAAK84C,qBAAsBD,IAEjE94D,EAAM+4D,uBACND,GAAmB,EAAAzqC,EAAA,GAAmBruB,EAAM+4D,qBAAsBD,IAEtE,IAAIv4C,EAAYN,EAAKM,UAAWtI,EAAKgI,EAAKhI,GACtCyqD,EAAoBniD,IAAa,QAAeA,EAAW,MAC/D,OAEA,gBAAoB,OAAO,QAAS,CAAEtI,GAAIA,EAAI3V,UAAWi+D,EAAenf,QAAUshB,EAAmB,CAAE3lD,MAAOkD,EAAKlD,QAC/G,gBAAoB+7C,GAAkB,QAAS,CAAE74C,KAAMA,EAAM9d,WAAYy+D,EAAgBjgD,MAAOA,EAAO2zC,iBAAkBsE,EAAgBrJ,QAAc9rD,EAAW2wD,SAAUA,GAAY7zC,IAChM,EAGIwf,GAAgB//B,EAAM+/B,cACtBne,GAAQ5hB,EAAM4hB,MAAOsR,GAAiBlzB,EAAMkzB,eAAgBjb,GAAKjY,EAAMiY,GAAI3V,GAAYtC,EAAMsC,UAAWw9B,GAAY9/B,EAAM8/B,UAAWje,GAAkB7hB,EAAM6hB,gBAAiB2d,GAAwBx/B,EAAMw/B,sBAAuB3B,GAAkB79B,EAAM69B,gBAAiBkB,GAAW/+B,EAAM++B,SAAUpC,GAAc38B,EAAM28B,YAAand,GAAYxf,EAAMwf,UAAWmT,GAAa3yB,EAAM2yB,WAAYv0B,GAAS4B,EAAM5B,OAAQq9B,GAASz7B,EAAMy7B,OAAQknC,GAAiB3iE,EAAM2iE,eAAgBC,GAAsB5iE,EAAM4iE,oBAAqBhlC,GAAuB59B,EAAM49B,qBAAsBnvB,GAAqBzO,EAAMyO,mBAAoBsgB,GAAyB/uB,EAAM+uB,uBAAwB/D,GAAQhrB,EAAMgrB,MAAOjrB,GAASC,EAAMD,OAAQH,GAAQI,EAAMJ,MAAOgnD,GAAe5mD,EAAM4mD,aAAc3vB,GAAKj3B,EAAM6iE,gBAAiBA,QAAyB,IAAP5rC,GAAgB6rC,GAAyB7rC,GAAIC,GAAKl3B,EAAM+iE,iBAAkBA,QAA0B,IAAP7rC,GAAgB,SAAUopC,EAAerzC,GAAiB,OAAOozC,GAAwBC,EAAen+D,GAA4B,EAAI+0B,GAAInV,GAAiB/hB,EAAM+hB,eAEzjCihD,GAAoBhjE,EAAMgjE,kBACtB7gE,GAAa6gE,GACXA,GAAkBpjE,GAAO0C,IACzB+b,GAActe,GAAQ,CACpBH,MAAOA,GACP0C,UAAWA,KAEf8xD,GACJ,SAAS6O,EAAeC,GACpB,IAAK,IAAIhjE,EAAK,EAAGijE,EAAwBD,EAAqBhjE,EAAKijE,EAAsB/iE,OAAQF,IAAM,CACnG,IAAI+f,EAAOkjD,EAAsBjjE,GACjC,GAAI+f,EAAKmB,UACL,OAAO,EAEX,GAAInB,EAAKmoC,WAAa,IAAuBgZ,SACzCnhD,EAAKyhD,cACLuB,EAAehjD,EAAKyhD,aAAa9/C,OACjC,OAAO,CAEf,CACA,OAAO,CACX,CAdeqhD,CAAerhD,IAe1BwhD,IAAyB,SAAS,QAAS,CAAEv6D,UAAW,IAAmBmB,SAAUe,aAAc,IAA0BC,IAAK6H,sBAAsB,GAAQkP,IAAiB,CAAEzf,WAAW,EAAAsN,EAAA,GAAIzN,GAAWgM,KAAsC,QAA/BrP,EAAKkB,EAAM+hB,sBAAmC,IAAPjjB,OAAgB,EAASA,EAAGwD,aACvRs2D,GA/uBD,SAA8Bh3C,GACjC,OAAOA,EAAMmxB,MAAK,SAAU9yB,GACxB,QAAIA,EAAK4zC,aAIL5zC,EAAKyhD,eAAgBzhD,EAAKyhD,aAAa9/C,MAAMmxB,MAAK,SAAUswB,GAAe,OAAgC,IAAzBA,EAAYxP,QAAmB,IAIzH,GACJ,CAouBwByP,CAAqB1hD,IACrC66C,GAAe5D,IAAwC,IAAjB74D,EAAMmzB,OAAkBkqC,IAAoB,KACtFt9B,QAAkCt8B,IAAlBs8B,GAA8Bs+B,GAAkB,MAAe94C,OAASwa,GAKxF,IAAIwjC,GAAsB9qD,EAAU5Q,QACpC,IAAK86D,IAAkBC,KAAwBW,IAAuBA,GAAoBC,YAAa,CACnG,IACIC,GADqBF,GAAoB5wD,wBACR7F,MAAQ,EACzC61D,GACA9D,EAAmB,CACf/xD,MAAO22D,IAGNb,KACL/D,EAAmB,CACfrnC,SAAUisC,IAGtB,CAEA,GAAI7hD,IAASA,GAAMxhB,OAAS,EAAG,CAC3B,IAAIsjE,GAAmB3I,GAAan5C,IAChC+hD,GAAkBxhE,GAAW4+D,mBAC3B5+D,GAAW4+D,mBAAmBlhC,aAC9Bp8B,EACN,OAAQ,gBAAoBo3D,GAAY+I,SAAU,MAAM,SAAUC,GAAe,OAAQ,gBAAoBr6B,EAAA,GAAS,QAAS,CAAEzpC,OAAQ4jE,GAAiBt7B,eAAgBy0B,GAAiClW,GAAc,CAAExoD,OAAQA,IAAUylE,EAAYzlE,OAAQ2hC,cAAeA,GAAeD,UAAWA,GAAWje,gBAAiBA,GAAiB2d,sBAAuBA,GAAuBT,SAAUA,GAAUpC,YAAaA,GAAahK,WAAYA,GAAYrwB,WAAW,EAAAsN,EAAA,GAAI,4BAA6Bg3C,IAAgBA,GAAatkD,WAAYilC,gBAAiB94B,GAAoB+f,UAAWxuB,EAAMwuB,WAAaq1C,EAAYr1C,UAAW2V,SAAUA,EAAU1I,OAAQA,GAAQmC,qBAAsBA,GAAsBC,gBAAiBA,GAAiB1K,OAAQnzB,EAAMmzB,QAAU0wC,EAAY1wC,OAAQnjB,IAAK6zB,IACzxB,gBAAoB,MAAO,CAAE9mB,MAAO8hD,EAAkB7uD,IAAKuI,EAAaN,GAAIA,GAAI3V,UAAWH,GAAW+sB,UAAWvd,SAAUod,GAAyB,GAAK,EAAG9lB,UAAWy2D,GAAejwC,QAASA,GAASgE,eAAgBgqC,EAAoB,aAAcj+C,GAAW,kBAAmB0T,GAAgBxR,KAAM,QAC1SsJ,IAAS,gBAAoB,MAAO,CAAE1oB,UAAWH,GAAW6oB,OACxD,IACAA,GACA,KACJpJ,IAASA,GAAMxhB,OAxRL,SAAUgB,EAAUgiE,GACtC,IAAItkE,EAAKkB,EAAM8jE,YAAahL,OAA0B,IAAPh6D,EAAgByH,EAAA,EAAYzH,EAC3E,OAAO,gBAAoBg6D,GAAkB,QAAS,CAAC,EAAGsK,GAAyBhiE,EACvF,CAsRkB2iE,CAAgBhB,GAAiB,CAC/BvjD,UAAWA,GACXoC,MAAOA,GACP+2C,eAAgB+K,GAChB9K,cAAeA,GACfxE,SAAUA,GACV4P,wBAAyB,SAAU/jD,GAC/B,OApNM,SAAUA,EAExCsgD,GACI,IAAI5/C,EAAQV,EAAKU,MAAO+3C,EAAwBz4C,EAAKy4C,sBAAuBC,EAAiB14C,EAAK04C,eAAgBC,EAAgB34C,EAAK24C,cAAexE,EAAWn0C,EAAKm0C,SACtK,OAAOsM,GAAezgD,EAAMU,EAAO+3C,EAAuBC,EAAgBC,EAAexE,EAAUmM,EACvG,CA+M+ByD,CAAwB/jD,EAAM9d,GACzC,EACA+wB,eAAgBA,KACjB,SAAUotC,EAAerzC,GAAiB,OAAOozC,GAAwBC,EAAen+D,GAA4B,IAAIihE,IACzH,KACN3G,IAAgBoG,GAAgBpG,GAAcqG,KAClD,gBAAoB,IAAY,MAAS,GACjD,CAEI,OAAO,IAGf,KAAI,SAAU9wC,EAAW2vB,GACrB,QAAKA,EAASnZ,yBAA0BxW,EAAUmB,SAAUwuB,EAASxuB,UAI9D,QAAenB,EAAW2vB,EACrC,IAKA,SAAS0I,GAAYhlD,GAEjB,OAAOA,EAAGqE,QAAUC,EAAA,EAASmhB,KAAkB,SAAXzlB,EAAG+a,GAC3C,CACA,SAASi6C,GAAgBp6C,EAAM5a,GAC3B,IAAIvG,EACwB,QAA3BA,EAAKmhB,EAAK6P,mBAAgC,IAAPhxB,GAAyBA,EAAGsF,KAAK6b,EAAMA,EAAM5a,EACrF,CACA,SAASy9D,GAAuBlR,EAAc3kC,GAC1C,MAAM3pB,MAAM,8JAEhB,CAMA,SAASk5D,GAAuBp8C,EAAKwB,GACjC,IAAK,IAAI1hB,EAAK,EAAG+jE,EAAUriD,EAAO1hB,EAAK+jE,EAAQ7jE,OAAQF,IAAM,CACzD,IAAI+f,EAAOgkD,EAAQ/jE,GACnB,GAAI+f,EAAKmoC,WAAa,IAAuBgZ,SAAWnhD,EAAKyhD,aAAc,CACvE,IAAIzvD,EAAQuqD,GAAuBp8C,EAAKH,EAAKyhD,aAAa9/C,OAC1D,GAAI3P,EACA,OAAOA,CAEf,MACK,GAAIgO,EAAKG,KAAOH,EAAKG,MAAQA,EAC9B,OAAOH,CAEf,CACJ,CACA,SAASu7C,GAA6Bh+C,EAASpf,GAC3C,OAAOof,EACD,SAAUnY,EAAI4a,GAEZ,OADA4/C,GAAex6D,EAAIjH,GACZof,EAAQnY,EAAI4a,EACvB,EACEzC,CACV,CACA,SAASqiD,GAAex6D,EAAIjH,GACpBiH,GAAMjH,IACNiH,EAAGuoD,UACCxvD,aAAkB8lE,MAClB7+D,EAAGjH,OAASA,EAAOA,OAEdA,aAAkB+lE,UACvB9+D,EAAGjH,OAASA,GAGxB,CArDAu+D,GAAmBx9D,YAAc,qBCt2BjC,IAAI,GAAmB,CACnBgP,KAAM,oBACN+gB,UAAW,8BACXlN,KAAM,yBACNo/B,OAAQ,2BACRp2B,MAAO,0BACPo5C,OAAQ,WCHZ,SAASvB,GAAgBjR,GACrB,OAAO,gBAAoByS,IAAqB,QAAS,CAAC,EAAGzS,GACjE,CAEA,IAAIyS,IAAsB,EAAA1gD,EAAA,GAAOg5C,IDCV,SAAU38D,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3CuC,GAAa,QAAoB,GAAkBvC,GACnDkkB,EAAQlkB,EAAMkkB,MAAOpF,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAChF,MAAO,CACHpmB,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZpjB,EAAWgM,KACXhM,EAAWiiE,OACX,CACIn/C,gBAAiBvG,EAAe2qB,eAChC7R,SAAU,SAEdl1B,GAEJ4sB,UAAW,CACP/sB,EAAW+sB,UACX,CACIpf,UAAW,CACP,SAAU,CAAEC,QAAS,MAIjCiS,KAAM,CACF7f,EAAW6f,KACX7f,EAAWiiE,OACX,CACIz+C,cAAe,OACfH,OAAQ,IACRJ,QAAS,MAGjBg8B,OAAQ,CACJj/C,EAAWi/C,OACXt9B,EAAMiC,MACN,CACIhB,WAAY,KAAYJ,SACxBlG,MAAOC,EAAeyhC,WACtB9V,WAAY,OACZplB,gBAAiB,cACjB0B,OAAQ,OACR/S,OAAQgiD,EACRvwC,WAAYuwC,EACZx5C,OAAQ,UACRgJ,QAAS,UACT6P,WAAY,OACZZ,UAAW,SAGnBrJ,MAAO,CACH7oB,EAAW6oB,MACX,CACI1F,SAAUxB,EAAMmC,WAAWX,SAC3B4sB,aAAc,OACdH,YAAa,OACbxB,cAAe,MACfyB,WAAY,MACZ/sB,gBAAiBvG,EAAewF,4BAGxC68C,mBAAoB,CAChBlhC,QAAS,CACL1xB,KAAM,CACF86B,UAAW1U,EAAQmiB,aAG3B+pB,SAAU,CAAC,GAGvB,ICtEgE,SAAUzgE,GAAS,MAAO,CACtF6iE,gBAAiB7iE,EAAM6iE,iBACjB,EAAA9hD,EAAA,GAAsB/gB,EAAM6iE,gBAAiBA,IAC7CA,GACN,GAAG,CAAE18C,MAAO,mBAILmI,GAAiB+1C,GAC5B/1C,GAAenvB,YAAc,gB,kBCdtB,IAAImlE,E,iBACX,SAAWA,GACPA,EAAuBA,EAA+B,OAAI,GAAK,SAC/DA,EAAuBA,EAAgC,QAAI,GAAK,UAChEA,EAAuBA,EAA+B,OAAI,GAAK,SAC/DA,EAAuBA,EAAgC,QAAI,GAAK,SACnE,CALD,CAKGA,IAA2BA,EAAyB,CAAC,G,wCCN7CC,EAcAC,EAmBAC,EAUAC,E,+GA1CX,SAAWH,GACPA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAoB,SAAI,GAAK,UAC1C,CARD,CAQGA,IAAcA,EAAY,CAAC,IAM9B,SAAWC,GACPA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAsB,SAAI,GAAK,WAC3CA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAiB,IAAI,GAAK,MACtCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAoB,OAAI,GAAK,SACzCA,EAAYA,EAAuB,UAAI,GAAK,YAC5CA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAsB,SAAI,IAAM,WAC5CA,EAAYA,EAAsB,SAAI,IAAM,UAC/C,CAbD,CAaGA,IAAgBA,EAAc,CAAC,IAMlC,SAAWC,GACPA,EAAgBA,EAA0B,SAAI,GAAK,WACnDA,EAAgBA,EAA+B,cAAI,GAAK,gBACxDA,EAAgBA,EAAkC,iBAAI,GAAK,kBAC9D,CAJD,CAIGA,IAAoBA,EAAkB,CAAC,IAM1C,SAAWC,GACPA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CALD,CAKGA,IAAkBA,EAAgB,CAAC,ICtB/B,IAAIrgE,EAAW,WAQpB,OAPAA,EAAWN,OAAOJ,QAAU,SAAkBW,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAItE,UAAUC,OAAQoE,EAAIC,EAAGD,IAE5C,IAAK,IAAIN,KADTK,EAAIpE,UAAUqE,GACOT,OAAOI,UAAUhB,eAAeiB,KAAKG,EAAGL,KAAII,EAAEJ,GAAKK,EAAEL,IAE9E,OAAOI,CACX,EACOD,EAAShE,MAAMqE,KAAMvE,UAC9B,EAgH6B4D,OAAOpD,OA0GXoD,OAAOpD,OAyDkB,mBAApBgE,iBAAiCA,gBCtTxD,IA+CIggE,EAA0B,CACjCC,UAhDmB,SAAUC,GAAQ,OAAOA,EAAKC,UAAU7mD,UAAY,EAiDvE8mD,YA3BqB,SAAUF,EAAMzrB,GAAW,OAAOA,EAAQ4rB,OAAOH,EAAKI,WAAa,EA4BxFC,WAvBoB,SAAUL,GAAQ,OAAOA,EAAKM,cAAclnD,UAAY,EAwB5EmnD,mBA7C4B,SAAUP,EAAMzrB,GAC5C,OAAOA,EAAQ4rB,OAAOH,EAAKI,YAAc,IAAMJ,EAAKC,UAAY,KAAOD,EAAKM,aAChF,EA4CIE,gBAtCyB,SAAUR,EAAMzrB,GACzC,OAAOA,EAAQ4rB,OAAOH,EAAKI,YAAc,IAAMJ,EAAKM,aACxD,GAsCWG,EAA2BjhE,EAASA,EAAS,CAAC,EA1BlB,CACnC2gE,OAAQ,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJO,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEC,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAS0C,CAAEC,UAAW,cAAeC,uBAAwB,kBAAmBC,mBAAoB,iBAAkBC,mBAAoB,aAAcC,kBAAmB,gBAAiBC,kBAAmB,YAAaC,uBAAwB,sBAAuBC,uBAAwB,kBAAmBC,qBAAsB,QAASC,yBAA0B,oBAAqBC,sBAAuB,mBAAoBC,2BAA4B,mBAAoBC,0BAA2B,oBAAqBC,mBAAoB,W,WCnD3mB,SAASC,EAAQ3B,EAAMW,GAC1B,IAAIziE,EAAS,IAAI0jE,KAAK5B,EAAK6B,WAE3B,OADA3jE,EAAO4jE,QAAQ5jE,EAAO+hE,UAAYU,GAC3BziE,CACX,CAOO,SAAS6jE,EAAS/B,EAAMgC,GAC3B,OAAOL,EAAQ3B,EAAMgC,EAAQ,IAAcjqE,cAC/C,CASO,SAASkqE,EAAUjC,EAAMG,GAC5B,IAAIjiE,EAAS,IAAI0jE,KAAK5B,EAAK6B,WACvBK,EAAWhkE,EAAOkiE,WAAaD,EASnC,OARAjiE,EAAOikE,SAASD,GAIZhkE,EAAOkiE,cACL8B,EAAW,IAAclqE,eAAkB,IAAcA,gBAAkB,IAAcA,iBAC3FkG,EAASyjE,EAAQzjE,GAASA,EAAO+hE,YAE9B/hE,CACX,CASO,SAASkkE,EAASpC,EAAMqC,GAC3B,IAAInkE,EAAS,IAAI0jE,KAAK5B,EAAK6B,WAS3B,OARA3jE,EAAOokE,YAAYtC,EAAKM,cAAgB+B,GAIpCnkE,EAAOkiE,cACLJ,EAAKI,WAAa,IAAcpoE,eAAkB,IAAcA,gBAAkB,IAAcA,iBAClGkG,EAASyjE,EAAQzjE,GAASA,EAAO+hE,YAE9B/hE,CACX,CAMO,SAASqkE,EAAcvC,GAC1B,OAAO,IAAI4B,KAAK5B,EAAKM,cAAeN,EAAKI,WAAY,EAAG,EAAG,EAAG,EAAG,EACrE,CAMO,SAASoC,EAAYxC,GACxB,OAAO,IAAI4B,KAAK5B,EAAKM,cAAeN,EAAKI,WAAa,EAAG,EAAG,EAAG,EAAG,EAAG,EACzE,CAyBO,SAAS+B,EAASnC,EAAMyC,GAC3B,OAAOR,EAAUjC,EAAMyC,EAAQzC,EAAKI,WACxC,CAKO,SAASsC,EAAaC,EAAOC,GAChC,OAAKD,IAAUC,MAGLD,IAAUC,IAIRD,EAAMrC,gBAAkBsC,EAAMtC,eAClCqC,EAAMvC,aAAewC,EAAMxC,YAC3BuC,EAAM1C,YAAc2C,EAAM3C,SAEtC,CAQO,SAAS4C,EAAgBF,EAAOC,GACnC,OAAOE,EAAqBH,GAASG,EAAqBF,EAC9D,CAYO,SAASG,EAAkB/C,EAAMgD,EAAeC,EAAgBC,EAAcC,QACnD,IAA1BA,IAAoCA,EAAwB,GAChE,IACIC,EADAC,EAAa,GAEbC,EAAU,KAKd,OAJKJ,IACDA,EAAe,CAACxD,EAAU6D,OAAQ7D,EAAU8D,QAAS9D,EAAU+D,UAAW/D,EAAUgE,SAAUhE,EAAUiE,SAE5GR,EAAwBz7D,KAAKsgD,IAAImb,EAAuB,GAChDH,GACJ,KAAKnD,EAAc+D,IAEfN,EAAU3B,EADVyB,EAAYS,EAAY7D,GACKmD,GAC7B,MACJ,KAAKtD,EAAciE,KACnB,KAAKjE,EAAckE,SACfX,EA4FL,SAA4BpD,EAAMiD,GACrC,IAAIe,EAAaf,EAAiBjD,EAAKiE,SAKvC,OAJID,EAAa,IAEbA,GAAc,IAAcjsE,eAEzB4pE,EAAQ3B,EAAMgE,EACzB,CAnGwBE,CAAmBL,EAAY7D,GAAOiD,GAClDK,EAAU3B,EAAQyB,EAAW,IAAcrrE,eAC3C,MACJ,KAAK8nE,EAAcsE,MAEfb,EAAUrB,EADVmB,EAAY,IAAIxB,KAAK5B,EAAKM,cAAeN,EAAKI,WAAY,GAC3B,GAC/B,MACJ,QACI,MAAM,IAAI3hE,MAAM,sBAAwBukE,GAGhD,IAAIoB,EAAWhB,EACf,IACQJ,IAAkBnD,EAAckE,WAIkB,IAA7Cb,EAAa/zD,QAAQi1D,EAASH,YAFnCZ,EAAW7lE,KAAK4mE,GAKpBA,EAAWzC,EAAQyC,EAAU,UACvB1B,EAAa0B,EAAUd,IACjC,OAAOD,CACX,CAOO,SAASgB,EAAmBrE,EAAMsE,GACrC,IAAK,IAAIjpE,EAAK,EAAGkpE,EAAcD,EAAWjpE,EAAKkpE,EAAYhpE,OAAQF,IAE/D,GAAIqnE,EAAa1C,EADCuE,EAAYlpE,IAE1B,OAAO,EAGf,OAAO,CACX,CAoCO,SAASmpE,EAAcxE,EAAMiD,EAAgBwB,GAGhD,OAAQA,GACJ,KAAK7E,EAAgB8E,cACjB,OAAOC,EAAsB3E,EAAMiD,EAAgB,IAAclrE,eACrE,KAAK6nE,EAAgBgF,iBACjB,OAAOD,EAAsB3E,EAAMiD,EALzB,GAMd,QACI,OAmFZ,SAA+BjD,EAAMiD,GACjC,IAAI4B,EAAMC,EAAa9E,GAAQ,EAE3B+E,GADO/E,EAAKiE,SAAYY,EAAM,IAAc9sE,cAC7BkrE,EAAiB,EAAI,IAAclrE,eAAiB,IAAcA,cACrF,OAAO2P,KAAKC,OAAOk9D,EAAME,GAAQ,IAAchtE,cAAgB,EACnE,CAxFmBitE,CAAsBhF,EAAMiD,GAE/C,CAmCA,SAASY,EAAY7D,GACjB,OAAO,IAAI4B,KAAK5B,EAAKM,cAAeN,EAAKI,WAAYJ,EAAKC,UAC9D,CAIO,SAAS6C,EAAqB9C,GAGjC,OAAOA,EAAKC,WAAaD,EAAKI,YAAc,IAAMJ,EAAKM,eAAiB,EAC5E,CASA,SAASqE,EAAsB3E,EAAMiD,EAAgBgC,GACjD,IAAIC,EAAYJ,EAAa9E,GAAQ,EACjC6E,EAAM7E,EAAKiE,SAAYiB,EAAY,IAAcntE,cAEjDotE,EAAaL,EADO,IAAIlD,KAAK5B,EAAKM,cAAgB,EAAGX,EAAYyF,SAAU,KAC5B,EAC/CC,GAAQpC,EAAiB4B,EAAM,EAAI,IAAc9sE,eAAiB,IAAcA,cACvE,IAATstE,GAAcA,GAAQJ,IACtBI,GAAQ,IAActtE,eAE1B,IAAIgtE,EAAOG,EAAYG,EASvB,OARIN,EAAO,IAGM,IADbM,GAAQpC,GADR4B,GAAOM,EAAa,IAAcptE,eACH,EAAI,IAAcA,eAAiB,IAAcA,gBAC9DstE,EAAO,GAAKJ,IAC1BI,GAAQ,IAActtE,eAE1BgtE,EAAOI,EAAaE,GAEjB39D,KAAKC,MAAMo9D,EAAO,IAAchtE,cAAgB,EAC3D,CAkCA,SAAS+sE,EAAa9E,GAIlB,IAHA,IAAIyC,EAAQzC,EAAKI,WACbkF,EAAOtF,EAAKM,cACZiF,EAAgB,EACX5lE,EAAI,EAAGA,EAAI8iE,EAAO9iE,IACvB4lE,GAAiBC,EAAY7lE,EAAI,EAAG2lE,GAGxC,OADAC,EAAiBvF,EAAKC,SAE1B,CAOA,SAASuF,EAAY/C,EAAO6C,GACxB,OAAO,IAAI1D,KAAK0D,EAAM7C,EAAO,GAAGxC,SACpC,C,qCC1WWwF,EAAsB,SAAUnB,EAAWoB,EAASC,GAC3D,IAAIC,EH4MD,SAAuB7zD,EAAIC,EAAMC,GACtC,GAAIA,GAA6B,IAArB3W,UAAUC,OAAc,IAAK,IAA4B2W,EAAxBvS,EAAI,EAAGwS,EAAIH,EAAKzW,OAAYoE,EAAIwS,EAAGxS,KACxEuS,GAAQvS,KAAKqS,IACRE,IAAIA,EAAK/V,MAAMmD,UAAU8S,MAAM7S,KAAKyS,EAAM,EAAGrS,IAClDuS,EAAGvS,GAAKqS,EAAKrS,IAGrB,OAAOoS,EAAGM,OAAOH,GAAM/V,MAAMmD,UAAU8S,MAAM7S,KAAKyS,GACpD,CGpN2BM,CAAc,GAAIgyD,GAAW,GAOpD,OANIoB,IACAE,EAAmBA,EAAiBlpC,QAAO,SAAUsjC,GAAQ,OAAO6C,EAAgB7C,EAAM0F,IAAY,CAAG,KAEzGC,IACAC,EAAmBA,EAAiBlpC,QAAO,SAAUsjC,GAAQ,OAAO6C,EAAgB7C,EAAM2F,IAAY,CAAG,KAEtGC,CACX,ECXWC,EAAkB,SAAU7F,EAAMhmE,GACzC,IAAI0rE,EAAU1rE,EAAQ0rE,QACtB,QAAOA,GAAU7C,EAAgB6C,EAAS1F,IAAS,CACvD,ECHW8F,EAAiB,SAAU9F,EAAMhmE,GACxC,IAAI2rE,EAAU3rE,EAAQ2rE,QACtB,QAAOA,GAAU9C,EAAgB7C,EAAM2F,IAAY,CACvD,ECDWI,EAAmB,SAAU/F,EAAMhmE,GAC1C,IAAIgsE,EAAkBhsE,EAAQgsE,gBAAiBN,EAAU1rE,EAAQ0rE,QAASC,EAAU3rE,EAAQ2rE,QAC5F,SAAKK,GAAoBN,GAAYC,KAGbK,GAAmBA,EAAgB93B,MAAK,SAAU+3B,GAAM,OAAOvD,EAAauD,EAAIjG,EAAO,KACnF6F,EAAgB7F,EAAMhmE,IAAY8rE,EAAe9F,EAAMhmE,GACvF,E,gCCZWksE,EAAyB,SAAU/qE,GAC1C,IAAIgrE,EAAkBhrE,EAAMgrE,gBAAiB5xB,EAAUp5C,EAAMo5C,QAAS0uB,EAAiB9nE,EAAM8nE,eAAgBmD,EAAejrE,EAAMirE,aAAcC,EAAclrE,EAAMkrE,YAAarE,EAAQ7mE,EAAM6mE,MAAO1kE,EAAanC,EAAMmC,WACrNgpE,EAAY/xB,EAAQqsB,UAAUxuD,QAC9Bm0D,GAAoB,QAAUvE,EAAM,IAAI,SAAUwE,GAAO,OAAsC,IAA/BA,EAAIC,aAAaxG,SAAiB,IAMtG,OALoB,IAAhBoG,GAAqBE,GAAqB,IAG1CD,GAD+BC,EAAoBtD,GR6CjC,GQ5CmB1uB,EAAQmsB,YAAYsB,EAAM,GAAGuE,GAAmBE,aAAarG,aAE9F,gBAAoB,KAAM,KAC9B+F,GAAmB,gBAAoB,KAAM,CAAE1oE,UAAWH,EAAWopE,UACrEJ,EAAU7qE,KAAI,SAAUkrE,EAAK7qD,GACzB,IAAInc,GAAKmc,EAAQmnD,GRuCH,EQtCV79C,EAAQmvB,EAAQosB,KAAKhhE,GACzB,OAAQ,gBAAoB,KAAM,CAAElC,WAAW,EAAAsN,EAAA,GAAIzN,EAAWopE,QAASppE,EAAWspE,kBAAmBtlD,MAAO,MAAO/F,IAAK+qD,EAAU3mE,GAAK,IAAMmc,EAAOqK,MAAOf,EAAO,aAAcA,EAAO,sBAAqBghD,QAAsBxnE,GAAa0nE,EAAU3mE,GAC7P,IACR,ECVWknE,EAAoB,SAAU7sE,GACrC,IAAI8sE,EAAa9sE,EAAQ8sE,WAAYC,EAAc/sE,EAAQ+sE,YAAa/iE,EAAYhK,EAAQgK,UAAWgjE,ERgCpG,SAAgBtnE,EAAGkwD,GACxB,IAAInwD,EAAI,CAAC,EACT,IAAK,IAAIJ,KAAKK,EAAOR,OAAOI,UAAUhB,eAAeiB,KAAKG,EAAGL,IAAMuwD,EAAEzgD,QAAQ9P,GAAK,IAC9EI,EAAEJ,GAAKK,EAAEL,IACb,GAAS,MAALK,GAAqD,mBAAjCR,OAAO+nE,sBACtB,KAAItnE,EAAI,EAAb,IAAgBN,EAAIH,OAAO+nE,sBAAsBvnE,GAAIC,EAAIN,EAAE9D,OAAQoE,IAC3DiwD,EAAEzgD,QAAQ9P,EAAEM,IAAM,GAAKT,OAAOI,UAAU4nE,qBAAqB3nE,KAAKG,EAAGL,EAAEM,MACvEF,EAAEJ,EAAEM,IAAMD,EAAEL,EAAEM,IAF4B,CAItD,OAAOF,CACT,CQ1CmI0nE,CAAOntE,EAAS,CAAC,aAAc,cAAe,cACzKotE,EAAgBN,EAEpB,IAAKf,EAAiBe,EAAYE,GAC9B,OAAOF,EAEX,KAAuD,IAAhDjE,EAAgBkE,EAAaK,IAChCrB,EAAiBqB,EAAeJ,KAC/BlB,EAAesB,EAAeJ,KAC9BnB,EAAgBuB,EAAeJ,IAChCI,EAAgBzF,EAAQyF,EAAepjE,GAE3C,OAAoD,IAAhD6+D,EAAgBkE,EAAaK,IAAyBrB,EAAiBqB,EAAeJ,QAA1F,EACWI,CAGf,ECvBWC,EAAsB,SAAUlsE,GACvC,IAAIlB,EACAqtE,EAAgBnsE,EAAMmsE,cAAeC,EAAoBpsE,EAAMosE,kBAAmBnB,EAAejrE,EAAMirE,aAAc7xB,EAAUp5C,EAAMo5C,QAASizB,EAAqBrsE,EAAMqsE,mBAAoBC,EAAkBtsE,EAAMssE,gBAAiBC,EAAyBvsE,EAAMusE,uBAAwB1F,EAAQ7mE,EAAM6mE,MAAO1kE,EAAanC,EAAMmC,WAAYkpE,EAAMrrE,EAAMqrE,IAAKmB,EAAWxsE,EAAMwsE,SAAUC,EAAYzsE,EAAMysE,UAAWC,EAAc1sE,EAAM0sE,YAAat7C,EAAapxB,EAAMoxB,WAAYu7C,EAAmB3sE,EAAM2sE,iBAAkB9E,EAAgB7nE,EAAM6nE,cAAeG,EAAwBhoE,EAAMgoE,sBAAuB4E,EAAe5sE,EAAM4sE,aAAc/B,EAAkB7qE,EAAM6qE,gBAAiBN,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAASqC,EAAiB7sE,EAAM6sE,eAAgBC,EAA0B9sE,EAAM8sE,wBAAyBC,EAAsB/sE,EAAM+sE,oBACz1BC,EAA2H,QAA5GluE,EAAK4tE,aAAiD,EAASA,EAAYD,EAAY,IAAMD,UAA8B,IAAP1tE,EAAgBA,EAAK,GACxJmuE,EAAkB1F,EAAa4E,EAAed,EAAIC,cAgIlD9rD,EAAY6rD,EAAIC,aAAaxG,UAC7B,KACA1rB,EAAQ4rB,OAAOqG,EAAIC,aAAarG,YAChC,KACAoG,EAAIC,aAAanG,cAIrB,OAHIkG,EAAI6B,WACJ1tD,EAAYA,EAAY,KAAO45B,EAAQmtB,oBAEnC,gBAAoB,KAAM,CAAEjkE,WAAW,EAAAsN,EAAA,GAAIzN,EAAWopE,QAASmB,GAAeM,EAAa3B,EAAIvtB,YAAc37C,EAAWgrE,YAAa9B,EAAIvtB,YAAc,8BAA+ButB,EAAI+B,YAAcjrE,EAAWkrE,kBAAmBhC,EAAIiC,WAAanrE,EAAWorE,0BAA2Bv9D,IAAK,SAAUtS,GAC5SivE,SAAoEA,EAAiBjvE,EAAS2tE,EAAIC,aAAcnpE,GAChHkpE,EAAImC,OAAO9vE,GACXuvE,IAAoBX,EAAgBzkE,QAAUnK,EAClD,EAAG,cAAe0zB,EAAY,iBAAkBA,IAAei6C,EAAI+B,WAAY5vD,QAAS6tD,EAAI+B,aAAeh8C,EAAai6C,EAAIoC,gBAAahqE,EAAWiqE,YAAct8C,OAA8B3tB,EAhF/K,SAAU4B,GAC3B,IAAIsoE,EAAWb,EAAwBzB,GACnCuC,EAAUb,EAAoBY,GAClCC,EAAQ5/D,SAAQ,SAAU6/D,EAAQltD,GAC9B,IAAI7hB,EACJ,GAAI+uE,IACAA,EAAOC,UAAUz/D,IAAI,8BAChBs/D,EAAShtD,GAAOm9B,YACjB+pB,IAAkBnD,EAAc+D,KAChCT,GACAA,EAAwB,GAAG,CAE3B6F,EAAOC,UAAUC,OAAO5rE,EAAW6rE,qBAAsB7rE,EAAW8rE,sBAAuB9rE,EAAW+rE,kBAAmB/rE,EAAWgsE,oBACpI,IAAIC,EAAkB7B,EAAuBpqE,GAAY,GAAO,EAAOwe,EAAQ,EAAGA,EAAQitD,EAAQxtE,OAAS,GAAGqkD,OAC1G2pB,IACCtvE,EAAK+uE,EAAOC,WAAWz/D,IAAIhO,MAAMvB,EAAIsvE,EAAgBn9C,MAAM,KAEpE,CAER,GACJ,EA4D+MnB,YAAcsB,OAA8B3tB,EA3DtO,SAAU4B,GAC3B,IAAIsoE,EAAWb,EAAwBzB,GACzB0B,EAAoBY,GAC1B3/D,SAAQ,SAAU6/D,GAClBA,GACAA,EAAOC,UAAUz/D,IAAI,8BAE7B,GACJ,EAmDsQwhB,UAAYuB,OAA4B3tB,EAlD3R,SAAU4B,GACzB,IAAIsoE,EAAWb,EAAwBzB,GACzB0B,EAAoBY,GAC1B3/D,SAAQ,SAAU6/D,GAClBA,GACAA,EAAOC,UAAUC,OAAO,8BAEhC,GACJ,EA0CyTM,WAAaj9C,OAA6B3tB,EAzC/U,SAAU4B,GAC1B,IAAIsoE,EAAWb,EAAwBzB,GACnCuC,EAAUb,EAAoBY,GAClCC,EAAQ5/D,SAAQ,SAAU6/D,EAAQltD,GAC9B,IAAI7hB,EACJ,GAAI+uE,IACAA,EAAOC,UAAUC,OAAO,6BACxBF,EAAOC,UAAUC,OAAO,gCACnBJ,EAAShtD,GAAOm9B,YACjB+pB,IAAkBnD,EAAc+D,KAChCT,GACAA,EAAwB,GAAG,CAC3B,IAAIoG,EAAkB7B,EAAuBpqE,GAAY,GAAO,EAAOwe,EAAQ,EAAGA,EAAQitD,EAAQxtE,OAAS,GAAGqkD,OAC1G2pB,IACCtvE,EAAK+uE,EAAOC,WAAWC,OAAO1tE,MAAMvB,EAAIsvE,EAAgBn9C,MAAM,KAEvE,CAER,GACJ,EAsB8WhoB,UAAYmoB,OAA4B3tB,EArBnY,SAAU4B,GAErBA,EAAGqE,QAAUC,EAAA,EAASiC,MACtBghE,SAA4DA,EAAavB,EAAIC,cAzH7D,SAAUjmE,EAAIw/D,GAClC,IAAI8G,OAAaloE,EACboF,EAAY,EAmBhB,GAjBIxD,EAAGqE,QAAUC,EAAA,EAASU,IACtBshE,EAAa/E,EAAS/B,GAAO,GAC7Bh8D,GAAa,GAGRxD,EAAGqE,QAAUC,EAAA,EAASa,KAC3BmhE,EAAa/E,EAAS/B,EAAM,GAGvBx/D,EAAGqE,SAAU,QAAkBC,EAAA,EAASI,OAC7C4hE,EAAanF,EAAQ3B,GAAO,GAC5Bh8D,GAAa,GAGRxD,EAAGqE,SAAU,QAAkBC,EAAA,EAASQ,SAC7CwhE,EAAanF,EAAQ3B,EAAM,IAE1B8G,EAAL,CAIA,IAAI2C,EAA2B,CAC3B1C,YAAa/G,EACb8G,WAAYA,EACZ9iE,UAAWA,EACXgiE,gBAAiBA,EACjBN,QAASA,EACTC,QAASA,GAITvB,EAAWyC,EAAkB4C,GAC5BrF,IAEDqF,EAAyBzlE,WAAaA,EACtCogE,EAAWyC,EAAkB4C,IAIXzH,GAClBoC,GACApC,EAAM5vD,MAAM,EAAG4vD,EAAMzmE,OAAS,GAAG2yC,MAAK,SAAUw7B,GAC5C,OAAOA,EAAKx7B,MAAK,SAAUy7B,GACvB,OAAOjH,EAAaiH,EAAalD,aAAcrC,EACnD,GACJ,KAKAA,IACA4D,EAAe5D,GAAU,GACzB5jE,EAAGyG,iBAhCP,CAkCJ,CAkEQ2iE,CAAkBppE,EAAIgmE,EAAIC,aAElC,EAaia5pD,KAAM,WAAY/P,SAAUs7D,EAAkB,OAAIxpE,EAAW,eAAgB4nE,EAAIqD,QAAU,YAASjrE,EAAW,gBAAiB4nE,EAAI+B,WAAa/B,EAAIvtB,gBAAar6C,EAAW,qBAAsB2tB,IAAe65C,KAAiBI,EAAI+B,iBAAoB3pE,IACxpB,gBAAoB,SAAU,CAAE2c,IAAKirD,EAAIjrD,IAAM,SAAU,cAAegR,EAAY9uB,WAAW,EAAAsN,EAAA,GAAIzN,EAAWwsE,UAAWtD,EAAIqD,SAAWvsE,EAAWysE,WAAYvD,EAAIqD,SAAW,6BAA8B,aAAclvD,EAAWvH,GAAIg1D,EAAkBZ,OAAqB5oE,EAAW+E,UAAW4oB,IAAei6C,EAAI+B,WAAYjsE,KAAM,SAAUwQ,UAAW,EAAG,oBAAqB,SACpX,gBAAoB,OAAQ,CAAE,cAAe,QAAUy6D,EAAkBxH,UAAUyG,EAAIC,eACvFD,EAAI6B,UAAY,gBAAoB,MAAO,CAAE,cAAe,OAAQ5qE,UAAWH,EAAW0sE,aACtG,EClJWC,EAAkB,SAAU9uE,GACnC,IAAImC,EAAanC,EAAMmC,WAAYosE,EAAOvuE,EAAMuuE,KAAM1H,EAAQ7mE,EAAM6mE,MAAO4F,EAAYzsE,EAAMysE,UAAWsC,EAAe/uE,EAAM+uE,aAAcC,EAAWhvE,EAAMgvE,SAAUhE,EAAkBhrE,EAAMgrE,gBAAiBlD,EAAiB9nE,EAAM8nE,eAAgBwB,EAAkBtpE,EAAMspE,gBAAiB6C,EAAgBnsE,EAAMmsE,cAAe/yB,EAAUp5C,EAAMo5C,QAChV61B,EAAcjE,ERwMf,SAA+BkE,EAAcpH,EAAgBwB,EAAiB6C,GACjF,IAAIgD,EAAehD,EAAchH,cAC7BiK,EAAgBjD,EAAclH,WAC9BoK,EAAa,EACbC,EAAiB,IAAI7I,KAAK0I,EAAcC,EAAeC,GACvDE,EAAiBF,GAChBvH,EAAiB,IAAclrE,cAAgB,GAgIxD,SAAuBkrE,EAAgB0H,GACnC,OAAO1H,IAAmBvD,EAAUkL,QAAUD,EAAc1H,EACtD0H,EAAc,IAAc5yE,cAC5B4yE,CACV,CAnIQE,CAAc5H,EAAgBwH,EAAexG,UAC7C6G,EAAiB,IAAIlJ,KAAK0I,EAAcC,EAAeG,GAC3DF,EAAaM,EAAe7K,UAE5B,IADA,IAAI8K,EAAa,GACRprE,EAAI,EAAGA,EAAI0qE,EAAc1qE,IAE9BorE,EAAWvtE,KAAKgnE,EAAcsG,EAAgB7H,EAAgBwB,IAC9D+F,GAAc,IAAczyE,cAC5B+yE,EAAiB,IAAIlJ,KAAK0I,EAAcC,EAAeC,GAE3D,OAAOO,CACX,CQzNUC,CAAsBhJ,EAAMzmE,OAAQ0nE,EAAgBwB,EAAiB6C,GACrE,KACF2D,EAAcb,EACZ71B,EAAQusB,yBAA0B,OAAOvsB,EAAQusB,uBAAwBsJ,EAAYxC,IACrF,GACN,OAAQ,gBAAoB,KAAM,CAAE/qD,KAAMstD,EAAU1sE,UAAWysE,EAAc3uD,IAAKqsD,EAAY,IAAM8B,EAAK,GAAGnuD,KACxG4qD,GAAmBiE,GAAgB,gBAAoB,KAAM,CAAE3sE,UAAWH,EAAW4tE,eAAgB3vD,IAAKqsD,EAAWzhD,MAAO8kD,EAAa,aAAcA,EAAa3pD,MAAO,OACvK,gBAAoB,OAAQ,KAAM8oD,EAAYxC,KAClD8B,EAAKjuE,KAAI,SAAU+qE,EAAKmB,GAAY,OAAQ,gBAAoBN,GAAqB,QAAS,CAAC,EAAGlsE,EAAO,CAAEogB,IAAKirD,EAAIjrD,IAAKirD,IAAKA,EAAKmB,SAAUA,IAAe,IACpK,ECTInuD,GAAgB,EAAAC,EAAA,KAapB,SAAS0xD,EAAShwE,EAAO4sE,EAAcqD,GAqCnC,OAhCY,WAAc,WAatB,IAZA,IAAInxE,EACAoxE,ECjBY,SAAUrxE,GAC9B,IAIIgmE,EAJAsL,EAAetxE,EAAQsxE,aAActI,EAAgBhpE,EAAQgpE,cAAeC,EAAiBjpE,EAAQipE,eAAgBsI,EAAQvxE,EAAQuxE,MAAO7F,EAAU1rE,EAAQ0rE,QAASC,EAAU3rE,EAAQ2rE,QAASU,EAAcrsE,EAAQqsE,YAAanD,EAAelpE,EAAQkpE,aAAcC,EAAwBnpE,EAAQmpE,sBAAuB6C,EAAkBhsE,EAAQgsE,gBAAiBwF,EAAaxxE,EAAQwxE,WACjYxE,EAAwB,CAAEtB,QAASA,EAASC,QAASA,EAASK,gBAAiBA,GAC/EyF,EAAaF,GAAS,IAAI3J,KAC1B0F,EAAgBttE,EAAQstE,cAAgBttE,EAAQstE,cAAgBmE,EAIhEzL,EAFAqG,GAAeA,GAAe,EAEvB,IAAIzE,KAAK0F,EAAchH,cAAegH,EAAclH,WAAYkH,EAAcrH,WAG9E,IAAI2B,KAAK0F,EAAchH,cAAegH,EAAclH,WAAY,GAI3E,IAFA,IAAI4B,EAAQ,GAELhC,EAAKiE,WAAahB,GACrBjD,EAAK8B,QAAQ9B,EAAKC,UAAY,GAGlCD,EAAO2B,EAAQ3B,GbwBO,GatBtB,IAAI0L,GAA4B,EAE5BC,ECzB2B,SAAU3I,EAAeE,EAAcD,GACtE,OAAIC,GAAgBF,IAAkBnD,EAAckE,UCJ9B,SAAUpD,EAAMiL,EAAc3I,GAGpD,IAFA,IAAI4I,EAAS,IAAItqE,IAAIo/D,GACjBmL,EAAsB,EACjBzwE,EAAK,EAAG0wE,EAASpL,EAAMtlE,EAAK0wE,EAAOxwE,OAAQF,IAAM,CACtD,IACI2wE,GADMD,EAAO1wE,GACI,GAAK,IACpBwwE,EAAOI,IAAID,IAA8B/I,IAAmB+I,IAC9DF,GAER,CAGA,OAAOA,EAAsB,CACjC,CDRaI,CAAahJ,EAAc,EAAMD,IAA2C,IAAxBC,EAAa3nE,OAInEynE,EAHQnD,EAAciE,IAIjC,CDkBgCqI,CAAsBnJ,EAAeE,EAAcD,GAC3EmJ,EAAgB,GAChBd,IACAc,EAAgBrJ,EAAkBuI,EAAcK,EAAuB1I,EAAgBC,EAAcC,GACrGiJ,EAAgB3G,EAAoB2G,EAAe1G,EAASC,IAGhE,IADA,IAAI0G,GAAiB,EACZzE,EAAY,EAAGyE,EAAgBzE,IAAa,CACjD,IAAI8B,EAAO,GACXgC,GAA4B,EAmB5B,IAlBA,IAAIttE,EAAU,SAAUupE,GACpB,IAAIlB,EAAe,IAAI7E,KAAK5B,EAAK6B,WAC7ByK,EAAU,CACV/wD,IAAKykD,EAAK5mD,WACV4mD,KAAMA,EAAKC,UAAU7mD,WACrBqtD,aAAcA,EACdgC,UAAWzI,EAAKI,aAAekH,EAAclH,WAC7CyJ,QAASnH,EAAa+I,EAAYzL,GAClC/mB,WAAYorB,EAAmBrE,EAAMoM,GACrC7D,YAAaxC,EAAiB/F,EAAMgH,GACpCqB,UAAWmD,aAA+C,EAASA,EAAWt9B,MAAK,SAAUq+B,GAAa,OAAO7J,EAAa+D,EAAc8F,EAAY,OAAO,GAEnK7C,EAAKlsE,KAAK8uE,GACNA,EAAQ7D,YACRiD,GAA4B,GAEhC1L,EAAK8B,QAAQ9B,EAAKC,UAAY,EAClC,EACS0H,EAAW,EAAGA,EbRL,EaQ8BA,IAC5CvpE,IAGJiuE,EAAiBhG,EAAcuB,EAAYvB,EAAc,GAAKqF,GAA2C,IAAd9D,EAE3F5F,EAAMxkE,KAAKksE,EACf,CACA,OAAO1H,CACX,CD3CwBwK,CAAWrxE,GACvBsxE,EAAkBpB,EAAU,GAAG,GAAG5E,aAClCiG,EAAiBrB,EAAUA,EAAU9vE,OAAS,GAAG,GAAGkrE,aACpD+E,GAA6C,QAA9BvxE,EAAKkB,EAAMwxE,qBAAkC,IAAP1yE,OAAgB,EAASA,EAAGsF,KAAKpE,EAAOsxE,EAAiBC,KAAoB,GAOlIl0C,EAAc,GACTovC,EAAY,EAAGA,EAAYyD,EAAU9vE,OAAQqsE,IAAa,CAO/D,IANA,IAAI8B,EAAO,GACPtrE,EAAU,SAAUupE,GACpB,IAAInB,EAAM6E,EAAUzD,GAAWD,GAC3B2E,GAAU,SAAS,QAAS,CAAE1D,WAAY,WAAc,OAAOb,EAAavB,EAAIC,aAAe,EAAGkC,OAAQyC,EAAkB5E,EAAIjrD,MAAQirD,GAAM,CAAE6B,SAAU7B,EAAI6B,WAAamD,aAA+C,EAASA,EAAWt9B,MAAK,SAAUq+B,GAAa,OAAO7J,EAAa8D,EAAIC,aAAc8F,EAAY,OAChU7C,EAAKlsE,KAAK8uE,EACd,EACS3E,EAAW,EAAGA,EZQT,EYRkCA,IAC5CvpE,EAAQupE,GAEZnvC,EAAYh7B,KAAKksE,EACrB,CACA,OAAOlxC,CAMX,GAAG,CAACr9B,GAER,CAuHO,IAAIyxE,GAAsB,SAAUzxE,GACvC,IAAIssE,EAAkB,SAAa,MAC/BD,GAAqB,EAAAh2D,EAAA,KAarBvX,EAxLR,WACI,IAAI4yE,EAAU,SAAa,CAAC,GAS5B,MAAO,CAACA,EARgB,SAAUC,GAAU,OAAO,SAAUj0E,GACzC,OAAZA,SACOg0E,EAAQ7pE,QAAQ8pE,GAGvBD,EAAQ7pE,QAAQ8pE,GAAUj0E,CAElC,CAAG,EAEP,CA6Kak0E,GAAcF,EAAU5yE,EAAG,GAAImxE,EAAoBnxE,EAAG,GAC3D+nE,EAAQmJ,EAAShwE,GAbF,SAAUmwE,GACzB,IAAIrxE,EAAI2H,EACJqhE,EAAiB9nE,EAAM8nE,eAAgByC,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAASzC,EAAe/nE,EAAM+nE,aAAcC,EAAwBhoE,EAAMgoE,sBAC1J6J,EAAyB,CAAEtH,QAASA,EAASC,QAASA,EAASK,gBADoI7qE,EAAM6qE,iBAEzM1B,EAAYvB,EAAkBuI,EAActI,EAAeC,EAAgBC,EAAcC,GAE7FmB,GADAA,EAAYmB,EAAoBnB,EAAWoB,EAASC,IAC9BjpC,QAAO,SAAU19B,GACnC,OAAQ+mE,EAAiB/mE,EAAGguE,EAChC,IAC8B,QAA7B/yE,EAAKkB,EAAM4sE,oBAAiC,IAAP9tE,GAAyBA,EAAGsF,KAAKpE,EAAOmwE,EAAchH,GAC5D,QAA/B1iE,EAAKzG,EAAM6sE,sBAAmC,IAAPpmE,GAAyBA,EAAGrC,KAAKpE,EAAOmwE,GAAc,EAClG,GAE0CF,GACtC6B,EAnIR,SAA6BjL,GACzB,IAAIkL,GAAwB,EAAAp6D,EAAA,GAAYkvD,EAAM,GAAG,GAAGyE,cACpD,OAAKyG,GAAyBA,EAAsBrL,YAAcG,EAAM,GAAG,GAAGyE,aAAa5E,YAGlFqL,GAAyBlL,EAAM,GAAG,GAAGyE,mBAF1C,CAQR,CAwH2B0G,CAAoBnL,GACvCpgE,EAxHR,SAA6BzG,GASzB,IAsCIusE,EAAyB,SAAUpqE,EAAY8vE,EAAOC,EAAOnoE,EAAMI,GACnE,IAAI4S,EAAQ,GAERo1D,GAAmBF,IAAU9nE,EAC7BioE,GAAqBF,IAAUnoE,EAC/BsoE,GAAsBH,IAAU/nE,EAapC,OAhBsB8nE,IAAUloE,GAK5BgT,EAAM1a,MAAK,UAAWF,EAAWgsE,mBAAqBhsE,EAAW+rE,mBAEjEiE,GACAp1D,EAAM1a,MAAK,UAAWF,EAAW+rE,kBAAoB/rE,EAAWgsE,oBAEhEiE,GACAr1D,EAAM1a,MAAK,UAAWF,EAAW8rE,sBAAwB9rE,EAAW6rE,sBAEpEqE,GACAt1D,EAAM1a,MAAK,UAAWF,EAAW6rE,qBAAuB7rE,EAAW8rE,uBAEhElxD,EAAM26B,KAAK,IACtB,EAiBI46B,EAAqB,SAAU9K,EAAOC,EAAO8K,EAAeC,GAC5D,IAAI3K,EAAgB7nE,EAAM6nE,cAAeC,EAAiB9nE,EAAM8nE,eAAgBC,EAAe/nE,EAAM+nE,aAIjGoB,EAAYvB,EAAkBJ,EAFTK,IAAkBnD,EAAckE,SAAWlE,EAAciE,KAAOd,EAE5BC,EAAgBC,GAC7E,OAAIwK,IAAkBC,OAIbD,IAAiBC,IAKnBrJ,EAAU5nC,QAAO,SAAUsjC,GAAQ,OAAOA,EAAK6B,YAAce,EAAMf,SAAW,IAAGtmE,OAAS,EACrG,EACA,MAAO,CA3FmB,SAAU+B,EAAYswE,GAC5C,IAAIC,EAAoB,CAAC,EAerB7L,EAAQ4L,EAAax7D,MAAM,EAAGw7D,EAAaryE,OAAS,GAoBxD,OAlBAymE,EAAM74D,SAAQ,SAAUugE,EAAM9B,GAC1B8B,EAAKvgE,SAAQ,SAAUq9D,EAAKmB,GACxB,IAAIyF,EAAQpL,EAAM4F,EAAY,IAC1B5F,EAAM4F,EAAY,GAAGD,IACrB8F,EAAmBzL,EAAM4F,EAAY,GAAGD,GAAUlB,aAAcD,EAAIC,aAAczE,EAAM4F,EAAY,GAAGD,GAAU1uB,WAAYutB,EAAIvtB,YACjIo0B,EAAQrL,EAAM4F,EAAY,IAC1B5F,EAAM4F,EAAY,GAAGD,IACrB8F,EAAmBzL,EAAM4F,EAAY,GAAGD,GAAUlB,aAAcD,EAAIC,aAAczE,EAAM4F,EAAY,GAAGD,GAAU1uB,WAAYutB,EAAIvtB,YACjI/zC,EAAO88D,EAAM4F,GAAWD,EAAW,IACnC8F,EAAmBzL,EAAM4F,GAAWD,EAAW,GAAGlB,aAAcD,EAAIC,aAAczE,EAAM4F,GAAWD,EAAW,GAAG1uB,WAAYutB,EAAIvtB,YACjI3zC,EAAQ08D,EAAM4F,GAAWD,EAAW,IACpC8F,EAAmBzL,EAAM4F,GAAWD,EAAW,GAAGlB,aAAcD,EAAIC,aAAczE,EAAM4F,GAAWD,EAAW,GAAG1uB,WAAYutB,EAAIvtB,YACjI/gC,EAAQ,GACZA,EAAM1a,KAAKkqE,EAAuBpqE,EAAY8vE,EAAOC,EAAOnoE,EAAMI,IAClE4S,EAAM1a,KA0BU,SAAUF,EAAY8vE,EAAOC,EAAOnoE,EAAMI,GAClE,IAAI4S,EAAQ,GAaZ,OAZKk1D,GACDl1D,EAAM1a,KAAKF,EAAWwwE,YAErBT,GACDn1D,EAAM1a,KAAKF,EAAWywE,YAErB7oE,GACDgT,EAAM1a,MAAK,UAAWF,EAAW0wE,WAAa1wE,EAAW2wE,WAExD3oE,GACD4S,EAAM1a,MAAK,UAAWF,EAAW2wE,UAAY3wE,EAAW0wE,YAErD91D,EAAM26B,KAAK,IACtB,CAzCuBq7B,CAAsB5wE,EAAY8vE,EAAOC,EAAOnoE,EAAMI,IACjEuoE,EAAkBjG,EAAY,IAAMD,GAAYzvD,EAAM26B,KAAK,IAC/D,GACJ,IACOg7B,CACX,EAsD6BnG,EACjC,CAmBayG,CAAoBhzE,GAAQizE,EAAsBxsE,EAAG,GAAI8lE,EAAyB9lE,EAAG,GAC9F,sBAA0BzG,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,WACH,IAAIjJ,EAAI2H,EACgF,QAAvFA,EAAwC,QAAlC3H,EAAKwtE,EAAgBzkE,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EACrI,EACA,GAAG,IAQP,IAgBIiB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWulE,EAAgB7nE,EAAM6nE,cAAemD,EAAkBhrE,EAAMgrE,gBAAiBkI,EAAalzE,EAAMkzE,WAAYC,EAAmCnzE,EAAMmzE,iCAAkCC,EAAqBpzE,EAAMozE,mBAC5RjxE,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXulE,cAAeA,EACfmD,gBAAiBA,EACjBmI,sCAAuE1vE,IAArC0vE,GAAwDA,EAC1FC,mBAAoBA,EACpBtB,iBAAkBA,IAGlBpF,EAAcuG,EAAoB9wE,EAAY0kE,GAC9CwM,EAAmB,CACnBxM,MAAOA,EACPyF,gBAAiBA,EACjBC,uBAAwBA,EACxBF,mBAAoBA,EACpBlqE,WAAYA,EACZuqE,YAAaA,EACbI,wBAnC0B,SAAU0B,GAEpC,IAAI8E,EAiDZ,SAA+BzL,EAAeE,GAC1C,GAAIA,GAAgBF,IAAkBnD,EAAckE,SAAU,CAG1D,IAFA,IAAI2K,EAAexL,EAAa9wD,QAAQk5C,OACpC4gB,GAAe,EACVvsE,EAAI,EAAGA,EAAI+uE,EAAanzE,OAAQoE,IACrC,GAAI+uE,EAAa/uE,KAAO+uE,EAAa/uE,EAAI,GAAK,EAAG,CAC7CusE,GAAe,EACf,KACJ,CAEJ,IAAKA,GAAwC,IAAxBhJ,EAAa3nE,OAC9B,OAAOskE,EAAciE,IAE7B,CACA,OAAOd,CACX,CAhEiC,CAAsB7nE,EAAM6nE,cAAe7nE,EAAM+nE,cAEtEoB,EAAYvB,EAAkB4G,EAAalD,aAAcgI,EAAoBtzE,EAAM8nE,eAAgB9nE,EAAM+nE,aAAc/nE,EAAMgoE,uBAAuB1nE,KAAI,SAAUukE,GAAQ,OAAOA,EAAK6B,SAAW,IAKrM,OAHsBG,EAAMnT,QAAO,SAAU8f,EAAkBC,GAC3D,OAAOD,EAAiBt8D,OAAOu8D,EAAYlyC,QAAO,SAAUmyC,GAAW,OAA8D,IAAvDvK,EAAUn1D,QAAQ0/D,EAAQpI,aAAa5E,UAAmB,IAC5I,GAAG,GAEP,EA0BIqG,oBAzBsB,SAAU4G,GAGhC,OADUA,EAAgBrzE,KAAI,SAAU6wE,GAAW,OAAOO,EAAQ7pE,QAAQspE,EAAQ/wD,IAAM,GAE5F,GAuBA,OAAQ,gBAAoB7Z,EAAA,EAAW,CAAEjE,UAAWH,EAAWwzD,QAAS/jD,2BAA2B,GAC/F,gBAAoB,QAAS,CAAEtP,UAAWH,EAAWy5C,MAAO,uBAAwB,QAAS,kBAAmBs3B,EAAY,wBAAyB7G,EAAoB3qD,KAAM,QAC3K,gBAAoB,QAAS,KACzB,gBAAoBqpD,GAAwB,QAAS,CAAC,EAAG/qE,EAAO,CAAEmC,WAAYA,EAAY0kE,MAAOA,KACjG,gBAAoBiI,GAAiB,QAAS,CAAC,EAAG9uE,EAAOqzE,EAAkB,CAAE9E,KAAM1H,EAAM,GAAI4F,WAAY,EAAGsC,aAAc5sE,EAAWyxE,oBAAqB5E,SAAU,eAAgB59C,YAAY,KAChMy1C,EAAM5vD,MAAM,EAAG4vD,EAAMzmE,OAAS,GAAGE,KAAI,SAAUiuE,EAAM9B,GAAa,OAAQ,gBAAoBqC,GAAiB,QAAS,CAAC,EAAG9uE,EAAOqzE,EAAkB,CAAEjzD,IAAKqsD,EAAW8B,KAAMA,EAAM9B,UAAWA,EAAWsC,aAAc5sE,EAAW0xE,UAAc,IAChP,gBAAoB/E,GAAiB,QAAS,CAAC,EAAG9uE,EAAOqzE,EAAkB,CAAE9E,KAAM1H,EAAMA,EAAMzmE,OAAS,GAAIqsE,WAAY,EAAGsC,aAAc5sE,EAAW2xE,mBAAoB9E,SAAU,eAAgB59C,YAAY,OAC9N,EACAqgD,GAAoBtyE,YAAc,sB,II7PvB40E,G,aACX,SAAWA,GAIPA,EAAmBA,EAA+B,WAAI,GAAK,aAI3DA,EAAmBA,EAA6B,SAAI,GAAK,UAC5D,CATD,CASGA,KAAuBA,GAAqB,CAAC,ICThD,IAAI3wD,GAAmB,CACnB4wD,WAAY,4BACZC,aAAc,8BACdC,gBAAiB,4BACjBC,iBAAkB,8BAElBC,IAA6B,SAAU,CACvC,OAAQ,CACJtnE,MAAO,EACP8G,OAAQ,EACR4N,SAAU,UAEd,QAAS,CACL1U,MAAO,OACP8G,OAAQ,GACR4N,SAAU,WAEd,KAAM,CACF1U,MAAO,OACP8G,OAAQ,GACR4N,SAAU,aCrBP6yD,IAAkB,EAAA1wD,EAAA,GAAO8tD,IDwBhB,SAAUzxE,GAC1B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EACpCr3B,EAAQI,EAAMJ,MAAOioE,EAAgB7nE,EAAM6nE,cAAemD,EAAkBhrE,EAAMgrE,gBAAiBmI,EAAmCnzE,EAAMmzE,iCAAkCrB,EAAmB9xE,EAAM8xE,iBAAkBsB,EAAqBpzE,EAAMozE,mBACpPvvD,EAAUjkB,EAAMikB,QAChB1hB,GAAa,SAAoBihB,GAAkBxjB,GACnD00E,EAAoB,CAAC,OACA7wE,IAArBquE,IAEIwC,EADAlB,IAAuBW,GAAmBQ,WACtBzC,EAAmB,MAAgB0C,eAAiB,MAAgBC,cAGpE3C,EAAmB,MAAgB4C,cAAgB,MAAgBC,aAG/F,IAAIC,EAAmC,CAAC,EACpCC,EAAkC,CAAC,OACdpxE,IAArBquE,GACIsB,IAAuBW,GAAmBQ,aAC1CK,EAAmC9C,EAAmB,CAAEgD,cAAe,IAAO,MAAgBC,aAC9FF,EAAkC/C,EAAmB,MAAgBkD,eAAiB,CAAEF,cAAe,KAG/G,IAAIG,EAAgB,CAChBnlE,UAAW,CACP,0BAA2B,CACvB2O,MAAOoF,EAAQmS,mBACfgD,cAAe,UAI3B,MAAO,CACH28B,QAAS,CACLplB,cAAe,IAEnBqL,MAAO,CACH,CACIvnB,UAAW,SACX6gD,eAAgB,WAChBC,cAAe,IACfj4B,YAAa,QACb53B,SAAU,UACVkU,UAAW,EACX1sB,MAAO,IACP8Y,SAAU,WACV2qB,cAAe,IAEnBy6B,GAAmB,CACfl+D,MAAO,MAGfy+D,QAAS,EACL,SAAc3rE,EAAO,CAAEi1B,OAAQ,IAC/B,CACIrP,OAAQ,EACRJ,QAAS,EACTtY,MAAO,GACP8G,OAAQ,GACRyR,WAAY,GACZC,SAAU,MAAUS,MACpBhB,WAAY,MAAYT,QACxB7F,MAAOoF,EAAQW,eACfpI,OAAQ,UACRwJ,SAAU,WACV9V,WAAYhR,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAE2f,MAAO,aAAcwG,gBAAiB,cAAe8jB,OAAQ,IAAK,YACxGjqC,EAAG,KAAOqD,EAAW6xE,YAAc,CAC/B/uD,gBAAiBpB,EAAQ4T,eACzB3nB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBsiC,OAAQ,EACR9jB,gBAAiB,SACjBlV,QAAS,uBAEbtJ,IAER3H,EAAG,KAAOqD,EAAW8xE,cAAgB,CACjChvD,gBAAiBpB,EAAQkS,aACzBjmB,WAAYpJ,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBkgB,YAAa,YACbnI,MAAO,YACPwG,gBAAiB,UAErBve,IAER5H,EAAG,KAAOqD,EAAW8xE,aAAe,IAAM9xE,EAAW6xE,YAAc,CAC/DlkE,WAAYnJ,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBse,gBAAiB,SACjBlV,QAAS,uBAEbpJ,IAER7H,KAGZquE,YAAa,CACTtF,IAAkBnD,EAAcsE,OAAS,CACrC/jD,gBAAiBpB,EAAQkS,aAAe,aACxCjmB,WAAY8T,EAAK,CACT,YAAa,CACTlB,QAAS,KACTkD,SAAU,WACVnZ,IAAK,EACLE,OAAQ,EACR5C,KAAM,EACNI,MAAO,IAGfyZ,EAAG,cAAgBzhB,EAAW6xE,WAAa,OAAS7xE,EAAW8xE,eAAiB99C,EAAK,CAC7ElR,gBAAiBpB,EAAQkS,aAAe,cAE5CI,EAAG,OAAwB,CACvB1X,MAAO,0BACP4rB,WAAY,uBAEhBlU,GACJvS,EAAG,QAAwB,QAAS,CAAEymB,WAAY,sBAAuB5rB,MAAO,0BAA2BmI,YAAa,wBAAyB,YACjJhD,KAGZiwD,QAASS,EACT7I,iBAAkB,MAAgB2J,UAClCrF,eAAgB,CACZvqD,OAAQ,EACRJ,QAAS,EACT6T,YAAa,YACbrS,YAAa/C,EAAQkS,aACrB9Q,gBAAiBpB,EAAQwxD,kBACzB52D,MAAOoF,EAAQO,iBACf4Q,UAAW,aACXloB,MAAO,GACP8G,OAAQ,GACRmR,WAAY,MAAYT,QACxBgB,SAAU,MAAUS,OAExBsnD,iBAAkB4H,EAClB1H,yBAA0B4F,GAAoC,CAC1D10D,MAAOoF,EAAQO,iBACfW,WAAY,MAAYT,SAE5BqqD,UAAW,CACP7hE,MAAO,GACP8G,OAAQ,GACRyR,WAAY,GACZC,SAAU,MAAUS,MACpBhB,WAAY,UACZ+P,aAAc,EACdnO,OAAQ,OACRvB,QAAS,EACT3G,MAAO,UACPwG,gBAAiB,cACjB7I,OAAQ,UACRoF,SAAU,UACV1R,UAAW,CACPwlE,KAAM,CACF1hE,OAAQ,UACRyR,WAAY,aAIxBupD,WAAY,CACR3pD,gBAAiBpB,EAAQiD,aAAe,aACxCgO,aAAc,OACdrW,MAAOoF,EAAQiS,MAAQ,aACvB/Q,WAAa,MAAYJ,SAAW,aACpC7U,WAAYsmB,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAEiU,WAAY,uBAAwB5rB,MAAO,mBAAoBmI,YAAa,yBAA0B,YAC5IwP,IAERw9C,qBAAqB,SAAS,QAAS,CAAEhuD,SAAU,WAAY0b,QAAS,EAAGx0B,MAAO,EAAG8G,OAAQ,EAAG4N,SAAU,UAAYozD,GAAmC,CAAEE,cAAeF,EAAiCE,cAAgB,IAAMV,KACjON,oBAAoB,SAAS,QAAS,CAAEluD,SAAU,WAAY0b,QAAS,EAAGx0B,MAAO,EAAG8G,OAAQ,EAAG4N,SAAU,SAAUgY,WAAY,IAAMq7C,GAAkC,CAAEC,cAAeD,EAAgCC,cAAgB,IAAMV,KAC9OvF,UAAW,CACP/hE,MAAO,EACP8G,OAAQ,EACRqR,gBAAiBpB,EAAQO,iBACzB0Q,aAAc,OACdnoB,OAAQ,EACR5C,KAAM,EACNI,MAAO,EACPyb,SAAU,WACVJ,OAAQ,OACR1V,WAAYumB,EAAK,CAAC,EACdA,EAAG,IAAMl0B,EAAW+xE,gBAAkB,MAAQ,CAC1CjvD,gBAAiBpB,EAAQiS,MACzBhmB,WAAYwmB,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBrR,gBAAiB,UAErBqR,IAERD,EAAG,IAAMl0B,EAAWgyE,iBAAmB,MAAQ,CAC3CrkE,WAAYmnB,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBhS,gBAAiB,iBAErBgS,IAERZ,EAAG,QAAwB,QAAS,CAAEpR,gBAAiB,eAAgB,YACvEoR,IAER83C,mBAAoB,CAChBv2C,qBAAsB,OAE1Bs2C,kBAAmB,CACfqH,oBAAqB,OAEzBtH,sBAAuB,CACnBp2C,wBAAyB,OAE7Bm2C,qBAAsB,CAClBwH,uBAAwB,OAE5B7C,WAAY,CACR,YAAa,CACT8C,UAAW,aAAav+D,OAAO2M,EAAQO,oBAG/CwuD,WAAY,CACR,YAAa,CACT8C,aAAc,aAAax+D,OAAO2M,EAAQO,oBAGlD0uD,UAAW,CACP,YAAa,CACTz5C,WAAY,aAAaniB,OAAO2M,EAAQO,oBAGhDyuD,WAAY,CACR,YAAa,CACT55C,YAAa,aAAa/hB,OAAO2M,EAAQO,oBAIzD,QClQiE3gB,EAAW,CAAE0iB,MAAO,oBCIjF,IAAgB,EAAA7H,EAAA,KACTq3D,GAAkB,SAAU31E,GACnC,IAAI41E,EAAU,SAAa,MAC3B,sBAA0B51E,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,WACH,IAAIjJ,EAAI2H,EACwE,QAA/EA,EAAgC,QAA1B3H,EAAK82E,EAAQ/tE,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EAC7H,EACA,GAAG,IACP,IAAIs6C,EAAUp5C,EAAMo5C,QAAS+yB,EAAgBnsE,EAAMmsE,cAAeC,EAAoBpsE,EAAMosE,kBAAmBrsE,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWuzE,EAAiB71E,EAAM61E,eAAgBC,EAAwB91E,EAAM81E,sBAAuBvL,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAASK,EAAkB7qE,EAAM6qE,gBAAiBgC,EAAiB7sE,EAAM6sE,eAAgB7B,EAAkBhrE,EAAMgrE,gBAAiBnD,EAAgB7nE,EAAM6nE,cAAeuL,EAAqBpzE,EAAMozE,mBAC3f2C,GAAiB,EAAA1/D,EAAA,KACjBlU,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACX0zE,oBAAqBH,EACrB7K,gBAAiBA,EACjBoI,mBAAoBA,IAEpB6C,EAAe7J,EAAkB/G,gBAAgB8G,EAAe/yB,GAChE88B,EAA4BL,EAAiB,SAAW,MACxDM,EAAkB/8B,EAAQktB,2BACxB,OAAOltB,EAAQktB,0BAA2B2P,GAC1CA,EACN,OAAQ,gBAAoB,MAAO,CAAE3zE,UAAWH,EAAWgM,MACvD,gBAAoB,MAAO,CAAE7L,UAAWH,EAAWi/C,QAC/C,gBAAoB80B,EAA2B,CAAE,aAAcL,EAAiBM,OAAkB1yE,EAAWnB,UAAWH,EAAW8zE,aAAcz4D,QAASq4D,EAAgB,sBAAuBA,EAAgBlkE,SAAUkkE,EAAiB,GAAK,EAAG5sE,UAAWmtE,GAAgBP,GAAiB10E,KAAM,UAClS,gBAAoB,OAAQ,CAAE8W,GAAI89D,EAAgB,YAAa,SAAU,cAAe,QAAUE,IACtG,gBAAoBI,IAA8B,QAAS,CAAC,EAAGr2E,EAAO,CAAEmC,WAAYA,MACxF,gBAAoBkyE,IAAiB,QAAS,CAAC,EAAGr0E,EAAO,CAAED,OAAQA,EAAQ+hB,aAAc8zD,EAASx8B,QAASA,EAAS+yB,cAAeA,EAAejB,YAAa4K,EAAwB,OAAIryE,EAAW2oE,kBAAmBA,EAAmB7B,QAASA,EAASC,QAASA,EAASK,gBAAiBA,EAAiBgC,eAAgBA,EAAgBqG,WAAY6C,EAAgBlO,cAAeA,KACrY,EACA8N,GAAgBx2E,YAAc,kBAC9B,IAAIk3E,GAA+B,SAAUr2E,GACzC,IAAIlB,EAAI2H,EACJ8jE,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAAS2B,EAAgBnsE,EAAMmsE,cAAelB,EAAejrE,EAAMirE,aAAc7xB,EAAUp5C,EAAMo5C,QAASk9B,EAAkBt2E,EAAMs2E,gBAAiBC,EAAkBv2E,EAAMu2E,gBAAiBp0E,EAAanC,EAAMmC,WAAY0qE,EAAiB7sE,EAAM6sE,eAAgBr+C,EAAYxuB,EAAMwuB,UAC7TgoD,EAAoB,WACpB3J,EAAe/F,EAAUqF,EAAe,IAAI,EAChD,EACIsK,EAAoB,WACpB5J,EAAe/F,EAAUqF,GAAgB,IAAI,EACjD,EACIuK,EAAqBJ,EAAgBK,eACrCC,EAAsBN,EAAgBO,gBACtCC,EAAsBR,EAAgBS,UAEtCC,GAAoBzM,GAAU7C,EAAgB6C,EAASnD,EAAc+E,IAAkB,EACvF8K,GAAoBzM,GAAU9C,EAAgBL,EAAY8E,GAAgB3B,GAAW,EAGzF,OAAQ,gBAAoB,MAAO,CAAEloE,UAAWH,EAAW+0E,iBACvD,gBAAoB,SAAU,CAAE50E,WAAW,EAAAsN,EAAA,GAAIzN,EAAWg1E,kBAAmBr4E,EAAK,CAAC,EAC3EA,EAAGqD,EAAW8yE,gBAAkB+B,EAChCl4E,IAAM6S,SAAUqlE,OAAoBvzE,EAAYwnE,EAAe,GAAK,EAAG,iBAAkB+L,EAAmBx5D,QAASw5D,EAAoBP,OAAoBhzE,EAAWwF,UAAW+tE,EAAoBZ,GAAgBK,QAAqBhzE,EAAWunB,MAAOouB,EAAQwsB,mBACpQxsB,EAAQwsB,mBAAqB,IAAMxsB,EAAQ4rB,OAAO8B,EAAUqF,GAAgB,GAAGlH,iBAC/ExhE,EAAWtC,KAAM,UACvB,gBAAoBwe,EAAA,EAAM,CAAEwB,SAAUu1D,KAC1C,gBAAoB,SAAU,CAAEp0E,WAAW,EAAAsN,EAAA,GAAIzN,EAAWg1E,kBAAmB1wE,EAAK,CAAC,EAC3EA,EAAGtE,EAAW8yE,gBAAkBgC,EAChCxwE,IAAMkL,SAAUslE,OAAoBxzE,EAAYwnE,EAAe,GAAK,EAAG,iBAAkBgM,EAAmBz5D,QAASy5D,EAAoBT,OAAoB/yE,EAAWwF,UAAWguE,EAAoBb,GAAgBI,QAAqB/yE,EAAWunB,MAAOouB,EAAQysB,mBACpQzsB,EAAQysB,mBAAqB,IAAMzsB,EAAQ4rB,OAAO8B,EAAUqF,EAAe,GAAGlH,iBAC9ExhE,EAAWtC,KAAM,UACvB,gBAAoBwe,EAAA,EAAM,CAAEwB,SAAUy1D,KAC1CL,GAAoB,gBAAoB,SAAU,CAAEj0E,WAAW,EAAAsN,EAAA,GAAIzN,EAAWg1E,kBAAmB35D,QAASgR,EAAWvlB,UAAWmtE,GAAgB5nD,GAAYxD,MAAOouB,EAAQ8sB,qBAAsB/kE,KAAM,UACnM,gBAAoBwe,EAAA,EAAM,CAAEwB,SAAU21D,KAClD,EACAT,GAA6Bl3E,YAAc,+BAC3C,IAAIi3E,GAAkB,SAAU9+D,GAC5B,OAAO,SAAUjS,GAELA,EAAGqE,QACFC,EAAA,EAASiC,QACV0L,SAAoDA,IAGhE,CACJ,EC9EW8/D,IAAc,EAAAzzD,EAAA,GAAOgyD,ICDZ,SAAU31E,GAC1B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOo2E,EAAoBh2E,EAAMg2E,kBAAmBhL,EAAkBhrE,EAAMgrE,gBACvHnnD,EAAUjkB,EAAMikB,QAChBoxD,EAAgB,CAChBnlE,WAAYhR,EAAK,CACT,0BAA2B,CACvB2f,MAAOoF,EAAQmS,mBACfgD,cAAe,SAGvBl6B,EAAG,OAAwB,CACvB2f,MAAO,WACPqH,kBAAmB,QAEvBhnB,IAER,MAAO,CACHqP,KAAM,CACF,MACA,CACIrB,MAAO,IACPsY,QAAS,GACT4P,UAAW,eAEfg2C,GAAmB,CACfl+D,MAAO,KAEXxK,GAEJ8+C,OAAQ,CACJx7B,SAAU,WACVH,QAAS,cACT7R,OAAQ,GACRyR,WAAY,GACZvY,MAAO,QAEXmpE,aAAc,EACV,SAAcr2E,EAAO,CAAEi1B,MAAO,KAC9B,SAAS,QAAS,CAAC,EAAG,MAAgBugD,WAAY,CAAE1vD,WAAY,SAAUJ,SAAU,MAAUC,OAAQvI,WAAY,UAAWyB,MAAOoF,EAAQW,eAAgBiB,QAAS,eAAgBuC,SAAU,EAAGjD,WAAY,MAAYJ,SAAUS,QAAS,eAAgBuB,OAAQ,OAAQ1B,gBAAiB,cAAe6P,aAAc,EAAGzP,WAAY,GAAI7D,SAAU,SAAU8B,WAAY,SAAU+Q,UAAW,OAAQ9Q,aAAc,aACzZyyD,GAAqB,CACjBlmE,UAAW,CACP,UAAW,CACPsM,OAAQ,UACRiuB,WAAYxmB,EAAQkS,aACpBtX,MAAOoF,EAAQoD,UAK/BiwD,gBAAiB,CACbzxD,QAAS,cACT4xD,UAAW,YAEfF,iBAAkB,EACd,SAAcv3E,EAAO,CAAEi1B,OAAQ,IAC/B,CACI/nB,MAAO,GACP8G,OAAQ,GACR6R,QAAS,QACT4O,UAAW,SACXhP,WAAY,GACZC,SAAU,MAAUS,MACpB/I,WAAY,UACZyB,MAAOoF,EAAQW,eACfsQ,aAAc,EACdlP,SAAU,WACVX,gBAAiB,cACjB0B,OAAQ,OACRvB,QAAS,EACT5D,SAAU,UACV1R,UAAW,CACP,UAAW,CACP2O,MAAOoF,EAAQqC,YACfjB,gBAAiBpB,EAAQkS,aACzB3Z,OAAQ,UACRrM,QAAS,4BAKzBklE,cAAeA,EAEvB,QDlFyDxxE,EAAW,CAChE0iB,MAAO,gBEDAI,GAAY,SAAUvmB,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EACxB9zB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO03E,EAAyBt3E,EAAMs3E,uBAAwBC,EAAmBv3E,EAAMu3E,iBAAkBC,EAAoBx3E,EAAMw3E,kBAAmB1F,EAAmB9xE,EAAM8xE,iBAAkBsB,EAAqBpzE,EAAMozE,mBACvQvvD,EAAUjkB,EAAMikB,QAChB4zD,EAAiB,CAAC,OACGh0E,IAArBquE,IAEI2F,EADArE,IAAuBW,GAAmBQ,WACzBzC,EAAmB,MAAgB0C,eAAiB,MAAgBC,cAGpE3C,EAAmB,MAAgB4C,cAAgB,MAAgBC,aAG5F,IAAI+C,OAA4Cj0E,IAArBquE,EAAiC,MAAgBsD,UAAY,CAAC,EACzF,MAAO,CACHjnE,KAAM,CACF,MACA,CACIrB,MAAO,IACPsY,QAAS,GACT4P,UAAW,cACXxT,SAAU,UAEdlf,GAEJq1E,gBAAiB,CACblyD,QAAS,QAEbmyD,kBAAmB,EACf,SAAch4E,EAAO,CAAEi1B,OAAQ,KAC/B,SAAS,QAAS,CAAC,EAAG6iD,GAAuB,CAAEpyD,SAAU,MAAUC,OAAQR,WAAY,MAAYJ,SAAU3H,WAAY,UAAWqX,UAAW,OAAQ5V,MAAO,UAAWwG,gBAAiB,cAAe+C,SAAU,EAAG5C,QAAS,eAAgBuB,OAAQ,OAAQnF,SAAU,YACzQ81D,GAA0B,CACtBxnE,UAAW,CACP,oBAAqB,CACjBsM,OAASk7D,EAAqC,UAAZ,UAClC74D,MAAOoF,EAAQqC,YACfnW,QAAS,wBACTkV,gBAAiBpB,EAAQkS,iBAKzC8hD,2BAA4B,CACxBpyD,QAAS,OACTC,WAAY,UAEhBoyD,iBAAkB,EACd,SAAcl4E,EAAO,CAAEi1B,OAAQ,IAC/B,CACI7X,WAAY,UACZlQ,MAAO,GACP0qB,SAAU,GACV5jB,OAAQ,GACRykB,UAAW,GACX5S,QAAS,QACT4O,UAAW,SACXhP,WAAY,GACZC,SAAU,MAAUS,MACpBtH,MAAOoF,EAAQW,eACfsQ,aAAc,EACdlP,SAAU,WACVX,gBAAiB,cACjB0B,OAAQ,OACRvB,QAAS,EACT5D,SAAU,UACV1R,UAAW,CACP,UAAW,CACP2O,MAAOoF,EAAQqC,YACf9J,OAAQ,UACRrM,QAAS,wBACTkV,gBAAiBpB,EAAQkS,iBAKzCgiD,cAAe,CACXv+C,UAAW,GAEfw+C,WAAW,SAAS,QAAS,CAAC,EAAGP,GAAiB,CAAE/9C,aAAc,GAAI5pB,UAAW,CACzE,qBAAsB,CAClB4pB,aAAc,MAG1Bu+C,WAAY,EACR,SAAcr4E,EAAO,CAAEi1B,OAAQ,IAC/B,CACI/nB,MAAO,GACP8G,OAAQ,GACR4jB,SAAU,GACVa,UAAW,GACXhT,WAAY,GACZC,SAAU,MAAUS,MACpB/I,WAAY,UACZoI,QAAS,EACTI,OAAQ,aACR/G,MAAOoF,EAAQW,eACfS,gBAAiB,cACjB0B,OAAQ,OACRmO,aAAc,EACdtT,SAAU,UACV1R,UAAW,CACP,sBAAuB,CACnB2pB,YAAa,GAEjB,qBAAsB,CAClBC,aAAc,GAElB,QAAS,CACL3U,WAAY,MAAYT,SAE5B,UAAW,CACP7F,MAAOoF,EAAQqC,YACfjB,gBAAiBpB,EAAQkS,aACzB3Z,OAAQ,UACRrM,QAAS,wBACTD,WAAYhR,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAEurC,WAAY,SAAU5rB,MAAO,aAAc1O,QAAS,wBAAyB,YACnHjR,IAER,WAAY,CACRmmB,gBAAiBpB,EAAQq0D,WACzBpoE,WAAYrJ,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAE4jC,WAAY,SAAU5rB,MAAO,cAAe,YAClFhY,OAKpBoB,QAAS0vE,EACH,CACE94D,MAAOoF,EAAQiS,MACf7Q,gBAAiBpB,EAAQiD,aACzBhX,WAAYpJ,EAAK,CACT,QAAS,CACLqe,WAAY,MAAYJ,UAE5B,UAAW,CACPM,gBAAiBpB,EAAQiD,aACzBhX,WAAYnJ,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAEse,gBAAiB,aAAcxG,MAAO,WAAY,YACxF9X,KAGZD,EAAG,QAAwB,QAAS,CAAEue,gBAAiB,aAAcxG,MAAO,WAAY,YACxF/X,IAEN,CAAC,EACP2mD,SAAUmqB,EACJ,CACE/4D,MAAOoF,EAAQW,eACfS,gBAAiBpB,EAAQq0D,WACzBnzD,WAAY,MAAYJ,SACxB7U,WAAY8T,EAAK,CACT,QAAS,CACLmB,WAAY,MAAYJ,UAE5B,oBAAqB,CACjBM,gBAAiBpB,EAAQq0D,WACzBpoE,WAAYqmB,EAAK,CAAC,EACdA,EAAG,QAAwB,QAAS,CAAE1X,MAAO,SAAU4rB,WAAY,cAAe,YAClFlU,KAGZvS,EAAG,QAAwB,QAAS,CAAEymB,WAAY,YAAa5rB,MAAO,WAAY,YAClFmF,IAEN,CAAC,EACPpb,SAAU,CACNsH,WAAYsmB,EAAK,CACT,0BAA2B,CACvB3X,MAAOoF,EAAQmS,mBACfgD,cAAe,SAGvB5C,EAAG,OAAwB,CACvB3X,MAAO,WACPqH,kBAAmB,QAEvBsQ,IAGhB,ECvLW,GAAY,SAAUp2B,GAQ7B,OAAO,GAAgBA,EAC3B,ECTWm4E,GAAyB7S,EAKzB8S,GAAiC,CACxCzB,eAAgB,KAChBE,gBAAiB,OACjBE,UAAW,sBCFX,IAAgB,EAAAz4D,EAAA,KAGhB+5D,GAA6B,CAC7BC,wBAAoB70E,EACpB80E,wBAAoB90E,GAEpB+0E,GAAuB,SAAUx4E,GACjC,IAAIlB,EACA2H,EACA1G,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWm2E,EAAuBz4E,EAAMy4E,qBAAsBC,EAAwB14E,EAAM04E,sBAAuBvO,EAAOnqE,EAAMmqE,KAAM9c,EAAWrtD,EAAMqtD,SAAU7kD,EAAWxI,EAAMwI,SAAUsZ,EAAe9hB,EAAM8hB,aAAc62D,EAAe34E,EAAM24E,aAAcC,EAAe54E,EAAM44E,aACrVC,EAAY,SAAa,MAC7B,sBAA0B/2D,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WACH,IAAIjJ,EAAI2H,EAC0E,QAAjFA,EAAkC,QAA5B3H,EAAK+5E,EAAUhxE,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EAC/H,EACA,GAAG,IACP,IASIqD,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXi1E,iBAAkBkB,EAClBjB,kBAAmBkB,IAEvB,OAAQ,gBAAoB,SAAU,CAAEp2E,WAAW,EAAAsN,EAAA,GAAIzN,EAAW81E,YAAan5E,EAAK,CAAC,EAC7EA,EAAGqD,EAAWkrD,UAAYA,EAC1BvuD,EAAGqD,EAAWqG,UAAYA,EAC1B1J,IAAMqC,KAAM,SAAUugB,KAAM,WAAYlE,QAAUhV,OAAqB/E,EAlBjE,WACVk1E,SAA4DA,EAAaxO,EAC7E,EAgB0FlhE,UAAYT,OAAuB/E,EAf7G,SAAU4B,GAElBA,EAAGqE,QAAUC,EAAA,EAASiC,QACtB+sE,SAA4DA,EAAaxO,GAEjF,EAUwI3hE,SAAUA,EAAU,gBAAiB6kD,EAAUr9C,IAAK6oE,GAAuG,QAAzFpyE,EAAKmyE,aAAmD,EAASA,EAAazO,UAA0B,IAAP1jE,EAAgBA,EAAK0jE,EACpU,EACAqO,GAAqBr5E,YAAc,uBACnC,IA0CI25E,GA1CAC,GAAmB,SAAU/4E,GAC7B,IAAID,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW02E,EAAWh5E,EAAMg5E,SAAUC,EAASj5E,EAAMi5E,OAAQ7F,EAAqBpzE,EAAMozE,mBAAoBtB,EAAmB9xE,EAAM8xE,iBAAkBoH,EAAUl5E,EAAMk5E,QAASC,EAAUn5E,EAAMm5E,QAASR,EAAe34E,EAAM24E,aAAcxJ,EAAenvE,EAAMmvE,aAAcrtD,EAAe9hB,EAAM8hB,aAClWs3D,EAAkB,SAAa,MAC/BC,EAAiB,SAAa,MAClC,sBAA0Bv3D,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WACH,IAAIjJ,EAAI2H,EAC4G,QAAnHA,EAAoE,QAA9D3H,EAAMs6E,EAAgBvxE,SAAWwxE,EAAexxE,eAA6B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EACjK,EACA,GAAG,IAoBP,IAnBA,IAA2Bw6E,EACnBjsB,EACA7kD,EACAX,EAGJ1F,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXwvE,iBAAkBA,EAClBsB,mBAAoBA,IAEpBwF,EAAe,SAAUvkE,GACzB,IAAIvV,EAAI2H,EACR,OAAuG,QAA/FA,EAAmC,QAA7B3H,EAAKkB,EAAM44E,oBAAiC,IAAP95E,OAAgB,EAASA,EAAGsF,KAAKpE,EAAOqU,UAA2B,IAAP5N,EAAgBA,EAAK4N,CACxI,EACIklE,EAAgB,GAAGriE,OAAO0hE,EAAaI,GAAW,OAAO9hE,OAAO0hE,EAAaK,IAC7E9O,EAAO6O,EACPQ,EAAQ,GACHh1E,EAAI,EAAGA,GAAKy0E,EAASD,EAAW,GAlEzB,EAkE6Cx0E,IAAK,CAC9Dg1E,EAAMn3E,KAAK,IACX,IAAK,IAAIo3E,EAAI,EAAGA,EApEJ,EAoEuBA,IAC/BD,EAAMh1E,GAAGnC,WArBTgrD,OACA7kD,OACAX,EAFAwlD,GADmBisB,EAsBMnP,KArBGgF,EAC5B3mE,OAAwB/E,IAAZy1E,GAAyBI,EAAeJ,QAAyBz1E,IAAZ01E,GAAyBG,EAAeH,EACzGtxE,EAAUyxE,KAAiB,IAAI7S,MAAOtB,cAClC,gBAAoBqT,IAAsB,QAAS,CAAC,EAAGx4E,EAAO,CAAEogB,IAAKk5D,EAAcnP,KAAMmP,EAAcjsB,SAAUA,EAAUxlD,QAASA,EAASW,SAAUA,EAAUmwE,aAAcA,EAAc72D,aAAcurC,EAAW+rB,EAAkBvxE,EAAUwxE,OAAiB51E,EAAW7D,MAAOA,OAmBzRuqE,GAER,CACA,OAAQ,gBAAoB5jE,EAAA,EAAW,KACnC,gBAAoB,MAAO,CAAEjE,UAAWH,EAAW41E,cAAer2D,KAAM,OAAQ,aAAc63D,GAAiBC,EAAMl5E,KAAI,SAAUo5E,EAAS/4D,GACxI,OAAQ,gBAAoBtgB,MAAM,GAAO,QAAc,CAAC,MAAO,CAAE+f,IAAK,iBAAmBO,EAAQ,IAAMq4D,EAAUt3D,KAAM,MAAOpf,UAAWH,EAAW61E,YAAc0B,GAAS,GAC/K,KACR,EACAX,GAAiB55E,YAAc,mBAE/B,SAAW25E,GACPA,EAAyBA,EAAmC,SAAI,GAAK,WACrEA,EAAyBA,EAA+B,KAAI,GAAK,MACpE,CAHD,CAGGA,KAA6BA,GAA2B,CAAC,IAC5D,IAAIa,GAAuB,SAAU35E,GACjC,IAAIlB,EACAiB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWmE,EAAKzG,EAAMs2E,gBAAiBA,OAAyB,IAAP7vE,EAAgB2xE,GAAiC3xE,EAAIC,EAAK1G,EAAMo5C,QAASA,OAAiB,IAAP1yC,EAAgB2xE,GAA6B3xE,EAAImC,EAAY7I,EAAM6I,UAAW+wE,EAAe55E,EAAM45E,aAAcC,EAAe75E,EAAM65E,aAAcb,EAAWh5E,EAAMg5E,SAAUC,EAASj5E,EAAMi5E,OAAQE,EAAUn5E,EAAMm5E,QAASD,EAAUl5E,EAAMk5E,QACzb/2E,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,IAEXkd,EAAY3W,IAAciwE,GAAyBgB,SAAW1gC,EAAQk/B,mBAAqBl/B,EAAQm/B,mBACnGwB,EAAiBlxE,IAAciwE,GAAyBgB,UAAW,GA7F1D,GA+FTE,EAAkBx6D,EAAkC,iBAAdA,EAAyBA,EAAYA,EADhE,CAAEw5D,SAAUA,EAAWe,EAAgBd,OAAQA,EAASc,SAC+Bt2E,EAClG+E,EAAWK,IAAciwE,GAAyBgB,cACpCr2E,IAAZy1E,GAAyBF,EAAWE,OACxBz1E,IAAZ01E,GAAyBn5E,EAAMg5E,SAlGxB,GAkGgDG,EACzDc,EAAa,WACbpxE,IAAciwE,GAAyBgB,SAAWF,SAA4DA,IAAiBC,SAA4DA,GAC/L,EAQIK,GAAmB,UACjBrxE,IAAciwE,GAAyBqB,KACvCtxE,IAAciwE,GAAyBgB,SAC7C,OAAQ,gBAAoB,SAAU,CAAEx3E,WAAW,EAAAsN,EAAA,GAAIzN,EAAW21E,kBAAmBh5E,EAAK,CAAC,EACnFA,EAAGqD,EAAWqG,UAAYA,EAC1B1J,IAAM0e,QAAUhV,OAAwB/E,EAAbw2E,EAAwBhxE,UAAYT,OAAuB/E,EAZ9E,SAAU4B,GAElBA,EAAGqE,QAAUC,EAAA,EAASiC,OACtBquE,GAER,EAOyG94E,KAAM,SAAU6pB,MAAOgvD,EAAiBxxE,SAAUA,GACvJ,gBAAoBmX,EAAA,EAAM,CAAEwB,SAAU+4D,EAAmB5D,EAAgBK,eAAiBL,EAAgBO,kBAClH,EACA8C,GAAqBx6E,YAAc,uBACnC,IAAIi7E,GAAkB,SAAUp6E,GAC5B,IAAID,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAC9DH,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,IAEf,OAAQ,gBAAoB,MAAO,CAAEA,UAAWH,EAAW01E,4BACvD,gBAAoB8B,IAAsB,QAAS,CAAC,EAAG35E,EAAO,CAAE6I,UAAWiwE,GAAyBgB,YACpG,gBAAoBH,IAAsB,QAAS,CAAC,EAAG35E,EAAO,CAAE6I,UAAWiwE,GAAyBqB,QAC5G,EACAC,GAAgBj7E,YAAc,kBAC9B,IAAIk7E,GAAoB,SAAUr6E,GAC9B,IAAID,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW02E,EAAWh5E,EAAMg5E,SAAUC,EAASj5E,EAAMi5E,OAAQn6E,EAAKkB,EAAMo5C,QAASA,OAAiB,IAAPt6C,EAAgBu5E,GAA6Bv5E,EAAIgzE,EAAmB9xE,EAAM8xE,iBAAkBsB,EAAqBpzE,EAAMozE,mBAChRyC,EAAiB,WACjB,IAAI/2E,EAC4B,QAA/BA,EAAKkB,EAAM61E,sBAAmC,IAAP/2E,GAAyBA,EAAGsF,KAAKpE,GAAO,EACpF,EAOI44E,EAAe,SAAUzO,GACzB,IAAIrrE,EAAI2H,EACR,OAAsG,QAA9FA,EAAmC,QAA7B3H,EAAKkB,EAAM44E,oBAAiC,IAAP95E,OAAgB,EAASA,EAAGsF,KAAKpE,EAAOmqE,UAA0B,IAAP1jE,EAAgBA,EAAK0jE,CACvI,EACIhoE,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXg1E,yBAA0Bt3E,EAAM61E,eAChC/D,iBAAkBA,EAClBsB,mBAAoBA,IAExB,GAAIpzE,EAAM61E,eAAgB,CACtB,IAAIyE,EAAiBlhC,EAAQkhC,eACzBC,EAA8BnhC,EAAQmhC,4BACtCC,EAAmBF,EACS,iBAAnBA,EACHA,EACAA,EAAet6E,QACnByD,EACF+b,EAAY+6D,GACV,OAAOA,EAA6BC,GACpCA,EACN,OAAQ,gBAAoB,SAAU,CAAEl4E,UAAWH,EAAWy1E,kBAAmBp6D,QAASq4D,EAAgB5sE,UA5BxF,SAAU5D,GAExBA,EAAGqE,QAAUC,EAAA,EAASiC,OAASvG,EAAGqE,QAAUC,EAAA,EAASC,OACrDisE,GAER,EAuB0I,aAAcr2D,EAAWkC,KAAM,SAAUvgB,KAAM,UACjL,gBAAoB,OAAQ,CAAE,YAAa,YAAa,cAAe,QACnEy3E,EAAaI,GACb,MACAJ,EAAaK,IACzB,CACA,OAAQ,gBAAoB,MAAO,CAAE32E,UAAWH,EAAW0F,SACvD+wE,EAAaI,GACb,MACAJ,EAAaK,GACrB,EACAoB,GAAkBl7E,YAAc,oBAChC,IAAIs7E,GAAqB,SAAUz6E,GAC/B,IAAIlB,EACAiB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWwvE,EAAmB9xE,EAAM8xE,iBAAkBsB,EAAqBpzE,EAAMozE,mBAAoBsH,EAAgB16E,EAAM06E,cACzLv4E,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXg1E,yBAA0Bt3E,EAAM61E,eAChC/D,iBAAkBA,EAClBsB,mBAAoBA,IAExB,OAAQ,gBAAoB,MAAO,CAAE9wE,UAAWH,EAAWw1E,iBAAiH,QAA7F74E,EAAK47E,aAAqD,EAASA,EAAc16E,UAA2B,IAAPlB,EAAgBA,EAAK,gBAAoBu7E,IAAmB,QAAS,CAAC,EAAGr6E,IACzP,gBAAoBo6E,IAAiB,QAAS,CAAC,EAAGp6E,IAC1D,EACAy6E,GAAmBt7E,YAAc,qBAkC1B,IAAIw7E,GAAmB,SAAU36E,GACpC,IAAI8xE,EAlCR,SAA6BhzE,GACzB,IAAIqwE,EAAerwE,EAAGqwE,aAAcyL,EAAgB97E,EAAG87E,cACnDC,EAAY1L,GAAgByL,IAAiB,IAAInU,MAAOtB,cACxD6T,EAAwC,GAA7BzsE,KAAKC,MAAMquE,EAAY,IAClCC,GAAmB,EAAAnjE,EAAA,GAAYqhE,GACnC,OAAK8B,GAAoBA,IAAqB9B,EAGrC8B,EAAmB9B,OAFxB,CAQR,CAoB2B,CAAoBh5E,GACvClB,EApBR,SAA2BA,GACvB,IAAIqwE,EAAerwE,EAAGqwE,aAAcyL,EAAgB97E,EAAG87E,cACnDC,EAAY,WAAc,WAC1B,OAAO1L,GAAgByL,GAA6D,GAA5CruE,KAAKC,OAAM,IAAIi6D,MAAOtB,cAAgB,GAClF,GAAG,CAACyV,EAAezL,IACf1oE,EAAK,WAAeo0E,GAAY7B,EAAWvyE,EAAG,GAAIs0E,EAAct0E,EAAG,GAWvE,OAJA,aAAgB,WACZs0E,EAAYF,EAChB,GAAG,CAACA,IAEG,CAAC7B,EADKA,EA3NA,GA2NwB,EATrB,WACZ+B,GAAY,SAAU5Q,GAAQ,OAAOA,EAnN5B,EAmN+C,GAC5D,EACoB,WAChB4Q,GAAY,SAAU5Q,GAAQ,OAAOA,EAtN5B,EAsN+C,GAC5D,EAMJ,CAGa6Q,CAAkBh7E,GAAQg5E,EAAWl6E,EAAG,GAAIm6E,EAASn6E,EAAG,GAAIm8E,EAAYn8E,EAAG,GAAIo8E,EAAgBp8E,EAAG,GACvGq8E,EAAU,SAAa,MAC3B,sBAA0Bn7E,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,WACH,IAAIjJ,EAAI2H,EACwE,QAA/EA,EAAgC,QAA1B3H,EAAKq8E,EAAQtzE,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EAC7H,EACA,IACJ,IAAIiB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAC9DH,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,IAEf,OAAQ,gBAAoB,MAAO,CAAEA,UAAWH,EAAWgM,MACvD,gBAAoBssE,IAAoB,QAAS,CAAC,EAAGz6E,EAAO,CAAEg5E,SAAUA,EAAUC,OAAQA,EAAQW,aAAcsB,EAAerB,aAAcoB,EAAWnJ,iBAAkBA,KAC1K,gBAAoBiH,IAAkB,QAAS,CAAC,EAAG/4E,EAAO,CAAEg5E,SAAUA,EAAUC,OAAQA,EAAQnH,iBAAkBA,EAAkBhwD,aAAcq5D,KAC1J,EACAR,GAAiBx7E,YAAc,mBCtPxB,IAAIi8E,IAAe,EAAAz3D,EAAA,GAAOg3D,ICFV,SAAU36E,GAQ7B,OAAO,GAAgBA,EAC3B,QDP8DyD,EAAW,CAAE0iB,MAAO,iBEO9E,IAAgB,EAAA7H,EAAA,KAChBmjB,GAAgB,CAChB1hC,OAAQ,GACRq5C,aAAS31C,EACT6yE,gBAAiB8B,GACjBhM,kBAAmBzH,EACnB0W,kBAAkB,GAsCXC,GAAoB,SAAU13C,GACrC,IAAI9kC,EAAI2H,EACJzG,GAAQ,EAAA8jC,EAAA,GAAqBrC,GAAemC,GAC5Cl9B,EA5BR,SAAuB5H,GACnB,IAAIgjB,EAAehjB,EAAGgjB,aAClBy5D,EAAoB,SAAa,MACjCC,EAAkB,SAAa,MAC/BC,EAAgB,UAAa,GAC7B1zE,EAAQ,eAAkB,WACtByzE,EAAgB3zE,QAChB2zE,EAAgB3zE,QAAQE,QAEnBwzE,EAAkB1zE,SACvB0zE,EAAkB1zE,QAAQE,OAElC,GAAG,IAWH,OAVA,sBAA0B+Z,GAAc,WAAc,MAAO,CAAG/Z,MAAOA,EAAU,GAAG,CAACA,IACrF,aAAgB,WACR0zE,EAAc5zE,UACdE,IACA0zE,EAAc5zE,SAAU,EAEhC,IAIO,CAAC0zE,EAAmBC,EAHH,WACpBC,EAAc5zE,SAAU,CAC5B,EAEJ,CAIa6zE,CAAc17E,GAAQu7E,EAAoB70E,EAAG,GAAI80E,EAAkB90E,EAAG,GAAIi1E,EAAoBj1E,EAAG,GACtGC,EAAK,YAAe,GAAQi1E,EAAsBj1E,EAAG,GAAIk1E,EAAyBl1E,EAAG,GACrFmrE,EAzCR,SAA6BhzE,GACzB,IACIg9E,EADgBh9E,EAAGqtE,cACShH,cAC5B4W,GAAe,EAAApkE,EAAA,GAAYmkE,GAC/B,YAAqBr4E,IAAjBs4E,GAA8BA,IAAiBD,OAC/C,EAGOC,EAAeD,CAE9B,CA+B2B,CAAoB97E,GACvCmsE,EAAgBnsE,EAAMmsE,cAAegE,EAAenwE,EAAMmwE,aAAc/2B,EAAUp5C,EAAMo5C,QAASx1B,EAAK5jB,EAAMowE,MAAOA,OAAe,IAAPxsD,EAAgB,IAAI6iD,KAAS7iD,EAAI0yD,EAAkBt2E,EAAMs2E,gBAAiBlK,EAAoBpsE,EAAMosE,kBAAmB7B,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAAS5qE,EAAQI,EAAMJ,MAAOG,EAASC,EAAMD,OAAQuC,EAAYtC,EAAMsC,UAAW2oE,EAAejrE,EAAMirE,aAAc+Q,EAAwBh8E,EAAMg8E,sBAAuBC,EAAyBj8E,EAAMi8E,uBAAwB7I,EAAqBpzE,EAAMozE,mBAAoBiI,EAAmBr7E,EAAMq7E,iBAAkBxO,EAAiB7sE,EAAM6sE,eAC7mBqP,EAAsB,SAAUnV,GAChC,OAAO,WAAc,OAAOoV,EAAcpV,EAAW,CACzD,EACIqV,EAAmB,WACnBvP,EAAe5F,EAASkF,EAAe,IAAI,EAC/C,EACIkQ,EAAmB,WACnBxP,EAAe5F,EAASkF,GAAgB,IAAI,EAChD,EACIgQ,EAAgB,SAAUpV,GAC1B,IAAIjoE,EAE4B,QAA/BA,EAAKkB,EAAM61E,sBAAmC,IAAP/2E,GAAyBA,EAAGsF,KAAKpE,GACzE6sE,EAAe7F,EAASmF,EAAepF,IAAW,EACtD,EACI8O,EAAiB,WACjB,IAAI/2E,EACCu8E,EAK+B,QAA/Bv8E,EAAKkB,EAAM61E,sBAAmC,IAAP/2E,GAAyBA,EAAGsF,KAAKpE,IAJzE27E,IACAE,GAAuB,GAK/B,EAwBInF,EAAqBJ,EAAgBK,eACrCC,EAAsBN,EAAgBO,gBACtCyF,EAAgBlQ,EAEhBmQ,GAAqBhS,GAAU7C,EAAgB6C,EzB5B5C,IAAI9D,KyB4B8D0F,EzB5BpDhH,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,IyB4BwC,EACvFqX,GAAqBhS,GAAU9C,EzBrB5B,IAAIjB,KyBqBmD0F,EzBrBzChH,cAAgB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GyBqBuBqF,GAAW,EACrFroE,EAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXg1E,yBAA0Bt3E,EAAM61E,iBAAmBwF,EACnD9D,iBAAkByE,EAClBxE,kBAAmByE,EACnBnK,iBAAkBA,EAClBsB,mBAAoBA,IAExB,GAAIwI,EAAqB,CACrB,IAAIzlD,GAsDZ,SAAwBr3B,GACpB,IAAIs6C,EAAUt6C,EAAGs6C,QAAS+yB,EAAgBrtE,EAAGqtE,cAAeC,EAAoBttE,EAAGstE,kBAC/EqQ,EAAe,SAAUtS,GACzB,GAAIiC,EAAmB,CAEnB,IAAIsQ,EAAqB,IAAIjW,KAAK0F,EAAczF,WAEhD,OADAgW,EAAmBvV,YAAYgD,GACxBiC,EAAkBlH,WAAWwX,EACxC,CACA,OAAOjvE,OAAO08D,EAClB,EACIwS,EAAoB,SAAUC,GAC9B,MAAO,GAAG1lE,OAAOulE,EAAaG,EAAU5D,UAAW,OAAO9hE,OAAOulE,EAAaG,EAAU3D,QAC5F,EAOA,MAAO,CACHwD,EACA,CACInC,eAAgBqC,EAChBrE,mBAPyB,SAAUsE,GACvC,OAAOxjC,EAAQ4sB,uBAAyB,GAAG9uD,OAAOkiC,EAAQ4sB,uBAAwB,KAAK9uD,OAAOylE,EAAkBC,IAAc,EAClI,EAMQrE,mBAXyB,SAAUqE,GACvC,OAAOxjC,EAAQ6sB,uBAAyB,GAAG/uD,OAAOkiC,EAAQ6sB,uBAAwB,KAAK/uD,OAAOylE,EAAkBC,IAAc,EAClI,EAUQrC,4BAA6BnhC,EAAQktB,2BAGjD,CAnFiBuW,CAAe78E,GAAQ44E,GAAeziD,GAAG,GAAI2mD,GAAc3mD,GAAG,GAEvE,OAAQ,gBAAoBilD,GAAc,CAAEh7D,IAAK,eAAgB84D,QAAS3O,EAAUA,EAAQpF,mBAAgB1hE,EAAW01E,QAAS3O,EAAUA,EAAQrF,mBAAgB1hE,EAE9Jk1E,aA3CW,SAAUxJ,GAGzB,GAFAwM,IACcxP,EAAchH,gBACZgK,EAAc,CAC1B,IAAI4N,EAAoB,IAAItW,KAAK0F,EAAczF,WAC/CqW,EAAkB5V,YAAYgI,GAG1B3E,GAAWuS,EAAoBvS,EAC/BuS,EAAoB/V,EAAS+V,EAAmBvS,EAAQvF,YAEnDsF,GAAWwS,EAAoBxS,IACpCwS,EAAoB/V,EAAS+V,EAAmBxS,EAAQtF,aAE5D4H,EAAekQ,GAAmB,EACtC,CACAlB,GAAuB,EAC3B,EA0BoCvF,gBAAiBA,EAE7CT,eA3BuB,SAAU9tE,GACrC4zE,IACAE,GAAuB,EAC3B,EAwBkD1M,aAAcgB,EAAeA,EAAahL,cAAgBgH,EAAgBA,EAAchH,mBAAgB1hE,EAAWm3E,cAAezO,EAAchH,cAAeyT,aAAcA,GAAcx/B,QAAS0jC,GAAah7D,aAAc05D,EAAiBz7E,OAAQA,EAAQ04E,qBAAsBuD,EAAuBtD,sBAAuBuD,EAAwB7I,mBAAoBA,GACla,CAEA,IADA,IAAI4J,GAAa,GACRx4E,GAAI,EAAGA,GAAI40C,EAAQmsB,YAAYnlE,OA7HvB,EA6HgDoE,KAC7Dw4E,GAAW36E,KAAKmC,IAEpB,IAAIy4E,GAAaX,EAAcpX,WAAWiH,GACtCgK,GAAkB/8B,EAAQitB,4BACxB,OAAOjtB,EAAQitB,2BAA4B4W,IAC3CA,GACN,OAAQ,gBAAoB,MAAO,CAAE36E,UAAWH,EAAWgM,MACvD,gBAAoB,MAAO,CAAE7L,UAAWH,EAAWw1E,iBAC/C,gBAAoB,SAAU,CAAEr1E,UAAWH,EAAWy1E,kBAAmBp6D,QAASq4D,EAAgB5sE,UAAW,GAAgB4sE,GAAiB,aAAcM,GAAiB,sBAAuBn2E,EAAM61E,iBAAmBwF,EAAkB1pE,SAAY3R,EAAM61E,iBAAmBwF,EAAmB,GAAK,EAAGl6E,KAAM,UACjT,gBAAoB,OAAQ,CAAE,YAAa,SAAU,cAAe,QAAU87E,KAClF,gBAAoB,MAAO,CAAE36E,UAAWH,EAAW01E,4BAC/C,gBAAoB,SAAU,CAAEv1E,WAAW,EAAAsN,EAAA,GAAIzN,EAAW21E,kBAAmBh5E,EAAK,CAAC,EAC3EA,EAAGqD,EAAWqG,WAAa+zE,EAC3Bz9E,IAAM,iBAAkBy9E,EAAoB5qE,SAAU4qE,OAAqB94E,EAAYwnE,EAAe,GAAK,EAAGztD,QAAS++D,EAAqBF,OAAmB54E,EAAWwF,UAAWszE,EAAqB,GAAgBF,QAAoB54E,EAAWunB,MAAOouB,EAAQ0sB,kBACtQ1sB,EAAQ0sB,kBAAoB,IAAMwW,EAAcpX,WAAW+B,EAASkF,GAAgB,SACpF1oE,EAAWtC,KAAM,UACvB,gBAAoBwe,EAAA,EAAM,CAAEwB,UAAU,UAAWy1D,EAAsBF,KAC3E,gBAAoB,SAAU,CAAEp0E,WAAW,EAAAsN,EAAA,GAAIzN,EAAW21E,kBAAmBrxE,EAAK,CAAC,EAC3EA,EAAGtE,EAAWqG,WAAag0E,EAC3B/1E,IAAM,iBAAkB+1E,EAAoB7qE,SAAU6qE,OAAqB/4E,EAAYwnE,EAAe,GAAK,EAAGztD,QAASg/D,EAAqBJ,OAAmB34E,EAAWwF,UAAWuzE,EAAqB,GAAgBJ,QAAoB34E,EAAWunB,MAAOouB,EAAQ2sB,kBACtQ3sB,EAAQ2sB,kBAAoB,IAAMuW,EAAcpX,WAAW+B,EAASkF,EAAe,SACnF1oE,EAAWtC,KAAM,UACvB,gBAAoBwe,EAAA,EAAM,CAAEwB,UAAU,UAAWu1D,EAAqBE,OAClF,gBAAoBrwE,EAAA,EAAW,KAC3B,gBAAoB,MAAO,CAAEjE,UAAWH,EAAW41E,cAAer2D,KAAM,OAAQ,aAAcu7D,IAAcD,GAAW18E,KAAI,SAAU48E,GACjI,IAAIC,EAAe/jC,EAAQmsB,YAAYtuD,MAvJlC,EAuJwCimE,EAvJxC,GAuJkEA,EAAS,IAChF,OAAQ,gBAAoB,MAAO,CAAE98D,IAAK,YAAc88D,EAAS/Q,EAAchH,cAAezjD,KAAM,MAAOpf,UAAWH,EAAW61E,WAAamF,EAAa78E,KAAI,SAAUgnE,EAAO3mD,GAC5K,IAAI7hB,EACAs+E,EA1JH,EA0JgBF,EAA0Bv8D,EACvC08D,EAAerW,EAASmF,EAAeiR,GACvCE,EAAmBnR,EAAclH,aAAemY,EAChDG,EAAkBpN,EAAalL,aAAemY,EAC9CI,EAAiBrN,EAAahL,gBAAkBgH,EAAchH,cAC9DiI,IAAc7C,GAAU7C,EAAgB6C,EAASlD,EAAYgW,IAAiB,MAC7E7S,GAAU9C,EAAgBN,EAAciW,GAAe7S,GAAW,GACvE,OAAQ,gBAAoB,SAAU,CAAEx6D,IAAKstE,EAAmB/B,OAAoB93E,EAAWie,KAAM,WAAYpf,WAAW,EAAAsN,EAAA,GAAIzN,EAAW81E,YAAan5E,EAAK,CAAC,EACtJA,EAAGqD,EAAW0F,SAAWm0E,GAAyByB,GAAeL,EAAYjR,EAAchH,cAAeiL,GAC1GtxE,EAAGqD,EAAWkrD,UAAY4uB,GAA0BsB,GAAmBC,EACvE1+E,EAAGqD,EAAWqG,WAAa4kE,EAC3BtuE,IAAM0J,UAAWyiE,IAAiBmC,EAAYhtD,IAAKg9D,EAAY5/D,QAAS4vD,EAAa8O,EAAoBkB,QAAc35E,EAAWwF,UAAWmkE,EAAa,GAAgB8O,EAAoBkB,SAAe35E,EAAW,aAAc64E,EAAcvX,YAAYsY,EAAcjkC,GAAU,gBAAiBkkC,EAAkB,sBAAqBlQ,QAAoB3pE,EAAWtC,KAAM,UAAYmmE,EAC7Y,IACJ,MACZ,EAgCA,SAASmW,GAAenW,EAAO6C,EAAMiG,GACjC,OAAOA,EAAMjL,gBAAkBgF,GAAQiG,EAAMnL,aAAeqC,CAChE,CACA,SAAS,GAAgBhwD,GACrB,OAAO,SAAUjS,GAELA,EAAGqE,QACFC,EAAA,EAASiC,OACV0L,GAGZ,CACJ,CA3CAgkE,GAAkBn8E,YAAc,oBC/KzB,IAAIu+E,IAAgB,EAAA/5D,EAAA,GAAO23D,GAAmB,QAAW73E,EAAW,CAAE0iB,MAAO,kB,+CCMhF,IAAgB,EAAA7H,EAAA,KAChBq/D,GAAsB,CACtBpZ,EAAU6D,OACV7D,EAAU8D,QACV9D,EAAU+D,UACV/D,EAAUgE,SACVhE,EAAUiE,QAEV,GAAgB,CAChBoV,sBAAsB,EACtBC,oBAAoB,EACpBC,0BAA0B,EAC1B1N,MAAO,IAAI3J,KACXqB,eAAgBvD,EAAUkL,OAC1B5H,cAAenD,EAAc+D,IAC7BsV,eAAe,EACf3kC,QAASksB,EACT0W,uBAAuB,EACvBC,wBAAwB,EACxB3F,gBAAiB8B,GACjBpN,iBAAiB,EACjB1B,gBAAiB7E,EAAgBuZ,SACjC5R,kBAAmBzH,EACnBmR,uBAAuB,EACvB/N,aAAc4V,GACdpH,iBAAiB,EACjBtL,cAAc,GAoEPgT,GAAe,cAAiB,SAAUr6C,EAAsBC,GACvE,IAAI7jC,GAAQ,EAAA8jC,EAAA,GAAqB,GAAeF,GAC5C9kC,EApER,SAAsBA,GAClB,IAAIuV,EAAQvV,EAAGuV,MAAO5N,EAAK3H,EAAGsxE,MAAOA,OAAe,IAAP3pE,EAAgB,IAAIggE,KAAShgE,EAAImmE,EAAe9tE,EAAG8tE,aAE5FlmE,GAAK,EAAAiP,GAAA,GAAqBtB,EAAO+7D,GAAQzpE,EAAKD,EAAG,GAAIypE,OAAsB,IAAPxpE,EAAgBypE,EAAQzpE,EAAIu3E,EAAkBx3E,EAAG,GAErHkd,EAAK,WAAevP,GAAQ8hB,EAAKvS,EAAG,GAAIu6D,OAAsB,IAAPhoD,EAAgBi6C,EAAQj6C,EAAIioD,EAAkBx6D,EAAG,GAExGwS,EAAK,WAAe/hB,GAAQgiB,EAAKD,EAAG,GAAIioD,OAAwB,IAAPhoD,EAAgB+5C,EAAQ/5C,EAAIioD,EAAoBloD,EAAG,GAE5GE,EAAK,WAAejiB,GAAQ4iB,EAAKX,EAAG,GAAIioD,OAA0B,IAAPtnD,EAAgBm5C,EAAQn5C,EAAIunD,EAAsBloD,EAAG,GAmBpH,OAlBIjiB,GAASkqE,EAAiBE,YAAcpqE,EAAMoqE,YAC9CL,EAAgB/pE,GAChBiqE,EAAkBjqE,GAClBmqE,EAAoBnqE,IAejB,CAAC87D,EAAcgO,EAAcE,EANf,SAAUxZ,EAAM6Z,GACjCJ,EAAkBzZ,GAClBuZ,EAAgBvZ,GAChBqZ,EAAgBrZ,GAChB+H,SAA4DA,EAAa/H,EAAM6Z,EACnF,EATkB,SAAU7Z,GACxByZ,EAAkBzZ,GAClBuZ,EAAgBvZ,EACpB,EANoB,SAAUA,GAC1ByZ,EAAkBzZ,EACtB,EAYJ,CAuCa8Z,CAAa3+E,GAAQmwE,EAAerxE,EAAG,GAAIq/E,EAAer/E,EAAG,GAAIu/E,EAAiBv/E,EAAG,GAAI8/E,EAAiB9/E,EAAG,GAAI+/E,EAAc//E,EAAG,GAAIggF,EAAgBhgF,EAAG,GAC9J2H,EAvCR,SAA4BzG,GAExB,IAAIlB,GAAK,EAAA6W,GAAA,GAAqBopE,GAA4B/+E,QAASyD,EAAYzD,EAAM49E,sBAAsB,GAAQn3E,EAAK3H,EAAG,GAAI8+E,OAA8B,IAAPn3E,GAAuBA,EAAIu4E,EAA0BlgF,EAAG,GAE1M4H,GAAK,EAAAiP,GAAA,GAAqBopE,GAA4B/+E,QAASyD,EAAYzD,EAAM69E,oBAAoB,GAAOl3E,EAAKD,EAAG,GAAIm3E,OAA4B,IAAPl3E,GAAuBA,EAAIs4E,EAAwBv4E,EAAG,GAKvM,MAAO,CAACk3E,EAAsBC,EAJO,WACjCmB,GAAyBpB,GACzBqB,GAAuBpB,EAC3B,EAEJ,CA6BaqB,CAAmBl/E,GAAQ49E,EAAuBn3E,EAAG,GAAIo3E,EAAqBp3E,EAAG,GAAI04E,EAAiC14E,EAAG,GAC9HC,EA7BR,SAAuB5H,EAAI++E,EAAoBD,GAC3C,IAAI97D,EAAehjB,EAAGgjB,aAClBs9D,EAAY,SAAa,MACzBC,EAAc,SAAa,MAC3B5D,EAAgB,UAAa,GAC7B1zE,EAAQ,eAAkB,WACtB81E,GAAsBuB,EAAUv3E,SAChC,SAAWu3E,EAAUv3E,SAEhB+1E,GAAwByB,EAAYx3E,UACzC,SAAWw3E,EAAYx3E,QAE/B,GAAG,CAACg2E,EAAoBD,IAWxB,OAVA,sBAA0B97D,GAAc,WAAc,MAAO,CAAG/Z,MAAOA,EAAU,GAAG,CAACA,IACrF,aAAgB,WACR0zE,EAAc5zE,UACdE,IACA0zE,EAAc5zE,SAAU,EAEhC,IAIO,CAACu3E,EAAWC,EAHK,WACpB5D,EAAc5zE,SAAU,CAC5B,EAEJ,CAKa,CAAc7H,EAAO69E,EAAoBD,GAAuBwB,EAAY14E,EAAG,GAAI24E,EAAc34E,EAAG,GAAIi1E,EAAoBj1E,EAAG,GACpI44E,EAAwB,WACxB,IAAIC,EAAiBxB,EAQrB,OAPIwB,GAAkBnP,IAClBmP,EACIpB,EAAahZ,gBAAkBiL,EAAMjL,eACjCgZ,EAAalZ,aAAemL,EAAMnL,YAClCoZ,EAAelZ,gBAAkBiL,EAAMjL,eACvCkZ,EAAepZ,aAAemL,EAAMnL,YAExC8Y,GAAkB,gBAAoB,SAAU,CAAEz7E,WAAW,EAAAsN,EAAA,GAAI,aAAc4vE,GAAQC,eAAgBjiE,QAASkiE,EAAaz2E,UAAWmtE,EAAgBsJ,GAAcv+E,KAAM,SAAUqH,UAAW+2E,GAAkBnmC,EAAQssB,UACvO,EAoBImQ,EAAiBkJ,GAA4B/+E,GAC3C,WACEm/E,IACAxD,GACJ,OACEl4E,EACFi8E,EAAc,WACdb,EAAYzO,GACZuL,GACJ,EACIvF,EAAkB,SAAU9+D,GAC5B,OAAO,SAAUjS,GAEb,OAAQA,EAAGqE,OACP,KAAKC,EAAA,EAASiC,MACd,KAAKjC,EAAA,EAASC,MACV0N,IAGZ,CACJ,EAyCIwwD,EAAiB9nE,EAAM8nE,eAAgBD,EAAgB7nE,EAAM6nE,cAAezuB,EAAUp5C,EAAMo5C,QAAS2kC,EAAgB/9E,EAAM+9E,cAAe/B,EAAwBh8E,EAAMg8E,sBAAuBC,EAAyBj8E,EAAMi8E,uBAAwB3F,EAAkBt2E,EAAMs2E,gBAAiB/L,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAASK,EAAkB7qE,EAAM6qE,gBAAiB5yD,EAAKjY,EAAMiY,GAAI3V,EAAYtC,EAAMsC,UAAWi0E,EAAkBv2E,EAAMu2E,gBAAiBtL,EAAejrE,EAAMirE,aAAclrE,EAASC,EAAMD,OAAQirE,EAAkBhrE,EAAMgrE,gBAAiBprE,EAAQI,EAAMJ,MAAO+/E,EAAmB3/E,EAAM2/E,iBAAkBC,EAAqB5/E,EAAM4/E,mBAAoBxT,EAAoBpsE,EAAMosE,kBAAmBzlE,EAAK3G,EAAMowE,MAAOA,OAAe,IAAPzpE,EAAgB,IAAI8/D,KAAS9/D,EACrwBm3E,EAA2BiB,GAA4B/+E,GACvD6/E,GAAmB/B,IAA6BD,EAChDiC,GAAqBhC,GAA4BC,EACjDyB,GAAU,GAAcz/E,EAAQ,CAChCH,MAAOA,EACP0C,UAAWA,EACXs7E,qBAAsBA,EACtBC,mBAAoBA,EACpBgC,gBAAiBA,EACjB/B,yBAA0BA,EAC1BgC,mBAAoBA,GACpBC,oBAAqBD,GACrB/B,cAAeA,EACf/S,gBAAiBA,IAEjBgV,GAAkB,GAClBC,GAAqB,GAIzB,GAHI7T,GAAqBhzB,EAAQgtB,wBAC7B4Z,IAAkB,OAAO5mC,EAAQgtB,sBAAuBgG,EAAkBhH,mBAAmBgL,EAAOh3B,KAEpGgzB,GAAqBhzB,EAAQ+sB,yBAA0B,CACvD,IAAI+Z,GAAsBL,EACpBzT,EAAkB/G,gBAClB+G,EAAkBhH,mBACxB6a,IAAqB,OAAO7mC,EAAQ+sB,yBAA0B+Z,GAAoB/P,EAAc/2B,GACpG,CACA,IAAI+mC,GAA0BF,GAAqB,KAAOD,GAC1D,OAAQ,gBAAoB,MAAO,CAAE/nE,GAAIA,EAAIjI,IAAK6zB,EAAcniB,KAAM,QAAS,aAAcy+D,GAAyB79E,WAAW,EAAAsN,EAAA,GA7BjH,gBA6BgI4vE,GAAQrxE,KAAM7L,EAAW,oBAAqB2G,UApE/J,SAAU5D,GACrC,IAAIvG,EAEJ,OAAQuG,EAAGqE,OACP,KAAKC,EAAA,EAASiC,MAGd,KAAKjC,EAAA,EAASqR,UACV3V,EAAGyG,iBACH,MACJ,KAAKnC,EAAA,EAAS4gD,OACiB,QAA1BzrD,EAAKkB,EAAMwuB,iBAA8B,IAAP1vB,GAAyBA,EAAGsF,KAAKpE,GACpE,MACJ,KAAK2J,EAAA,EAASiB,OACNvF,EAAGG,QAEHq5E,EAAY5X,EAASkX,EAAc,IAInCU,EAAY/X,EAAUqX,EAAc,IAExC94E,EAAGyG,iBACH,MACJ,KAAKnC,EAAA,EAASe,SACNrF,EAAGG,QAEHq5E,EAAY5X,EAASkX,GAAe,IAIpCU,EAAY/X,EAAUqX,GAAe,IAEzC94E,EAAGyG,iBAKf,GA+BI,gBAAoB,MAAO,CAAExJ,UAAWk9E,GAAQY,WAAY,YAAa,SAAU,cAAe,QAC9F,gBAAoB,OAAQ,KAAMH,KACtCpC,GAAuB,gBAAoBzG,IAAa,QAAS,CAAEjH,aAAcA,EAAchE,cAAegS,EAAc/N,MAAOpwE,EAAMowE,MAAOxD,aAAcgS,EAE1J/R,eAjHgB,SAAUhI,EAAMwb,GACpCxB,EAAYha,GACRwb,GACA1E,GAER,EA4G2CntD,UAAWxuB,EAAMwuB,UAAWs5C,eAAgBA,EAAgBD,cAAeA,EAAezuB,QAASA,EAEtIy8B,eAAgBA,EAAgBS,gBAAiBA,EAAiBtL,gBAAiBhrE,EAAMgrE,gBAAiB1B,gBAAiBtpE,EAAMspE,gBAAiB8C,kBAAmBpsE,EAAMosE,kBAAmB0J,sBAAuB91E,EAAM81E,sBAAuBvL,QAASA,EAASC,QAASA,EAASK,gBAAiBA,EAAiB9C,aAAc/nE,EAAM+nE,aAAcjmD,aAAcs9D,EAAW7I,gBAAiBA,EAAiBtL,aAAcA,GAAgB0U,IACvb9B,GAAsBD,GAAwB,gBAAoB,MAAO,CAAEt7E,UAAWk9E,GAAQnzD,UAC9FuxD,EAAwB,gBAAoB,MAAO,CAAEt7E,UAAWk9E,GAAQc,oBACpE,gBAAoB5C,IAAe,QAAS,CAAEvR,cAAekS,EAAgBlO,aAAcgO,EAAc/kC,QAASA,EAE9GyzB,eAlHc,SAAUhI,EAAMwb,GAClCA,GACA1E,IAEC0E,GAIDR,GACAjB,EAAe/Z,GAEnBga,EAAYha,IANRia,EAAcja,EAOtB,EAsGiDuL,MAAOpwE,EAAMowE,MAAO4L,sBAAuBA,EAAuBC,uBAAwBA,EAE/HpG,eAAgBA,EAAgBS,gBAAiBA,EAAiBlK,kBAAmBpsE,EAAMosE,kBAAmB7B,QAASA,EAASC,QAASA,EAAS1oD,aAAcu9D,GAAeO,IACnLN,KAA6BA,IACjC,gBAAoB,KAAY,MACxC,IAEA,SAASP,GAA4BjgF,GACjC,IAAIg/E,EAA2Bh/E,EAAGg/E,yBAA0BD,EAAqB/+E,EAAG++E,mBAChF/mC,GAAM,EAAAC,GAAA,KACV,OAAO+mC,GAA6BD,GAAsB/mC,GAAOA,EAAIxW,YAjP5C,GAkP7B,CALA29C,GAAa9+E,YAAc,eCpPpB,ICEIohF,IAAW,EAAA58D,EAAA,GAAOs6D,IDFT,SAAUj+E,GAC1B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOi+E,EAAqB79E,EAAM69E,mBAAoBD,EAAuB59E,EAAM49E,qBAAsB5S,EAAkBhrE,EAAMgrE,gBAC5KnnD,EAAUjkB,EAAMikB,QAChB28D,EAAa3C,GAAsBD,EAAuB,IAAM,IAIpE,OAHI5S,GAAmB6S,IACnB2C,GAAc,IAEX,CACHryE,KAAM,CACF,MACA,CACIsX,QAAS,OACT3Y,MAAO0zE,IAEV5C,GAAwB,CACrBtlD,cAAe,UAEnBh2B,GAEJ+pB,QAAS,CACL5f,IAAK,EACLwsB,YAAa,YACbrS,YAAa/C,EAAQkS,cAEzBuqD,mBAAoB,CAChB,CACI76D,QAAS,OACT6S,cAAe,WAGvBmnD,cAAe,EACX,SAAc7/E,EAAO,CAAEi1B,OAAQ,IAC/B,CACIloB,OAAQ,EACR8R,MAAOoF,EAAQW,eACf5Q,OAAQ,GACRyR,WAAY,GACZJ,gBAAiB,cACjB0B,OAAQ,OACRqO,UAAW,cACX5P,QAAS,QACTiyD,UAAW,WACX59C,YAAa,GACbD,UAAW,EACXlU,SAAU,MAAUS,MACpB/I,WAAY,UACZwE,SAAU,UACV1R,UAAW,CACP,QAAS,CACLwV,SAAU,MAAUS,OAExB,UAAW,CACPtH,MAAOoF,EAAQiD,aACf7B,gBAAiB,cACjB7I,OAAQ,UACRtM,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,CACvBiR,QAAS,uBACT+kB,aAAc,OAElBh2B,IAER,WAAY,CACR2f,MAAOoF,EAAQ6T,WAEnB,aAAc,CACVjZ,MAAOoF,EAAQmS,mBACfgD,cAAe,WAK/BonD,WAAY,CACRz5D,OAAQ,EACR/S,OAAQ,MACR4R,OAAQ,OACRhE,SAAU,SACV4D,QAAS,EACTtY,MAAO,MACP8Y,SAAU,YAGtB,QCjFmDniB,EAAW,CAC1D0iB,MAAO,a,0DCFAs6D,IAA2B,SAAS,QAAS,CAAC,EAAGtI,IAAyB,CAAEvS,mBAAoB,uBAAwBC,mBAAoB,mBAAoBC,kBAAmB,sBAAuBC,kBAAmB,kBAAmBG,qBAAsB,oBAAqBwa,uBAAwB,oBAAqBC,yBAA0B,sBAAuBC,qBAAsB,6CCStZ,IAAgB,EAAAtiE,EAAA,KAChB,GAAgB,CAChBuiE,gBAAgB,EAChBC,WAAY,SAAUjc,GAAQ,OAAQA,EAAOA,EAAKkc,eAAiB,EAAK,EACxEC,oBAAqB,SAAUC,GAGvBA,EAAQhvE,MAAM,wBACdgvE,GAAW,UAEf,IAAIpc,EAAO4B,KAAKya,MAAMD,GACtB,OAAOpc,EAAO,IAAI4B,KAAK5B,GAAQ,IACnC,EACAiD,eAAgBvD,EAAUkL,OAC1B0R,kBAAmB,IAAI1a,KACvB2a,YAAY,EACZxD,sBAAsB,EACtBE,0BAA0B,EAC1B1kC,QAASqnC,GACTzE,uBAAuB,EACvBC,wBAAwB,EACxBoF,YAAY,EACZC,gBAAiB,WACjBtW,iBAAiB,EACjB1B,gBAAiB7E,EAAgBuZ,SACjCD,eAAe,EACfxH,iBAAiB,EACjBgL,YAAY,EACZtW,cAAc,GA+IPuW,GAAiB,cAAiB,SAAU59C,EAAsBC,GACzE,IAAI/kC,EAAI2H,EACJzG,GAAQ,EAAA8jC,EAAA,GAAqB,GAAeF,GAC5CkkC,EAAiB9nE,EAAM8nE,eAAgB1uB,EAAUp5C,EAAMo5C,QAASnvB,EAAQjqB,EAAMiqB,MAAOrqB,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWvC,EAASC,EAAMD,OAAQohF,EAAoBnhF,EAAMmhF,kBAAmBC,EAAaphF,EAAMohF,WAAY54E,EAAWxI,EAAMwI,SAAUgX,EAAYxf,EAAMwf,UAAW8hE,EAAkBthF,EAAMshF,gBAAiBn9B,EAAcnkD,EAAMmkD,YAAa08B,EAAiB7gF,EAAM6gF,eAAgBQ,EAAarhF,EAAMqhF,WAAY9W,EAAUvqE,EAAMuqE,QAASC,EAAUxqE,EAAMwqE,QAAS+L,EAAkBv2E,EAAMu2E,gBAAiBkL,EAAgBzhF,EAAMyhF,cAAe76B,EAAe5mD,EAAM4mD,aAAc86B,EAAiB1hF,EAAM2hF,UAAWJ,EAAavhF,EAAMuhF,WAAYtW,EAAejrE,EAAMirE,aAAcvkE,EAAK1G,EAAM4hF,WAAYC,OAAsB,IAAPn7E,EAAgB65E,GAAW75E,EAAIiL,EAAW3R,EAAM2R,SAAUhL,EAAK3G,EAAM8hF,iBAAkBA,OAA0B,IAAPn7E,GAAuBA,EACh2BsR,GAAK,EAAA5B,EAAA,GAAM,aAAcrW,EAAMiY,IAC/B8pE,GAAY,EAAA1rE,EAAA,GAAM,sBAClB2rE,EAAW,SAAa,MACxBC,EAAgB,SAAa,MAC7Br+D,EArJR,WACI,IAAIs+D,EAAe,SAAa,MAC5BC,EAA4B,UAAa,GAQ7C,MAAO,CAACD,EAPI,WACR,IAAIpjF,EAAI2H,EAC6E,QAApFA,EAAqC,QAA/B3H,EAAKojF,EAAar6E,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,aAA0B,IAAPtB,GAAyBA,EAAGrC,KAAKtF,EAClI,EAI6BqjF,EAHO,WAChCA,EAA0Bt6E,SAAU,CACxC,EAEJ,CA0Ia,GAAiBq6E,EAAet+D,EAAG,GAAI7b,EAAQ6b,EAAG,GAAIu+D,EAA4Bv+D,EAAG,GAAIw+D,EAAgCx+D,EAAG,GACjIuS,EA1IR,SAA+Br3B,EAAIiJ,GAC/B,IAAI84E,EAAiB/hF,EAAG+hF,eAAgB3uD,EAAqBpzB,EAAGozB,mBAC5DzrB,EAAK,YAAe,GAAQ47E,EAAkB57E,EAAG,GAAI67E,EAAqB77E,EAAG,GAC7E87E,EAAY,UAAa,GACzBjgD,GAAQ,EAAAvtB,GAAA,KAaZ,OAZA,aAAgB,WACRwtE,EAAU16E,UAAYw6E,IAElBxB,GACAv+C,EAAMK,sBAAsB56B,GAGhCmqB,SAAwEA,KAE5EqwD,EAAU16E,SAAU,CAExB,GAAG,CAACw6E,IACG,CAACA,EAAiBC,EAC7B,CAwHaE,CAAsBxiF,EAAO+H,GAAQs6E,EAAkBlsD,EAAG,GAAImsD,EAAqBnsD,EAAG,GAC3FC,EAxHR,SAAyBt3B,GACrB,IAAIgiF,EAAahiF,EAAGgiF,WAAYzsE,EAAQvV,EAAGuV,MAAOu4D,EAAe9tE,EAAG8tE,aAChEnmE,GAAK,EAAAkP,GAAA,GAAqBtB,OAAO5Q,GAAW,SAAU4B,EAAI+Q,GAC1D,OAAOw2D,aAAmD,EAASA,EAAax2D,EACpF,IAAI+5D,EAAe1pE,EAAG,GAAIg8E,EAAuBh8E,EAAG,GAChDC,EAAK,YAAe,WAAc,OAAQ2N,GAASysE,EAAaA,EAAWzsE,GAAS,EAAK,IAAIquE,EAAgBh8E,EAAG,GAAIi8E,EAAmBj8E,EAAG,GAQ9I,OAHA,aAAgB,WACZi8E,EAAiBtuE,GAASysE,EAAaA,EAAWzsE,GAAS,GAC/D,GAAG,CAACysE,EAAYzsE,IACT,CAAC87D,EAAcuS,EAPA,SAAUE,GAC5BH,EAAqBG,GACrBD,EAAiBC,GAAW9B,EAAaA,EAAW8B,GAAW,GACnE,EAIsDD,EAC1D,CA0GaE,CAAgB7iF,GAAQmwE,GAAe/5C,EAAG,GAAIssD,GAAgBtsD,EAAG,GAAI8nD,GAAkB9nD,EAAG,GAAIusD,GAAmBvsD,EAAG,GACzHC,GA1GR,SAAyBv3B,EAAIqxE,EAAc+N,EAAiB9pE,EAAYiuE,GACpE,IAAI57E,EACA26E,EAAatiF,EAAGsiF,WAAYP,EAAiB/hF,EAAG+hF,eAAgBznC,EAAUt6C,EAAGs6C,QAAS4nC,EAAsBliF,EAAGkiF,oBAAqBpU,EAAe9tE,EAAG8tE,aAAckU,EAAahiF,EAAGgiF,WAAYvW,EAAUzrE,EAAGyrE,QAASC,EAAU1rE,EAAG0rE,QAASmX,EAAY7iF,EAAG6iF,UAC3Pj7E,EAAK,aAAkBu6C,EAAev6C,EAAG,GAAIo8E,EAAkBp8E,EAAG,GAClEC,EAAK,aAAkBo8E,EAAgBp8E,EAAG,GAAIq8E,EAAmBr8E,EAAG,GACpEs8E,EAAiB,UAAa,GAC9BC,EAA2G,QAAzFz8E,EAAKk7E,aAA6C,EAASA,EAAUuB,sBAAmC,IAAPz8E,GAAgBA,EAiFvI,OA5BA,aAAgB,WACRw8E,EAAep7E,UACfo7E,EAAep7E,SAAU,GACpBq7E,KAIL9B,IAAejR,EACf2S,EAAgB1pC,EAAQsnC,wBAA0B,KAE7CvQ,GAAgBgT,GAAkBhT,EAAc5F,EAASC,GAC9DsY,EAAgB1pC,EAAQgqC,2BAA6B,KAGrDN,OAAgBr/E,GAGxB,GAAG,CAGC8mE,GAAW5C,EAAqB4C,GAEhCC,GAAW7C,EAAqB6C,GAEhC2F,GAAgBxI,EAAqBwI,GACrCiR,EACA8B,IAEG,CACHb,OAAkB5+E,EAAYw9C,EAjFV,SAAU4jB,GAE9B,QADa,IAATA,IAAmBA,EAAO,MAC1Bgc,EACA,GAAIzsE,GAAcywD,EAAM,CAIpB,GAAIsL,IAAiBlvB,GAAgB6/B,GAAcA,EAAWjc,QAAmCA,EAAOsL,KAAkB/7D,EACtH,OAIJ,KAFAywD,EAAOA,GAAQmc,EAAoB5sE,KAEtB0kC,MAAM+rB,EAAK6B,WAAY,CAEhCwX,EAAgB/N,GAEhB,IAAIkT,EAAevC,EAAaA,EAAW3Q,GAAgB,GACvDmT,EAAalqC,EAAQwnC,sBACnB,OAAOxnC,EAAQwnC,qBAAsBxsE,EAAYivE,GACjDjqC,EAAQunC,0BAA4B,GAC1CqC,EAAiBM,EACrB,MAGQH,GAAkBte,EAAM0F,EAASC,GACjCsY,EAAgB1pC,EAAQgqC,2BAA6B,MAGrDlF,EAAgBrZ,GAChBie,OAAgBr/E,GAChBu/E,OAAiBv/E,GAG7B,MAGIq/E,EAAgB1B,EAAahoC,EAAQsnC,wBAA0B,SAAMj9E,GAGrEmpE,SAA4DA,EAAa/H,QAGxEuc,IAAehtE,EAEpB0uE,EAAgB1pC,EAAQsnC,wBAA0B,MAIlDoC,OAAgBr/E,GAChBu/E,OAAiBv/E,GAEzB,EAgCIq/E,EACAT,OAAkB5+E,EAAYs/E,EAC9BC,EAER,CAYaO,CAAgBvjF,EAAOmwE,GAAc+N,GAAiBwE,GAAeL,GAAkBphC,GAAe5qB,GAAG,GAAImtD,GAAoBntD,GAAG,GAAIysD,GAAkBzsD,GAAG,GAAI0sD,GAAgB1sD,GAAG,GAAI2sD,GAAmB3sD,GAAG,GACnNotD,GAAsB,eAAkB,WACnCpB,IACDD,IACAE,GAAmB,GAE3B,GAAG,CAACD,EAAiBD,EAA+BE,IACpD,sBAA0BtiF,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAOA,EACP27E,MAAO,WACHpB,GAAmB,GACnBpE,QAAgBz6E,GAChBq/E,QAAgBr/E,GAChBu/E,QAAiBv/E,EACrB,EACAggF,oBAAqBA,GACrB,GAAG,CAAC17E,EAAO+6E,GAAiBR,EAAoBpE,GAAiB8E,GAAkBS,KACvF,IA6FIE,GAAyB,SAAUC,GAC/BvB,IACAC,GAAmB,GACnBkB,GAAkBI,IACb/C,GAAkB+C,GACnB1F,GAAgB0F,GAG5B,EAoBIC,GAAoB,SAAUD,GAC9BxB,IACAuB,GAAuBC,EAE3B,EAaIzhF,GAAa,GAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXkG,SAAUA,EACV+4E,WAAYA,EACZt3D,QAASA,EACT65D,kBAAmBzB,IAEnBvlE,IAAc,QAAe9c,EAAO,KAAe,CAAC,UACpDohB,GAAYsgE,GAAkBA,EAAetgE,UAC7C2iE,GAAcrC,GAAkBA,EAAezpE,IAAMypE,EAAezpE,KAAOA,EAAKypE,EAAezpE,GAAKA,EAAK,SACzG1D,IAAYssE,IAAmBr4E,EAC/BipB,GAAoM,QAAjLhrB,EAAoH,QAA9G3H,EAAK4iF,aAAuD,EAASA,EAAe,4BAAyC,IAAP5iF,EAAgBA,EAAKkB,EAAM,4BAAyC,IAAPyG,GAAgBA,EAChO,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGqW,GAAa,CAAExa,UAAWH,GAAWgM,KAAM6B,IAAK6zB,IAC5F,gBAAoB,MAAO,CAAE7zB,IAAKiyE,EAAe,YAAaI,EAAkBN,OAAYt+E,EAAWnB,UAAWH,GAAWwzD,SACzH,gBAAoBtZ,GAAA,GAAW,QAAS,CAAE36B,KAAM,WAAYuI,MAAOA,EAAO,gBAAiBo4D,EAAiB7iE,UAAWA,EAAW,gBAAiB,SAAU,gBAAiB6iE,EAAkBN,OAAYt+E,EAAW+mC,SAAU42C,EAAY54E,SAAUA,EAAUy4C,aAAcA,GAAckD,YAAaA,EAAak9B,WAAYA,EAAYhtE,MAAOquE,GAAe5gE,aAAcogE,EAAcX,WAAYA,EAAY5vE,SAAUA,EAAU4C,UAAWssE,GAAkBa,EAAgB,CAAE,oBAAqBjwD,GAAiBxZ,GAAI8rE,GAAazhF,WAAW,EAAAsN,EAAA,GAAIzN,GAAWw/E,UAAWD,GAAkBA,EAAep/E,WAAY8e,WAAW,SAAS,QAAS,CAAED,SAAU,YAAcC,IAAY,CAAE9e,WAAW,EAAAsN,EAAA,GAAIzN,GAAWwlB,KAAMvG,IAAaA,GAAU9e,WAAYkb,QArEnuB,SAAUnY,GACxBA,EAAG+C,kBACEi6E,GAAoBriF,EAAMwI,SAGtBxI,EAAM6gF,gBACX8C,KAHAF,IAKR,IA+DYn9D,oBArDqB,SAAUmkB,EAAYxd,GACnD,OAAQ,gBAAoB,WAAgB,KACxCwd,EAAWlgB,aAAekgB,EAAWnkB,oBAAsB2G,EAAcwd,GAAc,KACvF,gBAAoB,MAAO,CAAE,YAAa,YAAanoC,UAAWH,GAAW4gF,eAAiBA,IACtG,EAmDY95E,UAlHa,SAAU5D,GAE/B,OAAQA,EAAGqE,OACP,KAAKC,EAAA,EAASiC,MACVvG,EAAGyG,iBACHzG,EAAG+C,kBACEi6E,EAOGriF,EAAM6gF,gBACN8C,MAPJH,KACAC,MASJ,MACJ,KAAK95E,EAAA,EAAS4gD,QAoEH,SAAUllD,GACrBg9E,IACAh9E,EAAG+C,kBACHy7E,KAER,CAxEYG,CAAa3+E,GACb,MACJ,KAAKsE,EAAA,EAASa,KACNnF,EAAGM,SAAW08E,GACdoB,KAMhB,EAuFYl8E,QA/JW,WACfu6E,GAGCjB,IACIsB,EAA0Bt6E,SAC3B47E,KAEJtB,EAA0Bt6E,SAAU,EAE5C,EAuJYkoC,OApIU,SAAU1qC,GAC5Bm+E,IACJ,EAoIYhmE,QA1FW,SAAUnY,IAEXrF,EAAMikF,aAAgBjkF,EAAM8hF,kBAC1BO,GAAoBriF,EAAMwI,SAI1CxI,EAAM6gF,gBACN8C,KAJAF,IAMR,EAkFY3tE,SArIa,SAAUzQ,EAAI+Q,GACnC,IAAItX,EACA6iF,EAAY3hF,EAAM2hF,UAClBd,IACIwB,GACAsB,KAEJhB,GAAiBvsE,IAE+D,QAAnFtX,EAAK6iF,aAA6C,EAASA,EAAU7rE,gBAA6B,IAAPhX,GAAyBA,EAAGsF,KAAKu9E,EAAWt8E,EAAI+Q,EAChJ,EA2H0C8tE,cAAe3vE,GA1D/B,SAAUk2B,GAChC,IAAIh7B,GAAW,QAAeg7B,EAAY,MAGtC05C,GAA6B,SAAY10E,EAASnN,UAAWH,GAAWiiF,mBAG5E,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAG30E,EAAU,CAAEnN,UAAW6hF,EAA4BxyE,SAAUA,GAAY,IAAM+wE,IAE/H,gBAAoB,OAAQ,CAAEpgF,UAAWH,GAAWkiF,qBAAuBlgC,GAC/E,OAgD0F1gD,MACtF4+E,GAAoB,gBAAoB74C,GAAA,GAAS,QAAS,CAAEvxB,GAAI8pE,EAAWrgE,KAAM,SAAUlC,UAAW8hE,EAAiBvhD,eAAe,EAAOhB,SAAU,EAAGpM,YAAY,EAAOv0B,OAAQ6jF,EAAcp6E,QAASga,gBAAiB3I,GAAA,EAAgBK,gBAAkBqtC,EAAc,CAAEtkD,WAAW,EAAAsN,EAAA,GAAIzN,GAAW09B,QAAS+mB,GAAgBA,EAAatkD,WAE3UksB,UA1Ce,SAAUnpB,GAC7Bw+E,IACJ,EA0CQphD,aAzJkB,WACtB,IAAI6hD,GAAc,EAIdtkF,EAAM4mD,mBAAuDnjD,IAAvCzD,EAAM4mD,aAAarf,kBACzC+8C,EAActkF,EAAM4mD,aAAarf,iBAEjCy6C,EAASn6E,SAAWy8E,GACpBtC,EAASn6E,QAAQE,OAEzB,IA+IQ,gBAAoBw8E,GAAA,EAAe,CAAEC,6BAA6B,EAAMC,kBAAmB3C,GACvF,gBAAoBD,GAAc,QAAS,CAAC,EAAGJ,EAAe,CAE1D7U,aAnKG,SAAU/H,GACrB7kE,EAAMyhF,eAAiBzhF,EAAMyhF,cAAc7U,cAC3C5sE,EAAMyhF,cAAc7U,aAAa/H,GAErCgf,GAAkBhf,EACtB,EAgKgBr2C,UAzCU,SAAUnpB,GAChCw+E,IACJ,EAuCgDjG,qBAAsB59E,EAAM49E,qBAAsBE,yBAA0B99E,EAAM89E,yBAA0B1N,MAAOpwE,EAAMowE,MAAO/7D,MAAO87D,IAAgBgR,EAAmBrZ,eAAgBA,EAAgB1uB,QAASA,EAAS4iC,sBAAuBh8E,EAAMg8E,sBAAuBC,uBAAwBj8E,EAAMi8E,uBAAwBjR,gBAAiBhrE,EAAMgrE,gBAAiB1B,gBAAiBtpE,EAAMspE,gBAAiByU,cAAe/9E,EAAM+9E,cAAe3R,kBAAmBpsE,EAAMosE,kBAAmB7B,QAASA,EAASC,QAASA,EAAS1oD,aAAckgE,EAAUzL,gBAAiBA,EAAiBtL,aAAcA,OACtoB,IAEA,SAASkY,GAAkBte,EAAM0F,EAASC,GACtC,QAAUD,GAAW7C,EAAgB6C,EAAS1F,GAAQ,KAAS2F,GAAW9C,EAAgB8C,EAAS3F,GAAQ,CAC/G,CAHA2c,GAAeriF,YAAc,iBCnY7B,IAAI,GAAmB,CACnBgP,KAAM,gBACN0xB,QAAS,wBACT6kD,UAAW,kCACXC,aAAc,qCACdn8E,SAAU,yBCHHo8E,IAAa,EAAAjhE,EAAA,GAAO69D,IDMX,SAAUxhF,GAC1B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO4I,EAAWxI,EAAMwI,SAAU+4E,EAAavhF,EAAMuhF,WAAYt3D,EAAQjqB,EAAMiqB,MAAO65D,EAAoB9jF,EAAM8jF,kBAC3JjgE,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,SAAoB,GAAkBvC,GACnDilF,EAAiB,CACjBpmE,MAAOoF,EAAQO,iBACfkB,SAAU,MAAUqC,KACpBtC,WAAY,OACZ2T,cAAe,OACfpT,SAAU,WACVzb,MAAO,MACPib,QAAS,OAEb,MAAO,CACHjX,KAAM,CAAChM,EAAWgM,KAAMvO,EAAMkkB,MAAM6yC,MAAOmtB,GAAqB,UAAW,MAAWxhF,GACtFq/E,UAAW,CACP,CACI/7D,SAAU,WACV9V,UAAW,CACP,oBAAqB,CACjBsM,OAAQ,WAEZ+vB,MAAO,CACHr8B,UAAW,CACP,cAAe,CACX2V,QAAS,YAM7Bjd,GAAY,CACRsH,UAAW,CACP,oBAAqB,CACjBsM,OAAQ,cAKxByjB,QAAS,CAAC19B,EAAW09B,SACrBlY,KAAM,CACFk9D,EACA56D,EAAQ9nB,EAAWuiF,UAAYviF,EAAWwiF,aAC1C,CAAE3yC,WAAY,QACbxpC,GAAY,CACTrG,EAAWqG,SACX,CACIwwB,cAAe,UACf5c,OAAQ,YAGhB5T,GAAY,CACRiW,MAAOC,EAAegW,aACtBtY,OAAQ,YAGhB2mE,cAAe,CACXj/D,EAAMiC,MACN,CACItH,MAAOC,EAAeuhC,UACtBzmB,UAAW,IAGnB4qD,kBAAmB,CACf,CACIhoE,OAAQ,UACRxI,OApEO,GAqEPyR,WAAYy/D,GACZtjE,SAAU,SACV+B,aAAc,YAElBg+D,GAAc,CACVl8D,WAAYy/D,KAGpBT,qBAAsBvlF,EAAK,CACnB2f,MAAOC,EAAe8hC,sBAE1B1hD,EAAG,OAAwB,CACvB2f,MAAO,YAEX3f,GAEZ,QC1FuD2E,EAAW,CAC9D0iB,MAAO,c,uCCDA4+D,E,2LACX,SAAWA,GACPA,EAAsBA,EAA8B,OAAI,GAAK,SAC7DA,EAAsBA,EAA+B,QAAI,GAAK,SACjE,CAHD,CAGGA,IAA0BA,EAAwB,CAAC,I,sECAlD1mE,GAAgB,EAAAC,EAAA,KAIhB0mE,EAAwB,SAAU7iF,GAClC,OAAO,SAAUnC,GACb,OAAKA,EAGDA,EAAMilF,OAAOC,WACN,gBAAoB,OAAQ,CAAE5iF,UAAWH,EAAWgjF,iBAAmBnlF,EAAMilF,OAAOvkF,MAExF,gBAAoB,WAAgB,KAAMV,EAAMilF,OAAOvkF,MALnD,IAMf,CACJ,EAMI0kF,EAAmC,SAAU5+E,GAE7C,SAAS4+E,EAAkBplF,GACvB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAkFxC,OAjFAkC,EAAMC,MAAQ,cACdD,EAAMy+E,YAAc,cACpBz+E,EAAM0+E,oBAAsB,SAAUnjF,GAClC,OAAO,SAAUnC,GACb,IAAIulF,EAAcvlF,EAAMulF,YAAankE,GAAY,QAAOphB,EAAO,CAAC,gBAC5D4pC,GAAiB27C,aAAiD,EAASA,EAAY57C,cAAgBxc,EAAA,GAAWxN,EAAA,EACtH,OAAO,gBAAoBiqB,GAAe,QAAS,CAAC,EAAGxoB,GAC3D,CACJ,EACAxa,EAAM4+E,6BAA+B,SAAU3iE,GAC3C,OAAO,gBAAoB,OAAQ,CAAEvgB,UAAWugB,EAAiB4iE,eAAiB5iE,EAAiBzhB,SACvG,EACAwF,EAAM8+E,eAAiB,SAAUrgF,GAC7B,IAAIvG,EAAK8H,EAAM5G,MAAO2lF,EAAgB7mF,EAAG6mF,cAAeV,EAASnmF,EAAGmmF,OAChEA,EAAOW,oBAAsB,KAAkBp9E,WAG/Cy8E,EAAOU,eACPV,EAAOU,cAActgF,EAAI4/E,GAEzBU,GACAA,EAActgF,EAAI4/E,GAE1B,EACAr+E,EAAMi/E,cAAgB,WAClBj/E,EAAMy+E,YAAYx9E,SAAWjB,EAAMy+E,YAAYx9E,QAAQ+zD,SAC3D,EACAh1D,EAAMk/E,eAAiB,WACnBl/E,EAAMy+E,YAAYx9E,SAAWjB,EAAMy+E,YAAYx9E,QAAQk+E,MAC3D,EACAn/E,EAAMo/E,aAAe,SAAU/lE,EAAMgmE,EAAWC,EAAe5gF,GAC3D,IAAInD,EAAayE,EAAMoa,YACnBilE,IACAr/E,EAAMu/E,sBAAsBF,GAC5Br/E,EAAMC,MAAMgB,QAAQimE,UAAUz/D,IAAIlM,EAAWikF,qBAC7Cx/E,EAAMiU,OAAO1C,YAAW,WAChBvR,EAAMC,MAAMgB,SACZjB,EAAMC,MAAMgB,QAAQimE,UAAUz/D,IAAIlM,EAAWkkF,sBAErD,GA5Da,IA8DrB,EACAz/E,EAAM0/E,WAAa,SAAUrmE,EAAM3a,GAC/B,IAAInD,EAAayE,EAAMoa,YACnB1b,GACAsB,EAAMu/E,uBAAuB,EAAG7gF,GAEpCsB,EAAMC,MAAMgB,QAAQimE,UAAUC,OAAO5rE,EAAWikF,qBAChDx/E,EAAMC,MAAMgB,QAAQimE,UAAUC,OAAO5rE,EAAWkkF,sBACpD,EACAz/E,EAAMu/E,sBAAwB,SAAUF,EAAW3gF,GAE3CsB,EAAM5G,MAAMumF,qBACZ3/E,EAAM5G,MAAMumF,oBAAoBN,GAGhCr/E,EAAM5G,MAAMwmF,gBACZ5/E,EAAM5G,MAAMwmF,eAAe,CAAEP,UAAWA,GAAa3gF,EAE7D,EACAsB,EAAM6/E,qBAAuB,SAAUphF,GACnC,IAAIvG,EAAK8H,EAAM5G,MAAO0mF,EAAsB5nF,EAAG4nF,oBAAqBzB,EAASnmF,EAAGmmF,OAC5EA,EAAOyB,sBACPzB,EAAOyB,oBAAoBzB,EAAQ5/E,GACnCA,EAAGyG,kBAEH46E,IACAA,EAAoBzB,EAAQ5/E,GAC5BA,EAAGyG,iBAEX,EACAlF,EAAM+/E,iBAAmB,SAAUthF,GACbuB,EAAM5G,MAAM4mF,aAjGX,IAmGAvhF,EAAGwhF,QAClBxhF,EAAG+C,iBAEX,GACA,EAAA4E,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GACxBA,CACX,CAwJA,OA7OA,QAAUw+E,EAAmB5+E,GAsF7B4+E,EAAkBjhF,UAAUxB,OAAS,WACjC,IAAI7D,EAAK4F,KAAK1E,MAAOilF,EAASnmF,EAAGmmF,OAAQ6B,EAAWhoF,EAAGgoF,SAAUF,EAAc9nF,EAAG8nF,YAAa7mF,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO6G,EAAK3H,EAAGioF,eAAgBA,OAAwB,IAAPtgF,EAAgB,KAA2BA,EAAIC,EAAK5H,EAAG6qC,aAAcA,OAAsB,IAAPjjC,GAAuBA,EACrRC,EAAKjC,KAAK1E,MAAMgnF,4BAA6BA,OAAqC,IAAPrgF,EAAgBjC,KAAK8gF,6BAA+B7+E,EACnIjC,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACPqnF,gBAAiBhC,EAAOgC,gBACxBr+D,cAAeq8D,EAAOr8D,cACtB1I,aAAc+kE,EAAOW,oBAAsB,KAAkBp9E,SAC7D0+E,SAAUjC,EAAOvkF,KACjBymF,cAAelC,EAAOmC,UAAYnC,EAAOoC,WAAapC,EAAOqC,WAC7DC,SAAUtC,EAAOsC,SACjBrC,WAAYD,EAAOC,WACnB6B,eAAgBA,EAChBS,uBAvHmB,IAwHnBC,uBAvHmB,OAyHvB,IAAItlF,EAAauC,KAAKsc,YAClB4oB,EAAgBD,EAAexc,EAAA,GAAWxN,EAAA,EAC1C+nE,EAAqBzC,EAAOyC,oBAC1B,EAAA3mE,EAAA,GAAsBkkE,EAAOyC,mBAAoBhjF,KAAK4gF,oBAAoB5gF,KAAKsc,cAC/Etc,KAAK4gF,oBAAoB5gF,KAAKsc,aAChC2mE,EAAiB1C,EAAO0C,gBACtB,EAAA5mE,EAAA,GAAsBkkE,EAAO0C,eAAgB3C,EAAsBtgF,KAAKsc,cACxEgkE,EAAsBtgF,KAAKsc,aAC7B4mE,EAAiB3C,EAAOW,oBAAsB,KAAkBp9E,gBACtC/E,IAAzBwhF,EAAOU,oBAA4DliF,IAA7BiB,KAAK1E,MAAM2lF,eAElDkC,EAAyBnjF,KAAK1E,MAAMgnF,6BACjC/B,EAAOzlE,UACR9a,KAAKojF,4BACPC,EAAqB,CACrB,aAAc9C,EAAOzlE,UAAYylE,EAAOzlE,UAAYylE,EAAOC,WAAaD,EAAOvkF,UAAO+C,EACtF,kBAAmBwhF,EAAOzlE,WAAaylE,EAAOC,gBAAazhF,EAAY,GAAGyT,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,IAAK,SACnH,mBAAoBynE,EAAyB,GAAG3wE,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,IAAK,iBAAc3c,GAE3G,OAAQ,gBAAoB,WAAgB,KACxC,gBAAoB,OAAO,QAAS,CAAE2c,IAAK6kE,EAAO7kE,IAAKpQ,IAAKtL,KAAKmC,MAAO6a,KAAM,iBAAoBkmE,GAAkBG,EAAqB,CAAE,YAAa9C,EAAOmC,SAAYnC,EAAO+C,mBAAqB,aAAe,YAAe,OAAQ,oBAAsBJ,GAAkB3C,EAAOW,oBAAsB,KAAkBp9E,cAAoB/E,EAAT,OAAoBnB,UAAWH,EAAWgM,KAAM,oBAAqBy4E,EAAaqB,UAAWrB,EAAa7pE,MAAO,CACxbjQ,MAAOm4E,EAAOiD,gBACVnB,EAAeoB,gBACfpB,EAAeqB,kBACdnD,EAAOsC,SAAWR,EAAesB,sBAAwB,IAC/D,oBAAqB,sBAAuB,gBAAiBpD,EAAO7kE,IAAK2vB,OAAQrrC,KAAKmhF,cAAet+E,QAAS7C,KAAKohF,iBACtHc,GAAgB,gBAAoBh9C,EAAe,CAAEzoB,SAAU,qBAAsB7e,UAAWH,EAAWmmF,0BAC3GtB,EAA4B,CACxBvB,cAAetjF,EAAWomF,YAC1BtwE,GAAI,GAAGf,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,IAAK,YAChD0xC,oBAAoB,EACpBmzB,OAAQA,EACRnjE,aAAcpd,KAAK2gF,YACnB3iE,QAASuiE,EAAOW,oBAAsB,KAAkBp9E,SAAWy8E,EAAOzlE,UAAY,GACtFpe,SAAW,gBAAoB,QAAQ,QAAS,CAAE6W,GAAI,GAAGf,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,KAAM9d,UAAWH,EAAWqmF,UAAW,oBAAqBZ,GAAkB3C,EAAOW,oBAAsB,KAAkBp9E,SAAW,YAAS/E,EAAWie,KAAMkmE,EAAiB,cAAWnkF,GAAcmkF,GAAkBG,EAAqB,CAAEU,cAAe/jF,KAAK+hF,qBAAsBjpE,QAAS9Y,KAAKghF,eAAgB,gBAAiBT,EAAOW,oBAAsB,KAAkB8C,YAAc,YAASjlF,EAAW,gBAAiBwhF,EAAOW,oBAAsB,KAAkB8C,cAAgBzD,EAAO0D,gBAAallF,IAC5lB,gBAAoB,OAAQ,CAAEwU,GAAI,GAAGf,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,IAAK,SAAU9d,UAAWH,EAAWymF,WACzG3D,EAAO9jE,UAAY8jE,EAAOr8D,gBAAmB,gBAAoBghB,EAAe,CAAEtnC,UAAWH,EAAWymB,cAAezH,SAAU8jE,EAAO9jE,WACzIwmE,EAAejjF,KAAK1E,QACxBilF,EAAOqC,YAAc,gBAAoB19C,EAAe,CAAEtnC,UAAWH,EAAW0mF,SAAU1nE,SAAU,YACnG8jE,EAAOmC,UAAYnC,EAAO6D,2BAA8B,gBAAoBl/C,EAAe,CAAEtnC,UAAWH,EAAW4mF,SAAU5nE,SAAU8jE,EAAOmC,SAAYnC,EAAO+C,mBAAqB,WAAa,SAAY,SAChN/C,EAAOoC,WAAa,gBAAoBz9C,EAAe,CAAEtnC,UAAWH,EAAW0mF,SAAU1nE,SAAU,sBACnG8jE,EAAOW,oBAAsB,KAAkB8C,cAC1CzD,EAAOC,YACRwC,EAAmB,CACf,eAAe,EACfnC,YAAa7gF,KAAK1E,MAClBsC,UAAWH,EAAW6mF,cACtB7nE,SAAU,kBAEvBzc,KAAK8gF,+BACX9gF,KAAK1E,MAAMgnF,4BAAoE,KAAtCtiF,KAAKukF,+BACvD,EACA7D,EAAkBjhF,UAAU+J,kBAAoB,WAC5C,IAAItH,EAAQlC,KACRA,KAAK1E,MAAMkpF,gBAAkBxkF,KAAK1E,MAAM4mF,aACxCliF,KAAKykF,uBAET,IAAIhnF,EAAauC,KAAKsc,YAClBtc,KAAK1E,MAAMopF,YACP1kF,KAAKmC,MAAMgB,UACXnD,KAAKmC,MAAMgB,QAAQimE,UAAUz/D,IAAIlM,EAAWknF,qBAC5C3kF,KAAKmW,OAAO1C,YAAW,WACfvR,EAAMC,MAAMgB,SACZjB,EAAMC,MAAMgB,QAAQimE,UAAUz/D,IAAIlM,EAAWmnF,sBAErD,GAzLa,KA2LjB5kF,KAAKmW,OAAO1C,YAAW,WACfvR,EAAMC,MAAMgB,UACZjB,EAAMC,MAAMgB,QAAQimE,UAAUC,OAAO5rE,EAAWknF,qBAChDziF,EAAMC,MAAMgB,QAAQimE,UAAUC,OAAO5rE,EAAWmnF,uBAExD,GAAGC,MAEX,EACAnE,EAAkBjhF,UAAU6K,qBAAuB,WAC3CtK,KAAK8kF,wBACL9kF,KAAK8kF,sBAAsBv0E,iBACpBvQ,KAAK8kF,uBAEhB9kF,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,SACjB,EACAmwE,EAAkBjhF,UAAUuK,mBAAqB,YACxChK,KAAK8kF,uBAAyB9kF,KAAK1E,MAAMkpF,gBAAkBxkF,KAAK1E,MAAM4mF,aACvEliF,KAAKykF,uBAELzkF,KAAK8kF,wBAA0B9kF,KAAK1E,MAAM4mF,cAC1CliF,KAAK8kF,sBAAsBv0E,UAC3BvQ,KAAKmsB,QAAQ44D,IAAI/kF,KAAKmC,MAAMgB,QAAS,oBAC9BnD,KAAK8kF,sBAEpB,EACApE,EAAkBjhF,UAAUulF,0BAA4B,WACpD,IAAI9iF,EAAQlC,KACRilF,EAAcjlF,KAAK1E,MAAM2pF,YAW7B,MAVc,CACVC,eAAgBD,EAChBvqF,QAAS,CAAE2f,KAAM4qE,EAAahpE,MAAOgpE,GACrCE,QAAS,WAAc,OAAOjjF,EAAM5G,MAAM4mF,WAAa,EACvDkD,QAAS,WAAc,OAAO,CAAO,EACrCC,YAAarlF,KAAKshF,aAClBgE,gBAAiB,WAAgC,EACjDC,OAAQ,WAAgC,EACxCC,UAAWxlF,KAAK4hF,WAGxB,EACAlB,EAAkBjhF,UAAU2jF,0BAA4B,WACpD,IAAI7C,EAASvgF,KAAK1E,MAAMilF,OACxB,SAAUA,EAAOkF,iBACblF,EAAOmF,wBACPnF,EAAOoF,yBACPpF,EAAOqF,gBACPrF,EAAOsF,kBACf,EACAnF,EAAkBjhF,UAAU8kF,6BAA+B,WACvD,IAAInqF,EAAK4F,KAAK1E,MAAOilF,EAASnmF,EAAGmmF,OAAQ6B,EAAWhoF,EAAGgoF,SACnD3kF,EAAauC,KAAKsc,YACtB,OAAOtc,KAAKojF,8BAAgCpjF,KAAK1E,MAAMgnF,4BAA+B,gBAAoB,QAAS,CAAE5mE,IAAK,GAAGlJ,OAAO+tE,EAAO7kE,IAAK,UAAWnI,GAAI,GAAGf,OAAO4vE,EAAU,KAAK5vE,OAAO+tE,EAAO7kE,IAAK,YAAa9d,UAAWH,EAAWgjF,gBAAiBhyD,QAAQ,GAClQ8xD,EAAOqC,YAAcrC,EAAOkF,iBAAoB,MAC/ClF,EAAOmC,UAAYnC,EAAO6D,4BACvB7D,EAAOmC,SACFnC,EAAO+C,mBACH/C,EAAOoF,wBACPpF,EAAOmF,uBACXnF,EAAOsF,oBACb,KACHtF,EAAOoC,WAAapC,EAAOqF,gBAAmB,MAAS,IAChE,EACAlF,EAAkBjhF,UAAUglF,qBAAuB,WAC/CzkF,KAAK8kF,sBAAwB9kF,KAAK1E,MAAMkpF,eAAesB,UAAU9lF,KAAKmC,MAAMgB,QAASnD,KAAKmsB,QAASnsB,KAAKglF,6BAExGhlF,KAAKmsB,QAAQnZ,GAAGhT,KAAKmC,MAAMgB,QAAS,YAAanD,KAAKiiF,iBAC1D,EACOvB,CACX,CA/OsC,CA+OpC,a,sBCtQEhiE,EAAmB,CACnBlD,aAAc,gBACduqE,YAAa,+BACbC,eAAgB,kCAChBC,YAAa,eACbC,cAAe,iBACfC,kBAAmB,qBACnBC,iBAAkB,oBAClB5D,QAAS,WACTC,cAAe,kBACf4D,UAAW,6BACXC,WAAY,cACZC,oBAAqB,uCACrBC,kBAAmB,qCACnB1C,UAAW,6BACXI,SAAU,4BACVI,cAAe,iCACfV,wBAAyB,8BACzBO,SAAU,6BCnBHsC,GAAgB,EAAAxnE,EAAA,GAAOyhE,GDqBE,SAAUplF,GAC1C,IAAIlB,EACAc,EAAQI,EAAMJ,MAAOqnF,EAAkBjnF,EAAMinF,gBAAiBr+D,EAAgB5oB,EAAM4oB,cAAe1I,EAAelgB,EAAMkgB,aAAcgnE,EAAUlnF,EAAMknF,QAASC,EAAgBnnF,EAAMmnF,cAAeI,EAAWvnF,EAAMunF,SAAUrC,EAAallF,EAAMklF,WAAYz+E,EAAKzG,EAAM+mF,eAAgBA,OAAwB,IAAPtgF,EAAgB,KAA2BA,EAAI+gF,EAAyBxnF,EAAMwnF,uBAAwBC,EAAyBznF,EAAMynF,uBAC/a/oE,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDwrF,EAAS,CACTC,oBAAqB3sE,EAAeogC,YACpCwsC,sBAAuB5sE,EAAeC,SACtC4sE,sBAAuB7sE,EAAe4rB,eACtCkhD,+BAAgC3nE,EAAQO,iBACxCqnE,aAAc5nE,EAAQmS,oBAEtB01D,EAAgB,CAChBjtE,MAAO2sE,EAAOC,oBACd/pD,QAAS,EACTyQ,YAAa,GAEbq0C,EAAsB,CACtBr2E,QAAS,aAAamH,OAAO2M,EAAQiD,eAErC6kE,EAAwB,CACxB/2D,aAAc,eAElB,MAAO,CACHzmB,KAAM,EACF,QAAcnO,GACd8jB,EAAMiC,MACN7F,GAAgB,CACZ/d,EAAW+d,aACX,CACIpQ,UAAW,CACP,SAAU,CACN2O,MAAOC,EAAeC,SACtB0rB,WAAY3rB,EAAektE,6BAE/B,UAAW,CACPvhD,WAAY3rB,EAAemtE,gCAK3C3E,GAAW,CACP/kF,EAAW+kF,QACX,CACI3jE,aAAc,SAGtB4jE,GAAiBhlF,EAAWglF,cAC5BI,GAAY,CACRr1C,aAAc60C,EAAesB,sBAAwBtB,EAAeqB,kBAExE,CACIt4E,UAAW,CACP,gDAAiD,CAC7C2V,QAAS,WAIrBwhE,GAEJqB,wBAAyB,CACrB7iE,QAAS,OACTG,SAAU,WACVyO,UAAW,OACX5V,MAAOoF,EAAQyD,gBACfvd,KAAM,GAEV8+E,SAAU,CAAC1mF,EAAW0mF,SAAU6C,GAChC3C,SAAU,CACN2C,EACA,CACI35C,YAAa,EACbnsB,SAAU,WACVnZ,IAAK,IAGbmc,cAAe,CACX,CACInK,MAAO2sE,EAAOC,oBACd/pD,QAAS,GAEb1Y,GAEJogE,cAAe,CACX7mF,EAAW6mF,cACX,CACIvqE,MAAO2sE,EAAOI,+BACdz5C,YAAa,EACbzY,cAAe,SACfhU,SAAUxB,EAAMiC,MAAMT,WAG9BkjE,UAAW,CACPrmF,EAAWqmF,WACX,QAAc5oF,IACd,QAAS,CAAE6lB,QAAS,OAAQ6S,cAAe,MAAO5Q,eAAgB,aAAchC,WAAY,UAAWsP,UAAW,aAAcxT,SAAU,SAAU4D,QAAS,KAAKlO,OAAO6vE,EAAeqB,iBAAkB,SAASlxE,OAAO6vE,EAAeoB,gBAAiB,OAAUjD,EAC9P,CACE4G,aAAc,WACd7oD,UAAW,OACX/N,SAAU,gBAEZ,CAAC,IAEX0zD,SAAU,CACNzmF,EAAWymF,SACX,CACImD,KAAM,WACNvqE,SAAU,SACV+B,aAAc,WACdwB,WAAY,KAAYJ,SACxBW,SAAUxB,EAAMyB,OAAOD,UAE3B4/D,GAAc,CACVp1E,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO/U,EAAW0mF,WAAa,CAClC92C,YAAa,GAEjBjzC,KAGZypF,YAAa,CACT9iE,QAAS,QACTG,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACN4C,OAAQ,EACRxC,MAAO,GAEXg7E,gBAAiB,KACjBiB,oBAAqBA,EACrBC,sBAAuB,CAACsF,EAAuB,CAAEK,WAAY,WAAW90E,OAAOswE,EAAwB,aACvG6B,oBAAqBjD,EACrBkD,sBAAuB,CAACqC,EAAuB,CAAEK,WAAY,YAAY90E,OAAOuwE,EAAwB,aAEhH,QC3J6EhkF,EAAW,CAAE0iB,MAAO,kB,WCW7F,GAAgB,EAAA7H,EAAA,KAGhB2tE,EAAa,GACbC,EAAmC,SAAU1lF,GAE7C,SAAS0lF,EAAkBlsF,GACvB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA8XxC,OA7XAkC,EAAMulF,aAAe,cACrBvlF,EAAMwlF,eAAiB,cACvBxlF,EAAMylF,qBAAuB,EAC7BzlF,EAAM0lF,iBAAmB,CAAC,EAC1B1lF,EAAM2lF,qBAAuB,SAAUn2E,EAAU9Q,GACzCsB,EAAMylF,qBAAuB,GAAoB,SAAf/mF,EAAMnE,OAAoBiV,GAC5DxP,EAAM4lF,iBAEd,EACA5lF,EAAM6lF,YAAc,SAAUxsE,EAAM3a,GAC5BsB,EAAMylF,qBAAuB,IAC7B/mF,EAAM8C,kBACNxB,EAAM8lF,0BAA0BpnF,EAAM25B,SAE9C,EACAr4B,EAAM+lF,QAAU,SAAU1sE,EAAM3a,GAE5B,IAAIsnF,EAAqBhmF,EAAMimF,yBAE/B,GAAIjmF,EAAMylF,qBAAuB,GAAK/mF,EAAO,CACzC,IAAIwnF,EAAclmF,EAAMylF,oBAAsBzlF,EAAMmmF,sBAC9CnmF,EAAMmmF,sBACNnmF,EAAMmmF,sBAAwB,EAChCC,EAAcpmF,EAAMqmF,+BAExB,GADA3nF,EAAM8C,kBACF4kF,EAGA,GAFApmF,EAAMsmF,iBAAiBC,YAAcvmF,EAAMylF,oBAC3CzlF,EAAMsmF,iBAAiBJ,YAAcA,EACjCF,EAAmBQ,aAAc,CACjC,IAAIC,EAAkB,CAClBC,aAAc1mF,EAAMylF,oBACpBS,YAAaA,GAEjBF,EAAmBQ,aAAaC,EAEpC,MACST,EAAmBW,qBACxBX,EAAmBW,oBAAoB3mF,EAAMylF,oBAAqBS,EAI9E,CACAlmF,EAAM4lF,kBACN5lF,EAAM0lF,iBAAmB,CAAC,EAC1B1lF,EAAMylF,qBAAuB,CACjC,EACAzlF,EAAM4mF,0BAA4B,SAAUC,GACxC,IACIC,EAAS,EAOb,OANID,IACAC,GAAU,GAHS9mF,EAAM5G,MAAM2tF,mBAAqB/mF,EAAM5G,MAAM2tF,kBAAoB,IAMpFD,GAAU,GAEPA,CACX,EACA9mF,EAAMgnF,gBAAkB,SAAU5tF,EAAOsF,GAErC,IAAIsnF,EAAqBhmF,EAAMimF,yBAC3B5G,EAAYjmF,EAAMimF,UACtB,GAAIA,GAAa,EAEbr/E,EAAMylF,oBAAsBpG,EAAYr/E,EAAM4mF,2BAA2B5mF,EAAMinF,2BAC/EjnF,EAAMknF,wBACFlB,EAAmBmB,mBACnBnB,EAAmBmB,mBAAkB,QAGxC,GAAIzoF,GAASsB,EAAMylF,qBAAuB,IAC3CzlF,EAAM4lF,kBACN5lF,EAAMylF,qBAAuB,EAC7BzlF,EAAM0lF,iBAAmB,CAAC,EACtBM,EAAmBoB,iBAAiB,CACpC,IAAIC,EAAwBrnF,EAAMsnF,iBAAiB5oF,GACnDsnF,EAAmBoB,gBAAgB,CAAEG,aAAcF,GAAyB3oF,EAChF,CAER,EACAsB,EAAMknF,sBAAwB,WAS1B,IARA,IAKIM,EALAtvF,EAAK8H,EAAM5G,MAAMquF,QAASA,OAAiB,IAAPvvF,EAAgBmtF,EAAantF,EAEjE8tF,EAAqBhmF,EAAMimF,yBAC3ByB,EAAQ,EACRC,EAAU,EAEVC,EAA6B5B,EAAmB4B,4BAA8B,EAC9EC,EAA2B7B,EAAmB6B,0BAA4B,EACrEjqF,EAAIgqF,EAA4BhqF,EAAI6pF,EAAQjuF,OAASquF,EAA2B,EAAGjqF,IACxF,GAAIoC,EAAMulF,aAAatkF,QAAS,CAC5B,IAAI6mF,EAAkB9nF,EAAMulF,aAAatkF,QAAQ8mF,iBAAiB,mBAAqBnqF,GAAG,GAC1F,GAAIkqF,EACA,GAAIlqF,IAAMgqF,EACNF,EAAQI,EAAgBE,WACxBL,EAAUG,EAAgBE,WAC1BR,EAAUM,MAET,CACD,IAAIG,GAAUH,EAAgBE,WAAaN,GAAS,EACpD1nF,EAAM0lF,iBAAiB9nF,EAAI,GAAK,CAC5BsqF,QAASR,EACTS,OAAQR,EACRS,KAAMH,EACNI,mBAAoBb,GAExBG,EAAUM,EACVT,EAAUM,EACVJ,EAAQI,EAAgBE,WACpBpqF,IAAM6pF,EAAQjuF,OAASquF,IACvB7nF,EAAM0lF,iBAAiB9nF,GAAK,CACxBsqF,QAASR,EACTS,OAAQR,EACRS,KAAMN,EAAgBE,WACtBK,mBAAoBb,GAGhC,CAER,CAER,EAIAxnF,EAAM8lF,0BAA4B,SAAUztD,GACxC,IAAIiwD,GAAQ,QAAOtoF,EAAM5G,MAAMJ,OAC/B,GAAIgH,EAAMulF,aAAatkF,QAAS,CAC5B,IAEIsnF,EAAyBlwD,EAFZr4B,EAAMulF,aAAatkF,QAAQ8K,wBACb5I,KAE3BqlF,EAAuBxoF,EAAMmmF,sBACjC,GAAInmF,EAAMqmF,gCACFoC,EAAaH,EAAOC,EAAwBvoF,EAAM0lF,iBAAiB8C,GAAsBL,OAAQnoF,EAAM0lF,iBAAiB8C,GAAsBJ,MAC9I,OAGR,IAAIlwF,EAAK8H,EAAM5G,MAAMquF,QAASA,OAAiB,IAAPvvF,EAAgBmtF,EAAantF,EAEjE8tF,EAAqBhmF,EAAMimF,yBAC3B2B,EAA6B5B,EAAmB4B,4BAA8B,EAC9EC,EAA2B7B,EAAmB6B,0BAA4B,EAC1Ea,EAAed,EACfe,EAAkBlB,EAAQjuF,OAASquF,EACnCe,GAAiB,EAiBrB,GAhBIC,EAAUP,EAAOC,EAAwBvoF,EAAM0lF,iBAAiBgD,GAAcN,MAC9EQ,EAAgBF,EAEXI,EAASR,EAAOC,EAAwBvoF,EAAM0lF,iBAAiBiD,GAAiBR,QACrFS,EAAgBD,EAEX3oF,EAAMqmF,iCACPrmF,EAAM0lF,iBAAiB8C,EAAuB,IAC9CC,EAAaH,EAAOC,EAAwBvoF,EAAM0lF,iBAAiB8C,EAAuB,GAAGL,OAAQnoF,EAAM0lF,iBAAiB8C,EAAuB,GAAGJ,MACtJQ,EAAgBJ,EAAuB,EAElCxoF,EAAM0lF,iBAAiB8C,EAAuB,IACnDC,EAAaH,EAAOC,EAAwBvoF,EAAM0lF,iBAAiB8C,EAAuB,GAAGL,OAAQnoF,EAAM0lF,iBAAiB8C,EAAuB,GAAGJ,QACtJQ,EAAgBJ,EAAuB,KAGxB,IAAnBI,EAGA,IAFA,IAAIG,EAAanB,EACboB,EAAWL,EACRI,EAAaC,GAAU,CAC1B,IAAIC,EAActjF,KAAKujF,MAAMF,EAAWD,GAAc,GACtD,GAAIN,EAAaH,EAAOC,EAAwBvoF,EAAM0lF,iBAAiBuD,GAAad,OAAQnoF,EAAM0lF,iBAAiBuD,GAAab,MAAO,CACnIQ,EAAgBK,EAChB,KACJ,CACSJ,EAAUP,EAAOC,EAAwBvoF,EAAM0lF,iBAAiBuD,GAAaf,SAClFc,EAAWC,EAENH,EAASR,EAAOC,EAAwBvoF,EAAM0lF,iBAAiBuD,GAAaf,WACjFa,EAAaE,EAErB,CAEAL,IAAkB5oF,EAAMylF,qBAAuBmD,IAAkB5oF,EAAMylF,oBAAsB,EACzFzlF,EAAMqmF,gCACNrmF,EAAM4lF,kBAGL4C,IAAyBI,GAAiBA,GAAiB,IAChE5oF,EAAM4lF,kBACN5lF,EAAMmpF,uBAAuBnpF,EAAM0lF,iBAAiBkD,GAAeP,mBAAoB,gBACvFroF,EAAMmmF,sBAAwByC,EAEtC,CACJ,EACA5oF,EAAMopF,mBAAqB,SAAUlxF,GACjC,IAAI2H,EACAkjF,EAAc7qF,EAAG6qF,YACjBjjF,EAAKE,EAAM5G,MAAMquF,QAASA,OAAiB,IAAP3nF,EAAgBulF,EAAavlF,EACjEu+E,EAASoJ,EAAQ1E,GACjBsG,EAAsBrpF,EAAMjH,MAAMswF,oBAClC9tF,EAAayE,EAAMoa,YACvB,OAAOikE,EAAOiL,YAAe,gBAAoB,MAAO,CAAE9vE,IAAK,GAAGlJ,OAAO+tE,EAAO7kE,IAAK,UAAW,eAAe,EAAMsB,KAAM,SAAU,qBAAqB,EAAOlE,QAAS2yE,EAAkB,mBAAoBxG,EAAa55C,OAAQnpC,EAAMwpF,aAAc9tF,WAAW,EAAAsN,EAAA,GAAIzN,EAAW4oF,UAAWpB,EAAc0E,EAAQjuF,OAAS,EAAI+B,EAAWkuF,eAAiBluF,EAAWmuF,cAAe7pF,EAAK,CAAC,EACrXA,EAAGtE,EAAWouF,gBAAkBN,GAAuBA,EAAoBtG,cAAgBA,EAC3FljF,IAAM+pF,cAAe5pF,EAAM6pF,oBAAoBnwE,KAAK1Z,EAAO+iF,KAAmB,IAC1F,EACA/iF,EAAM4+E,6BAA+B,SAAU3iE,GAC3C,OAAO,gBAAoB,OAAQ,CAAEvgB,UAAWugB,EAAiB4iE,eAAiB5iE,EAAiBzhB,SACvG,EAIAwF,EAAM8pF,oBAAsB,WACxB,IAAIC,EAAY/pF,EAAM5G,MAAM2wF,UACxBA,GACAA,EAAUC,mBAElB,EACAhqF,EAAM+/E,iBAAmB,SAAUthF,GAC/B,IAAIwrF,EAAkBxrF,EAAGjH,OAAOiS,aAAa,oBACzCs5E,EAAc5wC,OAAO83C,GACrB/xF,EAAK8H,EAAM5G,MAAMquF,QAASA,OAAiB,IAAPvvF,EAAgBmtF,EAAantF,EAC7C,OAApB+xF,GA/Ne,IA+NaxrF,EAAGwhF,SAInCjgF,EAAM0T,SAAS,CACX21E,oBAAqB,CACjBtG,YAAaA,EACbmH,eAAgBzC,EAAQ1E,GAAazB,gBACrC4G,QAASzpF,EAAG45B,WAGpB55B,EAAGyG,iBACHzG,EAAG+C,kBACP,EACAxB,EAAMmqF,iBAAmB,SAAU1rF,GAC/B,IAAIvG,EAAK8H,EAAMjH,MAAOswF,EAAsBnxF,EAAGmxF,oBAAqBe,EAAWlyF,EAAGkyF,SAC9Ef,IAAwBe,GAAY3rF,EAAG45B,UAAYgxD,EAAoBnB,SACvEloF,EAAM0T,SAAS,CAAE02E,UAAU,GAEnC,EACApqF,EAAMqqF,eAAiB,SAAU5rF,GAC7B,IAAIvG,EAAK8H,EAAMjH,MAAOswF,EAAsBnxF,EAAGmxF,oBAAqBe,EAAWlyF,EAAGkyF,SAC9EvqF,EAAKG,EAAM5G,MAAO0G,EAAKD,EAAG4nF,QAASA,OAAiB,IAAP3nF,EAAgBulF,EAAavlF,EAAIwqF,EAAkBzqF,EAAGyqF,gBACnGL,EAAkBxrF,EAAGjH,OAAOiS,aAAa,oBAC7C,GAAKwgF,IAAmBG,EAAxB,CAGA,IAAIrH,EAAc5wC,OAAO83C,GACzB,GAAKZ,EAaA,CACD,IAAIp7C,OAAY,EAEZxvC,EAAGqE,QAAUC,EAAA,EAASiC,OACtBhF,EAAM0T,SAAS,CACX21E,yBAAqBxsF,IAEzB4B,EAAGyG,iBACHzG,EAAG+C,mBAGE/C,EAAGqE,QAAUC,EAAA,EAASI,KAC3B8qC,GAAY,QAAOjuC,EAAM5G,MAAMJ,OAAS,GAAK,EAGxCyF,EAAGqE,QAAUC,EAAA,EAASQ,QAC3B0qC,GAAY,QAAOjuC,EAAM5G,MAAMJ,QAAU,EAAI,GAE7Ci1C,IACKxvC,EAAGK,WACJmvC,GAAa,IAEjBjuC,EAAM0T,SAAS,CACX21E,qBAAqB,SAAS,QAAS,CAAC,EAAGA,GAAsB,CAAEa,eAAgBb,EAAoBa,eAAiBj8C,MAExHq8C,GACAA,EAAgB7C,EAAQ1E,GAAcsG,EAAoBa,eAAiBj8C,EAAW80C,GAE1FtkF,EAAGyG,iBACHzG,EAAG+C,kBAEX,MA1CQ/C,EAAGqE,QAAUC,EAAA,EAASiC,QACtBhF,EAAM0T,SAAS,CACX21E,oBAAqB,CACjBtG,YAAaA,EACbmH,eAAgBzC,EAAQ1E,GAAazB,mBAG7C7iF,EAAGyG,iBACHzG,EAAG+C,kBAZX,CA+CJ,EAOAxB,EAAMuqF,kBAAoB,SAAU9rF,GAChC,IAGA+rF,EAAU/rF,EAAG+rF,QACTtyF,EAAK8H,EAAM5G,MAAOqxF,EAA0BvyF,EAAGuyF,wBAAyBH,EAAkBpyF,EAAGoyF,gBAAiBzqF,EAAK3H,EAAGuvF,QAASA,OAAiB,IAAP5nF,EAAgBwlF,EAAaxlF,EACtKwpF,EAAsBrpF,EAAMjH,MAAMswF,oBACtC,QAAgBxsF,IAAZ2tF,GArTe,IAqTUA,GAU7B,GALI/rF,EAAG45B,UAAYgxD,EAAoBnB,SAC/BuC,GACAA,EAAwBhD,EAAQ4B,EAAoBtG,cAAc,GAGtEuH,EAAiB,CACjB,IAAII,EAAWjsF,EAAG45B,QAAUgxD,EAAoBnB,SAC5C,QAAOloF,EAAM5G,MAAMJ,SACnB0xF,GAAYA,GAEhBJ,EAAgB7C,EAAQ4B,EAAoBtG,aAAcsG,EAAoBa,eAAiBQ,EAAUrB,EAAoBtG,YACjI,OAdI/iF,EAAM2qF,gBAAgBlsF,EAe9B,EACAuB,EAAMwpF,aAAe,SAAU/qF,GACDuB,EAAMjH,MAAMswF,qBAElCrpF,EAAM0T,SAAS,CACX21E,yBAAqBxsF,EACrButF,UAAU,GAGtB,EAQApqF,EAAM2qF,gBAAkB,SAAUlsF,GAC9B,IAAIvG,EAAK8H,EAAM5G,MAAOyG,EAAK3H,EAAGuvF,QAASA,OAAiB,IAAP5nF,EAAgBwlF,EAAaxlF,EAAI4qF,EAA0BvyF,EAAGuyF,wBAC3GpB,EAAsBrpF,EAAMjH,MAAMswF,oBACtCrpF,EAAM0T,SAAS,CACX21E,yBAAqBxsF,EACrButF,UAAU,IAEVK,GACAA,EAAwBhD,EAAQ4B,EAAoBtG,cAAc,EAE1E,EACA/iF,EAAM4qF,qBAAuB,WACzB,IAAIC,EAAsB7qF,EAAM5G,MAAMyxF,oBAClCC,GAAgB9qF,EAAMjH,MAAMgyF,eAChC/qF,EAAM0T,SAAS,CACXq3E,eAAgBD,IAEhBD,GACAA,EAAoBC,EAE5B,GACA,EAAA1kF,EAAA,GAAuBpG,GACvBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAMjH,MAAQ,CACVswF,yBAAqBxsF,EACrBkuF,eAAgB/qF,EAAM5G,MAAM2xF,eAC5B/G,gBAAiBhkF,EAAM5G,MAAM2wF,WAAa/pF,EAAM5G,MAAM2wF,UAAU/F,iBAEpEhkF,EAAMsmF,iBAAmB,CACrBC,aAAc,EACdL,aAAc,GAElBlmF,EAAMqG,KAAM,EAAAC,EAAA,GAAM,UAClBtG,EAAMmmF,uBAAyB,EAG/BnmF,EAAMgrF,gBAAkB,IAAIC,EAAA,EAAe,CACvClB,UAAW,CACPmB,aAAc,WAEd,GAEJC,qBAAsBnrF,EAAM5G,MAAM+xF,uBAE/BnrF,CACX,CAsNA,OAvlBA,QAAUslF,EAAmB1lF,GAkY7B0lF,EAAkB/nF,UAAU+J,kBAAoB,WAC5C,IAAIyiF,EAAYjsF,KAAK1E,MAAM2wF,UAC3BjsF,KAAKmsB,QAAQnZ,GAAGi5E,EAAW,KAAkBjsF,KAAKstF,qBAE9CttF,KAAKynF,aAAatkF,UAElBnD,KAAKmsB,QAAQnZ,GAAGhT,KAAKynF,aAAatkF,QAAS,YAAanD,KAAKiiF,kBAC7DjiF,KAAKmsB,QAAQnZ,GAAGhT,KAAKynF,aAAatkF,QAAS,UAAWnD,KAAKusF,gBACvDvsF,KAAKmoF,2BACLnoF,KAAKutF,oBAAsBvtF,KAAKktF,gBAAgBpH,UAAU9lF,KAAKynF,aAAatkF,QAASnD,KAAKmsB,QAASnsB,KAAKwtF,8BAGpH,EACAhG,EAAkB/nF,UAAUuK,mBAAqB,SAAUsjB,GAUvD,GATIttB,KAAKmoF,0BACAnoF,KAAKutF,qBAAuBvtF,KAAKynF,aAAatkF,UAC/CnD,KAAKutF,oBAAsBvtF,KAAKktF,gBAAgBpH,UAAU9lF,KAAKynF,aAAatkF,QAASnD,KAAKmsB,QAASnsB,KAAKwtF,8BAGvGxtF,KAAKutF,sBACVvtF,KAAKutF,oBAAoBh9E,iBAClBvQ,KAAKutF,qBAEZvtF,KAAK1E,QAAUgyB,GAAattB,KAAKwoF,iBAAiBC,aAAe,GAAKzoF,KAAKwoF,iBAAiBJ,aAAe,EAAG,CAC9G,IAAIhuF,EAAKkzB,EAAUq8D,QAAS8D,OAAyB,IAAPrzF,EAAgBmtF,EAAantF,EACvE2H,EAAK/B,KAAK1E,MAAMquF,QAASA,OAAiB,IAAP5nF,EAAgBwlF,EAAaxlF,EAChE0rF,EAAgBztF,KAAKwoF,iBAAiBC,aAAa/sE,MAAQiuE,EAAQ3pF,KAAKwoF,iBAAiBJ,aAAa1sE,MACtG1b,KAAKwoF,iBAAmB,CACpBC,aAAc,EACdL,aAAc,GAG1B,CACIpoF,KAAK1E,MAAM2xF,iBAAmB3/D,EAAU2/D,gBACxCjtF,KAAK4V,SAAS,CAAEq3E,eAAgBjtF,KAAK1E,MAAM2xF,gBAEnD,EACAzF,EAAkB/nF,UAAU6K,qBAAuB,WAC3CtK,KAAKutF,sBACLvtF,KAAKutF,oBAAoBh9E,iBAClBvQ,KAAKutF,qBAEhBvtF,KAAKktF,gBAAgB38E,UACrBvQ,KAAKmsB,QAAQ5b,SACjB,EACAi3E,EAAkB/nF,UAAUxB,OAAS,WACjC,IAAIiE,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGuvF,QAASA,OAAiB,IAAP5nF,EAAgBwlF,EAAaxlF,EAAI+Y,EAAY1gB,EAAG0gB,UAAW4yE,EAAoCtzF,EAAGszF,kCAAmCC,EAAgCvzF,EAAGuzF,8BAA+BC,EAAsBxzF,EAAGwzF,oBAAqBC,EAA8BzzF,EAAGyzF,4BAA6BC,EAAc1zF,EAAG0zF,YAAa7M,EAAgB7mF,EAAG6mF,cAAee,EAAsB5nF,EAAG4nF,oBAAqBhgF,EAAK5H,EAAGkoF,4BAA6BA,OAAqC,IAAPtgF,EAAgBhC,KAAK8gF,6BAA+B9+E,EAAI3G,EAASjB,EAAGiB,OAAQ0yF,EAAgB3zF,EAAG2zF,cAAe7yF,EAAQd,EAAGc,MAAO8yF,EAA0B5zF,EAAG4zF,wBAAyB/E,EAAoB7uF,EAAG6uF,kBAAmBhkD,EAAe7qC,EAAG6qC,aAAcgpD,EAAqB7zF,EAAG6zF,mBAAoBrwF,EAAYxD,EAAGwD,UAC30BqE,EAAKjC,KAAK/E,MAAOirF,EAAgBjkF,EAAGikF,cAAeqF,EAAsBtpF,EAAGspF,oBAAqBe,EAAWrqF,EAAGqqF,SAAUW,EAAiBhrF,EAAGgrF,eAC7IlE,EAAe6E,IAAwB,IAAoBx9E,KAC3D89E,EAAmBN,IAAwB,IAAoBn/D,OAC/D0/D,EAA0BF,IAAuB,KAAmBG,OACpElG,EAAqBloF,KAAKmoF,yBAC1B2B,EAA6B5B,GAAsBA,EAAmB4B,2BACpE5B,EAAmB4B,2BACnB,EACFC,EAA2B7B,GAAsBA,EAAmB6B,yBAClE7B,EAAmB6B,yBACnB,EACN/pF,KAAKsc,YAAc,EAAcjhB,EAAQ,CACrCH,MAAOA,EACPgrF,cAAeA,EACfC,kBAAmByH,IAAwB,IAAoBn/D,OAC/D23D,mBAAoBmF,GAAuBe,EAC3CA,SAAUA,EACVW,eAAgBA,EAChBiB,iBAAkBA,EAClBtwF,UAAWA,IAEf,IAAIH,EAAauC,KAAKsc,YAClB4oB,EAAgBD,EAAexc,EAAA,GAAWxN,EAAA,EAC1CozE,EAAmBpF,EAAoB,EACvCqF,EAAoBD,GAAoBruF,KAAK1E,MAAMizF,wBAA0BlO,EAAsBmO,QACnGC,EAAoBzuF,KAAK8oF,0BAA0BC,GACnDtjD,IAAQ,QAAOvqC,GACnB,OAAQ,gBAAoB2G,EAAA,EAAW,CAAEmb,KAAM,MAAO,aAAclC,EAAWld,UAAWH,EAAWgM,KAAM2T,aAAcpd,KAAK0nF,eAAgBn8E,WAAYvL,KAAKynF,aAAc5iC,YAAa7kD,KAAKqsF,iBAAkB,oBAAqB,gBAAiBloF,UAAW,IAAmByB,YACjRmjF,EACM,CACE,gBAAoB,MAAO,CAAErtE,IAAK,aAAc9d,UAAWH,EAAWsoF,YAAa,kBAAmB,GAAGvzE,OAAOxS,KAAKuI,IAAK,iBAAkBuQ,QAAUo1E,OAA8CnvF,EAA3BiB,KAAKgsF,oBAAiChvE,KAAM,gBAAkBslE,EAA4B,CAC/PvB,cAAetjF,EAAWixF,aAC1Bn7E,GAAI,GAAGf,OAAOxS,KAAKuI,IAAK,iBACxB6kD,oBAAoB,EACpBpvC,QAAS2vE,EACTjxF,SAAW,gBAAoBiyF,EAAAC,EAAiB,CAAEr7E,GAAI,GAAGf,OAAOxS,KAAKuI,IAAK,UAAW,aAAcwlF,IAAkB,KAAcc,SACzHlB,EACAE,EAA6B,qBAAsBK,QAAoBnvF,EAAW+vF,UAAU,EAAMnmC,SAAUu9B,EAAe6I,aAAa,EAAOC,WAAYd,EAAkBtwF,UAAWH,EAAW2nC,MAAO4oD,wBAAyBA,EAAyB/oD,aAAcA,EAAcgqD,UAAWd,KAC9SnuF,KAAK8gF,+BACP9gF,KAAK1E,MAAMgnF,4BAAghB,KAAjfqL,IAAkCO,EAAoB,gBAAoB,QAAS,CAAExyE,IAAK,kBAAmBnI,GAAI,GAAGf,OAAOxS,KAAKuI,IAAK,iBAAkB3K,UAAWH,EAAWgjF,gBAAiB,eAAe,GAAQkN,GAAkCE,GAA+BK,EAAoB,gBAAoB,QAAS,CAAExyE,IAAK,kBAAmBnI,GAAI,GAAGf,OAAOxS,KAAKuI,IAAK,iBAAkB3K,UAAWH,EAAWgjF,gBAAiB,eAAe,GAAQoN,GAAgC,MAEthB,KACNS,EAAqB,gBAAoB,MAAO,CAAE1wF,UAAWH,EAAWyxF,oBAAqBp2E,QAAS9Y,KAAK8sF,qBAAsB,qBAAqB,EAAM,aAAcY,EAAmC,iBAAkBT,EAAgBjwE,KAAM,gBACjP,gBAAoBkoB,EAAe,CAAEtnC,UAAWH,EAAWuoF,eAAgBvpE,SAAUgpB,GAAQ,iBAAmB,oBAChH,gBAAoB,OAAQ,CAAE7nC,UAAWH,EAAWgjF,iBAAmBiN,IAAuCW,EAAoB,gBAAoB,MAAO,CAAEzwF,UAAWH,EAAWyxF,oBAAqB,qBAAqB,EAAOlyE,KAAM,iBAAqB,KACrQ,gBAAoBmyE,EAAA,EAAa,CAAErB,YAAaA,EAAa9wE,KAAM,WAAYoyE,MAAOnG,EAAoB,IAC1GU,EAAQ/tF,KAAI,SAAU2kF,EAAQ0E,GAC1B,IAAIoK,IAAenH,GACbjD,GAAe6E,GAA8B7E,EAAc0E,EAAQjuF,OAASquF,EAElF,MAAO,CACH7B,IACKmH,GAAgBpK,IAAgB0E,EAAQjuF,OAASquF,IAClD7nF,EAAMotF,gBAAgBrK,GAC1B,gBAAoBwB,EAAe,CAAElG,OAAQA,EAAQllF,OAAQklF,EAAOllF,OAAQqgB,IAAK6kE,EAAO7kE,IAAKupE,YAAawJ,EAAoBxJ,EAAa7C,SAAUlgF,EAAMqG,IAAK25E,YAAamN,EAAcvN,eAAgB5/E,EAAMgnF,gBAAiB1E,eAAgBtiF,EAAMgrF,gBAAiBjM,cAAeA,EAAee,oBAAqBA,EAExTM,4BAA6BpgF,EAAM5G,MAAMgnF,4BAA6BoC,UAAWxiF,EAAMsmF,iBAAiBJ,cAAgBnD,EAAa5C,eAAgBngF,EAAM5G,MAAM+mF,eAAgBp9C,aAAcA,IACnM/iC,EAAMqtF,qBAAqBtK,GAEnC,IACAiD,GAAmD,IAA7B6B,GAAkC/pF,KAAKsvF,gBAAgB3F,EAAQjuF,QACrF4wF,GAAa,gBAAoBhoD,EAAA,EAAO,KACpC,gBAAoB,MAAO,CAAE1mC,UAAWH,EAAW+xF,cAAe3qC,YAAa7kD,KAAKysF,kBAAmBthE,UAAWnrB,KAAK6sF,mBACnI,EAEArF,EAAkB/nF,UAAU4D,MAAQ,WAChC,IAAIjJ,EACJ,SAAiD,QAAtCA,EAAK4F,KAAK0nF,eAAevkF,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,QACzF,EAMAmkF,EAAkB/nF,UAAU0oF,uBAAyB,WACjD,IAAI/tF,EAAK4F,KAAK1E,MAAOm0F,EAAuBr1F,EAAGq1F,qBAC/C,OAD0Fr1F,EAAG8tF,oBAC/DuH,IAAwB,SAAS,QAAS,CAAC,EAAGA,GAAuB,CAAEnG,qBAAiBvqF,GAC1H,EACAyoF,EAAkB/nF,UAAU+tF,0BAA4B,WAYpD,MAXc,CACVtI,eAAgB,EAChBxqF,QAAS,CAAE2f,KAAMra,KAAMic,MAAO,GAC9BkpE,QAAS,WAAc,OAAO,CAAO,EACrCC,QAAS,WAAc,OAAO,CAAM,EACpCC,YAAa,WAAgC,EAC7CC,gBAAiBtlF,KAAK6nF,qBACtBtC,OAAQvlF,KAAKioF,QACbzC,UAAW,WAAgC,EAC3CkK,WAAY1vF,KAAK+nF,YAGzB,EACAP,EAAkB/nF,UAAU8oF,6BAA+B,WACvD,OAAOvoF,KAAKqoF,uBAAyB,CACzC,EAIAb,EAAkB/nF,UAAU0pF,wBAA0B,WAClD,IAAI/uF,EAAK4F,KAAK1E,MAAOyyF,EAAgB3zF,EAAG2zF,cAAeE,EAAqB7zF,EAAG6zF,mBAC/E,OAAOF,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,MAC7F,EACA+4D,EAAkB/nF,UAAUqoF,gBAAkB,WACtC9nF,KAAKqoF,uBAAyB,IAC9BroF,KAAKqrF,uBAAuBrrF,KAAK4nF,iBAAiB5nF,KAAKqoF,uBAAuBkC,mBAAoB,QAClGvqF,KAAKqoF,uBAAyB,EAEtC,EACAb,EAAkB/nF,UAAU4rF,uBAAyB,SAAUryF,EAAS22F,GACpE32F,EAAQmW,WAAW,GAAGkJ,MAAM0I,QAAU4uE,EACtC32F,EAAQmW,WAAW,GAAGkJ,MAAM0I,QAAU4uE,CAC1C,EACAnI,EAAkB/nF,UAAU+pF,iBAAmB,SAAU5oF,GACrD,GAAIZ,KAAKynF,aAAatkF,QAAS,CAC3B,IAAI+2B,EAAal6B,KAAKynF,aAAatkF,QAAQ8K,wBAC3C,GAAIrN,EAAM25B,QAAUL,EAAW70B,MAC3BzE,EAAM25B,QAAUL,EAAWz0B,OAC3B7E,EAAM45B,QAAUN,EAAWnyB,KAC3BnH,EAAM45B,QAAUN,EAAWjyB,OAC3B,OAAO,KAAsBy0C,MAErC,CACJ,EACA8qC,EAAkB/nF,UAAU8vF,qBAAuB,SAAUtK,GACzD,IAAI7qF,EAAK4F,KAAK1E,MAAMquF,QAChBpJ,QAD0C,IAAPnmF,EAAgBmtF,EAAantF,GAC/C6qF,GACjB2K,EAAkBrP,EAAOqP,gBAC7B,OAAOA,EACDA,EAAgB,CAAErP,OAAQA,EAAQ0E,YAAaA,GAAejlF,KAAKsrF,oBACnEtrF,KAAKsrF,mBAAmB,CAAE/K,OAAQA,EAAQ0E,YAAaA,GACjE,EACAuC,EAAkB/nF,UAAU6vF,gBAAkB,SAAUO,GACpD,IAAIpyF,EAAauC,KAAKsc,YAClB4oB,EAAgBllC,KAAK1E,MAAM2pC,aAAexc,EAAA,GAAWxN,EAAA,EACzD,OAAQ,gBAAoB,MAAO,CAAES,IAAK,cAAe9d,UAAWH,EAAWqyF,cAAev8E,GAAI,kBAAkBf,OAAOq9E,IACvH,gBAAoB,MAAO,CAAE7yE,KAAM,eAAgBtB,IAAK,oBAAqB9d,UAAWH,EAAWsyF,mBAAoB,qBAAqB,EAAO,mBAAoBF,EAAe,eAAe,GACjM,gBAAoB3qD,EAAe,CAAEzoB,SAAU,sBACnD,gBAAoB,MAAO,CAAEf,IAAK,kBAAmB,eAAe,EAAM,qBAAqB,EAAO,mBAAoBm0E,EAAejyF,UAAWH,EAAW+oF,oBACvK,EAQAgB,EAAkB/nF,UAAUssF,oBAAsB,SAAU9G,EAAatkF,GACrE,IAAIvG,EAAK4F,KAAK1E,MAAO00F,EAAsB51F,EAAG41F,oBAAqBjuF,EAAK3H,EAAGuvF,QACvEqG,GACAA,QAFiG,IAAPjuF,EAAgBwlF,EAAaxlF,GAE3FkjF,GAAcA,EAElD,EACAuC,EAAkB/nF,UAAU6tF,oBAAsB,WAC9C,IAAIpH,IAAkBlmF,KAAK1E,MAAM2wF,WAAajsF,KAAK1E,MAAM2wF,UAAU/F,gBAC/DlmF,KAAK/E,MAAMirF,gBAAkBA,GAC7BlmF,KAAK4V,SAAS,CACVswE,cAAeA,GAG3B,EACAsB,EAAkB7+E,aAAe,CAC7BilF,oBAAqB,IAAoBY,QACzCD,sBAAuBlO,EAAsBmO,QAC7CvpD,cAAc,GAEXuiD,CACX,CAzlBsC,CAylBpC,aAEF,SAASmD,EAAa9sF,EAAKnE,EAAQ2L,EAAMI,GACrC,OAAO5H,EAAMnE,GAAU2L,GAAQ3L,GAAU+L,EAAQ/L,GAAU2L,GAAQ3L,GAAU+L,CACjF,CACA,SAASslF,EAAUltF,EAAKkyC,EAAG3wC,GACvB,OAAOvB,EAAMkyC,GAAK3wC,EAAI2wC,GAAK3wC,CAC/B,CACA,SAAS4rF,EAASntF,EAAKkyC,EAAG3wC,GACtB,OAAOvB,EAAMkyC,GAAK3wC,EAAI2wC,GAAK3wC,CAC/B,CACA,SAASqsF,EAAiB9qF,GACtBA,EAAG+C,iBACP,CCrnBO,IAAIusF,GAAgB,EAAAhxE,EAAA,GAAOuoE,EAAmB,UAAwBzoF,EAAW,CAAE0iB,MAAO,iB,4HCG7F/C,EAAmB,CACnBwxE,YAAa,iBACbzmF,KAAM,mBACN0mF,KAAM,wBACNpK,YAAa,+BACbC,eAAgB,kCAChBC,YAAa,eACbC,cAAe,iBACfC,kBAAmB,qBACnBC,iBAAkB,oBAClBC,UAAW,6BACXC,WAAY,cACZC,oBAAqB,uCACrBwJ,mBAAoB,sCACpBvJ,kBAAmB,qCACnB1C,UAAW,6BACXI,SAAU,4BACVI,cAAe,iCACf8L,mBAAoB,sCACpB1B,aAAc,gCACdtpD,MAAO,0BAEAirD,EAAgB,GAChBC,EAAgB,SAAUh1F,GACjC,IAAIJ,EAAQI,EAAMJ,MAAOd,EAAKkB,EAAM+mF,eAAgBA,OAAwB,IAAPjoF,EAAgB,KAA2BA,EAC5G4f,EAAiB9e,EAAM8e,eAE3B,MAAO,EADU,QAAoB0E,EAAkBxjB,GAExCi1F,MACX,QAAcj1F,GACd,CACI6e,MAAOC,EAAeC,SACtBiH,SAAU,WACVH,QAAS,eACTuP,UAAW,aACX5P,QAAS,KAAKlO,OAAO6vE,EAAeqB,iBAAkB,SAASlxE,OAAO6vE,EAAeoB,gBAAiB,MACtG9iE,WAAY,UACZG,OAAQ,IACR5R,OAAQmhF,EACRz7D,cAAe,MACfhW,WAAY,SACZC,aAAc,WACd8Q,UAAW,QAGvB,EACW4gE,EAAyB,SAAUj1F,GAC1C,IAAIlB,EAAI2H,EAAIC,EAAIC,EACZ/G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWsoF,EAAgB5qF,EAAM4qF,cAAeE,EAAmB9qF,EAAM8qF,iBAAkBkG,EAAWhxF,EAAMgxF,SAAUW,EAAiB3xF,EAAM2xF,eAAgB/tE,EAAK5jB,EAAM+mF,eAAgBA,OAAwB,IAAPnjE,EAAgB,KAA2BA,EAC3RlF,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDwrF,EAAS,CACTC,oBAAqB3sE,EAAeogC,YACpCwsC,sBAAuB5sE,EAAeC,SACtC4sE,sBAAuB7sE,EAAe4rB,eACtCmhD,aAAc5nE,EAAQmS,oBAEtBk/D,EAAwB,CACxB5zD,QAAS,EACT0qD,WAAY,uBAEZmJ,EAAaH,EAAch1F,GAC/B,MAAO,CACHmO,KAAM,CACFhM,EAAWgM,KACX2V,EAAMiC,MACN,CACIN,QAAS,eACT4kB,WAAY+gD,EAAOG,sBACnB3lE,SAAU,WACV4R,SAAU,OACV8B,cAAe,MACf1lB,OAAQmhF,EACR1vE,WAAY0vE,EACZzxE,WAAY,SACZ0R,UAAW,cACXub,cAAe,MACfyB,WAAY,OACZ0jC,aAAc,aAAax+D,OAAOwH,EAAe2hC,aACjDjkC,OAAQ,UACR6Y,WAAY,OACZnlB,WAAYhR,EAAK,CAAC,EACdA,EAAG,YAAYoY,OAAO/U,EAAW2nC,QAAU,CACvCxI,QAAS,GAEbxiC,EAAG,MAAMoY,OAAO/U,EAAWyyF,YAAa,MAAM19E,OAAO/U,EAAWixF,eAAiB,CAC7E3tE,QAAS,SAEb3mB,IAER8rF,GAAiBzoF,EAAWyoF,cAC5BE,GAAoB3oF,EAAW2oF,iBAC/BxoF,GAEJwnC,MAAO,CACH3nC,EAAW2nC,MACX,CACIl2B,OAAQmhF,GAEZ,CACIjlF,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO,KAAyB,aAAe,CAClDoqB,QAAS,GAEb76B,KAGZ2uF,kBAAmB,CACfljD,aAAc60C,EAAesB,sBAAwBtB,EAAeqB,kBAExEqC,YAAa,CACT0K,EACAhzF,EAAWsoF,YACX,CACI7kE,SAAU,WACVR,QAAS,EACTI,OAAQ,EACRC,QAAS,cACTC,WAAY,SACZiB,OAAQ,QAEZikE,GAAiB,CACbtpD,QAAS,IAGjBsyD,oBAAqB,CACjBuB,EACA,CACI1vE,QAAS,cACTC,WAAY,SACZgC,eAAgB,SAChBpC,SAAUxB,EAAMiC,MAAMT,SACtBF,QAAS,EACTuB,OAAQ,OACR7Z,MAAO,IACP2R,MAAOoF,EAAQO,iBACftU,UAAW,CACP,SAAU,CACNmV,gBAAiBpB,EAAQ4T,gBAE7B,UAAW,CACPxS,gBAAiBpB,EAAQkS,iBAKzCs/D,iBAAkB,CACdvlF,UAAW,CACP,SAAU,CACN2O,MAAOC,EAAeC,SACtB0rB,WAAY3rB,EAAektE,6BAE/B,UAAW,CACPvhD,WAAY3rB,EAAemtE,+BAIvCyJ,YAAa,CACT/xE,aAAc,QAElBwnE,UAAW,CACP5oF,EAAW4oF,WACX,UACA,CACItlE,QAAS,eACTG,SAAU,WACVxJ,OAAQ,YACRzP,OAAQ,EACRF,IAAK,EACL+U,SAAU,SACV5N,OAAQ,UACRy2B,WAAY,cACZtB,OAAQ,EACRj8B,MAAO,GACPgD,WAAYpJ,EAAK,CACT,SAAU,CACNgc,QAAS,KACTkD,SAAU,WACVnZ,IAAK,EACLE,OAAQ,EACRG,MAAO,EACPu9B,WAAY+gD,EAAOK,aACnBnqD,QAAS,EACTv3B,KAAM,OAEV,eAAgBmrF,EAChB,eAAgBA,GAEpBxuF,EAAG,KAAKwQ,OAAO/U,EAAW6oF,WAAY,WAAa,CAC/CkK,EACA,CACIjsD,UAAW,iCAGnBviC,KAGZ6pF,eAAgBpuF,EAAW6oF,WAC3BqF,eAAgB,CACZ7qE,OAAQ,UAEZ8qE,aAAc,CACV9qE,OAAQ,EACR+T,YAAa,IAEjBmxD,eAAgB,CACZvoF,EAAWuoF,eACX,CACI6K,gBAAiB,UACjBvJ,WAAY,wBAEhB2F,EACM,CACExvF,EAAWwoF,YACX,CACIrhD,UAAW,iBAGjB,CACEA,WAAW,QAAO1pC,GAAS,iBAAmB,kBAG1DwzF,aAAcjxF,EAAWixF,aACzBc,cAAelD,GAAY,CACvBprE,SAAU,WACV7b,KAAM,EACN0C,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACRyP,OAAQ,YACRiuB,WAAY,yBACZv6B,WAAYnJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE0jC,WAAY,gBAAiB,WACnE1jC,IAERw+E,gBAAiB,KACjB8F,oBAAqB,CACjB9oF,EAAW8oF,oBACX,CACIxlE,QAAS,eACTyd,WAAY,SACZtd,SAAU,WACVjZ,OAAQ,EACRiH,OAAQ,EACR9G,MAAO,EACPgoB,aAAc,MACdyE,YAAa,EACb9sB,IAAK,GACL+U,SAAU,UACVunB,OAAQ,GACRpiB,OAAQ,aAAazP,OAAO2M,EAAQiD,cACpCujB,WAAYxmB,EAAQiS,QAG5B2+D,mBAAoB,CAChBtyF,EAAWsyF,mBACX,CACIhvE,QAAS,OACTG,SAAU,WACVnZ,KAAM,GACN1C,MAAO,IACPub,SAAUxB,EAAMyB,OAAOD,SACvB7G,MAAOoF,EAAQiD,aACftF,SAAU,UACVunB,OAAQ,KAGhBmiD,kBAAmB,CACf/oF,EAAW+oF,kBACX,CACIzlE,QAAS,OACTG,SAAU,WACVjZ,OAAQ,EACRF,IAAK,EACL+U,SAAU,SACV5N,OAAQ,GACR9G,MAAO,EACPu9B,WAAYxmB,EAAQiD,aACpBiiB,OAAQ,KAGhByrD,cAAe,CACX/uE,QAAS,eACTG,SAAU,YAGtB,C,kBCjSO,IAAI4vE,E,iBACX,SAAWA,GACPA,EAAoBA,EAA0B,KAAI,GAAK,OACvDA,EAAoBA,EAA4B,OAAI,GAAK,SACzDA,EAAoBA,EAA6B,QAAI,GAAK,SAC7D,CAJD,CAIGA,IAAwBA,EAAsB,CAAC,G,+WCG3C,SAASC,EAAaC,GACzB,OAAsB,SAAUlvF,GAE5B,SAASmvF,EAAsB31F,GAC3B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAmDxC,OAlDAkC,EAAMC,MAAQ,cACdD,EAAMgvF,wBAA0B,WAC5B,IAAI9+C,GAAM,EAAAC,EAAA,GAAUnwC,EAAMC,MAAMgB,SAChCjB,EAAMivF,wBAA0B,IAAI/+C,EAAIg/C,eAAelvF,EAAMmvF,gBAC7DnvF,EAAMivF,wBAAwBG,QAAQpvF,EAAMC,MAAMgB,QACtD,EACAjB,EAAMqvF,0BAA4B,WAC1BrvF,EAAMivF,0BACNjvF,EAAMivF,wBAAwBK,oBACvBtvF,EAAMivF,wBAErB,EAEAjvF,EAAMuvF,gBAAkB,SAAUC,GAC9B,IAAIC,EAAWzvF,EAAMjH,MAAM02F,SACvBC,EAAkB1vF,EAAMC,MAAMgB,QAC9B0uF,GAAgB,QAAqBD,GACrCE,GAAa,EAAAC,EAAA,GAAQF,GACrB33D,GAAa,EAAA63D,EAAA,GAAQH,KAMJ13D,GAAcA,EAAW9xB,SAAWupF,EAASvpF,QAAU0pF,GAAcA,EAAW5iF,UAAYyiF,EAASziF,SACrGhN,EAAM8vF,gBApCjB,GAoC0D93D,GAAc43D,GAC9E5vF,EAAM8vF,kBACN9vF,EAAM0T,SAAS,CACX+7E,SAAU,CACNvpF,MAAO8xB,EAAW9xB,MAClB8G,OAAQ4iF,EAAW5iF,UAExB,WACChN,EAAMuvF,gBAAgBC,EAC1B,MAGAxvF,EAAM8vF,gBAAkB,EAjBpBN,GAAmBxvF,EAAM+vF,4BACzB/vF,EAAM+vF,2BAA2BpmE,cAmB7C,EACA3pB,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAM8vF,gBAAkB,EACxB9vF,EAAMjH,MAAQ,CACV02F,SAAU,CACNvpF,MAAO,EACP8G,OAAQ,IAGThN,CACX,CAoEA,OA1HA,QAAU+uF,EAAuBnvF,GAuDjCmvF,EAAsBxxF,UAAU+J,kBAAoB,WAChD,IAAItH,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAO42F,EAAoB93F,EAAG83F,kBAAmBC,EAAwB/3F,EAAG+3F,sBAAuBC,EAAuBh4F,EAAGg4F,qBACvIhgD,GAAM,EAAAC,EAAA,GAAUryC,KAAKmC,MAAMgB,SAC/BnD,KAAKqxF,eAAiBrxF,KAAKmW,OAAOuqB,SAAS1gC,KAAKqxF,eApEzC,IAoEuE,CAC1E1wD,SAAS,IAERyxD,KACID,GAAyBnyF,KAAKqyF,6BAC/BryF,KAAKkxF,0BAGLlxF,KAAKmsB,QAAQnZ,GAAGo/B,EAAK,SAAUpyC,KAAKqxF,gBAEpCa,EACAlyF,KAAKmW,OAAO1C,YAAW,WACnBvR,EAAMuvF,iBACV,GAjFD,KAoFCzxF,KAAKyxF,kBAGjB,EACAR,EAAsBxxF,UAAUuK,mBAAqB,SAAU45B,GAC3D,IAAI0uD,EAA+B1uD,EAAcwuD,qBAC7Ch4F,EAAK4F,KAAK1E,MAAO62F,EAAwB/3F,EAAG+3F,sBAAuBC,EAAuBh4F,EAAGg4F,qBAC7FhgD,GAAM,EAAAC,EAAA,GAAUryC,KAAKmC,MAAMgB,SAC3BivF,IAAyBE,IACpBF,GAYDpyF,KAAKuxF,4BACLvxF,KAAKmsB,QAAQ44D,IAAI3yC,EAAK,SAAUpyC,KAAKqxF,mBAZhCc,GAAyBnyF,KAAKqyF,6BAC1BryF,KAAKmxF,yBACNnxF,KAAKkxF,0BAITlxF,KAAKmsB,QAAQnZ,GAAGo/B,EAAK,SAAUpyC,KAAKqxF,gBAExCrxF,KAAKyxF,mBAOjB,EACAR,EAAsBxxF,UAAU6K,qBAAuB,WACnDtK,KAAKmsB,QAAQ5b,UACbvQ,KAAKmW,OAAO5F,UACZvQ,KAAKuxF,2BACT,EACAN,EAAsBxxF,UAAUxB,OAAS,WACrC,IAAI0zF,EAAW3xF,KAAK/E,MAAM02F,SACtBY,EAAcZ,EAASvpF,MAAQ,GAAKupF,EAASziF,OAAS,EAAIyiF,OAAW5yF,EACzE,OAAQ,gBAAoB,MAAO,CAAEnB,UAAW,cAAe0N,IAAKtL,KAAKmC,MAAOkW,MAAO,CAAEya,SAAU,EAAGa,UAAW,IAC7G,gBAAoBq9D,GAAmB,QAAS,CAAE1lF,IAAKtL,KAAKwyF,4BAA6Bb,SAAUY,GAAevyF,KAAK1E,QAC/H,EACA21F,EAAsBxxF,UAAUosB,YAAc,WAC1C7rB,KAAKyxF,iBAAgB,EACzB,EACAR,EAAsBxxF,UAAU4xF,eAAiB,WAC7CrxF,KAAKyxF,iBACT,EACAR,EAAsBxxF,UAAU4yF,2BAA6B,WACzD,IAAIjgD,GAAM,EAAAC,EAAA,GAAUryC,KAAKmC,MAAMgB,SAC/B,OAAOivC,GAAOA,EAAIg/C,cACtB,EACOH,CACX,CA5HqB,CA4HnBwB,EAAA,EACN,CCpIO,I,4ECeH94E,GAAgB,EAAAC,EAAA,KAEhB84E,EAAmB,IAGnBC,EAA+B,CAAE1lF,SAAU,GAC3C2lF,EAA8B,CAAC,EAM/BC,EAAmB,SAAUv3F,GAC7B,IAAI2wF,EAAY3wF,EAAM2wF,UAClB6G,EAAyBx3F,EAAMw3F,uBAAwBnF,EAAgCryF,EAAMqyF,8BAA+BE,EAA8BvyF,EAAMuyF,4BAA6BjwF,EAAYtC,EAAMsC,UAAWqwF,EAAqB3yF,EAAM2yF,mBAAoB8E,EAAUz3F,EAAMy3F,QAASC,EAAgB13F,EAAM03F,cAAeC,EAAiB33F,EAAM23F,eAAgBC,EAAS53F,EAAM43F,OAAQj2B,EAAa3hE,EAAM2hE,WAAY6wB,EAAcxyF,EAAMwyF,YAAa5wE,EAAQ5hB,EAAM4hB,MAAOi2E,EAAoB73F,EAAM63F,kBAAmBC,EAAkB93F,EAAM83F,gBAAiBC,EAAa/3F,EAAM+3F,WAAYC,EAAgBh4F,EAAMg4F,cAAeC,EAAoBj4F,EAAMi4F,kBAAmBC,EAAsBl4F,EAAMk4F,oBAAqBC,EAA4Bn4F,EAAMm4F,0BAA2Br5F,EAAKkB,EAAMyyF,cAAeA,OAAuB,IAAP3zF,EAAgB6xF,EAAUyH,KAAOt5F,EAAIu5F,EAAiCr4F,EAAMq4F,+BAAgCC,EAAqBt4F,EAAMs4F,mBAEp8B94E,EAAYxf,EAAMwf,UAAW+4E,EAAmBv4F,EAAMu4F,iBAAkBC,EAAqBx4F,EAAMw4F,mBAEnG/xF,EAAKzG,EAAMy4F,2BAEXA,OAAoC,IAAPhyF,GAAwBA,EAAIiyF,GAAS14F,EAAM04F,OAAQC,GAAY34F,EAAM24F,UAAWC,GAAe54F,EAAM44F,aAAcC,GAAqB74F,EAAM64F,mBAAoBxC,GAAWr2F,EAAMq2F,SAAUtE,GAAuB/xF,EAAM+xF,qBAAsB+G,GAAiB94F,EAAM84F,eAAgB/4F,GAASC,EAAMD,OAAQH,GAAQI,EAAMJ,MAAO8G,GAAK1G,EAAM+mF,eAAgBA,QAAwB,IAAPrgF,GAAgB,KAA2BA,GAAIqyF,GAAmB/4F,EAAM+4F,iBAAkBpvD,GAAe3pC,EAAM2pC,aAAcu/C,GAAiBlpF,EAAMkpF,eAAgB8P,GAAkBh5F,EAAMg5F,gBAAiBrO,GAAc3qF,EAAM2qF,YAAaqG,GAAWhxF,EAAMgxF,SAAUiI,GAAsBj5F,EAAMi5F,oBAAqBC,GAAUl5F,EAAMk5F,QAASz0D,GAAUzkC,EAAMykC,QAAS00D,GAAUn5F,EAAMm5F,QAASC,GAAep5F,EAAMo5F,aAAcjF,GAAuBn0F,EAAMm0F,qBAAsBkF,GAAiBr5F,EAAMq5F,eAAgBC,GAAYt5F,EAAMs5F,UAAWC,GAA4Bv5F,EAAMu5F,0BAA2BlI,GAA0BrxF,EAAMqxF,wBAAyBmI,GAAgBx5F,EAAMw5F,cAAeC,GAAmBz5F,EAAMy5F,iBAAkBC,GAAuB15F,EAAM05F,qBAAsB/yF,GAAK3G,EAAM25F,kBAAmBA,QAA2B,IAAPhzF,IAAuBA,GAAIuqF,GAAkBlxF,EAAMkxF,gBAAiBwD,GAAsB10F,EAAM00F,oBAAqBkF,GAAmB55F,EAAM45F,iBAAkBC,GAAqB75F,EAAM65F,mBAAoB9pD,GAAS/vC,EAAM+vC,OAAQ+pD,GAAmB95F,EAAMw4F,mBAAoBuB,GAAsB/5F,EAAM+5F,oBAAqBC,GAAqBh6F,EAAMg6F,mBAAoBpqD,GAAgB5vC,EAAM4vC,cAAeqqD,GAAkBj6F,EAAMi6F,gBAAiBC,GAAkBl6F,EAAMk6F,gBAAiBC,GAAwBn6F,EAAMm6F,sBAAuBC,GAAuBp6F,EAAMo6F,qBAAsBC,GAA4Br6F,EAAMq6F,0BAA2BC,GAAwBt6F,EAAMs6F,sBAAuBC,GAAwBv6F,EAAMu6F,sBAAuBC,GAAyBx6F,EAAMw6F,uBAAwBC,GAA6Bz6F,EAAMy6F,2BAA4BC,GAAqB16F,EAAM06F,mBAAoBC,GAAmB36F,EAAM26F,iBAAkB54E,GAAiB/hB,EAAM+hB,eAClrE04C,GAAc,OACd/4C,GAAO1hB,EAAM0hB,KAAO1hB,EAAM0hB,KAAO+4C,GACjCmgC,IAAQ,EAAA1tF,EAAA,GAAM,OACdygF,GAi5BR,SAA8BiK,GAG1B,IAFA,IAAIiD,EAAQ,EACRC,EAAgBlD,EACbkD,GAAiBA,EAAc16F,OAAS,GAC3Cy6F,IACAC,EAAgBA,EAAc,GAAG15F,SAErC,OAAOy5F,CACX,CAz5B4BE,CAAqBnD,GACzCoD,GAy5BR,SAAuCpD,GACnC,OAAO,WAAc,WACjB,IAAIqD,EAAW,CAAC,EAChB,GAAIrD,EAGA,IAFA,IAAIsD,EAAW,EACXC,EAAkB,EACbj7F,EAAK,EAAGk7F,EAAWxD,EAAQ13F,EAAKk7F,EAASh7F,OAAQF,IAAM,CAC5D,IAAIm7F,EAAQD,EAASl7F,GAErB+6F,EADUI,EAAMj7E,KACA,CAAEk7E,4BAA6BH,EAAiBI,cAAeL,GAC/EC,IACAD,GAAYG,EAAMvH,MAAQ,CAC9B,CAEJ,OAAOmH,CACX,GAAG,CAACrD,GACR,CAz6BqC4D,CAA8B5D,GAC3D6D,GAAsB,WAAc,WACpC,OAAO,QAAS,CAAEC,qBAAsB1K,GAAW,EAxBtB,EAwB0D2K,sBAAuB3K,GAAW,EAvB3F,EAuBgI0H,OAAQA,GAAQQ,QAASA,IAAWP,GACtM,GAAG,CAAC3H,GAAU0H,GAAQQ,GAASP,KAC3BrG,GAAsB,IAAoBx9E,KAI9C,GAHI29E,IAAkB,KAAcmJ,SAChCtJ,GAAsB,IAAoBn/D,QAE1Cs/D,IAAkB,KAAcc,SAAU,CAE1C,IAAIsI,GAAgCl6B,GAAcA,EAAWm6B,aAAen6B,EAAWm6B,YAAYD,mCAC7Dp4F,IAAlCo4F,KACAA,IAAgC,GAGpCvJ,GADyBuJ,KAAkCjE,GAAUqB,GAC1B,IAAoB/F,QAAU,IAAoB//D,MACjG,CACIw/D,IAAuB,KAAmBx/D,SAC1Cm/D,GAAsB,IAAoBx9E,MAE9C,IAAIinF,GAA+B,eAAkB,SAAUC,GAC3D,OAAO,gBAAoBrH,EAAA,GAAe,QAAS,CAAC,EAAGqH,GAC3D,GAAG,IACCC,GAA+B,eAAkB,WACjD,OAAO,IACX,GAAG,IACCC,GAA6Bl8F,EAAMm8F,sBACnCA,GAAwB,WAAc,WACtC,OAAOD,IACD,EAAAn7E,EAAA,GAAsBm7E,GAA4BH,IAClDA,EACV,GAAG,CAACG,GAA4BH,KAC5BK,GAA6Bp8F,EAAMq8F,sBACnCA,GAAwB,WAAc,WACtC,OAAOD,IACD,EAAAr7E,EAAA,GAAsBq7E,GAA4BH,IAClDA,EACV,GAAG,CAACG,GAA4BH,KAC5BK,GAAqB,WAAc,WACnC,MAAO,CACHjO,QAAS2K,GACTrL,kBAAmBA,GACnBgD,UAAWA,EACX8B,cAAeA,EACf4D,SAAUA,GACV1D,mBAAoBA,EACpBH,YAAaA,EACbzL,eAAgBA,GAExB,GAAG,CACCiS,GACArL,GACAgD,EACA8B,EACA4D,GACA1D,EACAH,EACAzL,KAEAwV,GAAyBpI,IAAwBA,GAAqBjK,UACtE8D,GAAkB,eAAkB,SAAUlvF,EAAIwG,GAClD,IAAI6oF,EAAervF,EAAGqvF,aAClBqO,EAAoB,KAAsBC,QAC9C,GAAIF,GAAwB,CACxB,GAAIpO,GAAgBA,IAAiB,KAAsB/sC,OACvDo7C,EAAoBrO,OAEnB,GAAI1pD,GAAQ58B,QAAS,CACtB,IAAI+2B,EAAa6F,GAAQ58B,QAAQ8K,wBAC7BrN,EAAM25B,QAAUL,EAAW70B,MAC3BzE,EAAM25B,QAAUL,EAAWz0B,OAC3B7E,EAAM45B,QAAUN,EAAWnyB,KAC3BnH,EAAM45B,QAAUN,EAAWjyB,SAC3B6vF,EAAoB,KAAsBE,QAElD,CACAH,GAAuBC,EAC3B,CACJ,GAAG,CAACD,GAAwB93D,KACxBmoD,GAAqB,WAAc,WACnC,GAAIuH,GACA,OAAO,SAAS,QAAS,CAAC,EAAGA,IAAuB,CAAEnG,gBAAiBA,IAE/E,GAAG,CAACmG,GAAsBnG,KACtBkN,IAAYpD,EAAkB,EAAI,IACjC93F,EAAMq8F,sBAAwB,EAAI,GD7HhB,SAAUzE,GACjC,IAAIj8D,EAAQ,EACZ,GAAIi8D,EAGA,IAFA,IAAI+E,GAAkB,QAAc,GAAI/E,GAAQ,GAC5CgF,OAAe,EACZD,GAAmBA,EAAgBv8F,OAAS,KAC7Cu7B,GACFihE,EAAeD,EAAgBj0F,QACXk0F,EAAax7F,UAC7Bu7F,EAAgBt6F,KAAKhC,MAAMs8F,EAAiBC,EAAax7F,UAIrE,OAAOu6B,CACX,CCgHQkhE,CAAcjF,IACbh2E,EAAQA,EAAMxhB,OAAS,GACxB08F,IAAYxK,KAAwB,IAAoBx9E,KAAO,EAAI,IAClEkkF,GAAkBA,GAAgB54F,OAAS,IAC3Cw3F,EAAS,EAAI,GACdz1F,GAAa,WAAc,WAC3B,OAAOkc,EAActe,GAAQ,CACzBH,MAAOA,GACP63F,QAASA,EACTsF,QAAShF,IAAe,KAAsBiF,aAC9CC,wBAAyBvF,IAAkB,KAAcwF,sBACzD56F,UAAWA,GAEnB,GAAG,CAACvC,GAAQH,GAAO63F,EAASM,EAAYL,EAAep1F,IACnD66F,GAA6Bx7B,GAAcA,EAAWy7B,eACtDC,GAAkC,WAAc,WAChD,OAAOF,GACD,SAAUG,EAAkBrwE,GAC1B,OAAOkwE,IAA2B,SAAS,QAAS,CAAC,EAAGG,GAAmB,CAAEjP,QAAS2K,GAAiBrL,kBAAmBA,GAAmB6E,YAAaA,EAAa7B,UAAWA,EAAW8B,cAAeA,EAAe4D,SAAUA,GAAU1D,mBAAoBA,EAAoB5L,eAAgBA,KAAmB95D,EAC9T,OACExpB,CACV,GAAG,CACC05F,GACAnE,GACArL,GACA6E,EACA7B,EACA8B,EACA4D,GACA1D,EACA5L,KAEAwW,GAA6B57B,GAAcA,EAAWgmB,eACtD6V,GAAkC,WAAc,WAChD,OAAOD,GACD,SAAUE,EAAkBxwE,GAC1B,IAAInuB,EAAI2H,EACJi3F,EAAaD,EAAiBC,WAC9BC,OAA0Bl6F,IAAfi6F,EAAyH,QAA7Fj3F,EAAwC,QAAlC3H,EAAK2+F,EAAiB7F,cAA2B,IAAP94F,OAAgB,EAASA,EAAG4+F,UAAgC,IAAPj3F,OAAgB,EAASA,EAAG2Z,SAAM3c,EAC9K83F,OAA6B93F,IAAbk6F,GAA0B3C,GAA2B2C,GACnE3C,GAA2B2C,GAAUpC,cACrC,EACN,OAAOgC,IAA2B,SAAS,QAAS,CAAC,EAAGE,GAAmB,CAAEpP,QAAS2K,GAAiBrL,kBAAmBA,GAAmB6E,YAAaA,EAAa7B,UAAWA,EAAW8B,cAAeE,IAAuB,KAAmBx/D,OAASs/D,EAAgB,KAAc39E,KAAMuhF,SAAUA,GAAU1D,mBAAoBA,EAAoB5L,eAAgBA,GAAgB6W,YAAa5E,GAAgB54F,OAAQy9F,eAAWp6F,EAAWq6F,kBAAcr6F,EAAWknC,iBAAalnC,EAAWs6F,kBAAct6F,EAAWu6F,kBAA6Bv6F,IAAfi6F,EAA2BnC,GAAiBzD,EAAkB,EAAI,QAAKr0F,IAAcwpB,EAC3mB,EACE,SAAUwwE,EAAkBxwE,GAC1B,IAAInuB,EAAI2H,EACJi3F,EAAaD,EAAiBC,WAC9BC,OAA0Bl6F,IAAfi6F,EAAyH,QAA7Fj3F,EAAwC,QAAlC3H,EAAK2+F,EAAiB7F,cAA2B,IAAP94F,OAAgB,EAASA,EAAG4+F,UAAgC,IAAPj3F,OAAgB,EAASA,EAAG2Z,SAAM3c,EAC9K83F,OAA6B93F,IAAbk6F,GAA0B3C,GAA2B2C,GACnE3C,GAA2B2C,GAAUpC,cACrC,EACN,OAAOtuE,GAAc,SAAS,QAAS,CAAC,EAAGwwE,GAAmB,CAAEG,YAAa5E,GAAgB54F,OAAQy9F,eAAWp6F,EAAWq6F,kBAAcr6F,EAAWknC,iBAAalnC,EAAWs6F,kBAAct6F,EAAWu6F,kBAA6Bv6F,IAAfi6F,EAA2BnC,GAAiBzD,EAAkB,EAAI,QAAKr0F,IAC9R,CACR,GAAG,CACC85F,GACAvE,GACArL,GACA6E,EACAsF,EACAnH,EACA8B,EACA4D,GACA1D,EACA5L,GACAiU,KAEAiD,GAAkB,WAAc,WAChC,IAAIn/F,EACJ,OAAO,SAAS,QAAS,CAAC,EAAG6iE,GAAa,CAAEjgD,KAAMA,KAAS+4C,GAAc,WAAa,eAAgB2iC,eAAgBC,GAAiC1V,eAAgB6V,GAEnK1B,aAAa,SAAS,QAAS,CAAC,EAAGn6B,aAA+C,EAASA,EAAWm6B,aAAc,CAAEoC,sBAAsB,QAAS,CAAE,aAAc7D,IAAuH,QAAzFv7F,EAAK6iE,aAA+C,EAASA,EAAWm6B,mBAAgC,IAAPh9F,OAAgB,EAASA,EAAGo/F,yBACxU,GAAG,CAACv8B,EAAY07B,GAAiCG,GAAiCnD,GAA2B34E,KACzGy8E,IAAkB,EAAA1oF,EAAA,IAAS,WAC3B,OAAO,EAAA4V,EAAA,KAAgB,SAAUgjE,GAC7B,IAAI7N,EAAa,EAEjB,OADA6N,EAAQrgF,SAAQ,SAAUi3E,GAAU,OAAQzE,GAAcyE,EAAOiD,iBAAmBjD,EAAOztD,QAAW,IAC/FgpD,CACX,GACJ,IACIyS,GAAwBtxB,GAAcA,EAAWsxB,sBACjDmL,GAAW,WAAc,WACzB,OAAOD,GAAgBnF,GAC3B,GAAG,CAACA,GAAiBmF,KACjBE,GAAe,eAAkB,SAAUC,EAAcr+E,EAAMU,EAAO06E,GACtE,IAAIkD,EAAmBv+F,EAAMw+F,aACvB,EAAAz9E,EAAA,GAAsB/gB,EAAMw+F,YAAa9D,IACzCA,GACFiD,EAAWtC,EAAQA,EAAMj7E,SAAM3c,EAC/B63F,EAA8BqC,GAAY3C,GAA2B2C,GACnE3C,GAA2B2C,GAAUrC,4BACrC,EACFmD,EAAU/8E,KAAS+4C,QAAch3D,EAAY,eAE7Ci7F,EAAoB5G,GAAmBn3E,EAAQ,EAAI22E,EAA8BD,EACjFsH,EAAW,CACX1+E,KAAMA,EACNgmE,UAAWtlE,EACXi+E,iBAAkB9G,EAAkB,EAAI,GAAKwD,EAC7C7D,QAASA,EACTpJ,QAAS2K,GACTrL,kBAAmB2Q,EACnBrmF,GAAI,GAAGf,OAAO0jF,GAAO,KAAK1jF,OAAOyJ,GACjC8xE,cAAeA,EACf9B,UAAWA,EACXkO,WAAYrF,GACZsF,cAAerF,GACfO,mBAAoBA,GACpBpqD,cAAeA,GACfqqD,gBAAiBA,GACjBH,iBAAkBA,GAClBnC,eAAgBA,EAChBzO,eAAgBA,GAChBmN,SAAUA,GACV1D,mBAAoBA,EACpBM,sBAAuBA,GACvBiH,gBAAiBA,GACjBC,sBAAuBA,GACvBC,qBAAsBA,GACtBE,sBAAuBA,GACvBC,sBAAuBA,GACvB/H,YAAaA,EACbzL,eAAgBA,GAChB2L,wBAAyBqG,GACzByB,uBAAwBA,GACxB4D,SAAUA,GACVz0D,aAAcA,GACdjoB,KAAM+8E,EACNM,WAAW,EACXh9E,eAAgB28E,GAEpB,OAAKz+E,EAMEs+E,EAAiBI,GALhB5E,GACOA,GAAoBp5E,EAAOg+E,GAE/B,IAGf,GAAG,CACClH,EACAuB,GACAvG,EACA9B,EACAiK,GACApB,GACAC,GACAO,GACApqD,GACAqqD,GACAH,GACAnC,EACAzO,GACAmN,GACA1D,EACAM,GACAiH,GACAC,GACArC,EACAsC,GACAE,GACAC,GACA/H,EACAzL,GACAgS,GACAyB,GACA7wD,GACA+wD,GACAX,GACA/5F,EAAMw+F,YACNJ,GACA18E,GACAs5E,KAEAgE,GAAmB,eAAkB,SAAUV,GAC/C,OAAO,SAAUr+E,EAAMgmE,GACnB,OAAOoY,GAAaC,EAAcr+E,EAAMgmE,EAC5C,CACJ,GAAG,CAACoY,KACAY,GAAe,eAAkB,SAAU35F,GAE3C,OAAOA,EAAMoE,SAAU,QAAkBC,EAAA,EAASQ,MAAOvK,GAC7D,GAAG,CAACA,KACAs/F,IAAsB,SAAS,QAAS,CAAC,EAAGn9E,IAAiB,CAAED,aAAcC,IAAkBA,GAAeD,aAAeC,GAAeD,aAAes3E,GAAc92F,UAAWyf,IAAkBA,GAAezf,WAC/M,EAAAsN,EAAA,GAAIzN,GAAWg9F,UAAWp9E,GAAezf,WACzCH,GAAWg9F,UAAWt2F,UAAWkZ,GAAiBA,GAAelZ,UAAY,IAAmBmB,SAAUhB,qBAAsB+Y,IAAkBA,GAAe/Y,qBAAuB+Y,GAAe/Y,qBAAuBi2F,GAAc93F,uBAAwB4a,IAAkBA,GAAe5a,uBACrS4a,GAAe5a,uBACf0yF,GAAoBvsF,0BAA0B,EAAOyiC,OAAQhuB,IAAkBA,GAAeguB,OAAShuB,GAAeguB,OAASA,KACrIqvD,GAAmBxH,IAAWj2B,aAA+C,EAASA,EAAW09B,gBAAiB,EAAAhxE,EAAA,GAAmBszC,EAAW09B,cAAeC,EAAA,GAAeA,EAAA,EAC9Kt9E,GAAO41E,EAAU,gBAAoBwH,GAAkB,CAAEr9E,eAAgBm9E,GAAqBp9E,aAAcu3E,GAAgBzB,OAAQA,EAAQj2B,WAAYs8B,GAAiBr8E,MAAOA,EAAOy8E,aAAcA,GAAc38E,KAAM,eAAgBivE,UAAWA,EAAW8B,cAAeE,IAAuB,KAAmBx/D,OAASs/D,EAAgB,KAAc39E,KAAM6iF,eAAgBA,EAAgBzO,eAAgBA,GAAgB4Q,iBAAkBtB,EAAoBG,UAAW8C,GAAqBlC,0BAA2BA,GAA2BX,aAAcA,GAAcC,mBAAoBA,GAAoBC,eAAgBA,GAAgBrB,QAASA,IAAe,gBAAoBlxF,EAAA,GAAW,QAAS,CAAC,EAAG24F,IACzsB,gBAAoBK,EAAA,GAAM,QAAS,CAAEvvF,IAAKmpF,GAASz3E,KAAM,eAAgBE,MAAOA,EAAOy8E,aAAcW,GAAiB,GAAIpG,aAAcA,GAAcC,mBAAoBA,IAAsB4C,MAChM+D,GAAkB,eAAkB,SAAUn6F,GAE1CA,EAAGqE,QAAUC,EAAA,EAASa,MAClB4uF,GAAavxF,SAAWuxF,GAAavxF,QAAQE,UAGzC4xF,IAA+D,IAA1ChJ,EAAU3uC,qBAAqB5hD,QACpDuwF,EAAU8O,iBAAiB,GAAG,GAAM,GAExCp6F,EAAGyG,iBACHzG,EAAG+C,kBAGf,GAAG,CAACuoF,EAAWyI,GAAcO,KACzB+F,GAAmB,eAAkB,SAAUr6F,GAE3CA,EAAGqE,QAAUC,EAAA,EAASU,IAAOhF,EAAGM,QAC5B2zF,GAAUzxF,SAAWyxF,GAAUzxF,QAAQE,UACvC1C,EAAGyG,iBACHzG,EAAG+C,kBAGf,GAAG,CAACkxF,KACJ,OAAQ,gBAAoB,OAAO,QAAS,CAAEtpF,IAAKy0B,GAASniC,UAAWH,GAAWgM,KAAM,oBAAqB,cAAe,qBAAsB,SAAYsqF,EAA6B,CAAE/2E,KAAM,eAAkB,CAAC,GAClN,gBAAoB,IAAY,MAChC,gBAAoB,MAAO,CAAEA,KAAMA,GAAM,aAAc62E,GAAoB/4E,EAAW,gBAAiBq4E,EAAoB,EAAIqD,GAAU,gBAAiB4B,GAAU,YAAajF,GAC7K,gBAAoB,MAAO,CAAE5uF,UAAWu2F,GAAiB99E,KAAM,eAAgBpf,UAAWH,GAAWw9F,eAAiB7H,GAClHqE,GAAsB,CAClBr6E,aAAcw3E,GACd7G,cAAeA,EACfsF,WAAYA,EACZpH,UAAWA,EACXtC,QAAS2K,GACTrT,cAAeuS,EACfxR,oBAAqByR,EACrBjH,gBAAiBA,GACjBG,wBAAyBA,GACzBqD,oBAAqBA,GACrB/G,kBAAmBA,GACnBgE,eAAgBhH,GAChB8G,oBAAqBmI,GACrBp6E,UAAWg4E,EACXnF,8BAA+BA,EAC/BE,4BAA6BA,EAC7BD,oBAAqBA,GACrBW,sBAAuBtxB,GAAcA,EAAWsxB,sBAChDoD,SAAUA,GACVzJ,mBAAoBA,GACpBmF,qBAAsBA,GACtBhL,eAAgBA,GAChB4L,mBAAoBA,EACpBH,YAAaA,EACbE,wBAAyBqG,GACzBqF,SAAUD,GAAgBnF,IAC1BrvD,aAAcA,IACfwyD,KACP,gBAAoB,MAAO,CAAElzF,UAAWy2F,GAAkBh+E,KAAM,eAAgBpf,UAAWH,GAAWy9F,gBAAmBlG,GAAsf,GAA9d,gBAAoBmG,EAAA,GAAe,QAAS,CAAE7vF,IAAK2qF,GAAkBhK,UAAWA,EAAW0H,+BAAgCA,EAAgC5F,cAAeA,EAAekH,kBAAmBA,GAAmBmG,8BAA+BnG,GAAmBoG,8BAA+BpG,GAAmB3B,cAAeA,EAAeC,kBAAmBA,EAAmB+H,kBAAmBvF,IAA+BnC,GAAsB,CAAC,GAAKt2E,KACtmBq6E,IAAsB,QAAS,CAAC,EAAGC,MAC/C,EACI2D,EAAiC,SAAUz5F,GAE3C,SAASy5F,EAAgBjgG,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA+LxC,OA9LAkC,EAAMC,MAAQ,cACdD,EAAMs5F,QAAU,cAChBt5F,EAAMu5F,aAAe,cACrBv5F,EAAMw5F,MAAQ,cACdx5F,EAAMiY,WAAa,cACnBjY,EAAMy5F,eAAiB,cACvBz5F,EAAM05F,aAAe,SAAUtgG,EAAOitB,GAClC,OAAO,gBAAoBszE,EAAA,GAAY,QAAS,CAAC,EAAGvgG,GACxD,EACA4G,EAAM45F,0BAA4B,SAAUj4D,EAAWk4D,GACnD,IAAI3hG,EAAK8H,EAAM5G,MAAO2yF,EAAqB7zF,EAAG6zF,mBAAoB/wE,EAAQ9iB,EAAG8iB,MAAO8+E,EAAS5hG,EAAG4hG,OAAQj6F,EAAK3H,EAAG2zF,cAAeA,OAAuB,IAAPhsF,EAAgBG,EAAM+5F,WAAWvI,KAAO3xF,EAAI4nF,EAAUvvF,EAAGuvF,QAASgI,EAAWv3F,EAAGu3F,SAAUoB,EAAU34F,EAAG24F,QAASE,EAAiB74F,EAAG64F,eAC/QjxF,GAAME,EAAM5G,MAAM2hE,YAAc,CAAC,GAAGi/B,qBAAsBA,OAA8B,IAAPl6F,OAAgBjD,EAAYiD,EAC7Gm6F,EAAoBt4D,EAAU8tD,UAAY9tD,EAAU8tD,SAASvpF,OAAU,EACvEg0F,EAAoBzK,GAAYA,EAASvpF,OAAU,EACnDi0F,EAAuBx4D,EAAUm4D,SAAWA,QAA+Bj9F,IAArB8kC,EAAUm4D,OAChEM,GAAqB,EACrBz4D,EAAUwvD,aAAenxF,EAAM5G,MAAM+3F,aACrCiJ,GAAqB,GAEzB,IAAIC,EAAYR,EAqChB,OApCIM,IACAn6F,EAAMs6F,qBAAuB34D,EAAU44D,oBAEvCF,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAEG,sBAAiD39F,IAA/BmD,EAAMs6F,qBAAqCt6F,EAAMs6F,sBAAwB,KAE1It6F,EAAM5G,MAAM05F,sBAAwBnxD,EAAU3mB,QAAUA,GACzDhb,EAAM+5F,WAAWU,SAAS94D,EAAU3mB,MAAOm/E,GAE3Cx4D,EAAUoqD,qBAAuBA,GACjCpqD,EAAU8lD,UAAYA,GACtBwS,IAAqBC,GACrBv4D,EAAUkvD,UAAYA,IACtBuJ,GAAqB,GAEzBC,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAYr6F,EAAM06F,eAAe/4D,EAAW04D,GAAW,IACrF14D,EAAUkqD,gBAAkBA,IAC5BuO,GAAqB,QAEIv9F,IAAzBm9F,GACAr4D,EAAUo5B,iBACoCl+D,IAA9C8kC,EAAUo5B,WAAWi/B,uBACrBK,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAEtW,YAAapiD,EAAUo5B,WAAWi/B,qBAAsB3H,qBAAsB1wD,EAAUo5B,WAAWi/B,wBAEnJr4D,EAAUovD,iBAAmBA,IAC7B/wF,EAAMgrF,iBAAmBhrF,EAAMgrF,gBAAgB38E,UAC/CrO,EAAMgrF,gBAAkBrpD,EAAUovD,eAC5B,IAAI9F,EAAA,EAAe,CACjBlB,UAAW/pF,EAAM+5F,WACjB5O,qBAAsBxpD,EAAUwpD,4BAElCtuF,EACNu9F,GAAqB,GAErBA,IACAC,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAE/H,QAAS,CAAC,KAEvD+H,CACX,EACAr6F,EAAM26F,2BAA6B,SAAUtI,GACzCryF,EAAM0T,SAAS,CAAE2+E,oBAAqBA,GAC1C,EACAryF,EAAM46F,yBAA2B,SAAUvc,EAAQ+L,GAC/CpqF,EAAM0T,SAAS,CAAE02E,SAAUA,GAC/B,EACApqF,EAAM66F,eAAiB,SAAUC,GAC7B,IAAI5iG,EAAK4iG,EAAI1hG,MAAOigB,EAAOnhB,EAAGmhB,KAAMgmE,EAAYnnF,EAAGmnF,UAC/Cv3C,EAAU9nC,EAAM+6F,YAAY1hF,EAAMgmE,GACtCr/E,EAAMg7F,YAAYlzD,GAAWgzD,EAC7B96F,EAAMi7F,wBAAwBH,GAC9B,IAAIlI,EAAgB5yF,EAAM5G,MAAMw5F,cAC5BA,GACAA,EAAcv5E,EAAMgmE,EAE5B,EACAr/E,EAAMk7F,kBAAoB,SAAUJ,GAChC,IAAIjI,EAAmB7yF,EAAM5G,MAAMy5F,iBAC/B36F,EAAK4iG,EAAI1hG,MAAOigB,EAAOnhB,EAAGmhB,KAAMgmE,EAAYnnF,EAAGmnF,UAC/Cv3C,EAAU9nC,EAAM+6F,YAAY1hF,EAAMgmE,UAC/Br/E,EAAMg7F,YAAYlzD,GACrB+qD,GACAA,EAAiBx5E,EAAMgmE,EAE/B,EACAr/E,EAAMm7F,kBAAoB,SAAUC,GAChCp7F,EAAM0T,SAAS,CACXqwE,YAAaqX,IAEbp7F,EAAMu5F,aAAat4F,SACnBjB,EAAMu5F,aAAat4F,QAAQo6F,kBAAkBD,EAErD,EACAp7F,EAAMs7F,iBAAmB,SAAUC,EAAgBC,EAAUC,GACzD,IAAIC,EAAqB/1F,KAAKsgD,IAAIs1C,EAAe3qE,UAAY4/D,EAAkBgL,GAC3Ex7F,EAAM5G,MAAMuiG,gBACZ37F,EAAM5G,MAAMuiG,eAAeJ,EAAgBG,EAAoBD,GAEnEz7F,EAAM47F,yBAAyBL,EAAgBG,GAC/C17F,EAAM0T,UAAS,SAAS,QAAS,CAAC,EAAG1T,EAAM06F,eAAe16F,EAAM5G,MAAO4G,EAAMjH,OAAO,EAAM0iG,IAAuB,CAAEnJ,QAAS,CAAC,IACjI,EAWAtyF,EAAM67F,qBAAuB,SAAUxd,EAAQ0E,GAC3C,IAAI98B,EAAM,EACNinC,EAAQ,EACR4O,EAAa3+F,OAAOiU,KAAKpR,EAAMg7F,aAAaxhG,OAChD,IAAK,IAAIggB,KAAOxZ,EAAMg7F,YACdh7F,EAAMg7F,YAAYz+F,eAAeid,IAChBxZ,EAAMg7F,YAAYxhF,GACxBuiF,YAAYhZ,GAAa,SAAU78E,GAC1C+/C,EAAMtgD,KAAKsgD,IAAIA,EAAK//C,KACpBgnF,IACc4O,GACV97F,EAAMs7F,iBAAiBjd,EAAQp4B,EAAK88B,EAE5C,GAGZ,EAQA/iF,EAAMg8F,oBAAsB,SAAUC,EAAIx9F,GACtC,IAAIvG,EAAK8H,EAAM5G,MAAO4hB,EAAQ9iB,EAAG8iB,MAAOkhF,EAAsBhkG,EAAGgkG,oBACjE,GAAKD,GAIDA,EAAGxyF,aAAa,mBAAoB,CACpC,IAAIsQ,EAAQo4B,OAAO8pD,EAAGxyF,aAAa,oBAC/BsQ,GAAS,IACLmiF,GACAA,EAAoBlhF,EAAMjB,GAAQA,EAAOtb,GAE7CuB,EAAM0T,SAAS,CACX8mF,iBAAkBzgF,IAG9B,CACJ,EACA/Z,EAAMyB,QAAU,SAAU/C,GACtBsB,EAAM0T,SAAS,CACX8mF,kBAAmB,GAE3B,GACA,EAAAp0F,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMg7F,YAAc,CAAC,EACrBh7F,EAAMm8F,iBAAmB,CAAC,EAC1Bn8F,EAAMjH,MAAQ,CACVyhG,kBAAmB,EACnB4B,UAAW,EACXhK,gBAAiBpyF,EAAMq8F,oBAAoBjjG,OAAOyD,GAClDutF,UAAU,EACVrG,YAAa3qF,EAAM2hE,YAAc3hE,EAAM2hE,WAAWi/B,qBAClD3H,oBAAqBj5F,EAAM2hE,aAAe3hE,EAAM2hE,WAAWi/B,qBAC3D1H,QAAS,CAAC,EACVv9E,yBAA0B/U,EAAM45F,4BAEpC,EAAAt1C,EAAA,GAphBa,cAohByBlrD,EAAO,CACzC2wF,UAAW,WAEf/pF,EAAM+5F,WACF3gG,EAAM2wF,WACF,IAAIuS,EAAA,EAAU,CACVC,wBAAoB1/F,EACpBi1F,OAAQ14F,EAAM04F,OACdjG,cAAezyF,EAAMyyF,gBAE5B7rF,EAAM5G,MAAM05F,sBACb9yF,EAAM+5F,WAAWU,SAASrhG,EAAM4hB,OAAO,GAE3Chb,EAAMgrF,gBAAkB5xF,EAAM23F,eACxB,IAAI9F,EAAA,EAAe,CACjBlB,UAAW/pF,EAAM+5F,WACjB5O,qBAAsB/xF,EAAM+xF,4BAE9BtuF,EACNmD,EAAMs6F,qBAAuBlhG,EAAMmhG,oBAC5Bv6F,CACX,CA0VA,OA5hBA,QAAUq5F,EAAiBz5F,GAmM3By5F,EAAgBtkF,yBAA2B,SAAU4sB,EAAWk4D,GAC5D,OAAOA,EAAc9kF,yBAAyB4sB,EAAWk4D,EAC7D,EACAR,EAAgB97F,UAAUi/F,cAAgB,SAAUziF,EAAO0iF,EAAaC,GACpE5+F,KAAK07F,MAAMv4F,SAAWnD,KAAK07F,MAAMv4F,QAAQu7F,cAAcziF,EAAO0iF,EAAaC,GAC3E5+F,KAAKy7F,aAAat4F,SAAWnD,KAAKy7F,aAAat4F,QAAQu7F,cAAcziF,EAAO0iF,EAAaC,EAC7F,EACArD,EAAgB97F,UAAUo/F,WAAa,SAAU5iF,EAAOxQ,EAAuBkzF,EAAaC,QAC1D,IAA1BnzF,IAAoCA,GAAwB,GAChE,IAAI8P,EAAOvb,KAAK1E,MAAM4hB,MAAMjB,GAC5B,GAAIV,EAAM,CACNvb,KAAK0+F,cAAcziF,EAAO0iF,EAAaC,GACvC,IAAI50D,EAAUhqC,KAAKi9F,YAAY1hF,EAAMU,GACjC+gF,EAAMh9F,KAAKk9F,YAAYlzD,GACvBgzD,GACAh9F,KAAK8+F,eAAe9B,EAAKvxF,EAEjC,CACJ,EACA8vF,EAAgB97F,UAAUs/F,wBAA0B,WAChD,OAAI/+F,KAAK07F,OAAS17F,KAAK07F,MAAMv4F,QAClBnD,KAAK07F,MAAMv4F,QAAQ47F,0BAErB/+F,KAAKy7F,cAAgBz7F,KAAKy7F,aAAat4F,QACrCnD,KAAKy7F,aAAat4F,QAAQ47F,0BAE9B,CACX,EACAxD,EAAgB97F,UAAUu/F,aAAe,SAAUze,EAAQpmF,GACvD,IAAIC,EAAI2H,EAEJC,EAAKhC,KAAK1E,MAAO2G,EAAKD,EAAG2nF,QAASA,OAAiB,IAAP1nF,EAD/B,GAC4DA,EAAI8rF,EAAgB/rF,EAAG+rF,cAAeE,EAAqBjsF,EAAGisF,mBAAoBwB,EAAuBztF,EAAGytF,qBACrLrnF,EAAQjO,EAAQiO,MAAO62F,EAAiB9kG,EAAQ8kG,eAChDhjF,EAAQ0tE,EAAQuV,WAAU,SAAUC,GAAO,OAAOA,EAAIzjF,MAAQ6kE,EAAO7kE,GAAK,IAI9E,GAHItT,GACApI,KAAKw9F,iBAAiBjd,EAAQn4E,EAAO6T,QAElBld,IAAnBkgG,GAAgCxP,EAAsB,CACtD,IAAI2P,EAAyBrR,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,OAE3Gw2D,GADegJ,IAAuB,KAAmBx/D,OAC3B,EAAI,GAAKxS,EACvC2sE,EAAewW,EAAyBna,EAAc,EAAIA,EAAc,EACxEmD,EAAcgX,EAAyBH,EAAiB,EAAIA,EAAiB,EAC7EnV,EAAwF,QAA1D1vF,EAAKq1F,EAAqB3F,kCAA+C,IAAP1vF,EAAgBA,EAAK,EACrH2vF,EAAoF,QAAxDhoF,EAAK0tF,EAAqB1F,gCAA6C,IAAPhoF,EAAgBA,EAAK,EAErH,GADyBqmF,GAAe0B,GAA8B1B,EAAcuB,EAAQjuF,OAASquF,EAEjG,GAAI0F,EAAqB/G,aAAc,CACnC,IAAIC,EAAkB,CAClBC,aAAcA,EACdR,YAAaA,GAEjBqH,EAAqB/G,aAAaC,EAEtC,MACS8G,EAAqB5G,qBAC1B4G,EAAqB5G,oBAAoBD,EAAcR,EAInE,CACJ,EACAmT,EAAgB97F,UAAU6K,qBAAuB,WACzCtK,KAAKktF,iBAELltF,KAAKktF,gBAAgB38E,UAEzBvQ,KAAKmW,OAAO5F,SAChB,EACAgrF,EAAgB97F,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAEhE,GADAvtB,KAAKq/F,6BAC6BtgG,IAA9BiB,KAAKw8F,uBACDjhF,EAAOvb,KAAK1E,MAAM4hB,MAAMld,KAAKw8F,uBACvB,CACN,IAAIxyD,EAAUhqC,KAAKi9F,YAAY1hF,EAAMvb,KAAKw8F,uBACtCQ,EAAMh9F,KAAKk9F,YAAYlzD,KAEvBhqC,KAAKm9F,wBAAwBH,EAErC,CAEJ,GAAIh9F,KAAK1E,MAAM4hB,QAAUoQ,EAAUpQ,OAC/Bld,KAAK1E,MAAM4hB,MAAMxhB,OAAS,IACO,IAAjCsE,KAAK/E,MAAMyhG,oBACV,EAAAlkG,EAAA,GAAgBwH,KAAKmC,MAAMgB,QAASjK,SAASwL,eAAe,GAAQ,CAIrE,IAKIs4F,EALA/gF,EAAQjc,KAAK/E,MAAMyhG,iBAAmB18F,KAAK1E,MAAM4hB,MAAMxhB,OACrDsE,KAAK/E,MAAMyhG,iBACX18F,KAAK1E,MAAM4hB,MAAMxhB,OAAS,EAC5B6f,EAAOvb,KAAK1E,MAAM4hB,MAAMjB,GACxB+tB,EAAUhqC,KAAKi9F,YAAY1hF,EAAMvb,KAAK/E,MAAMyhG,mBAC5CM,EAAMh9F,KAAKk9F,YAAYlzD,IAEvBhqC,KAAK8+F,eAAe9B,GAGpBh9F,KAAKw8F,qBAAuBvgF,CAEpC,CACIjc,KAAK1E,MAAMgkG,aACXt/F,KAAK1E,MAAMgkG,YAAYt/F,KAE/B,EACAu7F,EAAgB97F,UAAUxB,OAAS,WAC/B,OAAQ,gBAAoB40F,GAAkB,QAAS,CAAC,EAAG7yF,KAAK1E,MAAO0E,KAAK/E,MAAO,CAAEgxF,UAAWjsF,KAAKi8F,WAAYzX,eAAgBxkF,KAAKktF,gBAAiBntD,QAAS//B,KAAKmC,MAAOsyF,QAASz0F,KAAK07F,MAAO/G,eAAgB30F,KAAKy7F,aAAc/G,aAAc10F,KAAKma,WAAYy6E,UAAW50F,KAAKw7F,QAASvF,iBAAkBj2F,KAAK27F,eAAgB9G,0BAA2B70F,KAAK68F,2BAA4BlQ,wBAAyB3sF,KAAK88F,yBAA0BhI,cAAe90F,KAAK+8F,eAAgBhI,iBAAkB/0F,KAAKo9F,kBAAmB5Q,gBAAiBxsF,KAAKw9F,iBAAkBxN,oBAAqBhwF,KAAK+9F,qBAAsB7I,iBAAkBl1F,KAAKq9F,kBAAmBlI,mBAAoBn1F,KAAKk+F,oBAAqB7yD,OAAQrrC,KAAK2D,QAASqyF,mBAAoBh2F,KAAK47F,eACxuB,EACAL,EAAgB97F,UAAUosB,YAAc,WACpC/pB,EAAOrC,UAAUosB,YAAYnsB,KAAKM,MAClCA,KAAKu/F,mBACT,EACAhE,EAAgB97F,UAAU+/F,sBAAwB,WAI9C,IAHA,IACIrJ,EAAQ,EACRC,EAFSp2F,KAAK1E,MAAM43F,OAGjBkD,GAAiBA,EAAc16F,OAAS,GAC3Cy6F,IACAC,EAAgBA,EAAc,GAAG15F,SAErC,OAAOy5F,CACX,EACAoF,EAAgB97F,UAAU09F,wBAA0B,SAAUH,GAC1D,IAAIzb,EAAYyb,EAAI1hG,MAAMimF,eACQxiF,IAA9BiB,KAAKw8F,sBAAsCjb,IAAcvhF,KAAKw8F,uBAC9Dx8F,KAAK8+F,eAAe9B,UACbh9F,KAAKw8F,qBAEpB,EACAjB,EAAgB97F,UAAUq/F,eAAiB,SAAU9B,EAAKvxF,QACxB,IAA1BA,IAAoCA,GAAwB,GAC5DzL,KAAK27F,eAAex4F,SACpBnD,KAAK27F,eAAex4F,QAAQs8F,kBAEhCz/F,KAAKmW,OAAO1C,YAAW,WACnBupF,EAAI35F,MAAMoI,EACd,GAAG,EACP,EACA8vF,EAAgB97F,UAAU8/F,kBAAoB,WACtCv/F,KAAKy7F,aAAat4F,SAClBnD,KAAKy7F,aAAat4F,QAAQ0oB,cAE1B7rB,KAAK07F,MAAMv4F,SACXnD,KAAK07F,MAAMv4F,QAAQ0oB,aAE3B,EACA0vE,EAAgB97F,UAAU4/F,sBAAwB,WAC9Cr/F,KAAK/E,MAAMq5F,gBAAgBhrF,SAAQ,SAAUi3E,GACrCA,EAAOsd,gBACPtd,EAAOsd,eAAetd,EAAOmf,aAErC,GACJ,EACAnE,EAAgB97F,UAAUm9F,eAAiB,SAAU3/C,EAAU8+C,EAAelwE,EAAa8xE,GACvF,IAAIrJ,EAAkBt0F,KAAKu+F,oBAAoBthD,EAAU8+C,EAAelwE,EAAa8xE,GACjFhM,EAAW3xF,KAAK1E,MAAMq2F,SACtBgO,EAAgBhO,GAAYA,EAASvpF,MAAQupF,EAASvpF,MAAQ,EAClE,OAAO,SAAS,QAAS,CAAC,EAAG2zF,GAAgB,CAAEzH,gBAAiBA,EAAiBgK,UAAWqB,GAChG,EAEApE,EAAgB97F,UAAU8+F,oBAAsB,SAAUthD,EAAU8+C,EAAelwE,EAAa8xE,GAC5F,IAcIrJ,EAdApyF,EAAQlC,KACR4/F,EAAW3iD,EAAS//B,MAAOm2E,EAAap2C,EAASo2C,WAAYtF,EAAgB9wC,EAAS8wC,cAAe4D,EAAW10C,EAAS00C,SACzHgO,EAAgBhO,GAAYA,EAASvpF,MAAQupF,EAASvpF,MAAQ,EAC9Dy3F,EAAa5iD,EAAS0sC,QACtBA,EAAU3pF,KAAK1E,MAAQ0E,KAAK1E,MAAMquF,QAAU,GAC5C2U,EAAYvC,EAAgBA,EAAcuC,WAAa,EACvDwB,EAAoB/D,EAAgBA,EAAc+D,uBAAoB/gG,EAC1E,OAAK8sB,GACDyyE,IAAcqB,GACdG,IAAsB/R,GACpBpE,GAAWkW,IAAelW,GAGhCkW,EAAaA,GA8Kd,SAAsB3iF,EAAO6iF,EAAkB9e,EAAe+e,EAAiB1c,EAAoB2c,EAAkBC,EAAahf,GACrI,IAAIyI,EAAU,GACd,GAAIzsE,GAASA,EAAMxhB,OAAQ,CACvB,IAAIykG,EAAYjjF,EAAM,GACtB,IAAK,IAAIkjF,KAAYD,EACbA,EAAU1hG,eAAe2hG,IACzBzW,EAAQhsF,KAAK,CACT+d,IAAK0kF,EACLpkG,KAAMokG,EACNC,UAAWD,EACXttE,SAAU4/D,EACVh/D,SAAU,IACV4sE,gBAAiB3W,EAAQjuF,OACzBwkG,aAAaA,EACbxd,SA5Le6d,YA4LeH,EAC9B9c,oBAAoB,EACpBkd,aAAa,EACbtf,kBAAoG,KAAkBuf,UACtHjV,YAhMsC,KAiMtCvK,cAjMesf,UAkMf5d,UAlMe4d,YAkMiBH,GAIhD,CACA,OAAOzW,CACX,CAxMmC4W,CAAaX,GAEpCvM,IAAe,KAAsBiF,cACrChE,EAAkBt0F,KAAK0gG,iBAAiBb,EAAYF,EAAe1iD,IAEnD3zC,SAAQ,SAAUi3E,GAC9Br+E,EAAM47F,yBAAyBvd,EAAQA,EAAOiD,gBAClD,KAGA8Q,EAAkBt0F,KAAK2gG,qBAAqBd,EAAYF,EAAe1iD,IACvD3zC,SAAQ,SAAUi3E,GAC9Br+E,EAAM0+F,mBAAmBrgB,EAAO7kE,KAAKgkF,aAAenf,EAAOiD,eAC/D,IAEG8Q,GAjBIuL,GAAc,EAkB7B,EAEAtE,EAAgB97F,UAAUihG,iBAAmB,SAAUb,EAAYF,EAAerkG,GAC9E,IAAI4G,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAG2zF,cAAeA,OAAuB,IAAPhsF,EAAgB/B,KAAKi8F,WAAWvI,KAAO3xF,EAAIksF,EAAqB7zF,EAAG6zF,mBAAoB4S,EAAazmG,EAAGymG,WAAYzO,EAAuBh4F,EAAGg4F,qBACrM0O,EAAiBnB,GAAiBkB,GAAc,GAChDE,EAAuB,EAC3BlB,EAAWv2F,SAAQ,SAAU61F,GACrB/M,IAAyB+M,EAAI77E,SAC7Bw9E,GAAkB3B,EAAIzrE,UAAYyrE,EAAIrsE,UAAY4/D,GAGlDoO,GAAkB3B,EAAIrsE,UAAY4/D,EAClCqO,GAAwB5B,EAAI77E,UAEhCw9E,GAAkBE,EAAe7B,EAAK7jG,GAAO,EACjD,IACA,IAAI2lG,EAAgBlT,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,OAAS,IAAiB,EAC5HyyE,EAAmBlhG,KAAKw/F,wBAA0B,IAElD2B,GADJL,GAAkBG,EAAgBC,GACGH,EAgBrC,OAdK3O,GACDyN,EAAWv2F,SAAQ,SAAUi3E,GACzB,IAAI6gB,GAAY,SAAS,QAAS,CAAC,EAAG7gB,GAASr+E,EAAMm8F,iBAAiB9d,EAAO7kE,MAC7E,GAAI0lF,EAAU99E,UAAY89E,EAAU1tE,SAAU,CAC1C,IAAI2tE,EAAYD,EAAU99E,SAAW69E,EAAgBC,EAAUtuE,SAC3DwuE,EAAcD,EAAYD,EAAU1tE,SACpC4tE,EAAc,IACdR,GAAkBQ,EAClBP,GAAyBO,GAAeD,EAAYD,EAAUtuE,UAAasuE,EAAU99E,SAE7F,CACJ,IAEJ69E,EAAgBL,EAAiB,EAAIA,EAAiBC,EAAuB,EACtElB,EAAWjkG,KAAI,SAAU2kF,GAC5B,IAAI6gB,GAAY,SAAS,QAAS,CAAC,EAAG7gB,GAASr+E,EAAMm8F,iBAAiB9d,EAAO7kE,MAE7E,OAAK02E,GAAwBgP,EAAU99E,UAAYw9E,GAAkB,GAGhEM,EAAU5d,mBACN4O,GAAwBgP,EAAU99E,UAEnC89E,EAAU5d,gBAAkB4d,EAAUtuE,SAAWsuE,EAAU99E,SAAW69E,EACtEC,EAAU5d,gBAAkB37E,KAAKugD,IAAIg5C,EAAU5d,gBAAiB4d,EAAU1tE,UAAY2gB,OAAOktD,YAG7FH,EAAU5d,gBAAkB4d,EAAU1tE,UAAY0tE,EAAUtuE,UAAY4/D,GATrE0O,CAaf,GACJ,EAEA7F,EAAgB97F,UAAUkhG,qBAAuB,SAAUd,EAAYF,EAAerkG,GAClF,IAAI4G,EAAQlC,KACR5F,EAAKkB,EAAMyyF,cAAeA,OAAuB,IAAP3zF,EAAgB4F,KAAKi8F,WAAWvI,KAAOt5F,EAAI6zF,EAAqB3yF,EAAM2yF,mBAAoBmE,EAAuB92F,EAAM82F,qBACjK6O,EAAgBlT,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,OAAS,IAAiB,EAC5HyyE,EAAmBlhG,KAAKw/F,wBAA0B,IAClD1jB,EAAa,EACb0lB,EAAe,EACfC,EAAiB9B,GAAiBsB,EAAgBC,GAClD5M,EAAkBuL,EAAWjkG,KAAI,SAAU2kF,EAAQzgF,GACnD,IAAI4hG,GAAa,SAAS,QAAS,CAAC,EAAGnhB,GAAS,CAAEiD,gBAAiBjD,EAAOztD,UAAY4/D,IAClF0O,GAAY,SAAS,QAAS,CAAC,EAAGM,GAAax/F,EAAMm8F,iBAAiB9d,EAAO7kE,MAMjF,OAJMgmF,EAAWpB,eAAiBoB,EAAWC,gBACzCH,GAAgBR,EAAeU,EAAYpmG,IAE/CwgF,GAAcklB,EAAeI,EAAW9lG,GACjC8lG,CACX,IACA,GAAIhP,EACA,OAAOkC,EAIX,IAFA,IAAIsN,EAAYtN,EAAgB54F,OAAS,EAElCkmG,GAAa,GAAK9lB,EAAa2lB,GAAgB,CAClD,IACI3uE,GADAytD,EAAS+T,EAAgBsN,IACP9uE,UAAY4/D,EAC9BmP,EAAgB/lB,EAAa2lB,EAEjC,GAAIlhB,EAAOiD,gBAAkB1wD,GAAY+uE,IAAmBthB,EAAO+f,gBAAiB/f,EAAOohB,cAAgB,CACvG,IAAIG,EAAgBvhB,EAAOiD,gBACvBge,EAAeC,IAEflhB,EAAOiD,gBAAkB37E,KAAKsgD,IAAIo4B,EAAOiD,gBAAkBqe,EAAe/uE,IAE9EgpD,GAAcgmB,EAAgBvhB,EAAOiD,eACzC,MAEI1H,GAAcklB,EAAezgB,EAAQjlF,GACrCg5F,EAAgB55E,OAAOknF,EAAW,GAEtCA,GACJ,CAEA,IAAK,IAAI9hG,EAAI,EAAGA,EAAIw0F,EAAgB54F,QAAUogF,EAAa2lB,EAAgB3hG,IAAK,CAC5E,IAAIygF,EAAS+T,EAAgBx0F,GACzBiiG,EAASjiG,IAAMw0F,EAAgB54F,OAAS,EACxCsmG,EAAYhiG,KAAKq+F,iBAAiB9d,EAAO7kE,KAC7C,IAAIsmF,IAAaA,EAAUxe,iBAAoBue,EAA/C,CAGA,IAAIE,EAAYR,EAAiB3lB,EAC7B3rC,OAAY,EAChB,GAAI4xD,EACA5xD,EAAY8xD,MAEX,CACD,IAAIvuE,EAAW6sD,EAAO7sD,SAClBZ,EAAWytD,EAAOztD,UAAYY,GAAYg/D,EAC9CviD,EAAYzc,EAAW7rB,KAAKugD,IAAI65C,EAAWvuE,EAAWZ,GAAYmvE,CACtE,CACA1hB,EAAOiD,gBAAkBjD,EAAOiD,gBAAkBrzC,EAClD2rC,GAAc3rC,CAZd,CAaJ,CACA,OAAOmkD,CACX,EACAiH,EAAgB97F,UAAUq+F,yBAA2B,SAAUvd,EAAQqd,GACnE,IAAIoE,EAAYhiG,KAAK4gG,mBAAmBrgB,EAAO7kE,KAC/CsmF,EAAUxe,gBAAkBoa,EAC5BoE,EAAUtC,aAAe9B,CAC7B,EACArC,EAAgB97F,UAAUmhG,mBAAqB,SAAUllF,GACrD,OAAQ1b,KAAKq+F,iBAAiB3iF,GAAO1b,KAAKq+F,iBAAiB3iF,IAAQ,CAAC,CACxE,EACA6/E,EAAgB97F,UAAUw9F,YAAc,SAAU1hF,EAAMgmE,GACpD,IAAIyS,EAASh0F,KAAK1E,MAAM04F,OACpBhqD,OAAUjrC,EAUd,OATIwc,IACAyuB,EAAUzuB,EAAKG,KAEfs4E,IACAhqD,EAAUgqD,EAAOz4E,EAAMgmE,IAEtBv3C,IACDA,EAAUu3C,GAEPv3C,CACX,EACAuxD,EAAgB5yF,aAAe,CAC3B0qF,WAAY,KAAsB6O,UAClCnU,cAAe,KAAcc,SAC7BmE,cAAe,KAAcwF,sBAC7BvK,mBAAoB,KAAmBkU,QACvC/O,iBAAiB,EACjBL,SAAS,EACT9tD,cAAc,IAEA,QAAW,CACzB8rD,GACDwK,EAEP,CA9hBoC,CA8hBlC,aA6BF,SAASyF,EAAezgB,EAAQjlF,EAAO8mG,GACnC,IAAIhoG,EAAKkB,EAAM+mF,eAAgBA,OAAwB,IAAPjoF,EAAgB,KAA2BA,EAC3F,OAASgoG,EAAc,EAAI7hB,EAAOiD,iBAC9BnB,EAAeoB,gBACfpB,EAAeqB,kBACdnD,EAAOsC,SAAWR,EAAesB,sBAAwB,EAClE,C,eC37BIjlE,EAAmB,CACnBjV,KAAM,iBACNspF,QAAS,0BACTmI,eAAgB,gCAChBD,cAAe,+BACf5C,QAAS,WACTE,wBAAyB,2BACzB8J,SAAU,gBCLHC,GAAc,EAAArjF,EAAA,GAAOs8E,GDOE,SAAUjgG,GACxC,IAAIlB,EAAI2H,EACJ7G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW26F,EAA0Bj9F,EAAMi9F,wBAAyBxF,EAAUz3F,EAAMy3F,QAASsF,EAAU/8F,EAAM+8F,QACpJr+E,EAAiB9e,EAAM8e,eACvBvc,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMiC,MACZ,CACIH,SAAU,WACVnH,MAAOC,EAAeuoF,SACtBn3F,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAMoY,OAAO/U,EAAW4kG,WAAa,CACpC1uE,UAAW,GACX6uE,UAAW,cAEfpoG,IAERi+F,GAAW56F,EAAW46F,QACtBtF,GAAW,CACPt1F,EAAWs1F,QACX,CACI3nF,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO/U,EAAW4kG,WAAa,CAClC1uE,UAAW,IAEf5xB,KAGZw2F,GAA2B,CACvB96F,EAAW86F,wBACX,CACI1zD,UAAW,OACXzB,UAAW,UACXq/D,wBAAyB,UAGjC7kG,GAEJ68F,UAAW,CACP,CACI15E,QAAS,eACT+R,SAAU,OACVa,UAAW,IAGnBsnE,cAAex9F,EAAWw9F,cAC1BC,eAAgBz9F,EAAWy9F,eAEnC,QCzDuEn8F,EAAW,CAC9E0iB,MAAO,e,kBCEJ,IAAIihF,EAYAC,EAWAC,EAYAC,EAeAC,E,sDAjDX,SAAWJ,GAEPA,EAAkBA,EAA4B,SAAI,GAAK,WAEvDA,EAAkBA,EAA6B,UAAI,GAAK,YAExDA,EAAkBA,EAA+B,YAAI,GAAK,aAC7D,CAPD,CAOGA,IAAsBA,EAAoB,CAAC,IAK9C,SAAWC,GAEPA,EAAcA,EAA6B,cAAI,GAAK,gBAEpDA,EAAcA,EAAqC,sBAAI,GAAK,uBAC/D,CALD,CAKGA,IAAkBA,EAAgB,CAAC,IAMtC,SAAWC,GAEPA,EAAsBA,EAA+B,QAAI,GAAK,UAE9DA,EAAsBA,EAA+B,QAAI,GAAK,UAE9DA,EAAsBA,EAA8B,OAAI,GAAK,QAChE,CAPD,CAOGA,IAA0BA,EAAwB,CAAC,IAKtD,SAAWC,GAIPA,EAAsBA,EAAoC,aAAI,GAAK,eAKnEA,EAAsBA,EAAiC,UAAI,GAAK,WACnE,CAVD,CAUGA,IAA0BA,EAAwB,CAAC,IAKtD,SAAWC,GAEPA,EAAmBA,EAA4B,QAAI,GAAK,UAExDA,EAAmBA,EAA2B,OAAI,GAAK,SAEvDA,EAAmBA,EAA2B,OAAI,GAAK,QAC1D,CAPD,CAOGA,IAAuBA,EAAqB,CAAC,G,gMC9CrCC,EAAmB,SAAUznG,GACpC,IAAIquF,EAAUruF,EAAMquF,QAASqZ,EAAgB1nG,EAAM0nG,cAAe5oG,EAAKkB,EAAM+mF,eAAgBA,OAAwB,IAAPjoF,EAAgB,KAA2BA,EAAImhB,EAAOjgB,EAAMigB,KAAMgmE,EAAYjmF,EAAMimF,UAAWnoC,EAAa99C,EAAM89C,WAAYk8C,EAAqBh6F,EAAMg6F,mBAAoBC,EAAkBj6F,EAAMi6F,gBAAiB0N,EAAqB3nG,EAAM4vC,cAAeg4D,EAAgB5nG,EAAM4nG,cAAepN,EAAyBx6F,EAAMw6F,uBAAwBqN,EAAc7nG,EAAM6nG,YAC1dC,EAAmB,WACnBC,EAAgBD,EAAiBjgG,UAAYigG,EAAiBjgG,QAAU,CAAC,GACzEqnC,EAAuB,eAAkB,SAAU84D,GACnD,IAAI/iB,EAAS+iB,EAAW/iB,OAAQgjB,EAAeD,EAAWC,aAAc3lG,EAAY0lG,EAAW1lG,UAAWwe,EAAWknF,EAAWlnF,SAAUonF,EAAYF,EAAW/nF,KAAMkoF,EAAiBH,EAAW/hB,UAC/Ln5E,OAA0C,IAA3Bm4E,EAAOiD,gBACpB,OACAjD,EAAOiD,gBACLnB,EAAeoB,gBACfpB,EAAeqB,kBACdnD,EAAOsC,SAAWR,EAAesB,sBAAwB,GAC9DjoE,EAAM,GAAGlJ,OAAO+tE,EAAO7kE,KAAKlJ,YAAwBzT,IAAjBwkG,EAA6B,IAAI/wF,OAAO+wF,GAAgB,IAC/F,OAAQ,gBAAoB,MAAO,CAAE7nF,IAAKA,EAAKnI,GAAIgtE,EAAOigB,YAAc2C,OAAcpkG,EAAWie,KAAMujE,EAAOigB,YAAc,YAAc,WAAY5iG,WAAW,EAAAsN,EAAA,GAAIq1E,EAAO3iF,UAAW2iF,EAAO2f,aAAe8C,EAAc9C,YAAa3f,EAAOigB,aAAewC,EAAcxC,YAAawC,EAAc7S,KAAM5P,EAAOsC,SAAWmgB,EAAcU,WAAaV,EAAcW,aAAc/lG,GAAYya,MAAO,CAAEjQ,MAAOA,GAAS,oBAAqB,iBAAkB,sBAAuBm4E,EAAO7kE,KAAOU,EAASonF,EAAWC,EAAgBljB,GAC/gB,GAAG,CAACyiB,EAAe3gB,EAAgB8gB,IACnC,OAAQ,gBAAoB,MAAO,CAAEvlG,UAAWolG,EAAcroG,OAAQ,oBAAqB,mBAAoBqiB,KAAM,gBAAkB2sE,EAAQ/tF,KAAI,SAAU2kF,GACzJ,IAAInmF,EAAKmmF,EAAOqjB,YAAaA,OAAqB,IAAPxpG,EAAgBm7F,EAAkBn7F,EACzEgiB,EAAY8mF,GAAiB3iB,EAAO7kE,OAAOwnF,GAAiB,WAAe,OAAOA,EAAc3iB,EAAO7kE,IAAO,GAC9G6kE,EAAOnkE,UACPk5E,GACAuO,EACA34D,EAAgBV,EAChB+1C,EAAOr1C,gBACPA,GAAgB,EAAA7uB,EAAA,GAAsBkkE,EAAOr1C,cAAeA,IAE5D+3D,IACA/3D,GAAgB,EAAA7uB,EAAA,GAAsB4mF,EAAoB/3D,IAE9D,IAAI44D,EAAmBT,EAAc9iB,EAAO7kE,KACxC6nF,EAAezN,GAA0B8N,EAAcA,EAAYroF,EAAMgmE,EAAWhB,QAAUxhF,EAC9FglG,GAAgB,EAKpB,YAJqBhlG,IAAjBwkG,QAAmDxkG,IAArB+kG,GAAkCP,IAAiBO,IACjFC,GAAgB,GAEpBV,EAAc9iB,EAAO7kE,KAAO6nF,EACrBr4D,EAAc,CACjB3vB,KAAMA,EACNgmE,UAAWA,EACXnoC,WAAYA,EACZmnC,OAAQA,EACRgjB,aAAcA,EACd3lG,UAAWmmG,EAAgBf,EAAcgB,mBAAgBjlG,EACzDqd,SAAUA,GAElB,IACJ,EACA,SAASynF,EAAgBtoF,EAAMU,EAAOskE,GAClC,OAAKhlE,GAASglE,EA9DA,SAAUhlE,EAAMglE,GAC9B,IAAI5wE,EAAQ4L,GAAQglE,GAAUA,EAAO8f,UAAY9kF,EAAKglE,EAAO8f,WAAa,GAI1E,OAHI1wF,UACAA,EAAQ,IAES,kBAAVA,EACAA,EAAM4J,WAEV5J,CACX,CAwDWs0F,CAAY1oF,EAAMglE,GAFd,IAGf,C,0DC1DI5mE,GAAgB,EAAAC,EAAA,KAEhB2tE,EAAa,GACb2c,EAAgC,SAAUpiG,GAE1C,SAASoiG,EAAe5oG,GACpB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA4CxC,OA3CAkC,EAAMC,MAAQ,cACdD,EAAMiiG,cAAgB,cACtBjiG,EAAMiY,WAAa,cACnBjY,EAAMorF,oBAAsB,WACxB,IAAI8W,EAAiBC,EAAkBniG,EAAM5G,QACxC,QAAe8oG,EAAgBliG,EAAMjH,MAAMmpG,iBAC5CliG,EAAM0T,SAAS,CAAEwuF,eAAgBA,GAEzC,EAYAliG,EAAM2lF,qBAAuB,SAAUn2E,EAAU9Q,GAC7C,IAAI0jG,EAAapiG,EAAMjH,MAAMqpG,WACzBlqG,EAAK8H,EAAM5G,MAAO23F,EAAiB74F,EAAG64F,eAAgB13E,EAAOnhB,EAAGmhB,KAC/D7J,EAKIuhF,EAAesR,cACpBriG,EAAMsiG,oBAAsBvR,EAAesR,YAAYhpF,EAAM3a,IALzDqyF,EAAewR,aACfxR,EAAewR,YAAYlpF,EAAM3a,GAMrC0jG,IAAe5yF,GACfxP,EAAM0T,SAAS,CAAE0uF,WAAY5yF,GAErC,GACA,EAAApJ,EAAA,GAAuBpG,GACvBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAMjH,MAAQ,CACVmpG,eAAgBC,EAAkB/oG,GAClCopG,uBAAmB3lG,EACnBulG,YAAY,GAEhBpiG,EAAMsiG,oBAAsB,GACrBtiG,CACX,CAgNA,OA/PA,QAAUgiG,EAAgBpiG,GAgD1BoiG,EAAejtF,yBAA2B,SAAU4sB,EAAWk4D,GAC3D,OAAO,SAAS,QAAS,CAAC,EAAGA,GAAgB,CAAEqI,eAAgBC,EAAkBxgE,IACrF,EACAqgE,EAAezkG,UAAU+J,kBAAoB,WACzC,IAAIpP,EAAK4F,KAAK1E,MAAOkpF,EAAiBpqF,EAAGoqF,eAAgByH,EAAY7xF,EAAG6xF,UAAW1wE,EAAOnhB,EAAGmhB,KAAM4+E,EAAa//F,EAAG+/F,WAC/G3V,GAAkBxkF,KAAKmC,MAAMgB,UAC7BnD,KAAK8kF,sBAAwBN,EAAesB,UAAU9lF,KAAKmC,MAAMgB,QAASnD,KAAKmsB,QAASnsB,KAAK2kG,2BAE7F1Y,GACAjsF,KAAKmsB,QAAQnZ,GAAGi5E,EAAW,KAAkBjsF,KAAKstF,qBAElD6M,GAAc5+E,IAEdvb,KAAK4kG,mBAAoB,EACzBzK,EAAWn6F,MAEnB,EACAkkG,EAAezkG,UAAUuK,mBAAqB,SAAU45B,GACpD,IAAI3oC,EAAQ+E,KAAK/E,MACbb,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAM4+E,EAAa//F,EAAG+/F,WACjDuK,EAAoBzpG,EAAMypG,kBAY9B,GAXI1kG,KAAK1E,MAAMimF,YAAc39C,EAAc29C,WACvCvhF,KAAK1E,MAAMigB,OAASqoB,EAAcroB,MAClCvb,KAAK1E,MAAMkpF,iBAAmB5gD,EAAc4gD,iBACxCxkF,KAAK8kF,wBACL9kF,KAAK8kF,sBAAsBv0E,iBACpBvQ,KAAK8kF,uBAEZ9kF,KAAK1E,MAAMkpF,gBAAkBxkF,KAAKmC,MAAMgB,UACxCnD,KAAK8kF,sBAAwB9kF,KAAK1E,MAAMkpF,eAAesB,UAAU9lF,KAAKmC,MAAMgB,QAASnD,KAAKmsB,QAASnsB,KAAK2kG,4BAG5GD,GAAqBA,EAAkBzoF,OAAS,GAAKjc,KAAKmkG,cAAchhG,QAAS,CACjF,IAAIu6F,EAAW19F,KAAKmkG,cAAchhG,QAAQ8K,wBAAwB7F,MAClEs8F,EAAkBG,cAAcnH,GAChC19F,KAAK4V,SAAS,CACV8uF,uBAAmB3lG,GAE3B,CACIwc,GAAQ4+E,IAAen6F,KAAK4kG,oBAC5B5kG,KAAK4kG,mBAAoB,EACzBzK,EAAWn6F,MAEnB,EACAkkG,EAAezkG,UAAU6K,qBAAuB,WAC5C,IAAIlQ,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAM6+E,EAAgBhgG,EAAGggG,cAEpDA,GAAiB7+E,GACjB6+E,EAAcp6F,MAEdA,KAAK8kF,wBACL9kF,KAAK8kF,sBAAsBv0E,iBACpBvQ,KAAK8kF,uBAEhB9kF,KAAKmsB,QAAQ5b,SACjB,EACA2zF,EAAezkG,UAAUm0D,sBAAwB,SAAU/vB,EAAW04D,GAClE,GAAIv8F,KAAK1E,MAAMu6F,sBAAuB,CAClC,IAAIiP,EAAoBT,EAAkBxgE,GAC1C,OAAI7jC,KAAK/E,MAAMmpG,eAAehrD,aAAe0rD,EAAkB1rD,cAGvD,QAAep5C,KAAK1E,MAAOuoC,EACvC,CAEI,OAAO,CAEf,EACAqgE,EAAezkG,UAAUxB,OAAS,WAC9B,IAAI7D,EACA2H,EAAK/B,KAAK1E,MAAOsC,EAAYmE,EAAGnE,UAAWoE,EAAKD,EAAG4nF,QAASA,OAAiB,IAAP3nF,EAAgBulF,EAAavlF,EAAIixF,EAAiBlxF,EAAGkxF,eAAgB13E,EAAOxZ,EAAGwZ,KAAMgmE,EAAYx/E,EAAGw/E,UAAWhuE,EAAKxR,EAAGwR,GAAItR,EAAKF,EAAGm4F,gBAAiBA,OAAyB,IAAPj4F,EAAgB,EAAIA,EAAIid,EAAKnd,EAAGgjG,cAAeA,OAAuB,IAAP7lF,EAAgBlf,KAAKglG,eAAiB9lF,EAAI8uE,EAA0BjsF,EAAGisF,wBAAyBsH,EAAqBvzF,EAAGuzF,mBAAoBpqD,EAAgBnpC,EAAGmpC,cAAeqqD,EAAkBxzF,EAAGwzF,gBAAiBxH,EAAgBhsF,EAAGgsF,cAAeE,EAAqBlsF,EAAGksF,mBAAoBuH,EAAkBzzF,EAAGyzF,gBAAiByP,EAAwBljG,EAAGkjG,sBAAuBxP,EAAwB1zF,EAAG0zF,sBAAuB4E,EAAYt4F,EAAGs4F,UAAW3E,EAAuB3zF,EAAG2zF,qBAAsBE,EAAwB7zF,EAAG6zF,sBAEh0BsP,EAAcnjG,EAAGmjG,YAAajZ,EAAYlqF,EAAGkqF,UAAW6B,EAAc/rF,EAAG+rF,YAAagI,EAAyB/zF,EAAG+zF,uBAAwB/C,EAAUhxF,EAAGgxF,QAAS73F,EAAQ6G,EAAG7G,MAAOG,EAAS0G,EAAG1G,OAAQ6nG,EAAgBnhG,EAAGmhG,cAAeja,EAAoBlnF,EAAGknF,kBAAmBx3D,EAAK1vB,EAAGkjC,aAAcA,OAAsB,IAAPxT,GAAuBA,EAAI4wD,EAAiBtgF,EAAGsgF,eAAgBsU,EAAQ50F,EAAG40F,MAAOt5E,EAAiBtb,EAAGsb,eAAgBqU,GAAK3vB,EAAG+B,SAAUA,QAAkB,IAAP4tB,IAAwBA,GAC7dC,GAAK3xB,KAAK/E,MAAOypG,GAAoB/yE,GAAG+yE,kBAAmBJ,GAAa3yE,GAAG2yE,WAC3E1yE,GAAK5xB,KAAK/E,MAAMmpG,eAAgB7xE,GAAKX,GAAGwnB,WAAYA,QAAoB,IAAP7mB,IAAwBA,GAAIC,GAAKZ,GAAGuzE,iBAAkBA,QAA0B,IAAP3yE,IAAwBA,GAClK0vD,GAAc+Q,KAAoBA,EAAe9N,UAAW8N,EAAe9N,QAAQ5pE,SAASxc,EAC5FqmG,GAAoBd,GAAatkG,KAAKwkG,qBA/HjB,cA+HqE,GAC1F1pF,GAAY06E,EAAkBA,EAAgBj6E,QAAQxc,EACtDsmG,GAAqBJ,EAAwBA,EAAsB1pF,QAAQxc,EAC3E8L,GAAkB4qF,EAAwBA,EAAsBl6E,QAAQxc,EACxEiwF,KAAc/C,GAAaA,EAAUqZ,cAAc/pF,EAAMgmE,KAAez9E,GACxEyhG,GAAwBxX,IAAkB,KAAcc,SACxD9F,GAAegF,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,OACjG+2E,GAAezX,IAAkB,KAAc39E,UAAOrR,EAAYq6C,GAClEpT,GAAoB2wD,EAAQpV,EAAYoV,EAAM1L,WAAa,OAAIlsF,EAC/DknC,GAAc0wD,EAAQA,EAAMvH,WAAQrwF,EACpCq7D,GAAqB/8C,EAAiBA,EAAelZ,UAAY,IAAmByB,WACxF5F,KAAKsc,aAAc,SAAS,QAAS,CAAC,EAAGtc,KAAKsc,aAAc3C,EAActe,EAAQ,CAC9EH,MAAOA,EACPk+C,WAAYA,GACZ41C,WAAYuW,GACZxW,YAAaoW,GACbvP,sBAAuBA,EACvBwP,kBAAmBA,GACnBxnG,UAAWA,EACXm1F,QAASA,EACT+C,uBAAwBA,EACxBzT,eAAgBA,EAChBv+E,SAAUA,MAEd,IAAIk/F,GAAgB,CAChB9C,YAAalgG,KAAKsc,YAAY4jF,YAC9BM,YAAaxgG,KAAKsc,YAAYkkF,YAC9BrQ,KAAMnwF,KAAKsc,YAAY6zE,KACvB6T,cAAehkG,KAAKsc,YAAY0nF,cAChCN,WAAY1jG,KAAKsc,YAAYonF,WAC7BC,aAAc3jG,KAAKsc,YAAYqnF,aAC/BhpG,OAAQqF,KAAKsc,YAAY3hB,SAMxB,QAAeqF,KAAKylG,gBAAkB,CAAC,EAAGzC,MAC3ChjG,KAAKylG,eAAiBzC,IAE1B,IAAI0C,GAAYR,GAAc,EAAAv7E,EAAA,GAAmBu7E,EAAanC,GAAoBA,EAC9E4C,GAAa,gBAAoBD,GAAW,CAAE1C,cAAehjG,KAAKylG,eAAgBtC,YAAa,GAAG3wF,OAAOe,EAAI,WAAY2vF,cAAeA,EAAevZ,QAASA,EAASpuE,KAAMA,EAAMgmE,UAAWA,EAAWnoC,WAAYA,GAAYwsD,kBAAmB7c,GAAe,EAAI,IAAME,EAAoB,EAAI,GAAIqM,mBAAoBA,EAAoBpqD,cAAeA,EAAeqqD,gBAAiBA,EAAiBO,uBAAwBA,EAAwBzT,eAAgBA,IAEndrlE,GAAOhd,KAAK1E,MAAM0hB,KAAOhd,KAAK1E,MAAM0hB,KADtB,MAElBhd,KAAK6lG,uBAAwB,EAAAr9F,EAAA,GAAM,0BAGnC,IAAIs9F,GAAenc,EAAQt7C,MAAK,SAAUkyC,GACtC,QAASA,EAAOigB,WACpB,IACIrjC,GAAiB,GAAG3qD,OAAOe,EAAI,cAAgBuyF,GAAe,IAAItzF,OAAOe,EAAI,WAAa,IAG1FwyF,GAAsB1L,EACpB,CAAC,EACD,CACE,aAAepR,GAAqBA,EAAoB,QAAMlqF,EAC9D,gBAAiBinC,GACjB,eAAgBC,IAExB,OAAQ,gBAAoBpkC,EAAA,GAAW,QAAS,CAAE,qBAAqB,IAAQ,QAAe7B,KAAK1E,MAAO,MAAwC,kBAAhB4mF,GAC5H,CACE,oBAAqBA,GACrBqB,UAAWrB,IAEb,CAAC,EAAI7kE,EAAgB0oF,GAAqB,CAAE5hG,UAAWi2D,GAAoB7uD,WAAYvL,KAAKmC,MAAOib,aAAcpd,KAAKma,WAAY6C,KAAMA,GAAM,aAAclC,GAAW,gBAAiBhX,SAAY/E,EAAW,mBAAoBsmG,GAAqBrlG,KAAK6lG,sBAAwBh7F,GAAiBjN,UAAWoC,KAAKsc,YAAY7S,KAAM,uBAAwB83E,EAAW,+BAA+B,EAAM,0BAA4E,QAAhDnnF,EAAK4F,KAAK1E,MAAM,kCAA+C,IAAPlB,EAAgBA,EAAM0J,SAAY/E,EAAY,kBAAmBwiF,EAAW,qBAAuCxiF,IAAtBinC,GAAkCu7C,EAAY2Y,OAAkBn7F,EAAW,oBAAqB,aAAc,gBAAiBymG,GAAc34F,gBAAgB,IAChuBw4F,GAAsB,gBAAoB,OAAQ,CAAE3pF,IAAK,cAAesB,KAAM,eAAgByR,QAAQ,EAAMlb,GAAIvT,KAAK6lG,uBAAyBR,IAAuB,KACrKtc,IAAiB,gBAAoB,MAAO,CAAE/rE,KAAM,WAAY,yBAAyB,EAAMpf,UAAWoC,KAAKsc,YAAY0pF,WAAajB,EAAc,CAClJxxF,GAAIA,EAAK,GAAGf,OAAOe,EAAI,kBAAexU,EACtC4pD,SAAUvP,GACV20C,cAAeA,EACfgB,YAAaoW,GACb,aAAczP,EACd,kBAAmBniF,EAAK4pD,QAAiBp+D,EACzCiwF,UAAWA,GACX+D,QAASA,EACTn1F,UAAWoC,KAAKsc,YAAY8oB,MAC5BlqC,MAAOA,EACP+zF,UAAWhB,IAAuB,KAAmBG,OACrDJ,wBAAyBA,EACzB/oD,aAAcA,KAElB,gBAAoBkqD,EAAA,EAAa,CAAErB,YAAaA,EAAa9wE,KAAM,WAAYoyE,MAA6B,IAAtBnG,GAA2B,EAAIA,IACrH1tE,GAAQoqF,GACRjB,IAAsB,gBAAoB,OAAQ,CAAE1nF,KAAM,eAAgBpf,WAAW,EAAAsN,EAAA,GAAIlL,KAAKsc,YAAY2pF,aAAcjmG,KAAKsc,YAAY6zE,MAAO7kF,IAAKtL,KAAKmkG,eACtJ,gBAAoBuB,GAAW,CAAE1C,cAAehjG,KAAKylG,eAAgBtC,YAAa,GAAG3wF,OAAOe,EAAI,WAAYo2E,QAAS,CAAC+a,GAAkBnkB,QAAShlE,KAAMA,EAAMgmE,UAAWA,EAAWqkB,kBAAmB7c,GAAe,EAAI,IAAME,EAAoB,EAAI,GAAKU,EAAQjuF,OAAQ45F,mBAAoBA,EAAoBC,gBAAiBA,KACjV,EAOA2O,EAAezkG,UAAUw+F,YAAc,SAAUhiF,EAAO4oF,GACpD,IAAIzqG,EAAK4F,KAAK1E,MAAMquF,QAASA,OAAiB,IAAPvvF,EAAgBmtF,EAAantF,EAChEmmF,GAAS,QAAS,CAAC,EAAGoJ,EAAQ1tE,IAClCskE,EAAOztD,SAAW,EAClBytD,EAAO7sD,SAAW,cACX6sD,EAAOiD,gBACdxjF,KAAK4V,SAAS,CACV8uF,kBAAmB,CACfzoF,MAAOA,EACPskE,OAAQA,EACRskB,cAAeA,IAG3B,EACAX,EAAezkG,UAAU4D,MAAQ,SAAUoI,GACvC,IAAIrR,EAEJ,YAD8B,IAA1BqR,IAAoCA,GAAwB,MACnB,QAAlCrR,EAAK4F,KAAKma,WAAWhX,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,MAAMoI,GAC3F,EACAy4F,EAAezkG,UAAUulG,eAAiB,SAAU1pG,GAChD,OAAO,gBAAoBqzF,EAAAC,GAAiB,QAAS,CAAC,EAAGtzF,GAC7D,EACA4oG,EAAezkG,UAAUklG,uBAAyB,WAC9C,IAAIvqG,EAAK4F,KAAK1E,MAAOigB,EAAOnhB,EAAGmhB,KAAMgmE,EAAYnnF,EAAGmnF,UAAW0R,EAAiB74F,EAAG64F,eAanF,MAZc,CACViT,SAFkH9rG,EAAGg7F,iBAGrHlQ,eAAgB3D,EAChB7mF,QAAS,CAAE2f,KAAMkB,EAAMU,MAAOslE,GAC9B4D,QAAS8N,EAAe9N,QACxBC,QAAS6N,EAAe7N,QACxBC,YAAa4N,EAAe5N,YAC5BC,gBAAiBtlF,KAAK6nF,qBACtBtC,OAAQ0N,EAAe1N,OACvBC,UAAWyN,EAAezN,UAC1BkK,WAAYuD,EAAevD,WAGnC,EACOwU,CACX,CAjQmC,CAiQjC,aAEF,SAASG,EAAkB/oG,GACvB,IAAIlB,EACAmnF,EAAYjmF,EAAMimF,UAAW0K,EAAY3wF,EAAM2wF,UACnD,MAAO,CACH7yC,cAAe6yC,aAA6C,EAASA,EAAUka,gBAAgB5kB,IAC/F4jB,oBAAwG,QAAlF/qG,EAAK6xF,aAA6C,EAASA,EAAUma,eAA4B,IAAPhsG,OAAgB,EAASA,EAAGsF,KAAKusF,IAEzJ,CCrRO,IAAI4P,GAAa,EAAA58E,EAAA,GAAOilF,EAAgB,UAAqBnlG,EAAW,CAC3E0iB,MAAO,c,sGCAA4kF,EAA6B,CACpC58F,KAAM,gBAENspF,QAAS,0BACT5C,KAAM,qBACN6T,cAAe,8BACfsC,UAAW,0BACXlhE,MAAO,sBACP6gE,aAAc,6BACdM,mBAAoB,2BACpBhB,sBAAuB,yBACvBnsD,WAAY,cACZotD,eAAgB,mBAChBhG,YAAa,gBACb7lG,OAAQ,wBAGD8rG,EAA2B,CAClChjB,gBAAiB,GACjBC,iBAAkB,EAClBC,sBAAuB,IAGhB+iB,EAAsB,CAC7BC,UAAW,GACXC,iBAAkB,IAGlBC,GAAS,SAAS,QAAS,CAAC,EAAGH,GAAsB,CAAEI,mBAAoB,GAAIC,0BAA2B,IACnGC,EAAsB,SAAU1rG,GACvC,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAAIC,EACpDz3B,EAAQI,EAAMJ,MAAOk+C,EAAa99C,EAAM89C,WAAY41C,EAAY1zF,EAAM0zF,UAAWoW,EAAoB9pG,EAAM8pG,kBAAmBoB,EAAiBlrG,EAAMkrG,eAAgB5Q,EAAwBt6F,EAAMs6F,sBAAuB7C,EAAUz3F,EAAMy3F,QAASn1F,EAAYtC,EAAMsC,UAAWqqC,EAAK3sC,EAAM+mF,eAAgBA,OAAwB,IAAPp6C,EAAgBw+D,EAA2Bx+D,EAAI6tD,EAAyBx6F,EAAMw6F,uBAAwBhyF,EAAWxI,EAAMwI,SACnbqb,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MACvCU,EAAiBX,EAAQW,eAAgBsR,EAAQjS,EAAQiS,MAAO1R,EAAmBP,EAAQO,iBAAkBqT,EAAiB5T,EAAQ4T,eAAgB1B,EAAelS,EAAQkS,aAAc7P,EAAcrC,EAAQqC,YAAa+P,EAAuBpS,EAAQoS,qBAC7P2W,EAAKhtC,EAAM8e,eAAgB0yB,EAAcxE,EAAGwE,YAAau6D,EAAmB/+D,EAAGg/D,YAC/EzpG,GAAa,QAAoB4oG,EAA4BnrG,GAC7DwrF,EAAS,CAETygB,kBAAmBrnF,EACnBsnF,gBAAiB1nF,EACjB2nF,kBAAmBj2E,EAEnBk2E,uBAAwB9lF,EACxB+lF,qBAAsBznF,EACtB0nF,uBAAwBz0E,EAExB00E,mBAAoBjmF,EACpBkmF,iBAAkB5nF,EAClB6nF,mBAAoBt2E,EAEpBu2E,wBAAyBpmF,EACzBqmF,sBAAuB/nF,EACvBgoF,wBAAyBv2E,EAEzBw2E,gBAAiBvmF,EACjBwmF,cAAeloF,EACfmoF,gBAAiB52E,EACjB62E,qBAAsB32E,GAStB42E,EAAiB,EACjB,QAAcjtG,EAAO,CACjBi1B,OAAQ,EACRjO,YAAawqB,EACbxc,aAAckB,EACd9P,kBAZmB,CACvBvZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,GASFivB,cAAe,SAEnB72B,EAAW27C,WACX,CACIr/B,MAAO2sE,EAAOghB,iBACd/hE,WAAY+gD,EAAOihB,mBACnB32B,aAAc,aAAax+D,OAAO4e,GAClChmB,WAAYhR,EAAK,CACT,WAAY,CACR8mB,SAAU,WACVH,QAAS,QACThZ,KAAM,EACNmH,OAAQ,EACRjH,OAAQ,EACR5C,KAAM,EACNI,MAAO,EACPuY,QAAS,GACT+yD,UAAW,aAAav+D,OAAO4e,KAGvCh3B,EAAG,IAAIoY,OAAO/U,EAAW0yF,KAAM,QAAQ39E,OAAO,IAAqB/I,OAAS,CACxEsQ,MAAOktF,EACP77F,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,iBAEXhY,IAGR3H,EAAG,WAAa,CACZurC,WAAY+gD,EAAOohB,wBACnB/tF,MAAO2sE,EAAOmhB,sBACdz8F,WAAYpJ,EAAK,CAAC,EAEdA,EAAG,MAAwB,CACvB2jC,WAAY,YACZv6B,WAAYnJ,EAAK,CAAC,EACdA,EAAG,IAAIuQ,OAAO/U,EAAW0yF,OAAS,CAC9Bp2E,MAAO,iBAEX9X,EAAG,IAAIuQ,OAAO/U,EAAW0yF,KAAM,QAAQ39E,OAAO,IAAqB/I,OAAS,CACxE2X,kBAAmB,OACnBrH,MAAO,iBAEX9X,IAGRD,EAAG,IAAIwQ,OAAO/U,EAAW+iG,cAAgB,CACrCzmF,MAAO2sE,EAAOkhB,wBACdx8F,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnF,MAAO,iBAEXmF,IAERld,IAGR5H,EAAG,WAAa,CACZurC,WAAY+gD,EAAOuhB,gBACnB78F,WAAYqmB,EAAK,CAAC,EAEdA,EAAG,IAAIjf,OAAO/U,EAAW0yF,OAAS,CAC9Bp2E,MAAO2sE,EAAOshB,cACd58F,WAAYsmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB3X,MAAO,gBACP3O,UAAW,CACP,MAAO,CACH2O,MAAO,mBAInB2X,IAGRD,EAAG,IAAIjf,OAAO/U,EAAW+iG,cAAgB,CACrCzmF,MAAO2sE,EAAOqhB,gBACd38F,WAAYumB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB5X,MAAO,iBAEX4X,IAGRF,EAAG,MAAwB,CACvBkU,WAAY,aAEhBlU,IAERr3B,EAAG,OAAwB,SAAS,QAAS,CAAEurC,WAAY,YAAa5rB,MAAO,kBAAmB,WAAiC,CAAE3O,UAAW,CACxI2kC,EAAG,CACCh2B,MAAO,oBAInB3f,EAAG,iBAAmB,CAClBurC,WAAY+gD,EAAOwhB,sBAEvB9tG,KAGRguG,EAAqB,CACrB3qG,EAAW8nG,sBACX,CACIh1E,WAAY,OACZ7Y,OAAQ,YAGZ2wF,EAAoB,CACpB10E,UAAWkzE,EAAOD,iBAClB3kF,OAAQ,GAERqmF,EAAoB,CACpB30E,UAAWkzE,EAAOD,iBAClBt5D,WAAYu5D,EAAOE,0BACnBl7D,cAAeg7D,EAAOE,0BACtB15D,YAAa,GAAG76B,OAAO6vE,EAAeoB,gBAAiB,OAEvD8kB,EAAoB,EACpB,QAAcrtG,EAAO,CAAEi1B,OAAQ,IAC/B1yB,EAAW0yF,KACX,CACIpvE,QAAS,eACTG,SAAU,WACVoP,UAAW,aACXqD,UAAWkzE,EAAOF,UAClB/xE,cAAe,MACfhW,WAAY,SACZ9B,SAAU,SACV+B,aAAc,WACdyuB,WAAYu5D,EAAOC,mBACnBj7D,cAAeg7D,EAAOC,mBACtBz5D,YAAa,GAAG76B,OAAO6vE,EAAeoB,gBAAiB,MACvDr4E,WAAYwmB,EAAK,CACT,aAAc,CACV8B,SAAU,SAGlB9B,EAnMU,+BAmMgB,QAAc12B,EAAO,CAAEi1B,OAAQ,EAAGjO,YAAaxC,EAAkBwQ,aAAckB,IACzGQ,IAERwnB,GAAc,CACVhuC,WAAYmnB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEoT,WAAY,YAAa5rB,MAAO,kBAAmB,WACzFwY,IAERwgE,GAAWuV,EACXxkG,GAAY,CAAE84B,QAAS,KAE3B,MAAO,CACHnzB,KAAM,CACFhM,EAAWgM,KACX,KAAoB++F,UACpBpD,EACAlqG,EAAMkkB,MAAMiC,MACZmlF,GAAkB/oG,EAAW+oG,gBAC7B,QAActrG,EAAO,CAAEgnB,YAAawqB,EAAaxc,aAAckB,IAC/D,CACI4/C,aAAc,aAAax+D,OAAOugB,GAClC4S,WAAY+gD,EAAO2gB,kBACnBttF,MAAO2sE,EAAO0gB,gBAEdrmF,QAAS,cACT+R,SAAU,OACVa,UAAWkzE,EAAOF,UAClB/nF,WAAY,SACZ8B,QAAS,EACT4P,UAAW,aACXsE,cAAe,MACfjF,UAAW,OACXvkB,WAAYonB,EAAK,CAAC,EACdA,EAAG,IAAIhgB,OAAO/U,EAAW8oG,mBAAoB,cAAgB,CACzDxlF,QAAS,QAEbyR,EAAG,WAAa,CACZmT,WAAY+gD,EAAO8gB,uBACnBztF,MAAO2sE,EAAO6gB,qBACdn8F,WAAYqnB,EAAK,CAAC,EACdA,EAAG,IAAIjgB,OAAO/U,EAAW+iG,cAAgB,CACrCzmF,MAAO2sE,EAAO4gB,wBAElB70E,EAAG,IAAIjgB,OAAO/U,EAAW0yF,KAAM,QAAQ39E,OAAO,IAAqB/I,OAAS,CACxEsQ,MAAOktF,GAEXx0E,IAERD,EAAG,YAAYhgB,OAAO/U,EAAW2nC,QAAU,CACvCxI,QAAS,GAEbpK,EAAG,IAAIhgB,OAAO,KAAyB,cAAcA,OAAO/U,EAAW2nC,QAAU,CAC7ExI,QAAS,GAEbpK,EAAG,mBAAqB,CACpB5C,WAAY,EACZtM,SAAU,GAEdkP,IAER4mB,GAAc+uD,GACbnZ,GAAaoZ,EACdrV,GAAWsV,EACXzqG,GAEJ+lG,aAAc,CACVn2D,aAAc,GAAGh7B,OAAO6vE,EAAeqB,iBAAkB,OAE7DggB,WAAY,CACRl2D,aAAc,GAAGh7B,OAAO6vE,EAAesB,sBAAwBtB,EAAeqB,iBAAkB,MAChGt4E,WAAYsnB,EAAK,CAAC,EACdA,EAAG,KAAKlgB,OAAO/U,EAAW6oG,YAAc,CACpC94D,aAAc,GAElB9a,IAERy9D,KAAMoY,EACNvE,cAAelO,GAA0B,KAAgB2S,cACzDxC,aAAc,CACVxoG,EAAWwoG,aACX,CACInpF,SAAU,UACV8B,WAAY,WAGpBonF,UAAW,CACPuC,EACA9qG,EAAW6oG,UACX1Q,EACA,CACIl1E,QAAS,EAIT4sB,WAAY,EACZxY,WAAY,EACZlF,WAAY,IAGpBj1B,OAAQ,CACJ8C,EAAW9C,OACX,CACIomB,QAAS,OACTC,WAAY,YAGpBw/E,YAAa,CACT/iG,EAAW+iG,YACX,CACIzmF,MAAO2sE,EAAOygB,kBACdvmF,SAAUxB,EAAMyB,OAAOD,UAE3Bw4B,GAAc,CACVr/B,MAAO2sE,EAAO+gB,mBACdpnF,WAAY,KAAYJ,SACxB7U,WAAYunB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB5Y,MAAO,iBAEX4Y,KAGZutE,YAAa,CACTqI,EACA,CACI3pF,WAAY,SACZ4jF,UAAW,aACX3jF,aAAc,SAGtBumB,MAAO,CAAC3nC,EAAW2nC,OAE3B,C,8FC1VIsjE,EAAmB,CACnBnjF,MAAO,KACPojF,MAAO,KACPC,MAAO,KACPC,GAAI,KACJC,GAAI,KACJ/4D,EAAG,KACHoyC,OAAQ,KACR16C,MAAO,KACPshE,SAAU,KACVznD,OAAQ,KACR3T,OAAQ,KACRuJ,MAAO,KACP8xD,GAAI,KACJC,GAAI,KACJxwD,GAAI,KACJywD,SAAU,KACV/J,IAAK,KACLgK,KAAM,KACNC,OAAQ,KACRC,IAAK,M,uDCfL1vF,GAAgB,EAAAC,EAAA,KA8BhB0vF,EAAY,QAAW,SAAUhuG,GACjC,OAAO,gBAAoB+pC,EAAA,EAAO,CAAEnqC,MAAOI,EAAMJ,MAAOmpB,QAAS/oB,EAAM+oB,QAASzmB,UAAWtC,EAAMsC,UAAWqnC,cAAc,GAC9H,IACA,SAASskE,EAAuBriE,GAC5B,OAAO,gBAAoB7B,EAAA,EAAO,CAAEhhB,QAAS6iB,EAAc7iB,SAC/D,CACA,SAASmlF,EAA2BtiE,GAChC,OAAO,gBAAoBoiE,EAAW,CAAEpuG,MAAOgsC,EAAchsC,MAAOmpB,QAAS6iB,EAAc7iB,SAC/F,CACO,IAAIsqE,GAAkB,EAAA1vE,EAAA,IAtCH,SAAU3jB,GAChC,IAAIlB,EAAKkB,EAAM2zF,UAAWA,OAAmB,IAAP70F,GAAwBA,EAAI2H,EAAKzG,EAAM0zF,UAAWA,OAAmB,IAAPjtF,GAAwBA,EAAIC,EAAK1G,EAAMyzF,YAAaA,OAAqB,IAAP/sF,GAAwBA,EAAIC,EAAK3G,EAAMqtD,SAAUA,OAAkB,IAAP1mD,GAAwBA,EAAI8rF,EAAgBzyF,EAAMyyF,cAAe7uE,EAAK5jB,EAAMwzF,SAAUA,OAAkB,IAAP5vE,GAAwBA,EAAIthB,EAAYtC,EAAMsC,UAAkDvC,GAAtBC,EAAMmuG,eAAyBnuG,EAAMD,QAAQH,EAAQI,EAAMJ,MAAO63F,EAAUz3F,EAAMy3F,QAAS/E,EAA0B1yF,EAAM0yF,wBAAyBv8D,EAAKn2B,EAAM2pC,aAAcA,OAAsB,IAAPxT,GAAuBA,EAChmBnJ,GAAc,QAAOhtB,EAAO,CAAC,YAAa,YAAa,cAAe,WAAY,gBAAiB,WAAY,YAAa,iBAAkB,SAAU,QAAS,UAAW,0BAA2B,iBACnMouG,EAAwBzkE,EAAeukE,EAA6BD,EACpElV,EAAmBrG,GACjB,EAAA3xE,EAAA,GAAsB2xE,EAAyB0b,GAC/CA,EACFjsG,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP8zF,UAAWA,EACXrmC,SAAUA,EACVomC,YAAaA,EACbnxF,UAAWA,EACXkxF,SAAUA,EACVG,UAAWA,EACX8D,QAASA,IAET4W,EAAuB,CACvBtlF,QAASskC,EACTztD,MAAOA,GAEP6P,EDGD,SAA+BqC,EAAS9R,EAAOsuG,GAClD,IAAIC,EAA+BnB,EAAwB,KAAM,KACjE,OAAO,QAAeptG,EAAOuuG,ECL4B,CAAC,aAAc,kBAAmB,oBDM/F,CCNmBC,CAAsB,EAAOxhF,GACxCyhF,EAAYhc,IAAkB,KAAcmJ,OAAS,QAAU,WACnE,OAAOlI,EAAa,gBAAoB,OAAO,QAAS,CAAC,EAAG1mE,EAAa,CAAEtL,KAAM+sF,EAE7EnsG,WAAW,EAAAsN,EAAA,GAAIzN,EAAWgM,KAAMhM,EAAW2nC,OAAQ,eAAgBujB,EAAU,yBAAyB,EAAM,oBAAqB,kBAAmB17C,UAAW,IAAMonF,EAAiBsV,IAE1L,gBAAoB,OAAO,QAAS,CAAC,EAAG5+F,EAAU,CAAEnN,WAAW,EAAAsN,EAAA,GAAIzN,EAAWgM,KAAMhM,EAAW2nC,SACnG,GAUyD,SAA0BrmC,EAAW,CAAE0iB,MAAO,oBAAqB,E,2FCzCxH/C,EAAmB,CACnBjV,KAAM,sBACN6lD,WAAY,kCACZw/B,SAAU,iCAEHkb,EAAmB,GACnBC,EAA2B,SAAU3uG,GAC5C,IAAIJ,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWkxF,EAAWxzF,EAAMwzF,SAAUnmC,EAAWrtD,EAAMqtD,SAAUomC,EAAczzF,EAAMyzF,YAAaC,EAAY1zF,EAAM0zF,UAAW+D,EAAUz3F,EAAMy3F,QAAS9D,EAAY3zF,EAAM2zF,UACjNxxF,GAAa,QAAoBihB,EAAkBxjB,GACnDyrG,EAAY,KAAoBA,UAAWC,EAAmB,KAAoBA,iBAClF13F,EAAS4/E,EAAW,KAAgBiE,EAAU6T,EAAmBD,EACjEH,EAAiBvX,GAAatmC,GAAYomC,EAC9C,MAAO,CACHtlF,KAAM,CAAChM,EAAWgM,KAAM7L,GACxBwnC,MAAO,EACF4pD,GAAavxF,EAAW6xD,WACzBw/B,GAAYrxF,EAAWqxF,UACvB,QAAc5zF,GACdA,EAAMkkB,MAAMiC,MACZ,IAAsBkkB,UACtB,CACIxkB,QAAS,OACTC,WAAY,SACZgC,eAAgB,SAChBtL,OAAQ,UACR4Y,UAAW,aACXsE,cAAe,MACf+Q,WAAY,OACZplB,gBAAiB,cACjB0B,OAAQ,OACR2a,QAAS4pE,EAAiB,EAAI,EAC9Bt3F,OAAQA,EACR9G,MAAO4hG,EACPtpF,QAAS,EACTI,OAAQ,IAGhBwuC,WAAY,GAEpB,C,sCCvCW46C,EAmBAC,E,8GCpBPzrF,EAAmB,CACnBjV,KAAM,uBACN2gG,eAAgB,4BAChBC,gBAAiB,6BACjBC,YAAa,0BAEbC,EAAiC,OACjCC,GAAmB,EAAA7jF,EAAA,KAAgB,WACnC,OAAO,QAAU,CACb,KAAM,CACFie,UAAW,eAAepyB,OAAO+3F,EAAgC,MAErE,OAAQ,CACJ3lE,UAAW,cAAcpyB,OAAO+3F,EAAgC,OAG5E,IACIE,GAAsB,EAAA9jF,EAAA,KAAgB,WACtC,OAAO,QAAU,CACb,OAAQ,CACJie,UAAW,eAAepyB,OAAO+3F,EAAgC,MAErE,KAAM,CACF3lE,UAAW,cAAcpyB,OAAO+3F,EAAgC,OAG5E,I,sBDxBA,SAAWL,GAIPA,EAAmBA,EAAyB,KAAI,GAAK,OAIrDA,EAAmBA,EAA2B,OAAI,GAAK,SAIvDA,EAAmBA,EAAwB,IAAI,GAAK,KACvD,CAbD,CAaGA,IAAuBA,EAAqB,CAAC,IAMhD,SAAWC,GAIPA,EAA8BA,EAAoC,KAAI,IAAM,OAI5EA,EAA8BA,EAAmC,IAAI,IAAM,MAI3EA,EAA8BA,EAAsC,OAAI,IAAM,QACjF,CAbD,CAaGA,IAAkCA,EAAgC,CAAC,IEnCtE,IAAIxwF,GAAgB,EAAAC,EAAA,KCDhB,EAAmB,CACnBnQ,KAAM,sBACNihG,cAAe,+BACfC,eAAgB,gCAChBC,iBAAkB,kCAClBC,kBAAmB,oCCHZC,GAAc,EAAA7rF,EAAA,IFGI,SAAU3jB,GAEnC,IAAI4T,EAAS5T,EAAM4T,OAAQ7T,EAASC,EAAMD,OAAQjB,EAAKkB,EAAM8M,MAAOA,OAAe,IAAPhO,EAAgB,OAASA,EAAIsqC,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MACpJuC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPgU,OAAQA,EACRw1B,YAAaA,IAEjB,OAAQ,gBAAoB,MAAO,CAAErsB,MAAO,CAAEjQ,MAAOA,EAAO0qB,SAA2B,iBAAV1qB,EAAqB,GAAGoK,OAAOpK,EAAO,MAAQ,QAAUxK,UAAWH,EAAWgM,MACvJ,gBAAoB,MAAO,CAAErB,MAAO,IAAK8G,OAAQ,IAAKtR,UAAWH,EAAWitG,eACxE,gBAAoB,OAAQ,CAAEvrG,EAAG,sCACrC,gBAAoB,MAAO,CAAEiJ,MAAO,IAAK8G,OAAQ,IAAKtR,UAAWH,EAAWktG,gBACxE,gBAAoB,OAAQ,CAAExrG,EAAG,sCACrC,gBAAoB,MAAO,CAAEiJ,MAAO,IAAK8G,OAAQ,IAAKtR,UAAWH,EAAWotG,mBACxE,gBAAoB,OAAQ,CAAE1rG,EAAG,sCACrC,gBAAoB,MAAO,CAAEiJ,MAAO,IAAK8G,OAAQ,IAAKtR,UAAWH,EAAWmtG,kBACxE,gBAAoB,OAAQ,CAAEzrG,EAAG,sCAC7C,ICfO,SAAmB7D,GACtB,IAAIlB,EAEA8U,EAAS5T,EAAM4T,OAAQw1B,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MACtE8e,EAAiB9e,EAAM8e,eACvB+wF,GAAmB,QAAoB,EAAkB7vG,GACzD8vG,EAAetmE,GAAe,CAAC,EAC/BumE,EAAqB,CACrB/pF,SAAU,WACVgqF,KAAMlxF,EAAe4rB,gBAEzB,MAAO,CACHn8B,KAAM,CACFshG,EAAiBthG,KACjBvO,EAAMkkB,MAAMyB,OACZ,CACI3R,OAAQ,GAAGsD,OAAOtD,EAAQ,MAC1BohB,UAAW,cACXpP,SAAU,WACViqF,eAAgB,QAChBC,kBAAmB,QACnBlpF,YAAalI,EAAe4rB,eAC5BnB,YAAa,EACbr5B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,SACb9W,UAAW,CACP,MAAO,CACH8/F,KAAM,YAIlB9wG,IAER4wG,GAEJN,cAAe,CACXK,EAAiBL,cACjB,CACI3iG,IAAK,IACL1C,KAAM,KAEV4lG,GAEJN,eAAgB,CACZI,EAAiBJ,eACjB,CACI5iG,IAAK,IACLtC,MAAO,KAEXwlG,GAEJJ,kBAAmB,CACfE,EAAiBF,kBACjB,CACI5iG,OAAQ,IACRxC,MAAO,KAEXwlG,GAEJL,iBAAkB,CACdG,EAAiBH,iBACjB,CACI3iG,OAAQ,IACR5C,KAAM,KAEV4lG,GAGZ,QC1E4DlsG,EAAW,CACnE0iB,MAAO,gBCFP,GAAgB,EAAA7H,EAAA,KCDhB,EAAmB,CACnBnQ,KAAM,sBCCC4hG,GAAa,EAAApsF,EAAA,IFGI,SAAU3jB,GAElC,IAAI4T,EAAS5T,EAAM4T,OAAQ7T,EAASC,EAAMD,OAAQjB,EAAKkB,EAAM8M,MAAOA,OAAe,IAAPhO,EAAgB,OAASA,EAAIsqC,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MACpJuC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACPgU,OAAQA,EACRw1B,YAAaA,IAEjB,OAAQ,gBAAoB,MAAO,CAAErsB,MAAO,CAAEjQ,MAAOA,EAAO0qB,SAA2B,iBAAV1qB,EAAqB,GAAGoK,OAAOpK,EAAO,MAAQ,QAAUxK,UAAWH,EAAWgM,MAC/J,ICXO,SAAmBnO,GACtB,IAAIlB,EAEA8U,EAAS5T,EAAM4T,OAAQw1B,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MACtE8e,EAAiB9e,EAAM8e,eAEvBgxF,EAAetmE,GAAe,CAAC,EACnC,MAAO,CACHj7B,KAAM,EAHa,QAAoB,EAAkBvO,GAIpCuO,KACjBvO,EAAMkkB,MAAMyB,OACZ,CACIN,gBAAiBvG,EAAe4rB,eAChC12B,OAAQ,GAAGsD,OAAOtD,EAAQ,MAC1BohB,UAAW,cACX66E,eAAgB,QAChBC,kBAAmB,QACnBlpF,YAAalI,EAAe4rB,eAC5Bx6B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmmB,gBAAiB,SACjB2B,YAAa,UAEjB9nB,IAER4wG,GAGZ,QC7B0DjsG,EAAW,CACjE0iB,MAAO,eCHP,EAAmB,CACnBhY,KAAM,wBACN6hG,IAAK,wBCDL,GAAgB,EAAA1xF,EAAA,KCCT2xF,GAAgB,EAAAtsF,EAAA,IDAI,SAAU3jB,GAErC,IAAI4T,EAAS5T,EAAM4T,OAAQ7T,EAASC,EAAMD,OAAQqpC,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MAC7FuC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACPgU,OAAQA,EACRw1B,YAAaA,IAEjB,OAAQ,gBAAoB,MAAO,CAAE9mC,UAAWH,EAAWgM,MACvD,gBAAoB,MAAO,CAAE+hG,QAAS,YAAapjG,MAAO8G,EAAQA,OAAQA,EAAQtR,UAAWH,EAAW6tG,KACpG,gBAAoB,OAAQ,CAAEnsG,EAAG,6MAC7C,IDTO,SAAmB7D,GACtB,IAAIlB,EAAI2H,EAEJmN,EAAS5T,EAAM4T,OAAQw1B,EAAcppC,EAAMopC,YAAaxpC,EAAQI,EAAMJ,MACtE8e,EAAiB9e,EAAM8e,eACvB+wF,GAAmB,QAAoB,EAAkB7vG,GACzD8vG,EAAetmE,GAAe,CAAC,EACnC,MAAO,CACHj7B,KAAM,CACFshG,EAAiBthG,KACjBvO,EAAMkkB,MAAMyB,OACZ,CACIzY,MAAO,GAAGoK,OAAOtD,EAAQ,MACzBA,OAAQ,GAAGsD,OAAOtD,EAAQ,MAC1B4jB,SAAU,GAAGtgB,OAAOtD,EAAQ,MAC5BohB,UAAW,cACX66E,eAAgB,QAChBC,kBAAmB,QACnBlpF,YAAalI,EAAe4rB,eAC5Bx6B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,UAEjB9nB,IAER4wG,GAEJM,IAAK,CACDP,EAAiBO,IACjB,CACIvqF,QAAS,QACTmqF,KAAMlxF,EAAe4rB,eACrBx6B,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmpG,KAAM,UAEVnpG,KAIpB,QE1CgEhD,EAAW,CAAE0iB,MAAO,kBCIhF,GAAgB,EAAA7H,EAAA,KA+BhB6xF,GAAmB,EAAA9kF,EAAA,KAAgB,SAAUiO,EAAejqB,EAAa+gG,EAAenrF,EAAiBomF,GACzG,IACIjiE,EADAinE,EAAMhF,GAAa+E,EAAgB/E,EAAY+E,EAAgB,EAoBnE,GAlBK92E,GAAmC,WAAlBA,EAMbA,GAAmC,QAAlBA,EACtB8P,EAAc,CACVknE,kBAAmB,GAAGp5F,OAAOm5F,EAAK,MAClCE,eAAgB,OAGfj3E,GAAmC,WAAlBA,IACtB8P,EAAc,CACVknE,kBAAmB,MACnBC,eAAgB,GAAGr5F,OAAOm5F,EAAK,QAdnCjnE,EAAc,CACVknE,kBAAmB,GAAGp5F,OAAOm5F,EAAM9jG,KAAKC,MAAM6jG,EAAM,GAAK,EAAG,MAC5DE,eAAgB,GAAGr5F,OAAOm5F,EAAM9jG,KAAKujF,KAAKugB,EAAM,GAAK,EAAG,OAe5DprF,EACA,OAAQ5V,GACJ,KAAKu/F,EAAmB/kE,OACpB,MAAO,CACH17B,MAAM,SAAS,QAAS,CAAC,EAAGi7B,GAAc,CAAExiB,YAAa3B,IACzD+qF,IAAK,CAAEJ,KAAM3qF,IAErB,KAAK2pF,EAAmBrzE,IACpB,MAAO,CACHptB,MAAM,SAAS,QAAS,CAAC,EAAGi7B,GAAc,CAAExiB,YAAa3B,EAAiBA,gBAAiBA,KAEnG,KAAK2pF,EAAmB4B,KACpB,MAAO,CACHriG,MAAM,SAAS,QAAS,CAAC,EAAGi7B,GAAc,CAAExiB,YAAa3B,IACzDmqF,cAAe,CAAEQ,KAAM3qF,GACvBoqF,eAAgB,CAAEO,KAAM3qF,GACxBqqF,iBAAkB,CAAEM,KAAM3qF,GAC1BsqF,kBAAmB,CAAEK,KAAM3qF,IAI3C,MAAO,CACH9W,KAAMi7B,EAEd,IClFI,EAAmB,CACnBj7B,KAAM,gCCCCsiG,GAAuB,EAAA9sF,EAAA,IFQI,SAAU3jB,GAC5C,IAAID,EAASC,EAAMD,OAAQjB,EAAKkB,EAAM8M,MAAOA,OAAe,IAAPhO,EAAgB,OAASA,EAAI4xG,EAAkB1wG,EAAM0wG,gBAAiBjqG,EAAKzG,EAAMqrG,UAAWA,OAAmB,IAAP5kG,EA4EjK,SAA8BiqG,GAwB1B,OAvB+BA,EAAgBpwG,KAAI,SAAU5C,GACzD,OAAQA,EAAQyD,MACZ,KAAKytG,EAAmB/kE,OACfnsC,EAAQkW,SACTlW,EAAQkW,OAASi7F,EAA8BhlE,QAEnD,MACJ,KAAK+kE,EAAmB4B,KACf9yG,EAAQkW,SACTlW,EAAQkW,OAASi7F,EAA8B2B,MAEnD,MACJ,KAAK5B,EAAmBrzE,IACf79B,EAAQkW,SACTlW,EAAQkW,OAASi7F,EAA8BtzE,KAI3D,OAAO79B,CACX,IACyCg2D,QAAO,SAAUD,EAAKk9C,GAC3D,OAAOA,EAAK/8F,QAAU+8F,EAAK/8F,OAAS6/C,EAAMk9C,EAAK/8F,OAAgB6/C,CACnE,GAAG,EAEP,CArGiLm9C,CAAqBF,GAAmB,IAAMjqG,EAAIC,EAAK1G,EAAMk1B,SAAUA,OAAkB,IAAPxuB,GAAwBA,EAAI9G,EAAQI,EAAMJ,MAAOqlB,EAAkBjlB,EAAMilB,gBACpU9iB,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACPs1B,SAAUA,IAEd,OAAQ,gBAAoB,MAAO,CAAEnY,MAAO,CAAEjQ,MAAOA,GAASxK,UAAWH,EAAWgM,MAExF,SAA6BuiG,EAAiBzrF,EAAiBomF,GAC3D,IAAIwF,EAAmBH,EAAmBA,EAAgBpwG,KAG1D,SAAU5C,EAASijB,GACf,IAAIxf,EAAOzD,EAAQyD,KAAM2vG,GAAe,QAAOpzG,EAAS,CAAC,SACrD47B,EAAgBw3E,EAAax3E,cAAe1lB,EAASk9F,EAAal9F,OAClE7T,EAASowG,EAAiB72E,EAAen4B,EAAMyS,EAAQqR,EAAiBomF,GAC5E,OAAQ3tG,EAAQyD,MACZ,KAAKytG,EAAmB/kE,OACpB,OAAO,gBAAoBomE,GAAe,QAAS,CAAE7vF,IAAKO,GAASmwF,EAAc,CAAE/wG,OAAQA,KAC/F,KAAK6uG,EAAmBrzE,IACpB,OAAO,gBAAoBw0E,GAAY,QAAS,CAAE3vF,IAAKO,GAASmwF,EAAc,CAAE/wG,OAAQA,KAC5F,KAAK6uG,EAAmB4B,KACpB,OAAO,gBAAoBhB,GAAa,QAAS,CAAEpvF,IAAKO,GAASmwF,EAAc,CAAE/wG,OAAQA,KAErG,IAAO,gBAAoByvG,EAAa,CAAE57F,OAAQi7F,EAA8B2B,OAChF,OAAOK,CACX,CApBgGE,CAAoBL,EAAiBzrF,EAAiBomF,GACtJ,ICdO,SAAmBrrG,GACtB,IAAIk1B,EAAWl1B,EAAMk1B,SAAUt1B,EAAQI,EAAMJ,MAE7C,MAAO,CACHuO,KAAM,EAFO,QAAoB,EAAkBvO,GAGpCuO,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIE,QAAS,OACTC,WAAY,SACZwP,SAAUA,EAAW,OAAS,SAC9BtP,SAAU,aAI1B,QChB8EniB,EAAW,CAAE0iB,MAAO,yB,sBCI9F,GAAgB,EAAA7H,EAAA,KAIT0yF,EAAc,cAAiB,SAAUhxG,EAAOgQ,GACvD,IAAIjQ,EAASC,EAAMD,OAAQ2wG,EAAkB1wG,EAAM0wG,gBAAiBtvG,EAAWpB,EAAMoB,SAAU0L,EAAQ9M,EAAM8M,MAAOxK,EAAYtC,EAAMsC,UAAW2uG,EAAsBjxG,EAAMixG,oBAAqBrxG,EAAQI,EAAMJ,MAAO4f,EAAYxf,EAAMwf,UAAW0xF,EAAgBlxG,EAAMkxG,cAAepyG,EAAKkB,EAAMmxG,aAAcA,OAAsB,IAAPryG,GAAwBA,EAAIsyG,EAAwBpxG,EAAMoxG,sBACvX3hG,GAAW,QAAezP,EAAO,MACjCmC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACPuxG,aAAcA,EACd7uG,UAAWA,EACX+uG,4BAb4B,IAc5BC,aAAcJ,GAAiBA,EAAcK,QAC7CC,iBAAkBN,GAAiBA,EAAcO,YACjDL,sBAAuBA,IAA0BH,IAEjDS,GAAgB,EAAAj8F,EAAA,GAAS,CACzBk8F,cAAe,IAEflrG,GAAK,EAAAqR,EAAA,KAAiBK,EAAa1R,EAAG0R,WAAYD,EAAezR,EAAGyR,aAIpExR,EAAK,WAAeyqG,GAAeS,EAAgBlrG,EAAG,GAAImrG,EAAmBnrG,EAAG,GAChForG,EAAe,CAAEhlG,MAAOA,GAAgB,QAe5C,OAdA,aAAgB,WACZ,GAAIqkG,IAAiBS,EAAe,CAChC,GAAIT,EAIA,OAHAO,EAAcC,cAAgBx5F,GAAW,WACrC05F,GAAiB,EACrB,GAhCoB,KAiCb,WAAc,OAAO35F,EAAaw5F,EAAcC,cAAgB,EAGvEE,GAAiB,EAEzB,CAEJ,GAAG,CAACV,IACI,gBAAoB,OAAO,QAAS,CAAC,EAAG1hG,EAAU,CAAEnN,UAAWH,EAAWgM,KAAM6B,IAAKA,KACxF4hG,GAAkB,gBAAoB,MAAO,CAAE70F,MAAO+0F,EAAcxvG,UAAWH,EAAW2sG,gBACvF,gBAAoB,MAAO,CAAExsG,UAAWH,EAAW4sG,kBACnDkC,GAA+C,gBAAoBR,EAAsB,CAAEC,gBAAiBA,EAAiBzrF,gBAAiBisF,GAAiBA,EAAc7mE,cACjLjpC,GAAY,gBAAoB,MAAO,CAAEkB,UAAWH,EAAW6sG,aAAe5tG,GAC9Eoe,IAAc2xF,GAAiB,gBAAoB,MAAO,CAAEzvF,KAAM,SAAU,YAAa,UACrF,gBAAoBqwF,EAAA,EAAe,KAC/B,gBAAoB,MAAO,CAAEzvG,UAAWH,EAAWuoB,kBAAoBlL,KACvF,IACAwxF,EAAY7xG,YAjDS,UCHd,IAAI6yG,GAAU,EAAAruF,EAAA,GAAOqtF,Gd2BrB,SAAmBhxG,GACtB,IAAIlB,EACAqyG,EAAenxG,EAAMmxG,aAAc7uG,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOyxG,EAA8BrxG,EAAMqxG,4BAA6BC,EAAetxG,EAAMsxG,aAAcE,EAAmBxxG,EAAMwxG,iBAAkBJ,EAAwBpxG,EAAMoxG,sBAClQ1yF,EAAiB9e,EAAM8e,eACvBvc,GAAa,QAAoBihB,EAAkBxjB,GACnDuqC,GAAQ,QAAOvqC,GACnB,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIK,SAAU,WACVhS,OAAQ,QAEZtR,GAEJwsG,eAAgB,CACZ3sG,EAAW2sG,eACX,CACIlpF,SAAU,WACVpE,SAAU,SACV8nB,UAAW,gBACXrkB,gBAAiBqsF,GAAgB5yF,EAAe+V,mBAChDu3D,WAAY,WAAW90E,OAAOm6F,EAA6B,MAC3DvhG,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEurC,WAAY,wSAAyS,WAC3VvrC,IAERqyG,GAAgB,CACZ7vE,QAAS,IACT1b,SAAU,WACVnZ,IAAK,IACLE,OAAQ,IACR5C,KAAM,IACNI,MAAO,KAEXinG,EACM,CACEthG,UAAW,CACP,mBAAoB,CAChBw5B,UAAW,mBAIrB,CACEx5B,UAAW,CACP,MAAO,CACHw5B,UAAW,oBAK/BylE,gBAAiB,CACb5sG,EAAW4sG,gBACX,CACInpF,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACN+C,MAAO,OACP8G,OAAQ,OACRy2B,WAAY,GAAGnzB,OAAOo6F,GAAgB5yF,EAAe+V,mBAAoB,yGAAyGvd,OAAOo6F,GAAgB5yF,EAAe+V,mBAAoB,kCAAkCvd,OAAOs6F,GAAoB9yF,EAAe2hC,YAAa,mCAAmCnpC,OAAOo6F,GAAgB5yF,EAAe+V,mBAAoB,iFACla6U,UAAW,eAAepyB,OAAO+3F,EAAgC,KACjEgD,kBAAmB,KACnBC,wBAAyB,cACzB9+B,mBAAoB,SACpB++B,wBAAyB,WACzBr9B,cAAe3qC,EAAQglE,IAAwBD,MAGvDF,YAAa,CACT7sG,EAAW6sG,YACX,CACIppF,SAAU,WACVnZ,IAAK,IACLE,OAAQ,IACR5C,KAAM,IACNI,MAAO,IACPm3B,QAAS,IACT+I,WAAY,OACZplB,gBAAiB,cACjB0B,OAAQ,OACRqlE,WAAY,WAAW90E,OAAOm6F,EAA6B,OAE/DF,GAAgB,CACZ7vE,QAAS,IACT1b,SAAU,WAGlB8E,iBAAkB,KAE1B,QcrHoDjnB,EAAW,CAC3D0iB,MAAO,Y,sBCIP,GAAgB,EAAA7H,EAAA,KAIhB8zF,EAA0C,SAAU5rG,GAEpD,SAAS4rG,EAAyBpyG,GAC9B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA+DxC,OA9DAkC,EAAMyrG,4BAA8B,SAAU1xF,EAAOg+E,GACjD,IAAI2T,EAA4B1rG,EAAM5G,MAAMsyG,0BACxCC,EAAsBD,EACpBA,EAA0B3T,EAAUh+E,EAAO/Z,EAAM4rG,kCACjD5rG,EAAM4rG,iCAAiC7T,GAC7C,OAAO,gBAAoBqT,EAAS,CAAEf,oBAAqBsB,GAC/D,EACA3rG,EAAM4rG,iCAAmC,SAAU7T,GAC/C,IAAItQ,EAAUsQ,EAAStQ,QAASoJ,EAAUkH,EAASlH,QAAShF,EAAgBkM,EAASlM,cAAeE,EAAqBgM,EAAShM,mBAAoB7zF,EAAK6/F,EAAS5X,eAAgBA,OAAwB,IAAPjoF,EAAgB,KAA2BA,EAC5OusG,EAAY,KAAoBA,UAAWC,EAAmB,KAAoBA,iBAElFmH,EAAYhb,EAAU6T,EAAmBD,EAAY,EACrDqH,EAAqB,GA+CzB,OA9CmBjgB,IAAkB,KAAc39E,MAAQ69E,IAAuB,KAAmBx/D,QAEjGu/E,EAAmBrwG,KAAK,gBAAoBouG,EAAsB,CAAErwF,IAAK,cAAeswF,gBAAiB,CAAC,CAAEvvG,KAAMytG,EAAmBrzE,IAAKzuB,MAAO,OAAQ8G,OAAQ6+F,OAErKpkB,EAAQrgF,SAAQ,SAAUi3E,EAAQ0tB,GAC9B,IAAIjC,EAAkB,GAClBkC,EAAa7rB,EAAeoB,gBAC5BpB,EAAeqB,iBACfnD,EAAOiD,iBACNjD,EAAOsC,SAAWR,EAAesB,sBAAwB,GAC9DqoB,EAAgBruG,KAAK,CACjBlB,KAAMytG,EAAmBrzE,IACzBzuB,MAAOi6E,EAAeoB,gBACtBv0E,OAAQ6+F,IAERxtB,EAAOC,YACPwrB,EAAgBruG,KAAK,CACjBlB,KAAMytG,EAAmB4B,KACzB1jG,MAAOm4E,EAAOiD,gBACdt0E,OAAQqxE,EAAOiD,kBAEnBwoB,EAAgBruG,KAAK,CACjBlB,KAAMytG,EAAmBrzE,IACzBzuB,MAAOi6E,EAAeqB,iBACtBx0E,OAAQ6+F,MAIZ/B,EAAgBruG,KAAK,CACjBlB,KAAMytG,EAAmB4B,KACzB1jG,MAhDe,IAgDRm4E,EAAOiD,gBACdt0E,OAlDK,IAoDT88F,EAAgBruG,KAAK,CACjBlB,KAAMytG,EAAmBrzE,IACzBzuB,MAAOi6E,EAAeqB,kBACjBnD,EAAOiD,gBAtDG,IAsDejD,EAAOiD,kBAChCjD,EAAOsC,SAAWR,EAAesB,sBAAwB,GAC9Dz0E,OAAQ6+F,KAGhBC,EAAmBrwG,KAAK,gBAAoBouG,EAAsB,CAAErwF,IAAKuyF,EAAW7lG,MAAO,GAAGoK,OAAO07F,EAAY,MAAOlC,gBAAiBA,IAC7I,IAGAgC,EAAmBrwG,KAAK,gBAAoBouG,EAAsB,CAAErwF,IAAK,SAAUtT,MAAO,OAAQ4jG,gBAAiB,CAAC,CAAEvvG,KAAMytG,EAAmBrzE,IAAKzuB,MAAO,OAAQ8G,OAAQ6+F,OACpK,gBAAoB,MAAO,CAAE11F,MAAO,CAAE0I,QAAS,SAAYitF,EACtE,EACA9rG,EAAMisG,cAAgB7yG,EAAM8yG,aAAe,IAAI9xG,MAAMhB,EAAM8yG,cAAgB,IAAI9xG,MApE3D,IAqEb4F,CACX,CAaA,OA/EA,QAAUwrG,EAA0B5rG,GAmEpC4rG,EAAyBjuG,UAAUxB,OAAS,WACxC,IAAI7D,EAAK4F,KAAK1E,MAAO+yG,EAAoBj0G,EAAGi0G,kBAAmBC,EAAgBl0G,EAAGk0G,cAAepxF,EAAQ9iB,EAAG8iB,MAAO+2E,EAAY75F,EAAG65F,UAAqEsa,GAA9Bn0G,EAAGwzG,0BAAiDxzG,EAAGm0G,qBAAqDlzG,GAAjBjB,EAAGg0G,aAAuBh0G,EAAGiB,QAAQH,EAAQd,EAAGc,MAAO24F,EAAmBz5F,EAAGy5F,iBAAkB2a,EAAsBp0G,EAAGo0G,oBAAqBC,GAAY,QAAOr0G,EAAI,CAAC,oBAAqB,gBAAiB,QAAS,YAAa,4BAA6B,sBAAuB,eAAgB,SAAU,QAAS,mBAAoB,wBAC5kBs0G,EAAgBza,GAAaA,EAAUr2F,UAC3CoC,KAAKsc,YAAc,EAAcjhB,EAAQ,CACrCH,MAAOA,IAEX,IAAIyzG,GAAe,SAAS,QAAS,CAAC,EAAG1a,GAAY,CAGjDr2F,UAAW0wG,IAAkBC,GAAsB,EAAArjG,EAAA,GAAIlL,KAAKsc,YAAY7S,KAAMilG,GAAiBA,IACnG,OAAQ,gBAAoBpM,EAAA,GAAa,QAAS,CAAC,EAAGmM,EAAW,CAAEpzG,OAAQgzG,EAAmBnxF,MAAOoxF,EAAgBtuG,KAAKmuG,cAAgBjxF,EAAOi2E,kBAAmBmb,EAAeza,iBAAmBya,GAAiBE,GAAwB3a,EAAkBwB,oBAAqBr1F,KAAK2tG,4BAA6B1Z,UAAW0a,IACvU,EACOjB,CACX,CAjF6C,CAiF3C,aC1FSkB,GAAuB,EAAA3vF,EAAA,GAAOyuF,GCHE,SAAUpyG,GACjD,IACI6jB,EADQ7jB,EAAMJ,MACEikB,QACpB,MAAO,CACH1V,KAAM,CACFyX,SAAU,WACV9V,UAAW,CACP,SAAU,CACN4S,QAAS,KACTkD,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EAEN6tC,gBAAiB,+CAA+C1gC,OAAO2M,EAAQ0vF,mBAAoB,SAASr8F,OAAO2M,EAAQiS,MAAO,aAKtJ,QDjBkGryB,EAAW,CAAE0iB,MAAO,wB,yIEGlH9H,GAAgB,EAAAC,EAAA,KAEhBk1F,EAAoB,CACpBC,eAAe,EACfC,YAAY,EACZpxG,UAAW,GACXqxG,mBAAoB,GACpBC,gBAAgB,EAChBC,0BAA0B,GAE1BC,EAA4B,CAC5B3yG,KAAM,IAAW4yG,OACjBzxG,UAAW,GACX0xG,gBAAiB,IAGjBC,EAA4B,SAAUztG,GAEtC,SAASytG,EAAWj0G,GAChB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAuCxC,OAtCAkC,EAAMstG,cAAgB,WAElB,IAAIp1G,EAAK8H,EAAM5G,MAAOm0G,EAAoBr1G,EAAGq1G,kBAAmBC,EAAat1G,EAAGs1G,WAAYC,EAAqBv1G,EAAGu1G,mBAAoBC,EAAUx1G,EAAGw1G,QACjJr8F,EAAMm8F,GAAcA,EAAWG,gBAAmBJ,EAItD,OAHKl8F,IACDA,GAAOo8F,GAAsBA,EAAmBC,SAAYA,IAAY1tG,EAAM4tG,mBAE3Ev8F,CACX,EACArR,EAAM6tG,gBAAkB,WAEpB,IAAI31G,EAAK8H,EAAM5G,MAAO00G,EAAmB51G,EAAG41G,iBAAkBN,EAAat1G,EAAGs1G,WAAYC,EAAqBv1G,EAAGu1G,mBAAoBrpF,EAAQlsB,EAAGksB,MAC7I/S,EAAMm8F,GAAcA,EAAWO,aAAgBD,EAInD,OAHKz8F,IACDA,GAAOo8F,GAAsBA,EAAmBrpF,OAAUA,IAAUpkB,EAAMguG,qBAEvE38F,CACX,EACArR,EAAMqG,KAAM,EAAAC,EAAA,GAAM,UAClBtG,EAAMguG,oBAAsBhuG,EAAMqG,IAAM,SACxCrG,EAAM4tG,kBAAoB5tG,EAAMqG,IAAM,WAkB/BrG,CACX,CAyCA,OAnFA,QAAUqtG,EAAYztG,GA2CtBytG,EAAW9vG,UAAUxB,OAAS,WAC1B,IAAI7D,EAAI2H,EAAIC,EAQRmuG,EACAC,EARA90G,EAAQ0E,KAAK1E,MAGjBsC,EAAYtC,EAAMsC,UAAWqxG,EAAqB3zG,EAAM2zG,mBAAoBoB,EAAmB/0G,EAAM+0G,iBAAkBC,EAA0Bh1G,EAAMg1G,wBAAyBC,EAAyBj1G,EAAMi1G,uBAAwBC,EAAuBl1G,EAAMk1G,qBAAsBn1G,EAASC,EAAMD,OAAQozB,EAASnzB,EAAMmzB,OAAQxsB,EAAK3G,EAAMm1G,oBAAqBA,OAA6B,IAAPxuG,EAAgB3G,EAAMo1G,uBAAyBzuG,EAAI+sG,EAAa1zG,EAAM0zG,WAAYlvB,EAA8BxkF,EAAMwkF,4BAA6BivB,EAAgBzzG,EAAMyzG,cAAe7vF,EAAK5jB,EAAMqhD,OAAQA,OAAgB,IAAPz9B,GAAiBuP,EAASvP,EAAI4K,EAAYxuB,EAAMwuB,UAAW6mF,EAAcr1G,EAAMq1G,YAAaC,EAAkBt1G,EAAMs1G,gBAAiBj3C,EAAiBr+D,EAAMq+D,eAAgBi2C,EAAUt0G,EAAMs0G,QAAS10G,EAAQI,EAAMJ,MAAOorB,EAAQhrB,EAAMgrB,MAAOgpF,EAAkBh0G,EAAMg0G,gBAAiB7yG,EAAOnB,EAAMmB,KAEv3Bq2B,EAAWx3B,EAAMw3B,SAAUY,EAAWp4B,EAAMo4B,SAAUg8E,EAAap0G,EAAMo0G,WACrEmB,GAAmB,QAAS,CAAED,gBAAiBA,GAAmBlB,aAA+C,EAASA,EAAW3qE,aAKpI2qE,aAA+C,EAASA,EAAWU,gBAAoD,QAAjCh2G,EAAKs1G,EAAWU,mBAAgC,IAAPh2G,OAAgB,EAASA,EAAG02G,sBAG5JX,EAA2B,8BAD3BC,GAAc,QAAS,CAAC,EAAGV,EAAWU,cAE1BU,mBAAqB,IAAIt+F,OAAO29F,IAEhD,IAAIY,GAAmB,SAAS,SAAS,SAAS,QAAS,CAAC,EAAGjC,GAAoB,CAAEwB,wBAAyBA,EAAyBC,uBAAwBA,EAAwBC,qBAAsBA,EAAsBC,oBAAqBA,EAAqB3wB,4BAA6BA,EAA6BnmB,eAAgBA,EAAgB/7D,UAAWA,EAAWqxG,mBAAoBA,EAAoBD,WAAYA,EAAYD,cAAeA,EAAe4B,YAAaA,IAAgBjB,GAAa,CAAEU,YAAaA,EAAarrE,WAAY8rE,EAAkBl0D,OAAQA,IACnkBgzD,GAAqB,SAAS,SAAS,QAAS,CAAE/xG,UAAWyyG,EAAkBT,QAASA,EAAStpF,MAAOA,EAAOgpF,gBAAiBA,EAAiB7yG,KAAMA,GAAQ2yG,GAA4B9zG,EAAMq0G,oBAAqB,CAAEqB,yBAA0Bb,EAA0Bc,YAAY,QAAS,CAE7R19F,IAAyC,QAAnCxR,EAAKzG,EAAMq0G,0BAAuC,IAAP5tG,OAAgB,EAASA,EAAGmvG,UAAYlxG,KAAKkwG,qBAA2D,QAAnCluG,EAAK1G,EAAMq0G,0BAAuC,IAAP3tG,OAAgB,EAASA,EAAGivG,cACjMxzG,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWmzG,EAAiBnzG,UAC5BqxG,mBAAoB8B,EAAiB9B,mBACrCxgF,OAAQA,EACR0iF,sBAAuBr+E,EACvBs+E,sBAAuB19E,IAE3B,OAAQ,gBAAoB29E,EAAA,GAAO,QAAS,CAAC,EAAGN,EAAkB,CAAEnzG,UAAWH,EAAWgM,KAAMwlG,mBAAoBxxG,EAAW6zG,KAAMxnF,UAAWA,GAAainF,EAAiBjnF,UAAW+lF,eAAgB7vG,KAAKwvG,gBAAiBS,YAAajwG,KAAK+vG,oBAC7O,gBAAoBwB,EAAA,GAAe,QAAS,CAAEC,UAAWxxG,KAAK8vG,kBAAmBj+B,gBAAiBk/B,EAAiB/B,WAAYllF,UAAWA,GAAa6lF,GAAqBr0G,EAAMoB,UAC1L,EACA6yG,EAAW5mG,aAAe,CACtB8lB,QAAQ,IAEC,QAAW,CACpBgjF,EAAA,IACDlC,EAEP,CArF+B,CAqF7B,a,WC1GE7wF,EAAmB,CACnBjV,KAAM,aCCCioG,GAAS,EAAAzyF,EAAA,GAAOswF,GDCJ,SAAUj0G,GAC7B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAWqxG,EAAqB3zG,EAAM2zG,mBAC5DltG,EAAKzG,EAAM61G,sBACXA,OAA+B,IAAPpvG,EAAgB,QAAUA,EAAIC,EAAK1G,EAAM81G,sBAAuBA,OAA+B,IAAPpvG,EAAgB,QAAUA,EAAIysB,EAASnzB,EAAMmzB,OAAQvzB,EAAQI,EAAMJ,MAEnL,MAAO,CACHuO,KAAM,EAFO,QAAoBiV,EAAkBxjB,GAEjCuO,KAAMvO,EAAMkkB,MAAMyB,OAAQjjB,GAC5C0zG,KAAM,CACF,CACIlpG,MAAO+oG,EACP9lG,QAAS,wBACTD,WAAYhR,EAAK,CAAC,EACdA,EAAG,sBAAsBoY,OAAO,KAAsB,QAAU,CAC5DpK,MAAO,OACPsrB,SAAU09E,EACVt+E,SAAUq+E,GAEd/2G,KAEPq0B,GAAU,CAAE1N,QAAS,QACtBkuF,GAGZ,QCzBkDlwG,EAAW,CAAE0iB,MAAO,WACtEiwF,EAAOj3G,YAAc,Q,gKCGjBkf,GAAgB,EAAAC,EAAA,KAChB+3F,EAAoB,gBAAoBC,EAAA,EAAc,MAAOn1G,KAG7Do1G,EAAmC,SAAU/vG,GAE7C,SAAS+vG,EAAkBv2G,GACvB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAKxC,OAJA,EAAAsI,EAAA,GAAuBpG,IACvB,EAAAsqB,EAAA,GAPa,gBAOoBlxB,EAAO,CACpC41G,QAAS,kBAENhvG,CACX,CAwDA,OAhEA,QAAU2vG,EAAmB/vG,GAS7B+vG,EAAkBpyG,UAAUxB,OAAS,WACjC,IAWI6zG,EAXA13G,EAAK4F,KAAK1E,MAAOu2E,EAAkBz3E,EAAGy3E,gBAAiBj0E,EAAYxD,EAAGwD,UAAW4jE,EAAuBpnE,EAAGonE,qBAAsB13C,EAAY1vB,EAAG0vB,UAAW0nF,EAAYp3G,EAAGo3G,UAAW5B,EAAUx1G,EAAGw1G,QAAS7tG,EAAK3H,EAAG62G,WAAYA,OAAoB,IAAPlvG,EAAgB,CAAC,EAAIA,EAErQmvG,EAAU92G,EAAG82G,QAAS5qF,EAAQlsB,EAAGksB,MAAO7pB,EAAOrC,EAAGqC,KAAMpB,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO81G,EAA2B52G,EAAG42G,yBACxHvzG,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXm0G,cAAet1G,IAAS,IAAWu1G,YACnCC,QAASx1G,IAAS,IAAWy1G,MAC7BlB,yBAA0BA,IAE1BmB,EAAYnyG,KAAKoyG,iBAKrB,OAHIxC,IACAkC,EAAkB,gBAAoB,IAAK,CAAEl0G,UAAWH,EAAWmyG,QAASr8F,GAAIi+F,GAAa5B,IAEzF,gBAAoB,MAAO,CAAEhyG,UAAWH,EAAWugB,SACvD,gBAAoB,MAAO,CAAEpgB,UAAWH,EAAWi/C,QAC/C,gBAAoB,OAAO,QAAS,CAAEnpC,GAAI29F,EAASl0F,KAAM,UAAW,aAAc,GAAKi0F,EAAY,CAAErzG,WAAW,EAAAsN,EAAA,GAAIzN,EAAW6oB,MAAO2qF,EAAWrzG,aAAe0oB,GAChK,gBAAoB,MAAO,CAAE1oB,UAAWH,EAAW40G,WAC/CryG,KAAK1E,MAAMg0G,gBAAgB1zG,KAAI,SAAUN,EAAO2gB,GAAS,OAAQ,gBAAoBY,EAAA,GAAY,QAAS,CAAEnB,IAAKpgB,EAAMg3G,UAAYr2F,GAAS3gB,GAAU,KACrJmB,IAAS,IAAWy1G,OAAUrgC,GAAmBp1E,IAAS,IAAWu1G,cAAkB,gBAAoBn1F,EAAA,EAAY,CAAEjf,UAAWH,EAAW0kF,OAAQzlE,UAAW,CAAED,SAAU,UAAY3B,UAAW0mD,EAAsB1oD,QAASgR,MAC7O,gBAAoB,MAAO,CAAElsB,UAAWH,EAAW80G,OAC/C,gBAAoB,MAAO,CAAE30G,UAAWH,EAAW+0G,cAC/CV,EACAK,EAAUM,UACdN,EAAUO,SACtB,EAIAb,EAAkBpyG,UAAU2yG,eAAiB,WACzC,IAAID,EAAY,CACZO,QAAS,GACTD,SAAU,IAUd,OARA,WAAe72G,IAAIoE,KAAK1E,MAAMoB,UAAU,SAAUhE,GACzB,iBAAVA,GAAgC,OAAVA,GAAkBA,EAAM+D,OAASk1G,EAC9DQ,EAAUO,QAAQ/0G,KAAKjF,GAGvBy5G,EAAUM,SAAS90G,KAAKjF,EAEhC,IACOy5G,CACX,EACAN,EAAkBlpG,aAAe,CAC7BkpE,iBAAiB,EACjBj0E,UAAW,GACX0xG,gBAAiB,GACjB9tC,qBAAsB,UAEN,QAAW,CAC3BiwC,EAAA,IACDI,EAEP,CAlEsC,CAkEpC,a,WC5EEnzF,EAAmB,CACnBi0F,gBAAiB,qBACjBT,MAAO,mBACPtC,QAAS,oBACTlzD,OAAQ,mBACRk2D,SAAU,sBACVzwB,OAAQ,2CACRowB,MAAO,kBACPv0F,QAAS,oBACTsI,MAAO,mBCPAirF,GAAgB,EAAAtyF,EAAA,GAAO4yF,GDSX,SAAUv2G,GAC7B,IAAIlB,EAAI2H,EAAIC,EACRpE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO62G,EAAgBz2G,EAAMy2G,cAAeE,EAAU32G,EAAM22G,QAASxjF,EAASnzB,EAAMmzB,OAAQyxE,EAAc5kG,EAAM4kG,YAAa8Q,EAA2B11G,EAAM01G,yBACzM7xF,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAAOyQ,EAAU30B,EAAM20B,QAAS7V,EAAiB9e,EAAM8e,eAC9Fvc,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACH8iB,QAAS,CACL+zF,GAAiB,CACbt0G,EAAWk1G,gBACX,CACI5hC,UAAW,aAAav+D,OAAO2M,EAAQiD,gBAG/C6vF,GAAWx0G,EAAWy0G,MACtB,CACI5uF,SAAU,EACV8f,UAAW,UAEfxlC,GAEJgyG,QAAS,CACLnyG,EAAWmyG,QACXxwF,EAAMyB,OACN,CACIC,OAAQ,aACR/G,MAAOC,EAAeogC,YACtBz5B,WAAY,MACZi5B,SAAU,aACVv5B,WAAY,KAAYT,UAGhC88B,OAAQ,CACJj/C,EAAWi/C,OACX,CACIx7B,SAAU,WACV9Y,MAAO,OACPkoB,UAAW,cAEf2hF,GAAWx0G,EAAWy0G,MACtBlB,GAA4B,CACxBA,EACA,CACIt5F,OAAQ,UAIpByqE,OAAQ,CACJ1kF,EAAW0kF,OACX1zD,GAAU,CACNrjB,UAAW,CACP,2BAA4B,CACxB2O,MAAOC,EAAe+W,WACtBnQ,SAAU,KAAcC,WAKxC0xF,MAAO,CACH90G,EAAW80G,MACX,CACI7xF,QAAS,cACTtV,WAAYhR,EAAK,CAAC,EACdA,EAAG,sBAAsBoY,OAAO,KAAqB,wBAAwBA,OAAO,KAAqB,QAAU,CAC/GkO,QAAS,eAEbtmB,KAGZo4G,aAAc,CACV/0G,EAAWugB,QACX,CACIkD,SAAU,WACV9Y,MAAO,SAGfke,MAAO,CACH7oB,EAAW6oB,MACXlH,EAAMyzF,OACN,CACI94F,MAAOC,EAAeC,SACtB6G,OAAQ,IACR6S,UAAWvU,EAAMyzF,OAAOjyF,SACxBF,QAAS,sBACTC,WAAY,SACZvV,WAAYrJ,EAAK,CAAC,EACdA,EAAG,sBAAsByQ,OAAO,KAAqB,wBAAwBA,OAAO,KAAqB,QAAU,CAC/GkO,QAAS,uBAEb3e,IAERgwG,GAAiB,CACbh4F,MAAOC,EAAeyhC,YAE1BykD,GAAe,CAAEt/E,SAAUxB,EAAM0zF,QAAQlyF,WAE7CyxF,UAAW,CACP,CACItxF,QAAS,OACT6S,cAAe,MACfpD,SAAU,SACVtP,SAAU,WACVnZ,IAAK,IACLtC,MAAO,IACPib,QAAS,gBACTtV,WAAYpJ,EAAK,CACT,MAAO,CACHqlF,KAAM,YAEV,oBAAqB,CACjBttE,MAAOC,EAAe+W,YAE1B,0BAA2B,CACvBhX,MAAOC,EAAegX,kBACtBZ,aAAcP,EAAQQ,iBAG9BruB,EAAG,sBAAsBwQ,OAAO,KAAqB,wBAAwBA,OAAO,KAAqB,QAAU,CAC/GkO,QAAS,gBAEb1e,KAIpB,QCpIgEjD,EAAW,CAAE0iB,MAAO,kBACpF8vF,EAAc92G,YAAc,e,kBCDrB,IAAIs4G,E,iBACX,SAAWA,GAEPA,EAAWA,EAAmB,OAAI,GAAK,SAEvCA,EAAWA,EAAwB,YAAI,GAAK,cAE5CA,EAAWA,EAAkB,MAAI,GAAK,OACzC,CAPD,CAOGA,IAAeA,EAAa,CAAC,G,8FCR5Bp5F,GAAgB,EAAAC,EAAA,KAChBo5F,EAAkC,SAAUlxG,GAE5C,SAASkxG,EAAiB13G,GACtB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADA,EAAAsI,EAAA,GAAuBpG,GAChBA,CACX,CAgBA,OArBA,QAAU8wG,EAAkBlxG,GAM5BkxG,EAAiBvzG,UAAUxB,OAAS,WAChC,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAK9E,OAJA8E,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,IAEP,gBAAoB,MAAO,CAAEA,UAAWoC,KAAKsc,YAAY22F,SAC7D,gBAAoB,MAAO,CAAEr1G,UAAWoC,KAAKsc,YAAY42F,cAAgBlzG,KAAKmzG,4BACtF,EACAH,EAAiBvzG,UAAU0zG,yBAA2B,WAClD,IAAIjxG,EAAQlC,KACZ,OAAO,WAAepE,IAAIoE,KAAK1E,MAAMoB,UAAU,SAAUhE,GACrD,OAAOA,EAAQ,gBAAoB,OAAQ,CAAEkF,UAAWsE,EAAMoa,YAAY82F,QAAU16G,GAAS,IACjG,GACJ,EACOs6G,CACX,CAvBqC,CAuBnC,a,WC1BEt0F,EAAmB,CACnBu0F,QAAS,oBACTG,OAAQ,mBACRF,aAAc,0BCDPtB,GAAe,EAAA3yF,EAAA,GAAO+zF,GDGV,SAAU13G,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3CuC,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACH+3G,QAAS,CACLx1G,EAAWw1G,QACX,CACI/xF,SAAU,WACV9Y,MAAO,OACPurB,UAAW,OACXhT,WAAY,OACZG,OAAQ,WACRF,SAAU,IACVxV,UAAW,CACP,aAAc,CACVuV,WAAY,SACZiU,cAAe,YAI3Bh3B,GAEJw1G,OAAQ,CACJ31G,EAAW21G,OACX,CACItyF,OAAQ,UAGhBoyF,aAAc,CACVz1G,EAAWy1G,aACX,CACIlyF,WAAY,SACZD,QAAS,OACTH,SAAU,IACVoC,eAAgB,WAChB+R,YAAa,SAI7B,QC1C8Dh2B,EAAW,CAAE0iB,MAAO,iBAClFmwF,EAAan3G,YAAc,c,kCCJpB,I,WCEHkf,GAAgB,E,SAAA,KACT05F,EAAsB,cAAiB,SAAU/3G,EAAOgQ,GAE/D,IAAIjQ,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAOo4G,EAA0Bh4G,EAAMqe,cAAe/b,EAAYtC,EAAMsC,UAC7GH,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAOye,cAAe25F,EAAyB11G,UAAWA,IAC1G,OAAQ,gBAAoB,OAAQ,CAAEA,UAAWH,EAAWwzD,QAAS3lD,IAAKA,GACtE,gBAAoB,OAAQ,CAAE1N,UAAWH,EAAWkqB,UAC5D,IACA0rF,EAAoB54G,YAAc,sB,ICPvBi7D,GAAkB,E,SAAA,GAAO29C,GFHb,SAAU/3G,GAE7B,IAAIJ,EAAQI,EAAMJ,MAAOye,EAAgBre,EAAMqe,cAAe/b,EAAYtC,EAAMsC,UAChF,IAAK1C,EACD,MAAM,IAAI0D,MAAM,+BAEpB,GAAI+a,EAAe,CACf,IAAI45F,EAAQ55F,EAAcze,GAC1B,MAAO,CACH+1D,QAAS,CAACsiD,EAAMtiD,SAChBtpC,QAAS,CAAC4rF,EAAM5rF,SAExB,CACA,MAAO,CACHspC,QAAS,CACL,CACIlwC,QAAS,cACT7R,OAAQ,OACR8R,WAAY,UAEhBpjB,GAEJ+pB,QAAS,CACL,CACIvf,MAAO,EACP8G,OAAQ,OACRqR,gBAAiBrlB,EAAMikB,QAAQmS,qBAI/C,QE3BoEvyB,EAAW,CAC3E0iB,MAAO,mB,uICAP9H,GAAgB,SAET65F,EAAsB,gBAAoB,CAAC,GAIlDC,EAAkC,SAAU3xG,GAE5C,SAAS2xG,EAAiBn4G,GACtB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAgCxC,OA/BAkC,EAAMulF,aAAe,cACrBvlF,EAAMkU,SAAW,SAAUzV,GACvBuB,EAAMwxG,UAAU/yG,EACpB,EACAuB,EAAMgC,WAAa,SAAUvD,GAErBA,EAAGqE,QAAU,IAASkC,OAASvG,EAAGqE,QAAU,IAASE,OACrDhD,EAAMwxG,UAAU/yG,EAExB,EACAuB,EAAMwxG,UAAY,SAAU/yG,GACxB,IAAIvG,EAAK8H,EAAM5G,MAAOwd,EAAU1e,EAAG0e,QAAS66F,EAAcv5G,EAAGu5G,YAAaC,EAAgBx5G,EAAGw5G,cACzF96F,EACAA,EAAQnY,IAEFmY,GAAW66F,IAEbC,EACAtyG,OAAOuyG,KAAKF,EAAaC,EAAe,gCAGxCtyG,OAAOwyG,SAASr4F,KAAOk4F,EAE3BhzG,EAAGyG,iBACHzG,EAAG+C,kBAEX,GACA,OAAuBxB,IACvB,OArCa,eAqCoB5G,EAAO,CACpCy4G,iBAAah1G,IAEVmD,CACX,CAuCA,OA1EA,QAAUuxG,EAAkB3xG,GAoC5B2xG,EAAiBh0G,UAAUxB,OAAS,WAEhC,IAeIoa,EAfAje,EAAK4F,KAAK1E,MAAOwd,EAAU1e,EAAG0e,QAAS66F,EAAcv5G,EAAGu5G,YAAaj3G,EAAWtC,EAAGsC,SAAUD,EAAOrC,EAAGqC,KAAMs3G,EAAc35G,EAAG25G,YAAa14G,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAChMwa,GAAc,QAAepY,KAAK1E,MAAO,KAAe,CACxD,YACA,UACA,OACA,SAEA04G,KAAal7F,IAAW66F,GAC5B3zG,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACXo2G,WAAYA,EACZjhB,QAASt2F,IAAS,IAAiBs2F,UAInCt2F,IAAS,IAAiBs2F,SAAWghB,IACrC17F,EAAQ,CACJ47F,kBAAmBF,IAI3B,IAEIG,EAA2B,CAAEl3F,KAFtBhd,KAAK1E,MAAM0hB,OAASg3F,EAAcl7F,EAAU,SAAW,YAAU/Z,GAE/BkO,SAD9B+mG,EAAa,OAAIj1G,GAEhC,OAAQ,gBAAoB,OAAO,QAAS,CAAEuM,IAAKtL,KAAKynF,aAAczqE,KAAM,QAASpf,UAAWoC,KAAKsc,YAAY7S,KAAMlF,UAAWyvG,EAAah0G,KAAKkE,gBAAanF,EAAW+Z,QAASk7F,EAAah0G,KAAKoW,cAAWrX,EAAWsZ,MAAOA,GAASD,GACzO,gBAAoBo7F,EAAoBW,SAAU,CAAExkG,MAAOukG,GAA4Bx3G,GAC/F,EACA+2G,EAAiBh0G,UAAU4D,MAAQ,WAC3BrD,KAAKynF,aAAatkF,SAClBnD,KAAKynF,aAAatkF,QAAQE,OAElC,EACAowG,EAAiB9qG,aAAe,CAC5BlM,KAAM,IAAiB4yG,QAEpBoE,CACX,CA5EqC,CA4EnC,Y,mFCpFSW,EACD,yBADCA,EAED,8B,iCCEN11F,EAAmB,CACnBjV,KAAM,kBACN4qG,eAAgB,8BAChBC,YAAa,4BCNNC,GAAe,EAAAt1F,EAAA,GAAO,KDQV,SAAU3jB,GAC7B,IAAIlB,EAAI2H,EACJnE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO84G,EAAa14G,EAAM04G,WAAYjhB,EAAUz3F,EAAMy3F,QACjG5zE,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAAOyQ,EAAU30B,EAAM20B,QAC9DpyB,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX,CACI+qG,oBAAqB,cACrBj0F,gBAAiBpB,EAAQiS,MACzBnP,OAAQ,aAAazP,OAAO2M,EAAQkS,cACpCqC,SAAU,QACVZ,SAAU,QACVvC,WAAY,OACZrP,SAAU,WACV9V,WAAYhR,EAAK,CACT,SAAU,CACNiR,QAAS,cAGjBjR,EAAG,IAAIoY,OAAO,KAAyB,cAAe,QAAmB2M,EAAQO,iBAAkBmQ,EAAQQ,gBAC3Gj2B,EAAG,IAAIoY,OAAO,IAAmB/I,KAAM,QAAQ+I,OAAO,IAAgB/I,OAAS,CAC3E6jC,WAAY,OAEhBlzC,IAER45G,GAAc,CACVv2G,EAAW42G,eACX,CACIjpG,UAAW,CACP,SAAU,CACNsM,OAAQ,UACRwK,YAAa/C,EAAQmS,oBAEzB,eAAgB,CACZtT,QAAS,MACTkD,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACN4c,OAAQ,aAAazP,OAAO2M,EAAQmS,oBACpCgD,cAAe,WAK/By+D,GAAW,CACPt1F,EAAW62G,YACX,CACIvzF,QAAS,OACT2S,SAAU,QACVxkB,OAAQ,QACR9D,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO,IAA2B,CACrC+hB,YAAa,aAAa/hB,OAAO2M,EAAQkS,cACzC2/C,aAAc,EACdzyC,UAAW,QACX7K,SAAU,SAEd3xB,EAAG,IAAIyQ,OAAO,IAA2B,CACrC+rB,UAAW,OACX7K,SAAU,QAEd3xB,EAAG,IAAIyQ,OAAO,IAAmB/I,OAAS,CACtCoiC,cAAe,QAEnB9pC,EAAG,IAAIyQ,OAAO,IAAgB/I,OAAS,CACnCoiC,cAAe,qBACfjrB,SAAUxB,EAAMmC,WAAWX,SAC3BD,WAAY,QAEhB5e,KAGZnE,GAGZ,QCvF8DmB,EAAW,CAAE0iB,MAAO,gB,kBCA3E,IAAIgzF,E,iBACX,SAAWA,GAIPA,EAAiBA,EAAyB,OAAI,GAAK,SAInDA,EAAiBA,EAA0B,QAAI,GAAK,SACvD,CATD,CASGA,IAAqBA,EAAmB,CAAC,G,mHCRxC96F,GAAgB,EAAAC,EAAA,KAIhB86F,EAA0C,SAAU5yG,GAEpD,SAAS4yG,EAAyBp5G,GAC9B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADA,EAAAsI,EAAA,GAAuBpG,GAChBA,CACX,CAiCA,OAtCA,QAAUwyG,EAA0B5yG,GAMpC4yG,EAAyBj1G,UAAUxB,OAAS,WACxC,IAAI7D,EAAK4F,KAAK1E,MAAOq5G,EAAWv6G,EAAGu6G,SAAUC,EAASx6G,EAAGw6G,OAAQv5G,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAMtH,OALAoC,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACXi3G,eAAgBD,EAAOl5G,OAAS,IAE/Bk5G,GAA4B,IAAlBA,EAAOl5G,OAGd,gBAAoB,MAAO,CAAEkC,UAAWoC,KAAKsc,YAAY7S,MAC7DzJ,KAAK80G,eAAeF,GACpB,gBAAoB,MAAO,CAAEh3G,UAAWoC,KAAKsc,YAAYy4F,SACrD,gBAAoB,OAAQ,CAAEn3G,UAAWoC,KAAKsc,YAAYtgB,MAAQgE,KAAKg1G,eAAeJ,IACtF,gBAAoB,OAAQ,CAAEh3G,UAAWoC,KAAKsc,YAAYq4F,UAAYA,KANnE,IAOf,EACAD,EAAyBj1G,UAAUq1G,eAAiB,SAAUF,GAC1D,OAAQ,gBAAoB,MAAO,CAAEh3G,UAAWoC,KAAKsc,YAAY24F,SAC7DL,EAAOl5G,OAAS,EAAIsE,KAAKk1G,cAAcN,EAAO,IAAM,KACpD50G,KAAKk1G,cAAcN,EAAO,IAClC,EACAF,EAAyBj1G,UAAUy1G,cAAgB,SAAUC,GACzD,OAAQ,gBAAoB,MAAO,CAAEv3G,UAAWoC,KAAKsc,YAAY84F,QAC7D,gBAAoBC,EAAA,EAAa,CAAEC,cAAeH,EAAOI,SAAU97F,KAAM07F,EAAOn5G,KAAMw5G,SAAUL,EAAOM,gBAAiBC,cAAeP,EAAOO,cAAeC,mBAAoBR,EAAOQ,mBAAoB34F,KAAM,eAAgB5T,KAAM,KAAYwsG,SAC5P,EACAlB,EAAyBj1G,UAAUu1G,eAAiB,SAAUJ,GAC1D,IAAIiB,EAAajB,EAAO,GAAG54G,KAI3B,OAHI44G,EAAOl5G,QAAU,IACjBm6G,GAAc,MAAQjB,EAAOl5G,OAAS,IAEnCm6G,CACX,EACOnB,CACX,CAxC6C,CAwC3C,a,WC9CSoB,GAAuB,EAAA72F,EAAA,GAAOy1F,EAA0B,SAAW31G,EAAW,CAAE0iB,MAAO,wB,0DCEvFs0F,EAAuC,CAC9CtsG,KAAM,0BACNorG,eAAgB,0CAChBE,QAAS,kCACT/4G,KAAM,+BACN24G,SAAU,mCACVM,QAAS,kCACTG,OAAQ,kCAEDvzF,EAAY,SAAUvmB,GAC7B,IAAIJ,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWi3G,EAAiBv5G,EAAMu5G,eACzE11F,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MACvC3hB,GAAa,QAAoBs4G,EAAsC76G,GAC3E,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXorG,GAAkBp3G,EAAWo3G,eAC7B,CACIn0F,QAAS,GAAGlO,OAtBL,EAsB8B,OAAOA,OArBnC,GAqB8D,MACvE0O,SAAU,YAEdtjB,GAEJq3G,QAAS,CACLx3G,EAAWw3G,QACX,CACIpgF,WAAY,OACZ3lB,OAAQ,SAGhBkmG,OAAQ,CACJ33G,EAAW23G,OACX,CACIr0F,QAAS,eACT6T,cAAe,MACf1T,SAAU,WACVyO,UAAW,SACXvnB,MAvCC,GAwCD8G,OAxCC,GAyCD9D,UAAW,CACP,UAAW,CACP4S,QAAS,MACTkD,SAAU,WACV7b,KAAM,OACN0C,IAAK,OACLtC,MAAO,OACPwC,OAAQ,OACRga,OAAQ,aAAazP,OAAO2M,EAAQiS,OACpChB,aAAc,OAElB,kBAAmBykF,GAAkB,CACjChgF,WAAY,YAK5BkgF,QAAS,CACLt3G,EAAWs3G,QACX,CACI1vG,KACM,GAAGmN,OADHqiG,EACUmB,GACAA,GAD6D,MAE7E9mG,OAhEC,GAiEDgS,SAAU,WACVnZ,IApEO,EAqEPK,MAAO,eAAeoK,OAAOwjG,GAA4E,SAGjHh6G,KAAM,CACFyB,EAAWzB,KACX,CACI+kB,QAAS,QACTH,SAAUxB,EAAMiC,MAAMT,SACtBD,WAAY,OACZzR,OAAQ,OACR4N,SAAU,SACV+B,aAAc,WACdD,WAAY,SACZ7E,MAAOoF,EAAQW,eACfO,WAAY,KAAYJ,WAGhC00F,SAAU,CACNl3G,EAAWk3G,SACX,CACI5zF,QAAS,QACTH,SAAUxB,EAAMiC,MAAMT,SACtBD,WAAY,OACZzR,OAAQ,OACR4N,SAAU,SACV+B,aAAc,WACdD,WAAY,SACZ7E,MAAOoF,EAAQO,mBAI/B,C,8FClGI/F,GAAgB,EAAAC,EAAA,KAIhBq8F,EAAyC,SAAUn0G,GAEnD,SAASm0G,EAAwB36G,GAC7B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADA,EAAAsI,EAAA,GAAuBpG,GAChBA,CACX,CASA,OAdA,QAAU+zG,EAAyBn0G,GAMnCm0G,EAAwBx2G,UAAUxB,OAAS,WACvC,IAAI7D,EAAK4F,KAAK1E,MAAOoB,EAAWtC,EAAGsC,SAAUrB,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAKlG,OAJAoC,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,IAER,gBAAoB,MAAO,CAAEA,UAAWoC,KAAKsc,YAAY7S,MAAQ/M,EAC5E,EACOu5G,CACX,CAhB4C,CAgB1C,a,WCtBEv3F,EAAmB,CACnBjV,KAAM,0BCCCysG,GAAsB,EAAAj3F,EAAA,GAAOg3F,GDCjB,SAAU36G,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAE/C,MAAO,CACHuO,KAAM,EAFO,QAAoBiV,EAAkBxjB,GAGpCuO,KACX,CACIsX,QAAS,OACT6S,cAAe,SACfyzD,KAAM,EACNrkE,eAAgB,gBAChBlG,SAAU,UAEdlf,GAGZ,QCjB4EmB,EAAW,CAAE0iB,MAAO,uB,oHCE5F9H,GAAgB,EAAAC,EAAA,KAIhBu8F,EAAuC,SAAUr0G,GAEjD,SAASq0G,EAAsB76G,GAC3B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAMxC,OALAkC,EAAMk0G,aAAe,WACjBl0G,EAAM0T,SAAS,CAAEygG,gBAAgB,GACrC,GACA,EAAA/tG,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CAAEo7G,gBAAgB,GACzBn0G,CACX,CAiBA,OA1BA,QAAUi0G,EAAuBr0G,GAUjCq0G,EAAsB12G,UAAUxB,OAAS,WACrC,IAAI7D,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQ+M,EAAQhO,EAAGgO,MAAO8G,EAAS9U,EAAG8U,OAAQonG,EAAWl8G,EAAGk8G,SAAUpsE,EAAW9vC,EAAG8vC,SAErH,OADAlqC,KAAKsc,YAAc3C,EAActe,EAAQ2E,KAAK1E,OACtC,gBAAoB,MAAO,CAAEsC,UAAWoC,KAAKsc,YAAY7S,MAC7DygC,GAAa,gBAAoBxjB,EAAA,EAAO,CAAEte,MAAOA,EAAO8G,OAAQA,EAAQonG,SAAUA,EAAUxrE,IAAKZ,EAAUltB,KAAM,eAAgBoJ,IAAK,GAAImwF,OAAQv2G,KAAKo2G,eACvJp2G,KAAK/E,MAAMo7G,eAAiBr2G,KAAKw2G,oBAAsBx2G,KAAKy2G,oBACpE,EACAN,EAAsB12G,UAAUg3G,kBAAoB,WAChD,IAAI/5F,EAAY1c,KAAK1E,MAAMohB,UAC3B,OAAQ,gBAAoB,MAAO,CAAE9e,UAAWoC,KAAKsc,YAAYo6F,qBAC7D,gBAAoBz7F,EAAA,GAAM,QAAS,CAAErd,UAAWoC,KAAKsc,YAAYq6F,cAAgBj6F,IACzF,EACAy5F,EAAsB12G,UAAU+2G,kBAAoB,WAChD,IAAI95F,EAAY1c,KAAK1E,MAAMohB,UAC3B,OAAO,gBAAoBzB,EAAA,GAAM,QAAS,CAAErd,UAAWoC,KAAKsc,YAAYs6F,YAAcl6F,GAC1F,EACOy5F,CACX,CA5B0C,CA4BxC,aCrCEU,EAAmB,OACnBC,EAAiB,OCEVC,GAAoB,EAAA93F,EAAA,GAAOk3F,GDDf,SAAU76G,GAC7B,IAAIJ,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWsR,EAAS5T,EAAM4T,OAAQ9G,EAAQ9M,EAAM8M,MACvF+W,EAAUjkB,EAAMikB,QACpB,MAAO,CACH1V,KAAM,CACF,CACIunE,aAAc,aAAax+D,OAAO2M,EAAQkS,cAC1CnQ,SAAU,WACVX,gBAAiBpB,EAAQwxD,kBACzB7zD,SAAU,SACV5N,OAAQA,GAAU,GAAGsD,OAAOtD,EAAQ,MACpC9G,MAAOA,GAAS,GAAGoK,OAAOpK,EAAO,OAErCxK,GAEJ+4G,aAAc,CACV,CACIznG,OAAQ2nG,EACRzuG,MAAOyuG,EACPj2F,SAAUi2F,IAGlBH,oBAAqB,CACjB,CACI31F,QAAS,OACTC,WAAY,SACZgC,eAAgB,SAChB9T,OAAQ,OACR9G,MAAO,OACP8Y,SAAU,WACVnZ,IAAK,EACL1C,KAAM,IAGduxG,WAAY,CACR,CACIvxG,KAAM,OACN4C,OAAQ,OACRiH,OAAQ4nG,EACR1uG,MAAO0uG,EACPl2F,SAAUk2F,EACV51F,SAAU,WACVpE,SAAU,YAI1B,QC7CwE/d,EAAW,CAAE0iB,MAAO,qB,8FCAxF9H,GAAgB,EAAAC,EAAA,KAIhBo9F,EAA0C,SAAUl1G,GAEpD,SAASk1G,EAAyB17G,GAC9B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADA,EAAAsI,EAAA,GAAuBpG,GAChBA,CACX,CASA,OAdA,QAAU80G,EAA0Bl1G,GAMpCk1G,EAAyBv3G,UAAUxB,OAAS,WACxC,IAAI7D,EAAK4F,KAAK1E,MAAOw4G,EAAW15G,EAAG05G,SAAUmD,EAAe78G,EAAG68G,aAAcn8F,EAAY1gB,EAAG0gB,UAAWhC,EAAU1e,EAAG0e,QAASzd,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAKlL,OAJAoC,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,IAEP,gBAAoB,IAAK,CAAEA,UAAWoC,KAAKsc,YAAY7S,KAAMgS,KAAMw7F,EAAcn+F,QAASA,EAAS,aAAcgC,GAAag5F,EAC1I,EACOkD,CACX,CAhB6C,CAgB3C,a,WCpBSE,GAAuB,EAAAj4F,EAAA,GAAO+3F,EAA0B,SAAWj4G,EAAW,CAAE0iB,MAAO,wB,0DCFvF01F,EAAuC,CAC9C1tG,KAAM,2BAECoY,EAAY,SAAUvmB,GAC7B,IAAIJ,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UACvCuhB,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAE3C,MAAO,CACH3V,KAAM,EAFO,QAAoB0tG,EAAsCj8G,GAGxDuO,KACX2V,EAAMiC,MACN,CACItH,MAAOoF,EAAQiD,aACfrB,QAAS,QACTV,WAAY,KAAYJ,SACxBnD,SAAU,SACV4D,QAAS,WACTQ,SAAU,WACVV,eAAgB,OAChB3B,aAAc,WACdD,WAAY,SACZxT,UAAW,CACP,SAAU,CACN2O,MAAOoF,EAAQiD,aACf1K,OAAQ,aAIpB9Z,GAGZ,C,+HC3BI+b,GAAgB,EAAAC,EAAA,KAKhBw9F,EAAuC,SAAUt1G,GAEjD,SAASs1G,EAAsB97G,GAC3B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAkExC,OAjEAkC,EAAMm1G,cAAgB,cAGtBn1G,EAAMo1G,eAAiB,WACdp1G,EAAMq1G,kBAGXr1G,EAAMiU,OAAO8nB,sBAAsB/7B,EAAMs1G,yBAC7C,EACAt1G,EAAMs1G,yBAA2B,WAC7B,IAAIC,EAAgBv1G,EAAM5G,MAAMgrB,MAC5BttB,EAAUkJ,EAAMm1G,cAAcl0G,QAClC,GAAInK,EAAS,CACT,IAAIqf,EAAQq/F,iBAAiB1+G,GAC7B,GAAIqf,EAAMjQ,OAASiQ,EAAMsI,YAActI,EAAMnJ,OAAQ,CACjD,IAAIyzC,EAAc3pD,EAAQ2pD,YAAag1D,EAAc3+G,EAAQ2+G,YAC7Dz1G,EAAM01G,aAAej1D,EACrB,IAAIk1D,EAAQhwG,KAAKC,OAAOgwG,SAASz/F,EAAMnJ,OAAQ,IAzBtB,GAyBsE4oG,SAASz/F,EAAMsI,WAAY,KAC1H3nB,EAAQqf,MAAMuG,WAAa,GAY3B,IAAIm5F,EAAeJ,GAAeG,SAASz/F,EAAMjQ,MAAO,IAAMyvG,GAC9D,GAAIE,EAAe,EAAG,CAClB,IAAIC,EAAkBP,EAAc/7G,OAASq8G,EAAe,EAC5D,OAAO71G,EAAM0T,SAAS,CAClBqiG,yBAA0BR,EAAcllG,MAAM,EAAGylG,EAAkB,GACnEE,0BAA2BT,EAAcllG,MAAMklG,EAAc/7G,OAASs8G,EAAkB,IAEhG,CACJ,CACJ,CACJ,EACA91G,EAAMi2G,aAAe,WACjB,IAAI/9G,EAAK8H,EAAMjH,MAAOg9G,EAA2B79G,EAAG69G,yBAA0BC,EAA4B99G,EAAG89G,0BAC7G,GAAID,GAA4BC,EAA2B,CACvD,IAAIE,EAAel2G,EAAMm1G,cAAcl0G,QACvC,IAAKi1G,EACD,QAEAA,EAAaC,aAAeD,EAAavpG,aAxDhB,GAyDzBupG,EAAaT,YAAcS,EAAaz1D,cACxCzgD,EAAM0T,SAAS,CACXqiG,yBAA0BA,EAAyB1lG,MAAM,EAAG0lG,EAAyBv8G,OAAS,GAC9Fw8G,0BAA2BA,EAA0B3lG,MAAM,IAGvE,CACJ,GACA,EAAAjK,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAM01G,kBAAe74G,EACrBmD,EAAMjH,MAAQ,CACVg9G,8BAA0Bl5G,EAC1Bm5G,+BAA2Bn5G,GAExBmD,CACX,CAsFA,OA3JA,QAAUk1G,EAAuBt1G,GAsEjCs1G,EAAsB33G,UAAUuK,mBAAqB,SAAUsjB,GAC3D,IAAIprB,EAAQlC,KACRA,KAAK1E,MAAMgrB,QAAUgH,EAAUhH,OAC/BtmB,KAAK4V,SAAS,CACVqiG,8BAA0Bl5G,EAC1Bm5G,+BAA2Bn5G,IAG/BuuB,EAAUgrF,iBAAmBt4G,KAAK1E,MAAMg9G,eACpCt4G,KAAK1E,MAAMg9G,gBACXt4G,KAAKs3G,iBACLt3G,KAAKmW,OAAO8nB,sBAAsBj+B,KAAKm4G,cACvCn4G,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,SAAUtB,KAAKu4G,oBAGvCv4G,KAAKmsB,QAAQ44D,IAAIzjF,OAAQ,SAAUtB,KAAKu4G,mBAGvCv4G,KAAKu3G,kBACVv3G,KAAKmW,OAAO8nB,uBAAsB,WAC9B/7B,EAAMs1G,2BACNt1G,EAAMi2G,cACV,GAER,EACAf,EAAsB33G,UAAU+J,kBAAoB,WAC5CxJ,KAAK1E,MAAMg9G,iBACXt4G,KAAKs3G,iBACLt3G,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,SAAUtB,KAAKu4G,mBAE/C,EACAnB,EAAsB33G,UAAU6K,qBAAuB,WACnDtK,KAAKmsB,QAAQ5b,UACbvQ,KAAKmW,OAAO5F,SAChB,EACA6mG,EAAsB33G,UAAUxB,OAAS,WACrC,IAAIiE,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOgrB,EAAQlsB,EAAGksB,MAAOgyF,EAAiBl+G,EAAGk+G,eAAgBE,EAAuBp+G,EAAGo+G,qBAAsBn9G,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAC5KmE,EAAK/B,KAAK/E,MAAOg9G,EAA2Bl2G,EAAGk2G,yBAA0BC,EAA4Bn2G,EAAGm2G,0BAM5G,OALAl4G,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACX46G,qBAAsBA,IAEtBF,GAAkBL,GAA4BC,EACtC,gBAAoB,IAAoBh5C,SAAU,MAAM,SAAU9kE,GACtE,IAAI4iB,EAAO5iB,EAAG4iB,KAAM/P,EAAW7S,EAAG6S,SAClC,OAAQ,gBAAoB,MAAO,CAAErP,UAAWsE,EAAMoa,YAAY7S,KAAM6B,IAAKpJ,EAAMm1G,cAAe/wF,MAAOA,EAAOrZ,SAAUA,EAAU+P,KAAMA,GACtIi7F,EACA,IACAC,EACR,IAGQ,gBAAoB,IAAoBh5C,SAAU,MAAM,SAAU9kE,GACtE,IAAI4iB,EAAO5iB,EAAG4iB,KAAM/P,EAAW7S,EAAG6S,SAClC,OAAQ,gBAAoB,MAAO,CAAErP,UAAWsE,EAAMoa,YAAY7S,KAAM6B,IAAKpJ,EAAMm1G,cAAe/wF,MAAOA,EAAOrZ,SAAUA,EAAU+P,KAAMA,EAAM3E,MAAOnW,EAAMq1G,iBAAmB,CAAE34F,WAAY,eAAa7f,GAAaunB,EAC5N,GAER,EACAjnB,OAAOgN,eAAe+qG,EAAsB33G,UAAW,mBAAoB,CAKvE6M,IAAK,WACD,QAAStM,KAAK1E,MAAMg9G,qBAAwCv5G,IAAtBiB,KAAK43G,YAC/C,EACArrG,YAAY,EACZC,cAAc,IAElB4qG,EAAsB33G,UAAU84G,kBAAoB,WAChD,IAAIr2G,EAAQlC,KACRA,KAAKy4G,WAGTz4G,KAAKy4G,SAAWz4G,KAAKmW,OAAO1C,YAAW,kBAC5BvR,EAAMu2G,SACbv2G,EAAM01G,kBAAe74G,EACrBmD,EAAM0T,SAAS,CACXqiG,8BAA0Bl5G,EAC1Bm5G,+BAA2Bn5G,GAEnC,GAAG,KACP,EACOq4G,CACX,CA7J0C,CA6JxC,a,WCpKSsB,GAAoB,EAAAz5F,EAAA,GAAOm4F,EAAuB,SAAWr4G,EAAW,CAAE0iB,MAAO,qB,qECDjFk3F,EAAoC,CAC3ClvG,KAAM,wBAECoY,EAAY,SAAUvmB,GAC7B,IAAIlB,EACAc,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW46G,EAAuBl9G,EAAMk9G,qBAC/Er5F,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAAOyQ,EAAU30B,EAAM20B,QAElE,MAAO,CACHpmB,KAAM,EAFO,QAAoBkvG,EAAmCz9G,GAGrDuO,KACX+uG,EAAuBp5F,EAAMyB,OAASzB,EAAM6yC,MAC5C,CACIvxC,QAAS,WACTK,QAAS,QACTjE,SAAU,SACVoE,SAAU,WACV04B,SAAU,aACV1qC,OAAQspG,EAAuB,OAAS,OACxC73F,WAAY63F,EAAuB,OAAS,OAC5Cz+F,MAAOy+F,EAAuBr5F,EAAQO,iBAAmBP,EAAQW,eACjE1U,WAAYhR,EAAK,CACT,SAAU,CACNiR,QAAS,cAGjBjR,EAAG,IAAIoY,OAAO,KAAyB,cAAe,QAAmB2M,EAAQO,iBAAkBmQ,EAAQQ,gBAC3Gj2B,IAERwD,GAGZ,C,gQCtBIg7G,EAAsC,WACtC,SAASA,IACL54G,KAAK64G,MAAQ,CACjB,CAqEA,OAjEAD,EAAqBn5G,UAAUq5G,cAAgB,SAAU3+G,GAIrD,IAHA,IAAI4+G,EAA0B,GAC1BC,EAA4B,GAC5B5vG,EAAO,EACFtJ,EAAI,EAAGA,EAAI3F,EAAQuB,OAAQoE,IAAK,CACrC,IAAI1F,EAAKD,EAAQ2F,GAAI4jD,EAAWtpD,EAAGspD,SAAUj1B,EAASr0B,EAAGq0B,OACrDi1B,IAAa,IAAqBG,SAAWH,IAAa,IAAqBC,QAC/Eo1D,EAAwBp7G,KAAKmC,GAC7Bk5G,EAA0Br7G,KAAKmC,IAE1B2uB,EACLuqF,EAA0Br7G,KAAKmC,GAG/BsJ,GAER,CACApJ,KAAK64G,MAAQzvG,EACbpJ,KAAKi5G,yBAA2BF,EAChC/4G,KAAKk5G,2BAA6BF,EAClCh5G,KAAKm5G,gBAAiB,QAAc,GAAIh/G,GAAS,EACrD,EACAkF,OAAOgN,eAAeusG,EAAqBn5G,UAAW,gBAAiB,CAInE6M,IAAK,WACD,OAAOtM,KAAK64G,KAChB,EACAtsG,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAeusG,EAAqBn5G,UAAW,gBAAiB,CAInE6M,IAAK,WACD,OAAOtM,KAAKm5G,cAChB,EACA5sG,YAAY,EACZC,cAAc,IAOlBosG,EAAqBn5G,UAAU25G,cAAgB,SAAUn9F,GACrD,QAAcld,IAAVkd,EAAJ,CAMA,IADA,IAAI+sE,EAAS,EACN/sE,EAAQjc,KAAKk5G,2BAA2BlwB,IAC3CA,IAEJ,GAAIhpF,KAAKi5G,yBAAyBjwB,KAAY/sE,EAC1C,MAAM,IAAIrd,MAAM,+BAA+B4T,OAAOyJ,EAAO,kCAEjE,GAAIjc,KAAKk5G,2BAA2BlwB,KAAY/sE,EAGhD,OAAOA,EAAQ+sE,EAAS,CAbxB,CAcJ,EACO4vB,CACX,CAzEyC,G,mICMrCj/F,GAAgB,EAAAC,EAAA,KAChBmjB,EAAgB,CAChB5iC,QAAS,IA2EFk/G,EAAe,cAAiB,SAAUn6E,EAAsBC,GACvE,IAAI7jC,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAC5Ca,EAAU,SAAa,MACvBsd,GAAgB,EAAAvrC,EAAA,GAAcqtB,EAAcY,GAC5C45B,GAAiB,EAAAC,EAAA,GAAkB75B,EAASzkC,EAAMq+D,gBAClDv/D,EA9ER,SAA+BA,GAC3B,IAKIk/G,EALAC,EAAsBn/G,EAAGm/G,oBAAqBh8D,EAAenjD,EAAGmjD,aAAcpP,EAAqB/zC,EAAG+zC,mBAAoBG,EAAcl0C,EAAGk0C,YAAan0C,EAAUC,EAAGD,QAAS0lD,EAAczlD,EAAGylD,YAC/L25D,GAAa,EAAAvmG,EAAA,GAAY9Y,GACzB4H,EAAK,WAAe,IAAK27C,EAAkB37C,EAAG,GAAI47C,EAAqB57C,EAAG,GAM1E03G,EAAmBt/G,IAAYq/G,EAG3BF,EAFJz5D,EACI45D,QAA4C16G,IAAxBw6G,EACGA,EAGAh8D,EAIvBk8D,QAA2C16G,IAAvBovC,EACGA,EAGAG,EAG/B,IAAIorE,GAAqB,EAAAzmG,EAAA,GAAYqmG,GA6CrC,OA5CA,aAAgB,WAEZ,IAyBIK,EAAmB,SAAUC,GAC7B,OAAO,QAAUz/G,GAAS,SAAUwzC,GAEhC,OAAiB,MAAbisE,EACOjsE,EAAOjyB,MAAQk+F,IAIbjsE,EAAOgb,YAAchb,EAAOyL,UAE7C,GACJ,OAC8Br6C,IAAzBu6G,GAAuCE,GACvCF,IAAyBI,IAAsBD,GAChD97D,EAvCqB,WACrB,QAA6B5+C,IAAzBu6G,EACA,OAAIz5D,EAmBD1lD,EACFyB,KAAI,SAAU+xC,EAAQ1xB,GAAS,OAAQ0xB,EAAOgb,SAAW1sC,GAAS,CAAI,IACtE4gB,QAAO,SAAU5gB,GAAS,OAAkB,IAAXA,CAAc,KAjBtB,KADtB6uC,EAAgB6uD,EAAiB,OACP,CAAC7uD,GAAiB,GAE/C,IAAKxuD,MAAMC,QAAQ+8G,GAEpB,OAA0B,KADtBxuD,EAAgB6uD,EAAiBL,IACP,CAACxuD,GAAiB,GAGpD,IADA,IAAInyB,EAAc,GACTn9B,EAAK,EAAGq+G,EAAyBP,EAAsB99G,EAAKq+G,EAAuBn+G,OAAQF,IAAM,CACtG,IACIsvD,EADApvC,EAAMm+F,EAAuBr+G,IAEd,KADfsvD,EAAgB6uD,EAAiBj+F,KACbid,EAAYh7B,KAAKmtD,EAC7C,CACA,OAAOnyB,CACX,CAoBuBmhF,GAE3B,GAAG,CAACL,EAAkB55D,EAAa25D,EAAYE,EAAoBv/G,EAASm/G,IACrE,CAAC57D,EAAiBC,EAC7B,CAMao8D,CAAsBz+G,GAAQoiD,EAAkBtjD,EAAG,GAAIujD,EAAqBvjD,EAAG,GACxF,OAAQ,gBAAoB4/G,GAAkB,QAAS,CAAC,EAAG1+G,EAAO,CAAEq+D,eAAgBA,EAAgBzb,QAAS,CAAEne,QAASsd,EAAeK,gBAAiBA,EAAiBC,mBAAoBA,KACjM,IACA07D,EAAa5+G,YAAc,eAC3B,ICxGIL,EAAI2H,EAAIC,EAAIC,EDwGZ+3G,EAAkC,SAAUl4G,GAE5C,SAASk4G,EAAiB1+G,GACtB,IEpGyCyC,EACzCk8G,EFmGI/3G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMg4G,MAAQ,cACdh4G,EAAMiY,WAAa,cACnBjY,EAAMi4G,UAAY,cAClBj4G,EAAMk4G,iBAAmB,IACzBl4G,EAAMm4G,cAAgB,IAAIzB,EAC1B12G,EAAMo4G,wBE1GmCv8G,EF0GgBmE,EExGtD,SAAUq4G,GACRN,IACDA,EAAiB,IAAIv4G,KACrB,EAAA84G,EAAA,GAAgBz8G,EAAW,CACvBuM,qBAAsB,WAClB2vG,EAAe3wG,SAAQ,SAAUiK,GAAM,OAAOyrB,qBAAqBzrB,EAAK,GAC5E,KAGR,IAAIknG,EAAYx8E,uBAAsB,WAClCg8E,EAAe1vG,OAAOkwG,GACtBF,GACJ,IACAN,EAAetwG,IAAI8wG,EACvB,GF8FIv4G,EAAMurB,YAAc,WACHvrB,EAAMjH,MAAM0hD,QACfz6C,EAAM0T,SAAS,CAAE+mC,QAAQ,GACvC,EACAz6C,EAAMw4G,UAAY,SAAU95G,EAAOzG,EAAS8hB,EAAOoI,EAASw7B,GAExD,IAAIzlD,EAAK8H,EAAM5G,MAAO8V,EAAWhX,EAAGgX,SAAUupG,EAAYvgH,EAAGugH,UAC7D,GAAIvpG,GAAYupG,EAAW,CAGvB,IAAIC,EAAa/6D,GAAc,SAAS,QAAS,CAAC,EAAG1lD,EAAQ8hB,IAAS,CAAE0sC,UAAWtkC,IAAalqB,EAAQ8hB,GACxG7K,GAAYA,GAAS,SAAS,QAAS,CAAC,EAAGxQ,GAAQ,CAAElH,OAAQwI,EAAMi4G,UAAUh3G,UAAYy3G,EAAY3+F,GACrG0+F,GAAaA,EAAUC,EAAY3+F,EACvC,CACJ,EAEA/Z,EAAM24G,gBAAkB,WAEpB,OAAO34G,EAAM5G,MAAMmkD,aAAev9C,EAAM5G,MAAMw/G,WAClD,EAEA54G,EAAM64G,UAAY,SAAU79F,EAAO89F,GAC/B,IAAI5gH,EAAK8H,EAAM5G,MAAMksD,qBAAsBA,OAA8B,IAAPptD,EAAgB,KAAOA,EACzF,OAAO8iB,EAAMthB,KAAI,SAAUkE,GAAK,OAAOA,EAAE2Z,IAAM,IAAGu5B,KAAKwU,EAC3D,EAEAtlD,EAAM+4G,eAAiB,SAAU/9F,GAC7B,OAAO,gBAAoB,WAAgB,KAAMhb,EAAM64G,UAAU79F,GACrE,EAEAhb,EAAMg5G,qBAAuB,SAAU5/G,GACnC,OAAK4G,EAAM24G,kBAGJ,gBAAoB,WAAgB,KAAM34G,EAAM24G,mBAF5C,IAGf,EAEA34G,EAAM8/C,mBAAqB,SAAU1mD,GACjC,IAAI4mD,EAAe5mD,EAAM4mD,aAAci5D,EAAa7/G,EAAM6/G,WACtD/gH,EAAK8H,EAAM5G,MAAOq+D,EAAiBv/D,EAAGu/D,eAAgBxX,EAAgB/nD,EAAG+nD,cACzEi5D,EAAUzhD,GAAkB,KAAe94C,OAC3Cw6F,EAAqB,CAAEC,qBAAsB,IAAI9oG,OAAOtQ,EAAMq5G,QAAS,MACvEC,EAAct5G,EAAMoa,YAAY+/C,mBAC9Bn6D,EAAMoa,YAAY+/C,mBAAmB7lB,WACrCz3C,EACFsgC,OAAetgC,EACfwgC,OAAkBxgC,EAOtB,MANsB,SAAlBojD,EACA5iB,EAAkBr9B,EAAMi4G,UAAUh3G,QAAUjB,EAAMi4G,UAAUh3G,QAAQw/C,YAAc,EAGlFtjB,EAAe8iB,IAAkBjgD,EAAMi4G,UAAUh3G,QAAUjB,EAAMi4G,UAAUh3G,QAAQw/C,YAAc,GAE9Fy4D,EAAW,gBAAoBK,EAAA,GAAO,QAAS,CAAEj6C,qBAAsB,QAAS65C,mBAAoBA,EAAoBK,gBAAgB,EAAM/+D,QAAQ,EAAMg/D,gBAAgB,EAAM7xF,UAAW5nB,EAAM2gD,WAAYxnD,OAAQmgH,GAAeL,GAAaj5G,EAAM05G,qBAAqBtgH,IAAY,gBAAoBwpC,EAAA,GAAS,QAAS,CAAEzJ,eAAe,EAAOhB,SAAU,EAAGpM,YAAY,EAAOiL,sBAAsB,EAAO/b,gBAAiB3I,EAAA,EAAgBK,eAAgBwqB,aAAcA,EAAcE,gBAAiBA,GAAmB2iB,EAAc,CAAEtkD,UAAWsE,EAAMoa,YAAY6e,QAASzhC,OAAQwI,EAAMi4G,UAAUh3G,QAAS2mB,UAAW5nB,EAAM2gD,WAAYpjB,SAAUv9B,EAAM6gD,UAAWhlB,aAAc77B,EAAM25G,gBAAkB35G,EAAM05G,qBAAqBtgH,GACjuB,EAEA4G,EAAM45G,mBAAqB,SAAUxgH,GACjC,OAAO,gBAAoB2f,EAAA,EAAM,CAAErd,UAAWsE,EAAMoa,YAAYy/F,UAAWt/F,SAAU,cAAe,eAAe,GACvH,EAEAva,EAAM+gD,cAAgB,SAAU3nD,GAC5B,IAAIlB,EAAKkB,EAAM4f,aAAcA,OAAsB,IAAP9gB,EAAgB8H,EAAMia,cAAgB/hB,EAC9EkpD,EAAQ,CAAEpmC,MAAO,IACjBqmC,EAAe,GACfC,EAAa,WACb,IAAIC,EAAWH,EAAM/vC,GACf,CACE,gBAAoB,MAAO,CAAEyJ,KAAM,QAAStB,IAAK4nC,EAAM/vC,GAAI,kBAAmB+vC,EAAM/vC,IAAM+vC,EAAMpmC,QAElGomC,EAAMpmC,MACZqmC,GAAe,SAAc,QAAc,GAAIA,GAAc,GAAOE,GAAU,GAE9EH,EAAQ,CAAEpmC,MAAO,GACrB,EAkCA,OALA5hB,EAAMnB,QAAQmP,SAAQ,SAAUiS,EAAMU,IA5BH,SAAUV,EAAMU,GAY/C,OAAQV,EAAKmoC,UACT,KAAK,IAA6BC,OAC9BL,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IAC1B,IAAIjwC,EAAKrR,EAAMqG,IAAMgT,EAAKG,IAC1B4nC,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAE3H,GAAIA,GAAMgI,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBAC5FmnC,EAAM/vC,GAAKA,EACX,MACJ,KAAK,IAA6BswC,QAC9B5nC,EAAQ,GAAKqnC,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAC,EAAGK,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBACjGmnC,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IAC1B,MACJ,QACIF,EAAMpmC,MAAMvf,KAAKud,GAAa,SAAS,QAAS,CAAC,EAAGK,GAAO,CAAEU,MAAOA,IAAU/Z,EAAMia,gBAEhG,CAGI2nC,CAA6BvoC,EAAMU,EACvC,IAEAqnC,EAAMpmC,MAAMxhB,OAAS,GAAK8nD,IACnB,gBAAoB,WAAgB,KAAMD,EACrD,EACArhD,EAAMia,cAAgB,SAAUZ,GAC5B,OAAQA,EAAKmoC,UACT,KAAK,IAA6BG,QAC9B,OAAO3hD,EAAM6hD,iBAAiBxoC,GAClC,KAAK,IAA6BooC,OAC9B,OAAOzhD,EAAM8hD,cAAczoC,GAC/B,QACI,OAAOrZ,EAAM+hD,cAAc1oC,GAEvC,EACArZ,EAAM+hD,cAAgB,SAAU1oC,GAC5B,IAAInhB,EACA2H,EAAKG,EAAM5G,MAAO0G,EAAKD,EAAGmiD,eAAgBA,OAAwB,IAAPliD,EAAgBE,EAAM85G,gBAAkBh6G,EAAIC,EAAKF,EAAGm8C,QAAQR,gBAAiBA,OAAyB,IAAPz7C,EAAgB,GAAKA,EAC/Kg6G,SAAgCl9G,IAAfwc,EAAKU,QAAuByhC,IAAkBA,EAAgBpuC,QAAQiM,EAAKU,QAAU,EAEtGw2C,EAAgBl3C,EAAKkT,OACnBvsB,EAAMoa,YAAY4/F,mBAClBD,IAAoC,IAAlB1gG,EAAKzX,SACnB5B,EAAMoa,YAAY6/F,gCAClBF,EACI/5G,EAAMoa,YAAY8/F,sBACA,IAAlB7gG,EAAKzX,SACD5B,EAAMoa,YAAY+/F,qBAClBn6G,EAAMoa,YAAYggG,aAChCh2F,EAAQ/K,EAAK+K,MAEb/S,EAAKrR,EAAMq5G,QAAUhgG,EAAKU,MAC1BsuB,EAA6B,QAAlBnwC,EAAKmhB,EAAKhI,UAAuB,IAAPnZ,EAAgBA,EAAKmZ,EAAK,SAC/DgpG,EAAwBr6G,EAAMoa,YAAY+/C,mBACxCn6D,EAAMoa,YAAY+/C,mBAAmBmgD,qBACrCz9G,EACN,OAAQmD,EAAM5G,MAAMukD,YAM0T,gBAAoB7X,EAAA,EAAU,CAAEz0B,GAAIA,EAAImI,IAAKH,EAAKG,IAAK5X,SAAUyX,EAAKzX,SAAUsN,SAAUlP,EAAMuiD,aAAalpC,GAAOwqB,YAAY,QAAS,CAAE,gBAAiBk2E,EAAgBt3D,aAAcziD,EAAM+wD,kBAAkBr3C,KAAK1Z,EAAOqZ,GAAOwpC,aAAc7iD,EAAMu6G,kBAAkB7gG,KAAK1Z,EAAOqZ,GAAOspC,YAAa3iD,EAAMuxD,iBAAiB73C,KAAK1Z,EAAOqZ,GAAOyB,KAAM,UAAY,CAC7qB,aAAczB,EAAKU,MACnB,sBAAuBV,EAAKzX,UAAYyX,EAAKkT,UAC7ClJ,MAAOhK,EAAK9B,KAAM6M,MAAOA,EAE7B0gB,cAAe9kC,EAAMw6G,mBAAmB9gG,KAAK1Z,GAAO,SAAS,QAAS,CAAC,EAAGqZ,GAAO,CAAEhI,GAAIg3B,KAAa3sC,WAAW,EAAAsN,EAAA,GAAIunD,EAAe,mBAAoBpuC,QAAS43F,EAAgB5gH,OAAQkhH,EAAuBv2E,kBAAoBzqB,EAAKkT,YAAyD1vB,EAAhDmD,EAAMm4G,cAAcjB,cAAc79F,EAAKU,OAAoBgqB,YAAc1qB,EAAKkT,YAA6C1vB,EAApCmD,EAAMm4G,cAAcsC,cAA2B7hG,UAAWS,EAAKT,UAAWhQ,eAAgByQ,EAAKT,eAAY/b,EAAYwrC,IAX/Z,gBAAoBjX,EAAA,EAAe,CAAE/f,GAAIA,EAAImI,IAAKH,EAAKG,IAAK,aAAcH,EAAKU,MAAO,qBAAsBV,EAAKzX,SAAUA,SAAUyX,EAAKzX,SAAUlG,UAAW60D,EAAe35C,QAAS5W,EAAMuiD,aAAalpC,GAEzOopC,aAAcziD,EAAM+wD,kBAAkBr3C,KAAK1Z,EAAOqZ,GAElDwpC,aAAc7iD,EAAMu6G,kBAAkB7gG,KAAK1Z,EAAOqZ,GAElDspC,YAAa3iD,EAAMuxD,iBAAiB73C,KAAK1Z,EAAOqZ,GAAOyB,KAAM,SAAU,gBAAiBi/F,EAAiB,OAAS,QAASnhG,UAAWS,EAAKT,UAAWwL,MAAOA,EAAO,gBAAiBpkB,EAAMm4G,cAAcjB,cAAc79F,EAAKU,OAAQ,eAAgB/Z,EAAMm4G,cAAcsC,eAAiBz4D,EAAe3oC,EAAMrZ,EAAM85G,iBAM5T,EAEA95G,EAAM85G,gBAAkB,SAAUzgG,GAC9B,OAAO,gBAAoB,OAAQ,CAAE3d,UAAWsE,EAAMoa,YAAYsgG,oBAAsBrhG,EAAK9B,KACjG,EAKAvX,EAAM26G,2BAA6B,SAAUthG,GACzC,OAAQ,gBAAoB,OAAQ,CAAEhI,GAAIgI,EAAKhI,GAAI,cAAe,OAAQ3V,UAAWsE,EAAMoa,YAAYsgG,oBAAsBrhG,EAAK9B,KACtI,EAEAvX,EAAMw6G,mBAAqB,SAAUnhG,GACjC,IAAInhB,EAAK8H,EAAM5G,MAAM4oD,eACrB,YAD6D,IAAP9pD,EAAgB8H,EAAM26G,2BAA6BziH,GACnFmhB,EAAMrZ,EAAM26G,2BACtC,EACA36G,EAAM25G,cAAgB,SAAUr+E,GACxBt7B,EAAMiY,WAAWhX,SAGjBjB,EAAMo4G,wBAAuB,WACzB,IAAI58D,EAAkBx7C,EAAM5G,MAAM4iD,QAAQR,gBAC1C,GAAIx7C,EAAMiY,WAAWhX,QACjB,IAAKjB,EAAM46G,oBACPp/D,GACAA,EAAgB,KACfx7C,EAAM5G,MAAMnB,QAAQujD,EAAgB,IAAI55C,SAAU,CACnD,IAAI9K,GAAU,EAAAiX,EAAA,KAAcg+B,eAAe,GAAGz7B,OAAOtQ,EAAMqG,IAAK,SAASiK,OAAOkrC,EAAgB,KAC5F1kD,GACAkJ,EAAMiY,WAAWhX,QAAQ2B,aAAa9L,GAE1CkJ,EAAM46G,oBAAqB,CAC/B,MAEI56G,EAAMiY,WAAWhX,QAAQE,OAGrC,IAECnB,EAAMjH,MAAM8hH,mBAAqB76G,EAAMjH,MAAM8hH,oBAAsBv/E,EAAUpI,YAC9ElzB,EAAM0T,SAAS,CACXmnG,kBAAmBv/E,EAAUpI,YAGzC,EACAlzB,EAAMuiD,aAAe,SAAUlpC,GAC3B,OAAO,SAAU3a,GACR2a,EAAKzX,WACN5B,EAAM86G,iBAAiBp8G,EAAO2a,EAAKU,OAC9B/Z,EAAM5G,MAAMukD,aAEb39C,EAAM0T,SAAS,CACX+mC,QAAQ,IAIxB,CACJ,EAKAz6C,EAAM6gD,UAAY,WACT7gD,EAAM+iD,oBAAgDlmD,IAA/BmD,EAAMgjD,qBAK9BhjD,EAAM+iD,eAAgB,GAJtBzxC,aAAatR,EAAMgjD,sBACnBhjD,EAAMgjD,0BAAuBnmD,GAKjCmD,EAAMgjD,qBAAuB5jD,OAAOmS,YAAW,WAC3CvR,EAAM+iD,eAAgB,CAC1B,GAAG/iD,EAAMk4G,iBACb,EACAl4G,EAAMu6G,kBAAoB,SAAUlhG,EAAM5a,GACtC,IAAIuB,EAAMqkD,2BAQNrkD,EAAMg4G,MAAM/2G,QACZ,GAAIjB,EAAMg4G,MAAM/2G,QAAQk4D,UACpB,IACIn5D,EAAMg4G,MAAM/2G,QAAQk4D,WACxB,CACA,MAAOtL,GAEP,MAGA7tD,EAAMg4G,MAAM/2G,QAAQE,OAGhC,EACAnB,EAAM2gD,WAAa,WACf3gD,EAAM0T,SAAS,CAAE+mC,QAAQ,GAC7B,EACAz6C,EAAM+6G,gBAAkB,SAAUt8G,GAEfuB,EAAMg7G,eAIjBh7G,EAAMjH,MAAM0hD,SAIhBz6C,EAAM0T,SAAS,CAAEosB,UAAU,IACvB9/B,EAAM5G,MAAM+vC,QACZnpC,EAAM5G,MAAM+vC,OAAO1qC,GAE3B,EACAuB,EAAMi7G,mBAAqB,SAAUx8G,GAGjC,IADeuB,EAAMg7G,gBAMrBh7G,EAAMwjD,yBAA2BxjD,EAAMk7G,aAAaz8G,IAChDuB,EAAM5G,MAAMiJ,YACZrC,EAAM5G,MAAMiJ,UAAU5D,IAClBA,EAAGopB,mBAFX,CAMA,IAAIm+B,EACA4C,EAAgB5oD,EAAM5G,MAAM4iD,QAAQR,gBAAgBhiD,OAASwG,EAAM5G,MAAM4iD,QAAQR,gBAAgB,IAAM,EACvG2/D,EAAiC18G,EAAGM,QAAUN,EAAGI,QACjD47C,EAASz6C,EAAMjH,MAAM0hD,OAEzB,OAAQh8C,EAAGqE,OACP,KAAKC,EAAA,EAASiC,MACVhF,EAAM0T,SAAS,CACX+mC,QAASA,IAEb,MACJ,KAAK13C,EAAA,EAAS4gD,OACV,IAAKlJ,EACD,OAEJz6C,EAAM0T,SAAS,CACX+mC,QAAQ,IAEZ,MACJ,KAAK13C,EAAA,EAASU,GACV,GAAI03G,EAAgC,CAChC,GAAI1gE,EAAQ,CACRz6C,EAAM0T,SAAS,CAAE+mC,QAAQ,IACzB,KACJ,CACA,MACJ,CACIz6C,EAAM5G,MAAMukD,YACZ39C,EAAM0T,SAAS,CAAE+mC,QAAQ,IAEnBz6C,EAAMg7G,gBACZh1D,EAAWhmD,EAAMo7G,WAAW38G,GAAK,EAAGmqD,EAAgB,EAAGA,IAE3D,MACJ,KAAK7lD,EAAA,EAASa,KACNu3G,IACA18G,EAAG+C,kBACH/C,EAAGyG,kBAEFi2G,IAAmC1gE,GAAWz6C,EAAM5G,MAAMukD,YAC3D39C,EAAM0T,SAAS,CAAE+mC,QAAQ,IAEnBz6C,EAAMg7G,gBACZh1D,EAAWhmD,EAAMo7G,WAAW38G,EAAI,EAAGmqD,EAAgB,EAAGA,IAE1D,MACJ,KAAK7lD,EAAA,EAAS4B,KACL3E,EAAM5G,MAAMukD,cACbqI,EAAWhmD,EAAMo7G,WAAW38G,EAAI,EAAG,EAAGmqD,IAE1C,MACJ,KAAK7lD,EAAA,EAAS+B,IACL9E,EAAM5G,MAAMukD,cACbqI,EAAWhmD,EAAMo7G,WAAW38G,GAAK,EAAGuB,EAAM5G,MAAMnB,QAAQuB,OAAS,EAAGovD,IAExE,MACJ,KAAK7lD,EAAA,EAASC,MAEV,MACJ,QACI,OAEJgjD,IAAa4C,IACbnqD,EAAG+C,kBACH/C,EAAGyG,iBAjEP,CAmEJ,EACAlF,EAAMq7G,iBAAmB,SAAU58G,GAG/B,IADeuB,EAAMg7G,cACrB,CAGA,IAAI72D,EAAkBnkD,EAAMs7G,mBAAmB78G,GAC3Cg8C,EAASz6C,EAAMjH,MAAM0hD,OACrBz6C,EAAM5G,MAAMyvB,UACZ7oB,EAAM5G,MAAMyvB,QAAQpqB,GAChBA,EAAGopB,oBAKHppB,EAAGqE,QACFC,EAAA,EAASC,OACVhD,EAAM0T,SAAS,CACX+mC,QAASA,IASrBh8C,EAAG+C,kBACH/C,EAAGyG,kBANSi/C,GAAmB1J,GACnBz6C,EAAM0T,SAAS,CAAE+mC,QAAQ,IAlBrC,CAwBJ,EACAz6C,EAAMu7G,eAAiB,SAAU98G,GAC7B,IAAIvG,EAAI2H,EACJsI,EAGJnI,EAAMwjD,yBAA2BxjD,EAAMk7G,aAAaz8G,GACpD,IAAI08G,EAAiC18G,EAAGM,QAAUN,EAAGI,QAErD,OAAQJ,EAAGqE,OACP,KAAKC,EAAA,EAASU,GACN03G,EACAn7G,EAAM0T,SAAS,CAAE+mC,QAAQ,IAGrBz6C,EAAMg4G,MAAM/2G,UACZkH,GAAiB,QAAiBnI,EAAMg4G,MAAM/2G,QAASjB,EAAMg4G,MAAM/2G,QAAQ8D,WAAW,IAG9F,MAGJ,KAAKhC,EAAA,EAAS4B,KACd,KAAK5B,EAAA,EAAS+B,IACd,KAAK/B,EAAA,EAASiB,OACd,KAAKjB,EAAA,EAASe,SACV,MACJ,KAAKf,EAAA,EAASa,MACLu3G,GAAkCn7G,EAAMg4G,MAAM/2G,UAC/CkH,GAAiB,QAAkBnI,EAAMg4G,MAAM/2G,QAASjB,EAAMg4G,MAAM/2G,QAAQ4B,YAAY,IAE5F,MACJ,KAAKE,EAAA,EAAS4gD,OACV3jD,EAAM0T,SAAS,CAAE+mC,QAAQ,IACzB,MACJ,KAAK13C,EAAA,EAASkB,IACVjE,EAAM0T,SAAS,CAAE+mC,QAAQ,IACzB,IAAI+gE,GAAa,EAAAztG,EAAA,KACbytG,IACI/8G,EAAGK,SAC+F,QAAjG5G,GAAK,QAAmBsjH,EAAWvkH,KAAM+I,EAAMi4G,UAAUh3G,SAAS,GAAO,GAAO,GAAM,UAA0B,IAAP/I,GAAyBA,EAAGiJ,QAGxC,QAA7FtB,GAAK,QAAe27G,EAAWvkH,KAAM+I,EAAMi4G,UAAUh3G,SAAS,GAAO,GAAO,GAAM,UAA0B,IAAPpB,GAAyBA,EAAGsB,SAG1I,MACJ,QACI,OAEJgH,GACAA,EAAehH,QAEnB1C,EAAG+C,kBACH/C,EAAGyG,gBACP,EACAlF,EAAMy7G,aAAe,SAAUh9G,GACLuB,EAAMs7G,mBAAmB78G,IACxBuB,EAAMjH,MAAM0hD,SAC/Bz6C,EAAM0T,SAAS,CAAE+mC,QAAQ,IACzBh8C,EAAGyG,iBAEX,EACAlF,EAAM07G,iBAAmB,SAAUj9G,GAC/B,IAAIuB,EAAM5G,MAAMwd,UACZ5W,EAAM5G,MAAMwd,QAAQnY,IAChBA,EAAGopB,kBAFX,CAMA,IAAI4yB,EAASz6C,EAAMjH,MAAM0hD,OACVz6C,EAAMg7G,eACHh7G,EAAM27G,sBACpB37G,EAAM0T,SAAS,CACX+mC,QAASA,IAGjBz6C,EAAM47G,mBAAoB,CAR1B,CASJ,EACA57G,EAAM67G,qBAAuB,WACzB77G,EAAM47G,mBAAoB,CAC9B,EACA57G,EAAMI,SAAW,SAAU3B,GAEvB,IADeuB,EAAMg7G,cACN,CACPh7G,EAAM5G,MAAMuH,SACZX,EAAM5G,MAAMuH,QAAQlC,GAExB,IAAI1F,EAAQ,CAAE+mC,UAAU,GACpB9/B,EAAM27G,uBACN5iH,EAAM0hD,QAAS,GAEnBz6C,EAAM0T,SAAS3a,EACnB,CACJ,EAKAiH,EAAMg7G,YAAc,WAChB,IAAIp5G,EAAW5B,EAAM5G,MAAMwI,SAEvBwrD,EAAaptD,EAAM5G,MAAMg0D,WAK7B,YAHiBvwD,IAAb+E,IACAA,EAAWwrD,GAERxrD,CACX,EACA5B,EAAMkhD,eAAiB,SAAU9nD,GAC7B,IAAIiqB,EAAQjqB,EAAMiqB,MAAOugB,EAAWxqC,EAAMwqC,SAAUhiC,EAAWxI,EAAMwI,SACjE+nD,EAAc3pD,EAAMoa,YAAY+/C,mBAC9Bn6D,EAAMoa,YAAY+/C,mBAAmB92C,WACrCxmB,EACN,OAAOwmB,EAAS,gBAAoB2pB,EAAA,EAAO,CAAEtxC,UAAWsE,EAAMoa,YAAYiJ,MAAOhS,GAAIrR,EAAM8mB,SAAU8c,SAAUA,EAAUzqC,OAAQwwD,EAAa/nD,SAAUA,GAAYyhB,GAAU,IAClL,GACA,EAAAjd,EAAA,GAAuBpG,GACL5G,EAAMukD,YAA2BvkD,EAAMgzC,YAA4BhzC,EAAMiiD,aAAmCjiD,EAAM6yC,mBAA0C7yC,EAAMi+G,oBAApL,IAAyMp/G,EAAUmB,EAAMnB,QAgDzN,OAZA+H,EAAMqG,IAAMjN,EAAMiY,KAAM,EAAA/K,EAAA,GAAM,YAC9BtG,EAAM8mB,SAAW9mB,EAAMqG,IAAM,SAC7BrG,EAAMq5G,QAAUr5G,EAAMqG,IAAM,QAC5BrG,EAAM87G,UAAY97G,EAAMqG,IAAM,UAC9BrG,EAAM+iD,eAAgB,EACtB/iD,EAAM46G,oBAAqB,EAC3B56G,EAAMm4G,cAAcvB,cAAc3+G,GAClC+H,EAAMjH,MAAQ,CACV0hD,QAAQ,EACR3a,UAAU,EACV+6E,uBAAmBh+G,GAEhBmD,CACX,CAmPA,OAhyBA,QAAU83G,EAAkBl4G,GA8iB5BzC,OAAOgN,eAAe2tG,EAAiBv6G,UAAW,kBAAmB,CAIjE6M,IAAK,WACD,IAAIlS,EAAK4F,KAAK1E,MAAOnB,EAAUC,EAAGD,QAASujD,EAAkBtjD,EAAG8jD,QAAQR,gBACxE,OAAO,OAAsBvjD,EAASujD,EAC1C,EACAnxC,YAAY,EACZC,cAAc,IAElBwtG,EAAiBv6G,UAAU6K,qBAAuB,WAC9CkJ,aAAaxT,KAAKklD,qBACtB,EACA80D,EAAiBv6G,UAAUuK,mBAAqB,SAAUsjB,EAAWC,IACxC,IAArBA,EAAUovB,SAAyC,IAAtB38C,KAAK/E,MAAM0hD,SACxC38C,KAAKymD,eAAgB,EACrBzmD,KAAK88G,oBAAqB,EACtB98G,KAAK1E,MAAMwuB,WACX9pB,KAAK1E,MAAMwuB,YAGvB,EACAkwF,EAAiBv6G,UAAUxB,OAAS,WAChC,IAAIsV,EAAKvT,KAAKuI,IACVjN,EAAQ0E,KAAK1E,MACbsC,EAAYtC,EAAMsC,UAAW2nB,EAAQjqB,EAAMiqB,MAAOprB,EAAUmB,EAAMnB,QAAS2gB,EAAYxf,EAAMwf,UAAWgrB,EAAWxqC,EAAMwqC,SAAUyW,EAAejhD,EAAMihD,aAAc0hE,EAAa3iH,EAAMD,OAAQH,EAAQI,EAAMJ,MAAOigH,EAAa7/G,EAAM6/G,WAAYj5D,EAAe5mD,EAAM4mD,aAAc9nD,EAAKkB,EAAM06E,cAAeA,OAAuB,IAAP57E,EAAgB4F,KAAK+6G,UAAY3gH,EAAI2H,EAAKzG,EAAM6rD,kBAAmBA,OAA2B,IAAPplD,EAAgB/B,KAAKgiD,mBAAqBjgD,EAAIC,EAAK1G,EAAM4iH,kBAAmBA,OAA2B,IAAPl8G,EAAgBhC,KAAK87G,mBAAqB95G,EAAIC,EAAK3G,EAAM0rC,cAAeA,OAAuB,IAAP/kC,EAAgBjC,KAAKojD,eAAiBnhD,EAAIid,EAAK5jB,EAAM4f,aAAcA,OAAsB,IAAPgE,EAAgBlf,KAAKmc,cAAgB+C,EAAIw+B,EAAkBpiD,EAAM4iD,QAAQR,gBAC5uBjsB,EAAKzxB,KAAK/E,MAAO0hD,EAASlrB,EAAGkrB,OAAQogE,EAAoBtrF,EAAGsrF,kBAAmB/6E,EAAWvQ,EAAGuQ,SAE7Fm8E,EAAsB7iH,EAAM6iH,qBAAuB7iH,EAAM8iH,qBAAuBp+G,KAAK66G,gBAErF1gH,IAAY6F,KAAKq6G,cAAcgE,eAC/Br+G,KAAKq6G,cAAcvB,cAAc3+G,GAErC,IAAImkH,GAAkB,OAAsBnkH,EAASujD,GACjD3yC,GAAW,QAAezP,EAAO,MACjCwI,EAAW9D,KAAKk9G,cAChB59D,EAAiB/rC,EAAK,gBAC1BvT,KAAKsc,YAAc3C,EAAcskG,EAAY,CACzC/iH,MAAOA,EACP0C,UAAWA,EACX2gH,YAAahiE,GAAgBA,EAAa7gD,OAAS,GACnD8iH,WAAYj5F,EACZo3B,OAAQA,EACR7W,SAAUA,EACVhiC,SAAUA,EACV26G,wBAAyBH,EAAgB5iH,OACzCgjH,eAAgBvD,EAAaA,EAAWv9G,eAAYmB,EACpD4/G,iBAAkBz8D,EAAeA,EAAatkD,eAAYmB,EAC1Dg+G,kBAAmBA,IAEvB,IAAIlgE,IAAoBN,GAAgBA,EAAa7gD,OAAS,EAC9D,OAAQ,gBAAoB,MAAO,CAAEkC,UAAWoC,KAAKsc,YAAY7S,KAAM6B,IAAKtL,KAAK1E,MAAM4iD,QAAQne,QAAS,YAAa4c,EAAS38C,KAAKu7G,aAAUx8G,GACzIioC,EAAchnC,KAAK1E,MAAO0E,KAAKojD,gBAC/B,gBAAoB,OAAO,QAAS,CAAE,qBAAsBt/C,EAAU,mBAAmB,EAAMwH,IAAKtL,KAAKm6G,UAAW5mG,GAAIA,EAAItG,SAAUnJ,GAAY,EAAI,EAAGkZ,KAAM,WAAY,gBAAiB,UAAW,gBAAiB2/B,EAAS,OAAS,QAAS,aAAc7hC,EAAW,kBAAmByK,IAAUzK,GAAY,OAAyB9a,KAAKgpB,SAAUhpB,KAAKg+G,gBAAaj/G,EAAW,mBAAoB89C,EAAkB78C,KAAKuI,IAAM,qBAAkBxJ,EAAW,gBAAiB+mC,EAAU,gBAAiBhiC,EAAU,gBAAiB64C,EAAS38C,KAAKu7G,aAAUx8G,GAAagM,EAAU,CAAEnN,UAAWoC,KAAKsc,YAAYsiG,SAAUvzE,OAAQrrC,KAAKi9G,gBAAiB14G,UAAWvE,KAAKm9G,mBAAoBpyF,QAAS/qB,KAAKu9G,iBAAkBzkG,QAAS9Y,KAAK49G,iBAAkBxyF,YAAaprB,KAAK+9G,qBAAsBl7G,QAAS7C,KAAKsC,WAC1xB,gBAAoB,OAAQ,CAAEiR,GAAIvT,KAAKg+G,UAAWpgH,UAAWoC,KAAKsc,YAAYgK,MAAO,YAAa0b,EAAW,cAAWjjC,EAAW,gBAAeijC,QAAkBjjC,EAAW,eAAgB89C,GAE/LyhE,EAAgB5iH,OACVs6E,EAAcsoC,EAAiBt+G,KAAKi7G,gBACpCkD,EAAoB7iH,EAAO0E,KAAKk7G,uBACtC,gBAAoB,OAAQ,CAAEt9G,UAAWoC,KAAKsc,YAAYuiG,kBAAoBX,EAAkB5iH,EAAO0E,KAAK87G,sBAChHn/D,GACIwK,GAAkB,SAAS,QAAS,CAAC,EAAG7rD,GAAQ,CAAEwuB,UAAW9pB,KAAK6iD,WAAY3nC,aAAcA,IAAiBlb,KAAKgiD,oBACtHnF,GAAoB,gBAAoB,MAAO,CAAE7/B,KAAM,QAASzJ,GAAI+rC,EAAgB1hD,UAAWoC,KAAKsc,YAAYigC,cAAgBA,GACxI,EACAy9D,EAAiBv6G,UAAU4D,MAAQ,SAAUu7C,GACrC5+C,KAAKm6G,UAAUh3G,UACfnD,KAAKm6G,UAAUh3G,QAAQE,QACnBu7C,GACA5+C,KAAK4V,SAAS,CACV+mC,QAAQ,IAIxB,EACAq9D,EAAiBv6G,UAAUu9G,iBAAmB,SAAUp8G,EAAOqb,GAC3D,IAAI7hB,EAAK4F,KAAK1E,MAAOnB,EAAUC,EAAGD,QAASm0C,EAAcl0C,EAAGk0C,YAAaiP,EAAenjD,EAAGmjD,aAAcsC,EAAczlD,EAAGylD,YAAai/D,EAAmB1kH,EAAG0kH,iBAAkB/8G,EAAK3H,EAAG8jD,QAAQR,gBAAiBA,OAAyB,IAAP37C,EAAgB,GAAKA,EACnPsiB,IAAUq5B,GAAkBA,EAAgBpuC,QAAQ2M,IAAU,EAC9D8iG,EAAa,GAGjB,GAFA9iG,EAAQpU,KAAKsgD,IAAI,EAAGtgD,KAAKugD,IAAIjuD,EAAQuB,OAAS,EAAGugB,SAE7Bld,IAAhBuvC,QAA8CvvC,IAAjBw+C,GAIjC,GAAKsC,GAAgBi/D,GAAoB7iG,IAAUyhC,EAAgB,GAAnE,CAGK,GAAImC,EAEL,GADAk/D,EAAarhE,EAAkB19C,KAAKg/G,WAAWthE,GAAmB,GAC9Dr5B,EAAS,CACT,IAAInD,EAAW69F,EAAWzvG,QAAQ2M,GAC9BiF,GAAY,GAEZ69F,EAAWrkG,OAAOwG,EAAU,EAEpC,MAGI69F,EAAWphH,KAAKse,QAKpB8iG,EAAa,CAAC9iG,GAElBrb,EAAMsoD,UAENlpD,KAAK1E,MAAM4iD,QAAQP,mBAAmBohE,GACtC/+G,KAAK06G,UAAU95G,EAAOzG,EAAS8hB,EAAOoI,EAASw7B,EAJ/C,OAvBI7/C,KAAK06G,UAAU95G,EAAOzG,EAAS8hB,EAAOoI,EAASw7B,EA4BvD,EACAm6D,EAAiBv6G,UAAUu/G,WAAa,SAAUC,GAE9C,IADA,IAAIC,EAAW,GACN1jH,EAAK,EAAG2jH,EAAUF,EAAOzjH,EAAK2jH,EAAQzjH,OAAQF,IAAM,CACzD,IAAIxC,EAAUmmH,EAAQ3jH,GACtB0jH,EAASvhH,KAAK3E,EAClB,CACA,OAAOkmH,CACX,EAQAlF,EAAiBv6G,UAAU69G,WAAa,SAAU18G,EAAOw+G,EAAWnjG,EAAO6uC,GACvE,IAAI3wD,EAAU6F,KAAK1E,MAAMnB,QAEzB,GAAI2wD,IAAkB7uC,GAA4B,IAAnB9hB,EAAQuB,OACnC,OAAOovD,EAUP7uC,GAAS9hB,EAAQuB,OACjBugB,EAAQ,EAEHA,EAAQ,IACbA,EAAQ9hB,EAAQuB,OAAS,GAI7B,IAFA,IAAI2jH,EAAc,EAEXllH,EAAQ8hB,GAAOynC,WAAa,IAAqBC,QACpDxpD,EAAQ8hB,GAAOynC,WAAa,IAAqBG,SACjD1pD,EAAQ8hB,GAAOnY,UAAU,CAEzB,GAAIu7G,GAAellH,EAAQuB,OACvB,OAAOovD,EAGP7uC,EAAQmjG,EAAY,EACpBnjG,EAAQ9hB,EAAQuB,OAEXugB,EAAQmjG,GAAajlH,EAAQuB,SAClCugB,GAAS,GAEbA,GAAgBmjG,EAChBC,GACJ,CAEA,OADAr/G,KAAKg9G,iBAAiBp8G,EAAOqb,GACtBA,CACX,EAEA+9F,EAAiBv6G,UAAUm8G,qBAAuB,SAAUtgH,GACxD,IAAIlB,EAAKkB,EAAM2mD,aAAcA,OAAsB,IAAP7nD,EAAgB4F,KAAKijD,cAAgB7oD,EAAImrB,EAAQjqB,EAAMiqB,MAAOzK,EAAYxf,EAAMwf,UAAW+kC,EAAcvkD,EAAMukD,YAC3J,OAAQ,gBAAoB,MAAO,CAAEjiD,UAAWoC,KAAKsc,YAAYgjG,qBAAsB/6G,UAAWvE,KAAKy9G,eAAgB1yF,QAAS/qB,KAAK29G,aAAcryG,IAAKtL,KAAKk6G,MAAOjtG,SAAU,GAC1K,gBAAoBpL,EAAA,EAAW,CAAEyJ,IAAKtL,KAAKma,WAAYhW,UAAW,IAAmBmB,SAAUiO,GAAIvT,KAAKu7G,QAAS39G,UAAWoC,KAAKsc,YAAYijG,cAAeviG,KAAM,UAAW,aAAclC,EAAW,kBAAmByK,IAAUzK,EAAY9a,KAAKgpB,cAAWjqB,EAAW,uBAAwB8gD,GAAeoC,EAAa3mD,EAAO0E,KAAKijD,gBAClV,EACA+2D,EAAiBv6G,UAAUskD,iBAAmB,SAAUxoC,GACpD,IAAIU,EAAQV,EAAKU,MAAOP,EAAMH,EAAKG,IAC/B8jG,EAAqBjkG,EAAKkT,OAASzuB,KAAKsc,YAAYmjG,sBAAwBz/G,KAAKsc,YAAYojG,gBACjG,OAAIzjG,EAAQ,EACD,gBAAoB,MAAO,CAAEe,KAAM,eAAgBtB,IAAKA,EAAK9d,UAAW4hH,IAE5E,IACX,EACAxF,EAAiBv6G,UAAUukD,cAAgB,SAAUzoC,GACjD,IAAInhB,EAAK4F,KAAK1E,MAAM4oD,eAAgBA,OAAwB,IAAP9pD,EAAgB4F,KAAKg8G,gBAAkB5hH,EACxFshB,EAAMH,EAAKG,IAAKnI,EAAKgI,EAAKhI,GAC1BgvE,EAAkBhnE,EAAKkT,OACrBzuB,KAAKsc,YAAYqjG,yBACjB3/G,KAAKsc,YAAYsjG,mBACvB,OAAQ,gBAAoB,MAAO,CAAErsG,GAAIA,EAAImI,IAAKA,EAAK9d,UAAW2kF,GAAmBr+B,EAAe3oC,EAAMvb,KAAKg8G,iBACnH,EACAhC,EAAiBv6G,UAAUwzD,kBAAoB,SAAU13C,EAAM5a,GACvDX,KAAKumD,2BAGW5lD,EAAGwyD,cACT9vD,OAClB,EACA22G,EAAiBv6G,UAAUg0D,iBAAmB,SAAUl4C,EAAM5a,GAC1D,IAAIwM,EAAgBxM,EAAGwyD,cACvBnzD,KAAKymD,eAAgB,EAChBzmD,KAAKilD,eAAiB/rD,SAASwL,gBAAkByI,GAGtDA,EAAc9J,OAClB,EACA22G,EAAiBv6G,UAAU8mD,wBAA0B,WACjD,OAAQvmD,KAAKilD,gBAAkBjlD,KAAKymD,aACxC,EAIAuzD,EAAiBv6G,UAAU29G,aAAe,SAAUz8G,GAEhD,OAAOA,EAAGqE,QAAUC,EAAA,EAASmhB,KAAkB,SAAXzlB,EAAG+a,GAC3C,EAWAs+F,EAAiBv6G,UAAU+9G,mBAAqB,SAAU78G,GACtD,IAAIylD,EAA2BpmD,KAAK0lD,0BAA4B1lD,KAAKo9G,aAAaz8G,GAElF,OADAX,KAAK0lD,0BAA2B,IACvBU,MAA8B,WAAW,SACtD,EAKA4zD,EAAiBv6G,UAAUo+G,mBAAqB,WAC5C,IAAI77E,EAAWhiC,KAAK/E,MAAM+mC,SACtBskB,EAAsBtmD,KAAK1E,MAAMgrD,oBACrC,OAAQtmD,KAAK89G,oBAA6C,IAAxBx3D,IAAiCtkB,CACvE,EACAg4E,EAAiBrxG,aAAe,CAC5BxO,QAAS,IAEN6/G,CACX,CAlyBqC,CAkyBnC,a,iCCr4BEt7F,EAAmB,CACnBjV,KAAM,wBACN8b,MAAO,oBACPq5F,SAAU,cACVt4F,MAAO,oBACPu4F,iBAAkB,+BAClB9C,UAAW,wBACX5gF,QAAS,sBACTqb,MAAO,oBACP+oE,cAAe,oBACfjD,aAAc,mBACdoD,gBAAiB,sBACjB9C,mBAAoB,yBACpBgD,mBAAoB,qBACpBC,mBAAoB,iCACpBC,cAAe,+BAIfC,IAA2B3lH,EAAK,CAAC,GAC9B,GAAGoY,OAAO,KAAsB,MAAMA,OAAO,KAA0Bw+B,QAAQ,UAAW,OAAQ,QAAS,CAAC,GAAG,WAClH52C,GACA4lH,EAAqC,CACrC50G,WAAW,SAAUrJ,EAAK,CAAC,EAAGA,EAAG,MAAwB,CACrDwe,gBAAiB,YACjB2B,YAAa,YACbnI,MAAO,iBACRhY,EAAG,0BAA4BC,EAAK,CAAC,EACpCA,EAAG,MAAwB,CACvBkgB,YAAa,iBAEjBlgB,GAAKD,GAAKg+G,IAEdE,EAA0B,CAC1B70G,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBigB,YAAa,aAEjBjgB,IAEJ6c,GAAwB,QAAkB,EAAG,ME1CtCohG,GAAW,EAAAjhG,EAAA,GAAOo6F,GF2CN,SAAU/9G,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAC5Cv3B,EAAQI,EAAMJ,MAAOqjH,EAAWjjH,EAAMijH,SAAUC,EAAWljH,EAAMkjH,SAAU5gH,EAAYtC,EAAMsC,UAAW++C,EAASrhD,EAAMqhD,OAAQ74C,EAAWxI,EAAMwI,SAAUgiC,EAAWxqC,EAAMwqC,SAAU24E,EAAyBnjH,EAAMmjH,uBAAwBC,EAAiBpjH,EAAMojH,eAAgBC,EAAmBrjH,EAAMqjH,iBAAkB5B,EAAoBzhH,EAAMyhH,kBAC5V,IAAK7hH,EACD,MAAM,IAAI0D,MAAM,mEAEpB,IAAIuhH,GAAmB,QAAoBzhG,EAAkBxjB,GACzDikB,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MACvGghG,EAA+C,CAC/CrmG,MAAOC,EAAes/B,qBAEtB+mE,EAAkD,CAClDtmG,MAAOC,EAAesmG,cAEtBC,EAAmB,CACnBr+F,YAAalI,EAAeuhC,WAE5BilE,EAAoB,CACpBL,EAAiB7D,aACjB,CACI/7F,gBAAiB,cACjB+P,UAAW,aACX5Y,OAAQ,UACRqJ,QAAS,OACTC,WAAY,SACZN,QAAS,QACTtY,MAAO,OACPurB,UAlDe,GAmDfhT,WAAY,GACZzR,OAAQ,EACRgS,SAAU,WACVe,OAAQ,wBACRmO,aAAc,EACdwpB,SAAU,aACVC,aAAc,aACdlqB,UAAW,OACX,2BAA4B,CACxBvnB,MAAO,UAIfq4G,EAAsB,CACtBN,EAAiBP,oBACjB,SAAS,QAAS,CAAC,EAAGxgG,EAAMyB,QAAS,CAAER,WAAY,KAAYJ,SAAUlG,MAAOC,EAAeyhC,WAAY9V,WAAY,OAAQplB,gBAAiB,cAAe0B,OAAQ,OAAQ/S,OAlE5J,GAkE0LyR,WAlE1L,GAkE4NjJ,OAAQ,UAAWgJ,QAAS,QAAS6P,WAAY,OAAQZ,UAAW,OAAQvkB,WAAYhR,EAAK,CAAC,EACrUA,EAAG,OAAwB,QAAS,CAAE2f,MAAO,aAAc,WAC3D3f,MAERsmH,EAA8B1mG,EAAewF,0BAC7CmhG,EAAgB,SAAUvnE,GAC1B,IAAIh/C,EAAI2H,EAER,YADmB,IAAfq3C,IAAyBA,GAAa,GACnC,CACHhuC,WAAYhR,EAAK,CACT,UAAW,CACP,CACI2f,MAAOC,EAAes/B,oBACtB/4B,gBAAkB64B,EAAwDsnE,EAA3C1mG,EAAesF,2BAElD0gG,GAEJ,0BAA2B,CACvB,CAAEz/F,gBAAkB64B,EAA6BsnE,EAAhB,eACjCV,GAEJ,iBAAkB,CACd,CACIjmG,MAAOC,EAAes/B,oBACtB/4B,gBAAkB64B,EAEZp/B,EAAesF,0BADftF,EAAewF,2BAGzBwgG,IAGR5lH,EAAG,IAAIoY,OAAO,KAAyB,oBAAsBzQ,EAAK,CAC1DsD,KAAM,EACN0C,IAAK,EACLE,OAAQ,EACRxC,MAAO,GAEX1D,EAAG,MAAwB,CACvBouB,MAAO,OAEXpuB,GACJ3H,EAAG,MAAwB,CACvB6nB,OAAQ,QAEZ7nB,GAEZ,EACIgiH,GAAuB,SAAc,QAAc,GAAIoE,GAAmB,GAAO,CACjF,CACIjgG,gBAAiBmgG,EACjB3mG,MAAOC,EAAes/B,qBAE1BqnE,GAAc,GACdX,IACD,GACC3D,GAAuB,SAAc,QAAc,GAAImE,GAAmB,GAAO,CACjF,CACIzmG,MAAOC,EAAegW,aACtBtY,OAAQ,UACRtM,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,WACPkI,OAAQ,QAEZlgB,MAET,GACC6+G,EAAwB7D,IAAsB,IAAc90G,OAC1D,GAAGuK,OAAOqd,EAAQQ,eAAgB,KAAK7d,OAAOqd,EAAQQ,eAAgB,QACtE,OAAO7d,OAAOqd,EAAQQ,eAAgB,KAAK7d,OAAOqd,EAAQQ,gBAC5DwwF,EAA0B9D,IAAsB,IAAc90G,OAC5D,OAAOuK,OAAOqd,EAAQQ,eAAgB,KAAK7d,OAAOqd,EAAQQ,gBAC1D,GAAG7d,OAAOqd,EAAQQ,eAAgB,KAAK7d,OAAOqd,EAAQQ,eAAgB,QAC5E,MAAO,CACH5mB,KAAM,CAAC02G,EAAiB12G,KAAM7L,GAC9B2nB,MAAO46F,EAAiB56F,MACxBq5F,SAAU,CACNuB,EAAiBvB,SACjB,KACAx/F,EAAMyB,OACN,CACI9G,MAAOC,EAAesmG,aACtBp+F,YAAalI,EAAe0yB,YAC5BxrB,SAAU,WACV7V,QAAS,EACTklB,WAAY,OACZnlB,WAAYpJ,EAAK,CAAC,EACdA,EAAG,YAAcm+G,EAAiB75F,OAAS,EACtCxiB,GAAYs8G,EACb,CAAEl+F,YAAay6B,EAASx9B,EAAQO,iBAAmBP,EAAQW,gBAC3DmgG,GAEJj+G,EAAG,YAAcm+G,EAAiB75F,OAAS,EACtCxiB,GAAYs8G,EACb,CAAEh1G,WAAYnJ,EAAK,CAAC,EAAGA,EAAG,MAAwB,CAAE8X,MAAO,aAAe9X,KAE9ED,EAAG,iBAAmB,CAClB,CACIsyB,cAAe,OACftW,QAAS,KACTkD,SAAU,WACVoP,UAAW,aACXvoB,IAAK,MACL1C,KAAM,MACN+C,MAAO,OACP8G,OAAQ,OAER+S,OAASne,EAAuD,OAA5C,aAAa0O,OAAO2M,EAAQiD,cAChDgO,aAAc,MACdhlB,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnF,MAAO,aAEXmF,KAGZld,EAAG,aAAem+G,EAAiB75F,OAAS,EACvCxiB,GAAYs8G,EACb,CAAEl+F,YAAa/C,EAAQiD,cACvB69F,GAEJj+G,EAAG,YAAcm+G,EAAiBpE,YAAcj4G,GAAYu8G,EAC5Dr+G,EAAG,YAAcm+G,EAAiBpE,WAAa,EAC1Cj4G,GAAYu8G,EACb,CAAEj1G,WAAYqmB,EAAK,CAAC,EAAGA,EAAG,MAAwB,CAAE1X,MAAO,aAAe0X,KAE9EzvB,EAAG,aAAem+G,EAAiBpE,YAAcj4G,GAAYu8G,EAC7Dr+G,EAAG,YAAcm+G,EAAiBN,qBAAuB/7G,GAAYu8G,EACrEr+G,EAAG,YAAcm+G,EAAiBN,qBAAuB/7G,GAAYu8G,EACrEr+G,EAAG,aAAem+G,EAAiBN,qBAAuB/7G,GAAYu8G,EACtEr+G,EAAG,YAAcm+G,EAAiBL,eAAiBS,EACnDv+G,EAAG,aAAem+G,EAAiBL,eAAiBS,EACpDv+G,IAER26C,GAAU,UACV74C,GAAY,cACZgiC,GAAY,cACZA,IACK04E,GAAY,CACbpzG,WAAYsmB,EAAK,CACT,UAAW,CACP1T,QAAS,MACTjE,MAAOC,EAAeuhC,UACtBr6B,SAAU,WACVnZ,KAAM,EACNtC,OAAQ,KAGhBisB,EAAG,MAAwB,CACvBtmB,UAAW,CACP,SAAU,CACN3F,OAAQ,MAIpBisB,KAGZpL,MAAO,CACH65F,EAAiB75F,MACjB,KACA,CACI/F,gBAAiBvG,EAAeqhC,gBAChC5W,YAAa,EACbC,YAAa,QACbxiB,YAAalI,EAAeghC,YAC5B5qB,aAAcusB,EAASikE,EAAwB/wF,EAAQQ,eACvD3Y,OAAQ,UACRqJ,QAAS,QACT7R,OA5OM,GA6ONyR,WAAYmgG,GACZpgG,QAAS,eACTQ,SAAU,WACVpE,SAAU,SACV8B,WAAY,SACZC,aAAc,YAElB4/F,GAA0B,CAAC0B,EAAiBN,mBAAoB,CAAE9lG,MAAOC,EAAe8hC,uBACxFyiE,GAAY,CAAC4B,EAAiBL,cAAeS,GAC7Cz8G,GAAY,CACRyc,gBAAiBvG,EAAe+V,mBAChC9N,OAAQ,OACRlI,MAAOC,EAAegW,aACtBtY,OAAQ,UACRtM,WAAYumB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE1P,OAAQ,qBAAsBlI,MAAO,WAAYwG,gBAAiB,WAAY,WACpHoR,KAGZktF,iBAAkB,CACdsB,EAAiBtB,iBACjB,CACI3vG,OAnQM,GAoQNyR,WAAYmgG,GACZxzE,WAAY,EACZpsB,SAAU,WACVzb,MAAO,EACPsC,IAAK,IAERjE,GAAY,CACT4T,OAAQ,YAGhBqkG,UAAW,CACPoE,EAAiBpE,UACjB,CAAEhiG,MAAOoF,EAAQO,iBAAkBkB,SAAUxB,EAAMiC,MAAMT,SAAU0T,cAAe,QAClFxwB,GAAY,CACRiW,MAAOC,EAAegW,aACtB5kB,WAAYwmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE7X,MAAO,aAAc,WAC3D6X,KAGZ2qB,cAAc,SAAS,QAAS,CAAExiC,MAAOC,EAAeuhC,WAAargD,EAAMkkB,MAAMiC,OAAQ,CAAEisB,WAAY,IACvGnS,QAAS,CACLglF,EAAiBhlF,QACjB,CACIoJ,UAAW1U,EAAQmiB,WACnB5hB,aAAcywF,EACdz1G,WAAYmnB,EAAK,CAAC,EACdA,EAAG,oBAAsB,CAAEnC,aAAcywF,GACzCtuF,IAERosF,GAEJW,qBAAsB,CAAEl0G,UAAW,CAAE,UAAW,CAAEC,QAAS,KAC3Dk0G,cAAe,CAACY,EAAiBZ,cAAe,CAAEx+F,QAAS,UAC3Du7F,cAAc,SAAc,QAAc,GAAIkE,GAAmB,GAAO,CAACG,MAAkB,GAC3FvE,qBAAsBA,EACtBC,qBAAsBA,EACtBF,gCAAiC,CAACC,EAAsBC,EAAsB,CAAE97F,gBAAiB,gBACjG27F,oBAAoB,SAAc,QAAc,GAAIsE,GAAmB,GAAO,CAAC,CAAEz/F,QAAS,UAAW,GACrG2+F,gBAAiB,CAACS,EAAiBT,gBAAiB,CAAExwG,OAAQ,EAAGqR,gBAAiBvG,EAAe2hC,cACjG8jE,sBAAuB,CAACU,EAAiBT,gBAAiB,CAAE3+F,QAAS,SACrE67F,mBAAoB,CAChBuD,EAAiBvD,mBACjB,CACI9/F,SAAU,SACV8B,WAAY,SACZC,aAAc,WACdiU,SAAU,EACVY,SAAU,OACVkmB,SAAU,aACVC,aAAc,aACd/4B,OAAQ,QAGhB8+F,mBAAoBa,EACpBd,0BAA0B,SAAc,QAAc,GAAIc,GAAqB,GAAO,CAAC,CAAE1/F,QAAS,UAAW,GAC7Gs7C,mBAAoB,CAChB92C,MAAO,CAAE9b,KAAM,CAAEsX,QAAS,iBAC1By7F,gBAAiB,CACb/yG,KAAM,CACFiX,QAAS,GAEb6E,MAAO,CACHotD,UAAW,UACXjyD,QAAS,QACTtY,MAAO,QAEXq/B,MAAO,CACHr8B,WAAYonB,EAAK,CAAC,EACdA,EAAG,IAAIhgB,OAAO,KAAyB,6BAA+B,CAClEq3B,cAAe,OAEnBrX,KAGZgkB,MAAO,CACH/sC,KAAM,CAACi1G,GACPpN,KAAM,CACFlmG,WAAYqnB,EAAK,CAAC,EAEdA,EAAG3T,GAAyB,CAExB1W,MAAO,KAEXqqB,IAERsuF,aAAc,CAAErgG,QAAS,cAIzC,QEjXsD3hB,EAAW,CAC7D0iB,MAAO,aAEXy+F,EAASzlH,YAAc,U,gMCFZonB,GAAY,EAAA8E,EAAA,KAAgB,SAAUzrB,EAAO0C,EAAWkkB,GAC/D,IAAIC,GAAmB,OAAoB7mB,GACvC8lH,GAAqB,QAAgBj/F,EAAkBD,GAC3D,OAAO,SAAS,QAAS,CAAC,EAAGk/F,GAAqB,CAAEv3G,KAAM,CAACsY,EAAiBtY,KAAM7L,EAAW1C,EAAMkkB,MAAMyB,OAAQiB,GAAgBA,EAAarY,OAClJ,ICHIw3G,EAAgC,SAAUn/G,GAE1C,SAASm/G,IACL,OAAkB,OAAXn/G,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CASA,OAZA,QAAUihH,EAAgBn/G,GAI1Bm/G,EAAexhH,UAAUxB,OAAS,WAC9B,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAAQmtB,GAAO,QAAOpuB,EAAI,CAAC,YAAa,WAC/F0nB,EAAeD,EAAU7hB,KAAK1E,MAAMJ,MAAO0C,EAAWvC,GAC1D,OAAQ,gBAAoB0sB,EAAA,GAAY,QAAS,CAAC,EAAGS,EAAM,CAAE7G,iBAAkB,sBAAuBtmB,OAAQymB,EAAcF,oBAAqB,MACrJ,GACiB,QAAW,EACxB,EAAAyR,EAAA,GAAa,iBAAkB,CAAC,QAAS,WAAW,IACrD4tF,EAEP,CAdmC,CAcjC,a,2CCXEtnG,GAAgB,EAAAC,EAAA,KAKhBsnG,EAA8B,SAAUp/G,GAExC,SAASo/G,EAAa5lH,GAClB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAoBxC,OAnBAkC,EAAMoa,YAAc3C,EAAczX,EAAM5G,MAAMD,OAAQ,CAClDH,MAAOgH,EAAM5G,MAAMJ,MACnB0C,UAAWsE,EAAM5G,MAAMsC,YAE3BsE,EAAMi/G,mBAAqB,SAAUC,GACjC,IAAIhnH,EAAK8H,EAAM5G,MAAO+lH,EAAkBjnH,EAAGinH,gBAAiBC,EAAclnH,EAAGknH,YAM7E,OAAQ,gBAAoBC,EAAA,GAAS,QAAS,CAAEjM,cAAe8L,EAAQ9L,cAAeE,SAAU4L,EAAQ5L,SAAUE,cAAe0L,EAAQ1L,cAAeC,mBAAoByL,EAAQzL,mBAAoBl8F,KAAM2nG,EAAQI,YAAap4G,KAAMk4G,GAAgBD,EAAkBA,EAAgBD,GAAW,KAAO,CAAE/lH,OAL3R,CAChB05G,QAAS,CACL1tB,KAAM,eAIlB,EACAnlF,EAAMu/G,uBAAyB,SAAUL,GACrC,IAAIhnH,EAAK8H,EAAM5G,MAAO+lH,EAAkBjnH,EAAGinH,gBAAiBC,EAAclnH,EAAGknH,YAC7E,OAAQ,gBAAoBjM,EAAA,GAAa,QAAS,CAAEC,cAAe8L,EAAQ9L,cAAeE,SAAU4L,EAAQ5L,SAAUE,cAAe0L,EAAQ1L,cAAeC,mBAAoByL,EAAQzL,mBAAoBl8F,KAAM2nG,EAAQI,YAAap4G,KAAMk4G,GAAgBD,EAAkBA,EAAgBD,GAAW,MAC9S,GACA,EAAA94G,EAAA,GAAuBpG,GACvBA,EAAMmnB,oBAAqB,EAAA7gB,EAAA,KACpBtG,CACX,CAoIA,OA3JA,QAAUg/G,EAAcp/G,GAwBxBo/G,EAAazhH,UAAUxB,OAAS,WAC5B,IAAI0vD,EAAsB3tD,KAAK1E,MAAMqyD,oBACjCvzD,EAAK4F,KAAK1E,MAAOomH,EAAqBtnH,EAAGsnH,mBAC7CC,EAAyBvnH,EAAGunH,uBAAwBC,EAAWxnH,EAAGwnH,SAAUC,EAAmBznH,EAAGynH,iBAAkBC,EAAgB1nH,EAAG0nH,cAAehnG,EAAY1gB,EAAG0gB,UAAW/Y,EAAK3H,EAAG2nH,YAAaA,OAAqB,IAAPhgH,GAAuBA,EACtOua,EAActc,KAAKsc,YAEnB0lG,EAAsD,iBAA3BL,EAAsC95G,KAAKugD,IAAIw5D,EAASlmH,OAAQimH,GAA0BC,EAASlmH,OAE9HgmH,IAAuB/zD,IACvBA,EAAsB+zD,GAE1B,IAAIO,EAAsBJ,GAAoBA,EAAiBnmH,OAAS,EACpEwmH,EAAkBD,EAAsBL,EAAWA,EAASrvG,MAAM,EAAGyvG,GACrEG,GAAoBF,EAAsBJ,EAAmBD,EAASrvG,MAAMyvG,KAAuB,GACvG,OAAQ,gBAAoB,MAAO,CAAEpkH,UAAW0e,EAAY7S,MACxDzJ,KAAK4tB,0BACL,gBAAoB,MAAO,CAAEhwB,UAAW0e,EAAY8lG,eAChDN,EAAgB9hH,KAAKqiH,oBAAsB,KAC3C,gBAAoB,KAAM,CAAEzkH,UAAW0e,EAAYgmG,QAAS,aAAcxnG,GAAa9a,KAAKuiH,yBAAyBL,EAA6C,IAA5BC,EAAiBzmH,QAAoC,IAApBkmH,EAASlmH,OAAcqmH,IAC9Lp0D,EAAsB3tD,KAAKwiH,oBAAoBL,GAAoB,MAC/E,EACAjB,EAAazhH,UAAUmuB,wBAA0B,WAC7C,IAAIxE,EAAkBppB,KAAK1E,MAAM8tB,gBAC7B9M,EAActc,KAAKsc,YAGvB,OAAQ8M,GAAoB,gBAAoB,OAAQ,CAAExrB,UAAW0e,EAAYmmG,iBAAkBlvG,GAAIvT,KAAKqpB,oBAAsBD,EACtI,EACA83F,EAAazhH,UAAU8iH,yBAA2B,SAAUX,EAAUc,EAAeX,GACjF,IAAI7/G,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGuoH,gBAAiBA,OAAyB,IAAP5gH,EAAgB/B,KAAKmhH,mBAAqBp/G,EAAIC,EAAK5H,EAAGwoH,oBAAqBA,OAA6B,IAAP5gH,EAAgBhC,KAAKyhH,uBAAyBz/G,EAAI6gH,EAAyBzoH,EAAGyoH,uBAC/O,OAAOjB,EAAShmH,KAAI,SAAUwlH,EAASnlG,GACnC,IAAI6mG,EAAiBJ,EACfC,EAAgBvB,EAASl/G,EAAMi/G,oBAC/ByB,EAAoBxB,EAASl/G,EAAMu/G,wBACrCsB,EAAuB3B,EAAQtoG,QAC7B,WAAc,OAAO5W,EAAM8gH,4BAA4BF,EAAgB1B,EAASW,EAAa9lG,EAAQ,EACrG,WAAc,OAAO/Z,EAAM+gH,+BAA+BH,EAAgB1B,EAASW,EAAa9lG,EAAQ,EAC9G,OAAQ,gBAAoB,KAAM,CAAEP,IAAK,GAAGlJ,OAAOkwG,EAAgB,UAAY,cAAe,KAAKlwG,OAAOyJ,GAAQre,UAAWsE,EAAMoa,YAAY4mG,QAAUL,EAAyBA,EAAuBzB,EAAS2B,GAAwBA,IAC9O,GACJ,EACA7B,EAAazhH,UAAUujH,4BAA8B,SAAUF,EAAgB1B,EAASW,EAAa9lG,GACjG,IAAImM,EAAcg5F,EAAQh5F,YAC1B,OAAQ,gBAAoB64F,GAAgB,QAAS,CAAC,GAAG,QAAeG,EAAS,MAAmBphH,KAAKmjH,iBAAiB/B,EAASW,EAAa9lG,GAAQ,CAAEmM,YAAaA,EAEnKtP,QAAS9Y,KAAKojH,gBAAgBxnG,KAAK5b,KAAMohH,KAAa0B,EAC9D,EACA5B,EAAazhH,UAAUwjH,+BAAiC,SAAUH,EAAgB1B,EAASW,EAAa9lG,GACpG,OAAQ,gBAAoB,OAAO,QAAS,CAAC,GAAG,QAAemlG,EAAS,MAAmBphH,KAAKmjH,iBAAiB/B,EAASW,EAAa9lG,IAAS6mG,EACpJ,EACA5B,EAAazhH,UAAU0jH,iBAAmB,SAAU/B,EAASW,EAAa9lG,GACtE,IAAIK,EAActc,KAAKsc,YACvB,MAAO,CACHZ,KAAM0lG,EAAQ5L,SAAW,IAAM,IAAMv5F,EACrC,qBAAqB,EACrBre,UAAW0e,EAAYi3D,WACvBjtD,MAAOy7F,EAAcX,EAAQI,iBAAcziH,EAC3C8lD,YAAa7kD,KAAKqjH,oBAAoBznG,KAAK5b,KAAMohH,GACjDz3C,WAAY3pE,KAAKsjH,mBAAmB1nG,KAAK5b,KAAMohH,GAEvD,EACAF,EAAazhH,UAAU+iH,oBAAsB,SAAUL,GACnD,OAAQniH,KAAK1E,MAAMioH,oBACf,KAAK,IAAmBC,YACpB,OAAOxjH,KAAKyjH,+BAA+BtB,GAC/C,KAAK,IAAmBuB,UACpB,OAAO1jH,KAAK2jH,gBAAgB,eAChC,KAAK,IAAmBC,KACpB,OAAO5jH,KAAK2jH,gBAAgB,QAChC,QACI,OAAO,KAEnB,EACAzC,EAAazhH,UAAUgkH,+BAAiC,SAAUtB,GAC9D,IAAIb,EAActhH,KAAK1E,MAAMgmH,YAC7B,IAAKa,GAAoBA,EAAiBzmH,OAAS,EAC/C,OAAO,KAEX,IAAImoH,EAAe1B,EAAiBvmH,KAAI,SAAU4D,GAAK,OAAOA,EAAEgiH,WAAa,IAAGxuE,KAAK,MACjF2a,GAAsB,QAAS,CAAErnC,MAAOu9F,GAAgB7jH,KAAK1E,MAAMqyD,qBACnEm2D,EAAyBj8G,KAAKsgD,IAAIg6D,EAAiBzmH,OAAQ,GAC3D4gB,EAActc,KAAKsc,YACvB,OAAQ,gBAAoB2kG,GAAgB,QAAS,CAAC,EAAGtzD,EAAqB,CAAEvkC,gBAAiBukC,EAAoBrnC,MAAO1oB,UAAW0e,EAAYynG,4BAC/I,gBAAoB1O,EAAA,EAAa,CAAEjsG,KAAMk4G,EAAa0C,iBAAkBhkH,KAAKikH,2BAA2BH,GAAyBpO,cAAe,KAAqBwO,cAC7K,EACAhD,EAAazhH,UAAUkkH,gBAAkB,SAAU1gG,GAC/C,IAAI7oB,EAAK4F,KAAK1E,MAAOqyD,EAAsBvzD,EAAGuzD,oBAAqB2zD,EAAclnH,EAAGknH,YAEhFhlG,EAActc,KAAKsc,YACvB,OAAQ,gBAAoB2kG,GAAgB,QAAS,CAAC,EAAGtzD,EAAqB,CAAE/vD,UAAW0e,EAAYS,iBACnG,gBAAoBs4F,EAAA,EAAa,CAAEjsG,KAAMk4G,EAAa0C,iBAAkBhkH,KAAKmkH,gBAAgBlhG,GAHtE,GAGmGyyF,cAAe,KAAqBwO,cACtK,EACAhD,EAAazhH,UAAU4iH,kBAAoB,WACvC,IAAIjoH,EAAK4F,KAAK1E,MAAO8oH,EAAiBhqH,EAAGgqH,eAAgB9C,EAAclnH,EAAGknH,YACtEhlG,EAActc,KAAKsc,YACvB,OAAQ,gBAAoB2kG,GAAgB,QAAS,CAAC,EAAGmD,EAAgB,CAAExmH,UAAW0e,EAAY+nG,YAC9F,gBAAoBhP,EAAA,EAAa,CAAEjsG,KAAMk4G,EAAa0C,iBAAkBhkH,KAAKmkH,gBAAgB,eACrG,EACAjD,EAAazhH,UAAU2jH,gBAAkB,SAAUhC,EAASzgH,GACxDygH,EAAQtoG,QAAQnY,EAAIygH,GACpBzgH,EAAGyG,iBACHzG,EAAG+C,iBACP,EACAw9G,EAAazhH,UAAU4jH,oBAAsB,SAAUjC,EAASzgH,GACxDygH,EAAQv8D,aACRu8D,EAAQv8D,YAAYlkD,EAAIygH,EAEhC,EACAF,EAAazhH,UAAU6jH,mBAAqB,SAAUlC,EAASzgH,GACvDygH,EAAQz3C,YACRy3C,EAAQz3C,WAAWhpE,EAAIygH,EAE/B,EACAF,EAAazhH,UAAU0kH,gBAAkB,SAAU1nG,EAAUM,GACzD,IAAIT,EAActc,KAAKsc,YACvB,OAAO,WACH,OAAO,gBAAoBrB,EAAA,EAAM,CAAEwB,SAAUA,EAAU7e,UAAWmf,EAAiBT,EAAYgoG,qBAAuB,IAC1H,CACJ,EACApD,EAAazhH,UAAUwkH,2BAA6B,SAAUH,GAC1D,IAAIxnG,EAActc,KAAKsc,YACvB,OAAO,WACH,OAAQ,gBAAoB,OAAQ,CAAE1e,UAAW0e,EAAYgoG,sBAAwBR,EAAyB,IAAM,IAAMA,EAAyB,MACvJ,CACJ,EACA5C,EAAav4G,aAAe,CACxBg5G,uBAAwB,EACxBC,SAAU,GACVC,iBAAkB,GAClBP,YAAa,KAAY1L,QAEtBsL,CACX,CA7JiC,CA6J/B,aCzKExiG,EAAmB,CACnBjV,KAAM,cACN46G,UAAW,+CACXN,0BAA2B,+DAC3BxwC,WAAY,4CACZ6uC,cAAe,4BACfE,QAAS,sBACTY,OAAQ,qBACRnmG,eAAgB,qDCHTwnG,GAAW,EAAAtlG,EAAA,GAAOiiG,GDKT,SAAU5lH,GAC1B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO6G,EAAKzG,EAAMkpH,wBAAyBA,OAAiC,IAAPziH,EAAgB,EAAIA,EACpIod,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MACvC3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDupH,EAAmB,CACnB90F,UAAW,SACXjP,QAAS,EACT0P,aAAc,MACdwE,cAAe,MACf7T,QAAS,SACTR,gBAAiB,cACjB0B,OAAQ,OACR7W,UAAW,CACP,sBAAuB,CACnBsV,QAAS,EACTuB,OAAQ,KAIpB,MAAO,CACHxY,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIzY,MAAO,QAEXxK,GAEJymH,UAAW,CACP5mH,EAAW4mH,WACX,QAAcnpH,EAAO,CAAEi1B,OAAQ,IAC/Bs0F,EACA,CACI7jG,SAAUxB,EAAMyB,OAAOD,SACvB7G,MAAOoF,EAAQiS,MACf7Q,gBAAiBpB,EAAQiD,aACzB2S,YAAuC,EAA1ByvF,EAA8B,KAC3Cp5G,UAAW,CACP,UAAW,CACPmV,gBAAiBpB,EAAQ6T,WAE7B,UAAW,CACPzS,gBAAiBpB,EAAQ6T,WAE7B,WAAY,CACRzS,gBAAiBpB,EAAQuD,aAE7B,aAAc,CACVnC,gBAAiBpB,EAAQmS,uBAKzCyyF,0BAA2B,CACvBtmH,EAAWsmH,2BACX,QAAc7oH,EAAO,CAAEi1B,OAAQ,IAC/Bs0F,EACA,CACI7jG,SAAUxB,EAAMiC,MAAMT,SACtB7G,MAAOoF,EAAQO,iBACfa,gBAAiBpB,EAAQ4T,eACzB8B,WAAY,GAAGriB,OAAiC,EAA1BgyG,EAA6B,QAG3DjxC,WAAY,CAAC91E,EAAW81E,WAAYkxC,GACpCrC,cAAe,CACX3kH,EAAW2kH,cACX,CACIrhG,QAAS,SAGjBuhG,QAAS,CACL7kH,EAAW6kH,QACX,CACIvhG,QAAS,OACTjE,SAAU,SACVmE,cAAe,OACfP,QAAS,EACTI,OAAQ,IAAItO,OAAOgyG,EAAyB,QAGpDtB,OAAQ,CACJzlH,EAAWylH,OACX,CACIniG,QAAS,cACTsmE,KAAM,WACNvmE,OAAQ,GAAGtO,OAAOgyG,EAAyB,QAGnDznG,eAAgB,CACZtf,EAAWsf,gBACX,QAAc7hB,EAAO,CAAEi1B,OAAQ,IAC/Bs0F,EACA,CACI7jG,SAAUxB,EAAMyB,OAAOD,SACvB7G,MAAOoF,EAAQO,iBACfa,gBAAiBpB,EAAQ4T,eACzB8B,WAAY,GAAGriB,OAAiC,EAA1BgyG,EAA6B,QAG3DF,qBAAsB,CAClB,CACIvqG,MAAOoF,EAAQW,eACf1U,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,cAEX3f,KAGZqoH,iBAAkB,KAE1B,QCtHmD1jH,EAAW,CAC1D0iB,MAAO,Y,kBCJJ,IAAIqsC,E,iBACX,SAAWA,GAEPA,EAAmBA,EAAyB,KAAI,GAAK,OAErDA,EAAmBA,EAAgC,YAAI,GAAK,cAE5DA,EAAmBA,EAAyB,KAAI,GAAK,OAErDA,EAAmBA,EAA8B,UAAI,GAAK,WAC7D,CATD,CASGA,IAAuBA,EAAqB,CAAC,G,sLCKzC,SAAS42D,EAAiBC,GAC7B,IAAI7xG,EAAc,UAAa,WAC3B,MAAM,IAAIlU,MAAM,+CACpB,IAMA,OALA,EAAA05D,EAAA,IAA0B,WACtBxlD,EAAY3P,QAAUwhH,CAC1B,GAAG,CAACA,KAGG,EAAA5zG,EAAA,IAAS,WAAc,OAAO,WAEjC,IADA,IAAIpS,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAGzB,OADesX,EAAY3P,QACXxH,WAAM,EAAQgD,EAClC,CAAG,GACP,C,0BC7BIo+B,EAAgB,CAChBj5B,UAAU,EACVi8E,mBAAmB,EACnBywB,sBAAsB,EACtB1wB,6BAA6B,GAUtBD,EAAgB,cAAiB,SAAU3gD,EAAsB5zB,GACxE,IAAIlR,EACAqP,EAAO,SAAa,MACpBm7G,EAAc,SAAa,MAC3BC,EAAa,SAAa,MAC1BxnE,GAAgB,EAAAvrC,EAAA,GAAcrI,EAAM6B,GACpCrB,GAAM,UACN66G,EAA8C,QAA7B1qH,GAAK,EAAA6Y,EAAA,IAAY,UAA2B,IAAP7Y,GAAgBA,EACtEkB,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAC5C8tE,GAAgB,EAAAj8F,EAAA,GAAS,CACzBixB,UAAU,EACV+iF,cAAc,EAAApzG,EAAA,GAAM,OAAQrW,EAAMiY,MAElC7W,EAAWpB,EAAMoB,SAAU0gB,EAAe9hB,EAAM8hB,aAActZ,EAAWxI,EAAMwI,SAAUi8E,EAAoBzkF,EAAMykF,kBAAmBywB,EAAuBl1G,EAAMk1G,qBAAsBwU,EAAqC1pH,EAAM0pH,mCAExOzU,EAAyBj1G,EAAMi1G,uBAAwB+K,EAAuBhgH,EAAMggH,qBAEpFv5G,EAAKzG,EAAMm1G,oBAEXA,OAA6B,IAAP1uG,EAAgBzG,EAAMo1G,uBAAyB3uG,EAAI+9E,EAA8BxkF,EAAMwkF,4BAA6BqvB,EAA2B7zG,EAAM6zG,yBACvK8V,EAAc,CACd,eAAe,EACf5sG,MAAO,CACHic,cAAe,OACfpT,SAAU,SAEdjU,SAAUnJ,GAAY,EAAI,EAC1B,mBAAmB,EACnB,kCAAkC,GAElCohH,EAAoB,eAAkB,SAAUlsH,GAC5CA,IAAY4rH,EAAYzhH,SAAWnK,IAAY6rH,EAAW1hH,UAC1D,QAAWnK,EAEnB,GAAG,IAMCmsH,EAAWT,GAAiB,WAC5B,GAAKj7G,EAAKtG,QAAV,CAGA,IAAIiiH,EAAqCpY,EAAcoY,mCACvD,GAAIJ,GACAI,IACA,EAAA5sH,EAAA,GAAgBiR,EAAKtG,QAASiiH,GAE9BF,EAAkBE,OAJtB,CAOA,IAAIC,EAAsB,KAC1B,GAAoC,iBAAzB/J,EACP+J,EAAsB57G,EAAKtG,QAAQ0G,cAAcyxG,QAEhD,GAAIA,EACL+J,EAAsB/J,EAAqB7xG,EAAKtG,cAE/C,GAAIotG,EAAwB,CAC7B,IAAI+U,EAAkD,iBAA3B/U,EAAsCA,EAAyBA,IAC1F8U,EAAsB57G,EAAKtG,QAAQ0G,cAAc,IAAMy7G,EAC3D,CAEKD,IACDA,GAAsB,QAAe57G,EAAKtG,QAASsG,EAAKtG,QAAQ4B,YAAY,GAAO,GAAO,GAAO,IAEjGsgH,GACAH,EAAkBG,EAjBtB,CARA,CA2BJ,IAEIE,EAAc,SAAUC,GACxB,IAAI1hH,GAAa2F,EAAKtG,QAAtB,CAGA,IAAIsiH,EAAgBD,IAAkBxY,EAAchrE,UAC9C,QAAgBv4B,EAAKtG,QAAS0hH,EAAW1hH,SAAS,GAAM,IACxD,QAAiBsG,EAAKtG,QAASyhH,EAAYzhH,SAAS,GAAM,GAC5DsiH,IACIA,IAAkBb,EAAYzhH,SAAWsiH,IAAkBZ,EAAW1hH,QAGtEgiH,IAGAM,EAAcpiH,QAXtB,CAcJ,EAoCIqiH,EAAyBhB,GAAiB,SAAUpU,GAEpD,GADAzwB,EAAc8lC,WAAa9lC,EAAc8lC,WAAW9oF,QAAO,SAAUltB,GAAS,OAAOq9F,EAAc+X,eAAiBp1G,CAAO,IACtH1F,EAAL,CAGA,IAAIvF,EAAgBuF,EAAIvF,cACnB+rG,GAC4H,mBAArHH,aAAyE,EAASA,EAAwBjtG,UAEjH,EAAA7K,EAAA,GAAgBiR,EAAKtG,QAASuB,IAAkBA,IAAkBuF,EAAI9Q,MACvE+rH,EAAkB5U,EANtB,CAQJ,IAEIsV,EAA0BlB,GAAiB,SAAU/jH,GAErD,IAAImD,GAGAkpG,EAAc+X,eAAiBllC,EAAc8lC,WAAWpzG,OAAO,GAAG,GAAI,CACtE,IAAIpF,EAAgBxM,EAAGjH,OACnByT,KAAkB,EAAA3U,EAAA,GAAgBiR,EAAKtG,QAASgK,KAC5ClD,GAAOA,EAAIvF,gBAAkBuF,EAAI9Q,KACjCsa,YAAW,WACHxJ,GAAOA,EAAIvF,gBAAkBuF,EAAI9Q,OACjCgsH,IACAnY,EAAchrE,UAAW,EAEjC,GAAG,IAGHmjF,IACAnY,EAAchrE,UAAW,GAE7BrhC,EAAGyG,iBACHzG,EAAG+C,kBAEX,CACJ,IA+CA,OA7CA,aAAgB,WACZ,IAAImiH,EAAc,GAOlB,OANIrV,GACAqV,EAAYloH,MAAK,EAAAqV,EAAAA,IAAG1R,OAAQ,QAASskH,GAAyB,IAE7D9lC,GACD+lC,EAAYloH,MAAK,EAAAqV,EAAAA,IAAG1R,OAAQ,QAASskH,GAAyB,IAE3D,WACHC,EAAYv8G,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,GAC/D,CAEJ,GAAG,CAACigG,EAAsB1wB,IAE1B,aAAgB,WAIZ,IAAIh8E,IAAcghH,GAAkBtU,IAA0B/mG,EAAKtG,QAAnE,CAIA08E,EAAc8lC,WAAWhoH,KAAKqvG,EAAc+X,cAC5C,IAAIzU,EAA0Bh1G,EAAMg1G,yBAA2BrmG,EAAIvF,cAMnE,OALKq7E,IAAsB,EAAAvnF,EAAA,GAAgBiR,EAAKtG,QAASmtG,IACrD6U,IAIG,WAAc,OAAOO,EAAuBpV,EAA0B,CAT7E,CAWJ,GAAG,CAACE,EAAsB1sG,IAE1B,aAAgB,WACZ,IAAKA,GAAYqrG,EAEb,OADiB,EAAA2W,EAAA,GAASr8G,EAAKtG,QAGvC,GAAG,CAACW,EAAUqrG,EAA0B1lG,KAExC,EAAA0K,EAAA,IAAW,kBAEA64F,EAAcoY,kCACzB,IAxNkB,SAAUhoG,EAAc2oG,EAA0BZ,GACpE,sBAA0B/nG,GAAc,WAAc,MAAO,CACrD2oG,+BACA,OAAOA,CACX,EACA1iH,MAAO8hH,EACP,GAAG,CAACA,EAAUY,GACtB,CAkNIz+E,CAAgBlqB,EAAc4vF,EAAcoY,mCAAoCD,GACxE,gBAAoB,OAAO,QAAS,CAAE,kBAAmB7pH,EAAMwP,iBAAkB,QAAexP,EAAO,MAAgB,CAAEgQ,IAAK+xC,EAAetuB,eAtG5H,SAAUpuB,GAC/B,IAAIvG,EAC4B,QAA/BA,EAAKkB,EAAMyzB,sBAAmC,IAAP30B,GAAyBA,EAAGsF,KAAKpE,EAAOqF,GAC5EA,EAAGjH,SAAWkrH,EAAYzhH,QAC1BoiH,GAAY,GAEP5kH,EAAGjH,SAAWmrH,EAAW1hH,SAC9BoiH,GAAY,GAEhBvY,EAAchrE,UAAW,EACrBrhC,EAAGjH,SAAWiH,EAAGwyD,eAAmBxyD,EAAGjH,SAAWkrH,EAAYzhH,SAAWxC,EAAGjH,SAAWmrH,EAAW1hH,UAGlG6pG,EAAcoY,mCAAqCzkH,EAAGjH,OAE9D,EAuFyLssH,cAvHjK,SAAUrlH,GAC9B,IAAIvG,EAC2B,QAA9BA,EAAKkB,EAAM0qH,qBAAkC,IAAP5rH,GAAyBA,EAAGsF,KAAKpE,EAAOqF,GAC/E,IAAIshC,EAAgBthC,EAAGshC,cACE,OAArBthC,EAAGshC,gBAMHA,EAAgBh4B,EAAIvF,gBAEnB,EAAAlM,EAAA,GAAgBiR,EAAKtG,QAAS8+B,KAC/B+qE,EAAchrE,UAAW,EAEjC,IAyGI,gBAAoB,OAAO,QAAS,CAAC,EAAGijF,EAAa,CAAE35G,IAAKs5G,KAC5DloH,EACA,gBAAoB,OAAO,QAAS,CAAC,EAAGuoH,EAAa,CAAE35G,IAAKu5G,KACpE,IACAhlC,EAAcplF,YAtOO,gBAuOrBolF,EAAc8lC,WAAa,E,mHCtOvBjnG,EAAmB,CACnBjV,KAAM,iBACNspF,QAAS,0BACT3tD,MAAO,uBACP6gF,SAAU,0BACVC,OAAQ,wBACRjgC,YAAa,eACb3/D,MAAO,uBACP8yB,WAAY,cACZ+sE,QAAS,eACTxvB,MAAO,uBACP2N,WAAY,eAEZ8hB,EAEa,2C,6GCZbzsG,GAAgB,EAAAC,EAAA,KAChBysG,EAAiC,SAAUvkH,GAE3C,SAASukH,EAAgB/qH,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAsExC,OArEAkC,EAAMokH,gBAAkB,WACpB,IAAIlsH,EAAK8H,EAAM5G,MAAOq7F,EAAQv8F,EAAGu8F,MAAOzB,EAAmB96F,EAAG86F,iBAAkBqxB,EAAiBnsH,EAAGmsH,eAEhGv5B,GADc9qF,EAAMjH,MAAMgrF,YAE1BugC,GAAqBx5B,GAAgBu5B,GAAkBA,EAAe5vB,GAC1Ez0F,EAAM0T,SAAS,CACXqwE,YAAa+G,EACby5B,iBAAkBD,IAElBtxB,GACAA,EAAiByB,EAEzB,EACAz0F,EAAM4oB,SAAW,SAAUnqB,GACvB,IAAIvG,EAAK8H,EAAM5G,MAAOq7F,EAAQv8F,EAAGu8F,MAAO+vB,EAAqBtsH,EAAGssH,mBAIhE,GAHIA,GACAA,EAAmB/lH,EAAIg2F,IAEtBh2F,EAAGopB,iBAAkB,CAEtB,IAAI48F,EAAazkH,EAAMjH,MAAMgrF,aAAetlF,EAAGqE,SAAU,QAAkBC,EAAA,EAASQ,MAAOvD,EAAM5G,MAAMJ,SAEpFgH,EAAMjH,MAAMgrF,aAAetlF,EAAGqE,SAAU,QAAkBC,EAAA,EAASI,KAAMnD,EAAM5G,MAAMJ,QACrFyrH,KACfzkH,EAAMokH,kBACN3lH,EAAG+C,kBACH/C,EAAGyG,iBAEX,CACJ,EACAlF,EAAM0kH,eAAiB,SAAUjmH,GAC7BuB,EAAMokH,kBACN3lH,EAAG+C,kBACH/C,EAAGyG,gBACP,EACAlF,EAAM2kH,eAAiB,WACnB,IAAIzsH,EAAK8H,EAAM5G,MAAOq7F,EAAQv8F,EAAGu8F,MAAOmwB,EAAqB1sH,EAAG0sH,mBAC5DA,GACAA,EAAmBnwB,EAE3B,EACAz0F,EAAM+4G,eAAiB,SAAU3/G,GAE7B,IADYA,EAAMq7F,MAEd,OAAO,KAEX,IAAIowB,EAAezrH,EAAMyrH,cACnB,EAAA1qG,EAAA,GAAsB/gB,EAAMyrH,aAAc7kH,EAAM8kH,eAChD9kH,EAAM8kH,cACZ,OAAQ,gBAAoB,MAAO,CAAEppH,UAAWsE,EAAMoa,YAAYgK,MAAO/S,GAAIrR,EAAMqG,IAAKuQ,QAAS5W,EAAM2kH,eAAgB7pG,KAAM,WAAY,eAAgB9a,EAAM5G,MAAM49F,YAAa,yBAAyB,GAAQ6tB,EAAazrH,GACpO,EACA4G,EAAM8kH,cAAgB,SAAU1rH,GAC5B,IAAIq7F,EAAQr7F,EAAMq7F,MAClB,OAAKA,EAGG,gBAAoB,WAAgB,KACxC,gBAAoB,OAAQ,KAAMA,EAAM36F,MACxC,gBAAoB,OAAQ,CAAE4B,UAAWsE,EAAMoa,YAAY2qG,aACvD,IACAtwB,EAAMvH,MACNuH,EAAMuwB,aAAe,IACrB,MARG,IASf,EACAhlH,EAAMqG,KAAM,EAAAC,EAAA,GAAM,eAClBtG,EAAMjH,MAAQ,CACVgrF,YAAc/jF,EAAM5G,MAAMq7F,OAASz0F,EAAM5G,MAAMq7F,MAAM1Q,YACrDwgC,kBAAkB,GAEfvkH,CACX,CA+DA,OAxIA,QAAUmkH,EAAiBvkH,GA0E3BukH,EAAgBpvG,yBAA2B,SAAU4sB,EAAWk4D,GAC5D,GAAIl4D,EAAU8yD,MAAO,CACjB,IAAI3J,EAAenpD,EAAU8yD,MAAM1Q,YAC/BsgC,EAAiB1iF,EAAU0iF,eAC3BC,GAAqBx5B,GAAgBu5B,GAAkBA,EAAe1iF,EAAU8yD,OACpF,OAAO,SAAS,QAAS,CAAC,EAAGoF,GAAgB,CAAE9V,YAAa+G,IAAgB,EAAOy5B,iBAAkBD,IAAqB,GAC9H,CACA,OAAOzqB,CACX,EACAsqB,EAAgB5mH,UAAUxB,OAAS,WAC/B,IAAI7D,EAAK4F,KAAK1E,MAAOq7F,EAAQv8F,EAAGu8F,MAAO50F,EAAK3H,EAAG+sH,WAAYA,OAAoB,IAAPplH,EAAgB,EAAIA,EAAI4vF,EAAWv3F,EAAGu3F,SAAU5D,EAAgB3zF,EAAG2zF,cAAeq5B,EAAchtH,EAAGgtH,YAE3KplH,EAAK5H,EAAGg/C,WAERA,OAAoB,IAAPp3C,GAAwBA,EAAIC,EAAK7H,EAAGuuD,SAAUA,OAAkB,IAAP1mD,GAAwBA,EAAI6rF,EAAc1zF,EAAG0zF,YAAau5B,EAA8BjtH,EAAGitH,4BAA6BnoG,EAAK9kB,EAAG+8F,8BAA+BA,OAAuC,IAAPj4E,GAAuBA,EAAIooG,EAAoBltH,EAAGktH,kBAAmBC,EAAmBntH,EAAGmtH,iBAAkB/tB,EAAuBp/F,EAAGo/F,qBAAsBt+F,EAAQd,EAAGc,MAAOG,EAASjB,EAAGiB,OAAQuC,EAAYxD,EAAGwD,UAAWm1F,EAAU34F,EAAG24F,QAASoG,EAAY/+F,EAAG++F,UAAWC,EAAeh/F,EAAGg/F,aAAcnzD,EAAc7rC,EAAG6rC,YAAaqzD,EAAel/F,EAAGk/F,aAAcr0D,EAAe7qC,EAAG6qC,aAC9nB+wC,EAAgBh2E,KAAK1E,MAAM06E,eACzB,EAAA35D,EAAA,GAAsBrc,KAAK1E,MAAM06E,cAAeh2E,KAAKi7G,gBACrDj7G,KAAKi7G,eACPvR,EAAwBzkE,EAAejlC,KAAKwpG,2BAA6BxpG,KAAKupG,uBAC9ElV,EAAmBgzB,GACjB,EAAAhrG,EAAA,GAAsBgrG,EAA6B3d,GACnDA,EACFj4E,EAAKzxB,KAAK/E,MAAOgrF,EAAcx0D,EAAGw0D,YAAawgC,EAAmBh1F,EAAGg1F,iBACrEe,EAAiBz5B,IAAkB,KAAcc,SACjD44B,EAA0BD,IAAmBrwB,KAAmCR,GAASA,EAAM1Q,cAC/FyhC,EAAoB/+D,GAAYvP,EAChC3T,GAAQ,QAAOvqC,GAQnB,OAPA8E,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACX+qD,SAAU++D,EACVzhC,YAAaA,EACb8M,QAASA,IAER4D,EAGG,gBAAoB,MAAO,CAAE/4F,UAAWoC,KAAKsc,YAAY7S,KAAM4O,MAAOs5E,EAAW,CAAE7+D,SAAU6+D,EAASvpF,OAAU,CAAC,EAAG4U,KAAM,MAAO,aAAcm8E,EAAW,eAAgBlzD,EAAa,gBAAiBmzD,EAAc,gBAAiBE,EAAc,qBAAqB,EAAMvuE,QAAS/qB,KAAK8qB,SAAU,aAAc6rE,EAAM77E,UAAW,kBAAmB67E,EAAM77E,eAAY/b,EAAYiB,KAAKuI,IAAK,iBAAkBvI,KAAK/E,MAAMgrF,YAAa,gBAAiBuhC,EAAiBE,OAAoB3oH,EAAW,uBAAwB43F,EAAM1L,WAAY,sBAAuB0L,EAAMvH,OACxjB,gBAAoB,MAAO,CAAExxF,UAAWoC,KAAKsc,YAAYqrG,qBAAsB3qG,KAAM,gBACjFyqG,EAA2B,gBAAoB,MAAO,CAAEzqG,KAAM,YAC1D,gBAAoB,UAAU,QAAS,CAAE,qBAAqB,EAAOvgB,KAAM,SAAUmB,UAAWoC,KAAKsc,YAAY8oB,MAAOpoB,KAAM,WAAYzJ,GAAI,GAAGf,OAAOxS,KAAKuI,IAAK,UAAW,eAAgBm/G,EAAmB,kBAAmB,GAAGl1G,OAAOxS,KAAKuI,IAAK,WAAWiK,OAAOxS,KAAKuI,KAAM,yBAAyB,GAAQixF,GAAuBnF,EAAiB,CAAEhwE,QAASqjG,EAAmBxsH,MAAOA,GAASm5F,KAG/YtG,IAAkB,KAAc39E,MAAQ,gBAAoB++E,EAAA,EAAa,CAAErB,YAAa,IAAkBsB,MAAO,IACjH,gBAAoBD,EAAA,EAAa,CAAErB,YAAaA,EAAasB,MAAO+3B,IACpE,gBAAoB,MAAO,CAAEvpH,UAAWoC,KAAKsc,YAAY2pG,SAAUjpG,KAAM,gBACrE,gBAAoB/B,EAAA,EAAM,CAAEwB,SAAU,SAC1C,gBAAoB,MAAO,CAAEO,KAAM,YAC/B,gBAAoB,UAAU,QAAS,CAAE,qBAAqB,EAAO,2BAA2B,EAAMvgB,KAAM,SAAUmB,UAAWoC,KAAKsc,YAAY4pG,OAAQptG,QAAS9Y,KAAK4mH,eAAgB,iBAAkB5mH,KAAK/E,MAAMgrF,aAAeqhC,GAChO,gBAAoBrsG,EAAA,EAAM,CAAErd,UAAWoC,KAAKsc,YAAYsrG,kBAAmBnrG,SAAU8qG,IAAqB9hF,EAAQ,iBAAmB,uBAC7IuwC,EAAch2E,KAAK1E,OACnBmrH,GAAoB,gBAAoBoB,EAAA,EAAS,CAAEtiG,MAAO6hG,MAhBvD,IAiBf,EACAf,EAAgB5mH,UAAU8pG,uBAAyB,SAAUriE,GACzD,OAAO,gBAAoB7B,EAAA,EAAO,CAAEhhB,QAAS6iB,EAAc7iB,SAC/D,EACAgiG,EAAgB5mH,UAAU+pG,2BAA6B,SAAUtiE,GAC7D,OAAO,gBAAoBoiE,EAAW,CAAEpuG,MAAOgsC,EAAchsC,MAAOmpB,QAAS6iB,EAAc7iB,SAC/F,EACAgiG,EAAgB19G,aAAe,CAC3B2+G,kBAAmB,CAAE,aAAc,0BAEhCjB,CACX,CA1IoC,CA0IlC,aAEE/c,EAAY,QAAW,SAAUhuG,GACjC,OAAO,gBAAoB+pC,EAAA,EAAO,CAAEnqC,MAAOI,EAAMJ,MAAOmpB,QAAS/oB,EAAM+oB,QAASzmB,UAAWtC,EAAMsC,UAAWqnC,cAAc,GAC9H,ICrJW6iF,GAAc,EAAA7oG,EAAA,GAAOonG,GFuBT,SAAU/qH,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBhkB,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW+qD,EAAWrtD,EAAMqtD,SAAUs9B,EAAc3qF,EAAM2qF,YAAa8M,EAAUz3F,EAAMy3F,QAE9HtP,EAAkB,KAAyBA,gBAC3CskC,EAAiBh1B,EANS,GADA,GAQ1B/4E,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACnD8sH,EAAyB,EACzB,QAAc9sH,GACd,CACIwc,OAAQ,UACRiuB,WAAY,OACZplB,gBAAiB,cACjB0B,OAAQ,OACRvB,QAAS,IAGjB,MAAO,CACHjX,KAAM,CACFhM,EAAWgM,MACX,QAAcvO,GACdA,EAAMkkB,MAAMyB,OACZ,CAEImwD,aAAc,aAAax+D,OAAOwH,EAAeiuG,gBACjDvwG,OAAQ,UACR6Y,WAAY,OACZnlB,WAAYhR,EAAK,CACT,SAAU,CACNurC,WAAY3rB,EAAeugC,0BAC3BxgC,MAAOC,EAAekuG,oBAG9B9tH,EAAG,YAAYoY,OAAO/U,EAAW2nC,QAAU,CACvCxI,QAAS,GAEbxiC,EAAG,IAAIoY,OAAO,KAAyB,cAAcA,OAAO/U,EAAW2nC,QAAU,CAC7ExI,QAAS,GAEbxiC,EAAG,YAAYoY,OAAO/U,EAAWk5F,MAAO,KAAKnkF,OAAO/U,EAAW6mG,WAAY,MAAQ,CAC/El5F,WAAYrJ,EAAK,CAAC,EACdA,EAAG,QAAQyQ,OAAO/U,EAAWgM,KAAM,MAAM+I,OAAO/U,EAAWwoH,WAAa,CACpE3+B,WAAY,aAAa90E,OAAO,KAAmB21G,eAAgB,KAAK31G,OAjDvF,2CAiDmH,KAChG,WAAWA,OAAO,KAAmB41G,eAAgB,KAAK51G,OAAO4zG,GACrEiC,gBAAiB,KAAmBC,eACpC1rF,QAAS,EACTgI,UAAW,4BAEf7iC,EAAG,IAAIyQ,OAAO/U,EAAW2nC,QAAU,CAC/BxI,QAAS,GAEb76B,IAER3H,IAERuuD,GAAY,CACRlrD,EAAW27C,WACX,CACIzT,WAAY3rB,EAAeygC,0BAC3BrvC,WAAYpJ,EAAK,CACT,SAAU,CACN2jC,WAAY3rB,EAAe2gC,mCAGnC34C,EAAG,GAAGwQ,OAAO/U,EAAW2nC,QAAU,CAC9BxI,QAAS,GAEb56B,KAGZ+wF,GAAW,CAACt1F,EAAWs1F,QAAS,CAAE9wE,OAAQ,SAC1CrkB,GAEJ+pH,qBAAsB,CAClB,CACI5mG,QAAS,OACTC,WAAY,SACZ9R,OAAQ64G,IAGhBd,YAAa,CACT,CACIvmG,QAAS,YAGjB0kB,MAAO,CACH3nC,EAAW2nC,MACX4iF,EACA,CACIjnG,QAAS,OACTC,WAAY,SACZgC,eAAgB,SAKhBsqB,WAAY,EACZxY,WAAY,EACZ8H,QAAS,EACTx0B,MAAO,IACP8G,OAAQ64G,EACR38G,WAAYnJ,EAAK,CAAC,EACdA,EAAG,IAAIuQ,OAAO,KAAyB,aAAe,CAClDoqB,QAAS,GAEb36B,KAGZikH,OAAQ,CACJzoH,EAAWyoH,OACX8B,EACA,CACIjnG,QAAS,OACT6O,WAAY,EACZ5O,WAAY,SACZgC,eAAgB,SAChBpC,SAAUxB,EAAMiC,MAAMT,SACtBxY,MAAO,IACP8G,OAAQ64G,EACRhuG,MAAO4uC,EAAWxpC,EAAQW,eAAiBX,EAAQO,iBACnDtU,UAAW,CACP,SAAU,CACNmV,gBAAiBooC,EAAWxpC,EAAQopG,kBAAoBppG,EAAQkS,cAEpE,UAAW,CACP9Q,gBAAiBooC,EAAWxpC,EAAQmS,mBAAqBnS,EAAQoS,yBAKjFq2F,kBAAmB,CACf3hC,EACM,CACExoF,EAAWwoF,YACX,CACIrhD,UAAW,eACXisD,gBAAiB,UACjBvJ,WAAY,yBAGlB,CACE1iD,WAAW,QAAO1pC,GAAS,iBAAmB,gBAC9C21F,gBAAiB,UACjBvJ,WAAY,yBAGxBhhE,MAAO,CACH7oB,EAAW6oB,MACX,CACI+mB,YAAao2C,EACb7iE,SAAUmyE,EAAU3zE,EAAMyB,OAAOD,SAAWxB,EAAMmC,WAAWX,SAC7DP,WAAY4lE,EAAc,KAAYrmE,QAAU,KAAYK,SAC5DvI,OAAQ,UACRrM,QAAS,EACTuT,WAAY,SACZC,aAAc,WACd/B,SAAU,WAGlBmpG,SAAU,CACNxoH,EAAWwoH,SACX,CACI/kG,SAAU,WACV7b,MAAO,GACPub,SAAU,KAAcqxC,MACxBl4C,MAAOoF,EAAQO,iBACf4nE,WAAY,aAAa90E,OAAO,KAAmBg2G,eAAgB,KAAKh2G,OA3KxE,4CA2KmG,MAC/F,WAAWA,OAAO,KAAmB21G,eAAgB,KAAK31G,OAAO4zG,GACrExpF,QAAS,EACTgI,UAAW,6BACXisD,gBAAiB,YACjBzlF,WAAY8T,EAAK,CAAC,EACdA,EAAG,YAAY1M,OAAO/U,EAAW0oH,QAAS,MAAQ,CAC9CjlG,SAAU,YAEdhC,KAIpB,QE3M4DngB,EAAW,CACnE0iB,MAAO,e,0DCHAgnG,EAAe,GACft5B,EAAc,SAAU7zF,GAC/B,IAAI8zF,EAAQ9zF,EAAM8zF,MAAOh1F,EAAKkB,EAAMwyF,YAAaA,OAAqB,IAAP1zF,EAAgBquH,EAAeruH,EAAI2H,EAAKzG,EAAM0hB,KAAMA,OAAc,IAAPjb,EAAgB,eAAiBA,EACvJqG,EAAQgnF,EAAQtB,EACpB,OAAOsB,EAAQ,EAAK,gBAAoB,OAAQ,CAAExxF,UAAW,iBAAkBya,MAAO,CAAE0I,QAAS,eAAgB3Y,MAAOA,GAAS4U,KAAMA,IAAW,IACtJ,C,6DCLI0B,EAAmB,CACnBjV,KAAM,iBACNspF,QAAS,0BACT4D,MAAO,uBACPviE,KAAM,UACNiuE,SAAU,gB,uHCLV,EAAmB,CACnB54F,KAAM,kBACN2qB,KAAM,W,sBCENza,GAAgB,EAAAC,EAAA,KCFT8uG,GAAe,EAAAzpG,EAAA,IDGI,SAAU3jB,GACpC,IAAIq7F,EAAQr7F,EAAMq7F,MAAOwwB,EAAa7rH,EAAM6rH,WAAY/sH,EAAKkB,EAAMqtH,gBAAiBA,OAAyB,IAAPvuH,EAAgB,WAAaA,EAAIiB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0tH,EAAoBttH,EAAMstH,kBACzMnrH,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,IAC5C2tH,GAAkB,IAAAC,cAAY,SAAUnoH,GACxCioH,EAAkBjyB,GAClBh2F,EAAG+C,kBACH/C,EAAGyG,gBACP,GAAG,CAACwhH,EAAmBjyB,IACvB,OAAIA,EACQ,gBAAoB,MAAO,CAAE/4F,UAAWH,EAAWgM,MACvD,gBAAoB0lF,EAAA,EAAa,CAAEC,MAAO+3B,IAC1C,gBAAoBtpG,EAAA,EAAM,CAAE/E,QAAS+vG,GAAmBF,IAEzD,IACX,IDfuB,SAAUrtH,GAC7B,IAAIlB,EACAc,EAAQI,EAAMJ,MACdkkB,EAAQlkB,EAAMkkB,MACd3hB,GAAa,QAAoB,EAAkBvC,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX,CACIyX,SAAU,WACVR,QAAS,YACThJ,OAAQ,UACRtM,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO/U,EAAW22B,OAAS,CAC9BxT,SAAUxB,EAAMiC,MAAMT,UAE1BxmB,KAIpB,QEtB8D2E,EAAW,CAAE0iB,MAAO,iBCF9E,EAAmB,CACnBhY,KAAM,kBCCN,GAAgB,EAAAmQ,EAAA,KCATmvG,GAAc,EAAA9pG,EAAA,IDCI,SAAU3jB,GACnC,IAAIq7F,EAAQr7F,EAAMq7F,MAAOwwB,EAAa7rH,EAAM6rH,WAAY6B,EAAa1tH,EAAM0tH,WAAYl7B,EAAcxyF,EAAMwyF,YAAazyF,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MACzJuC,EAAa,EAAcpC,EAAQ,CAAEH,MAAOA,IAChD,OAAIy7F,GAASqyB,EACD,gBAAoB,MAAO,CAAEprH,UAAWH,EAAWgM,MACvD,gBAAoB0lF,EAAA,EAAa,CAAErB,YAAaA,EAAasB,MAAO+3B,IACpE6B,GAED,IACX,IDTuB,SAAU1tH,GAC7B,IAAIJ,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UACvCH,GAAa,QAAoB,EAAkBvC,GACvD,MAAO,CACHuO,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZpjB,EAAWgM,KACX,CACIyX,SAAU,WACVR,QAAS,YAEb9iB,GAGZ,QEf4DmB,EAAW,CACnE0iB,MAAO,gB,WCKPwnG,EAAoC,SAAUnnH,GAE9C,SAASmnH,EAAmB3tH,GACxB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMC,MAAQ,cACdD,EAAMw5F,MAAQ,cACdx5F,EAAMgnH,cAAgB,CAAC,EACvBhnH,EAAMinH,mBAAqB,GAC3BjnH,EAAMknH,qBAAuB,SAAU9tH,GACnC,OAAO,gBAAoBwsH,EAAA,GAAa,QAAS,CAAC,EAAGxsH,GACzD,EACA4G,EAAMmnH,sBAAwB,SAAU/tH,GACpC,OAAO,gBAAoBotH,GAAc,QAAS,CAAC,EAAGptH,GAC1D,EACA4G,EAAMonH,qBAAuB,SAAUhuH,GACnC,OAAO,gBAAoBytH,GAAa,QAAS,CAAC,EAAGztH,GACzD,EACA4G,EAAMqnH,gBAAkB,SAAUC,EAAUC,GACxC,IAAIrvH,EAAK8H,EAAM5G,MAAO23F,EAAiB74F,EAAG64F,eAAgBzO,EAAiBpqF,EAAGoqF,eAAgB4Q,EAAmBh7F,EAAGg7F,iBAAkBs0B,EAAoBtvH,EAAGsvH,kBAAmBzgC,EAAoB7uF,EAAG6uF,kBAAmBhsB,EAAa7iE,EAAG6iE,WAAY//C,EAAQ9iB,EAAG8iB,MAAOk6E,EAAch9F,EAAGg9F,YAAauyB,EAAevvH,EAAGuvH,aAAcC,EAAcxvH,EAAGwvH,YAAa31B,EAAY75F,EAAG65F,UAAW0F,EAAev/F,EAAGu/F,aAAc1N,EAAY7xF,EAAG6xF,UAAW8B,EAAgB3zF,EAAG2zF,cAAe4D,EAAWv3F,EAAGu3F,SAAUk4B,EAAsBzvH,EAAGyvH,oBAAqBC,EAAuB1vH,EAAG0vH,qBAAsBC,EAAsB3vH,EAAG2vH,oBAAqB51B,EAAqB/5F,EAAG+5F,mBAAoBwC,EAAQv8F,EAAGu8F,MAAO5D,EAAU34F,EAAG24F,QACrsB6G,EAAe4vB,EAASrzB,MAAQqzB,EAASrzB,MAAQ,EAAIlN,EACzD,OAAQugC,GAAYA,EAASp6B,MAAQ,GAAMnyB,GAAcA,EAAW+sD,gBAAoB,gBAAoBf,EAAoB,CAAE39G,IAAK,SAAUA,GAAO,OAAQpJ,EAAMgnH,cAAc,YAAcO,GAAiBn+G,CAAM,EAAGoQ,IAAKxZ,EAAM+nH,aAAaT,EAAUC,GAAgBx2B,eAAgBA,EAAgBzO,eAAgBA,EAAgB4Q,iBAAkBA,EAAkBw0B,YAAaA,EAAaF,kBAAmBA,EAAmB/yB,MAAO6yB,EAAUxwB,WAAYywB,EAAexgC,kBAAmB2Q,EAAc38B,WAAYA,EAAYm6B,YAAaA,EAAal6E,MAAOA,EAAO+2E,UAAWA,EAAW0F,aAAcA,EAAc1N,UAAWA,EAAW8B,cAAeA,EAAe47B,aAAcA,EAAch4B,SAAUA,EAAUk4B,oBAAqBA,EAAqBC,qBAAsBA,EAAsBC,oBAAqBA,EAAqB51B,mBAAoBA,EAAoBjB,OAAQyD,EAAQA,EAAMj6F,SAAW,GAAIq2F,QAASA,IAAc,IAC77B,EAIA7wF,EAAMgoH,yBAA2B,WAC7B,IAAI9vH,EAAK8H,EAAM5G,MAAOq7F,EAAQv8F,EAAGu8F,MAAOqC,EAAa5+F,EAAG4+F,WAAY/F,EAAiB74F,EAAG64F,eAexF,MAdc,CACViT,SAFuH9rG,EAAGg7F,iBAG1HlQ,gBAAiB,EACjBxqF,QAAS,CAAE2f,KAAMs8E,EAAO16E,MAAO+8E,EAAYmxB,SAAS,GACpD7kC,gBAAiBpjF,EAAM2lF,qBACvB1C,QAAS8N,EAAe9N,QACxBC,QAAS6N,EAAe7N,QACxBG,OAAQ0N,EAAe1N,OACvBF,YAAa4N,EAAe5N,YAC5Bkf,YAAatR,EAAesR,YAC5BE,YAAaxR,EAAewR,YAC5Bjf,UAAWyN,EAAezN,UAC1BkK,WAAYuD,EAAevD,WAGnC,EAOAxtF,EAAM2lF,qBAAuB,SAAUuiC,EAAexpH,GAClD,IAAI0jG,EAAapiG,EAAMjH,MAAMqpG,WACzBlqG,EAAK8H,EAAM5G,MAAO23F,EAAiB74F,EAAG64F,eAAgB0D,EAAQv8F,EAAGu8F,MACjE2N,IAAe8lB,IACX9lB,EACIrR,GAAkBA,EAAewR,aACjCxR,EAAewR,YAAY9N,EAAO/1F,GAIlCqyF,GAAkBA,EAAesR,cACjCriG,EAAMinH,mBAAqBl2B,EAAesR,YAAY5N,EAAO/1F,IAGrEsB,EAAM0T,SAAS,CAAE0uF,WAAY8lB,IAErC,EACA,IAAIn+B,EAAY3wF,EAAM2wF,UAAW0K,EAAQr7F,EAAMq7F,MAQ/C,OAPA,EAAAruF,EAAA,GAAuBpG,GACvBA,EAAMqG,KAAM,EAAAC,EAAA,GAAM,sBAClBtG,EAAMjH,MAAQ,CACVqpG,YAAY,EACZlrD,cAAY6yC,IAAa0K,IAAQ1K,EAAUz8E,gBAAgBmnF,EAAM1L,WAAY0L,EAAMvH,QAEvFltF,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GACxBA,CACX,CAuIA,OAjNA,QAAU+mH,EAAoBnnH,GA2E9BmnH,EAAmBxpH,UAAU+J,kBAAoB,WAC7C,IAAIpP,EAAK4F,KAAK1E,MAAOkpF,EAAiBpqF,EAAGoqF,eAAgByH,EAAY7xF,EAAG6xF,UACpEzH,GAAkBxkF,KAAKmC,MAAMgB,UAC7BnD,KAAK8kF,sBAAwBN,EAAesB,UAAU9lF,KAAKmC,MAAMgB,QAASnD,KAAKmsB,QAASnsB,KAAKkqH,6BAE7Fj+B,GACAjsF,KAAKmsB,QAAQnZ,GAAGi5E,EAAW,KAAkBjsF,KAAKqqH,mBAE1D,EACApB,EAAmBxpH,UAAU6K,qBAAuB,WAChDtK,KAAKmsB,QAAQ5b,UACTvQ,KAAK8kF,uBACL9kF,KAAK8kF,sBAAsBv0E,SAEnC,EACA04G,EAAmBxpH,UAAUuK,mBAAqB,SAAU45B,GACpD5jC,KAAK1E,MAAMq7F,QAAU/yD,EAAc+yD,OACnC32F,KAAK1E,MAAM09F,aAAep1D,EAAco1D,YACxCh5F,KAAK1E,MAAMkpF,iBAAmB5gD,EAAc4gD,iBACxCxkF,KAAK8kF,wBACL9kF,KAAK8kF,sBAAsBv0E,iBACpBvQ,KAAK8kF,uBAEZ9kF,KAAK1E,MAAMkpF,gBAAkBxkF,KAAKmC,MAAMgB,UACxCnD,KAAK8kF,sBAAwB9kF,KAAK1E,MAAMkpF,eAAesB,UAAU9lF,KAAKmC,MAAMgB,QAASnD,KAAKmsB,QAASnsB,KAAKkqH,6BAGpH,EACAjB,EAAmBxpH,UAAUxB,OAAS,WAClC,IAAI7D,EAAK4F,KAAK1E,MAAOouH,EAAoBtvH,EAAGsvH,kBAAmB/yB,EAAQv8F,EAAGu8F,MAAOqC,EAAa5+F,EAAG4+F,WAAY5B,EAAch9F,EAAGg9F,YAAauyB,EAAevvH,EAAGuvH,aAAcC,EAAcxvH,EAAGwvH,YAAaj4B,EAAWv3F,EAAGu3F,SAAU5D,EAAgB3zF,EAAG2zF,cAAehsF,EAAK3H,EAAGyvH,oBAAqBA,OAA6B,IAAP9nH,EAAgB/B,KAAKopH,qBAAuBrnH,EAAIC,EAAK5H,EAAG0vH,qBAAsBA,OAA8B,IAAP9nH,EAAgBhC,KAAKqpH,sBAAwBrnH,EAAIC,EAAK7H,EAAG2vH,oBAAqBA,OAA6B,IAAP9nH,EAAgBjC,KAAKspH,qBAAuBrnH,EAAIkyF,EAAqB/5F,EAAG+5F,mBAAoBm2B,EAAwBlwH,EAAGkwH,sBAAuBp3B,EAAS94F,EAAG84F,OAAQH,EAAU34F,EAAG24F,QAAS7zE,EAAK9kB,EAAG65F,UAAWA,OAAmB,IAAP/0E,EAAgB,CAAC,EAAIA,EACvuBk6B,EAAap5C,KAAK/E,MAAMm+C,WACxBmxE,EAAc5zB,GAAS+yB,EAAoBA,EAAkB/yB,GAAS6zB,IACtEC,EAAmB9zB,IAClBA,EAAMj6F,WACNi6F,EAAM1Q,cACN0Q,EAAM+zB,eACN/zB,EAAMvH,MAAQm7B,GAAe5zB,EAAMuwB,aACpCyD,EAAkBh0B,GAASA,EAAMj6F,UAAYi6F,EAAMj6F,SAAShB,OAAS,EACrE84F,EAAUP,EAAUO,QACpBo2B,EAAe,CACfj0B,MAAOA,EACPqC,WAAYA,EACZmuB,WAAYxwB,EAAQA,EAAMR,MAAQ,EAClC/8C,WAAYA,EACZuP,SAAUvP,EACVu4C,SAAUA,EACV5D,cAAeA,EACfmF,OAAQA,EACRH,QAASA,GAET83B,EAAoB,CACpBC,cAAe9qH,KAAKuI,IACpB4wF,WAAYxC,aAAqC,EAASA,EAAMR,OAASQ,EAAMR,MAAQ,EAAI,EAC3FlwD,YAAaitD,EAASA,EAAOx3F,YAASqD,EACtCq6F,kBAA6Br6F,IAAfi6F,EAA2BA,EAAa,OAAIj6F,GAE1Dg6F,GAAmB,SAAS,SAAS,QAAS,CAAC,EAAG3B,GAAcwzB,GAAeC,GAC/EE,GAAoB,SAAS,QAAS,CAAC,EAAGpB,GAAeiB,GACzDhyB,GAAmB,SAAS,QAAS,CAAC,EAAGgxB,GAAcgB,GACvD1oC,IAAgBliF,KAAK1E,MAAMkpF,gBAC3BxkF,KAAKkqH,2BAA2B/kC,QAAQwR,MACtC32F,KAAK1E,MAAM23F,eAAe+3B,cAChC,OAAQ,gBAAoB,OAAO,QAAS,CAAE1/G,IAAKtL,KAAKmC,OAAU+/E,GAAe,CAAEqB,WAAW,GAAS,CAAE3lF,WAAW,EAAAsN,EAAA,GAAIo/G,GAAyBA,EAAsB3zB,MAAO32F,KAAKirH,yBAA0BjuG,KAAM,iBAC/M6sG,EAAoB9wB,EAAkB/4F,KAAKopH,sBAC3CzyB,GAASA,EAAM1Q,YAAc,KAAO0kC,EAAmB,gBAAoB9vB,EAAA,EAAM,CAAE79E,KAAM,eAAgB1R,IAAKtL,KAAK07F,MAAOx+E,MAAOy5E,EAAQA,EAAMj6F,SAAW,GAAIi9F,aAAc35F,KAAKupH,gBAAiB2B,oBAAqBlrH,KAAKmrH,WAAYh3B,mBAAoBA,EAAoBK,QAASA,EAASjhF,GAAIvT,KAAKuI,MAAWvI,KAAKorH,eAAeb,GAC1U5zB,GAASA,EAAM1Q,YACT,KACAwkC,GAAoBX,EAAqBiB,EAAmB/qH,KAAKqpH,uBACvEU,EAAoBnxB,EAAkB54F,KAAKspH,sBACnD,EACAL,EAAmBxpH,UAAUosB,YAAc,WACvC/pB,EAAOrC,UAAUosB,YAAYnsB,KAAKM,MAClCA,KAAKqrH,iBACT,EACApC,EAAmBxpH,UAAU4rH,gBAAkB,WAC3C,IAAI10B,EAAQ32F,KAAK1E,MAAMq7F,MACvB,GAAI32F,KAAK07F,MAAMv4F,SAEX,GADAnD,KAAK07F,MAAMv4F,QAAQ0oB,cACf8qE,GAASA,EAAMj6F,UAAYi6F,EAAMj6F,SAAShB,OAAS,EAEnD,IADA,IAAI4vH,EAAgB30B,EAAMj6F,SAAShB,OAC1BoE,EAAI,EAAGA,EAAIwrH,EAAexrH,IAAK,CACpC,IAAI0pH,KAAWxpH,KAAK07F,MAAMv4F,QAAQooH,SAAS,YAAcxiH,OAAOjJ,MAE5D0pH,EAAS6B,iBAEjB,OAIA7B,EAAWxpH,KAAKkpH,cAAc,YAAcngH,OAAO,MAEnDygH,EAAS6B,iBAGrB,EACApC,EAAmBxpH,UAAU4qH,mBAAqB,WAC9C,IAAIjwH,EAAK4F,KAAK1E,MAAOq7F,EAAQv8F,EAAGu8F,MAAO1K,EAAY7xF,EAAG6xF,UACtD,GAAIA,GAAa0K,EAAO,CACpB,IAAIv9C,EAAa6yC,EAAUz8E,gBAAgBmnF,EAAM1L,WAAY0L,EAAMvH,OAC/Dh2C,IAAep5C,KAAK/E,MAAMm+C,YAC1Bp5C,KAAK4V,SAAS,CAAEwjC,WAAYA,GAEpC,CACJ,EACA6vE,EAAmBxpH,UAAU+rH,mBAAqB,SAAU7xB,EAAc1Q,EAAmB0N,GACzF,OAAO,SAAUp7E,EAAMgmE,GACnB,OAAOoY,EAAa1Q,EAAmB1tE,EAAMgmE,EAAWoV,EAC5D,CACJ,EACAsyB,EAAmBxpH,UAAU2rH,eAAiB,SAAUb,GACpD,IAAInwH,EAAK4F,KAAK1E,MAAOq7F,EAAQv8F,EAAGu8F,MAAOz5E,EAAQ9iB,EAAG8iB,MAAOy8E,EAAev/F,EAAGu/F,aAAc1F,EAAY75F,EAAG65F,UAAWhL,EAAoB7uF,EAAG6uF,kBAAmBkL,EAAqB/5F,EAAG+5F,mBAAoBl3B,EAAa7iE,EAAG6iE,WACrNmyB,EAAQuH,IAAUA,EAAM+zB,aAAe/zB,EAAMvH,MAAQlyE,EAAMxhB,OAC3DuvF,EAAa0L,EAAQA,EAAM1L,WAAa,EAC5C,OAAQ,gBAAoB4P,EAAA,GAAM,QAAS,CAAE79E,KAAMigD,GAAcA,EAAWjgD,KAAOigD,EAAWjgD,KAAO,WAAY,aAAc25E,aAAqC,EAASA,EAAM36F,KAAMkhB,MAAOA,EAAOy8E,aAAc35F,KAAKwrH,mBAAmB7xB,EAAc1Q,EAAmB0N,GAAQrrF,IAAKtL,KAAK07F,MAAO6uB,YAAa1iH,KAAKugD,IAAIgnC,EAAOm7B,GAAct/B,WAAYA,EAAYkJ,mBAAoBA,EAAoB5gF,GAAIvT,KAAKuI,KAAO0rF,GACta,EACAg1B,EAAmBxpH,UAAU0rH,WAAa,WACtC,OAAO,CACX,EACAlC,EAAmBxpH,UAAUwqH,aAAe,SAAUtzB,EAAO16E,GACzD,MAAO,UAAY06E,GAASA,EAAMj7E,IAAMi7E,EAAMj7E,IAAM3S,OAAO4tF,EAAMR,OAASptF,OAAOkT,GACrF,EAQAgtG,EAAmBxpH,UAAUwrH,sBAAwB,WACjD,IAAI3mB,EAAatkG,KAAK/E,MAAMqpG,WACxBlqG,EAAK4F,KAAK1E,MAAOq7F,EAAQv8F,EAAGu8F,MAAO2zB,EAAwBlwH,EAAGkwH,sBAElE,OADAhmB,KAAgB3N,IAAS2N,IAClB,EAAAp5F,EAAA,GAAIo5F,GAActkG,KAAKmpH,mBAAoB7kB,GAjNzB,cAiNmEA,GAAcgmB,GAAyBA,EAAsBmB,gBAC7J,EACOxC,CACX,CAnNuC,CAmNrC,a,iCCpNE,GAAgB,EAAArvG,EAAA,KAChB8xG,EAAa,KAAoB/kB,UAAWglB,EAAqB,KAAoB/kB,iBACrFglB,EAAiC,SAAU9pH,GAE3C,SAAS8pH,EAAgBtwH,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMw5F,MAAQ,cACdx5F,EAAM2pH,aAAe,SAAUl1B,EAAOqC,GAClC,IAAI5+F,EAAK8H,EAAM5G,MAAO23F,EAAiB74F,EAAG64F,eAAgBzO,EAAiBpqF,EAAGoqF,eAAgB4Q,EAAmBh7F,EAAGg7F,iBAAkBn4B,EAAa7iE,EAAG6iE,WAAY//C,EAAQ9iB,EAAG8iB,MAAO+2E,EAAY75F,EAAG65F,UAAW0F,EAAev/F,EAAGu/F,aAAc5L,EAAgB3zF,EAAG2zF,cAAe9B,EAAY7xF,EAAG6xF,UAAW0F,EAAWv3F,EAAGu3F,SAAUwC,EAAqB/5F,EAAG+5F,mBAAoBjB,EAAS94F,EAAG84F,OAAQH,EAAU34F,EAAG24F,QAE3Y63B,EAAe,CACfkB,oBAAqB5pH,EAAM6pH,qBAC3B72B,iBAAkBhzF,EAAMm7F,kBACxBurB,kBAAmB1mH,EAAM8pH,oBAEzB50B,GAAc,SAAS,QAAS,CAAC,EAAGn6B,EAAWm6B,aAAcwzB,GAC7DjB,GAAe,SAAS,QAAS,CAAC,EAAG1sD,EAAW0sD,cAAeiB,GAC/DhB,GAAc,SAAS,QAAS,CAAC,EAAG3sD,EAAW2sD,aAAcgB,GAC7D3hC,EAAoB/mF,EAAMs9F,wBAC9B,IAAKviC,EAAW+sD,iBAAmBrzB,GAAyB,IAAhBA,EAAMvH,MAC9C,OAAO,KAEX,IAAI68B,GAAiB,SAAS,QAAS,CAAC,EAAIh4B,GAAa,CAAC,GAAK,CAAEO,QAAStyF,EAAMjH,MAAMu5F,UACtF,OAAQ,gBAAoBy0B,EAAoB,CAAEvtG,IAAKxZ,EAAM+nH,aAAatzB,EAAOqC,GAAa/F,eAAgBA,EAAgBzO,eAAgBA,EAAgB4Q,iBAAkBA,EAAkBw0B,YAAaA,EAAaF,kBAAmBzsD,GAAcA,EAAWysD,kBAAmB/yB,MAAOA,EAAOqC,WAAYA,EAAY/P,kBAAmBA,EAAmBhsB,WAAYA,EAAYm6B,YAAaA,EAAanD,UAAWg4B,EAAgB/uG,MAAOA,EAAOy8E,aAAcA,EAAckwB,oBAAqB5sD,EAAWgmB,eAAgB6mC,qBAAsB7sD,EAAWivD,gBAAiBnC,oBAAqB9sD,EAAWy7B,eAAgB3K,cAAeA,EAAe9B,UAAWA,EAAW09B,aAAcA,EAAch4B,SAAUA,EAAUwC,mBAAoBA,EAAoBm2B,sBAAuBpoH,EAAMoa,YAAa42E,OAAQA,EAAQH,QAASA,GACn0B,EACA7wF,EAAMiqH,0BAA4B,SAAUx1B,GACxC,OAAOA,EAAMj6F,UAAYi6F,EAAMj6F,SAAShB,OAAS,EAAIi7F,EAAMj6F,SAAShB,OAASi7F,EAAMvH,KACvF,EACAltF,EAAMkqH,mBAAqB,SAAUz1B,GACjC,IAAI15B,EAAa/6D,EAAM5G,MAAM2hE,WAE7B,OADwBA,GAAcA,EAAWysD,kBAAoBzsD,EAAWysD,kBAAoBxnH,EAAMiqH,2BACjFx1B,EAC7B,EACAz0F,EAAMmqH,gBAAkB,SAAU11B,GAC9B,IAAIgQ,EAAYzkG,EAAM5G,MAAMy3F,QAAU44B,EAAqBD,EAC3D,OAAO/kB,GAAahQ,EAAM1Q,YAAc,EAAI0gB,EAAYzkG,EAAMkqH,mBAAmBz1B,GACrF,EACAz0F,EAAMoqH,eAAiB,SAAU/qC,GAC7B,IAAI2R,EAAShxF,EAAMjH,MAAMi4F,OACrB94F,EAAK8H,EAAM5G,MAAM84F,eAAgBA,OAAwB,IAAPh6F,EAAgB8H,EAAMmqH,gBAAkBjyH,EAC1FmyH,EAAYr5B,GAAUA,EAAO3R,GACjC,OAAIgrC,EACOn4B,EAAem4B,EAAWhrC,GAG1B,CAEf,EACAr/E,EAAMm7F,kBAAoB,SAAU1G,GAChC,IAAI15B,EAAa/6D,EAAM5G,MAAM2hE,WACzBi4B,EAAmBj4B,GAAcA,EAAWm6B,aAAen6B,EAAWm6B,YAAYlC,iBAClFyB,IACIzB,GACAA,EAAiByB,GAErBA,EAAM1Q,aAAe0Q,EAAM1Q,YAC3B/jF,EAAMsqH,6BACNtqH,EAAM2pB,cAEd,EACA3pB,EAAM6pH,qBAAuB,SAAUp1B,GACnC,IAAIv8F,EAAK8H,EAAM5G,MAAO2wF,EAAY7xF,EAAG6xF,UAAW8B,EAAgB3zF,EAAG2zF,cAC/D4I,GAAS1K,GAAa8B,IAAkB,KAAcc,UACtD5C,EAAUwgC,oBAAoB91B,EAAM1L,WAAY0L,EAAMvH,MAE9D,EACAltF,EAAMwqH,sBAAwB,SAAU/rH,GAEpC,OAAOA,EAAGqE,SAAU,QAAkBC,EAAA,EAASQ,MACnD,EACAvD,EAAM8pH,mBAAqB,SAAUr1B,GACjC,IAAI15B,EAAa/6D,EAAM5G,MAAM2hE,WACzB2rD,EAAoB3rD,GAAcA,EAAW0sD,cAAgB1sD,EAAW0sD,aAAaf,kBACrFA,EACAA,EAAkBjyB,IAGdA,IACAA,EAAM+zB,cAAgB/zB,EAAM+zB,cAEhCxoH,EAAM2pB,cAEd,EACA3pB,EAAMyqH,sBAAwB,SAAUprC,GACpC,IAAI2R,EAAShxF,EAAMjH,MAAMi4F,OACrBq5B,EAAYr5B,GAAUA,EAAO3R,GACjC,MAAO,CACH7lE,IAAK6wG,GAAaA,EAAU7wG,IAEpC,GACA,EAAApT,EAAA,GAAuBpG,GACvBA,EAAM0qH,qBAAuB1qH,EAAM2qH,4BAA4BvxH,EAAM43F,QACrE,IAAI94F,EAAKkB,EAAM24F,UAAyCjyF,QAAlB,IAAP5H,EAAgB,CAAC,EAAIA,GAAYo6F,QAASA,OAAiB,IAAPxyF,EAAgB,CAAC,EAAIA,EAOxG,OANAE,EAAMjH,MAAQ,CACVi4F,OAAQ53F,EAAM43F,OACdh2E,MAAO5hB,EAAM4hB,MACb+2E,UAAW34F,EAAM24F,UACjBO,QAASA,GAENtyF,CACX,CAgHA,OAjNA,QAAU0pH,EAAiB9pH,GAkG3B8pH,EAAgB30G,yBAA2B,SAAU4sB,EAAWk4D,GAC5D,IAAI7I,EAASrvD,EAAUqvD,OAAQnF,EAAgBlqD,EAAUkqD,cAAegF,EAAUlvD,EAAUkvD,QAAS71E,EAAQ2mB,EAAU3mB,MAAO+2E,EAAYpwD,EAAUowD,UAChJ64B,EAAc74B,GAAaA,EAAUO,QACrC+H,GAAY,SAAS,QAAS,CAAC,EAAGR,GAAgB,CAAEhO,cAAeA,EAAegF,QAASA,EAASG,OAAQA,EAAQe,UAAWA,EAAW/2E,MAAOA,IACjJo/E,GAAqB,EAezB,OAbIwwB,KADsB/wB,EAAc9H,WAAa8H,EAAc9H,UAAUO,UAEzEt3E,IAAU6+E,EAAc7+E,OACxBg2E,IAAW6I,EAAc7I,QACzBnF,IAAkBgO,EAAchO,eAChCgF,IAAYgJ,EAAchJ,UAI1BuJ,GAAqB,GAErBA,IACAC,GAAY,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAE/H,QAAS,CAAC,KAEvD+H,CACX,EACAqvB,EAAgBnsH,UAAUi/F,cAAgB,SAAUziF,EAAO0iF,EAAaC,GAChE5+F,KAAK07F,MAAMv4F,SACXnD,KAAK07F,MAAMv4F,QAAQu7F,cAAcziF,EAAO0iF,EAAaC,EAE7D,EACAgtB,EAAgBnsH,UAAUs/F,wBAA0B,WAChD,OAAO/+F,KAAK07F,MAAMv4F,QAAQ47F,2BAA6B,CAC3D,EACA6sB,EAAgBnsH,UAAU+J,kBAAoB,WAC1C,IAAIpP,EAAK4F,KAAK1E,MAAO2hE,EAAa7iE,EAAG6iE,WAAYl7D,EAAK3H,EAAG84F,OAAQA,OAAgB,IAAPnxF,EAAgB,GAAKA,EAC3Fk7D,GAAcA,EAAWi/B,sBACzBl8F,KAAK+sH,yBAAyB75B,EAAQj2B,EAAWi/B,qBAEzD,EACA0vB,EAAgBnsH,UAAUxB,OAAS,WAC/B,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWs2F,EAAe95F,EAAG85F,aAAcC,EAAqB/5F,EAAG+5F,mBAAoBj5F,EAAQd,EAAGc,MAAO6G,EAAK3H,EAAG4iB,KAAMA,OAAc,IAAPjb,EAAgB,WAAaA,EAAI1G,EAASjB,EAAGiB,OAAQ03F,EAAU34F,EAAG24F,QAAS/wF,EAAK5H,EAAGijB,eAAgBA,OAAwB,IAAPrb,EAAgB,CAAC,EAAIA,EAAIC,EAAK7H,EAAG4yH,cAAeA,OAAuB,IAAP/qH,EAAgB,CAAC,EAAIA,EACvWid,EAAKlf,KAAK/E,MAAOi4F,EAASh0E,EAAGg0E,OAAQsB,EAAUt1E,EAAGs1E,QACtDx0F,KAAKsc,YAAc,EAAcjhB,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACXm1F,QAASA,IAEb,IAAIthE,EAAKpU,EAAe/Y,qBAAsBA,OAA8B,IAAPmtB,EAAgBzxB,KAAK0sH,sBAAwBj7F,EAClH,OAAQ,gBAAoB5vB,EAAA,GAAW,QAAS,CAAEsC,UAAW,IAAmBmB,SAAU,oBAAqB,cAAe,qBAAsB,QAAS0X,KAAM,gBAAkBK,EAAgB,CAAE/Y,qBAAsBA,EAAsB1G,WAAW,EAAAsN,EAAA,GAAIlL,KAAKsc,YAAY7S,KAAM4T,EAAezf,aAAgBs1F,EAA8C,gBAAoB2H,EAAA,GAAM,QAAS,CAAEvvF,IAAKtL,KAAK07F,MAAO1+E,KAAMA,EAAME,MAAOg2E,EAAQyG,aAAc35F,KAAK6rH,aAAcX,oBAAqBlrH,KAAKmrH,WAAY8B,cAAejtH,KAAKssH,eAAgBY,qBAAsBltH,KAAK2sH,sBAAuBz4B,aAAcA,EAAcC,mBAAoBA,EAAoBK,QAASA,GAAWw4B,IAA1WhtH,KAAK6rH,kBAAa9sH,EAAW,GACnW,EACA6sH,EAAgBnsH,UAAUosB,YAAc,WACpC/pB,EAAOrC,UAAUosB,YAAYnsB,KAAKM,MAClCA,KAAKu/F,mBACT,EACAqsB,EAAgBnsH,UAAU89F,kBAAoB,SAAU4vB,GACpD,IAAI/yH,EAAK4F,KAAK/E,MAAMi4F,OAAQA,OAAgB,IAAP94F,EAAgB,GAAKA,EACtD6iE,EAAaj9D,KAAK1E,MAAM2hE,WACxB8vB,EAAsB9vB,GAAcA,EAAW8vB,oBAC/CmG,EAAOx3F,OAAS,IACZqxF,GACAA,EAAoBogC,GAExBntH,KAAK+sH,yBAAyB75B,EAAQi6B,GACtCntH,KAAKwsH,6BACLxsH,KAAK6rB,cAEb,EACA+/F,EAAgBnsH,UAAUstH,yBAA2B,SAAU75B,EAAQjN,GACnE,IAAK,IAAI+S,EAAa,EAAGA,EAAa9F,EAAOx3F,OAAQs9F,IACjD9F,EAAO8F,GAAY/S,YAAcA,CAEzC,EACA2lC,EAAgBnsH,UAAU0rH,WAAa,WACnC,OAAO,CACX,EACAS,EAAgBnsH,UAAUwqH,aAAe,SAAUtzB,EAAO16E,GACtD,MAAO,UAAY06E,GAASA,EAAMj7E,IAAMi7E,EAAMj7E,IAAM3S,OAAOkT,GAC/D,EACA2vG,EAAgBnsH,UAAU+/F,sBAAwB,WAI9C,IAHA,IACIrJ,EAAQ,EACRC,EAFSp2F,KAAK/E,MAAMi4F,OAGjBkD,GAAiBA,EAAc16F,OAAS,GAC3Cy6F,IACAC,EAAgBA,EAAc,GAAG15F,SAErC,OAAOy5F,CACX,EACAy1B,EAAgBnsH,UAAU8/F,kBAAoB,SAAUrM,GACpDlzF,KAAK4V,SAAS,CACV4+E,QAAS,CAAC,GAElB,EACAo3B,EAAgBnsH,UAAUotH,4BAA8B,SAAU35B,GAC9D,IAAIhxF,EAAQlC,KACZ,SAAUkzF,IACNA,EAAO7kD,MAAK,SAAUsoD,GAAS,OAAQA,EAAMj6F,SAAWwF,EAAM2qH,4BAA4Bl2B,EAAMj6F,WAAai6F,EAAM1Q,WAAc,IACzI,EACA2lC,EAAgBnsH,UAAU+sH,2BAA6B,WACnD,IAAIt5B,EAASlzF,KAAK/E,MAAMi4F,OACpB2B,EAA4B70F,KAAK1E,MAAMu5F,0BACvCu4B,EAAyBptH,KAAK6sH,4BAA4B35B,GAC1DlzF,KAAK4sH,uBAAyBQ,IAC1Bv4B,GACAA,EAA0Bu4B,GAE9BptH,KAAK4sH,qBAAuBQ,EAEpC,EACAxB,EAAgBjjH,aAAe,CAC3BolF,cAAe,KAAcc,SAC7BuE,iBAAiB,EACjBn2B,WAAY,CAAC,EACb81B,SAAS,GAEN64B,CACX,CAnNoC,CAmNlC,aC1NShxB,GAAc,EAAA37E,EAAA,GAAO2sG,GTQT,SAAUtwH,GAC7B,IAAIlB,EAAI2H,EACJ7G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWm1F,EAAUz3F,EAAMy3F,QAClE5zE,EAAUjkB,EAAMikB,QAChB1hB,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMiC,MACZ,CACIH,SAAU,WACV9V,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO/U,EAAW4kG,WAAa,CAClC1uE,UAAW,IAEfv5B,IAER24F,GAAW,CACPt1F,EAAWs1F,QACX,CACI3nF,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO/U,EAAW4kG,WAAa,CAClC1uE,UAAW,IAEf5xB,KAGZnE,GAEJ+4F,MAAO,CACHl5F,EAAWk5F,MACX,CACIrP,WAAY,oBAAoB90E,OAAO,KAAmBg2G,eAAgB,KAAKh2G,OAlC5E,8CAqCXi5G,gBAAiB,CACblrG,gBAAiBpB,EAAQkS,cAGrC,QS/C4DtyB,EAAW,CACnE0iB,MAAO,e,8HCCA4rG,GAAiB,SAAgB,SAAU5wG,GAClD,IAAIriB,GAAK,QAAQqiB,IAAa,CAC1B6wG,OAAQ,CAAC,EACTC,UAAMxuH,GACPwuH,EAAOnzH,EAAGmzH,KAAMD,EAASlzH,EAAGkzH,OAC/B,OAAKC,EAGE,CACH7wH,SAAU6wH,EACVrpG,cAAeopG,EAAO1vH,UACtB0a,WAAYg1G,EAAOE,UAAYF,EAAOE,SAASl1G,WAC/Cm1G,gBAAiBH,EAAOG,iBANjB,IAQf,QAAG1uH,GAAW,GAMH0pB,EAAW,SAAUntB,GAC5B,IAAImhB,EAAWnhB,EAAMmhB,SAAU7e,EAAYtC,EAAMsC,UAAWxD,EAAKkB,EAAM+c,MAAOA,OAAe,IAAPje,EAAgB,CAAC,EAAIA,EACvGszH,EAAcL,EAAe5wG,IAAa,CAAC,EAC3CyH,EAAgBwpG,EAAYxpG,cAAexnB,EAAWgxH,EAAYhxH,SAAU4b,EAAao1G,EAAYp1G,WAAYm1G,EAAkBC,EAAYD,gBAC/Ir1G,GAAc,QAAe9c,EAAO,MACpCqyH,EAAiBryH,EAAM,eAAiBA,EAAMgrB,MAC9CE,EAAiBlrB,EAAM,eAAiBA,EAAM,oBAAsBA,EAAMgrB,MACxE,CACEtJ,KAAMywG,OAAkB1uH,EAAY,OAEtC,CACE,eAAe,GAEnB6uH,EAAgBlxH,EAMpB,OALI+wH,GACwB,iBAAb/wH,GAAmD,iBAAnBA,EAASpB,OAAsBqyH,IACtEC,EAAgB,eAAmBlxH,EAAU,CAAE0pB,IAAKunG,KAGpD,gBAAoB,KAAK,QAAS,CAAE,iBAAkBlxG,GAAY+J,EAAgBpO,EAAcq1G,EAClG,CACEnnG,WAAOvnB,EACP,kBAAcA,GAEhB,CAAC,EAAI,CAAEnB,WAAW,OAAI,KAAS,KAAW6L,KAAMya,GAAgBzH,GAAY,KAAWgjC,YAAa7hD,GAGtGya,OAAO,QAAS,CAAEC,WAAYA,GAAcD,KAAWu1G,EAC/D,GAQyB,SAAgB,SAAUnxG,EAAU7e,EAAWkd,GACpE,OAAO2N,EAAS,CAAEhM,SAAUA,EAAU7e,UAAWA,EAAW,aAAckd,GAC9E,G,uCC3DW+yG,E,kCACX,SAAWA,GAKPA,EAASA,EAAkB,QAAI,GAAK,UAKpCA,EAASA,EAAgB,MAAI,GAAK,QAIlCA,EAASA,EAAkB,QAAI,KAAU,UAIzCA,EAASA,EAAgB,MAAI,QAAU,OAC1C,CAnBD,CAmBGA,IAAaA,EAAW,CAAC,I,2DCjBxBl0G,GAAgB,EAAAC,EAAA,GAAmB,CAInCk0G,UAAW,MAEXC,EAA0B,SAAUjsH,GAEpC,SAASisH,EAASzyH,GACd,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAYxC,OAXAkC,EAAM8rH,2BAA6B,SAAU/yH,GACrCiH,EAAM5G,MAAM4qB,YAAchkB,EAAM5G,MAAM4qB,WAAW+nG,sBACjD/rH,EAAM5G,MAAM4qB,WAAW+nG,qBAAqBhzH,GAE5CA,IAAU,KAAeizH,OACzBhsH,EAAM0T,SAAS,CAAEu4G,gBAAgB,GAEzC,EACAjsH,EAAMjH,MAAQ,CACVkzH,gBAAgB,GAEbjsH,CACX,CAmDA,OAlEA,QAAU6rH,EAAUjsH,GAgBpBisH,EAAStuH,UAAUxB,OAAS,WACxB,IAAI7D,EAAK4F,KAAK1E,MAAOoB,EAAWtC,EAAGsC,SAAUkB,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAAQohB,EAAWriB,EAAGqiB,SAAU2xG,EAAeh0H,EAAGg0H,aAAclzH,EAAQd,EAAGc,MAC1JmzH,EAAoC,iBAAb5xG,GAA6C,IAApBA,EAAS/gB,OACzD4yH,IAEFtuH,KAAK1E,MAAM4qB,YAAclmB,KAAK1E,MAAMizH,WAAaV,EAASpnG,OAASzmB,KAAK1E,MAAMizH,WAAaV,EAASnnG,MAClGgnG,GAAc,QAAejxG,IAAa,CAAC,EAC3CyH,EAAgBwpG,EAAYxpG,cAAesqG,EAAsBd,EAAYhxH,SAAU+wH,EAAkBC,EAAYD,gBACrHhwH,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXsmB,cAAeA,EACfoqG,QAASA,EACTD,cAAeA,IAEfI,EAAWH,EAAU,OAAS,IAC9Bl2G,GAAc,QAAepY,KAAK1E,MAAO,KAAuB,CAChE,eAEA6yH,EAAiBnuH,KAAK/E,MAAMkzH,eAC5BjoG,GAAa,SAAS,QAAS,CAAC,EAAGlmB,KAAK1E,MAAM4qB,YAAa,CAAE+nG,qBAAsBjuH,KAAKguH,6BACxFU,EAAaP,GAAkBC,GAAiB1nG,EAAA,EAEhD5L,EAAY9a,KAAK1E,MAAM,eAAiB0E,KAAK1E,MAAMwf,UACnD6yG,EAAiBznG,EAAWE,KAAOtL,GAAa9a,KAAK1E,MAAMgrB,MAK3DE,EAJamnG,GACb3tH,KAAK1E,MAAM,oBACX4qB,EAAW,eACXA,EAAW,mBAET,CACElJ,KAAMsxG,GAAWb,OAAkB1uH,EAAY,MAC/C,aAAcuvH,GAAWb,OAAkB1uH,EAAY4uH,GAEzD,CACE,eAAe,GAEnBgB,EAA2BH,EAM/B,OALIf,GAAmBe,GAAsD,iBAAxBA,GAAoCb,IACrFgB,EAA2B,eAAmBH,EAAqB,CAC/DpoG,IAAKunG,KAGL,gBAAoBc,GAAU,QAAS,CAAE,iBAAkBhyG,GAAY+J,EAAgBpO,EAAcq1G,EACvG,CACEnnG,WAAOvnB,EACP,kBAAcA,GAEhB,CAAC,EAAI,CAAEnB,UAAWH,EAAWgM,OAAS6kH,EAAU,gBAAoBI,GAAW,QAAS,CAAC,EAAGxoG,IAAexpB,GAAYiyH,EACjI,EACOZ,CACX,CApE6B,CAoE3B,a,WCzES9yG,GAAO,EAAAgE,EAAA,GAAO8uG,EAAU,UAAWhvH,EAAW,CACrD0iB,MAAO,SACR,GACHxG,EAAKxgB,YAAc,M,0DCTRgD,GAAa,E,SAAA,IAAe,CACnCgM,KAAM,CACFsX,QAAS,gBAEb0+B,YAAa,CACT,sBACA,CACIr3C,MAAO,QAGfqe,MAAO,CACH,yBACA,CACI3J,SAAU,aAKX8xG,EAAU,UACV/sG,EAAY,SAAUvmB,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWsmB,EAAgB5oB,EAAM4oB,cAAemqG,EAAgB/yH,EAAM+yH,cAAeC,EAAUhzH,EAAMgzH,QAASjzH,EAASC,EAAMD,OACnJ,MAAO,CACHoO,KAAM,CACF4kH,GAAiB5wH,EAAWgiD,YAC5BhiD,EAAWgM,KACX6kH,GAAW7wH,EAAWgpB,MACtBvC,EACAtmB,EACAvC,GAAUA,EAAOoO,KAEjBpO,GAAUA,EAAOwzH,gBAG7B,C,+HC9BIl1G,GAAgB,EAAAC,EAAA,KAChBk1G,EAAY,UA0CLC,EAAY,cAAiB,SAAUzzH,EAAO6jC,GACrD,IAAI6vF,EAAe,WACfC,EAAe,WACf70H,EA3CR,SAAsBkB,EAAO2zH,GACzB,IAAIhB,EAAuB3yH,EAAM2yH,qBAAsB1X,EAASj7G,EAAMi7G,OAAQ2Y,EAAU5zH,EAAM4zH,QAASpkF,EAAMxvC,EAAMwvC,IAC/G1wC,EAAK,WAAe,KAAe+0H,WAAYC,EAAYh1H,EAAG,GAAIi1H,EAAej1H,EAAG,IACxF,EAAAk+D,EAAA,IAA0B,WAGtB+2D,EAAa,KAAeF,UAChC,GAAG,CAACrkF,IAEJ,aAAgB,WACRskF,IAAc,KAAeD,WAKdF,EAAa9rH,UACrB2nC,GAAOmkF,EAAa9rH,QAAQmsH,aAAe,GAAKL,EAAa9rH,QAAQosH,cAAgB,GACnFN,EAAa9rH,QAAQqsH,UAAYV,EAAU92E,KAAKlN,KAGrDukF,EAAa,KAAeI,OAGxC,IACA,aAAgB,WACZxB,SAA4EA,EAAqBmB,EAErG,GAAG,CAACA,IACJ,IAAIM,EAAgB,eAAkB,SAAU/uH,GAC5C41G,SAAgDA,EAAO51G,GACnDmqC,GACAukF,EAAa,KAAeI,OAEpC,GAAG,CAAC3kF,EAAKyrE,IACLoZ,EAAe,eAAkB,SAAUhvH,GAC3CuuH,SAAkDA,EAAQvuH,GAC1D0uH,EAAa,KAAenB,MAChC,GAAG,CAACgB,IACJ,MAAO,CAACE,EAAWM,EAAeC,EACtC,CAIaC,CAAat0H,EAAO2zH,GAAeG,EAAYh1H,EAAG,GAAIs1H,EAAgBt1H,EAAG,GAAIu1H,EAAev1H,EAAG,GACpG8rB,GAAa,QAAe5qB,EAAO,KAAe,CAClD,QACA,WAEAwvC,EAAMxvC,EAAMwvC,IAAK1kB,EAAM9qB,EAAM8qB,IAAKhe,EAAQ9M,EAAM8M,MAAO8G,EAAS5T,EAAM4T,OAAQnN,EAAKzG,EAAMu0H,aAAcA,OAAsB,IAAP9tH,GAAuBA,EAAI+tH,EAAqBx0H,EAAMw0H,mBAAoBlyH,EAAYtC,EAAMsC,UAAW04G,EAAWh7G,EAAMg7G,SAAUt5F,EAAO1hB,EAAM0hB,KAAM+yG,EAAgBz0H,EAAMy0H,cAAe10H,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO80H,EAAU10H,EAAM00H,QAC5WC,EAyBR,SAAuB30H,EAAO8zH,EAAWH,EAAcD,GACnD,IAAIkB,EAAoB,SAAad,GACjCa,EAAa,WAMjB,YALmBlxH,IAAfkxH,GACCC,EAAkB/sH,UAAY,KAAegsH,WAAaC,IAAc,KAAeK,UACxFQ,EAAW9sH,QAKnB,SAA2B7H,EAAO8zH,EAAWH,EAAcD,GACvD,IAAI1Y,EAAWh7G,EAAMg7G,SAAUluG,EAAQ9M,EAAM8M,MAAO8G,EAAS5T,EAAM4T,OAEnE,QAAyBnQ,IAArBzD,EAAM20H,WACN,OAAO30H,EAAM20H,WAEZ,GAAIb,IAAc,KAAeK,SACjCnZ,IAAa,KAAS6Z,OACnB7Z,IAAa,KAAS8Z,SACtB9Z,IAAa,KAAS+Z,eACtB/Z,IAAa,KAASga,cAC1BrB,EAAa9rH,SACb6rH,EAAa7rH,QAAS,CAGtB,IAAIotH,EAaJ,GARIA,EAJiB,iBAAVnoH,GACW,iBAAX8G,GACPonG,IAAa,KAAS+Z,eACtB/Z,IAAa,KAASga,YACPloH,EAAQ8G,EAGR8/G,EAAa7rH,QAAQw/C,YAAcqsE,EAAa7rH,QAAQ0L,aAGxDogH,EAAa9rH,QAAQmsH,aAAeL,EAAa9rH,QAAQosH,cAEzDgB,EACf,OAAO,KAAgBC,SAE/B,CACA,OAAO,KAAgBC,QAC3B,CAtC6BC,CAAkBp1H,EAAO8zH,EAAWH,EAAcD,IAE3EkB,EAAkB/sH,QAAUisH,EACrBa,EAAW9sH,OACtB,CAlCqBwtH,CAAcr1H,EAAO8zH,EAAWH,EAAcD,GAC3DvxH,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXwK,MAAOA,EACP8G,OAAQA,EACR6gH,cAAeA,EACfF,aAAcA,EACdC,mBAAoBA,EACpBc,SAAUxB,IAAc,KAAeK,QAAWL,IAAc,KAAeD,WAAa7zH,EAAMw0H,mBAClGe,YAAaZ,IAAe,KAAgBO,UAC5CM,SAAUxa,IAAa,KAASya,OAChCC,gBAAiB1a,IAAa,KAAS+Z,cACvCY,cAAe3a,IAAa,KAASga,YACrCY,UAAW5a,IAAa,KAAS8Z,QACjCe,QAAS7a,IAAa,KAAS6Z,MAC/BiB,OAAQ9a,IAAa,KAASlmG,KAC9BihH,QAASjC,IAAc,KAAelB,MACtCoD,mBAA4BvyH,IAAbu3G,IAGnB,OAAQ,gBAAoB,MAAO,CAAE14G,UAAWH,EAAWgM,KAAM4O,MAAO,CAAEjQ,MAAOA,EAAO8G,OAAQA,GAAU5D,IAAK0jH,GAC3G,gBAAoB,OAAO,QAAS,CAAC,EAAG9oG,EAAY,CAAEqwF,OAAQmZ,EAAeR,QAASS,EAAcj0G,IAxE3F,cAwE6GpgB,EAAMwvC,KAAO,GAAIltC,UAAWH,EAAWgpB,MAAOnb,KAAK,EAAAwG,EAAA,GAAcm9G,EAAc9vF,GAAe2L,IAAKA,EAAK1kB,IAAKA,EAAKpJ,KAAMA,EAAMgzG,QAASA,KACrQ,IACAjB,EAAUt0H,YAAc,Y,yBC/EpBikB,EAAmB,CACnBjV,KAAM,WACN8nH,kBAAmB,0BACnB9qG,MAAO,iBACP+qG,YAAa,yBACbC,aAAc,0BACdC,WAAY,wBACZC,mBAAoB,gCACpBC,iBAAkB,8BAClBC,UAAW,uBACXC,eAAgB,4BAChBC,cAAe,4BCVRrrG,GAAQ,EAAAzH,EAAA,GAAO8vG,GDYH,SAAUzzH,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWwK,EAAQ9M,EAAM8M,MAAO8G,EAAS5T,EAAM4T,OAAQ6gH,EAAgBz0H,EAAMy0H,cAAea,EAAWt1H,EAAMs1H,SAAUf,EAAev0H,EAAMu0H,aAAcC,EAAqBx0H,EAAMw0H,mBAAoBe,EAAcv1H,EAAMu1H,YAAaC,EAAWx1H,EAAMw1H,SAAUI,EAAY51H,EAAM41H,UAAWC,EAAU71H,EAAM61H,QAASH,EAAkB11H,EAAM01H,gBAAiBC,EAAgB31H,EAAM21H,cAAeG,EAAS91H,EAAM81H,OAAQC,EAAU/1H,EAAM+1H,QAASC,EAAgBh2H,EAAMg2H,cAAep2H,EAAQI,EAAMJ,MAC9fuC,GAAa,QAAoBihB,EAAkBxjB,GACnD82H,EAAiB,CACjB9wG,SAAU,WACV7b,KAAM,oBACN0C,IAAK,MACL68B,UAAW,wBAGXtjC,GAAS,EAAA+wC,EAAA,KACT4/E,OAA+BlzH,IAAXuC,QAGkBvC,IAAtCuC,EAAO4wH,UAAUC,iBACjBC,EAA2BlB,GAAaL,GAAiBM,IAAYN,EACnE,CAAEzoH,MAAO,OAAQ8G,OAAQ,QACzB,CAAE9G,MAAO,OAAQ8G,OAAQ,QAC/B,MAAO,CACHzF,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACI/D,SAAU,UAEdizG,GAAiB,CACbtyH,EAAW8zH,kBACX,CACIriH,OAAQ,OACR9G,MAAO,SAGfwoH,GAAYf,IAAiBC,GAAsB,KAAoBtnB,WACtEsoB,GAAYI,GAAaC,GAAWH,GAAmBC,IAAkB,CACtE/vG,SAAU,YAEdtjB,GAEJ6oB,MAAO,CACHhpB,EAAWgpB,MACX,CACI1F,QAAS,QACT6b,QAAS,GAEbg0F,GAAY,CACR,YACA,CACIh0F,QAAS,IAGjBk0F,GAAY,CAACrzH,EAAW+zH,YAAaQ,GACrCd,GAAa,CACTzzH,EAAWg0H,aACXQ,GAAqB,CACjB7pH,MAAO,OACP8G,OAAQ,OACRmjH,UAAW,YAEdJ,GAAqBG,GACrBH,GAAqBD,GAE1Bb,GAAW,CACP1zH,EAAWi0H,WACXO,GAAqB,CACjB7pH,MAAO,OACP8G,OAAQ,OACRmjH,UAAW,UAEdJ,GAAqBG,GACrBH,GAAqBD,GAE1BhB,GAAmB,CACfvzH,EAAWk0H,mBACXd,GAAe,CACXn9F,SAAU,SAEbm9F,GAAe,CACZtyF,UAAW,QAEfyzF,GAEJf,GAAiB,CACbxzH,EAAWm0H,iBACXf,GAAe,CACXtyF,UAAW,SAEdsyF,GAAe,CACZn9F,SAAU,QAEds+F,GAEJZ,GAAU,CACN3zH,EAAWo0H,UACX,CACIzpH,MAAO,OACP8G,OAAQ,SAGhBoiH,GAAiB,GACXlpH,IACG8G,GAAU,CACXA,OAAQ,OACR9G,MAAO,SAEVA,KACK8G,GAAU,CACZA,OAAQ,OACR9G,MAAO,UAETA,KACI8G,GAAU,CACZA,OAAQ,OACR9G,MAAO,SAGfyoH,GAAepzH,EAAWq0H,gBACzBjB,GAAepzH,EAAWs0H,eAC1BnB,GAAY,eACbf,GAAgB,YAChBwB,GAAW,YAGvB,QCtIgDtyH,EAAW,CACvD0iB,MAAO,UACR,GACHiF,EAAMjsB,YAAc,O,kBCFb,IAAI63H,EAuCAC,EAcAC,E,oCApDX,SAAWF,GAIPA,EAASA,EAAiB,OAAI,GAAK,SAMnCA,EAASA,EAAkB,QAAI,GAAK,UAKpCA,EAASA,EAAgB,MAAI,GAAK,QAKlCA,EAASA,EAAe,KAAI,GAAK,OAMjCA,EAASA,EAAsB,YAAI,GAAK,cAMxCA,EAASA,EAAwB,cAAI,GAAK,eAC7C,CAjCD,CAiCGA,IAAaA,EAAW,CAAC,IAM5B,SAAWC,GAIPA,EAAgBA,EAA2B,UAAI,GAAK,YAIpDA,EAAgBA,EAA0B,SAAI,GAAK,UACtD,CATD,CASGA,IAAoBA,EAAkB,CAAC,IAK1C,SAAWC,GAIPA,EAAeA,EAA0B,UAAI,GAAK,YAIlDA,EAAeA,EAAuB,OAAI,GAAK,SAI/CA,EAAeA,EAAsB,MAAI,GAAK,QAI9CA,EAAeA,EAA4B,YAAI,GAAK,aACvD,CAjBD,CAiBGA,IAAmBA,EAAiB,CAAC,G,wICjEjC,SAASC,EAAcC,GAC1B,OAAOA,EAAa1jE,QAAO,SAAU2jE,EAAWC,GAC5C,OAAOD,EAAY,KAAgBC,EAAYrmG,MAAM,IAAIymB,KAAK,KAClE,GAAG,KACP,CCPO,IAAI3kB,EAAa,SAAU/yB,GAC9B,IAAIlB,EACAsC,EAAWpB,EAAMoB,SACjBqF,ECFD,SAAuB5H,GAC1B,IAAIm4G,EAAW,WACXlqF,EAAcjuB,EAAQiuB,aACpB,QAAS,CAAEtkB,SAAU3J,EAAQ2J,UAAY3J,EAAQiuB,kBAAerpB,EAClE8zH,GAAgB,EAAA9hH,EAAA,GAAS+hH,EAAAC,EAAcC,eACvCC,GAAc,EAAAhgH,EAAA,GAAY9Y,IAE9B,EAAAm+D,EAAA,IAA0B,WAClBg6C,EAASnvG,SACTilB,KACE6qG,aAAiD,EAASA,EAAY7qG,eAAiBjuB,EAAQiuB,cAAgB6qG,aAAiD,EAASA,EAAYnvH,YAAc3J,EAAQ2J,WAC7M+uH,EAAcphH,OAAO2W,EAAakqF,EAASnvG,QAEnD,KACA,EAAAm1D,EAAA,IAA0B,WAKtB,OAHIlwC,IACAkqF,EAASnvG,QAAU0vH,EAAcK,SAAS9qG,IAEvC,WAEHA,GAAeyqG,EAAcM,WAAW/qG,EAAakqF,EAASnvG,QAClE,CAGJ,GAAG,IACH,IAAIiwH,EAAoB,CACpBvoH,qBAAiB9L,EACjBs0H,cAAUt0H,GAKd,OAHIqpB,IACAgrG,EASR,SAAuBP,EAAezqG,EAAakrG,GAE/C,IAAIC,EAAiBV,EAAcW,kBAAkBprG,GAEjDvd,GAAkB,OAAyByoH,EFA5C,SAA4BZ,GAC/B,IAAIe,EAAc,IAAM,KACxB,OAAKf,EAAah3H,OAIX+3H,EAAc,IAAMhB,EAAcC,GAF9Be,CAGf,CEPuEC,CAAmBH,EAAeb,eACjGA,GAAe,QAAc,GAAIa,EAAeb,cAAc,GAKlE,OAJIa,EAAeI,sBACfjB,EFjCD,SAAwBA,EAAckB,GACzC,IAAIC,EAAsBD,EAAqBl4H,OAC3Co4H,GAAmB,QAAc,GAAIF,GAAsB,GAAM5vH,MACjE+vH,GAAkB,QAAc,GAAIrB,GAAc,GACtD,OAAO,QAAkBqB,EAAiBF,EAAsB,EAAGC,EACvE,CE4BuBE,CAAetB,EAAca,EAAeI,sBAGxD,CACH9oH,gBAAiBA,EACjBwoH,SAHWZ,EAAcC,GAKjC,CAvB4BuB,CAAcpB,EAAezqG,EAAajuB,EAAQ0Q,kBAEnEuoH,CACX,CDhCac,EADwC,QAAO54H,EAAO,CAAC,cACvB+3H,EAAWtxH,EAAGsxH,SAAUxoH,EAAkB9I,EAAG8I,gBACtF,OAAOnO,IAAUtC,EAAK,CAAC,GAChB,MAAkBi5H,EACrBj5H,EAAG,MAA0Bi5H,EAC7Bj5H,EAAG,oBAAsByQ,EACzBzQ,GACR,C,mFEZIuf,GAAgB,E,SAAA,GAAmB,CAInCm0G,UAAW,MAEXqG,EAA2B,SAAUryH,GAErC,SAASqyH,IACL,OAAkB,OAAXryH,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAWA,OAdA,QAAUm0H,EAAWryH,GAIrBqyH,EAAU10H,UAAUxB,OAAS,WACzB,IAAI7D,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGsQ,GAAI+jH,OAAkB,IAAP1sH,EAAgB,QAAUA,EAAIrF,EAAWtC,EAAGsC,SAAUkB,EAAYxD,EAAGwD,UAAWkG,EAAW1J,EAAG0J,SAAUzI,EAASjB,EAAGiB,OAAQyqC,EAAW1rC,EAAG0rC,SAAU5qC,EAAQd,EAAGc,MACvMuC,EAAakc,EAActe,EAAQ,CACnCuC,UAAWA,EACXkG,SAAUA,EACVgiC,SAAUA,EACV5qC,MAAOA,IAEX,OAAQ,gBAAoBuzH,GAAU,QAAS,CAAC,GAAG,QAAezuH,KAAK1E,MAAO,MAAgB,CAAEsC,UAAWH,EAAWgM,OAAS/M,EACnI,EACOy3H,CACX,CAhB8B,CAgB5B,a,WCvBSjlF,GAAQ,EAAAjwB,EAAA,GAAOk1G,GCDH,SAAU74H,GAC7B,IAAIlB,EACAc,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWkG,EAAWxI,EAAMwI,SAAUgiC,EAAWxqC,EAAMwqC,SAC9F9rB,EAAiB9e,EAAM8e,eAEvBo6G,EAAkB,KAAYn0G,SAC9Bo0G,EAAar6G,EAAeC,SAC5Bq6G,EAAqBt6G,EAAeuzB,iBACpCgnF,EAAyBv6G,EAAeuhC,UAC5C,MAAO,CACH9xC,KAAM,CACF,WACAvO,EAAMkkB,MAAMyB,OACZ,CACIR,WAAY+zG,EACZr6G,MAAOs6G,EACP/jG,UAAW,aACXiU,UAAW,OACXzjB,OAAQ,EACRC,QAAS,QACTL,QAAS,QACTk5B,SAAU,aACVC,aAAc,cAElB/1C,GAAY,CACRiW,MAAOu6G,EACPlpH,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE2f,MAAO,aAAc,WAC3D3f,IAER0rC,GAAY,CACR16B,UAAW,CACP,UAAW,CACP4S,QAAS,OACTjE,MAAOw6G,EACP/mF,aAAc,MAI1B5vC,GAGZ,QDzCgDmB,EAAW,CACvD0iB,MAAO,S,wEEHX,MAAM+yG,EAAsB,qBAAoBz1H,GAC1C01H,EAAkC,IAAI,KAAa,EACdD,EAAoBrgB,S,sECDpDugB,EAAqB,SAAUp5H,GACtC,IAAIq5H,EAAcr5H,EAAMq5H,YAAaC,EAAYt5H,EAAMs5H,UACnDhpG,EAAsB,WAAe,IAAI,GACzCipG,EAAgB,aAAiB,MAIjCC,OAAyC/1H,IAAlB81H,IAAgCD,EACvDl6H,EAAU,WAAc,WACxB,OAAOo6H,OACD/1H,EACA,CACE41H,YAAaA,EACb/oG,oBAAqBA,EACrBmpG,iBAAkB,SAAUzpH,GAExBsgB,EAAoBjuB,KAAK2N,GACzBupH,SAA8DA,EAAcE,iBAAiBzpH,EACjG,EACA0pH,mBAAoB,SAAU1pH,GAC1BupH,SAA8DA,EAAcG,mBAAmB1pH,GAC/F,IAAIxL,EAAI8rB,EAAoBtc,QAAQhE,GAChCxL,GAAK,GACL8rB,EAAoBlR,OAAO5a,EAAG,EAEtC,EAEZ,GAAG,CAAC60H,EAAa/oG,EAAqBipG,EAAeC,IAQrD,OAPA,aAAgB,WACZ,GAAIp6H,EAEA,OADAA,EAAQq6H,iBAAiBr6H,EAAQi6H,aAC1B,WAAc,OAAOj6H,EAAQs6H,mBAAmBt6H,EAAQi6H,YAAc,CAErF,GAAG,CAACj6H,IAEAA,EACO,gBAAoB,KAAkBy5G,SAAU,CAAExkG,MAAOjV,GAAWY,EAAMoB,UAG1E,gBAAoB,WAAgB,KAAMpB,EAAMoB,SAE/D,E,iCCnCO,SAASu4H,EAAcC,EAAaC,QACnB,IAAhBD,IAA0BA,EAAc,CAAC,GAC7C,IAAIE,EAAoBC,EAAoBF,GAAeA,EAW/D,SAA4BA,GACxB,OAAO,SAAUt6H,GAAY,OAAQs6H,GAAc,SAAS,QAAS,CAAC,EAAGt6H,GAAWs6H,GAAet6H,CAAW,CAClH,CAb6Ey6H,CAAmBH,GAC5F,OAAOC,EAAkBF,EAC7B,CAMA,SAASG,EAAoBx6H,GACzB,MAA2B,mBAAbA,CAClB,CCEA,IAAI06H,EAA4B,SAAUzzH,GAEtC,SAASyzH,IACL,IAAIrzH,EAAmB,OAAXJ,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,KAEhE,OADAkC,EAAMszH,uBAAyB,WAAc,OAAOtzH,EAAM2pB,aAAe,EAClE3pB,CACX,CAkBA,OAvBA,QAAUqzH,EAAYzzH,GAMtByzH,EAAW91H,UAAU+J,kBAAoB,WACrCisH,EAAA,EAAenkC,QAAQtxF,KAAKw1H,uBAChC,EACAD,EAAW91H,UAAU6K,qBAAuB,WACxCmrH,EAAA,EAAeC,UAAU11H,KAAKw1H,uBAClC,EACAD,EAAW91H,UAAUxB,OAAS,WAC1B,IAAIiE,EAAQlC,KACR21H,EAAmB31H,KAAK1E,MAAMq6H,iBAClC,OAAQ,gBAAoBC,EAAA,EAAkB12D,SAAU,MAAM,SAAU21D,GACpE,IAAIgB,EC/BT,SAA6Bv6H,EAAOu5H,GACvC,IFIgCK,EAAaC,EAWfW,EEf1B17H,GAAMy6H,GAAiB,CAAC,GAAG95H,eAAgBA,OAAwB,IAAPX,EAAgB,CAAES,SAAU,CAAC,EAAGk7H,eAAgB,CAAC,GAAM37H,EACvH,MAAO,CACHW,eAAgB,CACZF,SAAUo6H,EAAcl6H,EAAeF,SAAUS,EAAMT,UACvDk7H,gBFAwBb,EEAYn6H,EAAeg7H,eFAdZ,EEA8B75H,EAAMy6H,oBFC7D,IAAhBb,IAA0BA,EAAc,CAAC,IACrBG,EAAoBF,GAAeA,QAU3B,KADFW,EAToEX,KAUxDW,EAA0B,CAAC,GAC9D,SAAUE,GACb,IAAIC,GAAoB,QAAS,CAAC,EAAGD,GACrC,IAAK,IAAIE,KAAaJ,EACdA,EAAwBr3H,eAAey3H,KACvCD,EAAkBC,IAAa,SAAS,QAAS,CAAC,EAAGF,EAAkBE,IAAaJ,EAAwBI,KAGpH,OAAOD,CACX,IAlByBf,IEFjBiB,qBAAqB,GAGjC,CDsB6BC,CAAoBl0H,EAAM5G,MAAOu5H,GAIlD,OAHIc,IACAE,EAAaF,EAAiBE,IAE3B,gBAAoBD,EAAA,EAAkBzhB,SAAU,CAAExkG,MAAOkmH,GAAc3zH,EAAM5G,MAAMoB,SAC9F,GACJ,EACO64H,CACX,CAzB+B,CAyB7B,a,iCE1CE57G,GAAgB,EAAAC,EAAA,KAChBy8G,GAAiB,EAAA1vG,EAAA,KAAgB,SAAUzrB,EAAOuqC,GAAS,OAAO,EAAA6wF,EAAA,IAAY,SAAS,QAAS,CAAC,EAAGp7H,GAAQ,CAAE2C,IAAK4nC,IAAW,IAgBvH8wF,EAAa,cAAiB,SAAUj7H,EAAOgQ,GACtD,IAAI1N,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOs7H,EAAal7H,EAAMk7H,WAAYC,EAAmBn7H,EAAMm7H,iBAAkBp7H,EAASC,EAAMD,OAC3IoC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPs7H,WAAYA,EACZ54H,UAAWA,IAEXyP,EAAc,SAAa,MAE/B,OAmBJ,SAA6BopH,EAAkBr8H,EAAIiT,GAC/C,IAAIqpH,EAAat8H,EAAGs8H,WACpB,aAAgB,WACZ,GAAID,EAAkB,CAClB,IAAIE,GAAe,EAAA1mH,EAAA,GAAY5C,EAAYlK,SAC3C,GAAIwzH,EAEA,OADAA,EAAax9H,KAAKiwE,UAAUz/D,IAAI+sH,GACzB,WACHC,EAAax9H,KAAKiwE,UAAUC,OAAOqtD,EACvC,CAER,CACJ,GAAG,CAACA,EAAYD,EAAkBppH,GAEtC,CAlCIupH,CAAoBH,EAAkBh5H,EAAY4P,GAC3C,gBAAoB,WAAgB,KAG/C,SAA4B/R,EAAOlB,EAAIiT,EAAa/B,GAChD,IAAI7B,EAAOrP,EAAGqP,KACV1H,EAAKzG,EAAMoP,GAAImsH,OAAc,IAAP90H,EAAgB,MAAQA,EAAIoW,EAAM7c,EAAM6c,IAAKjd,EAAQI,EAAMJ,MACjF6P,GAAW,QAAezP,EAAO,KAAe,CAAC,QACjD0G,EA/BK,SAAU5H,GACnB,IAAIc,EAAQd,EAAGc,MAAOid,EAAM/d,EAAG+d,IAC3B2+G,GAAa,QAAO57H,GAAS,MAAQ,MACrC67H,GAAU,UAAW,MAAQ,MAC7BC,EAAe7+G,GAAY2+G,EAC/B,MAAO,CAIHG,QAASD,IAAiBF,GAAcE,IAAiBD,EAAUC,EAAe7+G,EAGlF++G,WAAYF,IAAiBF,EAErC,CAiBaK,CAAO77H,GAAQ27H,EAAUj1H,EAAGi1H,QAASC,EAAal1H,EAAGk1H,WAC1DE,EAAmB,gBAAoB1C,EAAoB,CAAEC,YAAatnH,GAC1E,gBAAoBwpH,GAAM,QAAS,CAAE1+G,IAAK8+G,GAAWlsH,EAAU,CAAEnN,UAAW6L,EAAM6B,KAAK,EAAAwG,EAAA,GAAczE,EAAa/B,OAQtH,OANI4rH,IAEAE,EAEA,gBAAoB7B,EAAY,CAAE16H,SAAU,CAAEK,MAAOm7H,EAAen7H,EAAe,QAARid,KAAoBi/G,IAE5FA,CACX,CAlBqDC,CAAmB/7H,EAAOmC,EAAY4P,EAAa/B,GACxG,IACAirH,EAAW97H,YAAc,a,ICkGrB68H,E,WClIAC,EAAc,CAAEj/G,WAAY,WAC5BoG,EAAmB,CACnBjV,KAAM,YACNitH,WAAY,wBCELc,GAAS,EAAAv4G,EAAA,GAAOs3G,GDAJ,SAAUj7H,GAC7B,IAAIk7H,EAAal7H,EAAMk7H,WAAY54H,EAAYtC,EAAMsC,UAAW65H,EAAgCn8H,EAAMm8H,8BAA+Bv8H,EAAQI,EAAMJ,MAEnJ,MAAO,CACHuO,KAAM,EAFO,QAAoBiV,EAAkBxjB,GAGpCuO,KACXvO,EAAMkkB,MAAMyB,OACZ,CACI9G,MAAO7e,EAAMikB,QAAQW,iBAExB23G,GAAiC,CAC9B,WAAYF,EACZ,UAAWA,EACX,aAAcA,GAGlBf,GAAc,CACVz8G,MAAO7e,EAAM8e,eAAeC,SAC5BsG,gBAAiBrlB,EAAM8e,eAAe4rB,gBAE1ChoC,GAEJ84H,WAAY,CACR,CACIn2G,gBAAiBrlB,EAAM8e,eAAe4rB,iBAItD,QC5BkD7mC,EAAW,CACzD0iB,MAAO,W,iCCPPi2G,EAAkB,CAAC,EACnBC,EAAkB,CAAC,EACnBC,EAAgB,4BAChBC,EAAuB,IAAIrlH,OAAOolH,G,WHOlC,GAAgB,EAAAh+G,EAAA,KAOTk+G,EAAY,cAAiB,SAAUx8H,EAAOgQ,GACrD,INbIysH,EMaAC,ENZmE,QAA/DD,EAAoB,aAAiBvD,UAAwD,IAAtBuD,EAA+BA,EAAoBtD,EMa9H10F,EAAU,SAAa,MACvBk4F,GAAY,EAAAnmH,EAAA,GAAciuB,EAASz0B,GACnC4sH,EAAW,WACXC,EAAmB,SAAa,MAChCzpF,EAAe,aAAiB,MAGhCt0C,EAAK,YAAe,GAAQg+H,EAAsBh+H,EAAG,GAAIi+H,EAAyBj+H,EAAG,GAGrFk+H,EAAgB,eAAkB,SAAUn6B,GAC5C,IAnB2Bw2B,EAmBvB4D,KAlBJ5D,OAD2BA,EAmBajmF,aAAmD,EAASA,EAAaimF,kBAlBhE,EAASA,EAAYxxH,UAC/DwxH,EAAYxxH,QAAQimE,UAAUtwE,SAAS,MAkB1CqlG,GAAMo6B,GACNp6B,EAAG/0B,UAAUz/D,IAAI,KAEzB,GAAG,CAAC+kC,IACAhyC,EAAWpB,EAAMoB,SAAUkB,EAAYtC,EAAMsC,UAAW46H,EAAuBl9H,EAAMk9H,qBAAsBC,EAAcn9H,EAAMm9H,YAAaC,EAASp9H,EAAMo9H,OAAQC,EAAcr9H,EAAMq9H,YAAa52H,EAAKzG,EAAMs1G,gBAAiBA,OAAyB,IAAP7uG,EAAgB,WAAgC,EAAIA,EAE1SC,EAAK1G,EAAMokC,eAEXA,OAAwB,IAAP19B,EAAgB,WAAgC,EAAIA,EAAI42H,EAAqBt9H,EAAMs9H,mBAAoBv9H,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MACzJ29H,GAAY,EAAA/mH,EAAA,GAAcqmH,EAAkBM,aAAiD,EAASA,EAAYntH,IAAKgtH,GACvH76H,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXk7H,WAAYJ,IA0BZK,EAAqB,WACrBH,SAAwEA,IACxE,IAAII,EAAOd,EAAS/0H,QAEpB+0H,EAAS/0H,aAAUpE,EACfi6H,GAAQA,EAAKx/H,YACbw/H,EAAKx/H,WAAWslC,YAAYk6F,EAEpC,EAEIC,EAAqB,WACrB,IAAI7+H,EACA6P,GAAM,EAAAgG,EAAA,GAAY8vB,EAAQ58B,SAC9B,GAAK8G,EAAL,CAGA,IAAIivH,EAtCM,SAAUjvH,GACpB,IAAI7P,EAAI2H,EACR,GAAI22H,EAAQ,CACR,IAAIS,EGST,SAAsBT,GACzB,IAAIU,EAAazB,EAAgBe,GACjC,OAAQU,GAAcA,EAAW,SAAOr6H,CAC5C,CHZ4Bs6H,CAAaX,GAC7B,OAAIS,EAC4C,QAApC/+H,EAAK++H,EAAUp5F,QAAQ58B,eAA4B,IAAP/I,EAAgBA,EAAK,KAEhC,QAArC2H,EAAKkI,EAAIgkC,eAAeyqF,UAA4B,IAAP32H,EAAgBA,EAAK,IAC9E,CAEI,IAAIu3H,EG+ELzB,EH7EKqB,EAAOI,EAAsBrvH,EAAIJ,cAAcyvH,GAAuB,KAM1E,OAHKJ,IACDA,EGiCT,SAAgCjvH,GACnC,IAAIivH,EAAOjvH,EAAIsvH,cAAc,OAI7B,OAHAL,EAAKl/H,aAAa,KAAM49H,GACxBsB,EAAK7gH,MAAMmhH,QAAU,iCACrBvvH,SAA0CA,EAAI9Q,KAAKslC,YAAYy6F,GACxDA,CACX,CHvCuBO,CAAuBxvH,IAE3BivH,CAEf,CAkBeQ,CAAQzvH,GACnB,GAAKivH,EAAL,CAIAH,IACA,IAAI56B,GAAoC,QAA7B/jG,EAAK8+H,EAAKS,qBAAkC,IAAPv/H,EAAgBA,EAAK6P,GAAKsvH,cAAc,OACxFp7B,EAAGvgG,UAAYH,EAAWgM,MAC1B,EAAA1P,EAAA,GAAmBokG,GIxFpB,SAA0BzlG,EAAOD,GACpC,IAAImhI,EAAelhI,EACfmhI,EAAgBphI,EACfmhI,EAAatgI,WACdsgI,EAAatgI,SAAW,CACpBoD,SAAU,KAGlB,IAAIo9H,EAAYF,EAAatgI,SAASb,OACtC,GAAIqhI,GAAaA,IAAcrhI,EAAQ,CAEnC,IAAIwjB,EAAQ69G,EAAUxgI,SAASoD,SAAS4S,QAAQsqH,GAC5C39G,GAAS,GACT69G,EAAUxgI,SAASoD,SAASge,OAAOuB,EAAO,EAElD,CACA29G,EAAatgI,SAASb,OAASohI,QAAiB96H,EAC5C86H,IACKA,EAAcvgI,WACfugI,EAAcvgI,SAAW,CACrBoD,SAAU,KAGlBm9H,EAAcvgI,SAASoD,SAASiB,KAAKi8H,GAE7C,CJgEQG,CAAiB57B,EAAIp+D,EAAQ58B,SAC7Bw1H,EAAcO,EAAKc,aAAa77B,EAAI+6B,EAAKn0H,YAAcm0H,EAAKz6F,YAAY0/D,GACxE+5B,EAAS/0H,QAAUg7F,EACnBk6B,GAAuB,EATvB,CAJA,CAcJ,EA2BA,OA1BA,EAAA//D,EAAA,IAA0B,WACtB2gE,IAEIP,GG9FL,SAAuBA,EAAQ9lH,GAC7B8kH,EAAgBgB,KACjBhB,EAAgBgB,GAAU,IAE9BhB,EAAgBgB,GAAQ/6H,KAAKiV,GAC7B,IAAIwmH,EAAazB,EAAgBe,GACjC,GAAIU,EACA,IAAK,IAAI59H,EAAK,EAAGy+H,EAAeb,EAAY59H,EAAKy+H,EAAav+H,OAAQF,IAClDy+H,EAAaz+H,GACnB0+H,qBAGtB,CHmFYC,CAAczB,EAAQO,GAE1B,IAAImB,EAAqBlC,EAAS/0H,QAAU60H,EAAiBE,EAAS/0H,cAAWpE,EACjF,OAAO,WACCq7H,GACAA,IAEJrB,IACIL,GGrFT,SAAyBA,EAAQ9lH,GACpC,IAAIynH,EAAS3C,EAAgBgB,GAC7B,GAAI2B,EAAQ,CACR,IAAI/yE,EAAM+yE,EAAO/qH,QAAQsD,GACrB00C,GAAO,IACP+yE,EAAO3/G,OAAO4sC,EAAK,GACG,IAAlB+yE,EAAO3+H,eACAg8H,EAAgBgB,GAGnC,CACA,IAAIU,EAAazB,EAAgBe,GACjC,GAAIU,EACA,IAAK,IAAI59H,EAAK,EAAG8+H,EAAelB,EAAY59H,EAAK8+H,EAAa5+H,OAAQF,IAClD8+H,EAAa9+H,GACnB0+H,qBAGtB,CHoEgBK,CAAgB7B,EAAQO,EAEhC,CAEJ,GAAG,CAACP,IACJ,aAAgB,WACRR,EAAS/0H,SAAWi1H,IACpB14F,SAAgEA,IAChEkxE,SAAkEA,IAClEynB,GAAuB,GAE/B,GAAG,CAACD,EAAqB14F,EAAgBkxE,IAEjC,gBAAoB,OAAQ,CAAEhzG,UAAW,WAAY0N,IAAK2sH,GAAaC,EAAS/0H,SACpF,eAAsB,gBAAoBuxH,EAAoB,CAAEE,WAAW,EAAMD,YAAakE,GAC1F,gBAAoBrB,GAAQ,QAAS,CAAC,GAAKgB,IAiB9ClB,IACDA,EAAqB,CAAC,EACtB,CACI,UACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,eACA,eACA,cACA,cACA,aACA,YACA,cACA,eACA,gBACA,aACA,YACA,aACA,UACA,UACA,SACA,WACA,UACA,YACA,YACFhuH,SAAQ,SAAUtN,GAAQ,OAAQs7H,EAAmBt7H,GAAQw+H,CAAgB,KAE5ElD,GArD0FmB,EAAa,CAAE76H,WAAW,EAAAsN,EAAA,GAAIzN,EAAWugB,QAASy6G,aAAiD,EAASA,EAAY76H,WAAY0N,IAAKutH,IAAcn8H,IAAYw7H,EAAS/0H,SACjR,IACA20H,EAAUr9H,YAAc,YAExB,IAAI+/H,EAAgB,SAAU75H,GAItBA,EAAG85H,aAAej7D,MAAMk7D,gBACZ,eAAZ/5H,EAAGlE,MACS,eAAZkE,EAAGlE,MACS,eAAZkE,EAAGlE,MACS,aAAZkE,EAAGlE,MACHkE,EAAG+C,iBAEX,EK9II,EAAmB,CACnB+F,KAAM,WACNkxH,WAAY,kBACZ38G,QAAS,oBCDFsmB,GAAQ,EAAArlB,EAAA,GAAO64G,GDGH,SAAUx8H,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWk7H,EAAYx9H,EAAMw9H,UAAW59H,EAAQI,EAAMJ,MACxEuC,GAAa,QAAoB,EAAkBvC,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZi4G,GAAa,CACTr7H,EAAWk9H,WACX,CACIz5G,SAAU,QACVmjB,OAAQ,KAASC,MACjBv8B,IAAK,EACL1C,KAAM,EACN4C,OAAQ,EACRxC,MAAO,EACP+4B,WAAY,WAGpB5gC,GAEJogB,QAAS,CACLvgB,EAAWugB,QACX,CACIwgB,WAAY,YAI5B,QC/BgDz/B,EAAW,CACvD0iB,MAAO,QACP9mB,OAAQ,CAAC,SAAU,QAAS,W,yGCD5Bgf,GAAgB,EAAAC,EAAA,KA2ChBghH,EAAyB,SAAUnM,EAAUnzH,GAIpCA,EAAMoP,GAAf,IAAmB5G,EAAWxI,EAAMwI,SAAUpK,EAAS4B,EAAM5B,OAAQ+hB,EAAOngB,EAAMmgB,KAA+IgzF,GAAjInzG,EAAMJ,MAAmBI,EAAMumB,UAAoBvmB,EAAMD,OAAuBC,EAAM8hB,aAA0B9hB,EAAMu/H,WAAuB,QAAOv/H,EAAO,CAAC,KAAM,WAAY,SAAU,OAAQ,QAAS,YAAa,SAAU,eAAgB,eAEhV,MAAwB,iBAAbmzH,EAEU,MAAbA,GACO,QAAS,CAAE/0H,OAAQA,EAAQ+hB,KAAM3X,OAAW/E,EAAY0c,GAAQgzF,GAG1D,WAAbggB,GACO,QAAS,CAAEhyH,KAAM,SAAUqH,SAAUA,GAAY2qG,IAGrD,SAAS,QAAS,CAAC,EAAGA,GAAY,CAAE3qG,SAAUA,KAGlD,QAAS,CAAEpK,OAAQA,EAAQ+hB,KAAMA,EAAM3X,SAAUA,GAAY2qG,EACxE,EChEWqsB,EAAW,cAAiB,SAAUx/H,EAAOgQ,GACpD,IAAIlR,EDKa,SAAUkB,EAAO6jC,GAClC,IAAIz0B,EAAKpP,EAAMoP,GAAI9M,EAAYtC,EAAMsC,UAAWkG,EAAWxI,EAAMwI,SAAU2X,EAAOngB,EAAMmgB,KAAM3C,EAAUxd,EAAMwd,QAASzd,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO2/H,EAAYv/H,EAAMu/H,UACjL96F,EAAU,SAAa,MACvBqG,GAAiB,EAAAt0B,EAAA,GAAciuB,EAASZ,IA0B1B,SAAU7jC,EAAO84B,GACnC,sBAA0B94B,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,WACC+wB,EAAKjxB,SACLixB,EAAKjxB,QAAQE,OAErB,EACA,GAAG,CAAC+wB,GACZ,EAjCIkT,CAAgBhsC,EAAOykC,IACvB,EAAA8G,EAAA,IAAc9G,GACd,IAAItiC,EAAakc,EAActe,EAAQ,CACnCuC,UAAWA,EACXm9H,UAAWt/G,EACX6zC,WAAYxrD,EACZk3H,aAAcH,EACd3/H,MAAOA,IAUP+/H,EAAWvwH,IAAU+Q,EAAO,IAAM,UAMtC,MAAO,CAAExgB,MALG,CAAC,EAKUmD,MAJX,CAAEqL,KAAMwxH,GAIiB79H,UAHrB,CACZqM,MAAM,SAAS,QAAS,CAAC,EAAGmxH,EAAuBK,EAAU3/H,IAAS,CAAE,gBAAiBwI,EAAUlG,UAAWH,EAAWgM,KAAMqP,QAZpH,SAAUnY,GACjBmD,EACAnD,EAAGyG,iBAEE0R,GACLA,EAAQnY,EAEhB,EAKsJ2K,IAAK86B,KAG/J,CCjCa80F,CAAQ5/H,EAAOgQ,GAAMlN,EAAQhE,EAAGgE,MAAOhB,EAAYhD,EAAGgD,UAC/D,OAAO,gBAAoBgB,EAAMqL,MAAM,QAAS,CAAC,EAAGrM,EAAUqM,MAClE,IACAqxH,EAASrgI,YAAc,W,eCJZojB,GAAO,EAAAoB,EAAA,GAAO67G,EAAU,SAAW/7H,EAAW,CACrD0iB,MAAO,Q,0DCHA/C,EAAmB,CAC1BjV,KAAM,WAECoY,EAAY,SAAUvmB,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EACxB9zB,EAAYtC,EAAMsC,UAAWm9H,EAAWz/H,EAAMy/H,SAAUzrE,EAAah0D,EAAMg0D,WAAY0rE,EAAe1/H,EAAM0/H,aAAc9/H,EAAQI,EAAMJ,MACxI8e,EAAiB9e,EAAM8e,eAEvBmhH,EAAYnhH,EAAeoa,KAC3BgnG,EAAsBphH,EAAektF,YACrCm0B,EAAoBrhH,EAAegW,aACnCyb,EAAmBzxB,EAAe0yB,YAClCjvC,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACI9G,MAAOohH,EACP9vH,QAAS,OACTuV,SAAU,UACVP,WAAY,UACZG,eAAgBw6G,EAAe,YAAc,OAC7C5vH,WAAYhR,EAAK,CACT,qCAAsC,CAKlCmqC,UAAW,aAAa/xB,OAAOi5B,EAAkB,UACjDpgC,QAAS,YAAYmH,OAAOi5B,GAC5BrgC,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBsJ,QAAS,wBAEbtJ,KAGZ3H,EAAG,MAAwB,CAEvB42E,aAAc,QAElB52E,IAER2gI,GAAY,CACRp1F,WAAY,OACZplB,gBAAiB,cACjB0B,OAAQ,OACRvK,OAAQ,UACRqJ,QAAS,SACTD,OAAQ,EACRhE,SAAU,UACV4D,QAAS,EACTiP,UAAW,OACX9Q,aAAc,UACd0R,WAAY,OACZygD,aAAc,wBACd5lE,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,WACPqH,kBAAmB,QAEvBpf,KAEP+4H,GAAY,CACT3vH,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CAEvBkf,qBAAsB,OACtBC,kBAAmB,QAEvBnf,IAERqtD,GAAc,CACV,cACA,CACIv1C,MAAOshH,EACP3jH,OAAQ,WAEZ,CACItM,WAAY8T,EAAK,CACT,oBAAqB,CACjBoV,cAAe,SAGvBpV,EAAG,MAAwB,CAEvBnF,MAAO,YAEXmF,MAGXowC,GAAc,CACXlkD,UAAW,CACP,oCAAqC,CACjC2O,MAAOqhH,EACP56G,eAAgB,YAChBpV,WAAYqmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB1X,MAAO,YAEX0X,IAER,UAAW,CACP1X,MAAOohH,EACP/vH,WAAYsmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB3X,MAAO,YAEX2X,MAIhBj0B,EAAWgM,KACX7L,GAGZ,C,mLCvGW09H,EAAqB,SAAUn9B,GACtC,QAAWp/F,IAAPo/F,EACA,OAAO,EAEX,IAAIo9B,EAAY,EAUhB,MATI,cAAep9B,EACfo9B,EAAYp9B,EAAG1zC,UAEV,YAAa0zC,IAClBo9B,EAAYp9B,EAAGq9B,SAKZ3zH,KAAKujF,KAAKmwC,EACrB,EACWE,EAAqB,SAAUt9B,EAAIu9B,GACtC,cAAev9B,EACfA,EAAG1zC,UAAYixE,EAEV,YAAav9B,GAClBA,EAAGxzC,SAASwzC,EAAGw9B,QAASD,EAEhC,ECrBIE,EAAoB,UACpBC,EAAa,CACb9zH,KAAM,EACNE,QAAS,EACT5C,MAAO,EACPI,OAAQ,EACR2C,MAAO,EACP8G,OAAQ,GAGR4sH,EAAmB,SAAU9iI,GAAW,OAAOA,EAAQiV,uBAAyB,EAChF8tH,EAAsBD,EACtBE,EAAqBF,EAwBrBjhC,EAAsB,SAAU/4F,GAEhC,SAAS+4F,EAAKv/F,GACV,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAmFxC,OAlFAkC,EAAMC,MAAQ,cACdD,EAAM+5H,SAAW,cACjB/5H,EAAMg6H,UAAY,CAAC,EACnBh6H,EAAM45F,0BAA4B,SAAUj4D,EAAWk4D,GACnD,OAAIl4D,EAAU3mB,QAAUhb,EAAM5G,MAAM4hB,OAChC2mB,EAAU0mF,cAAgBroH,EAAM5G,MAAMivH,aACtC1mF,EAAUonD,aAAe/oF,EAAM5G,MAAM2vF,YACrCpnD,EAAU2wD,UAAYtyF,EAAM5G,MAAMk5F,UAChCuH,EAAcogC,YAAcj6H,EAAM5G,MAAM8gI,cAAe,EAAAC,EAAA,MAGzDn6H,EAAMo6H,wBACNp6H,EAAMq6H,cAAgB,KACtBr6H,EAAMs6H,kBACNt6H,EAAMu6H,uBACCv6H,EAAMw6H,aAAa74F,EAAWk4D,IAElCA,CACX,EACA75F,EAAMy6H,cAAgB,SAAUrhI,GAC5B,IAAIykC,EAAUzkC,EAAMykC,QAAS68F,EAAiBthI,EAAMshI,eAAgB7xH,EAAWzP,EAAMyP,SACrF,OAAQ,gBAAoB,OAAO,QAAS,CAAEO,IAAKy0B,GAAWh1B,GAAW6xH,EAC7E,EACA16H,EAAM26H,iBAAmB,SAAUvhI,GAC/B,IAAIwhI,EAAaxhI,EAAMwhI,WAAYC,EAAezhI,EAAMyhI,aAAchyH,EAAWzP,EAAMyP,SACvF,OAAQ,gBAAoB,OAAO,QAAS,CAAEO,IAAKwxH,GAAc/xH,GAAWgyH,EAChF,EACA76H,EAAM86H,cAAgB,SAAUC,EAAW10G,GAOvC,IANA,IAAInuB,EACA2H,EAAKG,EAAM5G,MAAOq+F,EAAe53F,EAAG43F,aAAcujC,EAA0Bn7H,EAAGm7H,wBAAyBlgH,EAAOjb,EAAGib,KAClHhb,EAAKi7H,EAAUE,KAAMl7H,EAAKD,EAAGkb,MAAOA,OAAe,IAAPjb,EAAgB,GAAKA,EAAIgpF,EAAajpF,EAAGipF,WAAYlgF,GAAW,QAAOkyH,EAAW,CAAC,SAE/HG,OAAoBr+H,IAATie,EAAqB,WAAa,eAC7C83D,EAAQ,GACHh1E,EAAI,EAAGA,EAAIod,EAAMxhB,OAAQoE,IAAK,CACnC,IAAImc,EAAQgvE,EAAanrF,EACrByb,EAAO2B,EAAMpd,GACbkqC,EAAU9nC,EAAM5G,MAAM04F,OAAS9xF,EAAM5G,MAAM04F,OAAOz4E,EAAMU,GAASV,GAAQA,EAAKG,IAC9EsuB,UACAA,EAAU/tB,GAEd,IAAIohH,EAAaH,QAAyEA,EAA0BvjC,EAChHxJ,EAA2K,QAAnK/1F,EAAKijI,aAA+C,EAASA,EAAW9hH,EAAMU,EAAQ/Z,EAAM5G,MAAMgiI,0BAAiDv+H,EAA1BmD,EAAMjH,MAAMsiI,oBAA6C,IAAPnjI,EAAgBA,EAAK,KACvM8iI,IAA2B/sC,GAC5Brb,EAAMn3E,KAAK,gBAAoB,MAAO,CAAEqf,KAAMogH,EAAUx/H,UAAW,eAAgB8d,IAAKsuB,EAAS,kBAAmB/tB,EAAO,oBAAqB,YAAck0E,GAEtK,CACA,OAAO,gBAAoB,OAAO,QAAS,CAAC,EAAGplF,GAAW+pE,EAC9D,GACA,EAAAxsE,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CACVuiI,MAAO,GACPD,aAAa,EACbtmH,yBAA0B/U,EAAM45F,0BAChCqgC,YAAY,GAEhBj6H,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAMu7H,qBAAuB,EAC7Bv7H,EAAMw7H,gBAAkB,EACxBx7H,EAAMy7H,sBAAwB,EAC9Bz7H,EAAM07H,uBAAyB,EAE/B17H,EAAMs6H,gBAAkB,EAExBt6H,EAAM27H,eAAiB37H,EAAMiU,OAAOuqB,SAASx+B,EAAM27H,eAnH7B,IAmHsE,CACxFl9F,SAAS,EACTm9F,QApHkB,MAsHtB57H,EAAM67H,aAAe77H,EAAMiU,OAAOuqB,SAASx+B,EAAM67H,aArH/B,IAqHkE,CAChFp9F,SAAS,IAEbz+B,EAAMmvF,eAAiBnvF,EAAMiU,OAAOuqB,SAASx+B,EAAMmvF,eA3HxC,GA2HsE,CAC7E1wD,SAAS,IAEbz+B,EAAM87H,iBAAmB97H,EAAMiU,OAAOuqB,SAASx+B,EAAM87H,iBAzHnC,IAyH0E,CACxFr9F,SAAS,IAEbz+B,EAAM+7H,mBAAqB,CAAC,EAC5B/7H,EAAMu7H,qBAAuB,EAC7Bv7H,EAAMg8H,eAAiB,EACvBh8H,EAAMi8H,WAAa,CAAC,EACbj8H,CACX,CA0rBA,OAhxBA,QAAU24F,EAAM/4F,GAuFhB+4F,EAAK5jF,yBAA2B,SAAU4sB,EAAWk4D,GACjD,OAAOA,EAAc9kF,yBAAyB4sB,EAAWk4D,EAC7D,EACA18F,OAAOgN,eAAewuF,EAAKp7F,UAAW,WAAY,CAC9C6M,IAAK,WACD,OAAOtM,KAAKk8H,SAChB,EACA3vH,YAAY,EACZC,cAAc,IAalBquF,EAAKp7F,UAAUi/F,cAAgB,SAAUziF,EAAO0iF,EAAaC,QACpC,IAAjBA,IAA2BA,EC5J7B,GDmKF,IANA,IAAI3T,EAAajrF,KAAK1E,MAAM2vF,WAExBC,EAAWD,EADGjrF,KAAKo+H,kBAEnBC,EAAcr+H,KAAKs+H,aACnB7zE,EAAY,EACZ8zE,EAAe,EACVh9C,EAAY0J,EAAY1J,EAAY2J,EAAU3J,GAAag9C,EAAc,CAC9E,IAAIC,EAAoBx+H,KAAK2sH,sBAAsB3sH,KAAK1E,MAAOimF,EAAW88C,GACtEI,EAAaD,EAAkBtvH,OAGnC,GAFAqvH,EAAeC,EAAkBE,UACJn9C,GAAatlE,GAASslE,EAAYg9C,EAAetiH,EAClD,CAGxB,GAAI0iF,GAAe3+F,KAAK2+H,eAAgB,CASpC,IARA,IAAI7sC,EAAakqC,EAAmBh8H,KAAK2+H,gBACrCC,EAAiBtD,EAAmBt7H,KAAK2+H,gBACzCE,EAAe,CACf92H,IAAK62H,EACL32H,OAAQ22H,EAAiB9sC,EAAW5iF,QAGpC4vH,EAAyB7iH,EAAQslE,EAC5Bw9C,EAAkB,EAAGA,EAAkBD,IAA0BC,EACtEt0E,GAAak0C,EAAYpd,EAAYw9C,GAEzC,IAAIC,EAAev0E,EAAYk0C,EAAY1iF,GAG3C,OAAQ2iF,GACJ,KCvLf,EDyLmB,YADA68B,EAAmBz7H,KAAK2+H,eAAgBl0E,GAE5C,KCtLZ,EDwLgB,YADAgxE,EAAmBz7H,KAAK2+H,eAAgBK,EAAeltC,EAAW5iF,QAEtE,KCrLZ,EDuLgB,YADAusH,EAAmBz7H,KAAK2+H,gBAAiBl0E,EAAYu0E,EAAeltC,EAAW5iF,QAAU,GAOjG,GADyBu7C,GAAao0E,EAAa92H,KAAOi3H,GAAgBH,EAAa52H,OAGnF,OAEuBwiD,EAAYo0E,EAAa92H,KACzBi3H,EAAeH,EAAa52H,SAkBnDwiD,EAAYu0E,EAAeltC,EAAW5iF,OAE9C,CAIA,YAHIlP,KAAK2+H,gBACLlD,EAAmBz7H,KAAK2+H,eAAgBl0E,GAGhD,CACAA,GAAag0E,CACjB,CACJ,EACA5jC,EAAKp7F,UAAUs/F,wBAA0B,SAAUJ,GAE/C,IADA,IACSnjG,EAAK,EAAGyjI,EADLj/H,KAAK/E,MAAMuiI,OAAS,GACEhiI,EAAKyjI,EAAQvjI,OAAQF,IAAM,CACzD,IAAI2hI,EAAO8B,EAAQzjI,GAEnB,IADqB2hI,EAAK+B,WAAal/H,KAAKm/H,YAAc,IAAMhC,EAAKp1H,MAAQ/H,KAAKm/H,YAAc,IAAMhC,EAAKp1H,IAAMo1H,EAAKjuH,OACnG,CACf,IAAKyvF,EAAa,CACd,IAAIgI,EAAY9+F,KAAKC,MAAMq1H,EAAKjuH,OAASiuH,EAAKuB,WAC9C,OAAOvB,EAAKlyC,WAAapjF,KAAKC,OAAO9H,KAAKm/H,WAAahC,EAAKp1H,KAAO4+F,EACvE,CAGI,IADA,IAAIy4B,EAAiB,EACZ79C,EAAY47C,EAAKlyC,WAAY1J,EAAY47C,EAAKlyC,WAAakyC,EAAKuB,UAAWn9C,IAAa,CAE7F,GADIolB,EAAYhI,EAAYpd,GACxB47C,EAAKp1H,IAAMq3H,GAAkBp/H,KAAKm/H,YAClCn/H,KAAKm/H,WAAahC,EAAKp1H,IAAMq3H,EAAiBz4B,EAC9C,OAAOplB,EAGP69C,GAAkBz4B,CAE1B,CAER,CACJ,CACA,OAAO,CACX,EACA9L,EAAKp7F,UAAU+J,kBAAoB,WAC/BxJ,KAAK2+H,gBAAiB,QAAqB3+H,KAAKmC,MAAMgB,SACtDnD,KAAKm/H,WAAa,EAClBn/H,KAAK4V,UAAS,SAAS,QAAS,CAAC,EAAG5V,KAAK08H,aAAa18H,KAAK1E,MAAO0E,KAAK/E,QAAS,CAAEkhI,YAAY,KAC9Fn8H,KAAKw8H,kBACLx8H,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,SAAUtB,KAAKqxF,gBACnCrxF,KAAKmC,MAAMgB,SACXnD,KAAKmsB,QAAQnZ,GAAGhT,KAAKmC,MAAMgB,QAAS,QAASnD,KAAKsC,UAAU,GAE5DtC,KAAK2+H,iBACL3+H,KAAKmsB,QAAQnZ,GAAGhT,KAAK2+H,eAAgB,SAAU3+H,KAAK+iD,WACpD/iD,KAAKmsB,QAAQnZ,GAAGhT,KAAK2+H,eAAgB,SAAU3+H,KAAK69H,gBAE5D,EACAhjC,EAAKp7F,UAAUuK,mBAAqB,SAAU45B,EAAem4D,GAGzD,IAAIx+F,EAAayC,KAAK1E,MAClB+jI,EAAar/H,KAAK/E,MAClB+E,KAAK/E,MAAMqkI,eAAiBvjC,EAAcujC,eAErC/hI,EAAW0vH,cAqBZjtH,KAAK+9H,eAnBgB/9H,KAAKu/H,wBAAwBF,EAAW7B,QAGzDx9H,KAAKw/H,kBAAoB,KACpBx/H,KAAKy/H,yBAKNz/H,KAAK69H,kBAJL79H,KAAKy/H,0BAA2B,EAChCz/H,KAAK4V,SAAS5V,KAAK08H,aAAan/H,EAAY8hI,MAQhDr/H,KAAK+9H,eAQTxgI,EAAWmiI,gBACXniI,EAAWmiI,eAAeL,EAAW7B,OAGjD,EACA3iC,EAAKp7F,UAAU6K,qBAAuB,WAClCtK,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,iBACNvQ,KAAK2+H,cAChB,EACA9jC,EAAKp7F,UAAUm0D,sBAAwB,SAAU3W,EAAU0iF,GACvD,IAAIC,EAAW5/H,KAAK/E,MAAMuiI,MACtBqC,EAAWF,EAASnC,MACpB5pE,GAAwB,EAE5B,IAAK+rE,EAASpC,aAAev9H,KAAK/E,MAAMsiI,YACpC,OAAO,EAEX,GAAItgF,EAASu3C,UAAYx0F,KAAK1E,MAAMk5F,QAChC,OAAO,EAEX,GAAIv3C,EAASr/C,YAAcoC,KAAK1E,MAAMsC,UAClC,OAAO,EAEX,GAAIq/C,EAAS//B,QAAUld,KAAK1E,MAAM4hB,OAAS0iH,EAASlkI,SAAWmkI,EAASnkI,OACpE,IAAK,IAAIoE,EAAI,EAAGA,EAAI8/H,EAASlkI,OAAQoE,IAAK,CACtC,IAAIggI,EAAUF,EAAS9/H,GACnBigI,EAAUF,EAAS//H,GACvB,GAAIggI,EAAQpkH,MAAQqkH,EAAQrkH,KAAOokH,EAAQpB,YAAcqB,EAAQrB,UAAW,CACxE9qE,GAAwB,EACxB,KACJ,CACJ,MAGAA,GAAwB,EAE5B,OAAOA,CACX,EACAinC,EAAKp7F,UAAUosB,YAAc,WACzB7rB,KAAKy8H,uBAELz8H,KAAKggI,mBAAmBhgI,KAAK1E,MAAO0E,KAAK/E,OAAO,GAChD+E,KAAK4V,SAAS5V,KAAK08H,aAAa18H,KAAK1E,MAAO0E,KAAK/E,QACjD+E,KAAKw8H,kBACL16H,EAAOrC,UAAUosB,YAAYnsB,KAAKM,KACtC,EAIA66F,EAAKp7F,UAAUwgI,mBAAqB,WAChC,OAAOjgI,KAAKkgI,aAAahxH,MAC7B,EACA2rF,EAAKp7F,UAAUxB,OAAS,WAKpB,IAJA,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWmE,EAAK3H,EAAG4iB,KAAMA,OAAc,IAAPjb,EAAgB,OAASA,EAAIo+H,EAAkB/lI,EAAG+lI,gBAAiBC,EAAehmI,EAAGgmI,aACrJp+H,EAAKhC,KAAK/E,MAAMuiI,MAAOA,OAAe,IAAPx7H,EAAgB,GAAKA,EACpD+6H,EAAe,GACfhyH,GAAW,QAAe/K,KAAK1E,MAAO,MACjCE,EAAK,EAAG6kI,EAAU7C,EAAOhiI,EAAK6kI,EAAQ3kI,OAAQF,IAAM,CACzD,IAAI2hI,EAAOkD,EAAQ7kI,GACnBuhI,EAAap/H,KAAKqC,KAAKsgI,YAAYnD,GACvC,CACA,IAAIoD,EAAuBJ,GACrB,EAAA9jH,EAAA,GAAsB8jH,EAAiBngI,KAAK68H,kBAC5C78H,KAAK68H,iBAIX,OAHwBuD,GAClB,EAAA/jH,EAAA,GAAsB+jH,EAAcpgI,KAAK28H,eACzC38H,KAAK28H,eACc,CACrB58F,QAAS//B,KAAKmC,MACdq7H,MAAOA,EACPZ,eAAgB2D,EAAqB,CACjCzD,WAAY98H,KAAKi8H,SACjBuB,MAAOA,EACPT,aAAcA,EACdhyH,SAAU,CACNiS,KAAM,eACNpf,UAAW,qBAGnBmN,UAAU,SAAS,QAAS,CAAC,EAAGA,GAAW,CAAEnN,WAAW,EAAAsN,EAAA,GAAI,UAAWtN,GAAYof,KAAM+/G,EAAarhI,OAAS,EAAIshB,OAAOje,EAAW,aAAcg+H,EAAarhI,OAAS,EAAIqP,EAAS,mBAAgBhM,KAE9M,EACA87F,EAAKp7F,UAAU+gI,kBAAoB,SAAUllI,QAC3B,IAAVA,IAAoBA,EAAQ0E,KAAK1E,OACrC,IAAI64F,EAAqB74F,EAAM64F,mBAC/B,OAAQA,GAAsBA,EAAmB74F,EACrD,EAIAu/F,EAAKp7F,UAAUg9H,qBAAuB,WAClCz8H,KAAKm+H,WAAa,CAAC,CACvB,EACAtjC,EAAKp7F,UAAU6gI,YAAc,SAAUnD,GACnC,IAEIsD,EAFAv+H,EAAQlC,KACRk0F,EAAel0F,KAAK1E,MAAM44F,aAG9B,GAAIA,IACAusC,EAAazgI,KAAKm+H,WAAWhB,EAAKzhH,OAChB+kH,EAAWC,YACzB,OAAOD,EAAWC,YAG1B,IAAIC,EAAY3gI,KAAK4gI,cAAczD,GAC/B/iI,EAAK4F,KAAK1E,MAAMulI,aAChBH,QADoD,IAAPtmI,EAAgB4F,KAAKg9H,cAAgB5iI,GACvD,CAC3B+iI,KAAMA,EACNv/H,UAAW,eACX8d,IAAKyhH,EAAKzhH,IACVpQ,IAAK,SAAUw1H,GACX5+H,EAAMg6H,UAAUiB,EAAKzhH,KAAOolH,CAChC,EACAzoH,MAAOsoH,EACP3jH,KAAM,gBACPhd,KAAKg9H,eAWR,OANI9oC,GAAoC,IAApBipC,EAAKlyC,aACrBjrF,KAAKm+H,WAAWhB,EAAKzhH,KAAO,CACxByhH,KAAMA,EACNuD,YAAaA,IAGdA,CACX,EAEA7lC,EAAKp7F,UAAUmhI,cAAgB,SAAUzD,GACrC,IAAI4D,EAAe/gI,KAAK1E,MAAMylI,aAC9B,OAAO,SAAS,QAAS,CAAC,EAAIA,EAAeA,EAAa5D,GAAQ,CAAC,GAAOA,EAAKjgH,MAIzE,CAAC,EAHD,CACEhO,OAAQiuH,EAAKjuH,QAGzB,EAEA2rF,EAAKp7F,UAAU6C,SAAW,SAAU3B,GAEhC,IADA,IAAIjH,EAASiH,EAAGjH,OACTA,IAAWsG,KAAKi8H,SAAS94H,SAAS,CACrC,IAAI69H,EAActnI,EAAOiS,aAAa,mBACtC,GAAIq1H,EAAa,CACbhhI,KAAKk+H,cAAgB7pF,OAAO2sF,GAC5B,KACJ,CACAtnI,GAAS,EAAAN,EAAA,GAAUM,EACvB,CACJ,EAKAmhG,EAAKp7F,UAAUsjD,UAAY,WAClB/iD,KAAK/E,MAAMsiI,aAAgBv9H,KAAK1E,MAAMgiI,sBACvCt9H,KAAK4V,SAAS,CAAE2nH,aAAa,IAEjCv9H,KAAKs8H,wBACLt8H,KAAKg+H,kBACT,EACAnjC,EAAKp7F,UAAU68H,sBAAwB,WACnCt8H,KAAK29H,sBAAwB,EAC7B39H,KAAK49H,uBAAyB,CAClC,EAIA/iC,EAAKp7F,UAAUo+H,eAAiB,WAmXpC,IAA4BoD,EAAWC,EAlX/BlhI,KAAKggI,mBAAmBhgI,KAAK1E,MAAO0E,KAAK/E,OAEpC+E,KAAKw/H,oBAgXUyB,EAhX+BjhI,KAAKu8H,cAgXzB2E,EAhXwClhI,KAAKw/H,kBAiXxEyB,EAAUl5H,KAAOm5H,EAAUn5H,KAC/Bk5H,EAAU57H,MAAQ67H,EAAU77H,MAC5B47H,EAAUh5H,QAAUi5H,EAAUj5H,QAC9Bg5H,EAAUx7H,OAASy7H,EAAUz7H,QAnXzBzF,KAAK4V,SAAS5V,KAAK08H,aAAa18H,KAAK1E,MAAO0E,KAAK/E,OAKzD,EAKA4/F,EAAKp7F,UAAUs+H,aAAe,WAC1B,IAAI3jI,EAAK4F,KAAK1E,MAAO07F,EAAuB58F,EAAG48F,qBAAsBC,EAAwB78F,EAAG68F,sBACjFkqC,EAANnhI,KAAgC29H,sBAAuByD,EAAvDphI,KAAkF49H,uBACvFyD,EAAex5H,KAAKugD,IAAI4uC,EAAsBmqC,EAAuB,GACrEG,EAAgBz5H,KAAKugD,IAAI6uC,EAAuBmqC,EAAwB,GACxEC,IAAiBF,GAAwBG,IAAkBF,IAE3DphI,KAAK29H,sBAAwB0D,EAC7BrhI,KAAK49H,uBAAyB0D,EAC9BthI,KAAKggI,mBAAmBhgI,KAAK1E,MAAO0E,KAAK/E,OACzC+E,KAAK4V,SAAS5V,KAAK08H,aAAa18H,KAAK1E,MAAO0E,KAAK/E,UAEjD+7F,EAAuBqqC,GAAgBpqC,EAAwBqqC,IAE/DthI,KAAK+9H,cAEb,EAKAljC,EAAKp7F,UAAUu+H,iBAAmB,WACzBh+H,KAAK1E,MAAMgiI,sBACZt9H,KAAK4V,SAAS,CAAE2nH,aAAa,GAErC,EACA1iC,EAAKp7F,UAAU4xF,eAAiB,WAC5BrxF,KAAK6rB,aACT,EACAgvE,EAAKp7F,UAAUi9H,aAAe,SAAU74F,EAAWk4D,GAE1C/7F,KAAKu8H,eACNv8H,KAAKggI,mBAAmBn8F,EAAWk4D,GAEvC,IAAIwlC,EAAevhI,KAAKwhI,YAAY39F,EAAWk4D,GAC3C0lC,EAAe1lC,EAAcyhC,MAEjC,OADAx9H,KAAK0hI,mBAAmBD,EAAcF,EAAa/D,MAAOx9H,KAAK1E,QACxD,SAAS,SAAS,QAAS,CAAC,EAAGygG,GAAgBwlC,GAAe,CAAEjC,aAAc,CAAC,GAC1F,EAOAzkC,EAAKp7F,UAAUiiI,mBAAqB,SAAU9B,EAAUC,EAAUvkI,GAC9D,IAAIqmI,EAAcrmI,EAAMqmI,YAAaC,EAAgBtmI,EAAMsmI,cAC3D,GAAID,GAAeC,EAAe,CAE9B,IADA,IAAIC,EAAkB,CAAC,EACdrmI,EAAK,EAAGsmI,EAAalC,EAAUpkI,EAAKsmI,EAAWpmI,OAAQF,KACxD2hI,EAAO2E,EAAWtmI,IACb0hB,QACL2kH,EAAgB1E,EAAKlyC,YAAckyC,GAG3C,IAAK,IAAI/iI,EAAK,EAAG2nI,EAAalC,EAAUzlI,EAAK2nI,EAAWrmI,OAAQtB,IAAM,CAClE,IAAI+iI,KAAO4E,EAAW3nI,IACb8iB,QACA2kH,EAAgB1E,EAAKlyC,mBAIf42C,EAAgB1E,EAAKlyC,YAH5BjrF,KAAKgiI,aAAa7E,GAM9B,CACA,IAAK,IAAIlhH,KAAS4lH,EACVA,EAAgBpjI,eAAewd,IAC/Bjc,KAAKiiI,eAAeJ,EAAgB5lH,GAGhD,CACJ,EACA4+E,EAAKp7F,UAAU8/H,wBAA0B,SAAU/B,GAC/C,IAAI0E,GAAgB,EAEpB,IAAKliI,KAAKwgI,oBACN,OAAO0B,EAEX,IAAK,IAAIpiI,EAAI,EAAGA,EAAI09H,EAAM9hI,OAAQoE,IAAK,CACnC,IAAIq9H,EAAOK,EAAM19H,GACbq9H,EAAKjgH,QACLglH,EAAgBliI,KAAKmiI,aAAahF,IAAS+E,EAEnD,CACA,OAAOA,CACX,EAKArnC,EAAKp7F,UAAU0iI,aAAe,SAAUhF,GACpC,IAAIiF,GAAmB,EACnB1B,EAAc1gI,KAAKk8H,UAAUiB,EAAKzhH,KAClC2mH,EAAeriI,KAAKi+H,mBAAmBd,EAAKlyC,YAEhD,GAAIy1C,GACA1gI,KAAKwgI,uBACH6B,GAAgBA,EAAaC,iBAAmBtiI,KAAKw8H,iBAAkB,CACzE,IAAI+F,EAAgB,CAChBn6H,MAAOs4H,EAAY/9E,YACnBzzC,OAAQwxH,EAAY7xH,eAEpB0zH,EAAcrzH,QAAUqzH,EAAcn6H,SACtCg6H,EAAmBjF,EAAKjuH,SAAWqzH,EAAcrzH,OAEjDiuH,EAAKjuH,OAASqzH,EAAcrzH,OAC5BlP,KAAKi+H,mBAAmBd,EAAKlyC,YAAc,CACvC/7E,OAAQqzH,EAAcrzH,OACtBozH,eAAgBtiI,KAAKw8H,iBAEzBx8H,KAAKy9H,qBAAuB51H,KAAKiqC,OAAO9xC,KAAKy9H,qBAAuBz9H,KAAK09H,gBAAkB6E,EAAcrzH,SAAWlP,KAAK09H,gBAAkB,IAC3I19H,KAAK09H,kBAEb,CACA,OAAO0E,CACX,EAEAvnC,EAAKp7F,UAAUuiI,aAAe,SAAU7E,GACpC,IAAIwE,EAAc3hI,KAAK1E,MAAMqmI,YAEzBA,GACAA,EAAYxE,EAEpB,EAEAtiC,EAAKp7F,UAAUwiI,eAAiB,SAAU9E,GACtC,IAAIyE,EAAgB5hI,KAAK1E,MAAMsmI,cAE3BA,GACAA,EAAczE,EAEtB,EAEAtiC,EAAKp7F,UAAU+hI,YAAc,SAAUlmI,EAAOL,GAC1C,IAAIsvH,EAAcjvH,EAAMivH,YACpBrtG,EAAQ5hB,EAAM4hB,MAAO+tE,EAAa3vF,EAAM2vF,WAAYgiC,EAAgB3xH,EAAM2xH,cAC9E1C,EAAcvqH,KAAKo+H,gBAAgB9iI,GAsEnC,IArEA,IAAIknI,GAAmB,QAAS,CAAC,EAAG3G,GAChC2B,EAAQ,GACRe,EAAe,EACfkE,EAAU,EACVC,EAAgB,KAChBC,EAAe3iI,KAAKk+H,cACpBhzC,EAAWD,EAAas/B,EACxBqY,EAAmB5iI,KAAKwgI,kBAAkBllI,GAI1CwpH,EAA8C,IAA9B9kH,KAAKy9H,uBAA+BxQ,EACpDoR,EAAcr+H,KAAKs+H,aACnB//H,EAAU,SAAUgjF,GACpB,IAAIi9C,EAAoBqE,EAAOlW,sBAAsBrxH,EAAOimF,EAAW88C,GACnEI,EAAaD,EAAkBtvH,OAC/B4zH,EAAWtE,EAAkBnkH,KAC7BqB,EAAM8iH,EAAkB9iH,IAC5B6iH,EAAeC,EAAkBE,UACjC,IA8MQl3H,EAAYu7H,EA9MhBC,EAAaP,EAAUhE,EAAa,EACpCwE,GAAiB,QAAUhoI,EAAMuiI,OAAO,SAAUL,GAAQ,QAASA,EAAKjgH,OAASigH,EAAKlyC,aAAe1J,CAAW,KAAM,EACtH2hD,GAAwB7E,GAAgB2E,GAAc3E,EAAYt2H,KAAO06H,GAAWpE,EAAYp2H,OAChGk7H,GAAyBN,EAAOtG,eAAkByG,GAAcH,EAAOtG,cAAcx0H,KAAO06H,GAAWI,EAAOtG,cAAct0H,OAQhI,IAPsB68G,IAAkBqe,GAA0BD,GAAwBD,KAAsBL,GAC5FD,GAAgBphD,GAAaohD,EAAephD,EAAYg9C,GAC1Dh9C,IAAc0J,EAKmB,CAC3Cy3C,IACAlF,EAAM7/H,KAAK+kI,GACXA,EAAgB,MAEpB,IAAIU,EAAcv7H,KAAKugD,IAAIm2E,EAAcrzC,EAAW3J,GAChDw+C,EAAU8C,EAAOQ,YAAY3nH,EAAKwB,EAAM3K,MAAMgvE,EAAWA,EAAY6hD,GAAc7hD,OAAWxiF,OAAWA,EAAW+jI,GACxH/C,EAAQh4H,IAAM06H,EACd1C,EAAQ7wH,OAASuvH,EACboE,EAAOS,cAAgBT,EAAOS,aAAar7H,SAC3C83H,EAAQ9wC,UAAY+zC,GAAcH,EAAOS,aAAav7H,KAAO06H,GAAWI,EAAOS,aAAar7H,QAEhGu1H,EAAM7/H,KAAKoiI,GACPoD,GAAyBN,EAAOvE,eAsLhC92H,EArLWg7H,EAqLCO,EArLiB,CACzBh7H,IAAK06H,EACLx6H,OAAQ+6H,EACR9zH,OAAQuvH,EACRp5H,KAAMg5H,EAAYh5H,KAClBI,MAAO44H,EAAY54H,MACnB2C,MAAOi2H,EAAYj2H,OAgLvCZ,EAAWO,IAAMg7H,EAAQh7H,IAAMP,EAAWO,MAA2B,IAApBP,EAAWO,IAAag7H,EAAQh7H,IAAMP,EAAWO,IAClGP,EAAWnC,KAAO09H,EAAQ19H,KAAOmC,EAAWnC,OAA6B,IAArBmC,EAAWnC,KAAc09H,EAAQ19H,KAAOmC,EAAWnC,KACvGmC,EAAWS,OACP86H,EAAQ96H,OAAST,EAAWS,SAAiC,IAAvBT,EAAWS,OAAgB86H,EAAQ96H,OAAST,EAAWS,OACjGT,EAAW/B,MAAQs9H,EAAQt9H,MAAQ+B,EAAW/B,QAA+B,IAAtB+B,EAAW/B,MAAes9H,EAAQt9H,MAAQ+B,EAAW/B,MAC5G+B,EAAWY,MAAQZ,EAAW/B,MAAQ+B,EAAWnC,KAAO,EACxDmC,EAAW0H,OAAS1H,EAAWS,OAAST,EAAWO,IAAM,EAnLjD,MAES26H,IACDA,EAAgBG,EAAOQ,YAAYzH,EAAoBr6C,OAAWxiF,EAAWwiF,EAAW,OAAGxiF,EAAW+jI,GAAU,IAEpHJ,EAAcxzH,QAAUwzH,EAAcxzH,QAAU,IAAM8zH,EAAaP,GAAW,EAC9EC,EAAchE,WAAaH,EAK/B,GAHAkE,GAAWO,EAAaP,EAAU,EAG9B3d,GAAiB8d,EACjB,MAAO,OAEf,EACIC,EAAS7iI,KACJuhF,EAAY0J,EAAY1J,EAAY2J,GAEzB,UADF3sF,EAAQgjF,GAD6BA,GAAag9C,GAWpE,OANImE,IACAA,EAAchnH,IAAMkgH,EAAoB,MACxC4B,EAAM7/H,KAAK+kI,IAEf1iI,KAAKw/H,kBAAoBgD,GAElB,SAAS,QAAS,CAAC,EAAGvnI,GAAQ,CAAEuiI,MAAOA,EAAO8E,eAAgBtiI,KAAKw8H,iBAC9E,EACA3hC,EAAKp7F,UAAUktH,sBAAwB,SAAUrxH,EAAOimF,EAAWgiD,GAC/D,IAAIrW,EAAuB5xH,EAAM4xH,qBACjC,GAAIA,EAAsB,CACtB,IAAI4V,EAAW5V,EAAqB3rC,EAAWgiD,EAAajoI,EAAM4hB,OAC9D9iB,EAAK0oI,EAASpE,UAAWA,OAAmB,IAAPtkI,EAAgB4F,KAAKwjI,qBAAqBjiD,EAAWgiD,GAAenpI,EACzG2H,EAAK+gI,EAAS5zH,OAClB,MAAO,CACHwvH,UAAWA,EACXxvH,YAHsC,IAAPnN,EAAgB/B,KAAKssH,eAAe/qC,EAAWgiD,EAAa7E,GAAa38H,EAIxGsY,KAAMyoH,EAASzoH,KACfqB,IAAKonH,EAASpnH,IAEtB,CAGI,MAAO,CACHgjH,UAFAA,EAAY1+H,KAAKwjI,qBAAqBjiD,EAAWgiD,GAGjDr0H,OAAQlP,KAAKssH,eAAe/qC,EAAWgiD,EAAa7E,GAGhE,EAKA7jC,EAAKp7F,UAAU6sH,eAAiB,SAAU/qC,EAAWgiD,EAAahF,GAC9D,GAAIv+H,KAAK1E,MAAM2xH,cACX,OAAOjtH,KAAK1E,MAAM2xH,cAAc1rC,EAAWgiD,EAAahF,EAAcv+H,KAAK1E,MAAM4hB,OAGjF,IAAImlH,EAAeriI,KAAKi+H,mBAAmB18C,GAC3C,OAAO8gD,EAAeA,EAAanzH,OAASlP,KAAKy9H,sBA9tBnC,EAguBtB,EACA5iC,EAAKp7F,UAAU+jI,qBAAuB,SAAUjiD,EAAWkiD,GAIvD,OAHmBzjI,KAAK1E,MAAM4vH,oBACxBlrH,KAAK1E,MAAM4vH,oBAAoB3pC,EAAWkiD,GApuB3B,OAuuBzB,EACA5oC,EAAKp7F,UAAU4jI,YAAc,SAAUK,EAASxmH,EAAO+tE,EAAYmE,EAAO/2E,EAAOgC,EAAM6kH,QAChE,IAAfj0C,IAAyBA,GAAc,QAC7B,IAAVmE,IAAoBA,EAAQlyE,EAAQA,EAAMxhB,OAAS,QACzC,IAAV2c,IAAoBA,EAAQ,CAAC,GACjCqrH,EAAUA,GAxuBI,QAwuByBz4C,EACvC,IAAIw1C,EAAazgI,KAAKm+H,WAAWuF,GACjC,OAAIjD,GAAcA,EAAWtD,KAClBsD,EAAWtD,KAEf,CACHzhH,IAAKgoH,EACLz4C,WAAYA,EACZyzC,UAAWtvC,EACXlyE,MAAOA,EACP7E,MAAOA,EACPtQ,IAAK,EACLmH,OAAQ,EACRmL,KAAMA,EACN6kH,SAAUA,IAAY,EAE9B,EACArkC,EAAKp7F,UAAU2+H,gBAAkB,SAAU9iI,GACvC,IAAIlB,EAAKkB,GAAS0E,KAAK1E,MAAO4hB,EAAQ9iB,EAAG8iB,MAAO+tE,EAAa7wF,EAAG6wF,WAAYs/B,EAAcnwH,EAAGmwH,YAC7F,YAAuBxrH,IAAhBwrH,EAA6BrtG,EAAQA,EAAMxhB,OAASuvF,EAAa,EAAKs/B,CACjF,EAEA1vB,EAAKp7F,UAAUugI,mBAAqB,SAAU1kI,EAAOL,EAAO4wB,GACxD,IAAImrE,EAAuB17F,EAAM07F,qBAAsBC,EAAwB37F,EAAM27F,sBACjFumC,EAAQviI,EAAMuiI,MAElB,GAAKx9H,KAAKwgI,kBAAkBllI,GAA5B,CAGA,IAAIqoI,EAAc3jI,KAAKkgI,eAAgB,QAAS,CAAC,EAAGrE,GAChDxjB,EDtxBiB,SAAUla,GACnC,QAAWp/F,IAAPo/F,EACA,OAAO,EAEX,IAAIka,EAAe,EASnB,MARI,iBAAkBla,EAClBka,EAAela,EAAGka,aAEb,aAAcla,IACnBka,EAAela,EAAGjlG,SAASopC,gBAAgB+1E,cAIxCA,CACX,CCwwB2BurB,CAAgB5jI,KAAK2+H,gBACpCl0E,EAAY6wE,EAAmBt7H,KAAK2+H,gBAIpC3+H,KAAKi8H,SAAS94H,UACb0oB,IACI2xG,IACAx9H,KAAKkgI,eACL7nB,GACDA,IAAiBr4G,KAAK6jI,eACtBh8H,KAAKQ,IAAIrI,KAAKm/H,WAAa10E,GAAazqD,KAAKy9H,qBAAuB,KACxEkG,EAAc3jI,KAAKkgI,aAAenE,EAAoB/7H,KAAKi8H,SAAS94H,SACpEnD,KAAKm/H,WAAa10E,IAIlB5+B,GAAgBwsF,GAAgBA,IAAiBr4G,KAAK6jI,eACtD7jI,KAAKw8H,kBAETx8H,KAAK6jI,cAAgBxrB,GAAgB,EAKrC,IAAIyrB,EAAaj8H,KAAKsgD,IAAI,GAAIw7E,EAAY57H,KACtCqqC,GAAM,EAAAC,EAAA,GAAUryC,KAAKmC,MAAMgB,SAC3BogI,EAAc,CACdx7H,IAAK+7H,EACLz+H,KAAMs+H,EAAYt+H,KAClB4C,OAAQ67H,EAAa1xF,EAAIvW,YACzBp2B,MAAOk+H,EAAYl+H,MACnB2C,MAAOu7H,EAAYv7H,MACnB8G,OAAQkjC,EAAIvW,aAGhB77B,KAAKu8H,cAAgBwH,EAAYR,EAAavjI,KAAK49H,uBAAwB59H,KAAK29H,uBAChF39H,KAAKs+H,aAAeyF,EAAYR,EAAatsC,EAAuBD,GAEpEh3F,KAAKsjI,aAAeC,CAzCpB,CA0CJ,EACA1oC,EAAKlyF,aAAe,CAChBsiF,WAAY,EACZ0O,aAAc,SAAUp+E,EAAMU,EAAOu8C,GAAiB,OAAO,gBAAoB,WAAgB,KAAOj9C,GAAQA,EAAKvf,MAAS,GAAK,EACnIkhI,6BAAyBn+H,EACzBi4F,qBApzB6B,EAqzB7BC,sBAtzB8B,GAwzB3B4D,CACX,CAlxByB,CAkxBvB,aAEF,SAASkpC,EAAY/0H,EAAMg1H,EAAaC,GACpC,IAAIl8H,EAAMiH,EAAKjH,IAAMi8H,EAAch1H,EAAKE,OACpCA,EAASF,EAAKE,QAAU80H,EAAcC,GAAcj1H,EAAKE,OAC7D,MAAO,CACHnH,IAAKA,EACLE,OAAQF,EAAMmH,EACdA,OAAQA,EACR7J,KAAM2J,EAAK3J,KACXI,MAAOuJ,EAAKvJ,MACZ2C,MAAO4G,EAAK5G,MAEpB,C,oHEh1BI87H,EAAgB,IAWhBC,EAA4B,WAC5B,SAASA,EAAWnrI,GAChBgH,KAAKmsB,QAAU,IAAIC,EAAA,EAAWpsB,MAC9BA,KAAKokI,mBAAoB,QAAqBprI,GAC9CgH,KAAKqkI,iBAAmBrkI,KAAKqkI,iBAAiBzoH,KAAK5b,MACnDA,KAAKskI,aAAc,EAAAvyC,EAAA,GAAQ/xF,KAAKokI,mBAE5BpkI,KAAKokI,oBAAsB9iI,SAC3BtB,KAAKokI,kBAAoBlrI,SAASC,MAElC6G,KAAKokI,oBACLpkI,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,YAAatB,KAAKswC,cAAc,GACxDtwC,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,YAAatB,KAAK0wC,cAAc,GAEhE,CAuFA,OAtFAyzF,EAAW1kI,UAAU8Q,QAAU,WAC3BvQ,KAAKmsB,QAAQ5b,UACbvQ,KAAKukI,aACT,EACAJ,EAAW1kI,UAAU6wC,aAAe,SAAU3vC,GAC1CX,KAAKwkI,uBAAuB7jI,EAChC,EACAwjI,EAAW1kI,UAAUixC,aAAe,SAAU/vC,GACtCA,EAAG8wC,QAAQ/1C,OAAS,GACpBsE,KAAKwkI,uBAAuB7jI,EAEpC,EACAwjI,EAAW1kI,UAAU+kI,uBAAyB,SAAU7jI,GACpD,GAAKX,KAAKskI,YAAV,CAGA,IAAI/pG,EACAC,EACA,YAAa75B,GACb45B,EAAU55B,EAAG45B,QACbC,EAAU75B,EAAG65B,UAGbD,EAAU55B,EAAG8wC,QAAQ,GAAGlX,QACxBC,EAAU75B,EAAG8wC,QAAQ,GAAGjX,SAE5B,IAKIs3D,EACA2yC,EACAC,EAPAC,EAAgB3kI,KAAKskI,YAAYv8H,IACjC68H,EAAiB5kI,KAAKskI,YAAYj/H,KAClCw/H,EAAqBF,EAAgB3kI,KAAKskI,YAAYp1H,OAASg1H,EAC/DY,EAAoBF,EAAiB5kI,KAAKskI,YAAYl8H,MAAQ87H,EAM9D1pG,EAAUmqG,EAAgBT,GAAiB1pG,EAAUqqG,GACrDJ,EAAkBjqG,EAClBs3D,EAAa6yC,EACbD,EAAeG,EACf7kI,KAAK+kI,mBAAoB,IAGzBN,EAAkBlqG,EAClBu3D,EAAa8yC,EACbF,EAAeI,EACf9kI,KAAK+kI,mBAAoB,GAIzB/kI,KAAKglI,gBADLP,EAAkB3yC,EAAaoyC,EACRr8H,KAAKsgD,KA1Ed,IA0EiE+7E,GAAiBO,EAAkB3yC,IAAeoyC,GA1EnH,IA4ETO,EAAkBC,EACA78H,KAAKugD,IA7Ed,IA6E+Dq8E,EAAkBC,GAAgBR,EA7EjG,IAgFS,EAEvBlkI,KAAKglI,gBACLhlI,KAAKilI,eAGLjlI,KAAKukI,aA9CT,CAgDJ,EACAJ,EAAW1kI,UAAUwlI,aAAe,WAC3BjlI,KAAKklI,YACNllI,KAAKqkI,kBAEb,EACAF,EAAW1kI,UAAU4kI,iBAAmB,WAChCrkI,KAAKokI,oBACDpkI,KAAK+kI,kBACL/kI,KAAKokI,kBAAkB35E,WAAa5iD,KAAKiqC,MAAM9xC,KAAKglI,iBAGpDhlI,KAAKokI,kBAAkBe,YAAct9H,KAAKiqC,MAAM9xC,KAAKglI,kBAG7DhlI,KAAKklI,WAAazxH,WAAWzT,KAAKqkI,iBAzGb,GA0GzB,EACAF,EAAW1kI,UAAU8kI,YAAc,WAC3BvkI,KAAKklI,aACL1xH,aAAaxT,KAAKklI,mBACXllI,KAAKklI,WAEpB,EACOf,CACX,CAtG+B,G,4CCZ3BxqH,GAAgB,EAAAC,EAAA,KAUhBwrH,EAAsC,SAAUtjI,GAEhD,SAASsjI,EAAqB9pI,GAC1B,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAiDxC,OAhDAkC,EAAMC,MAAQ,cACdD,EAAM2B,aAAe,SAAUlD,GAC3B,IAAIvG,EAAK8H,EAAM5G,MAAO+pI,EAAYjrI,EAAGirI,UAAWC,EAAyBlrI,EAAGkrI,uBAExEpjI,EAAMqjI,yBAAyB5kI,IAG/BuB,EAAMsjI,qBAAqB7kI,IAG1BuB,EAAMujI,WACPJ,GACCnjI,EAAMwjI,wBAAwB/kI,IAC7B2kI,IAA0BA,EAAuB3kI,IAC/CuB,EAAMyjI,oBAAoC,IAAdhlI,EAAGwhF,QAAgBjgF,EAAMC,MAAMgB,UAC3DjB,EAAM0jI,kBAAoB,CAAC,EAC3B1jI,EAAM2jI,wBAAqB9mI,EAC3BmD,EAAMiqB,QAAQnZ,GAAG1R,OAAQ,YAAaY,EAAM4jI,mBAAmB,GAC/D5jI,EAAMiqB,QAAQnZ,GAAG9Q,EAAMkiI,kBAAmB,SAAUliI,EAAM4jI,mBAC1D5jI,EAAMiqB,QAAQnZ,GAAG1R,OAAQ,QAASY,EAAMgpB,YAAY,GACpDhpB,EAAM6jI,YAAc,IAAI5B,EAAWjiI,EAAMC,MAAMgB,SAC/CjB,EAAMi9H,WAAaj9H,EAAMyjI,mBAAmBl7E,UAC5CvoD,EAAM8jI,YAAc9jI,EAAMyjI,mBAAmBR,WAC7CjjI,EAAM+jI,UAAY/jI,EAAMC,MAAMgB,QAAQ8K,wBACtC/L,EAAMouC,aAAa3vC,GAG/B,EACAuB,EAAM4pB,cAAgB,SAAUnrB,GAC5BuB,EAAMujI,UAAW,EACjBvjI,EAAMiU,OAAO1C,YAAW,WACpBvR,EAAMujI,UAAW,CACrB,GAAG,EACP,EACAvjI,EAAMkrB,eAAiB,SAAUzsB,GACN,UAAnBA,EAAGsrB,cACH/pB,EAAMujI,UAAW,EACjBvjI,EAAMiU,OAAO1C,YAAW,WACpBvR,EAAMujI,UAAW,CACrB,GAAG,GAEX,GACA,EAAAn9H,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAMjH,MAAQ,CACVirI,cAAUnnI,GAEPmD,CACX,CA0QA,OA9TA,QAAUkjI,EAAsBtjI,GAqDhCsjI,EAAqB3lI,UAAU+J,kBAAoB,WAC/CxJ,KAAKokI,mBAAoB,QAAqBpkI,KAAKmC,MAAMgB,SACzDnD,KAAK2lI,mBAAqB3lI,KAAKokI,oBAAsB9iI,OAASpI,SAASC,KAAO6G,KAAKokI,kBAEnF,IAAI+B,EAAYnmI,KAAK1E,MAAM8qI,4BAA8BpmI,KAAKmC,MAAMgB,QAAUnD,KAAK2lI,mBACnF3lI,KAAKmsB,QAAQnZ,GAAGmzH,EAAW,YAAanmI,KAAK6D,cAC7C7D,KAAKmsB,QAAQnZ,GAAGmzH,EAAW,aAAcnmI,KAAK8rB,eAAe,GAC7D9rB,KAAKmsB,QAAQnZ,GAAGmzH,EAAW,cAAenmI,KAAKotB,gBAAgB,EACnE,EACAg4G,EAAqB3lI,UAAU6K,qBAAuB,WAC9CtK,KAAK+lI,aACL/lI,KAAK+lI,YAAYx1H,iBAEdvQ,KAAKokI,yBACLpkI,KAAK2lI,mBACZ3lI,KAAKmsB,QAAQ5b,UACbvQ,KAAKmW,OAAO5F,SAChB,EACA60H,EAAqB3lI,UAAUxB,OAAS,WACpC,IAAI7D,EAAK4F,KAAK1E,MAAOsP,EAAYxQ,EAAGwQ,UAAWlO,EAAWtC,EAAGsC,SAAUxB,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAAWvC,EAASjB,EAAGiB,OAC3H6qI,EAAWlmI,KAAK/E,MAAMirI,SACtBzoI,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,IAEf,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGgN,EAAW,CAAEhN,UAAWH,EAAWgM,KAAM6B,IAAKtL,KAAKmC,QAC/FzF,EACAwpI,GAAY,gBAAoB,MAAO,CAAEtoI,UAAWH,EAAW4oI,WAC/DH,GAAa,gBAAoB,MAAO,CAAEtoI,UAAWH,EAAW6oI,IAAKjuH,MAAO6tH,GACxE,gBAAoB,MAAO,CAAEtoI,UAAWH,EAAW8oI,WAC/D,EAEAnB,EAAqB3lI,UAAU8lI,yBAA2B,SAAU5kI,GAChE,IAAIwM,EAAgBxM,EAAGjH,OACnB8sI,EAAuBr5H,EAAc2xD,YAAc3xD,EAAcw1C,YACjE8jF,EAAwBt5H,EAAcm9C,aAAen9C,EAAc0B,aACvE,GAAI23H,GAAwBC,EAAuB,CAC/C,IAAIj/H,EAAa2F,EAAcc,wBAE/B,IAAI,QAAOjO,KAAK1E,MAAMJ,QAClB,GAAIyF,EAAG45B,QAAU/yB,EAAWnC,KAAOmhI,EAC/B,OAAO,OAIX,GAAI7lI,EAAG45B,QAAU/yB,EAAWnC,KAAO8H,EAAcw1C,YAC7C,OAAO,EAIf,GAAIhiD,EAAG65B,QAAUhzB,EAAWO,IAAMoF,EAAc0B,aAC5C,OAAO,CAEf,CACA,OAAO,CACX,EACAu2H,EAAqB3lI,UAAUinI,aAAe,WAC1C,MAAO,CACHrhI,KAAMrF,KAAKimI,UAAU5gI,MAChBrF,KAAK2lI,mBAAqB3lI,KAAKgmI,YAAchmI,KAAK2lI,mBAAmBR,WAAanlI,KAAKgmI,aAC5Fj+H,IAAK/H,KAAKimI,UAAUl+H,KACf/H,KAAK2lI,mBAAqB3lI,KAAKm/H,WAAan/H,KAAK2lI,mBAAmBl7E,UAAYzqD,KAAKm/H,YAC1F/2H,MAAOpI,KAAKimI,UAAU79H,MACtB8G,OAAQlP,KAAKimI,UAAU/2H,OAE/B,EACAk2H,EAAqB3lI,UAAUqmI,kBAAoB,SAAUnlI,GACzD,IAAIuB,EAAQlC,KACZA,KAAKmW,OAAO8nB,uBAAsB,WAC9B/7B,EAAMouC,aAAa3vC,EACvB,IACAA,EAAG+C,kBACH/C,EAAGyG,gBACP,EACAg+H,EAAqB3lI,UAAU6wC,aAAe,SAAU3vC,GACpD,GAAKX,KAAK+lI,YAAV,MAGmBhnI,IAAf4B,EAAG45B,UACHv6B,KAAK2mI,gBAAkBhmI,GAE3B,IAAIimI,EAAW5mI,KAAK0mI,eAChBG,EAAe,CAAExhI,KAAM1E,EAAG45B,QAAUqsG,EAASvhI,KAAM0C,IAAKpH,EAAG65B,QAAUosG,EAAS7+H,KAIlF,GAHK/H,KAAK8mI,cACN9mI,KAAK8mI,YAAcD,QAEJ9nI,IAAf4B,EAAG+rF,SAAwC,IAAf/rF,EAAG+rF,QAC/B1sF,KAAKkrB,WAAWvqB,QAGhB,GAAIX,KAAK/E,MAAMirI,WAAY,QAAyBlmI,KAAK8mI,YAAaD,GAvJ1D,EAuJ6F,CACrG,IAAK7mI,KAAK/E,MAAMirI,SAAU,CACtB,IAAIj6C,EAAYjsF,KAAK1E,MAAM2wF,UACtBtrF,EAAGK,UACJirF,EAAU86C,gBAAe,GAE7B/mI,KAAK6lI,mBAAqB55C,GAAaA,EAAU3uC,oBAAsB2uC,EAAU3uC,oBACrF,CAEA,IAAI0pF,EAAmBhnI,KAAK1E,MAAM8qI,4BAC5B,CACE/gI,KAAMwC,KAAKsgD,IAAI,EAAGtgD,KAAKugD,IAAIw+E,EAASx+H,MAAOpI,KAAK2mI,gBAAgBpsG,QAAUqsG,EAASvhI,OACnF0C,IAAKF,KAAKsgD,IAAI,EAAGtgD,KAAKugD,IAAIw+E,EAAS13H,OAAQlP,KAAK2mI,gBAAgBnsG,QAAUosG,EAAS7+H,OAErF,CACE1C,KAAMrF,KAAK2mI,gBAAgBpsG,QAAUqsG,EAASvhI,KAC9C0C,IAAK/H,KAAK2mI,gBAAgBnsG,QAAUosG,EAAS7+H,KAEjDm+H,EAAW,CACX7gI,KAAMwC,KAAKugD,IAAIpoD,KAAK8mI,YAAYzhI,MAAQ,EAAG2hI,EAAiB3hI,MAC5D0C,IAAKF,KAAKugD,IAAIpoD,KAAK8mI,YAAY/+H,KAAO,EAAGi/H,EAAiBj/H,KAC1DK,MAAOP,KAAKQ,IAAI2+H,EAAiB3hI,MAAQrF,KAAK8mI,YAAYzhI,MAAQ,IAClE6J,OAAQrH,KAAKQ,IAAI2+H,EAAiBj/H,KAAO/H,KAAK8mI,YAAY/+H,KAAO,KAErE/H,KAAKinI,mBAAmBf,EAAUU,GAClC5mI,KAAK4V,SAAS,CAAEswH,SAAUA,GAC9B,CAEJ,OAAO,CAzCP,CA0CJ,EACAd,EAAqB3lI,UAAUyrB,WAAa,SAAUvqB,GAClDX,KAAKmsB,QAAQ44D,IAAIzjF,QACjBtB,KAAKmsB,QAAQ44D,IAAI/kF,KAAKokI,kBAAmB,UACrCpkI,KAAK+lI,aACL/lI,KAAK+lI,YAAYx1H,UAErBvQ,KAAK+lI,YAAc/lI,KAAK8mI,YAAc9mI,KAAK2mI,qBAAkB5nI,EAC7DiB,KAAK4lI,kBAAoB5lI,KAAKknI,oBAAiBnoI,EAC3CiB,KAAK/E,MAAMirI,WACXlmI,KAAK4V,SAAS,CACVswH,cAAUnnI,IAEd4B,EAAGyG,iBACHzG,EAAG+C,kBAEX,EACA0hI,EAAqB3lI,UAAU0nI,oBAAsB,SAAUC,EAAWh7H,GACtE,QAAUA,EAAMrE,KACZq/H,EAAUr/H,IAAMqE,EAAMrE,KACtBq/H,EAAUn/H,OAASmE,EAAMrE,OACvBqE,EAAM/G,MACR+hI,EAAU/hI,KAAO+G,EAAM/G,MACvB+hI,EAAU3hI,MAAQ2G,EAAM/G,IAChC,EAKA+/H,EAAqB3lI,UAAUimI,wBAA0B,SAAU/kI,GAC/D,IAAIsrF,EAAYjsF,KAAK1E,MAAM2wF,UAC3B,IAAKjsF,KAAKmC,MAAMgB,SAAY8oF,GAA8C,IAAjCA,EAAUo7C,mBAC/C,OAAO,EAGX,IADA,IAAIC,EAActnI,KAAKmC,MAAMgB,QAAQ8mF,iBAAiB,0BAC7CnqF,EAAI,EAAGA,EAAIwnI,EAAY5rI,OAAQoE,IAAK,CACzC,IAAI9G,EAAUsuI,EAAYxnI,GACtBmc,EAAQo4B,OAAOr7C,EAAQ2S,aAAa,yBACxC,GAAIsgF,EAAUka,gBAAgBlqF,GAAQ,CAClC,IAAIsrH,EAAWvuI,EAAQiV,wBACvB,GAAIjO,KAAKmnI,oBAAoBI,EAAU,CAAEliI,KAAM1E,EAAG45B,QAASxyB,IAAKpH,EAAG65B,UAC/D,OAAO,CAEf,CACJ,CACA,OAAO,CACX,EACA4qG,EAAqB3lI,UAAU+lI,qBAAuB,SAAU7kI,GAE5D,IADA,IAAI3H,EAAU2H,EAAGjH,OACVV,GAAWA,IAAYgH,KAAKmC,MAAMgB,SAAS,CAC9C,GAAsD,SAAlDnK,EAAQ2S,aAAa,yBACrB,OAAO,EAEX3S,EAAUA,EAAQkK,aACtB,CACA,OAAO,CACX,EACAkiI,EAAqB3lI,UAAUwnI,mBAAqB,SAAUf,EAAUU,GAEpE,GAAKV,GAAalmI,KAAKmC,MAAMgB,QAA7B,CAGA,IAAI8oF,EAAYjsF,KAAK1E,MAAM2wF,UACvBq7C,EAActnI,KAAKmC,MAAMgB,QAAQ8mF,iBAAiB,0BACjDjqF,KAAKknI,iBACNlnI,KAAKknI,eAAiB,CAAC,GAE3B,IAAK,IAAIpnI,EAAI,EAAGA,EAAIwnI,EAAY5rI,OAAQoE,IAAK,CACzC,IAAI9G,EAAUsuI,EAAYxnI,GACtBmc,EAAQjjB,EAAQ2S,aAAa,wBAE7B47H,EAAWvnI,KAAKknI,eAAejrH,GAC9BsrH,IAGDA,EAAW,CACPliI,MAHJkiI,EAAWvuI,EAAQiV,yBAGA5I,KAAOuhI,EAASvhI,KAC/B0C,IAAKw/H,EAASx/H,IAAM6+H,EAAS7+H,IAC7BK,MAAOm/H,EAASn/H,MAChB8G,OAAQq4H,EAASr4H,OACjBzJ,MAAO8hI,EAASliI,KAAOuhI,EAASvhI,KAAOkiI,EAASn/H,MAChDH,OAAQs/H,EAASx/H,IAAM6+H,EAAS7+H,IAAMw/H,EAASr4H,SAEtC9G,MAAQ,GAAKm/H,EAASr4H,OAAS,IACxClP,KAAKknI,eAAejrH,GAASsrH,GAGjCA,EAASx/H,IAAMm+H,EAASn+H,IAAMm+H,EAASh3H,QACvCq4H,EAASt/H,OAASi+H,EAASn+H,KAC3Bw/H,EAASliI,KAAO6gI,EAAS7gI,KAAO6gI,EAAS99H,OACzCm/H,EAAS9hI,MAAQygI,EAAS7gI,KAC1BrF,KAAK4lI,kBAAkB3pH,IAAS,SAGzBjc,KAAK4lI,kBAAkB3pH,EAEtC,CAEA,IAAIurH,EAA0BxnI,KAAKynI,qBAAuB,CAAC,EAG3D,IAAK,IAAIxrH,KAFTjc,KAAKynI,oBAAsB,CAAC,EAEVznI,KAAK4lI,kBACf5lI,KAAK4lI,kBAAkBnnI,eAAewd,KACtCjc,KAAKynI,oBAAoBxrH,IAAS,GAG1C,GAAIjc,KAAK6lI,mBACL,IAAK,IAAIrqI,EAAK,EAAGpB,EAAK4F,KAAK6lI,mBAAoBrqI,EAAKpB,EAAGsB,OAAQF,IACvDygB,EAAQ7hB,EAAGoB,GACfwE,KAAKynI,oBAAoBxrH,IAAS,EAK1C,IAAIyrH,GAAe,EACnB,IAAK,IAAIzrH,KAASjc,KAAKynI,oBACnB,GAAIznI,KAAKynI,oBAAoBxrH,KAAWurH,EAAwBvrH,GAAQ,CACpEyrH,GAAe,EACf,KACJ,CAEJ,IAAKA,EACD,IAAK,IAAIzrH,KAASurH,EACd,GAAIxnI,KAAKynI,oBAAoBxrH,KAAWurH,EAAwBvrH,GAAQ,CACpEyrH,GAAe,EACf,KACJ,CAIR,GAAIA,EAAc,CAEdz7C,EAAU07C,iBAAgB,GAC1B17C,EAAU86C,gBAAe,GACzB,IAAK,IAAIhlI,EAAK,EAAGC,EAAK3C,OAAOiU,KAAKtT,KAAKynI,qBAAsB1lI,EAAKC,EAAGtG,OAAQqG,IACrEka,EAAQja,EAAGD,GACfkqF,EAAU8O,iBAAiB1mD,OAAOp4B,IAAQ,GAAM,GAEpDgwE,EAAU07C,iBAAgB,EAC9B,CA9EA,CA+EJ,EACAvC,EAAqBz8H,aAAe,CAChCi/H,YAAa,MACbh9H,UAAW,CAAC,EACZy6H,WAAW,GAERD,CACX,CAhUyC,CAgUvC,a,WC1USyC,GAIX,EAAA5oH,EAAA,GAAOmmH,GCNgB,SAAU9pI,GAC7B,IAAIlB,EAAI2H,EAAIC,EACR9G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UACvCuhB,EAAUjkB,EAAMikB,QACpB,MAAO,CACH1V,KAAM,CACF7L,EACA,CACIsjB,SAAU,WACVxJ,OAAQ,YAGhB2uH,SAAU,CACN,CACInlH,SAAU,WACVykB,WAAY,qBACZtgC,KAAM,EACN0C,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACRmD,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBurC,WAAY,OACZplB,gBAAiB,eAErBnmB,KAGZksI,IAAK,CACD,CACIplH,SAAU,WACVoP,UAAW,aACXrO,OAAQ,aAAazP,OAAO2M,EAAQiD,cACpCkS,cAAe,OACf+P,OAAQ,GACRj5B,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,aAEjBngB,KAGZwkI,QAAS,CACL,CACIrlH,SAAU,WACVoP,UAAW,aACX/P,gBAAiBpB,EAAQiD,aACzBwa,QAAS,GACTv3B,KAAM,EACN0C,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACRmD,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2jC,WAAY,OACZplB,gBAAiB,eAErBve,KAIpB,QDvDwCjD,EAAW,CAC/C0iB,MAAO,oB,uCERPrnB,E,mIAQA0tI,IAAY1tI,EAAK,CAAC,GACf,IAAe2tI,MAAQ,OAC1B3tI,EAAG,IAAe4tI,SAAW,OAC7B5tI,EAAG,IAAe8zH,OAAS,aAC3B9zH,EAAG,IAAe6tI,SAAW,WAC7B7tI,EAAG,IAAe8tI,eAAiB,UACnC9tI,EAAG,IAAe+tI,SAAW,YAC7B/tI,GAEAuf,GAAgB,EAAAC,EAAA,KAChBwuH,EAA0B,SAAUC,GACpC,OAAQA,GACJ,KAAK,IAAeJ,QACpB,KAAK,IAAe/Z,MACpB,KAAK,IAAega,cAChB,MAAO,YAEf,MAAO,QACX,EACII,EAAU,SAAUD,GACpB,OAAQA,GACJ,KAAK,IAAeJ,QACpB,KAAK,IAAe/Z,MACpB,KAAK,IAAega,cAChB,MAAO,QAEf,MAAO,QACX,EACWK,EAAiB,cAAiB,SAAUjtI,EAAOgQ,GAC1D,IAAIlR,GAAK,EAAAoW,EAAA,IAAW,GAAQg4H,EAAmBpuI,EAAG,GAAIquI,EAAyBruI,EAAG,GAAGyW,OACjF05B,GAAU,EAAA54B,EAAA,GAAM,cAChBshG,EAAU33G,EAAM23G,QAASr1G,EAAYtC,EAAMsC,UAAWlB,EAAWpB,EAAMoB,SAE3EgsI,EAA0BptI,EAAMotI,wBAAyBC,EAAmBrtI,EAAMqtI,iBAAkBttI,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO6G,EAAKzG,EAAM+sI,eAAgBA,OAAwB,IAAPtmI,EAAgB,IAAegmI,KAAOhmI,EAAIC,EAAK1G,EAAMwuB,UAAWA,OAAmB,IAAP9nB,OAAgBjD,EAAYiD,EAAIC,EAAK3G,EAAM4kG,YAAaA,OAAqB,IAAPj+F,GAAuBA,EAAI2mI,EAAYttI,EAAMstI,UAAWC,EAAyBvtI,EAAMutI,uBAAwBC,EAAsBxtI,EAAMwtI,oBAAqB9rH,EAAO1hB,EAAM0hB,KAAMkC,EAAK5jB,EAAMytI,cAAeA,OAAuB,IAAP7pH,GAAuBA,EAAIooG,EAAoBhsH,EAAMgsH,kBAC5lBlvG,GAAc,QAAe9c,EAAO,KAAuB,CAC3D,YACA,SAEAmC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPmtI,eAAgBA,GAAkB,IAAeN,KACjDj+G,eAAyB/qB,IAAd+qB,EACXmpF,aAAqBl0G,IAAZk0G,EACT21B,UAAWA,EACX1oC,YAAaA,EACbsoC,iBAAkBA,EAClB5qI,UAAWA,IAEXorI,EAAkB,CAAEvsH,SAAU+rH,EAAmB,kBAAoB,qBACrES,EAAch2B,GAAWnpF,EAAY,CAAE,mBAAoBygB,EAASvtB,KAAM,UAAa,CAAC,EACxFksH,EAAaj2B,EAAU,gBAAoB,MAAO,CAAEr1G,UAAWH,EAAWw1G,SAAWA,GAAW,KAChGk2B,EAAgBr/G,EAAa,gBAAoBjN,EAAA,EAAY,CAAE/Y,UAAU,EAAOlG,UAAWH,EAAW2rI,UAAWtwH,QAASgR,EAAWpN,UAAWisH,GAAsC,CAAElsH,SAAU,SAAW6J,MAAOuiH,EAAwB/tH,UAAW+tH,IAA6B,KACxR,OAAQ,gBAAoB,OAAO,QAAS,CAAEv9H,IAAKA,EAAK1N,UAAWH,EAAWgM,MAAQw/H,GAClF,gBAAoB,MAAO,CAAErrI,UAAWH,EAAWugB,SAC/C,gBAAoB,MAAO,CAAEpgB,UAAWH,EAAW4rI,cAAe,eAAe,GAAQP,EAAuB,gBAAoB7tH,EAAA,GAAM,QAAS,CAAC,EAAG6tH,EAAqB,CAAElrI,WAAW,EAAAsN,EAAA,GAAIzN,EAAWwlB,KAAM6lH,EAAoBlrI,cAAmB,gBAAoBqd,EAAA,EAAM,CAAEwB,SAAUqrH,EAASO,GAAiBzqI,UAAWH,EAAWwlB,QAC3U,gBAAoB,MAAO,CAAErlB,UAAWH,EAAWgc,KAAMlG,GAAIg3B,EAASvtB,KAAMA,GAAQsrH,EAAQD,GAAiB,YAAaD,EAAwBC,IAC9I,gBAAoB,QAAQ,QAAS,CAAEzqI,UAAWH,EAAW6rI,WAAalxH,GAAc2wH,EAAiB,gBAAoB17B,EAAA,EAAe,KACxI,gBAAoB,OAAQ,KAAM3wG,IAGtC,gBAAoB,OAAQ,KAAMA,MACGwjG,IAAgBgpC,GAAcN,GAAc,gBAAoB,MAAO,CAAEhrI,UAAWH,EAAW+qI,kBACpI,gBAAoB3rH,EAAA,GAAY,QAAS,CAAE/Y,UAAU,EAAOlG,UAAWH,EAAWyoH,OAAQptG,QAAS2vH,EAAwB/rH,UAAWssH,EAAiBluH,UAAW4tH,EAAyB,gBAAiBF,GAAoBlhB,MACnOpnB,GAAegpC,GACUhpC,GAAeipC,GAAkB,gBAAoB,MAAO,CAAEvrI,UAAWH,EAAW8rI,mBAAqBJ,GACnIjpC,GAAeipC,GACnBjpC,GAAegpC,EACvB,IACAX,EAAe9tI,YA5DM,a,IChBjB,EAAIsH,EAAIC,EAAIC,E,WAIZyc,EAAmB,CACnBjV,KAAM,gBACNykH,MAAO,uBACP+Z,QAAS,yBACTC,cAAe,+BACfC,QAAS,yBACTH,QAAS,yBACTwB,UAAW,0BACXC,WAAY,2BACZC,oBAAqB,oCACrBC,oBAAqB,oCACrB3rH,QAAS,wBACTqrH,cAAe,qBACf5vH,KAAM,qBACN6vH,UAAW,0BACXC,kBAAmB,kCACnBf,iBAAkB,iCAClBY,UAAW,0BACXljB,OAAQ,uBACRjT,QAAS,wBACT22B,kBAAmB,mCAEnBrpH,IAAmB,EAAK,CAAC,GACtB,IAAe2tG,OAAS,kBAC3B,EAAG,IAAe+Z,SAAW,kBAC7B,EAAG,IAAeE,SAAW,oBAC7B,EAAG,IAAeH,SAAW,oBAC7B,EAAG,IAAeE,eAAiB,0BACnC,EAAG,IAAeH,MAAQ,iBAC1B,GACA71E,IAAanwD,EAAK,CAAC,GAChB,IAAemsH,OAAS,YAC3BnsH,EAAG,IAAekmI,SAAW,YAC7BlmI,EAAG,IAAeomI,SAAW,cAC7BpmI,EAAG,IAAeimI,SAAW,cAC7BjmI,EAAG,IAAemmI,eAAiB,oBACnCnmI,EAAG,IAAegmI,MAAQ,WAC1BhmI,GACA8nI,IAA2B7nI,EAAK,CAAC,GAC9B,IAAeksH,OAAS,UAC3BlsH,EAAG,IAAeimI,SAAW,UAC7BjmI,EAAG,IAAemmI,SAAW,UAC7BnmI,EAAG,IAAegmI,SAAW,UAC7BhmI,EAAG,IAAekmI,eAAiB,UACnClmI,EAAG,IAAe+lI,MAAQ,aAC1B/lI,GACA8nI,IAAgC7nI,EAAK,CAAC,GACnC,IAAeisH,OAAS,UAC3BjsH,EAAG,IAAegmI,SAAW,UAC7BhmI,EAAG,IAAekmI,SAAW,UAC7BlmI,EAAG,IAAe+lI,SAAW,UAC7B/lI,EAAG,IAAeimI,eAAiB,UACnCjmI,EAAG,IAAe8lI,MAAQ,aAC1B9lI,GCtDO8nI,GAAa,EAAA9qH,EAAA,GAAOspH,GDuDR,SAAUjtI,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EACxCt3B,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWksB,EAAYxuB,EAAMwuB,UAAW8+G,EAAYttI,EAAMstI,UAAW1oC,EAAc5kG,EAAM4kG,YAAasoC,EAAmBltI,EAAMktI,iBAAkB/1G,EAAKn3B,EAAM+sI,eAAgBA,OAAwB,IAAP51G,EAAgB,IAAes1G,KAAOt1G,EAC1QzY,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MACrD4qH,GAAsB,QAAkB,EAAG,MAC3CvsI,GAAa,QAAoBihB,EAAkBxjB,GACnD+uI,EAA8B,CAC9BrpH,SAAU,KAAcspH,OACxBh7H,OAAQ,GACRyR,WAAY,OACZ5G,MAAOC,EAAemwH,YACtB/+H,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,SAAS,QAAS,CAAC,GAAG,WAAiC,CAAE2f,MAAO,eAC3F3f,IAEJgwI,EAA0B,EAC1B,QAAclvI,EAAO,CACjBi1B,MAAO,EACP7O,kBAAmB,CACfuoB,cAAe,OACfx+B,QAAS,uBAEb6W,YAAa,gBAEjB,CACI0N,WAAY,EACZxnB,MAAO,GACP8G,OAAQ,GACRwR,QAAS,WACTtV,UAAW,CACP,oBAAqB6+H,EACrB,SAAU,CACN1pH,gBAAiB,eAErB,UAAW,CACPA,gBAAiB,kBAKjC,MAAO,CACH9W,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACNwnH,IAAmB,IAAena,OAASzwH,EAAWywH,MACtDma,IAAmB,IAAeJ,SAAWxqI,EAAWwqI,QACxDI,IAAmB,IAAeH,eAAiBzqI,EAAWyqI,cAC9DG,IAAmB,IAAeF,SAAW1qI,EAAW0qI,QACxDE,IAAmB,IAAeL,SAAWvqI,EAAWuqI,QACxD9nC,EAAcziG,EAAW+rI,UAAY/rI,EAAWgsI,YAC/CvpC,GAAep2E,GAAarsB,EAAWisI,qBACvCxpC,GAAe0oC,GAAanrI,EAAWksI,oBACxC,CACIhkG,WAAY3rB,EAAeuG,EAAgB8nH,IAC3C/3G,UAAW,aACXvW,MAAOC,EAAemwH,YACtBx2G,UAAW,GACXvrB,MAAO,OACP2Y,QAAS,OACTyhF,UAAW,aACXp3F,WAAYrJ,EAAK,CACT,WAAY,CACRgY,MAAOC,EAAeqwH,YACtBj/H,UAAW,CACP,SAAU,CACN2O,MAAOC,EAAeswH,uBAKtCvoI,EAAG,OAAwB,SAAS,QAAS,CAAC,GAAG,WAAiC,CAAE4jC,WAAY,cAAe1jB,OAAQ,aAAazP,OAAOq3H,EAAwBxB,IAAkBtuH,MAAO,eAC5LhY,EAAG,MAA6B,CAC5BkgB,OAAQ,aAAazP,OAAOs3H,EAA6BzB,KAE7DtmI,IAERm+F,GAAe,CACXtsE,cAAe,UAEnBh2B,GAEJogB,QAAS,CACLvgB,EAAWugB,SACVhc,EAAK,CACE+e,QAAS,OACT3Y,MAAO,OACPuY,WAAY,UAEhB3e,EAAGgoI,GAAuB,CACtBjpH,QAAS,OACTwpH,oBAAqB,gBACrBC,iBAAkB,WAClBC,kBAAmB,mFAEvBzoI,IAERqnI,cAAe,CACX5rI,EAAW4rI,eACVpnI,EAAK,CACE2e,SAAU,KAAcC,OACxBiS,SAAU,GACVa,UAAW,GACX5S,QAAS,OACT6O,WAAY,EACZ9O,OAAQ,kBAEZ7e,EAAG+nI,GAAuB,CACtBU,SAAU,QAEdzoI,IAERghB,KAAM,CACFlJ,MAAOC,EAAek4C,EAAUm2E,IAChCj9H,WAAY8T,EAAK,CAAC,EACdA,EAAG,OAAwB,SAAS,QAAS,CAAC,GAAG,WAAiC,CAAEnF,MAAO,eAC3FmF,IAERzF,KAAM,CACFhc,EAAWgc,MACX,SAAS,QAAS,CAAEqZ,SAAU,EAAG/R,QAAS,OAAQuC,SAAU,EAAGxC,OAAQ,GAAK1B,EAAMiC,QAASoQ,EAAK,CAAC,EAAGA,EAAGu4G,GAAuB,CAC1HU,SAAU,QACXj5G,EAAGrmB,WAAasmB,EAAK,CAAC,EACrBA,EAAG,OAAwB,QAAS,CAAC,GAAG,WACxCA,GAAKD,KACR3H,GAAa,CACViL,YAAa,KAGrBu0G,UAAW,CACP7rI,EAAW6rI,UACX,CACI3oH,WAAY,GACZvV,UAAW,CACP,sBAAuB,CACnBiiC,YAAa,KAIzBu7F,GAAa,CACT9rH,SAAU,UACV8B,WAAY,aAEfshF,GAAe,CAGZpjF,SAAU,SACV+B,aAAc,WACdD,WAAY,WAEfshF,IACI0oC,GAAa,CACdx9H,WAAYumB,EAAK,CAAC,EACdA,EAAGq4G,GAAuB,CACtBltH,SAAU,UACV8B,WAAY,YAEhB+S,IAER62G,GAAoB,CAChB1rH,SAAU,UACV8B,WAAY,aAGpB2qH,kBAAmB,CACf9rI,EAAW8rI,mBACV33G,EAAK,CAAC,EACHA,EAAGo4G,GAAuB,CACtBU,SAAU,SAEd94G,IAER42G,iBAAkB/qI,EAAW+qI,iBAC7BY,UAAW,CAAC3rI,EAAW2rI,UAAWgB,GAClClkB,OAAQ,CAACzoH,EAAWyoH,OAAQkkB,GAC5Bn3B,QAAS,CACL/S,EAAcziG,EAAWw1G,QAAUx1G,EAAWmsI,mBAC7Cr3G,EAAK,CACExR,QAAS,OACTuC,SAAU,EACVsM,WAAY,EACZiE,UAAW,OACXD,cAAe,cACf5S,WAAY,SACZF,OAAQ,eAERM,kBAAmB,OACnBD,qBAAsB,QAE1BoR,EAAGy3G,GAAuB,CACtBU,SAAU,SACV31G,YAAa,EACbC,aAAc,GAElBzC,EAAGnnB,UAAY,CACX,2BAA4BonB,EAAK,CACzBqC,WAAY,GAEhBrC,EAAGw3G,GAAuB,CACtBh1G,aAAc,GAElBxC,IAERD,GACJ2tE,GAAe,CACXlrE,aAAc,GAElBlL,IACKo2E,GAAe,CAChBnrE,YAAa,IAI7B,QC3Q0Dh2B,EAAW,CACjE0iB,MAAO,c,kBCDJ,IAAIkpH,E,iBACX,SAAWA,GAEPA,EAAeA,EAAqB,KAAI,GAAK,OAE7CA,EAAeA,EAAsB,MAAI,GAAK,QAE9CA,EAAeA,EAAwB,QAAI,GAAK,UAEhDA,EAAeA,EAA8B,cAAI,GAAK,gBAEtDA,EAAeA,EAAwB,QAAI,GAAK,UAEhDA,EAAeA,EAAwB,QAAI,GAAK,SACnD,CAbD,CAaGA,IAAmBA,EAAiB,CAAC,G,2KChB7Bp9B,EAAoB,KAAmBib,eAC9Czd,EAAmB,CACnBthG,KAAM,WACN6nG,KAAM,iBACNs5B,kBAAmB,6BACnBjuF,OAAQ,UACRkuF,MAAO,kB,6ECLAlxH,GAAgB,E,SAAA,KAAgB,SAAU/b,EAAWktI,GAC5D,MAAO,CACHrhI,MAAM,QAAY7L,EAAWktI,GAAc,CACvCC,YAAa,OACb3/H,UAAW,CACP,MAAO,CACHmlB,WAAY,WAKhC,I,WCTIy6G,EACO,CACH9yH,MAAO,aACP+yH,KAAM,YACNC,KAAM,YAJVF,EAMO,CACH9yH,MAAO,YACP+yH,KAAM,YACNC,KAAM,WAGVC,EAA+B,SAAUrpI,GAEzC,SAASqpI,EAAc7vI,GACnB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAkHxC,OAjHAkC,EAAMkpI,kBAAoBJ,EAC1B9oI,EAAMiqB,QAAU,GAChBjqB,EAAM2B,aAAe,SAAUjD,GAC3B,IAAIwqB,EAAc,WAAeigH,KAAKnpI,EAAM5G,MAAMoB,UAAUpB,MAAM8vB,YAKlE,OAJIA,GACAA,EAAYxqB,GAEhBsB,EAAMkpI,kBAAoBJ,EACnB9oI,EAAMo/E,aAAa1gF,EAC9B,EACAsB,EAAMgpB,WAAa,SAAUtqB,GACzB,IAAIuqB,EAAY,WAAekgH,KAAKnpI,EAAM5G,MAAMoB,UAAUpB,MAAM6vB,UAKhE,OAJIA,GACAA,EAAUvqB,GAEdsB,EAAMkpI,kBAAoBJ,EACnB9oI,EAAMopI,YAAY1qI,EAC7B,EACAsB,EAAM4pB,cAAgB,SAAUlrB,GAC5B,IAAIkuB,EAAe,WAAeu8G,KAAKnpI,EAAM5G,MAAMoB,UAAUpB,MAAMwzB,aAKnE,OAJIA,GACAA,EAAaluB,GAEjBsB,EAAMkpI,kBAAoBJ,EACnB9oI,EAAMo/E,aAAa1gF,EAC9B,EACAsB,EAAMqpI,YAAc,SAAU3qI,GAC1B,IAAI4qI,EAAa,WAAeH,KAAKnpI,EAAM5G,MAAMoB,UAAUpB,MAAMkwI,WAC7DA,GACAA,EAAW5qI,GAEfsB,EAAMkpI,kBAAoBJ,EAC1B9oI,EAAMopI,YAAY1qI,EACtB,EACAsB,EAAMo/E,aAAe,SAAU1gF,GAE3B,GAA4B,iBAAjBA,EAAMuhF,QAAwC,IAAjBvhF,EAAMuhF,OAC1C,OAAO,EAIX,KAAKjgF,EAAM5G,MAAMmwI,iBAAmBvpI,EAAMwpI,iBAAiB9qI,EAAMlH,OAAQwI,EAAM5G,MAAMmwI,iBAChFvpI,EAAM5G,MAAMqwI,qBACTzpI,EAAMwpI,iBAAiB9qI,EAAMlH,OAAQwI,EAAM5G,MAAMqwI,sBAFzD,CAQAzpI,EAAM0pI,SAAW1pI,EAAM2pI,YAAYjrI,GACnC,IAAIsgB,EAAWhf,EAAM4pI,oBAAoBlrI,GACzC,QAAiB7B,IAAbmiB,EAAJ,CAGA,IAAI6qH,EAAW7pI,EAAM8pI,4BAA4B9qH,GACjDhf,EAAM5G,MAAM2wI,SAAW/pI,EAAM5G,MAAM2wI,QAAQrrI,EAAOmrI,GAClD7pI,EAAM0T,SAAS,CACXk1H,YAAY,EACZoB,aAAchrH,IAIlBhf,EAAMiqB,QAAU,EACZ,EAAAnZ,EAAAA,IAAG9Z,SAASC,KAAM+I,EAAMkpI,kBAAkBH,KAAM/oI,EAAMiqI,SAAS,IAC/D,EAAAn5H,EAAAA,IAAG9Z,SAASC,KAAM+I,EAAMkpI,kBAAkBF,KAAMhpI,EAAMopI,aAAa,GAXvE,CARA,CAqBJ,EACAppI,EAAMiqI,QAAU,SAAUvrI,GAEH,cAAfA,EAAMnE,MACNmE,EAAMwG,iBAEV,IAAI8Z,EAAWhf,EAAM4pI,oBAAoBlrI,GACzC,GAAKsgB,EAAL,CAIA,IAAIkrH,EAAclqI,EAAMmqI,uBAAuBnqI,EAAM8pI,4BAA4B9qH,IAC7EorH,EAAkBF,EAAYlrH,SAClChf,EAAM5G,MAAMixI,cAAgBrqI,EAAM5G,MAAMixI,aAAa3rI,EAAOwrI,GAC5DlqI,EAAM0T,SAAS,CACXsL,SAAUorH,EACVJ,aAAchrH,GAPlB,CASJ,EACAhf,EAAMopI,YAAc,SAAU1qI,GAC1B,GAAKsB,EAAMjH,MAAM6vI,WAAjB,CAGA,IAAI5pH,EAAWhf,EAAM4pI,oBAAoBlrI,GACzC,GAAKsgB,EAAL,CAGA,IAAIsrH,EAAetqI,EAAM8pI,4BAA4B9qH,GAErDhf,EAAM0T,SAAS,CACXk1H,YAAY,EACZoB,kBAAcntI,IAElBmD,EAAM5G,MAAMmxI,QAAUvqI,EAAM5G,MAAMmxI,OAAO7rI,EAAO4rI,GAC5CtqI,EAAM5G,MAAM4lB,UACZhf,EAAM0T,SAAS,CACXsL,SAAUhf,EAAM5G,MAAM4lB,WAI9Bhf,EAAMiqB,QAAQ7iB,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,GAd7D,CAJA,CAmBJ,EACArO,EAAMjH,MAAQ,CACV6vI,YAAY,EACZ5pH,SAAUhf,EAAM5G,MAAM4lB,UAAY,CAAEvZ,EAAG,EAAG+yB,EAAG,GAC7CwxG,kBAAcntI,GAEXmD,CACX,CAoIA,OAzPA,QAAUipI,EAAerpI,GAsHzBqpI,EAAc1rI,UAAUuK,mBAAqB,SAAUsjB,IAC/CttB,KAAK1E,MAAM4lB,UAAcoM,EAAUpM,UAAYlhB,KAAK1E,MAAM4lB,WAAaoM,EAAUpM,UACjFlhB,KAAK4V,SAAS,CAAEsL,SAAUlhB,KAAK1E,MAAM4lB,UAE7C,EACAiqH,EAAc1rI,UAAU6K,qBAAuB,WAC3CtK,KAAKmsB,QAAQ7iB,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,GAChE,EACA46H,EAAc1rI,UAAUxB,OAAS,WAC7B,IAAIvF,EAAQ,WAAe2yI,KAAKrrI,KAAK1E,MAAMoB,UACvCpB,EAAQ5C,EAAM4C,MACd4lB,EAAWlhB,KAAK1E,MAAM4lB,SACtB9mB,EAAK4F,KAAK/E,MAAOyxI,EAAgBtyI,EAAG8mB,SAAU4pH,EAAa1wI,EAAG0wI,WAC9DnjI,EAAI+kI,EAAc/kI,EAClB+yB,EAAIgyG,EAAchyG,EAKtB,OAJIxZ,IAAa4pH,IACbnjI,EAAIuZ,EAASvZ,EACb+yB,EAAIxZ,EAASwZ,GAEV,eAAmBhiC,EAAO,CAC7B2f,OAAO,SAAS,QAAS,CAAC,EAAG/c,EAAM+c,OAAQ,CAAEusB,UAAW,aAAapyB,OAAO7K,EAAG,QAAQ6K,OAAOkoB,EAAG,SACjG98B,UAAW+b,EAAcre,EAAMsC,UAAWoC,KAAK/E,MAAM6vI,YAAYrhI,KACjE2hB,YAAaprB,KAAK6D,aAClBsnB,UAAWnrB,KAAKkrB,WAChB4D,aAAc9uB,KAAK8rB,cACnB0/G,WAAYxrI,KAAKurI,aAEzB,EAKAJ,EAAc1rI,UAAUqsI,oBAAsB,SAAUlrI,GACpD,IAAI+rI,EAAW3sI,KAAK4sI,gBAAgBhsI,GAEpC,QAAsB7B,IAAlBiB,KAAK4rI,UAA2Be,EAApC,CAGA,IAAIE,EAAmBF,GAAY/rI,EACnC,MAAO,CACH+G,EAAGklI,EAAiBtyG,QACpBG,EAAGmyG,EAAiBryG,QAJxB,CAMJ,EAKA2wG,EAAc1rI,UAAUmtI,gBAAkB,SAAUhsI,GAChD,OAASA,EAAMksI,eAAiB9sI,KAAK+sI,sBAAsBnsI,EAAMksI,gBAC5DlsI,EAAMosI,gBAAkBhtI,KAAK+sI,sBAAsBnsI,EAAMosI,eAClE,EAKA7B,EAAc1rI,UAAUosI,YAAc,SAAUjrI,GAC5C,IAAIqsI,EAASrsI,EAAMksI,eAAiBlsI,EAAMksI,cAAc,IAAQlsI,EAAMosI,gBAAkBpsI,EAAMosI,eAAe,GAC7G,GAAIC,EACA,OAAOA,EAAMC,UAErB,EAIA/B,EAAc1rI,UAAUisI,iBAAmB,SAAU1yI,EAASm0I,GAC1D,IAAKn0I,GAAWA,IAAYE,SAASC,KACjC,OAAO,EAEX,IAAIi0I,EAEJp0I,EAAQq0I,SAAWr0I,EAAQs0I,uBAAyBt0I,EAAQu0I,kBAC5D,QAAKH,IAGEA,EAAkB1tI,KAAK1G,EAASm0I,IAAantI,KAAK0rI,iBAAiB1yI,EAAQkK,cAAeiqI,GACrG,EAKAhC,EAAc1rI,UAAUstI,sBAAwB,SAAUS,GACtD,QAAsBzuI,IAAlBiB,KAAK4rI,SAGT,IAAK,IAAI9rI,EAAI,EAAGA,EAAI0tI,EAAU9xI,OAAQoE,IAClC,GAAI0tI,EAAU1tI,GAAGotI,aAAeltI,KAAK4rI,SACjC,OAAO4B,EAAU1tI,EAI7B,EAKAqrI,EAAc1rI,UAAUusI,4BAA8B,SAAU9qH,GAC5D,IAAIgrH,EAAelsI,KAAK/E,MAAMixI,aAG9B,YAAqBntI,IAAjBmtI,EACO,CACHuB,MAAO,CAAE9lI,EAAG,EAAG+yB,EAAG,GAClBwxG,aAAchrH,EACdA,SAAUA,GAGX,CACHusH,MAAO,CACH9lI,EAAGuZ,EAASvZ,EAAIukI,EAAavkI,EAC7B+yB,EAAGxZ,EAASwZ,EAAIwxG,EAAaxxG,GAEjCwxG,aAAcA,EACdhrH,SAAUA,EAElB,EAKAiqH,EAAc1rI,UAAU4sI,uBAAyB,SAAUG,GACvD,IAAItrH,EAAWlhB,KAAK/E,MAAMimB,SAC1B,MAAO,CACHA,SAAU,CACNvZ,EAAGuZ,EAASvZ,EAAI6kI,EAAaiB,MAAM9lI,EACnC+yB,EAAGxZ,EAASwZ,EAAI8xG,EAAaiB,MAAM/yG,GAEvC+yG,MAAOjB,EAAaiB,MACpBvB,aAAchrH,EAEtB,EACOiqH,CACX,CA3PkC,CA2PhC,a,6EC7PEuC,EAAO,CAAE/lI,EAAG,EAAG+yB,EAAG,GAClBqC,EAAgB,CAChB4f,QAAQ,EACRoyD,eAAe,EACfnxG,UAAW,GACXqxG,mBAAoB,GACpBE,0BAA0B,GAE1B,GAAgB,EAAAv1F,EAAA,KAsBT+zH,EAAY,cAAiB,SAAUzuG,EAAsB5zB,GACpE,IAAIlR,EAAI2H,EAAIC,EAAIC,EAAIid,EAChB5jB,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAC5C0uG,EAAuBtyI,EAAMsyI,qBAAsBhwI,EAAYtC,EAAMsC,UAAWlB,EAAWpB,EAAMoB,SAAUuyG,EAAqB3zG,EAAM2zG,mBAAoB4+B,EAA6BvyI,EAAMuyI,2BAA4Bv9B,EAA0Bh1G,EAAMg1G,wBAAyBC,EAAyBj1G,EAAMi1G,uBAAwB8K,EAAqB//G,EAAM+/G,mBAAoB7K,EAAuBl1G,EAAMk1G,qBAEzZ/+E,EAAKn2B,EAAMm1G,oBAEXA,OAA6B,IAAPh/E,EAAgBn2B,EAAMo1G,uBAAyBj/E,EAAIu9E,EAAa1zG,EAAM0zG,WAAY8+B,EAAUxyI,EAAMwyI,QAAShuD,EAA8BxkF,EAAMwkF,4BAA6BivB,EAAgBzzG,EAAMyzG,cAAejlF,EAAYxuB,EAAMwuB,UAAWib,EAAazpC,EAAMypC,WAAYgpG,EAAUzyI,EAAMyyI,QAASpxF,GAASrhD,EAAMqhD,OAAQszD,GAAc30G,EAAM20G,YAAa50G,GAASC,EAAMD,OAAQw0G,GAAiBv0G,EAAMu0G,eAAgB30G,GAAQI,EAAMJ,MAAOg0G,GAAiB5zG,EAAM4zG,eAAgBv1C,GAAiBr+D,EAAMq+D,eAErgBi3C,GAAkBt1G,EAAMs1G,gBAAiBo9B,GAAa1yI,EAAM0yI,WAAY59B,GAAc90G,EAAM80G,YAAaO,GAAcr1G,EAAMq1G,YAE7HxB,GAA2B7zG,EAAM6zG,yBAA0BxvE,GAAarkC,EAAMqkC,WAC1EI,GAAU,SAAa,MACvBkuG,GAAgB,SAAa,MAC7BC,IAAmB,EAAAp8H,EAAA,GAAcm8H,GAAe5yB,aAA+D,EAASA,EAAmBj+F,cAC3I+wH,GAAmB,SAAa,MAChClW,IAAY,EAAAnmH,EAAA,GAAciuB,GAASz0B,GACnC8iI,IAAsB,EAAAx0E,EAAA,GAAkBq+D,IACxCoW,IAAkB,EAAA18H,EAAA,GAAM,qBAAsB0pG,aAA+D,EAASA,EAAmB9nG,IACzI6+B,IAAM,UACN1gB,IAAK,EAAAte,EAAA,KAAiBK,GAAaie,GAAGje,WAAYD,GAAeke,GAAGle,aACpEme,GAAK,WAAegrB,IAAS2xF,GAAc38G,GAAG,GAAI48G,GAAiB58G,GAAG,GACtEC,GAAK,WAAe+qB,IAASsyC,GAAYr9D,GAAG,GAAI48G,GAAe58G,GAAG,GAClEW,GAAK,WAAem7G,GAAOe,GAAcl8G,GAAG,GAAIm8G,GAAiBn8G,GAAG,GACpEC,GAAK,aAAkBm8G,GAAoBn8G,GAAG,GAAIo8G,GAAuBp8G,GAAG,GAC5EC,IAAK,EAAAjiB,EAAA,IAAW,GAAQq+H,GAAkBp8G,GAAG,GAAIC,GAAKD,GAAG,GAAIq8G,GAAsBp8G,GAAG7hB,OAAQk+H,GAAoBr8G,GAAG9hB,SACrHo8F,IAAgB,EAAAj8F,EAAA,IAAS,WAAc,MAAO,CAC9Ci+H,kBAAmB,EACnBpB,qBAAsBA,EACtBhD,kBAAmB,KACnBqE,mBAAoBvB,EACpBwB,OAAQ,IAAI9iH,EAAA,EAAW,CAAC,GACxB,IACA+iH,IAAgB/+B,IAAe,CAAC,GAAG++B,aACnCC,GAActB,QAAyCA,EAAW9+B,IAAeg/B,GACjFqB,QAAgCtwI,IAAfgmC,EAA2B,GAAKA,EAAWnnC,UAC5DH,GAAa,EAAcpC,GAAQ,CACnCH,MAAOA,GACP0C,UAAWA,EACXqxG,mBAAoBA,EACpB4+B,2BAA4BA,EAC5BlxF,OAAQA,GACRsyC,UAAWA,GACXqgD,cAAetiC,GAAcsiC,cAC7BX,kBAAmBA,GACnBz/B,eAAgBA,GAChB8+B,WAAYA,GACZqB,eAAgBA,GAChBE,kBAAmBn9F,cAAiC,EAASA,GAAIvW,YACjE2zG,oBAAqBp/B,KAAgBA,GAAYU,qBAEjDD,IAAmB,SAAS,QAAS,CAAE2nB,sBAAsB,GAASzzF,GAAa,CAAE6rE,gBAAiB7rE,GAAcA,EAAW6rE,gBAAkB7rE,EAAW6rE,gBAAkBA,GAAiB+nB,aAAc5zF,aAA+C,EAASA,EAAW4zF,cAAgBqV,GAAYpwI,UAAWH,GAAWotI,QAElU4E,GAAqB,eAAkB,SAAUC,GAC7CA,EACI1iC,GAAc4gC,sBACd,QAAyB8B,EAAK1iC,GAAckiC,SAG5C,QAAqBQ,EAAK1iC,GAAckiC,QAI5CliC,GAAckiC,OAAOnqD,IAAIioB,GAAc49B,mBAE3C59B,GAAc49B,kBAAoB8E,CACtC,GAAG,CAAC1iC,KACA2iC,GAA+B,WAC/B,IAAIC,EAAazB,GAAiBhrI,QAC9B0sI,EAAiBD,aAA+C,EAASA,EAAW3hI,wBACpF4hI,IACI3gC,IACA0/B,GAAqBiB,EAAe9nI,KAEpConI,KAEAniC,GAAc8iC,YAAc,CAAEnoI,GAAIkoI,EAAexqI,KAAMq1B,GAAIm1G,EAAe9nI,KAC1EilG,GAAc+iC,YAAc,CAAEpoI,EAAGkoI,EAAexqI,KAAMq1B,EAAGm1G,EAAe9nI,MAGpF,EAOIioI,GAAiB,eAAkB,SAAUC,EAAM/uH,GACnD,IAAI4uH,EAAc9iC,GAAc8iC,YAAaC,EAAc/iC,GAAc+iC,YAKzE,OAJIZ,IAAgBW,GAAeC,IAC/B7uH,EAAWrZ,KAAKsgD,IAAI2nF,EAAYG,GAAO/uH,GACvCA,EAAWrZ,KAAKugD,IAAI2nF,EAAYE,GAAO/uH,IAEpCA,CACX,GAAG,CAACiuH,GAAcniC,KACdkjC,GAAmB,WACnB,IAAI91I,EACJ4yG,GAAciiC,mBAAqBvB,EACnCqB,KACA/hC,GAAcmjC,sBAAuB,EACrC5B,IAAe,GACfG,GAAehB,GACyB,QAAvCtzI,EAAK4yG,GAAcojC,sBAAmC,IAAPh2I,GAAyBA,EAAGsF,KAAKstG,IACjF2D,UAA0DA,IAC9D,EACI0/B,GAAkB,eAAkB,WACpCtB,KACA/hC,GAAcmjC,sBAAuB,CACzC,GAAG,CAACnjC,GAAe+hC,KACfuB,GAAa,eAAkB,SAAU3vI,EAAIorI,GAC7C2C,IAAe,SAAU/b,GAAa,MAAO,CACzChrH,EAAGqoI,GAAe,IAAKrd,EAAUhrH,EAAIokI,EAAS0B,MAAM9lI,GACpD+yB,EAAGs1G,GAAe,IAAKrd,EAAUj4F,EAAIqxG,EAAS0B,MAAM/yG,GACpD,GACR,GAAG,CAACs1G,KACAO,GAAiB,eAAkB,WAC/BtC,GAAc9qI,SACd8qI,GAAc9qI,QAAQE,OAE9B,GAAG,IAqGH,aAAgB,WArBO,IACfmtI,EAqBJh9H,GAAaw5F,GAAcgiC,mBAEvBryF,KAEA1e,uBAAsB,WAAc,OAAOxqB,GAAWk8H,GAA8B,EAAI,IACxFpB,IAAe,GAEXn+B,KA5BJogC,EAAc,SAAU7vI,GAIpBA,EAAGM,QAAUN,EAAGG,SAAWH,EAAGwlD,UAAYlhD,EAAA,EAASC,QAC/C,EAAA1M,EAAA,GAAgBw0G,GAAc49B,kBAAmBjqI,EAAGjH,UACpDo1I,KACAnuI,EAAGyG,iBACHzG,EAAG+C,kBAGf,EACKspG,GAAcojC,iBACfpjC,GAAckiC,OAAOl8H,GAAGo/B,GAAK,QAASo+F,GAAa,GACnDxjC,GAAcojC,eAAiB,WAC3BpjC,GAAckiC,OAAOnqD,IAAI3yC,GAAK,QAASo+F,GAAa,GACpDxjC,GAAcojC,oBAAiBrxI,CACnC,IAcAiuG,GAAcsiC,eAAgB,EAC9Bd,IAAa,KAGZ7xF,IAAU2xF,KACXthC,GAAcgiC,kBAAoBv7H,GAAWy8H,GAAkD,IAAhC1hI,WAAW++F,IAC1EihC,IAAa,GAGrB,GAAG,CAACF,GAAa3xF,MACjB,EAAAxoC,EAAA,IAAW,WACP64F,GAAckiC,OAAO3+H,SACzB,IA5PkB,SAAUjV,EAAO2yI,GACnC,sBAA0B3yI,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,WACC4qI,EAAc9qI,SACd8qI,EAAc9qI,QAAQE,OAE9B,EACA,GAAG,CAAC4qI,GACZ,CAqPI3mG,CAAgBhsC,EAAO2yI,IAEvB,IAAIwC,GAAgB,gBAAoB5wD,EAAA,GAAe,QAAS,CAAC,EAAGw7B,EAAoB,CAAE9nG,GAAI86H,GAAiB/iI,IAAK6iI,GAAkB/wH,aAAc8wH,GAAkBtwI,WAAW,EAAAsN,EAAA,GAAIzN,GAAW6zG,KAAM+J,aAA+D,EAASA,EAAmBz9G,WAAY0yG,wBAAuJ,QAA7Hl2G,EAAKihH,aAA+D,EAASA,EAAmB/K,+BAA4C,IAAPl2G,EAAgBA,EAAKk2G,EAAyBxwB,4BAA+J,QAAjI/9E,EAAKs5G,aAA+D,EAASA,EAAmBv7B,mCAAgD,IAAP/9E,EAAgBA,EAAMisI,IAAcluD,IAAgCkvB,EAAayB,oBAA+I,QAAzHzuG,EAAKq5G,aAA+D,EAASA,EAAmB5K,2BAAwC,IAAPzuG,EAAgBA,EAAKyuG,EAAqBD,sBAAkJ,QAA1HvuG,EAAKo5G,aAA+D,EAASA,EAAmB7K,4BAAyC,IAAPvuG,EAAgBA,EAAKuuG,KAA0Bw9B,GAExnCz9B,wBAAyB8K,aAA+D,EAASA,EAAmB9K,yBAA2BA,EAAwByU,mCAA6K,QAAxI9lG,EAAKm8F,aAA+D,EAASA,EAAmB2J,0CAAuD,IAAP9lG,GAAgBA,EAAWmsB,OAAQ2hE,GAAcmjC,qBAxDhX,SAAUxvI,GACvC,IAAIvG,EAAI2H,EACqG,QAA5G3H,EAAKihH,aAA+D,EAASA,EAAmBhwE,cAA2B,IAAPjxC,GAAyBA,EAAGsF,KAAK27G,EAAoB16G,GAC1KqsG,GAAciiC,mBAAqBvB,EACnC1gC,GAAcmjC,sBAAuB,EACK,QAAzCpuI,EAAKirG,GAAc0jC,wBAAqC,IAAP3uI,GAAyBA,EAAGrC,KAAKstG,GACvF,OAkDqcjuG,IACjcqxG,IAAepD,GAAcmjC,sBAAyB,gBAAoB,MAAO,CAAEvyI,UAAWH,GAAWkzI,2BAA6BvgC,GAAYwgC,sBAAyB,gBAAoB31H,EAAA,GAAM,QAAS,CAAC,EAAGm1F,GAAYwgC,wBAA4B,gBAAoB31H,EAAA,EAAM,CAAEwB,SAAU,OAAQ7e,UAAWH,GAAWozI,oBAC9T,gBAAoB,MAAO,CAAEvlI,IAAKmkI,GAAoB7xI,UAAWH,GAAWmtI,kBAAmB,sBAAsB,GACjHx6B,IAAey+B,IAAoB,gBAAoBz+B,GAAY0gC,KAAM,CAAE5zH,MAAO,CAC1E,CAAExB,IAAK,OAAQjC,KAAM22F,GAAY2gC,iBAAkBj4H,QApIjC,WAG9B,IAAIk4H,EAAgB,SAAUrwI,GAE1B,GAAIA,EAAGM,QAAUN,EAAGG,SAAWH,EAAGwlD,UAAYlhD,EAAA,EAASC,MAInD,OAFAvE,EAAGyG,sBACHzG,EAAG+C,kBAIP,IAAIutI,EAAWtwI,EAAGM,QAAUN,EAAGwlD,UAAYlhD,EAAA,EAAS4gD,OAUpD,GATIgpF,IAAmBoC,GACnBlC,MAGA/hC,GAAcmjC,sBAAyBxvI,EAAGwlD,UAAYlhD,EAAA,EAAS4gD,QAAUllD,EAAGwlD,UAAYlhD,EAAA,EAASiC,QACjG8lG,GAAcmjC,sBAAuB,EACrCxvI,EAAGyG,iBACHzG,EAAG+C,mBAEHspG,GAAcmjC,qBAAsB,CACpC,IAAIe,GAAe,EACfC,EArKD,SAAUxwI,GACzB,IAAI8sI,EAAQ,GASZ,OARI9sI,EAAGK,SACEL,EAAGG,UACJ2sI,EAAQ,IAGP9sI,EAAGG,UACR2sI,EAAQ,GAELA,CACX,CA0J8B2D,CAAazwI,GAE3B,OAAQA,EAAGwlD,SAEP,KAAKlhD,EAAA,EAAS4gD,OACV6oF,GAAe1hC,GAAciiC,oBACjC,KAAKhqI,EAAA,EAASiC,MAGV8lG,GAAciiC,mBAAqBvB,EAEnC,MAEJ,KAAKzoI,EAAA,EAASU,GACV+oI,IAAe,SAAU/b,GAAa,MAAO,CAAGhrH,EAAGgrH,EAAUhrH,EAAG+yB,EAAGs1G,GAAe,IAAKrd,EAAUj4F,EAAIy2G,GAAa,IAClH,MAEJ,KAAKlsI,EAAA,EAASa,KACV4oI,IAAe,SAAU/b,GAAa,MAAO,CAAGhrH,EAAGgrH,EAAUhrH,EAAG+yB,EAAGs1G,GAAe,IAAKrd,EAAUj4F,EAAIy2G,GAAa,IAClH,MAEJ,KAAKlsI,EAAA,EAASI,KACVqpI,IAAe,SAAU/b,GAAa,MAAO,CAAGhrH,EAAGqoI,GAAe,IAAKrd,EAAUhrH,EAAIwpI,GAAUz2G,EAAGi4F,EAAUj4F,EAAM,IAClH,MAEJ,KAAKz1B,EAAA,EAASQ,MACVipI,IAAe,SAAU/b,GAAa,MAAO,CAAGhrH,EAAGqoI,GAAe,IAAKrd,EAAUhrH,EAAIwpI,GAAUz2G,EAAGi4F,EAAUj4F,EAAM,IAClH,MAEJ,QACIw2G,GAAe,EAGnBA,IACAvwI,EAAGyG,iBACHzG,EAAG+C,kBAEX,CACJ,EACAspG,GAAciiC,mBAAqBR,GACnCM,KACA/hC,GAAcmjC,sBAAuB,EACrCnjC,GAAckiC,OAAOl8H,GAAGo/B,GAAK,UAAW4+F,GAAe,GACvDhkC,GAAc0jC,iBAAmB,WAC7B1jC,GAAckiC,OAAOnqD,IAAI3yC,GAAK,UAAW4+F,GAAe,GACxDhkC,GAAc0jC,sBAAmB3xI,CACrC,CACJ,GA8DgB,CAAE2c,IAAK,QAASjC,KAAM22F,GAAYihC,kBAAmBv4H,QAASo3H,KAC/DpmH,UAAWilH,GAAmB51G,iBAAiB,EAAMlB,aAAa,EAAM9a,gBAAiB3I,EAAA,EAAgBC,YAAaykB,sBAAsB,EAAMnvB,oBAAoB,EAAMrQ,OAAQszG,GAAc49B,oBACzMluI,IACR,OAAS4xI,IAAeF,KAAwBz0E,IAAkB,KAAet4C,QAAW,gBAAoBijB,EAAA,GAAO,QAAS,CAAEh5B,IAAK2sH,IAAapnB,IAChJ,gBAAoBptE,EAAA,GAAO,QAAS,CAAEzmB,KAAMoyH,GAAc,cAAgB,SAAUtkI,eAAgBmlG,GAAaplG,gBAAiBglG,GAAgB/lF,UAAWA,EAAWpd,oBAAqB+jG,EAGzLtB,yBAA0BA,GAA0B,cAAe6+B,IAAcruG,IACjF,gBAAoB,MAAO,CAAE/hC,UAAWH,GAAWgM,KAAMuT,KAAOgxH,QAA0BjvI,EAAb,aACxEivI,IAAe,gBAAoBsD,EAAA,GAAS,QAAS,CAAE,eAAe,EAAMC,aAAcxiC,EAAej2F,QAASk2F,OAAajwG,EAAY+qB,EAAW8jH,qBAAsBA,GAAwBG,IACrM39B,GAAe,gBAAoB+6B,EAAe,CAAEM,eAAgBr7B,GAAYU,oBAAsB,IAAIt+F,OAAO67H,IAAkB1C,oBAAqB,SAAUM,QAASoE,GAAiB9D,aAAc+D,GAAY7D,OAAQ8D,GAAgBrvH,SAAUutH,IAAegC,IAAiB,OAChS,IACR,IACA9C,EAAUlzI,YAAc,QCnTjB,IAAI42G,GAAQ,EAAApyF,EAAA,GAAO0uH,GJMH,SAAUryI,GAC7B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAWqxG,EAAqB3zG,EAAM2zG,mBAAoB4+B,EAA6BvyI,EAAMuyI,2BAA4BlxF,EAASrhD,EAAMqhD,OAAQsyC,EAAY3zF,EAAM2zF,UAAWqgD,EAAgBh0I,EAAMg0I,cAAeX,EAAoBrzI,EAAMqzI,kBAAmBzzI,EAAQI,EAAMJ,MAAOg0G,EAAiB5zG,EAAM4zG,eAAgB8+B,EAAa1yI,EAAM0yI,WAAYqB,EAAiB/zI,EAAM+zI,eAAgBG,EAAsBl0I,EAAMk0I,oBAAqBD,EAAoBj0I,EAAMi0I,kBAC9dpwH,EAAUjkB,EAAMikB,QAAS0Q,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAChE3hB,GAAa,QAAoBstG,EAAkB7vG,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACN,CACIN,gBAAiB,cACjBW,SAAU,QACVhS,OAAQ,OACR9G,MAAO,OACP2Y,QAAS,OACTC,WAAY,SACZgC,eAAgB,SAChB4Z,QAAS,EACTtI,cAAe,OACfgzD,WAAY,WAAW90E,OAAO+6F,IAElC2B,GACiC,iBAAtBy/B,GACPW,GAAiB,CACjBtuH,WAAY,cAEhB27B,GAAUl/C,EAAWk/C,OACrBsyC,GAAa,CACTryD,QAAS,GAEbqyD,IACK++C,GAAc,CACf15G,cAAe,QAEnB12B,GAEJ0zG,KAAM,CACF7zG,EAAW6zG,KACX,CACI/sE,UAAW1U,EAAQ2hH,YACnBphH,aAAcP,EAAQQ,eACtB9P,gBAAiBpB,EAAQiS,MACzBd,UAAW,aACXpP,SAAU,WACVyO,UAAW,OACXtkB,QAAS,wBACTkzB,UAAW,oBACX7K,SAAU,oBACVC,UAAW,QACXb,SAAU,QACVsQ,UAAW,OACXiB,OAAQ2pG,EAAa,KAAS1pG,WAAQvlC,GAE1CivI,GAAc,CACV15G,cAAe,QAEnB46E,GACiC,iBAAtBy/B,GACPW,GAAiB,CACjBvnI,IAAK4mI,GAETa,GAAuB,CACnB93H,OAAQ,QAEZu3F,GAEJ27B,kBAAmB,CACfntI,EAAWmtI,kBACX,CACIxnG,UAAW,OACX9f,SAAU,EACVib,UAAW,QACXnzB,WAAYhR,EAAK,CAAC,EACdA,EAAG,iDAAmD,CAClDmkC,UAAWgxG,GAEfn1I,IAERyzI,GAEJhD,MAAOmD,GAAc,CAACqB,EAAgB5xI,EAAWotI,MAAO,CAAEv2G,cAAe,SACzEq8G,0BAA2B,CACvBzvH,SAAU,WACVH,QAAS,OACTiC,eAAgB,SAChB5a,MAAO,OACPsY,QAAS,WAEbmwH,iBAAkB,CAEdjwH,SAAUxB,EAAMqyH,WAAW7wH,SAC3BxY,MAAO,QAGnB,QIpGgDrJ,EAAW,CACvD0iB,MAAO,QACP9mB,OAAQ,CAAC,QAAS,SAAU,8BAEhC02G,EAAM52G,YAAc,O,uCCMhBi3I,E,uDCZAhzH,EAAmB,CACnBjV,KAAM,SACNkoI,SAAU,kBACVC,cAAe,uBACfx9G,KAAM,cACNy9G,cAAe,uBACfC,YAAa,iBACbC,QAAS,iBACTC,SAAU,kBACVr7C,MAAO,eACPs7C,aAAc,uBAEPjlF,EAAe,CACtB3pC,cAAe,CACXvG,SAAU,UAEdyI,MAAO,CACH3G,WAAY,SACZC,aAAc,WACd/B,SAAU,W,kGDFdnD,GAAgB,EAAAC,EAAA,KAChBs4H,EAAyB,SAAUpwI,GAEnC,SAASowI,EAAQ52I,GACb,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAuDxC,OAtDAkC,EAAMiY,WAAa,cACnBjY,EAAMiwI,cAAgB,SAAU/9G,GAC5B,IAAIh6B,EAAK8H,EAAM5G,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQh4F,EAAQd,EAAGc,MACrEuC,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAOg4F,OAAQA,IAC/D,OAAO,gBAAoB,MAAO,CAAEt1F,UAAWH,EAAWk0I,UAAYv9G,EAAKp4B,KAC/E,EACAkG,EAAM2pH,aAAe,SAAUl1B,EAAOqC,GAClC,IAAI5+F,EAAK8H,EAAM5G,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQh4F,EAAQd,EAAGc,MAAO6G,EAAK3H,EAAGyvH,oBAAqBA,OAA6B,IAAP9nH,EAAgBG,EAAMkwI,mBAAqBrwI,EAC1KyiB,EAAatiB,EAAMmwI,iBAAiB17C,GACpCl5F,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPivH,SAAS,EACT3lG,WAAYA,EACZ0uE,OAAQA,IAKRj2B,GAAa,SAAS,QAAS,CAAC,EAAG05B,GAAQ,CAAEnyE,WAAYA,EAAY8tH,cAHhD,SAAU3xI,EAAI4xI,GACnCrwI,EAAMswI,sBAAsB77C,EAAOh2F,EACvC,IAEA,OAAQ,gBAAoB,MAAO,CAAE+a,IAAKs9E,EAAYp7F,UAAWH,EAAWk5F,OACxE15B,EAAWjhE,KAAO6tH,EAAoB5sD,EAAY/6D,EAAMkwI,oBAAsB,KAC9E,gBAAoB,MAAO,CAAEx0I,UAAWH,EAAWw0I,cAAgB/vI,EAAMuwI,aAAax1E,EAAWy1E,MAAO,IAChH,EACAxwI,EAAMkwI,mBAAqB,SAAUz7C,GACjC,IAAIv8F,EAEA2H,EAAKG,EAAM5G,MAAOD,EAAS0G,EAAG1G,OAAQ63F,EAASnxF,EAAGmxF,OAAQh4F,EAAQ6G,EAAG7G,MAAOy3I,EAAwB5wI,EAAG4wI,sBACvGnuH,EAAamyE,EAAMnyE,WACnB/mB,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPivH,SAAS,EACT3lG,WAAYA,EACZ0uE,OAAQA,IAIR0/C,EAAuD,QAAlCx4I,EAAKu8F,EAAMi8C,yBAAsC,IAAPx4I,EAAgBA,EAAKu8F,EAAMk8C,gBAC1FttH,GAASf,EAAaouH,EAAoBj8C,EAAMk8C,kBAAoBF,EACpEL,EAAgB37C,EAAM27C,cACtBx5H,EAAUw5H,EACR,SAAU3xI,GACR2xI,EAAc3xI,EAAI6jB,EACtB,OACEzlB,EACN,OAAQ,gBAAoB,SAAU,CAAEnB,UAAWH,EAAWo0I,cAAe/4H,QAASA,EAAS,aAAcyM,EAAO,gBAAiBf,GACjI,gBAAoBvJ,EAAA,EAAM,CAAErd,UAAWH,EAAWq0I,YAAar1H,SAAU,gBACzEk6E,EAAM36F,KACd,GACA,EAAAsM,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CACV63I,iBAAkB,CAAC,EACnBC,0BAA0B,EAC1BzkG,YAAahzC,EAAM03I,oBAAsB13I,EAAMgzC,aAE5CpsC,CACX,CAuNA,OAjRA,QAAUgwI,EAASpwI,GA2DnBowI,EAAQzyI,UAAUxB,OAAS,WACvB,IAAI7D,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQt1F,EAAYxD,EAAGwD,UAAWq1I,EAAU74I,EAAG64I,QAASlxI,EAAK3H,EAAG4iB,KAAMA,OAAc,IAAPjb,EAAgB,aAAeA,EAAI7G,EAAQd,EAAGc,MAChL,IAAKg4F,EACD,OAAO,KAEX,IAAIggD,EAAgBhgD,EAAOt3F,IAAIoE,KAAK6rH,cAChCpuH,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAO0C,UAAWA,EAAWq1I,QAASA,EAAS//C,OAAQA,IACvG,OAAQ,gBAAoBrxF,EAAA,GAAW,QAAS,CAAEsC,UAAW,IAAmBmB,SAAU8X,aAAcpd,KAAKma,YAAcna,KAAK1E,MAAM+hB,gBAClI,gBAAoB,MAAO,CAAEL,KAAMA,EAAMpf,UAAWH,EAAWgM,KAAM,aAAczJ,KAAK1E,MAAMwf,WAAao4H,GACnH,EACA7zI,OAAOgN,eAAe6lI,EAAQzyI,UAAW,cAAe,CACpD6M,IAAK,WACD,OAAOtM,KAAK/E,MAAMqzC,WACtB,EACA/hC,YAAY,EACZC,cAAc,IAQlB0lI,EAAQzyI,UAAU4D,MAAQ,SAAUoI,GAEhC,YAD8B,IAA1BA,IAAoCA,GAAwB,MAC5DzL,KAAKma,aAAcna,KAAKma,WAAWhX,UAC5BnD,KAAKma,WAAWhX,QAAQE,MAAMoI,EAG7C,EACAymI,EAAQzyI,UAAU0zI,eAAiB,SAAU/+G,EAAMg/G,EAAWC,GAC1D,IAhGsBC,EAgGlBl5I,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQh4F,EAAQd,EAAGc,MACpEq4I,EAAiBn/G,EAAKnR,MAAQmR,EAAK1X,UACnC82H,EAAiBxzI,KAAKyzI,gBAAgBr/G,GACtCryB,EAAKqyB,EAAKs/G,YAAaA,OAAqB,IAAP3xI,EAAgB,OAASA,EAC9DtE,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPk+C,WAAYo6F,EACZlkF,WAAYl7B,EAAKtwB,SACjB6vI,cAAev/G,EAAKtb,UAAYsb,EAAKw/G,YACrCC,YA9GW,GA8GqBR,EA5G1B,GA4GwDE,EAAiB,EAAI,IACnFrgD,OAAQA,IAGR3+B,EAAMngC,EAAKk/G,KAAOl/G,EAAK16B,WA7GL45I,EA6G8Bl/G,EAAKk/G,MA3G5C,sBAAsBt7F,KAAKs7F,IA2GwB,2BAAwBv0I,EACpF+0I,EAAS9zI,KAAK1E,MAAMy4I,QAAS,EAAApqH,EAAA,GAAmB3pB,KAAK1E,MAAMy4I,OAAQryH,EAAA,GAAgBA,EAAA,EACnFsyH,EAAeh0I,KAAK1E,MAAM04I,cACxB,EAAA33H,EAAA,GAAsBrc,KAAK1E,MAAM04I,aAAch0I,KAAKmyI,eACpDnyI,KAAKmyI,cACX,OAAQ,gBAAoB2B,EAAQ,CAAEl2I,UAAWH,EAAW22B,KAAM/4B,OAAQ2xD,EAAcvxC,KAAM2Y,EAAKk/G,MAAQl/G,EAAKw/G,YAAc,SAAM70I,GAAY2d,UAAW0X,EAAK1X,WAAa,CAAED,SAAU2X,EAAKnR,MAE1LnK,QAASsb,EAAKtb,QAAU9Y,KAAKi0I,wBAAwBr4H,KAAK5b,KAAMo0B,GAAQp0B,KAAKk0I,wBAAwBt4H,KAAK5b,KAAMo0B,GAAO9N,WAAsBvnB,IAAfq1B,EAAK9N,MAAsB8N,EAAK9N,MAAQ8N,EAAKp4B,KAAMtC,OAAQ06B,EAAK16B,OAAQ66D,IAAKA,EAAKzwD,SAAUswB,EAAKtwB,SAAU,eAAgB0vI,EAAiBE,OAAc30I,EAAW,aAAcq1B,EAAKtZ,UAAYsZ,EAAKtZ,eAAY/b,EAAWq1B,KAAMA,GAAQ4/G,EAAa5/G,GACjY,EACA89G,EAAQzyI,UAAU00I,qBAAuB,SAAU//G,EAAMg/G,EAAWC,GAChE,IAAIj5I,EACA2Q,GAAW,QAAS,CAAC,GAAG,QAAeqpB,EAAM,KAAe,CAAC,aAE7DryB,EAAK/B,KAAK1E,MAAOq3I,EAAwB5wI,EAAG4wI,sBAAuBt3I,EAAS0G,EAAG1G,OAAQ63F,EAASnxF,EAAGmxF,OAAQh4F,EAAQ6G,EAAG7G,MACtHuC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPspB,aAAc4P,EAAK5P,WACnB40B,WAAYp5C,KAAKyzI,gBAAgBr/G,GACjCggH,QAAQ,EACR9kF,WAAYl7B,EAAKtwB,SACjBod,SAtIW,GAsIkBmyH,EAAe,EAC5CngD,OAAQA,IAERmhD,EAA0B,GAC9B,GAAIjgH,EAAKs+G,OAASt+G,EAAKs+G,MAAMh3I,OAAS,EAClC,GAAI04B,EAAKw+G,mBAAqBx+G,EAAKy+G,gBAAiB,CAEhD,IAAID,EAAsD,QAAjCx4I,EAAKg6B,EAAKw+G,yBAAsC,IAAPx4I,EAAgBA,EAAKg6B,EAAKy+G,gBAC5FwB,EAA0BjgH,EAAK5P,WAAaouH,EAAoBx+G,EAAKy+G,eACzE,MAGIwB,EAA0B1B,EAAwB,GAAGngI,OAAO4hB,EAAKp4B,KAAM,KAAKwW,OAAOmgI,GAAyBv+G,EAAKp4B,KAGzH,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAG+O,EAAU,CAAE2Q,IAAK0Y,EAAK1Y,KAAO03H,EAAWx1I,UAAWH,EAAWm0I,gBAC1Gx9G,EAAKs+G,OAASt+G,EAAKs+G,MAAMh3I,OAAS,EAAK,gBAAoB,SAAU,CAAEkC,UAAWH,EAAWo0I,cAAe/4H,QAAS9Y,KAAKs0I,qBAAqB14H,KAAK5b,KAAMo0B,GAAO,aAAcigH,EAAyB,gBAAiBjgH,EAAK5P,WAAa,OAAS,SAChP,gBAAoBvJ,EAAA,EAAM,CAAErd,UAAWH,EAAWq0I,YAAar1H,SAAU,iBAAqB,KAClGzc,KAAKmzI,eAAe/+G,EAAMg/G,EAAWC,GAC7C,EACAnB,EAAQzyI,UAAU80I,YAAc,SAAUngH,EAAMg/G,EAAWC,GACvD,IAAIj5I,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQh4F,EAAQd,EAAGc,MACpEuC,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAOg4F,OAAQA,IAC/D,OAAQ,gBAAoB,KAAM,CAAEx3E,IAAK0Y,EAAK1Y,KAAO03H,EAAWp2H,KAAM,WAAYpf,UAAWH,EAAWs0I,SACpG/xI,KAAKm0I,qBAAqB//G,EAAMg/G,EAAWC,GAC3Cj/G,EAAK5P,WAAaxkB,KAAKyyI,aAAar+G,EAAKs+G,QAASW,GAAgB,KAC1E,EACAnB,EAAQzyI,UAAUgzI,aAAe,SAAUC,EAAOW,GAC9C,IAAInxI,EAAQlC,KACZ,IAAK0yI,IAAUA,EAAMh3I,OACjB,OAAO,KAEX,IAAI84I,EAAe9B,EAAM92I,KAAI,SAAUw4B,EAAMg/G,GACzC,OAAOlxI,EAAMqyI,YAAYngH,EAAMg/G,EAAWC,EAC9C,IACIj5I,EAAK4F,KAAK1E,MAAOD,EAASjB,EAAGiB,OAAQ63F,EAAS94F,EAAG84F,OAAQh4F,EAAQd,EAAGc,MACpEuC,EAAakc,EAActe,EAAQ,CAAEH,MAAOA,EAAOg4F,OAAQA,IAC/D,OAAQ,gBAAoB,KAAM,CAAEl2E,KAAM,OAAQpf,UAAWH,EAAWu0I,UAAYwC,EACxF,EACAtC,EAAQzyI,UAAU+yI,sBAAwB,SAAU77C,EAAOh2F,GACnDg2F,EAAM27C,eACN37C,EAAM27C,cAAc3xI,EAAIX,KAAKqyI,iBAAiB17C,SAEzB53F,IAArB43F,EAAMnyE,YACNxkB,KAAKy0I,iBAAiB99C,GAEtBh2F,IACAA,EAAGyG,iBACHzG,EAAG+C,kBAEX,EACAwuI,EAAQzyI,UAAU60I,qBAAuB,SAAUlgH,EAAMzzB,GACrD,IAAI+zI,EAAoB10I,KAAK1E,MAAMo5I,kBAC/BA,GACAA,EAAkB/zI,EAAIyzB,GAErBzzB,EAAGopB,mBACJqK,EAAK5P,YAAc4P,EAAK5P,WACxBxkB,KAAK4V,SAAS,CAAEm9H,0BAA0B,KAE9CpyI,EAAGyG,iBACHzG,EAAG+C,iBACP,EACAwuI,EAAQzyI,UAAUk1I,eAAiB,SAAUvgH,EAAMzzB,IAC1CyzB,EAAKk/G,KAAOl/G,EAAKw/G,aAClBjzI,EAAGyG,gBAEX,EACA8qI,EAAQzyI,UAAUy0I,wBAA0B,SAAU9/G,EAAMzzB,GAExDX,KAAK20I,eAAevgH,EAAMzzB,GACtBX,KAAK1E,MAAMs5I,aACX50I,KAAK1E,MAAMs5I,YAAYj0I,EAAIyzB,IAE1BA,EAAKk/G,KAAOl/G,EAAKs+G,OAASt+G,EAAKs+G,MAAMh3I,OAAS,GAC/CsE,KAAKs0I,qBAAqBlgH,EAAMzzB,GAEpCX,KAAK4V,SAAS,CAAE04B,YAAala,EAAK1Y,KACtC,EACAw2H,EAAQzyI,UAAUw0I,wBAA0B,SAAU7/G,EAAMzzB,GAExDX,KAAK20I,eAAevgH,EAAMzzB,GACtByzB,EAAKtb,SACLsb,EAAKtb,QAAQnY,EAAIyzB,IAEhBA,EAAKk/G,KAAOl/G,EAAKs+G,OAASt+G,EAAKs+G,MAAMh3I,OAAS,GAC/CsE,KAAKs0I,qBAAqBlgH,EAAMzzB,GAEpCX,KAAK4V,SAAS,CAAE04B,YAAala,EAAK1Y,KACtC,EACAw2H,EAAQzyI,UAAUg0I,gBAAkB,SAAUr/G,GAI1C,QAA+Br1B,IAA3BiB,KAAK1E,MAAMgzC,YACX,OAAOla,EAAK1Y,MAAQ1b,KAAK1E,MAAMgzC,YAE9B,QAA+BvvC,IAA3BiB,KAAK/E,MAAMqzC,YAChB,OAAOla,EAAK1Y,MAAQ1b,KAAK/E,MAAMqzC,YAE9B,QAA2B,KAAhB,EAAA+D,EAAA,OAAgCje,EAAKk/G,IAEjD,OAAO,GAIP5B,EAAeA,GAAgBx4I,SAASqgI,cAAc,MACzC99G,KAAO2Y,EAAKk/G,KAAO,GAChC,IAAI55I,EAASg4I,EAAaj2H,KAC1B,OAAIq4F,SAASr4F,OAAS/hB,GAIlBo6G,SAAS+gC,SAAW,KAAO/gC,SAASolB,KAAOplB,SAASghC,WAAap7I,KAGjEo6G,SAASihC,OAELjhC,SAASihC,OAAS3gH,EAAKk/G,MAI3B5B,EAAaj2H,KAAOq4F,SAASihC,KAAKxgG,UAAU,GACrCm9F,EAAaj2H,OAAS/hB,GAIzC,EACAw4I,EAAQzyI,UAAU4yI,iBAAmB,SAAU17C,GAC3C,YAAyB53F,IAArB43F,EAAMnyE,WACCmyE,EAAMnyE,WAEbmyE,EAAM36F,MAAQgE,KAAK/E,MAAM63I,iBAAiBr0I,eAAek4F,EAAM36F,OACvDgE,KAAK/E,MAAM63I,iBAAiBn8C,EAAM36F,WAEd+C,IAA5B43F,EAAMq+C,oBACEr+C,EAAMq+C,iBAGtB,EACA9C,EAAQzyI,UAAUg1I,iBAAmB,SAAU99C,GAC3C,IAAIv8F,EACJ,GAAIu8F,EAAM36F,KAAM,CACZ,IAAIi5I,GAAoB,SAAS,QAAS,CAAC,EAAGj1I,KAAK/E,MAAM63I,oBAAoB14I,EAAK,CAAC,GAAMu8F,EAAM36F,MAAQgE,KAAKqyI,iBAAiB17C,GAAQv8F,IACrI4F,KAAK4V,SAAS,CAAEk9H,iBAAkBmC,GACtC,CACJ,EACA/C,EAAQvpI,aAAe,CACnBuqF,OAAQ,MAELg/C,CACX,CAnR4B,CAmR1B,aEnSSgD,GAAM,EAAAj2H,EAAA,GAAOizH,GDoBD,SAAU52I,GAC7B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAO+3I,EAAU33I,EAAM23I,QAASzuH,EAAalpB,EAAMkpB,WAAY2lG,EAAU7uH,EAAM6uH,QAASiqB,EAAS94I,EAAM84I,OAAQh7F,EAAa99C,EAAM89C,WAAYkW,EAAah0D,EAAMg0D,WAAYqkF,EAAgBr4I,EAAMq4I,cAAe5xI,EAAKzG,EAAM65I,UAAWA,OAAmB,IAAPpzI,EAAgB,GAAKA,EAAImf,EAAW5lB,EAAM4lB,SAAUlf,EAAK1G,EAAMu4I,YAAaA,OAAqB,IAAP7xI,EAAgB,GAAKA,EAAIC,EAAK3G,EAAM85I,oBAAqBA,OAA6B,IAAPnzI,EAAgB,GAAKA,EAAIid,EAAK5jB,EAAM+5I,aAAcA,OAAsB,IAAPn2H,EAAgB,GAAKA,EAC9hBC,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX7L,EACAwhB,EAAMyB,OACN,CACIuiB,UAAW,OACX7S,WAAY,OACZkyE,wBAAyB,SAE7BwwC,GAAW,CACP,CACI/xH,SAAU,YAEd,KAAoBo0H,iBAG5B3D,SAAU,CACNl0I,EAAWk0I,SACX,CACI7wH,OAAQ,QACRhE,SAAU,SACV8X,cAAe,SACfjF,UAAW,OACX9Q,aAAc,aAGtB+yH,cAAe,CACXn0I,EAAWm0I,cACX,CACI7wH,QAAS,QACTG,SAAU,WACVnH,MAAOC,EAAeC,UAE1BuK,GAAc,cACd40B,GAAc,cACdkW,GAAc,cACdA,GAAc,CACVv1C,MAAOC,EAAegW,eAG9BoE,KAAM,CACF32B,EAAW22B,MACX,QAAcl5B,GACd,CACI6lB,QAAS,QACTG,SAAU,WACVhS,OAAQimI,EACR/sI,MAAO,OACPuY,WAAY,GAAGnO,OAAO2iI,EAAW,MACjC30H,eAAgB,OAChB9I,OAAQ,UACRmH,aAAc,WACdD,WAAY,SACZ9B,SAAU,SACVuwB,YAAawmG,EACbrmG,aAAc6nG,EACdt7H,MAAOC,EAAeC,SACtB7O,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB6nB,OAAQ,EACR7W,UAAW,CACP,SAAU,CACN6W,OAAQ,0BAIpB7nB,KAEPk1D,GAAc,CACXlkD,UAAW,CACP,gCAAiC,CAC7BmV,gBAAiBvG,EAAeu7H,yBAI5Cn8F,GAAc,CACVr/B,MAAOC,EAAey3C,gBACtBpxC,WAAY,KAAYJ,SACxBM,gBAAiBvG,EAAew7H,sBAChCpqI,UAAW,CACP,UAAW,CACPupB,WAAY,aAAaniB,OAAO2M,EAAQiD,cACxCpE,QAAS,KACTkD,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACNivB,cAAe,UAI3Bg7B,GAAc,CACVv1C,MAAOC,EAAegW,cAE1B2jH,GAAiB,CACb55H,MAAOoF,EAAQiD,eAGvByvH,cAAe,CACXp0I,EAAWo0I,eACX,QAAc32I,GACdkkB,EAAMiC,MACN,CACIN,QAAS,QACT4O,UAAW,OACXhP,WAAY,GAAGnO,OAAO2iI,EAAW,MACjCr0H,OAAQ,QACRJ,QAAS,QAAQlO,OAAO6iI,EAAc,aAAa7iI,OAAO4iI,EAAqB,MAC/EnzH,OAAQ,OACRpD,aAAc,WACdD,WAAY,SACZ9B,SAAU,SACVpF,OAAQ,UACRqC,MAAOC,EAAeC,SACtBsG,gBAAiB,cACjBnV,UAAW,CACP,YAAa,CACT2O,MAAOC,EAAeC,YAIlCkwG,GAAW,CACPvpG,SAAUxB,EAAM6yC,MAAMrxC,SACtBxY,MAAO,OACP8G,OAAQimI,EACRnkE,aAAc,aAAax+D,OAAOwH,EAAe2hC,cAErDy4F,GAAU,CACNrzH,QAAS,QACT3Y,MAAOgtI,EAAsB,EAC7BlmI,OAAQimI,EAAY,EACpBj0H,SAAU,WACVnZ,IAAK,MACL1C,KAAM,GAAGmN,OAAO0O,EAAU,MAC1BmjB,OAAQ,KAAS6wG,IACjBx0H,QAAS,EACTI,OAAQ,IAGhBgxH,YAAa,CACTr0I,EAAWq0I,YACX,CACI5wH,SAAU,WACV7b,KAAM,MACN6J,OAAQimI,EAERp0H,QAAS,cACTC,WAAY,SACZL,WAAY,GAAGnO,OAAO2iI,EAAW,MACjCv0H,SAAUxB,EAAMiC,MAAMT,SACtB0mE,WAAY,wBAEhB9iE,GAAc,CACVogB,UAAW,mBAEfwvG,GAAU,CACNrsI,IAAK,IAGbgqI,QAAS,CACLt0I,EAAWs0I,QACX,CACIrxH,QAAS,IAGjBsxH,SAAU,CACNv0I,EAAWu0I,SACX,CACI/wH,cAAe,OACfP,QAAS,EACTI,OAAQ,IAGhB61E,MAAO,CAACl5F,EAAWk5F,MAAOnyE,GAAc,eACxCytH,aAAc,CACVx0I,EAAWw0I,aACX,CACIlxH,QAAS,OACTiU,aAAc,QAElB,KAAoBg7C,cACpBxrD,GAAc,CACVzD,QAAS,UAIzB,QCrN4ChiB,EAAW,CACnD0iB,MAAO,O,+JCAPg0H,EAA2B,SAAUC,EAAmB7iB,EAAe8iB,GACvE,IAAK,IAAIn6I,EAAK,EAAGo6I,EAAsBF,EAAmBl6I,EAAKo6I,EAAoBl6I,OAAQF,IAAM,CAC7F,IAAIq6I,EAASD,EAAoBp6I,GAGjCm6I,EAFe9iB,EAAcK,SAAS2iB,GAAQ,IAEPA,CAC3C,CACJ,EACIC,EAA6B,SAAUjjB,EAAe8iB,GACtD,IAAK,IAAIn6I,EAAK,EAAGpB,EAAKiF,OAAOiU,KAAKqiI,GAA6Bn6I,EAAKpB,EAAGsB,OAAQF,IAAM,CACjF,IAAIu6I,EAAW37I,EAAGoB,GAClBq3H,EAAcM,WAAWwiB,EAA2BI,GAAWA,GAAU,UAClEJ,EAA2BI,EACtC,CACJ,EAuBWn5H,EAAiB,SAAUthB,GAClC,IAAIu3H,EAAgBC,EAAAC,EAAcC,cAC9Bp1H,EAAYtC,EAAMsC,UAAW8uD,EAAgBpxD,EAAMoxD,cAAespF,EAAkB16I,EAAM06I,gBAAiBC,EAAsB36I,EAAM26I,oBAAqBtpF,EAAyBrxD,EAAMqxD,uBAC3LupF,GAAmB,EAAAnlI,EAAA,GAAS,CAAC,GAE7BolI,EAAoB,eAAkB,SAAU56H,GAEhD,OAAI06H,EACOA,EAAoB16H,GAE3BA,EAAK2xC,aACE3xC,EAAK2xC,aAAahwC,WAD7B,CAIJ,GAAG,CAAC+4H,IACA77I,EAAK,WAAc,WACnB,IAAIg8I,EAAuB,GACvBC,EAAmB,GAqCvB,OApCIL,EACAtpF,SAA8DA,EAAcpjD,SAAQ,SAAUgtI,GAC1F,IAAIl8I,EACAy7I,EAASS,EAAaluH,YAC1B,GAAIytH,EAAQ,CAER,IAAIU,EAAkB,CAClBv4H,QAAS63H,EAAO73H,QAChB00G,aAAcmjB,EAAOnjB,aACrB5uH,SAAU+xI,EAAO/xI,aAAewyI,EAAaxyI,WAAYwyI,EAAahnF,YACtEknF,mBAAoBX,EAAOW,mBAC3BpyH,QAASyxH,EAAOzxH,SAEhByxH,EAAOW,oBAAsBL,EAAkBG,IAE/CC,EAAgBE,UAAY5jB,EAAc6jB,YAAY96H,KAAKi3G,EAAemjB,EAAiH,QAA/F57I,EAAKk8I,aAAmD,EAASA,EAAaluH,mBAAgC,IAAPhuB,OAAgB,EAASA,EAAGs4H,cAC/N6jB,EAAgBI,oBAAqB,GAIrCJ,EAAgBE,UAAYZ,EAAOY,UAEvCL,EAAqBz4I,KAAK44I,GAE1B,IAAIK,GAAkB,SAAS,QAAS,CAAC,EAAGN,GAAe,CAAEluH,aAAa,SAAS,QAAS,CAAC,EAAGytH,GAAS,CAAEliB,oBAAqBqiB,MAChIK,SAAoEA,EAAiB14I,KAAKi5I,EAC9F,MAGIP,SAAoEA,EAAiB14I,KAAK24I,EAElG,IAGAD,EAAmB3pF,EAEhB,CAAEmqF,sBAAuBR,EAAkBX,kBAAmBU,EACzE,GAAG,CAAC1pF,EAAeypF,EAAmBtjB,EAAemjB,IAAmBa,EAAwBz8I,EAAGy8I,sBAEnG,OA/EyB,SAAUlB,EAA4BD,EAAmB7iB,GAClF,IAAIikB,GAAuB,EAAA7jI,EAAA,GAAY0iI,GAEvC,aAAgB,WACRmB,IAEAhB,EAA2BjjB,EAAeikB,GAE1CrB,EAAyBC,EAAmB7iB,EAAe8iB,GAEnE,IAEA,aAAgB,WAGZ,OADAF,EAAyBC,EAAmB7iB,EAAe8iB,GACpD,WAEHG,EAA2BjjB,EAAe8iB,EAC9C,CAEJ,GAAG,GACP,CAyDIoB,CAAuBb,EADuH97I,EAAGs7I,kBACrF7iB,GACrD,gBAAoB,MAAO,CAAEj1H,UAAWA,GAAa+uD,EAAuBkqF,GACvF,EC9FIl9H,GAAgB,EAAAC,EAAA,KAwBTo9H,EAAkB,cAAiB,SAAU17I,EAAO6jC,GAC3D,IAAI83G,EAAe,SAAa,MAC5Bhf,GAAY,EAAAnmH,EAAA,GAAcmlI,EAAc93G,IAxB1B,SAAU7jC,EAAO27I,GACnC,sBAA0B37I,EAAM8hB,cAAc,WAAc,MAAO,CAC/D/Z,MAAO,SAAU6zI,EAAwBxrI,GACrC,IAAIyrI,GAAiB,EAIrB,OAHIF,EAAa9zI,UACbg0I,GAAiB,QAAgBF,EAAa9zI,QAASuI,IAEpDyrI,CACX,EACAryI,aAAc,SAAUsyI,GACpB,IAAID,GAAiB,EACrB,QAAKC,IAGDH,EAAa9zI,UAAW,EAAA3K,EAAA,GAAgBy+I,EAAa9zI,QAASi0I,KAC9DA,EAAa/zI,QACb8zI,EAAiBj+I,SAASwL,gBAAkB0yI,GAEzCD,EACX,EACA,GAAG,CAACF,GACZ,CAII3vG,CAAgBhsC,EAAO27I,GACvB,IAAI/5H,EAAQ5hB,EAAM4hB,MAAOwvC,EAAgBpxD,EAAMoxD,cAAe9uD,EAAYtC,EAAMsC,UAAWvC,EAASC,EAAMD,OAAQiK,EAAWhK,EAAMgK,SAAU0X,EAAO1hB,EAAM0hB,KAAM5iB,EAAKkB,EAAM+7I,aAAcA,OAAsB,IAAPj9I,EAAgB,MAAQA,EAAI8gB,EAAe5f,EAAM4f,aACrPzd,EAAakc,EAActe,EAAQ,CAAEuC,UAAWA,EAAW0H,SAAUA,IACrEgyI,IAAiB5qF,GAAiBA,EAAchxD,OAAS,EAC7D,OAAQ,gBAAoB,OAAO,QAAS,CAAC,GAAG,QAAeJ,EAAO,MAAgB,CAAE0hB,KAAMA,GAAQ,QAAS,mBAA6B,YAATA,GAAmC,IAAb1X,EAAoB,WAAa,kBAAgBvG,EAAWnB,UAAWH,EAAWgM,KAAM6B,IAAK2sH,IACjO,UAAjBof,GAA4BC,GAAgB,gBAAoB16H,GAAgB,QAAS,CAAC,EAAGthB,EAAO,CAAEsC,UAAWH,EAAWsf,kBAC5HG,GACIA,EAAMthB,KAAI,SAAU2f,EAAMzb,GAAK,OAAQ,gBAAoB,MAAO,CAAElC,UAAWH,EAAW8d,KAAMG,IAAKH,EAAKG,IAAKsB,KAAM,QAAU9B,EAAaK,GAAS,IACxI,QAAjB87H,GAA0BC,GAAgB,gBAAoB16H,GAAgB,QAAS,CAAC,EAAGthB,EAAO,CAAEsC,UAAWH,EAAWsf,kBAClI,IACAi6H,EAAgBv8I,YApCK,cCNrB,IAAI88I,EAAoB,CACpB3nH,WAAY,EACZ7O,QAAS,WCCFwrC,GAAc,EAAAttC,EAAA,GAAO+3H,GDCT,SAAU17I,GAC7B,IAAIsC,EAAYtC,EAAMsC,UACtB,MAAO,CACH6L,KAAM,CACF,iBACA,CACIyX,SAAU,WACVH,QAAS,OACTyP,SAAU,UAPsBl1B,EAAMgK,UAS9B,CAAEsuB,cAAe,UAC7Bh2B,GAEJ2d,KAAM,CAAC,sBAAuBg8H,GAC9Bx6H,eAAgB,CAAC,gCAAiCw6H,GAE1D,QCjB4Dx4I,EAAW,CACnE0iB,MAAO,e,oHCDP9H,GAAgB,EAAAC,EAAA,KAChB49H,EAA6B,SAAU11I,GAEvC,SAAS01I,EAAYl8I,GACjB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,MACxC,EAAAsI,EAAA,GAAuBpG,GACvB,IAAI9H,EAAK8H,EAAM5G,MAAMsyI,qBAAsBA,OAA8B,IAAPxzI,GAAwBA,EAE1F,OADA8H,EAAMu1I,sBAAwB7J,EACvB1rI,CACX,CAiBA,OAxBA,QAAUs1I,EAAa11I,GAQvB01I,EAAY/3I,UAAU+J,kBAAoB,YACrCxJ,KAAKy3I,wBAAyB,SACnC,EACAD,EAAY/3I,UAAU6K,qBAAuB,YACxCtK,KAAKy3I,wBAAyB,SACnC,EACAD,EAAY/3I,UAAUxB,OAAS,WAC3B,IAAI7D,EAAK4F,KAAK1E,MAAOo8I,EAASt9I,EAAGm3I,aAAc3zI,EAAYxD,EAAGwD,UAAW1C,EAAQd,EAAGc,MAAOG,EAASjB,EAAGiB,OACnG0P,GAAW,QAAe/K,KAAK1E,MAAO,MACtCmC,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACX85I,OAAQA,IAEZ,OAAO,gBAAoB,OAAO,QAAS,CAAC,EAAG3sI,EAAU,CAAEnN,UAAWH,EAAWgM,OACrF,EACO+tI,CACX,CA1BgC,CA0B9B,a,WC7BE94H,EAAmB,CACnBjV,KAAM,aACNkuI,SAAU,oBCAHrG,GAAU,EAAAryH,EAAA,GAAOu4H,GDEL,SAAUl8I,GAC7B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOk2H,EAAS91H,EAAM81H,OAAQsmB,EAASp8I,EAAMo8I,OACxFv4H,EAAUjkB,EAAMikB,QAChB1hB,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACIN,gBAAiBpB,EAAQ0vF,mBACzB9mG,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACN6b,SAAU,WACV9V,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB6nB,OAAQ,uBACR2a,QAAS,GAEbxiC,IAERg3H,GAAU,CACN5yF,WAAY,UAEhBk5G,GAAU,CACNj6I,EAAWk6I,SACX,CACIp3H,gBAAiBpB,EAAQy4H,qBAGjCh6I,GAGZ,QCrCoDmB,EAAW,CAC3D0iB,MAAO,W,uCCOPo2H,E,2NAFAl+H,GAAgB,EAAAC,EAAA,MAGpB,SAAWi+H,GACPA,EAAqBA,EAA6B,OAAI,GAAK,SAC3DA,EAAqBA,EAAoC,cAAI,GAAK,gBAClEA,EAAqBA,EAA2B,KAAI,GAAK,OACzDA,EAAqBA,EAAsC,gBAAI,GAAK,iBACvE,CALD,CAKGA,IAAyBA,EAAuB,CAAC,IACpD,IClBIz9I,EAAI2H,EAAIC,EAAIC,EAAIid,EDkBhB44H,EAA2B,SAAUh2I,GAErC,SAASg2I,EAAUx8I,GACf,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAM61I,OAAS,cACf71I,EAAM81I,mBAAqB,KAC3B91I,EAAM+1I,wBAA0B/1I,EAAM5G,MAAM48I,qBAAsBh2I,EAAM5G,MAAM68I,2BAC9Ej2I,EAAMg1D,QAAU,SAAUv2D,GAClBuB,EAAM5G,MAAMwuB,WAAa5nB,EAAMk2I,UAC/Bl2I,EAAM5G,MAAMwuB,UAAUnpB,KAErBA,GAAOA,IAAOA,EAAGopB,mBAClB7nB,EAAMgwG,OAEd,EAEAhwG,EAAMm2I,oBAAsB,SAAU3I,GAC9BA,EACIxtI,EAAMu1I,uBACN,QAAyB/H,EAAKxtI,EAAMiqB,UAGpC,QAAqBujH,EAAKxtI,EAAMiqB,SAIpCjqB,EAAMiqB,QAAQ44D,IAAI7iF,EAAMo2I,oBAE5Bp2I,EAAMo2I,mBAAqB5I,CAC/B,EACAxtI,EAAMq2I,oBAAsB,SAAUj9I,GAClC,IAAK4G,EAAM5G,MAAM68I,4BAA8Bj2I,EAAM5G,MAAM48I,qBAAuBh2I,EAAM5G,MAAMogH,eAC1F,OAAO,KAEX,IAAIthH,EAAK8H,EAAM5G,MAAM68I,0BAA2BA,OAAmC,IAAP/9I,EAAgB8H,EAAMs2I,2BAA6Bp+I,EAC/H,OAAQ,gBAAoB,MAAO,CAAEwD,UAAWsE,EAAMoa,YAAYm8H,YAAcN,EAA0B78I,EAAO4G,EAAMs2I,4BAC3H,EACAt2I,EAAMs2I,2BAA6B,SAAUl9I,GACzC,IAAIlB,EACAonE,EAAuBlmE,EAAMkmE,qBAAsBk6C,EAAiBpgH,EAAMogH,eAAgB35G,EAAKzG,EAAM2nF,eAAgBA,OAAwB,IAAPlhF,EAAgBG,EAAMw2I,gBAAkB32I,EAClL,GAAI25G,EAAgB,CAChB,IAAIvnF,EAAmE,QAA/C/5B,EAAK8H,EAAMoa,YAAY+/C,0BAAuC,IAAPjiE,OAAgB,EAASA,EAAGu+I,cAC3G,OAAQ,gBAAoB,WAAgB,MACvCz2I,EAAM+1I,sBAAwBh1D,EAAe/gF,EAAM5G,MAAO4G,EAAMw2I,gBAAiBx2I,EAAM02I,eACxF,gBAAoB/7H,EAAA,EAAY,CAAExhB,OAAQ84B,EAAkBv2B,UAAWsE,EAAMoa,YAAYq8H,YAAa7/H,QAAS5W,EAAM22I,cAAe/9H,UAAW0mD,EAAsBl7C,MAAOk7C,EAAsB,mBAAmB,EAAM9kD,UAAW,CAAED,SAAU,YAC1P,CACA,OAAO,IACX,EACAva,EAAMw2I,gBAAkB,SAAUp9I,EAAOitB,EAAeuwH,GACpD,IAAIC,EAAaz9I,EAAMy9I,WAAY3+I,EAAKkB,EAAM09I,gBAAiBA,OAAyB,IAAP5+I,EAAgB,CAAC,EAAIA,EACtG,OAAI2+I,EACQ,gBAAoB,MAAO,CAAEn7I,UAAWsE,EAAMoa,YAAYogC,QAC9D,gBAAoB,OAAO,QAAS,CAAEnpC,GAAIulI,EAAc97H,KAAM,UAAW,aAAc,GAAKg8H,EAAiB,CAAEp7I,WAAW,EAAAsN,EAAA,GAAIhJ,EAAMoa,YAAYy8H,WAAYC,EAAgBp7I,aAAem7I,IAE5L,IACX,EACA72I,EAAM+2I,cAAgB,SAAU39I,GAC5B,OAAO,gBAAoB,MAAO,CAAEsC,UAAWsE,EAAMoa,YAAY0B,SAAW1iB,EAAMoB,SACtF,EACAwF,EAAMg3I,gBAAkB,SAAU59I,GAC9B,IAAIlB,EAAK8H,EAAM5G,MAAM69I,sBAAuBA,OAA+B,IAAP/+I,EAAgB,KAAOA,EAC3F,OAAI++I,EACQ,gBAAoB,MAAO,CAAEv7I,UAAWsE,EAAMoa,YAAY88H,QAC9D,gBAAoB,MAAO,CAAEx7I,UAAWsE,EAAMoa,YAAY+8H,aAAeF,MAE1E,IACX,EACAj3I,EAAMo3I,WAAa,SAAUC,GACrBA,IAAuB1B,EAAqBhkC,MAAQ3xG,EAAM5G,MAAMk+I,QAChEt3I,EAAM5G,MAAMk+I,SAEhBt3I,EAAM81I,mBAAqB91I,EAAMiU,OAAO1C,YAAW,WAC/CvR,EAAM0T,SAAS,CAAE4oB,WAAY+6G,IAC7Br3I,EAAMu3I,sBAAsBF,EAChC,GAAG,IACP,EACAr3I,EAAMw3I,6BAA+B,WACA,OAA7Bx3I,EAAM81I,oBACN91I,EAAMiU,OAAO3C,aAAatR,EAAM81I,mBAExC,EACA91I,EAAM22I,cAAgB,SAAUl4I,GAC5BuB,EAAMg1D,QAAQv2D,EAClB,EACAuB,EAAMu3I,sBAAwB,SAAUF,GACpCr3I,EAAMy3I,wBACFJ,IAAuB1B,EAAqBhkC,MAAQ3xG,EAAM5G,MAAMs+I,UAChE13I,EAAM5G,MAAMs+I,WAEZL,IAAuB1B,EAAqBgC,QAAU33I,EAAM5G,MAAMq1G,aAClEzuG,EAAM5G,MAAMq1G,aAEpB,EACA,IAAIv2G,EAAK8H,EAAM5G,MAAMsyI,qBAAsBA,OAA8B,IAAPxzI,GAAwBA,EAc1F,OAbA8H,EAAMu1I,sBAAwB7J,GAC9B,EAAAtlI,EAAA,GAAuBpG,IACvB,EAAAsqB,EAAA,GAxGa,QAwGoBlxB,EAAO,CACpCo1G,uBAAwB,qBACxBF,qBAAsB,qBACtBD,uBAAwB,uBAE5BruG,EAAMjH,MAAQ,CACV6+I,gBAAgB,EAEhBt7G,WAAYq5G,EAAqBgC,OACjCtmI,IAAI,EAAA/K,EAAA,GAAM,UAEPtG,CACX,CAgKA,OA3QA,QAAU41I,EAAWh2I,GA4GrBg2I,EAAU7gI,yBAA2B,SAAU4sB,EAAWtW,GACtD,YAAyBxuB,IAArB8kC,EAAU8Y,OACH,MAEP9Y,EAAU8Y,QACTpvB,EAAUiR,aAAeq5G,EAAqBgC,QAC3CtsH,EAAUiR,aAAeq5G,EAAqBkC,gBAGjDl2G,EAAU8Y,QACVpvB,EAAUiR,aAAeq5G,EAAqBhkC,MAC3CtmF,EAAUiR,aAAeq5G,EAAqBmC,cAG/C,KAFI,CAAEx7G,WAAYq5G,EAAqBkC,iBALnC,CAAEv7G,WAAYq5G,EAAqBmC,cAQlD,EACAlC,EAAUr4I,UAAU+J,kBAAoB,WACpCxJ,KAAKmW,OAAS,IAAI+V,EAAA,EAAMlsB,MACxBA,KAAKmsB,QAAU,IAAIC,EAAA,EAAWpsB,MAC9BA,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,SAAUtB,KAAK25I,uBACnC35I,KAAKi6I,2BAA2Bj6I,KAAK1E,QACrC0E,KAAKmsB,QAAQnZ,GAAG9Z,SAASC,KAAM,YAAa6G,KAAKk6I,sBAAsB,GAEvEl6I,KAAK1E,MAAMqhD,QACX38C,KAAK4V,SAAS,CAAE4oB,WAAYq5G,EAAqBmC,eAEzD,EACAlC,EAAUr4I,UAAUuK,mBAAqB,SAAU45B,EAAem4D,GAC9D,IAAIo+C,EAA2Bn6I,KAAKi6I,2BAA2Bj6I,KAAK1E,OAChE8+I,EAAmCp6I,KAAKi6I,2BAA2Br2G,GACnE5jC,KAAK/E,MAAMujC,aAAeu9D,EAAcv9D,aACxCx+B,KAAK05I,+BACD15I,KAAK/E,MAAMujC,aAAeq5G,EAAqBmC,cAC/Ch6I,KAAKs5I,WAAWzB,EAAqBhkC,MAEhC7zG,KAAK/E,MAAMujC,aAAeq5G,EAAqBkC,iBACpD/5I,KAAKs5I,WAAWzB,EAAqBgC,SAGzCM,IAA6BC,EAC7Bp6I,KAAKmsB,QAAQnZ,GAAG9Z,SAASC,KAAM,YAAa6G,KAAKk6I,sBAAsB,IAEjEC,GAA4BC,GAClCp6I,KAAKmsB,QAAQ44D,IAAI7rF,SAASC,KAAM,YAAa6G,KAAKk6I,sBAAsB,EAEhF,EACApC,EAAUr4I,UAAU6K,qBAAuB,WACvCtK,KAAKmW,OAAO5F,UACZvQ,KAAKmsB,QAAQ5b,SACjB,EACAunI,EAAUr4I,UAAUxB,OAAS,WACzB,IAAI7D,EAAK4F,KAAK1E,MAAOyG,EAAK3H,EAAGwD,UAAWA,OAAmB,IAAPmE,EAAgB,GAAKA,EAAIuuG,EAA0Bl2G,EAAGk2G,wBAE1GC,EAAyBn2G,EAAGm2G,uBAAwB8K,EAAqBjhH,EAAGihH,mBAAoB7K,EAAuBp2G,EAAGo2G,qBAAsBkL,EAAiBthH,EAAGshH,eAAgBq9B,EAAa3+I,EAAG2+I,WAAY/2I,EAAK5H,EAAGmoF,gBAAiBA,OAAyB,IAAPvgF,EAAgB,GAAKA,EAAI0uG,EAAyBt2G,EAAGs2G,uBAAwB1B,EAAa50G,EAAG40G,WAAYqrC,EAAmBjgJ,EAAGigJ,iBAAkB1+B,EAAiBvhH,EAAGuhH,eAAgB2+B,EAAoBlgJ,EAAGkgJ,kBAAmBv1G,EAAa3qC,EAAG2qC,WAAYw1G,EAAengJ,EAAGmgJ,aAAc56G,EAAavlC,EAAGulC,WAAYljC,EAAOrC,EAAGqC,KAAMpB,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAAOs/I,EAAcpgJ,EAAGogJ,YAAav4I,EAAK7H,EAAGqgJ,oBAAqBA,OAA6B,IAAPx4I,EAAgBjC,KAAK64I,cAAgB52I,EAAIid,EAAK9kB,EAAG89I,mBAAoBA,OAA4B,IAAPh5H,EAAgBlf,KAAKu4I,oBAAsBr5H,EAAIuS,EAAKr3B,EAAG6oF,eAAgBA,OAAwB,IAAPxxD,EAAgBzxB,KAAK04I,gBAAkBjnH,EAAIC,EAAKt3B,EAAGsgJ,aAAcA,OAAsB,IAAPhpH,EAAgB1xB,KAAKi5I,cAAgBvnH,EAAIC,EAAKv3B,EAAGs+F,eAAgBA,OAAwB,IAAP/mE,EAAgB3xB,KAAKk5I,gBAAkBvnH,EAChjCC,EAAK5xB,KAAK/E,MAAO6+I,EAAiBloH,EAAGkoH,eAAgBt7G,EAAa5M,EAAG4M,WAAYjrB,EAAKqe,EAAGre,GACzFonI,EAASl+I,IAAS,IAAUm+I,gBAAkBn+I,IAAS,IAAUo+I,WAEjEC,GADQ,QAAO5/I,GACSy/I,GAAUA,EAClCI,EAAoBt+I,IAAS,IAAUu+I,QAAUv+I,IAAS,IAAUo+I,WAAa,CAAEzyI,MAAOoyI,GAAgB,CAAC,EAC3GpiI,GAAc,QAAepY,KAAK1E,MAAO,MACzCqhD,EAAS38C,KAAKo4I,SACd6C,EAAcz8G,IAAeq5G,EAAqBkC,iBAAmBv7G,IAAeq5G,EAAqBmC,cAE7G,GADAh6I,KAAK44I,cAAgBG,GAAcxlI,EAAK,eACnCopC,IAAWs+F,IAAgBX,EAC5B,OAAO,KAEXt6I,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,EACXs9I,uBAAwB7/B,EAAqBA,EAAmBz9G,eAAYmB,EAC5E28G,eAAgBA,EAChBn5B,gBAAiBA,EACjB04D,YAAaA,EACbnB,eAAgBA,EAChBO,iBAAkBA,EAClBS,cAAeA,EACfn+F,OAAQA,EACR29F,kBAAmBA,EACnB79I,KAAMA,EACN0+I,oBAAqBn7I,KAAKi4I,uBAE9B,IACIlK,GADWzxH,GAANtc,KAAuBsc,YAAam7H,GAApCz3I,KAA+Dy3I,sBAKxE,OAHIzoC,GAAcryD,IACdoxF,GAAW,gBAAoBuD,EAAA,GAAS,QAAS,CAAE1zI,UAAW0e,GAAYyxH,QAASwD,cAAc,EAAOz4H,QAAS6iG,EAAiB8+B,OAAsB17I,EAAW6uI,qBAAsB6J,IAAyB8C,KAE9M,gBAAoBj2G,EAAA,GAAO,QAAS,CAAC,EAAGS,GAC5C,gBAAoBtB,EAAA,GAAO,QAAS,CAAEzmB,KAAM,SAAU,aAAcgyF,EAAa,YAASjwG,EAAW+L,eAAgB9K,KAAK44I,cAAgB54I,KAAK44I,mBAAgB75I,EAAW+qB,UAAW9pB,KAAKk3D,QAASt5D,UAAW0e,GAAY8+H,YAAajsC,2BAA0BxyD,GAAyBhd,GACtR,gBAAoB,OAAO,QAAS,CAAE,eAAgBgd,GAAUs+F,GAAe7iI,EAAa,CAAE9M,IAAKtL,KAAK+3I,OAAQn6I,UAAW0e,GAAY7S,OACnIskI,GACA,gBAAoBluD,EAAA,GAAe,QAAS,CAAE6wB,uBAAwBA,EAAwBF,wBAAuBxB,GAAesrC,IAAsB39F,IAAkB6zD,EAAsBD,uBAAwBA,EAAwBzwB,6BAA6B,GAAQu7B,EAAoB,CAAEz9G,UAAW0e,GAAYg1F,KAAMj5F,MAAO0iI,EAAmBzqC,wBAAyBA,IACzX,gBAAoB,MAAO,CAAE1yG,UAAW0e,GAAYykG,cAChD,gBAAoB,MAAO,CAAEz1G,IAAKtL,KAAKq4I,oBAAqBz6I,UAAW0e,GAAYsuH,kBAAmB,sBAAsB,GACxH,gBAAoB,MAAO,CAAEhtI,UAAW0e,GAAY++H,SAAU,mBAAmB,GAAQnD,EAAmBl4I,KAAK1E,MAAO0E,KAAKu4I,uBAC5Hv4I,KAAKi4I,uBAAyBv8B,IAC3Bz4B,EAAejjF,KAAK1E,MAAO0E,KAAK04I,gBAAiB14I,KAAK44I,eAC1D8B,EAAa16I,KAAK1E,MAAO0E,KAAKi5I,eAC9BvgD,EAAe14F,KAAK1E,MAAO0E,KAAKk5I,sBAC5D,EACApB,EAAUr4I,UAAUo0G,KAAO,gBACG90G,IAAtBiB,KAAK1E,MAAMqhD,SAGX38C,KAAKo4I,UAGTp4I,KAAK4V,SAAS,CAAE4oB,WAAYq5G,EAAqBmC,gBACrD,EACAlC,EAAUr4I,UAAUyyG,MAAQ,gBACEnzG,IAAtBiB,KAAK1E,MAAMqhD,QAGV38C,KAAKo4I,UAGVp4I,KAAK4V,SAAS,CAAE4oB,WAAYq5G,EAAqBkC,iBACrD,EACA16I,OAAOgN,eAAeyrI,EAAUr4I,UAAW,WAAY,CAEnD6M,IAAK,WACD,OAAQtM,KAAK/E,MAAMujC,aAAeq5G,EAAqBhkC,MACnD7zG,KAAK/E,MAAMujC,aAAeq5G,EAAqBmC,aACvD,EACAztI,YAAY,EACZC,cAAc,IAElBsrI,EAAUr4I,UAAUw6I,2BAA6B,SAAU3+I,GACvD,QAASA,EAAM0zG,cAAgB1zG,EAAMqhD,MACzC,EACAm7F,EAAUr4I,UAAUk6I,sBAAwB,WACxC,IAAI/O,EAAoB5qI,KAAKs4I,mBAC7B,GAAI1N,EAAmB,CACnB,IAAI17H,EAAS07H,EAAkB/7H,aAC3BysI,EAAgB1Q,EAAkBvyB,aACtCr4G,KAAK4V,SAAS,CACVkkI,eAAgB5qI,EAASosI,GAEjC,CACJ,EACAxD,EAAUr4I,UAAUy6I,qBAAuB,SAAUv5I,GACjD,IAAI61C,EAAQx2C,KAAK+3I,OAAO50I,QACpBnD,KAAKo4I,UAAY5hG,IAAU71C,EAAGopB,oBACzB,EAAAvxB,EAAA,GAAgBg+C,EAAO71C,EAAGjH,UACvBsG,KAAK1E,MAAMigJ,aACXv7I,KAAK1E,MAAMigJ,aAAa56I,GAGxBX,KAAKk3D,QAAQv2D,IAI7B,EACAm3I,EAAUnvI,aAAe,CACrB2xI,mBAAmB,EACnB39F,YAAQ59C,EACRiwG,YAAY,EACZ0M,gBAAgB,EAChBj/G,KAAM,IAAU++I,eAEb1D,CACX,CA7Q8B,CA6Q5B,a,WC3REp5H,EAAmB,CACnBjV,KAAM,WACN6nG,KAAM,gBACN+pC,SAAU,oBACVt6B,aAAc,wBACd6pB,kBAAmB,6BACnB6N,WAAY,sBACZE,YAAa,4CACbj8F,OAAQ,kBACRq8F,WAAY,sBACZ/6H,QAAS,mBACTo7H,OAAQ,kBACRC,YAAa,uBACb18F,OAAQ,UACR++D,eAAgB,2BAChB+/B,WAAY,oBACZb,eAAgB,mBAChBY,cAAe,eACf36H,OAAQ,eACRoxC,MAAO,eACPypF,WAAY,kBACZC,WAAY,eACZX,OAAQ,mBACRH,WAAY,wBAWZe,EACM,OAQNC,IAAuBzhJ,EAAK,CAAC,GAC1B,sBAAsBoY,OAAO,KAAsB,QAAU,CAC5DpK,MAhBA,KAkBJhO,GACA0hJ,IAAwB/5I,EAAK,CAAC,GAC3B,sBAAsByQ,OAAO,KAAqB,QAAU,CAC3DpK,MApBC,KAsBLrG,EAAG,sBAAsByQ,OAAO,KAAsB,QAAU,CAC5DpK,MAtBC,KAwBLrG,GACAg6I,IAAuB/5I,EAAK,CAAC,GAC1B,sBAAsBwQ,OAAO,KAAyB,QAAU,CAC/DnN,KArBA,GAsBA+C,MAhCE,QAkCNpG,EAAG,sBAAsBwQ,OAAO,IAAuB,QAAU,CAC7DnN,KAxBA,KA0BJrD,GACAg6I,IAA4B/5I,EAAK,CAAC,GAC/B,sBAAsBuQ,OAAO,IAAuB,QAAU,CAC7DnN,KAAMu2I,EACNxzI,MApCA,KAsCJnG,GACAg6I,IAA4B/8H,EAAK,CAAC,GAC/B,sBAAsB1M,OAAO,IAAuB,QAAU,CAC7DnN,KAlCA,KAoCJ6Z,GAGAg9H,EAAsB,SAAUz/I,GAChC,IAAI2O,EAIJ,OAAQ3O,GACJ,KAAK,IAAU++I,cACXpwI,GAAY,QAAS,CAAC,EAAGywI,GACzB,MACJ,KAAK,IAAUh7H,OACXzV,GAAY,SAAS,QAAS,CAAC,EAAGywI,GAAsBC,GACxD,MACJ,KAAK,IAAU7pF,MACX7mD,GAAY,SAAS,SAAS,QAAS,CAAC,EAAGywI,GAAsBC,GAAuBC,GACxF,MACJ,KAAK,IAAUL,WACXtwI,GAAY,SAAS,SAAS,SAAS,QAAS,CAAC,EAAGywI,GAAsBC,GAAuBC,GAAsBC,GACvH,MACJ,KAAK,IAAUL,WACXvwI,GAAY,SAAS,SAAS,SAAS,QAAS,CAAC,EAAGywI,GAAsBC,GAAuBC,GAAsBE,GAK/H,OAAO7wI,CACX,EAEI+wI,EAAsB,CACtB9uG,YAAa,OACbG,aAAc,QCzGPiuE,GAAQ,EAAAx8F,EAAA,GAAO64H,GD2GH,SAAUx8I,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EACZrE,EAAYtC,EAAMsC,UAAWs9I,EAAyB5/I,EAAM4/I,uBAAwBx/B,EAAiBpgH,EAAMogH,eAAgBn5B,EAAkBjnF,EAAMinF,gBAAiB04D,EAAc3/I,EAAM2/I,YAAanB,EAAiBx+I,EAAMw+I,eAAgBO,EAAmB/+I,EAAM++I,iBAAkBS,EAAgBx/I,EAAMw/I,cAAen+F,EAASrhD,EAAMqhD,OAAQ29F,EAAoBh/I,EAAMg/I,kBAAmBa,EAAsB7/I,EAAM6/I,oBAAqBjgJ,EAAQI,EAAMJ,MAAOgkB,EAAK5jB,EAAMmB,KAAMA,OAAc,IAAPyiB,EAAgB,IAAUs8H,cAAgBt8H,EACxgB2Q,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAAOpF,EAAiB9e,EAAM8e,eACrEvc,GAAa,QAAoBihB,EAAkBxjB,GACnDkhJ,EAAgB3/I,IAAS,IAAUu+I,QAAUv+I,IAAS,IAAUo+I,WACpE,MAAO,CACHpxI,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ87B,GAAUl/C,EAAWk/C,OACrB++D,GAAkBj+G,EAAWi+G,eAC7B,CACIpnF,cAAe,OACfpT,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACNI,MAAO,EACPwC,OAAQ,GAEZm0I,GAAiBtB,GAAiBr9I,EAAWu9I,OAC7CoB,IAAkBtB,GAAiBr9I,EAAWo9I,WAC9Cj9I,GAEJmwI,QAAS,CACL,CACIz5G,cAAe,OACf5c,OAAQ,WAEZilC,GAAUs+F,GAAe,KAAoBoB,WAC5C1/F,GAAUs+F,GAAe,KAAoBqB,YAElDlB,YAAa,EACRz+F,IACIs+F,GACDX,GAAqB,CACrB97G,WAAY,WAGpB8yE,KAAM,CACF7zG,EAAW6zG,KACX,CACI/wF,gBAAiBvG,EAAe4rB,eAChCrB,UAAW1U,EAAQ2hH,YACnBl9G,cAAe,OACfpT,SAAU,WACVH,QAAS,OACT6S,cAAe,SACfiR,UAAW,SACXzB,UAAW,OACXq/D,wBAAyB,QACzBx6F,OAAQ,EACRF,IAAK,EAEL1C,KAAMu2I,EACNn2I,MAhIN,EAiIM2C,MA3IN,OA4IMgD,WAAW,SAAUhR,EAAK,CAAC,EAAGA,EAAG,MAAwB,CACrDu6B,WAAY,aAAaniB,OAAOwH,EAAeuiI,eAC/ChoH,YAAa,aAAa/hB,OAAOwH,EAAeuiI,gBACjDniJ,GAAK8hJ,EAAoBz/I,KAEhCA,IAAS,IAAUg/I,YAAc,CAC7Bp2I,KAxIN,GA0IE5I,IAAS,IAAUm+I,gBAAkB,CACjCv1I,KA3IN,EA4IMI,MAAOm2I,EACPxzI,MArJR,KAuJI3L,IAAS,IAAUo+I,YAAc,CAC7Bp1I,MAAO,OACPJ,KAAM,GAEV+2I,GAAiB,CACb1oH,SAAU,SAEdipB,GAAUs+F,IAAgBH,GAAiB,KAAoBxF,eAC/D34F,GAAUs+F,GAAeH,GAAiB,KAAoBryC,eAC7D9rD,GAAUs+F,IAAgBH,GAAiB,KAAoB0B,gBAC/D7/F,GAAUs+F,GAAeH,GAAiB,KAAoB2B,gBAC/DvB,GAEJG,SAAU,CACN59I,EAAW49I,SACX,CAEI96H,gBAAiBvG,EAAe4rB,eAChC0H,WAAY,GACZliC,WAAYrJ,EAAK,CAAC,EACdA,EAAG,uBAAuByQ,OAAO,KAAsB,QAAU,CAC7D0O,SAAU,SACVnZ,IAAK,EACLs8B,OAAQ,GAEZtiC,IAERo5I,GAAuB,CACnB7tG,WAAY,YAGpBmrG,WAAY,CACRh7I,EAAWg7I,WACX,CACI13H,QAAS,OACTiC,eAAgB,YAEpBm4H,GAAuB,CACnBjsI,OAjHO,SAoHf6xG,aAAc,CACVtjH,EAAWsjH,aACX,CACIhgG,QAAS,OACT6S,cAAe,SACftQ,SAAU,EACV8f,UAAW,WAGnBsZ,OAAQ,CACJj/C,EAAWi/C,OACXy/F,EACA,CACIxpE,UAAW,cAEf+oC,IACKy/B,GAAuB,CACxB73H,SAAU,GAEd63H,GAAuB,CAEnBvrH,WAAY,IAGpBmpH,WAAY,CACRt7I,EAAWs7I,WACX35H,EAAMyzF,OACN,CACI94F,MAAOC,EAAeC,SACtB0G,WAAY,OACZk5B,aAAc,aACdD,SAAU,aACV4oD,UAAW,aACXk6C,QAAS,QAEbn6D,GAEJqoD,kBAAmB,CACfntI,EAAWmtI,kBACX,CACIxnG,UAAW,QAEfi3G,GAAoB,CAChB/2H,SAAU,EACVvC,QAAS,UACT6S,cAAe,YAGvB5V,QAAS,CACLvgB,EAAWugB,QACXm+H,EACA,CACItwG,cAAe,IAEnBwuG,GAAoB,CAChBjvI,WAAYpJ,EAAK,CAAC,EACdA,EAAG,uBAAuBwQ,OAAO,KAAsB,QAAU,CAC7D8Q,SAAU,GAEdthB,KAGZo3I,OAAQ,CACJ37I,EAAW27I,OACX,CAEIxpH,WAAY,EACZmhD,UAAW,wBACXuW,WAAY,WAAW90E,OAAO,KAAmB81G,eAAgB,KAAK91G,OAAO,KAAmBmqI,eAChGvxI,WAAYnJ,EAAK,CAAC,EACdA,EAAG,uBAAuBuQ,OAAO,KAAsB,QAAU,CAC7D0O,SAAU,SACVjZ,OAAQ,GAEZhG,IAER63I,GAAkB,CACdv5H,gBAAiBvG,EAAe4rB,eAChCg3G,eAAgB5iI,EAAeuiI,gBAGvClD,YAAa,CACT57I,EAAW47I,YACX8C,EACA,CACItwG,cAAe,GACfyB,WAAY,KAGpB+uB,mBAAoB,CAChBs8E,YAAa,CACTlvI,KAAM,CACFhM,EAAWk7I,YACX,CACI5jH,YAAa,GACbhb,MAAO7e,EAAMikB,QAAQO,iBACrBkB,SAAU,KAAcqxC,OAE5BkpF,GAAuB,CACnBpmH,YAAa,EACb7lB,OAAQ,OACR9G,MAAO,SAGf+Z,YAAa,CACTpI,MAAO7e,EAAMikB,QAAQW,kBAKzC,QCxUgD/gB,EAAW,CACvD0iB,MAAO,S,kBCJJ,IAAIo7H,E,iBACX,SAAWA,GAUPA,EAAUA,EAAsB,WAAI,GAAK,aASzCA,EAAUA,EAAyB,cAAI,GAAK,gBAS5CA,EAAUA,EAA0B,eAAI,GAAK,iBAS7CA,EAAUA,EAAkB,OAAI,GAAK,SASrCA,EAAUA,EAAiB,MAAI,GAAK,QAUpCA,EAAUA,EAAsB,WAAI,GAAK,aAUzCA,EAAUA,EAAsB,WAAI,GAAK,aAOzCA,EAAUA,EAAkB,OAAI,GAAK,SAOrCA,EAAUA,EAAsB,WAAI,GAAK,YAC5C,CAjFD,CAiFGA,IAAcA,EAAY,CAAC,G,0KC7E1BljI,GAAgB,EAAAC,EAAA,KAChBmjB,EAAgB,CAChB3zB,KAAM,KAAY0zI,OAClBC,SAAU,KAAoB3sI,KAC9Bq6B,SAAU,GACVuyG,qBAAqB,GAgBdC,EAAc,cAAiB,SAAU/9G,EAAsBC,GACtE,IAAI7jC,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAE5Ca,EAAU,SAAa,MACvBsd,GAAgB,EAAAvrC,EAAA,GAAcqtB,EAAcY,GAI5Cm9G,EAAU,WAEV,OAAO5hJ,EAAMme,MAAQne,EAAM6hJ,aAAe,EAC9C,EAQIC,EAAgB,SAAUC,EAAmBC,EAAgBC,GAC7D,IAAIv/H,EAAUs/H,GAAkBA,EAAehiJ,EAAOiiJ,GACtD,OAAOv/H,EAAW,gBAAoB,MAAO,CAAE7F,IAAK,OAAQva,UAAWy/I,GAAqBr/H,QAAYjf,CAC5G,EAMI6pB,EAAe,SAAUnP,EAAM+jI,GAG/B,YAFgB,IAAZA,IAAsBA,GAAU,GAE7B/jI,EACD+jI,EACI,WAEE,OAAQ,gBAAoBz/H,EAAA,EAAa,CAAEC,QAASvE,EAAMwE,aAAc,IAAoBC,OAAQf,gBAAiB3I,EAAA,EAAgBC,aAAegF,EACxJ,EACE,WAAc,OAAO,gBAAoB,WAAgB,KAAMA,EAAO,OAC1E1a,CACV,EAKI0+I,EAA8B70H,EAAas0H,IAAW5hJ,EAAM0hJ,qBAC5DU,EAAgC90H,EAAattB,EAAMqtB,cAAertB,EAAM0hJ,qBACxEW,EAA+B/0H,EAAattB,EAAMsiJ,aAActiJ,EAAM0hJ,qBACtEa,EAA+Bj1H,EAAattB,EAAMwiJ,aAAcxiJ,EAAM0hJ,qBACtEe,EAAqBziJ,EAAMyiJ,mBAAoB3jJ,EAAKkB,EAAM0iJ,qBAAsBA,OAA8B,IAAP5jJ,EAAgByjJ,EAA+BzjJ,EAAI2H,EAAKzG,EAAM2iJ,oBAAqBA,OAA6B,IAAPl8I,EAAgB07I,EAA8B17I,EAAIC,EAAK1G,EAAM4iJ,sBAAuBA,OAA+B,IAAPl8I,EAAgB07I,EAAgC17I,EAAIC,EAAK3G,EAAM6iJ,qBAAsBA,OAA8B,IAAPl8I,EAAgB07I,EAA+B17I,EAAIid,EAAK5jB,EAAMsnH,oBAAqBA,OAA6B,IAAP1jG,EARnf,SAAUk/H,GACxC,OAAO,gBAAoB/oC,EAAA,GAAa,QAAS,CAAC,EAAG+oC,GACzD,EAMmkBl/H,EAC/jB9V,EAAO9N,EAAM8N,KAEbusG,EAAqBr6G,EAAMq6G,mBAAoB/3G,EAAYtC,EAAMsC,UAAWygJ,EAAY/iJ,EAAM+iJ,UAAWC,EAAyBhjJ,EAAMgjJ,uBAAwBC,EAAWjjJ,EAAMijJ,SAAUljJ,EAASC,EAAMD,OAAQovC,EAAWnvC,EAAMmvC,SAAU6qE,EAAgBh6G,EAAMg6G,cAAekpC,EAAoBljJ,EAAMkjJ,kBAAmBC,EAA0BnjJ,EAAMmjJ,wBAAyBjpC,EAAWl6G,EAAMk6G,SAAUE,EAAgBp6G,EAAMo6G,cAAegpC,EAAoBpjJ,EAAMojJ,kBAAmBC,EAAgBrjJ,EAAMqjJ,cAAeC,EAA4BtjJ,EAAMsjJ,0BAEhjBC,EAAevjJ,EAAMujJ,aAAc76B,EAAmB1oH,EAAM0oH,iBAAkB+4B,EAAWzhJ,EAAMyhJ,SAAU+B,GAAgBxjJ,EAAMwjJ,cAAeC,GAAiBzjJ,EAAMyjJ,eAAgBC,GAA8B1jJ,EAAM0jJ,4BAA6BC,GAAoB3jJ,EAAM2jJ,kBAAmB/jJ,GAAQI,EAAMJ,MAC7SgkJ,IAAmB,QAAS,CAAEvpC,mBAAoBA,EAAoB2oC,uBAAwBA,EAAwBC,SAAUA,EAAU9zG,SAAUA,EAAU6qE,cAAeA,EAAekpC,kBAAmBA,EAAmBC,wBAAyBA,EAAyBjpC,SAAUA,EAAUE,cAAeA,EAAegpC,kBAAmBA,EAAmBE,0BAA2BA,EAA2BC,aAAcA,EAAc76B,iBAAkBA,EAAkB+4B,SAAUA,EAAU+B,cAAeA,GAAeE,4BAA6BA,GAA6B51I,KAAMA,EAAMqQ,KAAMyjI,IAAWyB,cAAeA,EAAeI,eAAgBA,IAAkBV,GAC3qB5gJ,GAAakc,EAActe,EAAQ,CACnCH,MAAOA,GACP0C,UAAWA,EACXqhJ,kBAAmBA,GACnBlC,SAAUA,EACV3zI,KAAMA,IAEN2B,IAAW,QAAezP,EAAO,MACjC6jJ,GAAkB,gBAAoB,MAAO,CAAEvhJ,UAAWH,GAAWs3G,SACrEqoC,EAAc3/I,GAAW0/I,YAAac,EAAqBR,GAC3DL,EAAc3/I,GAAWkrB,cAAeu1H,EAAuBR,GAC/DN,EAAc3/I,GAAWmgJ,aAAcO,EAAsBR,GAC7DP,EAAc3/I,GAAWqgJ,aAAcE,EAAsBH,GAC7DviJ,EAAMoB,UACV,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGqO,GAAU,CAAEO,IAAK+xC,EAAez/C,UAAWH,GAAWgM,KAAM4O,MAAOkmI,EAAW,CAAErvI,OAAQqvI,EAAUzrH,SAAUyrH,QAAax/I,IACrK6jH,EAAoBs8B,GAAkBt8B,KAEpCm7B,GACE30I,IAAS,KAAYg2I,OACrBh2I,IAAS,KAAYi2I,QACrBj2I,IAAS,KAAYk2I,OACrBH,GAGZ,IACAlC,EAAYxiJ,YAAc,c,0BC3GtBikB,EAAmB,CACnBjV,KAAM,aACN21I,MAAO,oBACPC,OAAQ,qBACRE,OAAQ,qBACRC,OAAQ,qBACRC,OAAQ,qBACR7pC,OAAQ,qBACR8pC,OAAQ,qBACR5C,OAAQ,qBACR6C,OAAQ,qBACRC,OAAQ,qBACRC,QAAS,sBACTC,QAAS,sBACTC,UAAW,qBACXC,KAAM,mBACN/X,QAAS,sBACTgY,KAAM,mBACNC,aAAc,2BACdC,QAAS,sBACTprC,QAAS,qBACTooC,YAAa,yBACbx0H,cAAe,2BACfi1H,aAAc,0BACdE,aAAc,0BACdsC,YAAa,0BCpBN7+B,GAAU,EAAAtiG,EAAA,GAAOg+H,GDsBL,SAAU3hJ,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWqhJ,EAAoB3jJ,EAAM2jJ,kBAAmB/jJ,EAAQI,EAAMJ,MACxF8e,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MACrD3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDkO,GAAO,QAAY9N,EAAM8N,MACzB2zI,GAAW,QAAgBzhJ,EAAMyhJ,UACjCsD,EAAiC,OACjCC,EAAmB,CACnBvmI,MAAOC,EAAeogC,YACtB/5B,WAAY,KAAYT,QACxBgB,SAAUxB,EAAMiC,MAAMT,UAE1B,MAAO,CACHnX,KAAM,CACFhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,KACA,CACI9G,MAAOC,EAAeC,SACtBiH,SAAU,WACVhS,OAAQ,KAAY4tI,OACpBhqH,SAAU,KAAYgqH,OACtB/7H,QAAS,OACTC,WAAY,SACZ5V,UAAW,CACP,kBAAmB,CACf2V,QAAS,UAIrB3X,EAAKm3I,SAAW,CACZ9iJ,EAAW2hJ,MACX,CACIlwI,OAAQ,KAAYkwI,MACpBtsH,SAAU,KAAYssH,QAI9Bh2I,EAAKo3I,UAAY,CACb/iJ,EAAW4hJ,OACX,CACInwI,OAAQ,KAAYmwI,OACpBvsH,SAAU,KAAYusH,SAI9Bj2I,EAAKq3I,UAAY,CACbhjJ,EAAW8hJ,OACX,CACIrwI,OAAQ,KAAYqwI,OACpBzsH,SAAU,KAAYysH,SAG9Bn2I,EAAKs3I,UAAY,CACbjjJ,EAAW+hJ,OACX,CACItwI,OAAQ,KAAYswI,OACpB1sH,SAAU,KAAY0sH,SAG9Bp2I,EAAKs3I,UACDzB,GAAqB,CACrB/vI,OAAQ,QAGZ9F,EAAKu3I,UAAY,CACbljJ,EAAWgiJ,OACX,CACIvwI,OAAQ,KAAYuwI,OACpB3sH,SAAU,KAAY2sH,SAG9Br2I,EAAKu3I,UACD1B,GAAqB,CACrB/vI,OAAQ,QAEZ9F,EAAKw3I,UAAY,CACbnjJ,EAAWm4G,OACX,CACI1mG,OAAQ,KAAY0mG,OACpB9iF,SAAU,KAAY8iF,SAG9BxsG,EAAKy3I,UAAY,CACbpjJ,EAAWiiJ,OACX,CACIxwI,OAAQ,KAAYwwI,OACpB5sH,SAAU,KAAY4sH,SAG9Bt2I,EAAK03I,UAAYrjJ,EAAWq/I,OAC5B1zI,EAAK23I,UAAY,CACbtjJ,EAAWkiJ,OACX,CACIzwI,OAAQ,KAAYywI,OACpB7sH,SAAU,KAAY6sH,SAG9Bv2I,EAAK43I,UAAY,CACbvjJ,EAAWmiJ,OACX,CACI1wI,OAAQ,KAAY0wI,OACpB9sH,SAAU,KAAY8sH,SAG9Bx2I,EAAK63I,WAAa,CACdxjJ,EAAWoiJ,QACX,CACI3wI,OAAQ,KAAY2wI,QACpB/sH,SAAU,KAAY+sH,UAG9Bz2I,EAAK83I,WAAa,CACdzjJ,EAAWqiJ,QACX,CACI5wI,OAAQ,KAAY4wI,QACpBhtH,SAAU,KAAYgtH,UAM9B/C,EAASoE,aAAe1jJ,EAAWsiJ,UACnChD,EAASqE,QAAU3jJ,EAAWuiJ,KAC9BjD,EAASsE,WAAa5jJ,EAAWwqI,QACjC8U,EAASuE,QAAU7jJ,EAAWwiJ,KAC9BlD,EAASwE,gBAAkB9jJ,EAAWyiJ,aACtCnD,EAASyE,WAAa/jJ,EAAW0iJ,QACjCviJ,GAEJm3G,QAAS,CACLt3G,EAAWs3G,QACX,CACIr0F,QAAS,gBACToS,SAAU,EACV1qB,MAAO,OACPunB,UAAW,OACX5O,QAAS,OACT6S,cAAe,SACf5Q,eAAgB,iBAEnB5Z,EAAKm3I,SAAWn3I,EAAKo3I,WAAa,CAC/BnzG,YAAa,KAEhBjkC,EAAKs3I,UAAYt3I,EAAKu3I,UAAYv3I,EAAKw3I,WAAa,CACjDlgI,QAAS,UAEZtX,EAAKy3I,UAAYz3I,EAAK03I,WAAa,CAChCpgI,QAAS,WAGjBy8H,YAAa,CACT1/I,EAAW0/I,YACX,KACA,CACIpjI,MAAOC,EAAeC,SACtBoG,WAAY,KAAYT,QACxBgB,SAAUxB,EAAMyB,OAAOD,SACvBxV,UAAW,CACP,SAAU,CACN2O,MAAOC,EAAeqvB,oBAIlC41G,GAAqB,CACjB/vI,OAAQmxI,EACR1/H,WAAY0/H,EACZx7G,UAAW,WAEdz7B,EAAKm3I,SAAWn3I,EAAKo3I,WAAa,CAC/B5/H,SAAUxB,EAAMiC,MAAMT,SACtBD,WAAY,KAAYy+H,OAE5Bh2I,EAAKq3I,UAAY,CACb9/H,WAAY,KAAY8+H,SAE3Br2I,EAAKs3I,UAAYt3I,EAAKu3I,UAAYv3I,EAAKw3I,UAAYx3I,EAAKy3I,UAAYz3I,EAAK03I,WACtE7B,GAAqB,CACrB/vI,OAAQ,KAEX9F,EAAK23I,UAAY33I,EAAK43I,UAAY53I,EAAK63I,WAAa73I,EAAK83I,YAAc,CACpEtgI,SAAUxB,EAAMyzF,OAAOjyF,WAE1BxX,EAAK23I,UAAY33I,EAAK43I,UAAY53I,EAAK63I,WAAa73I,EAAK83I,YACtDjC,GAAqB,CACrB/vI,OAAQ,KAGhByZ,cAAe,CACXlrB,EAAWkrB,cACX,KACA23H,GACCl3I,EAAKm3I,SAAWn3I,EAAKo3I,UAAYp3I,EAAKq3I,UAAYr3I,EAAKs3I,UAAYt3I,EAAKu3I,UAAYv3I,EAAKw3I,WAAa,CACnG7/H,QAAS,QAEbk+H,GAAqB,CACjBl+H,QAAS,QACT7R,OAAQmxI,EACR1/H,WAAY0/H,EACZx7G,UAAW,UAEfz7B,EAAKs3I,UACDzB,GAAqB,CACrB/vI,OAAQ,KAEX9F,EAAK23I,UAAY33I,EAAK43I,UAAY53I,EAAK63I,WAAa73I,EAAK83I,YAAc,CACpEtgI,SAAUxB,EAAMyB,OAAOD,WAE1BxX,EAAK23I,UAAY33I,EAAK43I,UAAY53I,EAAK63I,WAAa73I,EAAK83I,YACtDjC,GAAqB,CACrB/vI,OAAQ,KAGhB0uI,aAAc,CACVngJ,EAAWmgJ,aACX,KACA0C,EACA,CACIv/H,QAAS,OACTH,SAAUxB,EAAMyB,OAAOD,WAE1BxX,EAAK43I,UAAY53I,EAAK63I,WAAa73I,EAAK83I,YAAc,CACnDngI,QAAS,UAGjB+8H,aAAc,CACVrgJ,EAAWqgJ,aACX,KACAwC,EACA,CACIv/H,QAAS,OACTH,SAAUxB,EAAMyB,OAAOD,WAE1BxX,EAAK63I,WAAa73I,EAAK83I,YAAc,CAClCngI,QAAS,UAGjBq/H,YAAa,CAAC3iJ,EAAW2iJ,YAAa,MAE9C,QCrQoDrhJ,EAAW,CAC3D0iB,MAAO,W,kBCLJ,IAAIggI,EA4FAC,EAaAC,E,oCAxGX,SAAWF,GAKPA,EAAYA,EAAkB,KAAI,GAAK,OAKvCA,EAAYA,EAA6B,gBAAI,GAAK,kBAKlDA,EAAYA,EAAwB,WAAI,GAAK,aAK7CA,EAAYA,EAAmB,MAAI,GAAK,QAKxCA,EAAYA,EAAqB,QAAI,GAAK,UAK1CA,EAAYA,EAAmB,MAAI,GAAK,QAKxCA,EAAYA,EAAwB,WAAI,GAAK,aAI7CA,EAAYA,EAAmB,MAAI,IAAM,QAKzCA,EAAYA,EAAoB,OAAI,GAAK,SAKzCA,EAAYA,EAAoB,OAAI,GAAK,SAIzCA,EAAYA,EAAoB,OAAI,IAAM,SAK1CA,EAAYA,EAAoB,OAAI,GAAK,SAIzCA,EAAYA,EAAoB,OAAI,IAAM,SAI1CA,EAAYA,EAAoB,OAAI,IAAM,SAI1CA,EAAYA,EAAoB,OAAI,IAAM,SAI1CA,EAAYA,EAAoB,OAAI,IAAM,SAI1CA,EAAYA,EAAoB,OAAI,IAAM,SAI1CA,EAAYA,EAAqB,QAAI,IAAM,UAI3CA,EAAYA,EAAqB,QAAI,IAAM,SAC9C,CAvFD,CAuFGA,IAAgBA,EAAc,CAAC,IAKlC,SAAWC,GACPA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAAyB,QAAI,GAAK,UAClDA,EAAgBA,EAAwB,OAAI,GAAK,SACjDA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAAqB,IAAI,GAAK,MAC9CA,EAAgBA,EAAyB,QAAI,GAAK,UAClDA,EAAgBA,EAAsB,KAAI,GAAK,MAClD,CARD,CAQGA,IAAoBA,EAAkB,CAAC,IAK1C,SAAWC,GACPA,EAAqBA,EAAgC,UAAI,GAAK,YAC9DA,EAAqBA,EAA2B,KAAI,GAAK,OACzDA,EAAqBA,EAA+B,SAAI,GAAK,WAC7DA,EAAqBA,EAA2B,KAAI,GAAK,OACzDA,EAAqBA,EAAiC,WAAI,GAAK,aAC/DA,EAAqBA,EAA4B,MAAI,GAAK,QAC1DA,EAAqBA,EAAgC,UAAI,GAAK,YAC9DA,EAAqBA,EAAgC,UAAI,GAAK,YAC9DA,EAAqBA,EAA2B,KAAI,GAAK,OACzDA,EAAqBA,EAA8B,QAAI,GAAK,UAC5DA,EAAqBA,EAA6B,OAAI,IAAM,SAK5DA,EAAqBA,EAA4B,MAAI,IAAM,QAC3DA,EAAqBA,EAA6B,OAAI,IAAM,SAK5DA,EAAqBA,EAA0B,IAAI,IAAM,MACzDA,EAAqBA,EAA8B,QAAI,IAAM,UAK7DA,EAAqBA,EAAkC,YAAI,IAAM,cACjEA,EAAqBA,EAA6B,OAAI,IAAM,SAC5DA,EAAqBA,EAA+B,SAAI,IAAM,WAC9DA,EAAqBA,EAA2B,KAAI,IAAM,OAC1DA,EAAqBA,EAA+B,SAAI,IAAM,WAC9DA,EAAqBA,EAA+B,SAAI,IAAM,WAC9DA,EAAqBA,EAA+B,SAAI,IAAM,WAK9DA,EAAqBA,EAA2B,KAAI,IAAM,OAC1DA,EAAqBA,EAA2B,KAAI,IAAM,OAC1DA,EAAqBA,EAA2B,KAAI,IAAM,MAC7D,CA1CD,CA0CGA,IAAyBA,EAAuB,CAAC,G,gMC7IhDhoI,GAAgB,EAAAC,EAAA,GAAmB,CAGnCk0G,UAAW,MAMJ8zB,EAAsB,cAAiB,SAAUtmJ,EAAO6jC,GAC/D,IAAIo/G,EAAWjjJ,EAAMijJ,SAAUI,EAAgBrjJ,EAAMqjJ,cAAetjJ,EAASC,EAAMD,OACnF0hJ,EAAWzhJ,EAAMyhJ,SAAU7hJ,EAAQI,EAAMJ,MAAO4jJ,EAAgBxjJ,EAAMwjJ,cAAeC,EAAiBzjJ,EAAMyjJ,eACxGh/G,EAAU,SAAa,MACvBsd,GAAgB,EAAAvrC,EAAA,GAAcqtB,EAAcY,GAC5C32B,GAAO,QAAY9N,EAAM8N,MAEzBy4I,IAAez4I,EAAKm3I,SAAWn3I,EAAKo3I,UAAYp3I,EAAKq3I,UAAYr3I,EAAKs3I,UAAYt3I,EAAKu3I,UAAYv3I,EAAKw3I,aACvGrC,GAAWA,EAAW,IACvBuD,EAAsBvD,EACpBA,EAtBwB,EACZ,GAsBRA,EAvBoB,EAuBqB,KACzCwD,OACJ,GAMFC,EAAgCzD,EAC9B,CAAE39H,SANe29H,EACjBA,EA5BoB,EAGJ,GA0BZA,EA7BgB,EA6BqB,KACrC0D,OACJ,GAE8BthI,WAAYmhI,QAC1C/iJ,EACFmjJ,EAA4B3D,EAAW,CAAEn2I,MAAO05I,EAAqB5yI,OAAQ4yI,QAAwB/iJ,EAErGtB,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP6hJ,SAAUA,EACV3zI,KAAM9N,EAAM8N,KACZu1I,cAAeA,EACfI,eAAgBA,IAEpB,OAAIhC,IAAa,KAAoB3sI,KAC1B,KAEH,gBAAoB,MAAO,CAAE4M,KAAM,eAAgBpf,UAAWH,EAAWs/I,SAAU1kI,MAAO6pI,EAA2B57H,MAAOw4H,EAAexzI,IAAK+xC,GAAiBwkG,GAAe,gBAAoB5mI,EAAA,EAAM,CAAErd,UAAWH,EAAW0kJ,aAAc1lI,SAAU2lI,EAAc9mJ,EAAMyhJ,SAAUzhJ,EAAMqjJ,eAAgBtmI,MAAO2pI,IACjU,IAEA,SAASI,EAAcrF,EAAU4B,GAC7B,GAAK5B,EAAL,CAGA,IAAIsF,EAAU,aACd,OAAQ,KAAoBtF,IACxB,IAAK,SACD,MAAO,aACX,IAAK,OACD,OAAO4B,EAAgB0D,EAAU,aACrC,IAAK,MACD,MAAO,aACX,IAAK,UACD,OAAO1D,EAAgB0D,EAAU,GAEzC,MAAO,EAZP,CAaJ,CAjBAT,EAAoBnnJ,YAAc,sBCpDlC,IAAIikB,EAAmB,CACnBq+H,SAAU,sBACVoF,aAAc,2BAiLlB,SAASG,EAAwBvoI,GAC7B,MAAO,CACHA,MAAOA,EACPmI,YAAanI,EAErB,CACA,SAASwoI,EAAsBC,EAAYzoI,GACvC,MAAO,CACH3O,UAAW,CACP,UAAW,CACP6W,OAAQ,GAAGzP,OAAOgwI,EAAY,WAAWhwI,OAAOuH,KAIhE,CACA,SAAS0oI,EAAcr5I,GACnB,MAAO,CACH8F,OAAQ9F,EACRhB,MAAOgB,EAEf,CACA,SAASmX,EAAgBxG,GACrB,MAAO,CAAEwG,gBAAiBxG,EAC9B,CCvMO,IAAI2nI,GAAkB,EAAAziI,EAAA,GAAO2iI,GDCb,SAAUtmJ,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EACpBv2B,EAAQI,EAAMJ,MAAO6jJ,EAAiBzjJ,EAAMyjJ,eAC5C/kI,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MACrD3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDkO,GAAO,QAAY9N,EAAM8N,MACzB2zI,GAAW,QAAgBzhJ,EAAMyhJ,UAEjC2F,EAA0B3D,GAAkBA,EAAegB,WAAc,UACzE4C,EAAqB5D,GAAkBA,EAAeiB,MAAS,UAC/D4C,EAAqB7D,GAAkBA,EAAekB,MAAS,UAC/D4C,EAAoB9D,GAAkBA,EAAe+D,KAAQ,UAC7DC,EAAwBhE,GAAkBA,EAAeoB,SAAY,UACrE6C,EAAoBjE,GAAkBA,EAAekE,KAAQ,UAC7DC,EAA2BnE,GAAkBA,EAAep5G,YAAe3rB,EAAe4rB,eAC1Fu9G,EAAuBpG,EAASyE,WAC/BlmJ,EAAMqjJ,gBAAkB5B,EAASoE,aAAepE,EAASuE,QAAUvE,EAASqE,QAAUrE,EAASwE,gBAGhGiB,EAAap5I,EAAK43I,UAAY53I,EAAK63I,UADN,MADA,MAGjC,MAAO,CACHlE,SAAU,CACNt/I,EAAWs/I,UACX,SAAS,QAAS,CAAE77H,SAAU,WAAYhS,OAAQ,KAAoBk0I,OAAQh7I,MAAO,KAAoBg7I,OAAQhzH,aAAc,MAAOroB,IAAK,OAAQtC,MAAO,OAAQwC,OAAQ,OAAQga,OAAQ,aAAazP,OAAO0wI,GAA0BvzH,UAAW,SAAUW,UAAW,cAAe+yH,eAAgB,eAAgB,WAAiC,CAAEj4I,WAAYhR,EAAK,CAAC,EACpWA,EAAG,MAAwB,CACvB8nB,YAAa,SACb3B,gBAAiB,cAErBnmB,MACPgP,EAAKm3I,SAAWn3I,EAAKo3I,WAAa,CAC/B/6I,MAAO,OACPsC,IAAK,MACL1C,KAAM,EACN4c,OAAQ,EACR7W,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgG,IAAK,MACLka,OAAQ,wBAEZlgB,KAEPqH,EAAKm3I,SAAWn3I,EAAKo3I,UAAYp3I,EAAKs3I,UAAYt3I,EAAKu3I,UAAYv3I,EAAKw3I,WACrE6B,EAAc,KAAoBrD,QACrCh2I,EAAKy3I,UAAYz3I,EAAK03I,WAAa2B,EAAc,KAAoBW,QACtEh6I,EAAKq3I,UAAY,CACbvxI,OAAQ,KAAoBo0I,MAC5Bl7I,MAAO,KAAoBk7I,MAC3B7+G,YAAa,SAEjBr7B,EAAK23I,UAAY0B,EAAc,KAAoBlD,QACnDn2I,EAAK43I,UAAYyB,EAAc,KAAoBc,QACnDn6I,EAAK63I,WAAawB,EAAc,KAAoBhD,QACpDr2I,EAAK83I,WAAauB,EAAc,KAAoB7sC,QACpDmnC,EAASoE,aAAe,CACpB5gI,gBAAiBmiI,EACjBt3I,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwBue,EAAgB,aAC3Cve,IAER+6I,EAASqE,QAAU7gI,EAAgBoiI,GACnC5F,EAASsE,WAAa,CAClB,CACIj2I,WAAYnJ,EAAK,CAET,SAAUmH,EAAKy3I,UAAYz3I,EAAK03I,UAAY13I,EAAK43I,UAAY53I,EAAK63I,UAC5D,CACEjjI,QAAS,KACT5V,MAAO,OACP8G,OAAQszI,EACRjiI,gBAAiBqiI,EACjBh+G,UAAW,kCACX1jB,SAAU,WACVnZ,IAAK,MACL1C,KAAM,QAERtG,GAEVkD,EAAG,MAAwB,CACvBmJ,UAAW,CACP,SAAU,CACNhD,MAAO,mBACP/C,KAAM,MACNkb,gBAAiB,YAI7Bte,KAGZ86I,EAASuE,QAAU/gI,EAAgBqiI,GACnC7F,EAASwE,gBAAkBhhI,EAAgBsiI,GAC3C9F,EAASyE,WAAajhI,EAAgBwiI,IACrCI,GAAwBpG,EAASsE,YAAc,CAC5C,CACI9gI,gBAAiB2iI,EACjB93I,WAAY8T,EAAK,CACT,UAAW,CACPlB,QAAS,KACT5V,MAAO,OACP8G,OAAQ,OACRgS,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACN4c,OAAQ,GAAGzP,OAAOgwI,EAAY,WAAWhwI,OAAOowI,GAChDxyH,aAAc,MACdE,UAAW,eAGnBpR,EAAG,MAAwB,CACvBqB,gBAAiB,aACjBnV,UAAW,CACP,UAAW,CACPhD,MAAO,mBACP8G,OAAQ,mBACRnH,IAAK,MACL1C,KAAM,MACN6c,YAAa,YAIzBhD,KAGZikI,GAAwBpG,EAASoE,aAAeoB,EAAsBC,EAAYE,GAClFS,GAAwBpG,EAASuE,QAAUiB,EAAsBC,EAAYI,GAC7EO,GAAwBpG,EAASqE,QAAUmB,EAAsBC,EAAYQ,GAC7EG,GAAwBpG,EAASwE,gBAAkBgB,EAAsBC,EAAYK,GACrFM,GAAwBpG,EAASyE,WAAae,EAAsBC,EAAYO,GAChFI,GACIpG,EAASyE,WACTlmJ,EAAMqjJ,eACN4D,EAAsBC,EAAYQ,IAE1Cb,aAAc,CACV1kJ,EAAW0kJ,aACX,CACIpoI,MAAOmpI,EACPtiI,SAAU,MACVD,WAAY,KAAoByiI,OAChCxuH,cAAe,MACfxpB,WAAYqmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB1X,MAAO,UAEX0X,IAERroB,EAAK23I,UAAY,CACbngI,SAAU,MACVD,WAAY,KAAoB4+H,QAEpCn2I,EAAK43I,UAAY,CACbpgI,SAAUxB,EAAMiC,MAAMT,SACtBD,WAAY,KAAoB4iI,QAEpCn6I,EAAK63I,WAAa,CACdrgI,SAAUxB,EAAMyB,OAAOD,SACvBD,WAAY,KAAoB8+H,QAEpCr2I,EAAK83I,WAAa,CACdtgI,SAAUxB,EAAMyB,OAAOD,SACvBD,WAAY,KAAoBi1F,QAEpCmnC,EAASqE,QAAU,CACflgI,SAAU,WACV7b,KAAM89I,OAAuBpkJ,EAAY,OAE7CokJ,GAAwBpG,EAASoE,aAAemB,EAAwBI,GACxES,GAAwBpG,EAASuE,QAAUgB,EAAwBM,GACnEO,GAAwBpG,EAASqE,QAAUkB,EAAwBU,GACnEG,GAAwBpG,EAASwE,gBAAkBe,EAAwBO,GAC3EM,GAAwBpG,EAASyE,WAAac,EAAwBS,GACtEI,GAAwBpG,EAASyE,WAAalmJ,EAAMqjJ,eAAiB2D,EAAwBU,IAGzG,QC/KoEjkJ,EAAW,CAAE0iB,MAAO,oB,sBCEpF+hI,EAAwB,CACxB,KAAqBC,UACrB,KAAqB/tG,KACrB,KAAqBguG,SACrB,KAAqBC,KACrB,KAAqBluG,MACrB,KAAqBmuG,UACrB,KAAqBC,UACrB,KAAqBC,KACrB,KAAqBC,QACrB,KAAqBC,OACrB,KAAqBC,OACrB,KAAqBC,SACrB,KAAqBC,QACrB,KAAqBC,OACrB,KAAqBC,KACrB,KAAqBC,SACrB,KAAqBC,SACrB,KAAqBC,KACrB,KAAqBC,KACrB,KAAqBC,UAErBC,EAA6BnB,EAAsB9nJ,OAiFhD,SAASkpJ,EAAwBtpJ,GAEpC,IAAI6hJ,EAAc7hJ,EAAM6hJ,YAAa1jI,EAAOne,EAAMme,KAC9Ci8F,EAAgBp6G,EAAMo6G,cAS1B,MAP6B,iBAAlBA,EACaA,EAvE5B,SAAuCmvC,GACnC,OAAQA,GACJ,KAAK,KAAqBpB,UACtB,MAAO,UACX,KAAK,KAAqB/tG,KACtB,MAAO,UACX,KAAK,KAAqBguG,SACtB,MAAO,UACX,KAAK,KAAqBC,KACtB,MAAO,UACX,KAAK,KAAqBmB,WAC1B,KAAK,KAAqBrvG,MACtB,MAAO,UACX,KAAK,KAAqBmuG,UACtB,MAAO,UACX,KAAK,KAAqBC,UACtB,MAAO,UACX,KAAK,KAAqBC,KACtB,MAAO,UACX,KAAK,KAAqBC,QACtB,MAAO,UACX,KAAK,KAAqBC,OACtB,MAAO,UACX,KAAK,KAAqBC,OACtB,MAAO,UAEX,KAAK,KAAqBzuG,IACtB,MAAO,UACX,KAAK,KAAqB0uG,SACtB,MAAO,UACX,KAAK,KAAqBC,QACtB,MAAO,UACX,KAAK,KAAqBjgC,YACtB,MAAO,cACX,KAAK,KAAqBkgC,OACtB,MAAO,UACX,KAAK,KAAqBC,KACtB,MAAO,UACX,KAAK,KAAqBC,SACtB,MAAO,UACX,KAAK,KAAqBC,SACtB,MAAO,UACX,KAAK,KAAqBC,KACtB,MAAO,UACX,KAAK,KAAqBC,KACtB,MAAO,UACX,KAAK,KAAqBC,SACtB,MAAO,UAEX,KAAK,KAAqBniI,MACtB,MAAO,UACX,KAAK,KAAqBwiI,KACtB,MAAO,UAEnB,CAqB4BC,CADpBtvC,OAAkC32G,IAAlB22G,EAA8BA,EAzFtD,SAAkCj7G,GAC9B,IAAIsf,EAAQ,KAAqB27B,KACjC,IAAKj7C,EACD,OAAOsf,EAGX,IADA,IAAIkrI,EAAW,EACNC,EAAOzqJ,EAAYiB,OAAS,EAAGwpJ,GAAQ,EAAGA,IAAQ,CACvD,IAAIC,EAAK1qJ,EAAY2qJ,WAAWF,GAC5BG,EAAQH,EAAO,EAEnBD,IAAaE,GAAME,IAAUF,GAAO,EAAIE,EAC5C,CAEA,OADQ7B,EAAsByB,EAAWN,EAE7C,CA2EsEW,CAAyB7rI,GAAQ0jI,GAIvG,CCjHA,IAAI,GAAgB,EAAAvjI,EAAA,GAAmB,CAGnCk0G,UAAW,MAEXy3B,GAAoB,EAAA5+H,EAAA,KAAgB,SAAU/oB,EAAW83G,EAAegpC,EAAmBjlI,EAAM0jI,EAAamB,GAC9G,OAAO,QAAY1gJ,GAAY0gJ,GAA0B,CACrD/9H,gBAAiBqkI,EAAwB,CAAEnrI,KAAMA,EAAMi8F,cAAeA,EAAeynC,YAAaA,IAClGpjI,MAAO2kI,GAEf,IACI3hH,EAAgB,CAChB3zB,KAAM,KAAY0zI,OAClBC,SAAU,KAAoB3sI,KAC9Bq6B,SAAU,IA4BH+6G,EAAkB,cAAiB,SAAUtmH,EAAsBC,GAC1E,IAAI7jC,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAE5C9kC,EAnBR,SAA2BA,GACvB,IAAIwkJ,EAA4BxkJ,EAAGwkJ,0BAA2BppC,EAAWp7G,EAAGo7G,SACxEzzG,EAAK,WAAe,KAAeotH,WAAYs2B,EAAiB1jJ,EAAG,GAAI2jJ,EAAoB3jJ,EAAG,GAQlG,OAPA,aAAgB,WACZ2jJ,EAAkB,KAAev2B,UACrC,GAAG,CAAC3Z,IAKG,CAACiwC,EAJmB,SAAUr2B,GACjCs2B,EAAkBt2B,GAClBwvB,SAAsFA,EAA0BxvB,EACpH,EAEJ,CAQau2B,CAAkBrqJ,GAAQmqJ,EAAiBrrJ,EAAG,GAAI6zH,EAAuB7zH,EAAG,GACjFwrJ,EAAaC,EAAgB53B,GAC7BrwH,EAAYtC,EAAMsC,UAAWygJ,EAAY/iJ,EAAM+iJ,UAAWC,EAAyBhjJ,EAAMgjJ,uBAAwBC,EAAWjjJ,EAAMijJ,SAAUljJ,EAASC,EAAMD,OAAQm6G,EAAWl6G,EAAMk6G,SAAUE,EAAgBp6G,EAAMo6G,cAAegpC,EAAoBpjJ,EAAMojJ,kBAAmBC,EAAgBrjJ,EAAMqjJ,cAE1S58I,EAAKzG,EAAMujJ,aAEXA,OAAsB,IAAP98I,EAAgB6jJ,EAAa7jJ,EAE5CC,EAAK1G,EAAMsnH,oBAEXA,OAA6B,IAAP5gH,EAAgB68I,EAAe78I,EAAIC,EAAK3G,EAAM0oH,iBAAkBA,OAA0B,IAAP/hH,EAAgB6jJ,EAA4B7jJ,EAAI86I,EAAWzhJ,EAAMyhJ,SAAU+B,EAAgBxjJ,EAAMwjJ,cAAeC,EAAiBzjJ,EAAMyjJ,eAEhP5B,EAAc7hJ,EAAM6hJ,YAAa6B,EAA8B1jJ,EAAM0jJ,4BAA6BvlI,EAAOne,EAAMme,KAAMve,EAAQI,EAAMJ,MAAOkO,EAAO9N,EAAM8N,KACnJ2B,GAAW,QAAezP,EAAO,MACjCyqJ,GAAe,QAAe1H,GAAa,CAAC,EAAG,MAC/C2H,EAAgBzH,EAAW,CAAEn2I,MAAOm2I,EAAUrvI,OAAQqvI,QAAax/I,EACnEknJ,EAAY3H,EACZ4H,EAAuB,CACvB3H,SAAUA,EACVI,cAAeA,EACf5B,SAAUA,EACV+B,cAAeA,EACfC,eAAgBA,EAChB31I,KAAMA,EACNlO,MAAOA,GAGPuC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACP0C,UAAWygJ,GAAaA,EAAUzgJ,UAAYygJ,EAAUzgJ,UAAYA,EACpEwL,KAAMA,EACNm1I,SAAUA,EACVD,uBAAwBA,IAExB6H,EAAuB7uI,QAAQmuI,IAAmB,KAAeh2B,SAC/DuvB,GAA+BxpC,IAAcA,GAAYiwC,IAAmB,KAAev3B,OAAS+3B,IAC1G,OAAQ,gBAAoB,OAAO,QAAS,CAAEjpI,KAAM,gBAAkBjS,EAAU,CAAEnN,UAAWH,EAAW2oJ,KAAM96I,IAAK6zB,IAG/G/1B,IAAS,KAAYg2I,OAASh2I,IAAS,KAAYi2I,QAAUj2I,IAAS,KAAYk2I,KAAQ,gBAAoB,OAAO,QAAS,CAAEtiI,KAAM,gBAAkB+oI,EAAc,CAAEnoJ,UAAWH,EAAW4oJ,UAAWhuI,MAAO2tI,IAC5MG,GAAyB,gBAAoB,MAAO,CAAEvoJ,UAAW2nJ,EAAkB9nJ,EAAW83G,SAAUG,EAAegpC,EAAmBjlI,EAAM0jI,EAAamB,GAAyBjmI,MAAO2tI,EAAe,cAAe,QAAUhiC,EAAiB1oH,EAAOwqJ,KAC5PG,GAAarjC,EAAoBtnH,EAAOsqJ,GACzC,gBAAoBlE,GAAiB,QAAS,CAAC,EAAGwE,KAClD5qJ,EAAMyhJ,SAAY,gBAAoB2E,GAAiB,QAAS,CAAC,EAAGwE,IAEpE,gBAAoBjrI,EAAA,EAAM,CAAEwB,SAAU,UAAW7e,UAAWH,EAAW6oJ,4BAC3EhrJ,EAAMoB,SACd,IACA8oJ,EAAgB/qJ,YAAc,kBAC9B,IAAIorJ,EAAkB,SAAU53B,GAC5B,OAAO,SAAU7zH,GACb,IAAImkJ,EAAWnkJ,EAAGmkJ,SAAUljJ,EAASjB,EAAGiB,OAAQm6G,EAAWp7G,EAAGo7G,SAAU/qE,EAAWrwC,EAAGqwC,SAAU+zG,EAAoBpkJ,EAAGokJ,kBAAmBC,EAA0BrkJ,EAAGqkJ,wBAAyBvjJ,EAAQd,EAAGc,MAAOojJ,EAAyBlkJ,EAAGkkJ,uBAAwBv8I,EAAK3H,EAAGgP,KAAMA,OAAc,IAAPrH,EAAgBg7B,EAAc3zB,KAAOrH,EAEhU,IAAKyzG,EACD,OAAO,KAEX,IAAI/3G,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,EACPkO,KAAMA,EACNk1I,uBAAwBA,IAExBiI,EAAYhI,GAAY,KAAan1I,GACzC,OAAQ,gBAAoBsd,EAAA,EAAO,CAAE9oB,UAAWH,EAAWgpB,MAAO6vF,SAAU,KAAS6Z,MAAOrlF,IAAK0qE,EAAUptG,MAAOm+I,EAAWr3I,OAAQq3I,EAAWngI,IAAKqkB,EAAUolF,aAAc2uB,EAAmB1uB,mBAAoB2uB,EAAyBxwB,qBAAsBA,GACvQ,CACJ,EACI63B,EAA4B,SAAU1rJ,GACtC,IAAIk7G,EAAgBl7G,EAAGk7G,cAAeK,EAAqBv7G,EAAGu7G,mBAAoB2oC,EAAyBlkJ,EAAGkkJ,uBAAwB7kI,EAAOrf,EAAGqf,KAEhJ0jI,EAAc/iJ,EAAG+iJ,YAAajiJ,EAAQd,EAAGc,MACzC,GAAIojJ,EACA,OAAO,gBAAoBrjI,EAAA,EAAM,CAAEwB,SAAU,SAEjD,IAAIgpB,GAAQ,QAAOvqC,GAEnB,MAAyB,MADzBo6G,EAAgBA,IAAiB,OAAY77F,GAAQ0jI,GAAe,GAAI13G,EAAOkwE,IACjD,gBAAoB,OAAQ,KAAML,GAAiB,gBAAoBr6F,EAAA,EAAM,CAAEwB,SAAU,WAC3H,EChII,EAAmB,CACnB2pI,KAAM,kBACNC,UAAW,uBACX5/H,MAAO,mBACP8uF,SAAU,sBACV6pC,MAAO,oBACPC,OAAQ,qBACRE,OAAQ,qBACRC,OAAQ,qBACRC,OAAQ,qBACR7pC,OAAQ,qBACR8pC,OAAQ,qBACR5C,OAAQ,qBACR6C,OAAQ,qBACRC,OAAQ,qBACRC,QAAS,sBACTC,QAAS,uBCbFzqC,GAAc,EAAAp2F,EAAA,GAAOumI,GDeT,SAAUlqJ,GAC7B,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOqjJ,EAAWjjJ,EAAMijJ,SACnEp/H,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MACvChW,GAAO,QAAY9N,EAAM8N,MACzB3L,GAAa,QAAoB,EAAkBvC,GAInDqrJ,EAAYhI,GAAajjJ,EAAM8N,MAAQ,KAAa9N,EAAM8N,OAAU,GACxE,MAAO,CACHg9I,KAAM,CACF3oJ,EAAW2oJ,KACXhnI,EAAMyB,OACNzX,EAAKm3I,SAAW9iJ,EAAW2hJ,MAC3Bh2I,EAAKo3I,UAAY/iJ,EAAW4hJ,OAC5Bj2I,EAAKq3I,UAAYhjJ,EAAW8hJ,OAC5Bn2I,EAAKs3I,UAAYjjJ,EAAW+hJ,OAC5Bp2I,EAAKu3I,UAAYljJ,EAAWgiJ,OAC5Br2I,EAAKw3I,UAAYnjJ,EAAWm4G,OAC5BxsG,EAAKy3I,UAAYpjJ,EAAWiiJ,OAC5Bt2I,EAAK03I,UAAYrjJ,EAAWq/I,OAC5B1zI,EAAK23I,UAAYtjJ,EAAWkiJ,OAC5Bv2I,EAAK43I,UAAYvjJ,EAAWmiJ,OAC5Bx2I,EAAK63I,WAAaxjJ,EAAWoiJ,QAC7Bz2I,EAAK83I,WAAazjJ,EAAWqiJ,QAC7BliJ,GAEJ0oJ,0BAA2B,CACvB1lI,SAAUxB,EAAM8qH,OAAOtpH,SACvBM,SAAU,WACVnZ,IAAK,MACLtC,MAAO,OACPJ,KAAM,GAEVghJ,UAAW,CACP5oJ,EAAW4oJ,UACX,CACInlI,SAAU,WACVyO,UAAW,SACX03D,KAAM,WACNn4E,OAAQq3I,EACRn+I,MAAOm+I,GAEXA,GAAa,IAAM,CACfzpI,SAAU,UACV6oB,WAAY,cACZz2B,OAAQ,EACR9G,MAAO,IAGfqe,MAAO,CACHhpB,EAAWgpB,MACX,CACIsO,YAAa,OACb7T,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACN+C,MAAO,OACP8G,OAAQ,OACR+S,OAAQ,EACRmO,aAAc,MACdo2H,YAAa,OAEjBD,GAAa,IAAM,CACfzpI,SAAU,UACV6oB,WAAY,cACZz2B,OAAQ,EACR9G,MAAO,GAEXm+I,EAAY,IAAM,CACdr3I,OAAQq3I,EACRn+I,MAAOm+I,IAGfhxC,SAAU,CACN93G,EAAW83G,SACX,CACInlF,aAAc,MACdrW,MAAOze,EAAMgjJ,uBAvEK,iBAuE8Cn/H,EAAQiS,MACxExQ,SAAUxB,EAAM6yC,MAAMrxC,SACtBP,WAAY,KAAYJ,SAExBU,WAA0B,KAAd4lI,EAAmB,GAAKA,EACpCr3I,OAAQq3I,EACRn7I,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,SAAS,QAAS,CAAE6nB,OAAQ,yBAA0B,WAAiC,CAAElI,MAAO,aAAcuW,UAAW,aAAc/P,gBAAiB,sBACnLnmB,EAAG0F,EAAI,CACHugB,WAAY,KAAYJ,UAE5B7lB,IAERkB,EAAMgjJ,wBAA0B,CAC5B/9H,gBAtFwB,sBAwF5BgmI,EAAY,IAAM,CACd3lI,SAAUxB,EAAM8qH,OAAOtpH,UAE3B2lI,GAAa,IACTA,EAAY,IAAM,CAClB3lI,SAAUxB,EAAMyB,OAAOD,UAE3B2lI,GAAa,IACTA,EAAY,IAAM,CAClB3lI,SAAUxB,EAAMmC,WAAWX,UAE/B2lI,GAAa,IACTA,EAAY,IAAM,CAClB3lI,SAAUxB,EAAMyzF,OAAOjyF,UAE3B2lI,GAAa,IACTA,EAAY,KAAO,CACnB3lI,SAAUxB,EAAM0zF,QAAQlyF,UAE5B2lI,GAAa,KAAO,CAChB3lI,SAAUxB,EAAMqnI,WAAW7lI,WAI3C,QCtI4D7hB,EAAW,CACnE0iB,MAAO,e,4ECPPrnB,EAGOknH,EAmBAolC,E,YAlBX,SAAWplC,GACPA,EAAY89B,MAAQ,OAEpB99B,EAAY+9B,OAAS,OAErB/9B,EAAYi+B,OAAS,OACrBj+B,EAAYk+B,OAAS,OAErBl+B,EAAYm+B,OAAS,OACrBn+B,EAAY1L,OAAS,OACrB0L,EAAYo+B,OAAS,OACrBp+B,EAAYw7B,OAAS,OACrBx7B,EAAYq+B,OAAS,OACrBr+B,EAAYs+B,OAAS,OACrBt+B,EAAYu+B,QAAU,QACtBv+B,EAAYw+B,QAAU,OACzB,CAhBD,CAgBGx+B,IAAgBA,EAAc,CAAC,IAGlC,SAAWolC,GACPA,EAAoBpD,MAAQ,MAC5BoD,EAAoBtH,MAAQ,MAC5BsH,EAAoBtD,OAAS,OAC7BsD,EAAoBnH,OAAS,OAC7BmH,EAAoBnD,OAAS,OAC7BmD,EAAoBjH,OAAS,OAC7BiH,EAAoB9wC,OAAS,OAI7B8wC,EAAoBzkI,OAAS,KAChC,CAZD,CAYGykI,IAAwBA,EAAsB,CAAC,IAE3C,IAAIC,EAAc,SAAUv9I,GAAQ,MAAO,CAC9Cm3I,QAASn3I,IAAS,KAAYg2I,MAE9BoB,SAAUp3I,IAAS,KAAYi2I,QAAUj2I,IAAS,KAAYk2I,KAC9DmB,SAAUr3I,IAAS,KAAYm2I,OAC/BmB,SAAUt3I,IAAS,KAAYo2I,QAAUp2I,IAAS,KAAYw9I,gBAC9DjG,SAAUv3I,IAAS,KAAYq2I,QAAUr2I,IAAS,KAAYy9I,WAC9DjG,SAAUx3I,IAAS,KAAYwsG,OAC/BirC,SAAUz3I,IAAS,KAAYs2I,QAAUt2I,IAAS,KAAYiY,MAC9Dy/H,SAAU13I,IAAS,KAAY0zI,QAAU1zI,IAAS,KAAYwW,QAC9DmhI,SAAU33I,IAAS,KAAYu2I,OAC/BqB,SAAU53I,IAAS,KAAYw2I,QAAUx2I,IAAS,KAAY6oD,MAC9DgvF,UAAW73I,IAAS,KAAYy2I,SAAWz2I,IAAS,KAAYuyI,WAChEuF,UAAW93I,IAAS,KAAY02I,QAChC,EACOgH,IAAgB1sJ,EAAK,CAAC,GAE1B,KAAYklJ,MAAQ,GACvBllJ,EAAG,KAAYwsJ,iBAAmB,GAClCxsJ,EAAG,KAAYysJ,YAAc,GAC7BzsJ,EAAG,KAAYinB,OAAS,GACxBjnB,EAAG,KAAYwlB,SAAW,GAC1BxlB,EAAG,KAAY63D,OAAS,GACxB73D,EAAG,KAAYuhJ,YAAc,IAE7BvhJ,EAAG,KAAYglJ,OAAS,EACxBhlJ,EAAG,KAAYilJ,QAAU,GACzBjlJ,EAAG,KAAYmlJ,QAAU,GACzBnlJ,EAAG,KAAYolJ,QAAU,GACzBplJ,EAAG,KAAYqlJ,QAAU,GAEzBrlJ,EAAG,KAAYw7G,QAAU,GACzBx7G,EAAG,KAAYslJ,QAAU,GACzBtlJ,EAAG,KAAY0iJ,QAAU,GACzB1iJ,EAAG,KAAYulJ,QAAU,GACzBvlJ,EAAG,KAAYwlJ,QAAU,GACzBxlJ,EAAG,KAAYylJ,SAAW,IAC1BzlJ,EAAG,KAAY0lJ,SAAW,IAC1B1lJ,GACO2sJ,EAAkB,SAAUhK,GAAY,MAAO,CACtDoE,YAAapE,IAAa,KAAgBiK,OAC1C5F,OAAQrE,IAAa,KAAgBiD,KACrCqB,UAAWtE,IAAa,KAAgB9U,QACxCqZ,OAAQvE,IAAa,KAAgBkD,KACrCsB,eAAgBxE,IAAa,KAAgB+F,IAC7CtB,UAAWzE,IAAa,KAAgBoD,QACxC,C,0KC1DG,SAAS8G,EAAar0I,EAAUs0I,QACnB,IAAZA,IAAsBA,EAAU,MACpC,IACQC,EAeJ9sI,EAAO,SAAa,CACpB/O,KAhBI67I,EAAc,SAAUx3I,GACpB0K,EAAK/O,IAAInI,UAAYwM,IACjB0K,EAAK+sI,UACL/sI,EAAK+sI,UACL/sI,EAAK+sI,aAAUroJ,GAEnBsb,EAAK/O,IAAInI,QAAUwM,EACL,OAAVA,IACA0K,EAAK+sI,QAAU/sI,EAAKzH,SAASjD,IAGzC,EACAw3I,EAAYhkJ,QAAU+jJ,EACfC,GAIPv0I,SAAUA,IACXzP,QAEH,OADAkX,EAAKzH,SAAWA,EACTyH,EAAK/O,GAChB,C,gFCvCIqO,GAAgB,EAAAC,EAAA,KAUhBytI,EAAe,SAAU/rJ,EAAOgsJ,GAChC,IAAIjpJ,EAAS,CACTq0I,MAAO,GACP6U,kBAAmB,CAAC,EACpBC,kBAAmB,CAAC,GAexB,OAbA,WAAel+I,QAAQ,WAAezM,QAAQvB,EAAMoB,WAAW,SAAUhE,EAAOujB,GAC5E,GAAIwrI,EAAY/uJ,GAAQ,CAEpB,IAAI0B,EAAK1B,EAAM4C,MAAOq2I,EAAWv3I,EAAGu3I,SAAU+V,GAAiB,QAAOttJ,EAAI,CAAC,aACvE4vC,EAAUtxC,EAAM4C,MAAM0uC,SAAW/tB,EAAM1C,WAC3Clb,EAAOq0I,MAAM/0I,MAAK,SAAS,QAAS,CAAEo7I,WAAYpH,GAAY+V,GAAiB,CAAE19G,QAASA,KAC1F3rC,EAAOkpJ,kBAAkBv9G,GAAW/tB,EACpC5d,EAAOmpJ,kBAAkBx9G,GArBtB,SAAU1uC,EAAOgsJ,EAASt9G,EAAS/tB,GAC9C,OAAI3gB,EAAMqsJ,SACCrsJ,EAAMqsJ,SAAS39G,EAAS/tB,GAE5BqrI,EAAU,OAAO90I,OAAOyJ,EACnC,CAgBgD0rI,CAASrsJ,EAAOgsJ,EAASt9G,EAAS/tB,EAC1E,MACSvjB,IACL,EAAA4gB,EAAA,GAAK,8EAEb,IACOjb,CACX,EACIopJ,EAAc,SAAUlsI,GACxB,IAAInhB,EACJ,OAAO,iBAAqBmhB,KAA+B,QAApBnhB,EAAKmhB,EAAK9e,YAAyB,IAAPrC,OAAgB,EAASA,EAAG4B,QAAU4rJ,EAAA,EAAU5rJ,IACvH,EACW6rJ,EAAY,cAAiB,SAAUvsJ,EAAOgQ,GACrD,IAKI7N,EALAi3F,EAAe,SAAa,MAC5BozD,EAAiC,SAAa,MAC9CR,GAAU,EAAA31I,EAAA,GAAM,SAChBvX,GAAK,EAAA6W,EAAA,GAAqB3V,EAAMgzC,YAAahzC,EAAM6yC,oBAAqBG,EAAcl0C,EAAG,GAAI2tJ,EAAiB3tJ,EAAG,GACjHgjB,EAAe9hB,EAAM8hB,aAAcliB,EAAQI,EAAMJ,MAAO8sJ,EAAW1sJ,EAAM0sJ,SAAUC,EAAa3sJ,EAAM2sJ,WAAYC,EAAmB5sJ,EAAM4sJ,iBAAkB/sI,EAAoB7f,EAAM6f,kBAAmBkC,EAAiB/hB,EAAM+hB,eAAgBhC,EAAmB/f,EAAM+f,iBAE1Q8sI,EAAY,CACZ,aAAc7sJ,EAAM,cACpB,kBAAmBA,EAAM,oBAEzByP,GAAW,QAAezP,EAAO,KAAe,CAChD,aACA,oBAEA8sJ,EAAiBf,EAAa/rJ,EAAOgsJ,GACzC,sBAA0BlqI,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WACH,IAAIjJ,EAC4B,QAA/BA,EAAKs6F,EAAavxF,eAA4B,IAAP/I,GAAyBA,EAAGiJ,OACxE,EACA,IACJ,IAAIglJ,EAAoB,SAAUj0H,GAC9B,IAAKA,EACD,OAAO,KAEX,IAAIsqG,EAAYtqG,EAAKsqG,UAAW4pB,EAAWl0H,EAAKk0H,SAAUvP,EAAa3kH,EAAK2kH,WAC5E,OAAQ,gBAAoB,OAAQ,CAAEn7I,UAAWH,EAAWqzD,kBAC3C/xD,IAAbupJ,GAA2B,gBAAoB,OAAQ,CAAE1qJ,UAAWH,EAAWwlB,MAC3E,gBAAoBhI,EAAA,EAAM,CAAEwB,SAAU6rI,UAC3BvpJ,IAAfg6I,GAA4B,gBAAoB,OAAQ,CAAEn7I,UAAWH,EAAWgc,MAC5E,IACA2a,EAAK2kH,iBACKh6I,IAAd2/H,GAA2B,gBAAoB,OAAQ,CAAE9gI,UAAWH,EAAW2xF,OAC3E,KACAsvC,EACA,KACZ,EACI6pB,EAAkB,SAAUC,EAAsBp0H,EAAMq0H,EAA4B7qJ,GACpF,IAEIkzD,EAFA9mB,EAAU5V,EAAK4V,QAAS0+G,EAAoBt0H,EAAKs0H,kBAAmBC,EAAmBv0H,EAAKu0H,iBAC5FC,EAAQJ,EAAqBhB,kBAAkBx9G,GAE/CoP,EAAaqvG,IAA+Bz+G,EAE5C8mB,EADA63F,EACcA,EAAiBv0H,EAAMi0H,GAGvBA,EAAkBj0H,GAEpC,IAAIy0H,EAAgBz0H,EAAK2kH,YAAc,GACvC8P,GAAiBz0H,EAAKsqG,UAAY,KAAOtqG,EAAKsqG,UAAY,IAAM,GAEhEmqB,GAAiBz0H,EAAKk0H,SAAW,MAAQ,GACzC,IAAIQ,EAAgB10H,EAAKpX,MAAsB,QAAdoX,EAAKpX,KAChC,CACEA,KAAMoX,EAAKpX,MAEb,CACEA,KAAM,MACN,gBAAiBo8B,GAEzB,OAAQ,gBAAoB9lB,EAAA,GAAe,QAAS,CAAC,EAAGo1H,EAAmBI,EAAe,CAAEv1I,GAAIq1I,EAAOltI,IAAKsuB,EAASpsC,WAAW,EAAAsN,EAAA,GAAItN,EAAWw7C,GAAc37C,EAAWsrJ,gBAEpKjwI,QAAS,SAAUnY,GAAM,OAAOi0I,EAAY5qG,EAASrpC,EAAK,EAE1D4D,UAAW,SAAU5D,GAAM,OAAO4D,EAAUylC,EAASrpC,EAAK,EAAG,aAAcyzB,EAAKtZ,UAAW9e,KAAMo4B,EAAK2kH,WAAY3wH,YAAagM,EAAKhM,YAAa,eAAgBygI,IAAkB/3F,EAC3L,EACI8jF,EAAc,SAAU5qG,EAASrpC,GACjCA,EAAGyG,iBACH4hJ,EAAmBh/G,EAASrpC,EAChC,EACI4D,EAAY,SAAUylC,EAASrpC,GAE3BA,EAAGqE,QAAUC,EAAA,EAASiC,QACtBvG,EAAGyG,iBACH4hJ,EAAmBh/G,GAE3B,EACIg/G,EAAqB,SAAUh/G,EAASrpC,GACxC,IAAIvG,EAGJ,GAFA2tJ,EAAe/9G,GACfo+G,EAAiBf,EAAa/rJ,EAAOgsJ,GACjChsJ,EAAMs5I,aAAewT,EAAeb,kBAAkBv9G,IAAY,EAAG,CACrE,IAAI8gB,EAAgBs9F,EAAeb,kBAAkBv9G,GACjDzuB,EAAO,WAAe1e,QAAQvB,EAAMoB,UAAUouD,GAC9C28F,EAAYlsI,IACZjgB,EAAMs5I,YAAYr5H,EAAM5a,EAEhC,CACkD,QAAjDvG,EAAK0tJ,EAA+B3kJ,eAA4B,IAAP/I,GAAyBA,EAAGqzB,aAC1F,EAqBAhwB,EAAakc,EAAcre,EAAMD,OAAQ,CACrCH,MAAOA,EACP8sJ,SAAUA,EACVC,WAAYA,IAEhB,IAjB2Bj+G,EAiBvBi/G,EAhBmB,QADIj/G,EAIRsE,SAHyBvvC,IAAZirC,QAAuEjrC,IAA9CqpJ,EAAeb,kBAAkBv9G,GAI3EsE,EAEP85G,EAAe1V,MAAMh3I,OACd0sJ,EAAe1V,MAAM,GAAG1oG,aADnC,EAWAk/G,EAAwBD,EAAsBb,EAAeb,kBAAkB0B,GAAuB,EACtG/rI,EAAQkrI,EAAe1V,MAAM92I,KAAI,SAAU0W,GAC3C,OAAOi2I,EAAgBH,EAAgB91I,EAAG22I,EAAqBxrJ,EAAW22B,KAC9E,IAEI+0H,EAAoB,WAAc,WAAc,MAAO,CACvDjsI,MAAO,GACPic,iBAAiB,EACjBhc,gBAAiB3I,EAAA,EAAgBO,gBACjC,GAAG,IACHq0I,ECtJiB,SAAUhvJ,GAC/B,IAAIivJ,EAAyBjvJ,EAAGivJ,uBAAwBxrJ,EAAMzD,EAAGyD,IAAKyrJ,EAAclvJ,EAAGkvJ,YACnFC,EAAoB,WACpBC,EAAoB,WAEpBC,EAAexC,GAAa,SAAUz8H,GACtC,IAAIk/H,ECbe,SAAUhwJ,EAAQiwJ,GACzC,GAA8B,oBAAnBv4D,eAAgC,CACvC,IAAIw4D,EAAa,IAAIx4D,eAAeu4D,GAOpC,OANIrtJ,MAAMC,QAAQ7C,GACdA,EAAO4P,SAAQ,SAAU1J,GAAK,OAAOgqJ,EAAWt4D,QAAQ1xF,EAAI,IAG5DgqJ,EAAWt4D,QAAQ53F,GAEhB,WAAc,OAAOkwJ,EAAWp4D,YAAc,CACzD,CAGI,IAAIq4D,EAAoB,WAAc,OAAOF,OAAS5qJ,EAAY,EAC9D+qJ,GAAQ,EAAAz3G,EAAA,GAAU/1C,MAAMC,QAAQ7C,GAAUA,EAAO,GAAKA,GAC1D,IAAKowJ,EAED,OAAO,WAEP,EAGJ,IAAIC,EAAqBD,EAAM7rH,sBAAsB4rH,GAErD,OADAC,EAAMlgJ,iBAAiB,SAAUigJ,GAAmB,GAC7C,WACHC,EAAM9qH,qBAAqB+qH,GAC3BD,EAAMt/I,oBAAoB,SAAUq/I,GAAmB,EAC3D,CAER,CDhB8BG,CAAcx/H,GAAW,SAAUy/H,GACrDT,EAAkBrmJ,QAAU8mJ,EAAUA,EAAQ,GAAGC,YAAY9hJ,MAAQoiB,EAAUm4B,YAC3E4mG,EAAkBpmJ,SAClBomJ,EAAkBpmJ,SAE1B,IACA,OAAO,WACHumJ,IACAF,EAAkBrmJ,aAAUpE,CAChC,CACJ,IACIorJ,EAAgBlD,GAAa,SAAUmD,GAEvC,OADAX,EAAaW,EAAWlnJ,eACjB,WAAc,OAAOumJ,EAAa,KAAO,CACpD,IAgFA,OA/EA,EAAAnxF,EAAA,IAA0B,WACtB,IAAI9tC,EAAYi/H,EAAatmJ,QACzBinJ,EAAaD,EAAchnJ,QAC/B,GAAKqnB,GAAc4/H,EAAnB,CAKA,IADA,IAAIltI,EAAQ,GACHpd,EAAI,EAAGA,EAAI0qB,EAAU9tB,SAAShB,OAAQoE,IAAK,CAChD,IAAIyb,EAAOiP,EAAU9tB,SAASoD,GAC1Byb,aAAgBuzB,aAAevzB,IAAS6uI,GACxCltI,EAAMvf,KAAK4d,EAEnB,CAIA,IAAI8uI,EAAoB,GACpBC,EAAa,EACjBf,EAAkBpmJ,QAAU,WACxB,IAAIonJ,EAAiBf,EAAkBrmJ,QACvC,QAAuBpE,IAAnBwrJ,EAAJ,CAIA,IAAK,IAAIzqJ,EAAIod,EAAMxhB,OAAS,EAAGoE,GAAK,EAAGA,IAAK,CAExC,QAA6Bf,IAAzBsrJ,EAAkBvqJ,GAAkB,CACpC,IAAI0qJ,EAAgB3sJ,EAAM0sJ,EAAiBrtI,EAAMpd,GAAGoqF,WAAahtE,EAAMpd,GAAGoqF,WAAahtE,EAAMpd,GAAGg/D,YAE5Fh/D,EAAI,EAAIod,EAAMxhB,QAAUoE,EAAI,IAAMwpJ,IAGlCgB,EAAaD,EAAkBvqJ,EAAI,GAAK0qJ,GAGxC1qJ,IAAMod,EAAMxhB,OAAS,IACrB4uJ,GAAcF,EAAWtrF,aAE7BurF,EAAkBvqJ,GAAK0qJ,EAAgBF,CAC3C,CACA,GAAIC,EAAiBF,EAAkBvqJ,GAEnC,YADA2qJ,EAAiB3qJ,EAAI,EAG7B,CAEA2qJ,EAAiB,EAxBjB,CAyBJ,EACA,IAAIC,EAAoBxtI,EAAMxhB,OAC1B+uJ,EAAmB,SAAUjwI,GACzBkwI,IAAsBlwI,IACtBkwI,EAAoBlwI,EACpB6uI,EAAuB7uI,EAAe0C,EAAMthB,KAAI,SAAU+uJ,EAAK1uI,GAAS,MAAO,CAC3E0uI,IAAKA,EACLC,cAAe3uI,GAASzB,GAAiByB,IAAUqtI,EACnD,KAEZ,EACItqH,OAAuBjgC,EAG3B,QAAkCA,IAA9ByqJ,EAAkBrmJ,QAAuB,CACzC,IAAI2mJ,GAAQ,EAAAz3G,EAAA,GAAU7nB,GACtB,GAAIs/H,EAAO,CACP,IAAIC,EAAqBD,EAAM7rH,sBAAsBsrH,EAAkBpmJ,SACvE67B,EAAuB,WAAc,OAAO8qH,EAAM9qH,qBAAqB+qH,EAAqB,CAChG,CACJ,CACA,OAAO,WACC/qH,GACAA,IAIJyrH,EAAiBvtI,EAAMxhB,QACvB6tJ,EAAkBpmJ,aAAUpE,CAChC,CAxEA,CAyEJ,IACO,CAAEorJ,cAAeA,EAC5B,CDiDgCU,CAAY,CACpCxB,uBAAwB,SAAU7uI,EAAeswI,GAE7CA,EAASxhJ,SAAQ,SAAUlP,GACvB,IAAIuwJ,EAAMvwJ,EAAGuwJ,IAAKC,EAAgBxwJ,EAAGwwJ,cACrC,OAAQD,EAAI57G,QAAQ67G,cAAgB,GAAGp4I,OAAOo4I,EAClD,IAEAzB,EAAkBjsI,MAAQkrI,EAAe1V,MACpCngI,MAAMiI,GACNqiB,QAAO,SAAUzI,GAAQ,OAAOA,EAAK4V,UAAYi/G,CAAqB,IACtErtJ,KAAI,SAAUw4B,EAAMnY,GAErB,OADAmY,EAAKpX,KAAO,WACL,CACHtB,IAAK0Y,EAAK4V,SAAW,GAAGx3B,OAAOgI,EAAgByB,GAC/CG,SAAU,WAAc,OAAOmsI,EAAgBH,EAAgBh0H,EAAM60H,EAAqBxrJ,EAAWstJ,WAAa,EAE1H,GACJ,EACAltJ,KAAK,QAAO3C,GACZouJ,YAAaJ,IACdiB,cACCvtI,EAAiBvB,GAAsCiY,EAAA,EAC3D,OAAQ,gBAAoB,OAAO,QAAS,CAAEhoB,IAAKA,GAAOP,GACtD,gBAAoBlJ,EAAA,GAAW,QAAS,CAAEub,aAAcs3E,EAAc13E,KAAM,WAAamrI,EAAW,CAAEhkJ,UAAW,IAAmByB,YAAcyX,EAAgB,CAAEzf,WAAW,EAAAsN,EAAA,GAAIzN,EAAWgM,KAAM4T,aAAuD,EAASA,EAAezf,aAC/Qsf,EACqB,SAArBgrI,GAAgC,gBAAoBtrI,EAAgB,CAAEhf,WAAW,EAAAsN,EAAA,GAAIzN,EAAW22B,KAAM32B,EAAWutJ,oBAAqBz/I,WAAY69I,EAAuBhsI,aAAc0qI,EAAgC7qI,UAAWksI,EAAmB5/H,cAAe,CAAE9M,SAAU,OAAQpE,MAAO,CAAE0B,MAAO,YAAee,UAAWK,EAAmB6B,KAAM,SAC/VisI,GACIb,EAAe1V,MAAM92I,KAAI,SAAUw4B,GAC/B,QAA8B,IAAtBA,EAAK62H,cAAyBhC,IAAwB70H,EAAK4V,UAjEzD,SAAUA,EAASouG,GACrC,GAAI98I,EAAM4vJ,cAAgBlhH,EACtB,OAAO,KAEX,IAAI/tB,EAAQmsI,EAAeb,kBAAkBv9G,GACzCmhH,EAAgB/C,EAAeZ,kBAAkBx9G,GACrD,OAAQ,gBAAoB,MAAO,CAAEhtB,KAAM,WAAYyR,QAAS2pH,EAAU18H,IAAKsuB,EAAS,eAAgBouG,EAAU,kBAAmB+S,EAAevtJ,UAAWH,EAAW2kH,eAAiB,WAAevlH,QAAQvB,EAAMoB,UAAUuf,GACtO,CA2DgBmvI,CAAgBh3H,EAAK4V,QAASi/G,IAAwB70H,EAAK4V,QACnE,IACZ,IACA69G,EAAUptJ,YAlMW,Q,0BGRjBswG,EAAmB,CACnB3b,MAAO,iBACPnsE,KAAM,gBACN8lI,eAAgB,cAChB30H,KAAM,gBACN08B,YAAa,uBACbrnD,KAAM,WACN4hJ,YAAa,kBACbC,WAAY,iBACZ7xI,KAAM,gBACNsxI,WAAY,sBACZC,mBAAoB,+BAEpBO,EAAgB,SAAUjwJ,EAAOmC,EAAY+tJ,GAC7C,IAAIpxJ,EAAI2H,EAAIC,OACiB,IAAzBwpJ,IAAmCA,GAAuB,GAC9D,IAAIxD,EAAW1sJ,EAAM0sJ,SAAUC,EAAa3sJ,EAAM2sJ,WAC9ChmJ,EAAK3G,EAAMJ,MAAO8e,EAAiB/X,EAAG+X,eAAgBoF,EAAQnd,EAAGmd,MACjEisI,EAA2B,UAAbrD,EACdsD,EAA4B,SAAfrD,EACjB,MAAO,CACH7oI,EAAMyB,OACN,CACI9G,MAAOC,EAAeyxI,WACtB/qI,QAAS,QACTQ,SAAU,WACVX,gBAAiB,cACjB0B,OAAQ,EACRmO,aAAc,EACdhlB,UAAW,CACP,SAAU,CACNmV,gBAAiBvG,EAAe6W,wBAChC9W,MAAOC,EAAegX,kBACtBtZ,OAAQ,WAEZ,UAAW,CACP6I,gBAAiBvG,EAAe4W,wBAChC7W,MAAOC,EAAegX,mBAE1B,SAAU,CACN3lB,QAAS,WAIpBmgJ,GAAwB,CACrB,CACIzqI,QAAS,eACTJ,WAAY,GACZzR,OAAQ,GACR6lB,YAAa,EACbpF,UAAW,SACXvkB,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,KAAyB,aAAe,CAClDnH,QAAS,aAAamH,OAAOwH,EAAe0yB,cAEhDtyC,EAAG,IAAIoY,OAAO,KAAyB,mBAAqB,CACxDwL,QAAS,qBACTkD,SAAU,WACVe,OAAQ,GAEZ7nB,EAAG,WAAa,CACZmmB,gBAAiB,cACjBtY,OAAQ,EACR+V,QAAS,KACT9O,OAAQ,EACR7J,KAAM,EACN6b,SAAU,WACVzb,MAAO,EACP6hF,WAAY,QAAQ90E,OAAO,KAAmBg2G,eAAgB,KAAKh2G,OAAO,KAAmBmqI,cAAe,qCAAqCnqI,OAAO,KAAmBg2G,eAAgB,KAAKh2G,OAAO,KAAmBmqI,gBAE9NviJ,EAAG,UAAY,CACX2f,MAAO,cACPiE,QAAS,qBACT+C,QAAS,QACTV,WAAY,KAAYqrI,KACxBx8I,OAAQ,EACR4N,SAAU,SACV0hB,WAAY,UAEhBpkC,IAERixJ,GAAe,CACXzqI,SAAUxB,EAAM6yC,MAAMrxC,UAE1B0qI,GAAc,CACV,CACIv2H,YAAa,EACb7lB,OAAQ,GACRyR,WAAY,GACZJ,gBAAiBvG,EAAe2W,iBAChCjQ,QAAS,SACTkU,cAAe,MACfxpB,WAAYrJ,EAAK,CACT,SAAU,CACN8nC,cAAe,SAGvB9nC,EAAG,IAAIyQ,OAAO,KAAyB,qBAAuB,CAC1DtD,OAAQ,OACRy2B,WAAY,cACZ2hD,WAAY,QAEhBvlF,EAAG,oBAAsB,CACrBgY,MAAOC,EAAemX,0BAE1BpvB,EAAG,qBAAuB,CACtBgY,MAAOC,EAAe8X,kBACtBvR,gBAAiBvG,EAAe6X,yBAEpC9vB,EAAG,KAAKyQ,OAAO/U,EAAWsrJ,iBAAmB,CACzCxoI,gBAAiBvG,EAAe6X,wBAChC9X,MAAOC,EAAe8X,kBACtBzR,WAAY,KAAYT,QACxBxU,WAAYpJ,EAAK,CACT,UAAW,CACPue,gBAAiB,cACjB+mE,WAAY,OACZpmE,SAAU,WACVnZ,IAAK,EACL1C,KAAM,EACNI,MAAO,EACPwC,OAAQ,EACR+V,QAAS,KACT9O,OAAQ,GAEZ,SAAU,CACNqR,gBAAiBvG,EAAe+X,+BAChChY,MAAOC,EAAe8X,mBAE1B,UAAW,CACPvR,gBAAiBvG,EAAeiY,+BAChClY,MAAOC,EAAe8X,oBAG9B9vB,EAAG,OAAwB,QAAS,CAAEqe,WAAY,KAAYJ,SAAUlG,MAAO,gBAAiB4rB,WAAY,cAAe,WAC3H3jC,IAERD,EAAG,IAAIyQ,OAAO,KAAyB,OAAOA,OAAO/U,EAAWsrJ,eAAgB,WAAa,CACzF74H,aAAclW,EAAe8X,mBAEjC/vB,MAKxB,EC5IW4pJ,GAAQ,EAAA1sI,EAAA,GAAO4oI,GD6IH,SAAUvsJ,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EACZrE,EAAYtC,EAAMsC,UAAWoqJ,EAAW1sJ,EAAM0sJ,SAAUC,EAAa3sJ,EAAM2sJ,WAAY/sJ,EAAQI,EAAMJ,MACrG8e,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MACrD3hB,GAAa,QAAoBstG,EAAkB7vG,GACnDmwJ,EAA2B,UAAbrD,EACdsD,EAA4B,SAAfrD,EACjB,MAAO,CACHx+I,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACN,KACA,CACIK,SAAU,WACVnH,MAAOC,EAAeoa,KACtBxV,WAAY,UAEhBysI,GAAe5tJ,EAAW4tJ,YAC1BC,GAAc7tJ,EAAW6tJ,WACzB1tJ,GAEJwkH,cAAe,CACXh3G,UAAW,CACP,YAAa,CACT2V,QAAS,UAIrBqT,MAAM,SAAc,QAAc,CAC9B32B,EAAW22B,MACZm3H,EAAcjwJ,EAAOmC,IAAa,GAAO,EACvCrD,EAAK,CAAC,EACHA,EAAG,iCAAmC,CAClC2mB,QAAS,QAEb3mB,KACL,GACH4wJ,mBAAoB,CAChBvtJ,EAAWutJ,oBACVjpJ,EAAK,CACEy8B,WAAY,SACZtd,SAAU,WACVzb,MAAO,GAEX1D,EAAG,IAAIyQ,OAAO/U,EAAW22B,KAAM,qCAAuC,CAClEoK,WAAY,UACZtd,SAAU,YAEdnf,IAERgpJ,YAAY,SAAc,QAAc,CACpCttJ,EAAWstJ,YACZQ,EAAcjwJ,EAAOmC,GAAY,IAAO,GAAO,CAC9C,CACIkyB,UAAW,OACXvnB,MAAO,OACP8G,OAAQ,GACRyR,WAAY,MAEjB,GACHooI,eAAgB,CACZtrJ,EAAW22B,KACX32B,EAAWsrJ,eACX,CACI1oI,WAAY,KAAYJ,SACxB7U,WAAYpJ,EAAK,CACT,UAAW,CACPue,gBAAiBvG,EAAe0uB,uBAChCt9B,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBse,gBAAiB,aAErBte,IAER,iBAAkB,CACdoD,KAAM,EACNI,MAAO,IAGfzD,EAAG,MAAwB,CACvB+X,MAAO,aAEX/X,KAGZ8uD,YAAa,CACTrzD,EAAWqzD,YACX,CACIu2B,KAAM,WACNj8E,UAAW,CACP,SAAU,CACNypB,WAAY,GAEhB,oBAAqB,CACjBA,WAAY,MAK5Bpb,KAAM,CACFhc,EAAWgc,KACX,CACIsH,QAAS,eACT6T,cAAe,QAGvBw6D,MAAO,CACH3xF,EAAW2xF,MACX,CACIruE,QAAS,eACT6T,cAAe,QAGvB3R,KAAMxlB,EAAWwlB,KAEzB,QChQgDlkB,EAAW,CACvD0iB,MAAO,S,8FCLPmmI,EAA2B,SAAU9lJ,GAErC,SAAS8lJ,EAAUtsJ,GACf,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAKxC,OAJA,OAAuBkC,IACvB,OANa,YAMoB5G,EAAO,CACpCq2I,SAAU,eAEPzvI,CACX,CAIA,OAZA,QAAU0lJ,EAAW9lJ,GASrB8lJ,EAAUnoJ,UAAUxB,OAAS,WACzB,OAAO,gBAAoB,OAAO,QAAS,CAAC,GAAG,QAAe+B,KAAK1E,MAAO,OAAiB0E,KAAK1E,MAAMoB,SAC1G,EACOkrJ,CACX,CAd8B,CAc5B,Y,mLCsBF,SAASgE,EAAqBzxJ,GAC1B,IAAIo+D,EAAkBp+D,EAAQo+D,gBAAiBC,EAAgBr+D,EAAQq+D,cACnED,GAAmBC,GAAiBD,KAAoB,UAMxD9kD,YAAW,WACP,IAAIrZ,EAC6B,QAAhCA,EAAKm+D,EAAgBl1D,aAA0B,IAAPjJ,GAAyBA,EAAGsF,KAAK64D,EAC9E,GAAG,EAEX,CAsDO,IAAI90B,EAAQ,cAAiB,SAAUvE,EAAsBC,GAChE,IAAI7jC,GAAQ,OAAqB,CAAEoR,oBAAoB,EAAMyiG,0BAA0B,GAAQjwE,GAC3Fz1B,EAAO,WACP4zC,GAAgB,OAAc5zC,EAAM01B,IAjB5C,SAA6B7jC,EAAOmO,GAEhC,IAAIoiJ,EAAmE,SAA9C9iJ,OAAOzN,EAAM,eAAe+T,eAA4B/T,EAAM6zG,yBACvF,aAAgB,WACZ,GAAM08C,GAAsBpiJ,EAAKtG,QAIjC,OADiB,OAASsG,EAAKtG,QAEnC,GAAG,CAACsG,EAAMoiJ,GACd,CAQIC,CAAoBxwJ,EAAOmO,GAzD/B,SAAyBnO,EAAOmO,GAC5B,IAAIrP,EAAKkB,EAAMqoC,eAAgBA,OAAwB,IAAPvpC,EAAgBwxJ,EAAuBxxJ,EACnF2xJ,EAAyB,WACzBvzF,EAAgB,UAAa,GACjC,aAAgB,WAKZ,OAJAuzF,EAAuB5oJ,SAAU,SAAcuB,eAC3C,QAAwB+E,EAAKtG,WAC7Bq1D,EAAcr1D,SAAU,GAErB,WACH,IAAI/I,EACJupC,SAAgEA,EAAe,CAC3E40B,gBAAiBwzF,EAAuB5oJ,QACxCq1D,cAAeA,EAAcr1D,QAC7Bk1D,uBAAiD,QAAxBj+D,GAAK,gBAAkC,IAAPA,OAAgB,EAASA,EAAG4nC,cAAe,IAGxG+pH,EAAuB5oJ,aAAUpE,CACrC,CAEJ,GAAG,KACH,OAAW0K,EAAM,QAAS,eAAkB,WACxC+uD,EAAcr1D,SAAU,CAC5B,GAAG,KAAK,IACR,OAAWsG,EAAM,OAAQ,eAAkB,SAAU9I,GAS7C8I,EAAKtG,SAAWxC,EAAGshC,gBAAkBx4B,EAAKtG,QAAQrK,SAAS6H,EAAGshC,iBAC9Du2B,EAAcr1D,SAAU,EAGhC,GAAG,KAAK,EACZ,CAoBI6oJ,CAAgB1wJ,EAAOmO,GACvB,IAAIuT,EAAO1hB,EAAM0hB,KAAMpf,EAAYtC,EAAMsC,UAAWkd,EAAYxf,EAAMwf,UAAWhQ,EAAiBxP,EAAMwP,eAAgBD,EAAkBvP,EAAMuP,gBAAiBwN,EAAQ/c,EAAM+c,MAAO3b,EAAWpB,EAAMoB,SAAUotB,EAAYxuB,EAAMwuB,UAC/NmiI,EA7GR,SAA2B3wJ,EAAOmO,GAC9B,IAAIm0B,GAAQ,SACRxjC,EAAK,YAAe,GAAQ8xJ,EAA8B9xJ,EAAG,GAAI+xJ,EAA4B/xJ,EAAG,GA+BpG,OA9BA,aAAgB,WA4BZ,OA3BAwjC,EAAMK,uBAAsB,WACxB,IAAI7jC,EAEJ,IAAIkB,EAAM+c,QAAS/c,EAAM+c,MAAM+qB,UAA/B,CAGA,IAAI6oH,GAAyB,EAC7B,GAAIxiJ,GAAQA,EAAKtG,UAAoC,QAAvB/I,EAAKqP,EAAKtG,eAA4B,IAAP/I,OAAgB,EAASA,EAAGkT,mBAAoB,CAUzG,IAAI8+I,EAAa3iJ,EAAKtG,QAAQ0L,aAC1Bw9I,EAAmB5iJ,EAAKtG,QAAQmK,kBAAkBuB,aAClDu9I,EAAa,GAAKC,EAAmBD,IACrCH,EAAyBI,EAAmBD,EAAa,EAEjE,CACIF,IAAgCD,GAChCE,EAA0BF,EAnB9B,CAqBJ,IACO,WAAc,OAAOruH,EAAMrtB,SAAW,CACjD,IACO27I,CACX,CA2EiCI,CAAkBhxJ,EAAOmO,GAClDlF,EAAY,eAAkB,SAAU5D,GAEhCA,EAAGqE,QACF,IAAS6gD,QACN/7B,IACAA,EAAUnpB,GACVA,EAAGyG,iBACHzG,EAAG+C,kBAInB,GAAG,CAAComB,IACAsoB,GAAM,UAEV,OADA,OAAWA,EAAK,UAAW7tC,GACnB,gBAAoB,OAAO,QAAS,CAAE+G,IAAK+xC,IAAiB,QAAe/hD,EAAO,MAAgB,CAAEsC,UAAWA,EAAWof,KAAMA,EAAM,aAAclC,EAAW,kBAAmBhQ,EAAgB,mBAAoBD,EAAiBtG,UAAWA,EAAW8T,OAAO,QAAS,CAAE+qB,UAAW6oH,EAAyB,cAAWltJ,EAAWsM,QAAS,QAAUgN,KAAW3b,EACnX,IACA+mC,EAAMhpC,YAAc,O,uCChIT8xJ,E,kCACX,SAAWA,GACPA,EAAqBA,EAAiC,WAAI,GAAK,aAC/DA,EAAqBA,EAA+B,SAAI,GAAK,UAChE,CAHD,CAGGA,IAAyBA,EAAuB,CAAC,I,yDCgCzCC,EAAkC,SAAUC,GA7BtB,IACzBC,OA6BqB,IAArBD,IA7BAC,EAAoB,CAAC,EA6BUD,EA5B5B,CAMHE,qBAAsB,SAAUtyI,GAC5B,GAAIA,GAAQA,EAAK4zC,UAAYy+F,EAAkBjuJ,eAAe4b,EAAK4zC,UAC/D,OAAOy+F,EAAkBryI,EAAK4zC,SAGtC,EAKA2+F,sBAAuB,SAAUvyI,EAAMwyI,GAC/BxyI,EAAK4zC,WACLy+F,EAAkBryI,EAAK4zC,UAAY4+F,EAE3C,IASJ,IACIC,EADAC,EAAoBN,EAQxB,SAASO,EAAsBC,EAAcC,GACzC,IAAIC,EAAkBJ,EAAkBJ,qBAAqBM,GAC7D,QAAwBluJ,IAApBouJ,EACA,OAAOA,EAEX,IAAIC,EAAoBF,IAExB,OADAH,EAAkBH,sBAAsBK,EAAcG,GAC/CA,CACX,CASA,SAASC,EAA4BhzI,EAAMgE,EAAc6uI,GAGrD,IAFA,IAAII,EAAgBjzI,EAChB+yI,EAAoBJ,EAAsB3yI,EAAM6yI,GAC7CE,EAAoBN,GAAqB,CAC5C,IAAIS,EAAmBlvI,EAAaivI,GAIpC,QAAyBvuJ,IAArBwuJ,EACA,MAAO,CACHC,aAAcF,EACdG,qBAAiB1uJ,EACjBuuJ,mBAAevuJ,GAKvB,QAA0BA,KAF1BquJ,EAAoBL,EAAkBJ,qBAAqBY,IAGvD,MAAO,CACHD,cAAeC,EACfE,gBAAiB,UAGzBH,EAAgBC,CACpB,CACA,MAAO,CACHC,aAAcF,EACdG,qBAAiB1uJ,EACjBuuJ,mBAAevuJ,EAEvB,CA2GA,MAAO,CACH2uJ,aAvCJ,SAAsBpyJ,EAAOqyJ,EAAcT,EAA8BU,GAErE,QAA8B7uJ,IAA1B6uJ,QAAsE7uJ,IAA/B4uJ,EAAaL,cAAxD,CAGA,GAAIM,EAAuB,CAEvB,GAAId,GAAuBa,EAAaH,eAAiBG,EAAaL,cAClE,OAAO,SAAS,QAAS,CAAC,EAAGK,GAjCzC,SAAmCE,EAAcC,EAAmBN,EAAclvI,GAC9E,IAAIi+E,EAsBJ,OAnBQA,EAFJsxD,EAAef,EACXxuI,EACY,CACRmvI,gBAAiB,OACjBH,cAAehvI,EAAWkvI,IAIlB,CACRC,gBAAiB,SACjBH,cAAeQ,GAKX,CACRL,gBAAiB,SACjBH,cAAeE,GAGvBV,EAAsBe,GACf,SAAS,QAAS,CAAC,EAAGtxD,GAAY,CAAEwxD,kBAAkB,GACjE,CASwDC,CAA0BJ,EAAuBtyJ,EAAM+e,KAAMszI,EAAaH,aAAclyJ,EAAMgjB,aAG9IwuI,EAAsBc,CAC1B,CACA,IAAIrxD,GAAY,SAAS,QAAS,CAAC,EAAGoxD,GAAe,CAAEI,kBAAkB,IASzE,OARIJ,EAAaL,gBAET/wD,EADiC,SAAjCoxD,EAAaF,iBAA8BnyJ,EAAMgjB,YACrC,SAAS,QAAS,CAAC,EAAGi+E,GA5E9C,SAAoCliF,EAAMiE,EAAY4uI,EAA8B7uI,GAGhF,IAFA,IAAIivI,EAAgBjzI,EAChB+yI,EAAoBJ,EAAsB3yI,EAAM6yI,GAC7CE,EAAoBN,GAAqB,CAC5C,IAAIS,EAAmBjvI,EAAWgvI,GAIlC,QAAyBvuJ,IAArBwuJ,EACA,MAAO,CACHC,aAAcF,EACdG,qBAAiB1uJ,EACjBuuJ,mBAAevuJ,GAKvB,QAA0BA,KAF1BquJ,EAAoBL,EAAkBJ,qBAAqBY,IAGvD,MAAO,CACHD,cAAeC,GAGvBD,EAAgBC,CACpB,CAEA,OAAO,QAAS,CAAEE,gBAAiB,UAAYJ,EAA4BC,EAAejvI,EAAc6uI,GAC5G,CAkD0De,CAA2BN,EAAaL,cAAehyJ,EAAMgjB,WAAY4uI,EAA8B5xJ,EAAM+iB,gBAG/I,SAAS,QAAS,CAAC,EAAGk+E,GAAY8wD,EAA4BM,EAAaL,cAAehyJ,EAAM+iB,aAAc6uI,KAG3H3wD,CAlBP,CAmBJ,EAiBI2xD,+BAfJ,SAAwCZ,GACpC,SAAKA,QAA2EvuJ,IAA1DguJ,EAAkBJ,qBAAqBW,GAIjE,EAWIa,2BAVJ,SAAoC9zI,GAChC,MAAO,CACHizI,eAAe,QAAS,CAAC,EAAGjzI,GAC5BozI,gBAAiB,OACjBM,kBAAkB,EAE1B,EAMJ,EAGWK,EAAkB,gBAAoB,CAAEC,YAAY,IAE3DC,EAAkB,CAAEptI,SAAU,QAASsd,WAAY,UACnD+vH,EAAqB,CAAErtI,SAAU,YAOrC,SAASstI,EAAkBvzJ,EAAOm4G,GAC9B,IAAIh5G,EACJ,OAAQg5G,EAAO32G,MACX,IAAK,aACD,OAAO,QAAS,CAAC,EAAG22G,EAAOzjG,OAC/B,IAAK,gBACD,OAAO,SAAS,QAAS,CAAC,EAAG1U,GAAQ,CAAEqyJ,cAAel6C,EAAOzjG,MAAO89I,gBAAiB,OAAQM,kBAAkB,IACnH,QACI,OAAO,SAAS,QAAS,CAAC,EAAG9yJ,KAASb,EAAK,CAAC,GAAMg5G,EAAO32G,MAAQ22G,EAAOzjG,MAAOvV,IAE3F,CAkGA,IAAIq0J,EAAuB,CAAEJ,YAAY,GAC9BK,EAAkB,cAAiB,SAAUpzJ,EAAO6jC,GAC3D,IAAIY,EAAU,SAAa,MAEvBsd,GAAgB,EAAAvrC,EAAA,GAAciuB,EAASZ,GACvC/kC,EAtER,SAA6BkB,EAAOykC,GAChC,IAAI4uH,GAA+B,EAAA59I,EAAA,GAASy7I,GAGxCoC,EAAmB,SAAa,MAGhCC,EAAkB,SAAa,MAG/BC,EAAqB,UAAa,GAClClxH,GAAQ,EAAAvtB,EAAA,KACRjW,EA5CR,SAAwBkB,EAAOqzJ,EAA8B5uH,GACzD,IAAIgvH,GAAmB,EAAAh+I,EAAA,IAAS,WAAc,OAAO49I,EAA6BR,2BAA2B7yJ,EAAM+e,KAAO,IACtHjgB,EAAK,aAAiBo0J,EAAmBO,GAAmBC,EAAa50J,EAAG,GAAI60J,EAA2B70J,EAAG,GAElH,aAAgB,WACZ60J,EAAyB,CACrBxyJ,KAAM,gBACNkT,MAAOrU,EAAM+e,MAErB,GAAG,CAAC/e,EAAM+e,OAGV,IAAI60I,EAAW,SAAaH,GAkB5B,OAjBAG,EAAS/rJ,SAAU,QAAS,CAAC,EAAG6rJ,GAiBzB,CAACE,EAhBgB,eAAkB,SAAU3yD,GAC5CA,GACA0yD,EAAyB,CACrBxyJ,KAAM,aACNkT,MAAO4sF,GAGnB,GAAG,IACa,eAAkB,WAC1Bx8D,EAAQ58B,SACR8rJ,EAAyB,CACrBxyJ,KAAM,mBACNkT,OAAO,GAGnB,GAAG,CAACowB,IAER,CAaaovH,CAAe7zJ,EAAOqzJ,EAA8B5uH,GAAUmvH,EAAW90J,EAAG,GAAIg1J,EAAoBh1J,EAAG,GAAIw0D,EAAYx0D,EAAG,GACnI,aAAgB,WACZ,IAAIA,EACA80J,EAAS/rJ,QAAQqqJ,eACjBsB,EAAmB3rJ,SAAU,EACE,QAA9B/I,EAAKkB,EAAMizD,qBAAkC,IAAPn0D,GAAyBA,EAAGsF,KAAKpE,EAAO4zJ,EAAS/rJ,QAAQqqJ,cAExG,IACA,aAAgB,WACZ5vH,EAAMK,uBAAsB,WACxB,IAAIoxH,OAAqBtwJ,EACzB,GAAImwJ,EAAS/rJ,QAAQ4qJ,kBAAoBhuH,EAAQ58B,QAAS,CACtD,IAAIsyB,EAAesK,EAAQ58B,QAAQ8K,wBACnCohJ,EACI/zJ,EAAM6I,YAAcooJ,EAAqBjnJ,SAAWmwB,EAAavmB,OAASumB,EAAartB,KAC/F,CACA,IAAIm0F,EAAYoyD,EAA6BjB,aAAapyJ,EAAO4zJ,EAAS/rJ,SAAS,WAC/E,IAAImsJ,EAAgBR,EAAmB3rJ,QAA6B0rJ,EAAnBD,EACjD,IAAKU,EAAansJ,QACd,OAAO,EAEX,IAAIosJ,EAAuBD,EAAansJ,QAAQ8K,wBAChD,OAAO3S,EAAM6I,YAAcooJ,EAAqBjnJ,SAC1CiqJ,EAAqBrgJ,OACrBqgJ,EAAqBnnJ,KAC/B,GAAGinJ,GACHD,EAAkB7yD,EACtB,GAAGx8D,EAAQ58B,QACf,IACA,IAAIivC,GAAM,WACV,EAAA1/B,EAAA,GAAW0/B,EAAK,SAAUxU,EAAM8C,SAASkuB,EA5S1B,GA4SmD,CAAEjuB,SAAS,KAC7E,IAAI6uH,EAAqBb,EAA6BT,+BAA+BgB,EAAS/rJ,QAAQmqJ,eAClGmC,GAAoBX,EAAmB3rJ,SAAWqsJ,EACtD,MAAO,CACHN,EAAS/rJ,QAAQmqJ,cACjB4B,EAAS/rJ,QAAQqqJ,aACjB5+F,EACAggG,EACAC,EACAW,EACAC,EAER,CAgBaC,CAAoBp0J,EAAOykC,GAAUutH,EAAgBlzJ,EAAG,GAAIozJ,EAAepzJ,EAAG,GAAIw0D,EAAYx0D,EAAG,GAAIw0J,EAAmBx0J,EAAG,GAAIy0J,EAAkBz0J,EAAG,GAAIo1J,EAAqBp1J,EAAG,GAAIq1J,EAAmBr1J,EAAG,GACnN,sBAA0BkB,EAAM8hB,cAAc,WAAc,MAAO,CAAGwxC,UAAWA,EAAc,GAAG,CAACA,IAEnG,IAAIhxD,EAAYtC,EAAMsC,UAAW6gB,EAAenjB,EAAMmjB,aAClD1T,GAAW,QAAezP,EAAO,KAAe,CAAC,SAOrD,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGyP,EAAU,CAAEnN,UAAWA,EAAW0N,IAAK+xC,IACnF,gBAAoB,MAAO,CAAEhlC,MAAOk2I,GAChCiB,IAAuBC,GAAqB,gBAAoB,MAAO,CAAEp3I,MAAOi2I,EAAiBhjJ,IAAKujJ,GAClG,gBAAoBT,EAAgBj6C,SAAU,CAAExkG,MAAO8+I,GAAwBhwI,EAAa6uI,KAChG,gBAAoB,MAAO,CAAEhiJ,IAAKsjJ,EAAkBv2I,MAAOo3I,EAAmBnB,OAAkBvvJ,EAAW,qBAAsB,kBAAoB0wJ,EAAmBhxI,EAAa6uI,GAAiBE,GAAgB/uI,EAAa+uI,KAC/O,IACAkB,EAAgBj0J,YAAc,kBC9VvB,IAAI+jB,EAAckwI,C,kDCArBhwI,EAAmB,CACnBjV,KAAM,oBACNkmJ,iBAAkB,uC,mGCClBh2I,GAAgB,EAAAC,EAAA,KAChBg2I,EAAoC,SAAU9tJ,GAE9C,SAAS8tJ,EAAmBt0J,GACxB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAuMxC,OAtMAkC,EAAMC,MAAQ,cACdD,EAAM2tJ,gBAAkB,cACxB3tJ,EAAM4tJ,gBAAkB,cACxB5tJ,EAAM6tJ,kBAAoB,cAC1B7tJ,EAAM4jF,UAAY,SAAUkqE,GACxB9tJ,EAAM+tJ,aAAatmJ,IAAIqmJ,EAC3B,EACA9tJ,EAAMguJ,YAAc,SAAUF,GAC1B9tJ,EAAM+tJ,aAAa1lJ,OAAOylJ,EAC9B,EACA9tJ,EAAMiuJ,UAAY,SAAUC,GACxBluJ,EAAMmuJ,UAAU1mJ,IAAIymJ,GAEhBluJ,EAAMytJ,mBACNS,EAAOE,mBAAmBpuJ,EAAMytJ,kBAChCztJ,EAAMquJ,WAAWH,GAEzB,EACAluJ,EAAMsuJ,aAAe,SAAUJ,GAC3BluJ,EAAMmuJ,UAAU9lJ,OAAO6lJ,GACvBluJ,EAAMuuJ,4BAA4BL,GAClCluJ,EAAMwuJ,mBACV,EACAxuJ,EAAMquJ,WAAa,SAAUH,EAAQO,GAC7BzuJ,EAAM0uJ,aAAe1uJ,EAAM2uJ,cACvBF,GACAzuJ,EAAMuuJ,4BAA4BL,GAElCA,EAAOU,cAAgBV,EAAOW,kBAC9B7uJ,EAAM8uJ,sBAAsBZ,EAAQluJ,EAAM0uJ,YAAaR,EAAOW,kBAE9DX,EAAOa,iBAAmBb,EAAOc,qBACjChvJ,EAAM8uJ,sBAAsBZ,EAAQluJ,EAAM2uJ,YAAaT,EAAOc,qBAG1E,EACAhvJ,EAAMivJ,uBAAyB,WAC3B,IAAIC,EAAclvJ,EAAMmuJ,UACpBgB,EAAkB,EAClBC,EAAqB,EACzBF,EAAY9nJ,SAAQ,SAAU8mJ,GAC1B,IAAIh2J,EAAKg2J,EAAOn1J,MAAOs2J,EAAcn3J,EAAGm3J,YAAaC,EAAiBp3J,EAAGo3J,eACrEpB,EAAOqB,mBACHF,IACAF,GAAmBjB,EAAOqB,iBAAiBnnG,cAE3CknG,IACAF,GAAsBlB,EAAOqB,iBAAiBnnG,cAElDpoD,EAAMwvJ,mBAAmBtB,GAEjC,IACAluJ,EAAM0T,SAAS,CACXy7I,gBAAiBA,EACjBC,mBAAoBA,GAE5B,EACApvJ,EAAMwuJ,kBAAoB,WAClBxuJ,EAAMytJ,kBACNztJ,EAAM+tJ,aAAa3mJ,SAAQ,SAAUqoJ,GAEjCA,EAAOzvJ,EAAMytJ,iBAAkBztJ,EAAM2uJ,YACzC,GAER,EACA3uJ,EAAM0vJ,kBAAoB,WACtB,OAAI1vJ,EAAMytJ,iBACCztJ,EAAMytJ,iBAAiBllG,UAE3B,CACX,EACAvoD,EAAM2vJ,iBAAmB,SAAUzB,GAC3BA,GAAUluJ,EAAMytJ,kBAChBS,EAAO0B,WAAW5vJ,EAAMytJ,iBAEhC,EACAztJ,EAAM6vJ,0BAA4B,WAC9B,MAAO,CACHC,eAAgB,CACZlsE,UAAW5jF,EAAM4jF,UACjBoqE,YAAahuJ,EAAMguJ,YACnBC,UAAWjuJ,EAAMiuJ,UACjBK,aAActuJ,EAAMsuJ,aACpBW,uBAAwBjvJ,EAAMivJ,uBAC9BZ,WAAYruJ,EAAMquJ,WAClBG,kBAAmBxuJ,EAAMwuJ,kBACzBmB,iBAAkB3vJ,EAAM2vJ,kBAGpC,EACA3vJ,EAAM8uJ,sBAAwB,SAAUZ,EAAQ6B,EAAiBC,GAE7D,GAAKD,EAAgBv1J,SAAShB,QAK1B,IAAKu2J,EAAgBn5J,SAASo5J,GAAqB,CAC/C,IAAIC,EAA2B,GAAG5/I,MAAM7S,KAAKuyJ,EAAgBv1J,UACzD01J,EAAe,GAGnBlwJ,EAAMmuJ,UAAU/mJ,SAAQ,SAAU+oJ,IAC1BJ,IAAoB/vJ,EAAM0uJ,aAAeR,EAAOU,cAG3CV,EAAOa,kBAFZmB,EAAaz0J,KAAK00J,EAK1B,IAcA,IAbA,IAYIC,OAA6BvzJ,EACxBvD,EAAK,EAAG+2J,EAbMH,EAClB3mG,MAAK,SAAU1b,EAAG3wC,GACnB,OAAQ2wC,EAAE90C,MAAMu3J,iBAAmB,IAAMpzJ,EAAEnE,MAAMu3J,iBAAmB,EACxE,IACK31H,QAAO,SAAUthB,GAClB,IAAIk3I,EAAgBR,IAAoB/vJ,EAAM0uJ,YAAcr1I,EAAKw1I,iBAAmBx1I,EAAK21I,oBACzF,QAAIuB,GACON,EAAyB7iJ,QAAQmjJ,IAAkB,CAGlE,IAGwDj3J,EAAK+2J,EAAmB72J,OAAQF,IAAM,CAC1F,IAAIk3J,EAAiBH,EAAmB/2J,GACxC,IAAKk3J,EAAez3J,MAAMu3J,iBAAmB,KAAOpC,EAAOn1J,MAAMu3J,iBAAmB,GAAI,CACpFF,EAA6BI,EAC7B,KACJ,CACJ,CAGA,IAAIC,EAAkB,KAClBL,IACAK,EACIV,IAAoB/vJ,EAAM0uJ,YACpB0B,EAA2BvB,iBAC3BuB,EAA2BpB,qBAEzCe,EAAgBj4B,aAAak4B,EAAoBS,EACrD,OA/CAV,EAAgBxzH,YAAYyzH,EAiDpC,EACAhwJ,EAAMuuJ,4BAA8B,SAAUL,GACtCluJ,EAAM0uJ,aAAeR,EAAOW,kBAAoB7uJ,EAAM0uJ,YAAY93J,SAASs3J,EAAOW,mBAClF7uJ,EAAM0uJ,YAAY9xH,YAAYsxH,EAAOW,kBAErC7uJ,EAAM2uJ,aAAeT,EAAOc,qBAAuBhvJ,EAAM2uJ,YAAY/3J,SAASs3J,EAAOc,sBACrFhvJ,EAAM2uJ,YAAY/xH,YAAYsxH,EAAOc,oBAE7C,EACAhvJ,EAAM0wJ,gBAAkB,WACpB,IAAIC,EAAiB3wJ,EAAM4wJ,qBACvBC,EAAkB7wJ,EAAM8wJ,sBAC5B9wJ,EAAM0T,SAAS,CACXi9I,eAAgBA,EAChBE,gBAAiBA,IAErB7wJ,EAAMwuJ,mBACV,EACAxuJ,EAAM+wJ,yBAA2B,SAAU/jJ,EAAQgkJ,GAC/C,OAAO,SAAS,QAAS,CAAEhkJ,OAAQA,IAAW,QAAOhN,EAAM5G,MAAMJ,OAC3D,CACEuK,MAAO,IACPJ,KAAM,GAAGmN,OAAOtQ,EAAMjH,MAAM43J,gBAAkB3wJ,EAAM4wJ,sBAAwB,EAAG,OAEjF,CACEztJ,KAAM,IACNI,MAAO,GAAG+M,OAAOtQ,EAAMjH,MAAM43J,gBAAkB3wJ,EAAM4wJ,sBAAwB,EAAG,QAC9EI,EACJ,CACEnrJ,IAAK,KAEP,CACEE,OAAQ,GAAGuK,OAAOtQ,EAAMjH,MAAM83J,iBAAmB7wJ,EAAM8wJ,uBAAyB,EAAG,OAE/F,EACA9wJ,EAAM6gD,UAAY,WACd,IAAI4sG,EAAmBztJ,EAAMytJ,iBACzBA,GACAztJ,EAAMmuJ,UAAU/mJ,SAAQ,SAAU8mJ,GAC9BA,EAAO0B,WAAWnC,EACtB,IAEJztJ,EAAMixJ,kBACV,EACAjxJ,EAAM+tJ,aAAe,IAAIvuJ,IACzBQ,EAAMmuJ,UAAY,IAAI3uJ,KACtB,EAAA4G,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzBA,EAAMiqB,QAAU,IAAIC,EAAA,EAAWlqB,GAC/BA,EAAMjH,MAAQ,CACVo2J,gBAAiB,EACjBC,mBAAoB,EACpBuB,eAAgB,EAChBE,gBAAiB,GAErB7wJ,EAAMixJ,iBAAmBjxJ,EAAMiU,OAAOi9I,SAASlxJ,EAAMwuJ,kBAAmB,IACjExuJ,CACX,CA8LA,OAxYA,QAAU0tJ,EAAoB9tJ,GA2M9BzC,OAAOgN,eAAeujJ,EAAmBnwJ,UAAW,OAAQ,CACxD6M,IAAK,WACD,OAAOtM,KAAKmC,MAAMgB,OACtB,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAeujJ,EAAmBnwJ,UAAW,cAAe,CAC/D6M,IAAK,WACD,OAAOtM,KAAK6vJ,gBAAgB1sJ,OAChC,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAeujJ,EAAmBnwJ,UAAW,cAAe,CAC/D6M,IAAK,WACD,OAAOtM,KAAK8vJ,gBAAgB3sJ,OAChC,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAeujJ,EAAmBnwJ,UAAW,mBAAoB,CACpE6M,IAAK,WACD,OAAOtM,KAAK+vJ,kBAAkB5sJ,OAClC,EACAoJ,YAAY,EACZC,cAAc,IAElBojJ,EAAmBnwJ,UAAU+J,kBAAoB,WAC7C,IAAItH,EAAQlC,KACRqzJ,EAAwBrzJ,KAAK1E,MAAM+3J,sBACvCrzJ,KAAKmsB,QAAQnZ,GAAGhT,KAAK2vJ,iBAAkB,SAAU3vJ,KAAK+iD,WACtD/iD,KAAKmsB,QAAQnZ,GAAG1R,OAAQ,SAAUtB,KAAK4yJ,iBACnC5yJ,KAAK2vJ,kBAAoB0D,IACzBrzJ,KAAK2vJ,iBAAiBllG,UAAY4oG,GAGtCrzJ,KAAKszJ,6BACLtzJ,KAAKqwJ,UAAU/mJ,SAAQ,SAAU8mJ,GAC7BluJ,EAAMquJ,WAAWH,EACrB,IACApwJ,KAAK0wJ,oBACD,qBAAsBpvJ,SACtBtB,KAAKuzJ,kBAAoB,IAAIC,kBAAiB,SAAUC,GASpD,IAAIV,EAAkB7wJ,EAAM8wJ,sBAU5B,GARID,IAAoB7wJ,EAAMjH,MAAM83J,iBAChC7wJ,EAAM0T,SAAS,CACXm9I,gBAAiBA,IAIzB7wJ,EAAMwuJ,oBAEF+C,EAASplH,KAjBb,SAAiCqlH,GAC7B,OAAyB,OAArB1zJ,KAAK4wJ,aAA6C,OAArB5wJ,KAAK6wJ,cAC3B7wJ,KAAK4wJ,YAAY93J,SAAS46J,EAAeh6J,SAAWsG,KAAK6wJ,YAAY/3J,SAAS46J,EAAeh6J,QAG5G,EAY0CkiB,KAAK1Z,IAC3CA,EAAMivJ,6BAEL,CAED,IAAIwC,EAAe,GACnBzxJ,EAAMmuJ,UAAU/mJ,SAAQ,SAAU8mJ,GAC1BA,EAAO3mJ,MAAQ2mJ,EAAO3mJ,KAAK3Q,SAAS26J,EAAS,GAAG/5J,SAChDi6J,EAAah2J,KAAKyyJ,EAE1B,IACIuD,EAAaj4J,QACbi4J,EAAarqJ,SAAQ,SAAU8mJ,GAC3BA,EAAOvkI,aACX,GAER,CACJ,IACI7rB,KAAKyJ,MACLzJ,KAAKuzJ,kBAAkBjiE,QAAQtxF,KAAKyJ,KAAM,CACtCmqJ,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,eAAe,IAI/B,EACAnE,EAAmBnwJ,UAAU6K,qBAAuB,WAChDtK,KAAKmsB,QAAQ5b,UACbvQ,KAAKmW,OAAO5F,UACRvQ,KAAKuzJ,mBACLvzJ,KAAKuzJ,kBAAkB/hE,YAE/B,EAEAo+D,EAAmBnwJ,UAAUm0D,sBAAwB,SAAU/vB,EAAW04D,GACtE,OAAQv8F,KAAK1E,MAAMoB,WAAamnC,EAAUnnC,UACtCsD,KAAK1E,MAAM+3J,wBAA0BxvH,EAAUwvH,uBAC/CrzJ,KAAK1E,MAAMsC,YAAcimC,EAAUjmC,WACnCoC,KAAK/E,MAAMo2J,kBAAoB90D,EAAU80D,iBACzCrxJ,KAAK/E,MAAMq2J,qBAAuB/0D,EAAU+0D,oBAC5CtxJ,KAAK/E,MAAM43J,iBAAmBt2D,EAAUs2D,gBACxC7yJ,KAAK/E,MAAM83J,kBAAoBx2D,EAAUw2D,eACjD,EACAnD,EAAmBnwJ,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GACnE,IAAI8lI,EAAwBrzJ,KAAK1E,MAAM+3J,sBACnCrzJ,KAAK2vJ,kBAC4B,iBAA1B0D,GACP/lI,EAAU+lI,wBAA0BA,IACpCrzJ,KAAK2vJ,iBAAiBllG,UAAY4oG,GAGlC9lI,EAAU8jI,kBAAoBrxJ,KAAK/E,MAAMo2J,iBACzC9jI,EAAU+jI,qBAAuBtxJ,KAAK/E,MAAMq2J,oBAC5CtxJ,KAAK0wJ,oBAET1wJ,KAAKmW,OAAO1C,WAAWzT,KAAK4yJ,gBAAiB,EACjD,EACAhD,EAAmBnwJ,UAAUxB,OAAS,WAClC,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWo2J,EAAuB55J,EAAG45J,qBAAsBC,EAA2B75J,EAAG65J,yBAA0B/4J,EAAQd,EAAGc,MAAOG,EAASjB,EAAGiB,OAAQokC,EAAWrlC,EAAGqlC,SACvM19B,EAAK/B,KAAK/E,MAAOo2J,EAAkBtvJ,EAAGsvJ,gBAAiBC,EAAqBvvJ,EAAGuvJ,mBAC/E7zJ,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXs2J,oBAAqBl0J,KAAK1E,MAAM44J,sBAEhCC,EAAuBH,EACrB,CACEh3I,KAAM,QACN/P,SAAU,EACV,aAAcgnJ,EACdx0H,SAAUA,GAEZ,CACEA,SAAUA,GAElB,OAAQ,gBAAoB,OAAO,QAAS,CAAC,GAAG,SAAe,QAAS,CAAC,EAAGz/B,KAAK1E,OAAQ,KAGzF,CAAC,aAAc,CAAEgQ,IAAKtL,KAAKmC,MAAOvE,UAAWH,EAAWgM,OACpD,gBAAoB,MAAO,CAAE6B,IAAKtL,KAAK6vJ,gBAAiBjyJ,UAAWH,EAAWmzJ,YAAav4I,MAAOrY,KAAKizJ,yBAAyB5B,GAAiB,KACjJ,gBAAoB,OAAO,QAAS,CAAE/lJ,IAAKtL,KAAK+vJ,mBAAqBoE,EAAsB,CAAEv2J,UAAWH,EAAWkyJ,iBAAkB,sBAAsB,IACvJ,gBAAoB,EAAAyE,EAAsBjgD,SAAU,CAAExkG,MAAO3P,KAAK+xJ,6BAA+B/xJ,KAAK1E,MAAMoB,WAChH,gBAAoB,MAAO,CAAEkB,UAAWH,EAAWozJ,YAAax4I,MAAOrY,KAAKizJ,yBAAyB3B,GAAoB,IACrH,gBAAoB,MAAO,CAAEhmJ,IAAKtL,KAAK8vJ,gBAAiBlyJ,UAAWH,EAAW42J,oBAC1F,EACAzE,EAAmBnwJ,UAAU6zJ,2BAA6B,WACtD,IAAIpxJ,EAAQlC,KACRA,KAAK2vJ,kBACL3vJ,KAAKqwJ,UAAU/mJ,SAAQ,SAAU8mJ,GAC7BA,EAAOE,mBAAmBpuJ,EAAMytJ,iBACpC,GAER,EACAC,EAAmBnwJ,UAAU60J,kBAAoB,WAC7Ct0J,KAAK4yJ,iBACT,EACAhD,EAAmBnwJ,UAAUiyJ,mBAAqB,SAAUtB,GACpDpwJ,KAAK4wJ,aAAe5wJ,KAAK6wJ,aAAe7wJ,KAAK2vJ,kBAAoBS,EAAOqB,mBAEpErB,EAAOn1J,MAAMs2J,aAAenB,EAAOn1J,MAAMu2J,gBACrCpB,EAAOn1J,MAAMs2J,cACZvxJ,KAAK4wJ,YAAY93J,SAASs3J,EAAOqB,mBAClCrB,EAAOW,kBACPX,EAAOD,UAAUC,EAAOW,kBAExBX,EAAOn1J,MAAMu2J,iBACZxxJ,KAAK6wJ,YAAY/3J,SAASs3J,EAAOqB,mBAClCrB,EAAOc,qBACPd,EAAOD,UAAUC,EAAOc,sBAGtBlxJ,KAAK2vJ,iBAAiB72J,SAASs3J,EAAOqB,mBAE5CrB,EAAOmE,cAGnB,EACA3E,EAAmBnwJ,UAAUqzJ,mBAAqB,WAC9C,IAAInD,EAAmB3vJ,KAAK2vJ,iBAC5B,OAAOA,EAAmBA,EAAiB7wF,YAAc6wF,EAAiBhtG,YAAc,CAC5F,EACAitG,EAAmBnwJ,UAAUuzJ,oBAAsB,WAC/C,IAAIrD,EAAmB3vJ,KAAK2vJ,iBAC5B,OAAOA,EAAmBA,EAAiBrlG,aAAeqlG,EAAiB9gJ,aAAe,CAC9F,EACO+gJ,CACX,CA1YuC,CA0YrC,aC5YS4E,GAAiB,E,SAAA,GAAO5E,GFEZ,SAAUt0J,GAC7B,IAAIlB,EAAI2H,EACJnE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3CuC,GAAa,QAAoBihB,EAAkBxjB,GACnDu5J,EAAsB,CACtBvzI,SAAU,WACVoT,cAAe,QAEfogI,EAAmB,CACnBxzI,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACNo9F,wBAAyB,SAE7B,MAAO,CACHh5F,KAAM,CAAChM,EAAWgM,KAAMvO,EAAMkkB,MAAMyB,OAAQ6zI,EAAkB92J,GAC9D+xJ,iBAAkB,CACdlyJ,EAAWkyJ,iBACX,CACIvsH,UAAyC,WAA9B9nC,EAAM44J,oBAAmC,SAAW,QAEnEQ,GAEJ9D,YAAa,CACT,CACI7oJ,IAAK,EACLs8B,OAAQ,EACRj5B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB42E,aAAc,wBAElB52E,IAERq6J,GAEJ5D,YAAa,CACT,CACI5oJ,OAAQ,EACRmD,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgvE,UAAW,wBAEfhvE,IAER0yJ,GAEJJ,iBAAkB,CACd,CACIpsJ,OAAQ,GAEZwsJ,EACA,CACIrsJ,MAAO,SAIvB,QE5DkErJ,EAAW,CAAE0iB,MAAO,kB,0DCC3EkzI,EAAsB,CAC7BC,KAAM,OACNxmE,OAAQ,UAEDymE,EAAwB,gBAAoB,CAAE7C,oBAAgBjzJ,G,+JCFrE+oB,EAAiB,YACjBqM,EAAmB,CAAE1qB,KAAM,CAAEyF,OAAQ,QAAU+T,KAAM,CAAErC,SAAU,SACjE++B,EAAkB,CAAEljC,SAAU,SAC9Bq4I,EAA0B,CAAEh6I,UAAW,cACvCnB,GAAgB,EAAAC,EAAA,KAQTm7I,EAAgB,cAAiB,SAAUz5J,EAAO6jC,GACzD,IAAIrkB,EAAYxf,EAAMwf,UAAWld,EAAYtC,EAAMsC,UAAWxD,EAAKkB,EAAM05J,aAAcA,OAAsB,IAAP56J,EAAgB,GAAKA,EAAI0J,EAAWxI,EAAMwI,SAAU+4E,EAAavhF,EAAMuhF,WAAYxhF,EAASC,EAAMD,OAExM45J,EAAY35J,EAAM25J,UAElBlzJ,EAAKzG,EAAMmkD,YAEXA,OAAqB,IAAP19C,EAAgBkzJ,EAAYlzJ,EAAI7G,EAAQI,EAAMJ,MAAO8G,EAAK1G,EAAM45J,iBAAkBA,OAA0B,IAAPlzJ,EAAgB8yJ,EAA0B9yJ,EAAIC,EAAK3G,EAAM65J,iBAAkBA,OAA0B,IAAPlzJ,GAAwBA,EAAIid,EAAK5jB,EAAM85J,SAAUA,OAAkB,IAAPl2I,GAAwBA,EAAIm2I,EAAgB/5J,EAAMg6J,QAASC,EAAej6J,EAAM+vC,OAAQmqH,EAAiBl6J,EAAMm6J,SAAUC,EAAiBp6J,EAAMq6J,SAAUC,EAAkBt6J,EAAMiJ,UAAWmY,EAAYphB,EAAMohB,UAAWM,EAAO1hB,EAAM0hB,KAAM5L,EAAW9V,EAAM8V,SAE3gBupG,EAAYr/G,EAAMq/G,UACdlpF,EAAK,YAAe,GAAQuQ,EAAWvQ,EAAG,GAAIokI,EAAcpkI,EAAG,GAC/DqkI,EAAsB,WACtBpkI,GAAK,EAAAzgB,EAAA,GAAqB3V,EAAMqU,MAAOqlJ,GAAc,SAAUr0J,EAAI+Q,GAC/D/Q,GAAMA,EAAGo1J,YAAcD,EAAoB3yJ,UAM/C2yJ,EAAoB3yJ,QAAUxC,aAA+B,EAASA,EAAGo1J,UACzE3kJ,SAAoDA,EAASzQ,EAAI+Q,GACjEipG,SAAsDA,EAAUjpG,GACpE,IAAIskJ,EAActkI,EAAG,GAAIhhB,EAAWghB,EAAG,GACnC/hB,EAAQ5G,OAAOitJ,GACfC,EAAiB,SAAa,MAC9BC,EAAkB,SAAa,MAC/B74G,GAAgB,EAAAvrC,EAAA,GAAcmkJ,EAAgB92H,GAC9C5rB,GAAK,EAAA5B,EAAA,GAAMmW,EAAgBxsB,EAAMiY,IACjC4iJ,GAAqBjB,EAAiBp8I,QACtCrb,GAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXi/E,WAAYA,EACZ76C,SAAUA,EACVl+B,SAAUA,EACVsyJ,SAAUzmJ,EAAMjU,OAAS,EACzBy5J,iBAAkBA,EAClBC,SAAUA,IAEVh9I,IAAc,QAAe9c,EAAO,KAAiB,CACrD,YACA,cACA,UACA,SACA,QACA,SAEAg6J,GAAU,eAAkB,SAAU30J,GACtC,IAAIvG,EACJi7J,SAA8DA,EAAc10J,GACvEA,EAAGopB,mBACJrZ,EAAS,IAC0B,QAAlCtW,EAAK87J,EAAgB/yJ,eAA4B,IAAP/I,GAAyBA,EAAGiJ,QACvE1C,EAAG+C,kBACH/C,EAAGyG,iBAEX,GAAG,CAACiuJ,EAAe3kJ,IACf2lJ,GAAe,eAAkB,SAAU11J,GAC3Cw1J,UAAwEA,GAAmBx1J,GACtFA,EAAGopB,kBACJurI,GAAQ30J,EAEhB,GAAG,CAACw1J,GAAoBb,KAYpBjqH,GAAS,eAAkB,SAAU1qC,GACrCk1J,GAAY,GACZN,SAA4DA,EAAa50J,EAC7E,GAAG,CAAC40J,IACAz+I,GAAgB,SAAUnW,GAC1B+P,EAAS/P,EAAGjH,OAAOiW,MAAOhP,EAC9B,EAgCA,OAvHkB,SAAUyc,EAAc84I,EAAiBl0H,GAC3D,sBAA0B5kB,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WAAc,IAAIjJ,EAAI,OAA0C,QAAlCA,EAAK87J,EAAgB/yJ,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,OAAS,EACpHizJ,KAAM,WAAc,IAAIl8J,EAAI,OAA0C,QAAlCA,EAAK87J,EAAgB/yJ,eAA4B,IAAP/I,OAAgB,EAASA,EAAGk8J,MAAQ,EAClHt0H,SAAU,WAAc,OAAOA,CAAU,EACzC,GAAG,CAACk0H,EAAiBl0H,GAC7B,CAgHIsF,CAAgBhsC,EAAM8hB,aAAc84I,EAAiBl0H,GAC7C,gBAAoB,MAAO,CAAEhlB,KAAMA,EAAM1R,IAAK+xC,EAAez/C,UAAWH,GAAWgM,KAAMslB,eAjD5E,SAAUpuB,GAC3B,IAAIvG,EACJy7J,GAAY,GACa,QAAxBz7J,EAAKkB,EAAMuH,eAA4B,IAAPzI,GAAyBA,EAAGsF,KAAKpE,EAAOqF,EAC7E,GA8CI,gBAAoB,MAAO,CAAE/C,UAAWH,GAAW4rI,cAAevwH,QA7CnD,WACXo9I,EAAgB/yJ,UAChB+yJ,EAAgB/yJ,QAAQE,QACxB6yJ,EAAgB/yJ,QAAQoM,eAAiB2mJ,EAAgB/yJ,QAAQsM,aAAe,EAExF,EAwC6F,eAAe,GACpG,gBAAoBwL,EAAA,GAAM,QAAS,CAAEwB,SAAU,UAAYC,EAAW,CAAE9e,UAAWH,GAAWwlB,SAClG,gBAAoB,SAAS,QAAS,CAAC,EAAG7K,GAAa,CAAE7E,GAAIA,EAAI3V,UAAWH,GAAWktC,MAAO8U,YAAaA,EAAaruC,SAAU0F,GAAe+B,QAAS/B,GAAeu0B,OAAQA,GAAQ9mC,UAlC7K,SAAU5D,GAEtB,OAAQA,EAAGqE,OACP,KAAKC,EAAA,EAAS4gD,OACV2vG,SAAgEA,EAAe70J,GAG3EgP,IAAUhP,EAAGopB,kBACburI,GAAQ30J,GAEZ,MACJ,KAAKsE,EAAA,EAASiC,MACNwuJ,IACAA,EAAe/lJ,GACfhP,EAAGyG,iBACHzG,EAAG+C,mBAEP,MACJ,QAEIkyJ,SAAkEA,EAAgBj1J,GAG9EA,EAAGopB,kBACHppB,EAAG+C,kBAInB,EAMmNiM,MAAOA,EAAO7L,SAAUA,EAAUkZ,KAAM,YAAa,aAAclC,EAAWxP,IAAK4qJ,KAClSvmJ,EAAMjU,OAAS,GAAM,gBAAoB,MAAO,CAAEkC,UAAWH,GAAW84J,aACpE,gBAAoB15I,EAAA,GAAY,QAAS,CAAEwuB,OAAQA,GAAQhwC,OAAQ84B,EAAkBzX,UAAWijC,GAAmBu1G,EAAkB,CAAEp8I,QAASu9I,OAC5J,IACAtB,EAAct6J,YAAcqtB,E,0BCvIxBpJ,EAAmB,CACnBjV,KAAM,eACN4/H,cAAe,6BACfpmH,KAAM,oBACNszI,YAAa,2BACb5rH,MAAO,sBCJA6rH,GAAY,EAAAv3I,EAAA,GAAO81I,GDMvB,SAAmBz5J,GACtB,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBhkB,EAAQI,EAAMJ,MAAO2hF,EAAavhF,EAAMuhF,WAAY/4E,EAAWxI,EAAMwI,SAAUk+B,EAAW1mC,EAAM0mC,SAAUpkC,EAAYtC,EAAMsC,UAAWw4J,EAAW96J,EAAM86J,SAAUjB,EAAmB75J,EAAM65J,iBAAkBC,EAAW95J,EAAM85J,SAC9Nj2I,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAAOpF,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QACrGpyB,GAAa,QAAoBihB,EAAkBxjB,GAEnD2gD,EAAoB,CACpB9hC,MAAOC,EAAe8hC,qBACtBlf,QAAS,GAET65H,EAAet3I,EAAQO,iBACvBg3I,EAAsBv3I,EAAQW,eAC9B62I,EAAsBx3I,EAAQ4T,eAC9B6jI,EAAyBz3I,EAAQ4T,eACjC8jI,EAA0B13I,EAAQ4T,eACtC,MAAO,CACHtpB,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACN,KACA,CACI9G,MAAOC,EAAe+gC,UACtBx6B,gBAAiBvG,EAAeqhC,gBAChCt6B,QAAS,OACT6S,cAAe,MACfpD,SAAU,SACVxP,WAAY,UAEZN,QAAS,gBACT0P,aAAcP,EAAQQ,eACtBpO,OAAQ,aAAazP,OAAOwH,EAAeghC,aAC3C9rC,OAAQ,GACR9D,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8nB,YAAa,cAEjB9nB,EAAG,UAAY,CACX8nB,YAAalI,EAAe8uB,mBAC5B19B,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,aAEjBngB,IAER3H,EAAG,WAAWoY,OAAO/U,EAAW4rI,gBAAkB,CAC9CtvH,MAAOC,EAAe88I,kBAE1B18J,KAEP4nC,GACGo0H,GAAY,CACZhrJ,WAAYpJ,EAAK,CAAC,EACdA,EAAG,WAAWwQ,OAAO/U,EAAW4rI,gBAAkB,CAC9CjhI,MAAO,GAEXpG,EAAG,WAAWwQ,OAAO/U,EAAWwlB,OAAS,CACrC2Z,QAAS,EACTtI,cAAe,QAEnBtyB,IAERggC,GAAY,CACR,YACA,CACI9gB,SAAU,aAEd,QAAmBlH,EAAemhC,oBAAqB0hC,EAAa,EAAIhtD,EAAQQ,eAAgBwsD,EAAa,eAAiB,WAElIu4E,GAAY,CACR,CACIhqJ,WAAYnJ,EAAK,CAAC,EACdA,EAAG,WAAWuQ,OAAO/U,EAAW4rI,gBAAkB,CAC9CjhI,MAAO,IAEXnG,EAAG,WAAWuQ,OAAO/U,EAAWwlB,OAAS,CACrC2Z,QAAS,GAEb36B,KAGZ6B,GAAY,CACR,cACA,CACIoe,YAAay0I,EACbp2I,gBAAiBs2I,EACjBviI,cAAe,OACf5c,OAAQ,UACRtM,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgD,YAAa,YAEjBhD,KAGZ29D,GAAc,CACV,gBACA,CACIp4C,YAAa,YACbrU,aAAc,EAEd1P,QAAS,kBAGjBm8D,GACI/4E,GAAY,CACZyc,gBAAiB,eAErB61I,GAAY,YACZx4J,GAEJyrI,cAAe,CACX5rI,EAAW4rI,cACX,CACItoH,QAAS,OACT6S,cAAe,SACf5Q,eAAgB,SAChB4M,WAAY,EACZhP,SAAU,GACVxY,MAAO,GACPunB,UAAW,SACX5V,MAAOC,EAAe+8I,UACtBr/I,OAAQ,QAEZsqB,GAAY,CACR55B,MAAO,GAEXtE,GAAY,CACRiW,MAAOC,EAAeg9I,oBAEzB7B,GAAoB,CACjB7tE,WAAY,SAAS90E,OAAO,KAAmB41G,iBAEnDgtC,GACIpzH,GAAY,CACZ55B,MAAO,KAGf6a,KAAM,CACFxlB,EAAWwlB,KACX,CACI2Z,QAAS,GAEboF,GAAY,CACRpF,QAAS,EACTtI,cAAe,SAElB6gI,GAAoB,CACjB7tE,WAAY,WAAW90E,OAAO,KAAmB41G,eAAgB,QAErEgtC,GACIpzH,GAAY,CACZpF,QAAS,IAGjB25H,YAAa,CACT94J,EAAW84J,YACX,CACIx1I,QAAS,OACT6S,cAAe,MACf5S,WAAY,UACZtJ,OAAQ,UACRmc,UAAW,OACXjE,WAAY,EACZlP,QAAS,EACTI,OAAQ,WACR1V,UAAW,CACP,qBAAsB,CAClBmV,gBAAiBq2I,GAErB,0BAA2B,CACvB78I,MAAO28I,GAEX,aAAc,CACVtmI,cAAc,QAAOl1B,GAAS,cAAgB,eAElD,kBAAmB,CACf6e,MAAO08I,MAKvB9rH,MAAO,CACHltC,EAAWktC,MACX,MACA,QAAqBkR,GACrB,CACIt7B,gBAAiB,cACjB0B,OAAQ,OACR5W,QAAS,OACTgV,WAAY,UACZ/H,WAAY,UACZsI,SAAU,UACV7G,MAAOC,EAAe+gC,UACtBssC,KAAM,UAGNv0D,SAAU,MACVhW,SAAU,SACV+B,aAAc,WAEdgtB,cAAe,GAEfzgC,UAAW,CACP,cAAe,CACX2V,QAAS,UAIrBjd,GAAY,CACRiW,MAAOC,EAAegW,eAItC,QC3NwDjxB,EAAW,CAAE0iB,MAAO,a,wECDxE9H,GAAgB,E,SAAA,KACTs9I,EAAgB,cAAiB,SAAU37J,EAAOgQ,GACzD,IAAIjQ,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAW0H,EAAWhK,EAAMgK,SAAU8hF,EAAe9rF,EAAM8rF,aAAc1qF,EAAWpB,EAAMoB,SACxJe,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXwpF,aAAcA,EACd9hF,SAAUA,IAEd,OAAQ,gBAAoB,MAAO,CAAE1H,UAAWH,EAAWgM,KAAM6B,IAAKA,GAClE,gBAAoB,MAAO,CAAE1N,UAAWH,EAAWugB,QAAShB,KAAM,YAAa,mBAAoB1X,EAAW,WAAa,cAAgB5I,GACnJ,ICVWw6J,GAAY,EAAAj4I,EAAA,GAAOg4I,GCFP,SAAU37J,GAC7B,IAAIlB,EAAI2H,EACJ7G,EAAQI,EAAMJ,MAAOksF,EAAe9rF,EAAM8rF,aAAc9hF,EAAWhK,EAAMgK,SAAU1H,EAAYtC,EAAMsC,UACrGu5J,EAA8B,UAAjB/vE,EACbgwE,EAA+B,WAAjBhwE,EACdiwE,EAA4B,QAAjBjwE,EACf,MAAO,CACH39E,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZ,CACIK,SAAU,YAEdkmE,GAAgB,CACZz3D,UAAWy3D,IAEdA,GAAgB,CACbz3D,UAAW,UAEfrqB,IACK8xJ,IAAgBhwE,IAAiB,CAClCxyD,cAAe,UAEnBtvB,GACI6xJ,GAAc,CACdviI,cAAe,OAEnBtvB,GACI+xJ,GAAY,CACZziI,cAAe,UAEnBtvB,GAAY,CACRob,QAAS,QACTxR,OAAQ,UACR6R,QAAS,aACTsjB,OAAQ,EACRj5B,UAAW,CACP,UAAWhR,EAAK,CACRmmB,gBAAiBrlB,EAAMikB,QAAQ4T,eAC/B3qB,MAAO,MACP4V,QAAS,KACTkD,SAAU,WACVnZ,IAAK,IACLE,OAAQ,IACR5C,KAAM,MACNI,MAAO,IACP4+B,QAAS,GAEbjqC,EAAG,MAAwB,CACvBmmB,gBAAiB,cAErBnmB,MAGXkL,GAAY,CACTob,QAAS,QACTtV,UAAW,CACP,WAAYrJ,EAAK,CACTwe,gBAAiBrlB,EAAMikB,QAAQ4T,eAC/B7jB,OAAQ,MACR8O,QAAS,KACT+C,QAAS,QACTG,SAAU,WACVnZ,IAAK,MACLE,OAAQ,IACR5C,KAAM,IACNI,MAAO,KAEX1D,EAAG,MAAwB,CACvBwe,gBAAiB,cAErBxe,KAGZnE,GAEJogB,QAAS,CACL,CACIkD,SAAU,WACVH,QAAS,eACTL,QAAS,SACT3G,MAAO7e,EAAM8e,eAAeC,SAC5B0rB,WAAYzqC,EAAM8e,eAAe4rB,gBAErCtgC,GAAY,CACRob,QAAS,WAIzB,QDtFwD3hB,EAAW,CAC/D0iB,MAAO,cAEXy1I,EAAUz8J,YAAc,W,4MEDpBkf,GAAgB,EAAAC,EAAA,KAChB09I,EAAiB,SAAUC,GAC3B,OAAO,SAAU5nJ,GACb,IAAIvV,EACJ,OAAOA,EAAK,CAAC,GACNm9J,GAAO,GAAG/kJ,OAAO7C,EAAO,KAC3BvV,CACR,CACJ,EACIo9J,EAAa,SAAU7nJ,EAAO8nJ,EAAWC,GACzC,OAAOA,IAAcD,EAAY,GAAM9nJ,EAAQ8nJ,IAAcC,EAAYD,GAAc,GAC3F,ECTWE,EAAa,cAAiB,SAAUr8J,EAAOgQ,GACtD,IAAIlO,EDuBe,SAAU9B,EAAOgQ,GACpC,IAAIlR,EAAKkB,EAAMs8J,KAAMA,OAAc,IAAPx9J,EAAgB,EAAIA,EAAIwD,EAAYtC,EAAMsC,UAAWmE,EAAKzG,EAAMwI,SAAUA,OAAkB,IAAP/B,GAAwBA,EAAIwjB,EAAQjqB,EAAMiqB,MAAOvjB,EAAK1G,EAAM6sD,IAAKA,OAAa,IAAPnmD,EAAgB,GAAKA,EAAIC,EAAK3G,EAAM8sD,IAAKA,OAAa,IAAPnmD,EAAgB,EAAIA,EAAIid,EAAK5jB,EAAMu8J,UAAWA,OAAmB,IAAP34I,GAAuBA,EAAIuS,EAAKn2B,EAAMgtB,YAAaA,OAAqB,IAAPmJ,EAAgB,CAAC,EAAIA,EAAIC,EAAKp2B,EAAMgK,SAAUA,OAAkB,IAAPosB,GAAwBA,EAAIomI,EAAax8J,EAAMw8J,WAAYC,EAAcz8J,EAAMy8J,YAAa18J,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO88J,EAAiB18J,EAAM08J,eAAgBltJ,EAAiBxP,EAAM,mBAAoBq2B,EAAKr2B,EAAMwf,UAAWA,OAAmB,IAAP6W,EAAgBr2B,EAAM,cAAgBq2B,EAAIsmI,EAAS38J,EAAM28J,OAAQ7mJ,EAAW9V,EAAM8V,SAAUupG,EAAYr/G,EAAMq/G,UACjwBkL,EAAc,SAAa,IAC3Bj0F,GAAK,EAAAxe,EAAA,KAAiBK,EAAame,EAAGne,WAAYD,EAAeoe,EAAGpe,aACpE0kJ,EAAa,SAAa,MAI1B3lI,GAAK,EAAAthB,EAAA,GAAqB3V,EAAMqU,MAAOrU,EAAM05J,cAAc,SAAUr0J,EAAI2uC,GACzE,OAAOl+B,aAA2C,EAASA,EAASk+B,EAAG2oH,EAAS,CAACjrD,GAAcmrD,iBAAkB7oH,QAAKvwC,EAAW4B,EACrI,IAAIy3J,EAAiB7lI,EAAG,GAAI7hB,EAAW6hB,EAAG,GACtCC,GAAK,EAAAvhB,EAAA,GAAqB3V,EAAM+8J,WAAY/8J,EAAMg9J,mBAAmB,SAAU33J,EAAI43J,GAAM,OAAOnnJ,aAA2C,EAASA,EAAS47F,GAAcwrD,YAAa,CAACD,EAAIvrD,GAAcwrD,aAAc73J,EAAK,IAAI83J,EAAsBjmI,EAAG,GAAIkmI,EAAgBlmI,EAAG,GAElR7iB,GAAQ9H,KAAKsgD,IAAIC,EAAKvgD,KAAKugD,IAAID,EAAKiwG,GAAkB,IACtDC,GAAaxwJ,KAAKsgD,IAAIC,EAAKvgD,KAAKugD,IAAIz4C,GAAO8oJ,GAAuB,IAClEzrD,IAAgB,EAAAj8F,EAAA,GAAS,CACzB4nJ,gBAAiB,EACjBC,uBAAuB,EACvBJ,YAAa7oJ,GACbwoJ,iBAAkBE,KAItBrrD,GAAcwrD,YAAc7oJ,GAC5Bq9F,GAAcmrD,iBAAmBE,GACjC,IAAI9kJ,IAAK,EAAA5B,EAAA,GAAM,SAAUrW,EAAMiY,KAAO+U,aAAiD,EAASA,EAAY/U,KACxG9V,GAAakc,EAActe,EAAQ,CACnCuC,UAAWA,EACXkG,SAAUA,EACVwB,SAAUA,EACVuzJ,iBAAkBf,IAAe9qD,GAAc8rD,eAC/CjB,UAAWA,EACXI,OAAQA,EACR/8J,MAAOA,IAEP69J,IAAS5wG,EAAMC,GAAOwvG,EACtBoB,GAAsB,WACtBxlJ,EAAaw5F,GAAc2rD,gBAC3B3rD,GAAc2rD,gBAAkB,CACpC,EACIM,GAAoB,SAAUr4J,GAC9Bo4J,KACIr+C,IACA3N,GAAc2rD,eAAiBllJ,GAAW,WACtCknG,EAAU/5G,EAAOosG,GAAcwrD,YAAaP,EAAS,CAACjrD,GAAcmrD,iBAAkBnrD,GAAcwrD,kBAAez5J,EACvH,GAxE4B,KA0EpC,EACIm6J,GAAmB,SAAUC,GAC7B,IAAIC,EAAgB99J,EAAM89J,cAC1B,QAAmBr6J,IAAfo6J,EACA,OAAOC,EAAgBA,EAAcD,GAAcA,EAAW5/I,UAGtE,EASI8/I,GAAc,SAAU14J,EAAI+Q,EAAU4nJ,GACtC5nJ,EAAW7J,KAAKugD,IAAID,EAAKtgD,KAAKsgD,IAAIC,EAAK12C,IACvC4nJ,OAA0Cv6J,IAAtBu6J,EAAkCzxJ,KAAKugD,IAAID,EAAKtgD,KAAKsgD,IAAIC,EAAKkxG,SAAsBv6J,EACxG,IAAIw6J,EAAS,EACb,GAAIC,SAAS5B,GACT,KAAO/vJ,KAAKiqC,MAAM8lH,EAAO/vJ,KAAKsvB,IAAI,GAAIoiI,IAAW1xJ,KAAKsvB,IAAI,GAAIoiI,KAAY3B,GACtE2B,IAIR,IAAIE,EAAejrJ,WAAWkD,EAASjD,QAAQ8qJ,IAC/CvsD,GAAc8rD,oBAAuC/5J,IAAtBu6J,GAAmCA,IAAsBG,EACpFxB,EAEIjrD,GAAc4rD,wBACbZ,EAAiByB,GAAgB,EAAIA,GAAgBzsD,GAAcwrD,aACpEE,EAAce,EAAc94J,IAEtBqsG,GAAc4rD,wBACnBZ,EAAiByB,GAAgB,EAAIA,GAAgBzsD,GAAcmrD,mBACpEznJ,EAAS+oJ,EAAc94J,GAI3B+P,EAAS+oJ,EAAc94J,EAE/B,EAqCI+4J,GAAc,SAAU94J,EAAO+4J,GAC/B,IAAIC,EAAkB,EACtB,OAAQh5J,EAAMnE,MACV,IAAK,YACL,IAAK,YACDm9J,EAAmBD,EAA+B/4J,EAAM45B,QAAtB55B,EAAM25B,QACxC,MACJ,IAAK,aACL,IAAK,YACDq/H,EAAmBD,EAEb/4J,EAAM6wC,QAAQ,GAAGjX,QADjB55B,EAAM6wC,QAAQ,GAAGlX,QAI/B,OAAOq/H,CACX,EACIC,GAAwB,SAAUj5J,GAElC,IAGIk5J,EAHAC,EAAqB7B,EAAW/0J,QAAQ8K,wBAExC+rJ,GADgB1+J,EAAMgK,SAAsCy0J,EAAmB7qJ,OAA9C6qJ,EAAmB3xJ,OACxB2wJ,GAGhC,GAAKz9J,EAAMgK,SAKN,CACD,IAAI2C,EAASyxJ,GAAY94J,EAAOtF,EAAMgK,UAEtCw0J,GADWC,EAAmB9xJ,OAASA,GACb+xJ,CAC9B,KATqB,CACjB,IAAI30J,EAAOq0J,GAAY94J,EAAOtF,EAAMgK,UAEpCw0J,IADW,QAAOx+J,EAAMJ,OAAS6+J,EAAmBt0J,MAAQJ,EAAOA,EAAO00J,EAAmB10J,MACnE20J,CAC9B,CAMA,OAAOF,CACX,EACIG,GAAyB,SAAUr5J,EAAOs5J,GAC1C,IAAIJ,EAAeD,GAAsBj5J,GACrC04J,EAAoBlxG,EAAMwvG,EAAOkC,EACjCK,EAAkB/xG,EAAMwvG,EAAO/vJ,KAAKiqC,MAAMgoH,GAC9CT,GAAYz4J,EAAOu5J,EAAiBb,GAC/BY,IACDt5J,EAAMwG,iBACNxG,EAAM8C,kBAEd,EACI02J,GAA0B,SAAUx5J,GACpC,GAAIq3J,EAAQ,CACR,IAAI6B,EAAeD,GAAsBj5J,GACrC8Q,EAAW02C,EAAMwvG,EAAOkC,EAC5B9sD,GAAc4rD,sBACVlnJ,GAAYs7F,GAAcmrD,kBACtBzmJ,EAAWs7F,GAAcmrD,kBAAoBnrD,GAAcwrD,YAAc9mJ,CACrF,CACmB,cAAf9Q,EAAMnE,KACNopH,EAAY1iH,QAAQxF,MAAK,EAAAqV,EAAAA,IAAG1R,OAAQ,YAAa24J,IAAwB,IAAO,EAAAjnJ,EAAAA,IAAG1R,OAAQ,UAAW+4J,IAAqB,IAEvG,eAAfz5J,EAAMnE,MACXopH,EAAY1iH,QAAQxF,MAAK,EAAAqV,EAAAA,IAAG1R,OAAQ,YAAa24J,IAAwB,IAAO,EAAAjnJ,EAAAA,IAAG1R,OAAQ,WAAY+4J,IAAqB,IAEhIJ,GAAuBr5J,GAAO,EAClC,EACIy5J,GAAsB,SAAUz5J,GAEhCosG,GAAc8rD,oBAAiB/5J,EAC/B47G,SAAsDA,EAAU/5G,EAAOosG,GAAcwrD,YAAaP,EAAS,CAACjrD,GAAcmrD,iBAAkBnrD,GAAcwrD,kBAAez5J,GACzKu7J,IACJ,EAIIA,GAAmB,eAAkB,WACrCz0C,EAAY1iH,QAAQmG,SAAQ,SAAUiH,GAAW,OAAOA,GAAW,IACnEs1G,EAAY1iH,QAAU,EAC1B,GAAG,IACH,aAAgB,WAAc,OAAOm3J,EAAkB,GAAG,CAACA,KAC3D,IAAIC,GAAqB,SAAa,MAClCC,GAAW,SAAa,MACxBC,GAAe,SAAa,OAzNd,SAAUn/J,EAAOm/J,EAAc9qJ,EAAO+qJ,GACxD,sBAA0Bp/J,EAAM8hB,cAAc,WAAc,MAAO,CAC3DzN,YACA,OAAOA,CACX,EACI+qJ,YACA,OAAOA,CACX,EACAr3J,MAAO,WACH,IAAIjJ,EAC4B,QAA/BA,EAAKqgK,EAAat3J,eAA4B,IAAP/I,GAAyBA,EAAGiJ,OACxE,EACA,GAAG,CAACq3J,EAAOD,EAAc9qJ,GACjC,CA6MI23B,CAAgBhsC,EAAOm/J,GAAc9qJ,GAAOsoJ,EAAS,CAACI,GAAY1oJ,SAAS5Q,GAC3E,IAAI47J,GAAoBrD,EAAehyJ,EAAW,UAAW,QAAOhK,EAAMJ,OAAS,QAAU,QACzF0/J,GAAiBtD,EAAehyJ,EAAW,SAAW,SACtDu1J,GAAc7C,EAAiB,EAAI5vG,EACnC0yG,GAAetD,EAAW7nJ,GAAOy4C,EAAKD,GACtC4yG,GAAoBvD,EAAWa,GAAYjwG,EAAKD,GAChD6yG,GAAsBxD,EAAWqD,GAAazyG,EAAKD,GACnD8yG,GAAqBhD,EAAS6C,GAAeC,GAAoBlzJ,KAAKQ,IAAI2yJ,GAAsBF,IAChGI,GAAkBrzJ,KAAKugD,IAAI,IAAM0yG,GAAc,IAAME,IACrDG,GAAqBlD,EAAS8C,GAAoBlzJ,KAAKugD,IAAI0yG,GAAcE,IACzEpwJ,GAAY,CACZhN,UAAWH,GAAWgM,KACtB6B,IAAKA,GAELw0C,GAAa,CACbliD,UAAWH,GAAW29J,WACtB1+J,SAAU6oB,EACVzhB,SAAUA,EACV4jC,QAAS5sB,OAAY/b,EAAYwU,IAEjC8nJ,GAAkBxD,EAChB,CACEj6J,UAAWH,GAAW69J,WACtB5+J,SAAUq7J,EAAcA,EAAYpoJ,IAASA,GAC7C7L,SAAUA,EACV4jC,QAAS5jC,EAAWyP,QAAKxU,QAE3BA,EACFw8J,GAAuBtD,GAAUJ,EAC/B,CACEj6J,UAAWH,GAAW69J,WACtB5+J,SAAUq7J,EAAcA,EAAYM,IAAcA,GAClDv0J,SAAUA,QAEZ/E,EACFy8J,GAAgBxD,EACd,CACEp6J,UAAWH,GAAWg+J,SACtBpjJ,MAAOsiJ,GAAkBK,UAE3Bj8J,EACF28J,GAAmB,CACnB99J,WAAW,EAAAsN,EAAA,GAAIzN,GAAWk+J,cAAel+J,GAAWm+J,eACpDvjJ,MAAOuiJ,GAAeK,KAEtBY,GAAwB,CACxBj+J,WAAW,EAAAsN,EAAA,GAAIzN,GAAWk+J,cAAel+J,GAAWq+J,iBACpDzjJ,MAAOuiJ,GAAeM,KAEtBa,GAA2B,CAC3Bn+J,WAAW,EAAAsN,EAAA,GAAIzN,GAAWk+J,cAAel+J,GAAWq+J,iBACpDzjJ,MAAOuiJ,GAAeO,KAEtBa,IAAc,QAAS,CAAE,gBAAiBl4J,EAAUkZ,KAAM,SAAU/P,SAAUnJ,OAAW/E,EAAY,GAAK,CAAE,qBAAsB+E,IAClIm4J,IAAiB,SAAS,SAAS,QAAS,CAAE1oJ,GAAIA,GAAI3V,WAAW,EAAAsN,EAAA,GAAIzN,GAAWy+J,SAAU5zI,EAAY1qB,WAAY0N,IAAKmvJ,KAAkB32J,GAAY,CACrJsnB,YAAagvI,GACbtrI,aAAcsrI,GACd71J,UA3KY,SAAU3D,GACtB,IAAIu5J,EAAkBntD,GAAc4rD,sBAC9B5rD,GAAcmrD,iBACdnrD,GAAcwrD,YAChB2D,EAAO,EAEX,OAAQv7J,EAAMoE,OACV,KAAK,QAAkBC,EAAA,EAASI,KAAM/J,EAAMJ,OAC5C,KAAK+J,EAAA,EAASa,KACVq2J,GAAQvE,EACRoB,KACAC,GAAkBr4J,GAClB,MACJ,KAAK,QAAkBqE,EAAA,EAASQ,MAAOnK,EAAMJ,OAC7C,KAAK+J,EAAA,EAASU,GACVw2J,EAAOvE,EACPoB,KACAC,GAAkBr4J,GAClB,MACJ,KAAKqE,EAAA,EAAS4B,KACVszJ,EAAkB/xG,EAClB4wG,KACAC,GAAkBr4J,GAClB,MACJ,KAAKqE,EAAA,EAAS+B,IACVmzJ,EAAkBhyG,EAClB6wG,KACAC,GAAkBr4J,GAClB,MACJ,QACI,OAERy4J,GAAYz4J,EAAOu5J,EAAkBgC,GACrCv7J,EAAMwG,iBACNxG,EAAM8C,iBACV,IAyIM4kB,IACF,QAAeA,EAAa,KAAe,CAAC,KAAM,gBAAmB2vI,IAAU,SAAS,QAAS,CAAC,EAAG+D,IAAc,CAAE,gBAAiB5zG,EAAK,gBAAiBD,EAAK,gBAAiBx4C,GAAO,iBAAkBupJ,GAAiBvpJ,IAAQ,aAAcmL,GAAayK,EAAO,kBAAmBza,KACzRsxJ,GAAct4J,EAAW,CAAC,EAAI,CAAEjB,QAvEjB,SAAUjC,GACzBosG,GAAc4rD,sBAAwBh4J,EAAMlH,SAAW6gK,GAAmBp3J,OAC9E,GAsEIk5J,IAAa,QAAS,CAAE/wJ,IAAKkvJ,GAAU58J,UAAWH,GAAW0zC,MAAO94B,MAAOsiJ,GAAkBG,KAAkB7C,IAAU,SAAS,SAAS,QAAS,CAAC,EAAG+D,IAAcI,IAAc,CAAE7oJ,GAAI,OAAOf,OAAOe,IAAK,gBAAiB8kJ,GAAY,gBAAiBlwG,EAAK,gBAAiBx4C,GAAO,iBAAkBupJ,GAAiBvpJ,IAAQ,aAAc,OAAO6C,OAAOsI,GAAayK,MAC5W+2I,GAAuBrE,GACrB,SAAS,SAAS,QAAS,CAAE3sJ,IAAKivJ,GAAoB38J,UAAWH,GAAW0zC,MAAO94B,MAAOsiJ,GAAkBI,KAAsBiB,IAAcI,IAAc,CAAE7oJ,GAAI,OAAOf,OAAOe,IAAK,gBAAiB60C,EAAK,gBAAiBz4C,GAAO,gBAAiB0oJ,GAAY,iBAAkBa,GAAiBb,IAAa,aAAc,OAAO7lJ,OAAOsI,GAAayK,UAAYxmB,EAQ7W,MAAO,CACH0K,KAAMmB,GACN2a,MAAOu6B,GACPy8G,UAAWN,GACXzxI,UAXiB,CACjB5sB,UAAWH,GAAW+sB,WAWtB8wI,WAAYD,GACZmB,gBAAiBjB,GACjBpqH,MAAOkrH,GACPI,gBAAiBH,GACjBb,SAAUD,GACVkB,YAAahB,GACbiB,iBAAkBd,GAClBe,oBAAqBb,GACrB7D,WAjBkB,CAClB5sJ,IAAK4sJ,EACLt6J,UAAWH,GAAWquG,MAiB9B,CCzToB+wD,CAAUvhK,EAAOgQ,GASjC,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAGlO,EAAUqM,MACtDrM,GAAa,gBAAoB8xC,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUmoB,QAC/D,gBAAoB,OAAO,QAAS,CAAC,EAAGnoB,EAAUotB,WAC9ClvB,EAAM28J,SACD38J,EAAMgK,SACDlI,EAAUk+J,YAAc,gBAAoBpsH,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUk+J,aAC1El+J,EAAUo/J,iBAAmB,gBAAoBttH,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUo/J,mBACzF,gBAAoB,OAAO,QAAS,CAAC,EAAGp/J,EAAUm/J,WAC9C,gBAAoB,OAAO,QAAS,CAAC,EAAGn/J,EAAU86J,YAC9C58J,EAAM28J,QAAU,gBAAoB,QAAQ,QAAS,CAAC,EAAG76J,EAAUq/J,kBACnE,gBAAoB,QAAQ,QAAS,CAAC,EAAGr/J,EAAU+zC,QACnD/zC,EAAUq+J,UAAY,gBAAoB,QAAQ,QAAS,CAAC,EAAGr+J,EAAUq+J,WACzE,gBAAoB,QAAQ,QAAS,CAAC,EAAGr+J,EAAUw/J,sBACnD,gBAAoB,QAAQ,QAAS,CAAC,EAAGx/J,EAAUs/J,cACnD,gBAAoB,QAAQ,QAAS,CAAC,EAAGt/J,EAAUu/J,qBAC3DrhK,EAAM28J,QAAU38J,EAAMgK,SAChBlI,EAAUo/J,iBAAmB,gBAAoBttH,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUo/J,kBAC/Ep/J,EAAUk+J,YAAc,gBAAoBpsH,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUk+J,cACpF,gBAAoB,IAAY,MACxC,IACA3D,EAAWl9J,YA/BU,a,eCHjBikB,EAAmB,CACnBjV,KAAM,YACNqzJ,QAAS,oBACTh5J,SAAU,qBACVk5F,IAAK,gBACLzc,OAAQ,mBACR/1D,UAAW,sBACX0xI,SAAU,qBACVpwD,KAAM,iBACN36D,MAAO,kBACPyqH,cAAe,mBACfE,gBAAiB,qBACjBR,WAAY,kBACZzD,UAAW,sBACXgB,gBAAiB,4BACjB4C,SAAU,sBCfHsB,GAAS,EAAA99I,EAAA,GAAO04I,GDiBJ,SAAUr8J,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAChD90B,EAAYtC,EAAMsC,UAAWo/J,EAAsB1hK,EAAM0hK,oBAAqB9hK,EAAQI,EAAMJ,MAAOoK,EAAWhK,EAAMgK,SAAUxB,EAAWxI,EAAMwI,SAAU+0J,EAAkBv9J,EAAMu9J,gBAAiBhB,EAAYv8J,EAAMu8J,UAAWI,EAAS38J,EAAM28J,OAC9Oj+I,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QACvD1hB,GAAa,QAAoBihB,EAAkBxjB,GAInD+hK,EAA4BjjJ,EAAegvB,8BAC3Ck0H,EAA4BljJ,EAAe0uB,uBAC3Cy0H,EAAqCh+I,EAAQuV,oBAC7C0oI,EAAyBj+I,EAAQW,eACjCu9I,EAA2Bl+I,EAAQuV,oBACnC4oI,EAA6BtjJ,EAAegW,aAC5CutI,EAA+BvjJ,EAAe+V,mBAC9CytI,EAAuBxjJ,EAAeqhC,gBACtCoiH,EAAmBzjJ,EAAe0jJ,iBAClCC,EAA2B3jJ,EAAe4jJ,eAC1CC,GAA+B/5J,GAAY,CAC3Cyc,gBAAiB08I,EACjB7xJ,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmmB,gBAAiB,aAErBnmB,IAEJ0jK,GAAiCh6J,GAAY,CAC7Cyc,gBAAiB48I,EACjB/xJ,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,aAEjBngB,IAEJg8J,GAA2Bj6J,GAAY,CACvCyc,gBAAiB28I,EACjB9xJ,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBue,gBAAiB,aAErBve,IAEJg8J,GAA6Bl6J,GAAY,CACzCme,OAAQ,aAAazP,OAAOyqJ,GAC5B7xJ,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBigB,YAAa,aAEjBjgB,IAEJg8J,GAAgC3iK,EAAMwI,UAAY,CAClDyc,gBAAiBvG,EAAekkJ,kCAChC9yJ,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBqB,gBAAiB,aAErBrB,IAER,MAAO,CACHzV,MAAM,SAAc,SAAc,SAAc,SAAc,QAAc,CACxEhM,EAAWgM,KACXvO,EAAMkkB,MAAMyB,OACZ,CACI0P,WAAY,QAEhBjrB,GAAY,CACRyvB,YAAa,IAElB,CAAEjxB,OAAgC/E,EAArBtB,EAAWq/J,UAAsB,GAAQ,CAACh5J,EAAWrG,EAAWqG,cAAW/E,IAAY,GAAQ,CAAEuG,OAA4BvG,EAAjBtB,EAAWu/F,MAAkB,GAAQ,CAAC13F,EAAW7H,EAAW8iF,YAASxhF,IAAY,GAAQ,CACjNnB,IACD,GACHw9J,WAAY,CACR,CACI16I,QAAS,GAEbs8I,GAEJxyI,UAAW,CACP/sB,EAAW+sB,UACX,CACIzJ,QAAS,OACTyP,SAAU,SACVxP,WAAY,UAEhB1b,GAAY,CACRsuB,cAAe,SACf1kB,OAAQ,OACRygB,UAAW,SACX7O,OAAQ,UAGhBo7I,UAAU,SAAc,QAAc,CAClCz+J,EAAWy+J,UACVjE,IAAU,QAAc/8J,GACzB,CACIyqC,WAAY,cACZ1jB,OAAQ,OACRqB,SAAU,EACV3C,WAAY,GACZI,QAAS,OACTC,WAAY,SACZ5V,WAAYqmB,EAAK,CAAC,EACdA,EAAG,YAAYjf,OAAO/U,EAAWm+J,gBAAkBiC,EACnDpsI,EAAG,WAAWjf,OAAO/U,EAAWm+J,gBAAkBmC,EAClDtsI,EAAG,YAAYjf,OAAO/U,EAAWq+J,kBAAoBgC,EACrDrsI,EAAG,WAAWjf,OAAO/U,EAAWq+J,kBAAoBgC,EACpDrsI,EAAG,YAAYjf,OAAO/U,EAAW0zC,QAAU6sH,EAC3CvsI,EAAG,WAAWjf,OAAO/U,EAAW0zC,QAAU6sH,EAC1CvsI,EAAG,YAAYjf,OAAO/U,EAAWg+J,WAAawC,EAC9CxsI,EAAG,WAAWjf,OAAO/U,EAAWg+J,WAAawC,EAC7CxsI,EAAG,MAAwB,CACvBrQ,kBAAmB,QAEvBqQ,IAERnsB,EACM,CACE4J,OAAQ,OACR9G,MAAO,GACPsY,QAAS,SAEX,CACExR,OAAQ,GACR9G,MAAO,OACPsY,QAAS,UAElB,CAACm3I,EAAYp6J,EAAWo6J,eAAY94J,IAAY,GAAQ,CAAC85J,EAAkBp7J,EAAWo7J,qBAAkB95J,IAAY,GACvHoyC,MAAO,CACH1zC,EAAW0zC,MACX8mH,IAAU,QAAc/8J,EAAO,CAAEi1B,OAAQ,IACzC,CACIsU,YAAa,EACbC,YAAa,QACbxiB,YAAau7I,EACbrtI,aAAc,GACdE,UAAW,aACXqV,WAAY63H,EACZz8I,QAAS,QACT3Y,MAAO,GACP8G,OAAQ,GACRgS,SAAU,YAEd5b,EACM,CACED,MAAO,EACPyb,OAAQ,SACR8jB,UAAW,mBAEb,CACE78B,KAAM,EACN68B,WAAW,QAAO1pC,GAAS,kBAAoB,oBAEvD29J,GAAmB,CACfvxE,WAAY,QAAQ90E,OAAO,KAAmB81G,eAAgB,KAAK91G,OAAO,KAAmB2rJ,gBAEjGr6J,GAAY,CACRoe,YAAay7I,EACbvyJ,WAAYsmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBxP,YAAa,YAEjBwP,KAGZo6E,KAAM,CACFruG,EAAWquG,KACX,CACI/qF,QAAS,OACTG,SAAU,YAEd5b,EACM,CACE4J,OAAQ,OACR9G,MAAO,EACP0Y,OAAQ,SACR8S,cAAe,kBAEjB,CACExrB,MAAO,SAGnBuzJ,cAAe,CACX,CACIvrI,aAAc,EACdE,UAAW,cAEfhrB,EACM,CACE8C,MAAO,EACP8G,OAAQ,QAEV,CACEA,OAAQ,EACR9G,MAAO,SAGnBwzJ,cAAe,CACXn+J,EAAWm+J,cACX,CACIj2H,WAAYy3H,EACZhyJ,WAAYumB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBpR,gBAAiB,cAErBoR,IAERknI,GAAmB,CACfvxE,WAAY,SAAS90E,OAAO,KAAmB81G,eAAgB,KAAK91G,OAAO,KAAmB2rJ,gBAElGr6J,GAAY,CACR6hC,WAAY23H,EACZlyJ,WAAYwmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBrR,gBAAiB,WACjB2B,YAAa,YAEjB0P,KAGZkqI,gBAAiB,CACbr+J,EAAWq+J,gBACX,CACIn2H,WAAY03H,EACZjyJ,WAAYmnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBtQ,OAAQ,wBAEZsQ,IAERsmI,GAAmB,CACfvxE,WAAY,SAAS90E,OAAO,KAAmB81G,eAAgB,KAAK91G,OAAO,KAAmB2rJ,gBAElGr6J,GAAY,CACR6hC,WAAY43H,EACZnyJ,WAAYonB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBtQ,YAAa,YAEjBsQ,KAGZipI,SAAU,CACNh+J,EAAWg+J,SACX,CACIv6I,SAAU,WACVykB,WAAY3rB,EAAe4jJ,eAC3BxyJ,WAAYqnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBlS,gBAAiB,cAErBkS,IAERn3B,EAAMwI,UAAY,CACd6hC,WAAY3rB,EAAe+V,mBAC3B3kB,WAAYsnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBnS,gBAAiB,YAErBmS,IAERp3B,EAAMgK,SACA,CACE8C,MAAO,OACP8G,OAAQ,MACR01B,WAAW,QAAO1pC,GAAS,kBAAoB,oBAEjD,CACEkN,MAAO,MACP8G,OAAQ,OACR01B,UAAW,qBAGvB02H,WAAY,CACR79J,EAAW69J,WACX,CACI1rI,WAAY,EACZxnB,MAAO,GACPuY,WAAY,KAEhBrb,EACM,CACEwb,OAAQ,SACRlC,WAAY,SACZxW,MAAO,IAET,CACE0Y,OAAQ,QACRlC,WAAY,SACZxW,MAAO,KAI3B,QCrTkDrJ,EAAW,CACzD0iB,MAAO,U,uCCDA28I,E,0JCMPxlH,GAAoB,EAAAjyB,EAAA,KAAgB,SAAUzrB,GAC9C,IAAId,EACA4f,EAAiB9e,EAAM8e,eACvBqkJ,EAA8BrkJ,EAAegW,aAC7CsuI,EAAoCtkJ,EAAe+V,mBACvD,MAAO,CACHxP,gBAAiB+9I,EACjBhqI,cAAe,OACf5c,OAAQ,UACRqC,MAAOskJ,EACPjzJ,WAAYhR,EAAK,CACT,SAAU,CACN8nB,YAAao8I,IAGrBlkK,EAAG,MAAwB,CACvB2f,MAAO,YAEX3f,GAEZ,IACWmkK,GAAuB,EAAA53I,EAAA,KAAgB,SAAUzrB,EAAOsjK,EAAWC,GAC1E,IAAIrkK,EAAI2H,EAAIC,EACRmd,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAEhF6uI,EAAuBv/I,EAAQO,iBAC/Bi/I,EAA8B3kJ,EAAe+W,WAC7C6tI,EAA8B5kJ,EAAe+W,WAC7C8tI,EAA+B7kJ,EAAe6W,wBAC9CiuI,EAA+B9kJ,EAAe4W,wBAC9CmuI,EAA2B,CAC3Bt1J,KAAM,CACF4B,QAAS,OACT0V,QAAS,QACT7R,OAAQ,MACR9G,MAxCa,GAyCbsY,QAAS,EACTH,gBAAiB,cACjBoP,UAAW,SACXjY,OAAQ,UACRqC,MAAO2kJ,EACPtzJ,UAAW,CACP,kBAAmB,CACfglB,aAAc,OAAO5d,OAAOqd,EAAQQ,eAAgB,OAExD,gBAAiB,CACbD,aAAc,KAAK5d,OAAOqd,EAAQQ,eAAgB,WAI9DlO,YAAa,CACT5B,gBAAiBs+I,EACjB9kJ,MAAO4kJ,GAEX97I,YAAa,CACTtC,gBAAiBu+I,EACjB/kJ,MAAO6kJ,EACPxzJ,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmmB,gBAAiB,YACjBxG,MAAO,iBAEX3f,IAERkoB,YAAa,CACT/B,gBAAiBu+I,EACjB/kJ,MAAO6kJ,EACPxzJ,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBwe,gBAAiB,YACjBxG,MAAO,iBAEXhY,IAER4gB,aAAc,CACVia,QAAS,GACTxxB,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,WACP6iB,QAAS,GAEb56B,IAERihB,KAAM,CACFrC,SAxFiB,EAyFjBkU,UAAW,EACXC,YAAa,EACbC,aAAc,EACdH,WAAY,IAMpB,OAAO,QAAgBkqI,EAFU,CAAC,EAEsFN,EAC5H,KDpGA,SAAWL,GACPA,EAAsBA,EAA4B,MAAK,GAAK,OAC5DA,EAAsBA,EAAmC,YAAI,GAAK,cAClEA,EAAsBA,EAA0B,GAAI,GAAK,IAC5D,CAJD,CAIGA,IAA0BA,EAAwB,CAAC,I,8CEElDzkJ,GAAgB,EAAAC,EAAA,KAEhBmjB,EAAgB,CAChBj5B,UAAU,EACVyhB,MAAO,GACPqyI,KAAM,EACNoH,cAAe,IAAS9mJ,MACxB+mJ,oBAAqB,CAAExiJ,SAAU,kBACjCyiJ,oBAAqB,CAAEziJ,SAAU,qBAgBjC0iJ,EAAO,WAUX,EAEIC,EAAa,SAAUzvJ,EAAOvV,GAC9B,IAAIguD,EAAMhuD,EAAGguD,IAAKD,EAAM/tD,EAAG+tD,IAO3B,MANmB,iBAARA,IACPx4C,EAAQ9H,KAAKugD,IAAIz4C,EAAOw4C,IAET,iBAARC,IACPz4C,EAAQ9H,KAAKsgD,IAAIx4C,EAAOy4C,IAErBz4C,CACX,EACW0vJ,EAAiB,cAAiB,SAAUngI,EAAsB5zB,GACzE,IAAIhQ,GAAQ,EAAA8jC,EAAA,GAAqBrC,EAAemC,GAC5Cp7B,EAAWxI,EAAMwI,SAAUyhB,EAAQjqB,EAAMiqB,MAAO6iC,EAAM9sD,EAAM8sD,IAAKD,EAAM7sD,EAAM6sD,IAAKyvG,EAAOt8J,EAAMs8J,KAAM5C,EAAe15J,EAAM05J,aAAcsK,EAAiBhkK,EAAMqU,MAAO4vJ,EAAqBjkK,EAAMkkK,UAAWR,EAAgB1jK,EAAM0jK,cAAetiJ,EAAYphB,EAAMohB,UAAWuiJ,EAAsB3jK,EAAM2jK,oBAAqBQ,EAA2BnkK,EAAMmkK,yBAA0BP,EAAsB5jK,EAAM4jK,oBAAqBQ,EAA2BpkK,EAAMokK,yBAA0B5kJ,EAAYxf,EAAMwf,UAAWjQ,EAAkBvP,EAAMuP,gBAAiB80J,EAA4BrkK,EAAMskK,oBAAqBC,EAA8BvkK,EAAMwkK,sBAAuB5kK,EAAQI,EAAMJ,MAAO8qC,EAAoB1qC,EAAM0qC,kBAAmBC,EAAc3qC,EAAM2qC,YAAa85H,EAAezkK,EAAMykK,aAAc3G,EAAgB99J,EAAM89J,cAAex7J,EAAYtC,EAAMsC,UAAWmoC,EAAazqC,EAAMyqC,WAAYi6H,EAAc1kK,EAAM0kK,YAAaC,EAAc3kK,EAAM2kK,YAAatgH,EAAkBrkD,EAAMqkD,gBAAiBugH,EAAa5kK,EAAM4kK,WAAY9uJ,EAAW9V,EAAM8V,SAAU/V,GAASC,EAAMD,OACzjCosC,GAAQ,SAAa,MACrB04H,IAAU,EAAAxuJ,EAAA,GAAM,SAChB44B,IAAU,EAAA54B,EAAA,GAAM,SAChBvX,GAAK,YAAe,GAAQgmK,GAAYhmK,GAAG,GAAIimK,GAAejmK,GAAG,GACjE2H,GAAK,WAAeq8J,EAAsBkC,aAAcC,GAAwBx+J,GAAG,GAAIy+J,GAA2Bz+J,GAAG,GACrH67B,IAAQ,EAAAvtB,EAAA,KACRmvJ,GAAY,WAAc,WAC1B,OAAOD,QAA+DA,EAAqB13J,KAAKsgD,KAAI,QAAmByvG,GAAO,EAClI,GAAG,CAAC2H,EAAoB3H,IAOpB51J,IAAK,EAAAiP,EAAA,GAAqBquJ,EAAgBtK,QAAmDA,EAAejsJ,OAAOq/C,GAAO,GAAIh3C,GAAWzB,GAAQ3N,GAAG,GAAI0O,GAAW1O,GAAG,GAMtKC,GAAK,aAAkBw+J,GAAoBx+J,GAAG,GAAIy+J,GAAuBz+J,GAAG,GAC5E+qG,GAAgB,SAAa,CAC7B2zD,mBAAoB,EACpBnI,iBAAaz5J,EACb6hK,6BAAyB7hK,IAC1BoE,QAGH6pG,GAAcwrD,YAAc7oJ,GAC5Bq9F,GAAc4zD,wBAA0BH,GACxC,IAAII,IAAyB,EAAA5tJ,EAAA,GAAYqsJ,GACzC,aAAgB,WAERA,IAAmBuB,SAAgD9hK,IAAtB0hK,IAC7CC,QAAqB3hK,EAE7B,GAAG,CAACugK,EAAgBuB,GAAwBJ,KAC5C,IAAIhjK,GAAakc,EAActe,GAAQ,CACnCH,MAAOA,EACP4I,SAAUA,EACVs8J,UAAWA,GACXG,sBAAuBA,GACvBvB,cAAeA,EACfphK,UAAWA,IAEXwa,IAAc,QAAe9c,EAAO,KAAe,CACnD,SACA,UACA,YACA,aAGAwlK,GAAW,eAAkB,SAAUngK,GAEvC,IAAIogK,EAAe/zD,GAAc4zD,wBACjC,QAAqB7hK,IAAjBgiK,GAA8BA,IAAiB/zD,GAAcwrD,YAAa,CAC1E,IAAI9mJ,OAAW,EACXwuJ,EACAxuJ,EAAWwuJ,EAAWa,EAAcpgK,GAE/BogK,GAAgBA,EAAahhH,OAAOrkD,SAAW04C,MAAMC,OAAO0sH,MAEjErvJ,EAAW3I,OAAOq2J,EAAW/qH,OAAO0sH,GAAe,CAAE34G,IAAKA,EAAKD,IAAKA,WAEvDppD,IAAb2S,GAA0BA,IAAas7F,GAAcwrD,aAErD9nJ,GAASgB,EAAU/Q,EAE3B,CAEA+/J,QAAqB3hK,EACzB,GAAG,CAACiuG,GAAe7kD,EAAKC,EAAK83G,EAAYxvJ,KAIrCw6H,GAAO,eAAkB,WACrBl+B,GAAc2zD,mBAAqB,IACnC/iI,GAAMpqB,aAAaw5F,GAAc2zD,mBACjC3zD,GAAc2zD,mBAAqB,IAEnC3zD,GAAcg0D,iBAAmBT,KAA0BnC,EAAsBkC,eACjFtzD,GAAcg0D,iBAAkB,EAChCR,GAAyBpC,EAAsBkC,aAEvD,GAAG,CAACtzD,GAAeuzD,GAAuB3iI,KAOtCy7H,GAAc,eAAkB,SAAU4H,EAActgK,GAExD,GADAA,EAAGuoD,eAC2CnqD,IAA1CiuG,GAAc4zD,wBAcd,MAVgB,YAAZjgK,EAAGlE,MAAkC,cAAZkE,EAAGlE,MAI5BqkK,GAASngK,QAEbi9B,GAAMK,uBAAsB,WAExBo7H,GAAY4H,EAActgK,EAC9B,IAQJ,IAAI+Q,EAAWuvJ,EAAaj0D,GAAcwrD,aAAe,GAAI73J,QAC5C5B,IAAb2S,GAA0BA,IAAas7F,GAAcwrD,aACrD9nJ,GAASgB,EAAU/Q,GAIvB,IAAIugK,EAAcl0D,GAAcg0D,gBAChCh0D,GAAcg0D,gBAA8B,cAAZrgK,EAAGlE,KAC/BuwG,GAAcg0D,kBACdh0D,GAAc2zD,kBAAoB/iI,GAAMnqB,YAAW,WAC/C4lJ,GAAY4H,EAActgK,EAC9B,GAAGugK,EApKE,GADQ,KAuKrB,GAAG,CAACl0D,GAAepvE,GAAOkjI,GAAUpwJ,KAEhCywJ,GAAkB,eAAkB,SAAUzvJ,GAC9C,GAAIuuJ,EACA,OAAOA,EAAYvuJ,GAGnB,IAAI0vJ,EAAehC,EAAW/qH,OAAO3iC,GAAY2iC,OAAOujH,GAAO,CAAEzvG,IAAKA,IAEtE,OADAi5G,GAAe,QAAeA,EAAc5B,IACrCz2J,OAAOq4J,EAEtB,GAAG,CAAC5B,GAAWr3G,EAAK83G,EAAarI,IAE7ByJ,GAAkB,eAAkB,SAAU3vJ,GAC9C,GAAIsuJ,EACA,OAAOA,EAAYtuJ,GAGnB,IAAI0vJ,EAAehC,EAAW/qH,OAAO3iC,GAAY2iC,OAAOujH,GAAO,CAAExvG,IAAKA,IAEtE,OADAg5G,GAAe,QAAeA,EAAc5B,IACrCz2J,OAAOq4J,EAEtB,GAAG,CAAC5B,GAAWp3G,EAAK43G,EAAapI,IAkE7BpnB,GAAc,eAAkB,SAAU7vI,IAEtCmD,GAAYnD,EAAGqE,QAAUC,EAAA,EAASU,IAAMhF,EAAGqE,QAAUC,EAAA,EAASa,OAC9DolI,IAGR,GAAG,CAACpnI,EAAUonI,KACVo2B,GAA2B,eAAkB,SAAU3gK,GACvD04J,GAAY8H,GAAiBxgK,EACjC,GAAG,CAACwgK,GAAiB9H,KACjBkI,GAA2B,eAAkB,SAAU5gK,GACvD04J,GAAYgI,GAAiB1gK,EACjC,GAAG,CAAC0gK,GAAiBhI,MAzQH,SAAU/9J,EAAOmsC,EAAO93B,GAC1C,sBAA0BrU,EAAM8hB,cAAc,WAAc,MAAO,CAC3DzN,YACA,OAAOA,CACX,EACAtM,MAAO,WACCokC,EAAMtkC,SACNskC,EAAMtkC,QAAQE,OAEtB,EACA,GAAG,CAACokC,EAAO93B,GACnB,CA+PI23B,CAAgBhsC,EAAOmsC,GAAO93B,IAC9B6xJ,EAAiBlmK,GACjB,IAAImmK,KAAkB9xJ,KAAUykC,MAAMC,OAAO1kC,KACzC+xJ,IAAgBhlJ,GAAa6I,IAAW,gBAAoB,MAAO,CAAE3nB,UAAWH,GAAWwtC,cAC3FvuB,GAAa,gBAAoBzB,EAAA,GAAM,QAAS,CAAC,EAAGyB,EAAW,CAAE9e,UAAWH,GAAWwlB,KAAM,cAAe,UAC5GsC,GAAU,gBAAoB2pB,EAAA,EAAO,CAAE37B,GAAIg3B,GAAS7C,QAASy4H,GAASviK,UAAWH,GAAW8nB,MAAOzhB,SAAUA,GAAYyhB,IAC7H,OAAQ,gBAAoB,MAAO,CAAE3nB,UAAWH,GAAWgM,KAAM6B,IAAKA,GAClE0zJ,IAAkB,IAAS/2J,QAAUy5J,GACrC,gBAAoB,OAAO,QAAS,CAAC,EAAGtpJ,GAAa,CAAExa,UAAWH,GAAWkkK,kBAAmB,aAAc7mJ,GAAaA,EAAW,gBAAiBkrB,EAAmB,eAAgBC,EAAa,mBAAmB,IACtN,gBAAoB,SAAS,QAAS,CAElCt2B,MAAO8wJ,SAA6DA,GAAoB9wJ,GAAO4D,GAAI4sJ,GAAS/uJ,SAAU+tJ,EAAMtmJ,QAxFhH,SAAUlY,GAC9B+/J,GAAqB//J,EAAGjH,OAAOiW,MACnC,EAsFoK/R,UAAWH,GAAWgqC,MAAOhrC,KAAM,OAAQ+b,aAAc,MAAOwE,KAAM,aAAc,kBAAmBuI,GAASglB,GAAS,gBAAiBw1H,QAAmDA,EAAgB0B,GAAgBptH,OAAO1kC,SAAS5Q,EAAY,iBAAkBq6J,QAAqDA,EAAiBqI,QAAgB1iK,EAAY4Q,GAAQ,gBAAiBy4C,EAAK,gBAAiBD,EAAK,mBAAoBt9C,EAAiBwgC,OAtEzlB,SAAU1qC,GACvB,IAAIvG,EACJ0mK,GAASngK,GACT0/J,IAAa,GACW,QAAvBjmK,EAAKkB,EAAM+vC,cAA2B,IAAPjxC,GAAyBA,EAAGsF,KAAKpE,EAAOqF,EAC5E,EAiE8nB2K,IAAKm8B,GAAO5kC,QApFxnB,SAAUlC,GACxB,IAAIvG,EAECqtC,GAAMtkC,WAGP6pG,GAAcg0D,iBAAmBT,KAA0BnC,EAAsBkC,cACjFp1B,KAEJzjG,GAAMtkC,QAAQm+C,SACd++G,IAAa,GACY,QAAxBjmK,EAAKkB,EAAMuH,eAA4B,IAAPzI,GAAyBA,EAAGsF,KAAKpE,EAAOqF,GAC7E,EAwEgqB4D,UA/D5oB,SAAU5D,GAQ1B,GAJIA,EAAGqE,QAAUC,EAAA,EAASU,IAAMhF,EAAGqE,QAAUC,EAAA,EAASa,MAAQnF,EAAGqE,QAAUC,EAAA,EAASiC,QAChFvG,EAAGyG,iBACHzG,EAAG+C,mBAEHI,EACAonI,SADJ,CAIA,IAAI02B,EAAgBxD,EAAsBkC,YAE1C,OAAQ3/J,EAAGqE,OACP,KAAKC,EAAA,EAASU,GACVi8J,EAAgBxD,EAAsBz4J,GACtC0zJ,GAAY8H,GAAiBxgK,GAC7B,MACJ,KAAKsE,EAAA,EAASa,KACV87J,EAAgBxD,EAAsBt4J,KACtCuzJ,GAAYgI,GAAiB1gK,GAC7B,MACJ,KAAKsE,EAAA,EAASiC,MAEV45J,GAASngK,GACT,MACJ,KAAKsE,EAAA,EAAS4gD,OAEV66G,QAAqB3hK,GAKzBwhK,KAA0BqB,GAC1BpB,GAAyBoB,EAxB7B,CA0BJ,EA0B0rB72I,QAASylH,GAAa1sI,SAAUA,EAAU,gBAAiBA,EAAU,iBAAiB,EAAM,2BAA2B,GAAQiiC,IACjzB,gBAAoB,OAAQ,CAAEnoC,UAAWH,GAAWokK,uBAChD,gBAAoBhlJ,EAAA,GAAY,QAAS,CAAExhB,OAAQkjK,EAAqBrjK,GAAO,EAAMykK,GAA4B/hK,UAAW,cAAeymB,QAASk8I,KAA0BnC,EAAsBz4J,GAAI7B,SAAUA,EAAU4Y,UAAWuiJ,EAAqB7zI,YAAak2I,GAA0Bv8G,aAAcmmF,GAAM//G,UAAW+/G,GAAMj+H,UAAW,EAAG6N,UAAW2kJ,EAA0B,qBAAqB,GAAS9/G,IACzZ,gBAAoB9iC,EAAA,GAAY,QAAS,CAAExhB,OAAQkjK,EAAqBrjK,GAAO,EAAO2kK,GAA8BjiK,UAAW,gBAAiBymB,QAASk8I,KAA0BnC,EAAsBt4J,KAAMhC,SAAUA,EAAU4Y,UAAWwiJ,EAAqB9zI,YAAam2I,GAA0Bx8G,aAAcmmF,GAAM//G,UAAW+/G,GAAMj+H,UAAW,EAAG6N,UAAW4kJ,EAA0B,qBAAqB,GAAS//G,MACxaq/G,IAAkB,IAAS/2J,QAAUy5J,GAC7C,IACArC,EAAe5kK,YAtSM,aAuSrB,IAAI+mK,EAAmB,SAAUlmK,GASjC,ECnTWwmK,GAAa,EAAA7iJ,EAAA,GAAOogJ,GFiGR,SAAU/jK,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EACZ/G,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWohK,EAAgB1jK,EAAM0jK,cAAel7J,EAAWxI,EAAMwI,SAAUs8J,EAAY9kK,EAAM8kK,UACpIjhJ,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MACvG2iJ,EAA4B/nJ,EAAeghC,YAC3CgnH,EAAgChoJ,EAAeqhC,gBAC/C4mH,EAAmCjoJ,EAAe8uB,mBAClDo5H,EAAmCloJ,EAAemhC,oBAClDgnH,EAA2BnoJ,EAAe+gC,UAC1CqnH,EAAmCjjJ,EAAQiS,MAC3CixI,EAAyCroJ,EAAe0uB,uBACxD45H,EAA8BtoJ,EAAegW,aACjD,MAAO,CACHvmB,KAAM,CACF2V,EAAMyB,OACN,CACIxV,QAAS,OACTjD,MAAO,OACP0qB,SApHQ,IAsHZl1B,GAEJqtC,aAAc,CACV,CACIlqB,QAAS,cACTC,WAAY,UAEhBg+I,IAAkB,IAAS9mJ,OAAS,CAChChJ,OA/HK,GAgILqzJ,MAAO,OACPxtI,YA/HG,IAiIPiqI,IAAkB,IAASh4J,KAAO,CAC9BkI,OApIK,GAqILqzJ,MAAO,QACP1tI,WApIG,IAsIPmqI,IAAkB,IAASj3J,KAAO,CAK9BitB,cAAe,IAGvB/R,KAAM,CACF,CACIvC,QAAS,QACTE,SAAU,KAAcqxC,OAE5BnuD,GAAY,CACRiW,MAAOuoJ,IAGf/8I,MAAO,CACH+O,cAAe,OAEf3T,WAAY,KAAcsxC,OAE9B0vG,kBAAmB,EACf,SAAS,QAAS,CAAE5gJ,QAAS,OAAQG,SAAU,WAAYoP,UAAW,aAAcphB,OA/J3E,GA+JmG4jB,SA9JhG,KA8J+H,QAAmBivI,EAA2BlyI,EAAQQ,eAAgB,SAAU,IAAK,CAAE,UAAWj2B,EAAK,CACtOqqC,YAAa,OAEjBrqC,EAAG,MAAwB,CACvB8nB,YAAa,YAEjB9nB,MACP4kK,IAAkB,IAASj3J,KAAOi3J,IAAkB,IAAS/2J,SAAW,CACrEG,MAAO,SAEVtE,GAAY,CACT,CACI,gBAAiB/B,EAAK,CACdmgB,YAAa+/I,GAEjBlgK,EAAG,MAAwB,CACvBmgB,YAAa,aAEjBngB,IAERq+J,GAAa,CACT,wBAAyBp+J,EAAK,CACtBkgB,YAAaggJ,EACbz9H,YAAa,OAEjBziC,EAAG,MAAwB,CACvBkgB,YAAa,aAEjBlgB,KAGZ8B,GAAY80C,EAAkB19C,IAElCusC,MAAO,CACH,sBACA,CACInX,UAAW,aACXiU,UAAW,OACXG,YAAa,OACb2iD,KAAM,EACNvmE,OAAQ,EACRF,SAAUxB,EAAMyB,OAAOD,SACvBtI,WAAY,UACZyB,MAAOooJ,EACP5hJ,gBAAiByhJ,EACjB9yJ,OAAQ,OACRwR,QAAS,cACTrV,QAAS,EACT0V,QAAS,QACT+R,SAAU0vI,GACV5jJ,WAAY,SACZC,aAAc,WACd/B,SAAU,SACVpF,OAAQ,OACR6Y,WAAY,OACZH,aAAc,GAAG5d,OAAOqd,EAAQQ,eAAgB,SAAS7d,OAAOqd,EAAQQ,kBAE3EvsB,GAAY,CACTsH,UAAW,CACP,cAAe,CACXmV,gBAAiB8hJ,EACjBtoJ,MAAOqoJ,EACPh3J,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBse,gBAAiB,YACjB2B,YAAa,YACbnI,MAAO,iBAEX9X,MAIhB6B,GAAY80C,EAAkB19C,IAElC2mK,sBAAuB,CACnB,CACI9gJ,QAAS,QACT7R,OAAQ,OACRwI,OAAQ,WAEZ5T,GAAY80C,EAAkB19C,IAG1C,QEhP0D6D,EAAW,CACjE0iB,MAAO,c,mHCLP9H,GAAgB,EAAAC,EAAA,KAChB6oJ,EAA6B,SAAU3gK,GAEvC,SAAS2gK,IACL,OAAkB,OAAX3gK,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAgCA,OAnCA,QAAUyiK,EAAa3gK,GAIvB2gK,EAAYhjK,UAAUxB,OAAS,WAE3B,IAAI7D,EAAK4F,KAAK1E,MAAOmB,EAAOrC,EAAGqC,KAAM2M,EAAOhP,EAAGgP,KAAM0R,EAAY1gB,EAAG0gB,UAAW4nJ,EAAWtoK,EAAGsoK,SAAUrnK,EAASjB,EAAGiB,OAAQkqB,EAAQnrB,EAAGmrB,MAAOrqB,EAAQd,EAAGc,MAAO0C,EAAYxD,EAAGwD,UAAWohK,EAAgB5kK,EAAG4kK,cACxM3gF,EAAgBvjE,EAChB1C,GAAc,QAAepY,KAAK1E,MAAO,KAAe,CAAC,SAIzDqnK,EAAYv5J,OACErK,IAAd4jK,QAAoC5jK,IAATtC,IAE3BkmK,EAAYlmK,IAAS,IAAYw1D,MAAQ,IAAYA,MAAQ,IAAYpxC,QAE7E,IAAIpjB,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPkO,KAAMu5J,EACN/kK,UAAWA,EACXohK,cAAeA,IAEnB,OAAQ,gBAAoB,OAAO,QAAS,CAAC,EAAG5mJ,EAAa,CAAExa,UAAWH,EAAWgM,OACjF,gBAAoB,MAAO,CAAE7L,UAAWH,EAAW0nC,SACnD5f,GAAS,gBAAoB,MAAO,CAAE3nB,UAAWH,EAAW8nB,OAASA,GACrE84D,GAAkB,gBAAoB,MAAO,CAAErhE,KAAM,SAAU,YAAa0lJ,GACxE,gBAAoBr1D,EAAA,EAAe,KAC/B,gBAAoB,MAAO,CAAEzvG,UAAWH,EAAWuoB,kBAAoBq4D,KACvF,EACAokF,EAAY95J,aAAe,CACvBS,KAAM,IAAYyX,OAClB6hJ,SAAU,SACV1D,cAAe,UAEZyD,CACX,CArCgC,CAqC9B,a,sBCtCE/jJ,EAAmB,CACnBjV,KAAM,aACN07B,OAAQ,oBACR5f,MAAO,oBAEPq9I,GAAgB,EAAAj8I,EAAA,KAAgB,WAChC,OAAO,QAAU,CACb,KAAM,CACFie,UAAW,gBAEf,OAAQ,CACJA,UAAW,mBAGvB,ICfWijF,GAAU,EAAA5oG,EAAA,GAAOwjJ,GDgBL,SAAUnnK,GAC7B,IAAIlB,EACAc,EAAQI,EAAMJ,MAAOkO,EAAO9N,EAAM8N,KAAMxL,EAAYtC,EAAMsC,UAAWohK,EAAgB1jK,EAAM0jK,cAC3F7/I,EAAUjkB,EAAMikB,QAChB1hB,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX,CACIsX,QAAS,OACT6S,cAAe,SACf5S,WAAY,SACZgC,eAAgB,UAEF,QAAlBg8I,GAA2B,CACvBprI,cAAe,kBAED,UAAlBorI,GAA6B,CACzBprI,cAAe,OAED,SAAlBorI,GAA4B,CACxBprI,cAAe,eAEnBh2B,GAEJunC,OAAQ,CACJ1nC,EAAW0nC,OACX,CACI7U,UAAW,aACXF,aAAc,MACdnO,OAAQ,eAAiB9C,EAAQq0D,WACjCopE,eAAgBz9H,EAAQiD,aACxBguD,cAAewyF,IACfr1D,kBAAmB,OACnBE,wBAAyB,WACzBD,wBAAyB,gCACzBpiG,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEwiJ,eAAgB,cAAe,WACrExiJ,IAERgP,IAAS,IAAY8gI,QAAU,CAC3B,qBACA,CACI9hI,MAAO,GACP8G,OAAQ,KAGhB9F,IAAS,IAAYiY,OAAS,CAC1B,oBACA,CACIjZ,MAAO,GACP8G,OAAQ,KAGhB9F,IAAS,IAAYyX,QAAU,CAC3B,qBACA,CACIzY,MAAO,GACP8G,OAAQ,KAGhB9F,IAAS,IAAY6oD,OAAS,CAC1B,oBACA,CACI7pD,MAAO,GACP8G,OAAQ,MAIpBqW,MAAO,CACH9nB,EAAW8nB,MACXrqB,EAAMkkB,MAAMiC,MACZ,CACItH,MAAOoF,EAAQiD,aACftB,OAAQ,UACR6O,UAAW,UAEG,QAAlBqvI,GAA2B,CACvBl+I,OAAQ,WAEM,UAAlBk+I,GAA6B,CACzBl+I,OAAQ,aAEM,SAAlBk+I,GAA4B,CACxBl+I,OAAQ,cAGhBkF,iBAAkB,KAE1B,QCzGoDjnB,EAAW,CAAE0iB,MAAO,W,kBCCjE,IAAIohJ,EAuBAC,E,yBAtBX,SAAWD,GAIPA,EAAYA,EAAoB,OAAI,GAAK,SAIzCA,EAAYA,EAAmB,MAAI,GAAK,QAIxCA,EAAYA,EAAoB,OAAI,GAAK,SAIzCA,EAAYA,EAAmB,MAAI,GAAK,OAC3C,CAjBD,CAiBGA,IAAgBA,EAAc,CAAC,IAMlC,SAAWC,GAIPA,EAAYA,EAAoB,OAAI,GAAK,SAIzCA,EAAYA,EAAmB,MAAI,GAAK,OAC3C,CATD,CASGA,IAAgBA,EAAc,CAAC,G,0ICpC9BC,EAAoB,SAAU79J,EAAOhK,GACrC,OAAIA,EAAM8nK,QAAQvkK,eAAeyG,GACtBhK,EAAM8nK,QAAQ99J,GAElBA,CACX,EAEI+9J,EAAmB,SAAUpsI,GAC7B,IAAIqsI,EAAgB10J,WAAWqoB,GAC3BssI,EAAiB/uH,MAAM8uH,GAAiB,EAAIA,EAC5CE,EAAkBhvH,MAAM8uH,GAAiB,GAAKA,EAAc3pJ,WAEhE,MAAO,CACH5J,MAAOwzJ,EACPE,KAHWxsI,EAAI0d,UAAU6uH,EAAgB7pJ,WAAW7d,SAGlC,KAE1B,EAkEW4nK,EAAe,SAAU5iJ,EAASxlB,GACzC,QAAgB6D,IAAZ2hB,GAA4C,iBAAZA,GAAoC,KAAZA,EACxD,OAAOA,EAEX,IAAI6iJ,EAAgB7iJ,EAAQ6L,MAAM,KAClC,OAAIg3I,EAAc7nK,OAAS,EAChBqnK,EAAkBriJ,EAASxlB,GAE/BqoK,EAAcv0G,QAAO,SAAUw0G,EAAUC,GAC5C,OAAOV,EAAkBS,EAAUtoK,GAAS,IAAM6nK,EAAkBU,EAAUvoK,EAClF,GACJ,EC1FIwoK,EAAU,CACVxrJ,MAAO,aACPlR,IAAK,YAEE0X,EAAmB,CAC1BjV,KAAM,WACN8oG,MAAO,iBACP75G,MAAO,kB,WCyBX,SAASirK,EAAsBjnK,EAAUtC,GACrC,IAAIwpK,EAAgBxpK,EAAGwpK,cAAeC,EAAwBzpK,EAAGypK,sBAAuBC,EAAyB1pK,EAAG0pK,uBAChHC,EAAgB,WAAelnK,QAAQH,GAuB3C,OAtBgB,WAAed,IAAImoK,GAAe,SAAUrrK,GACxD,IAAKA,EACD,OAAOorK,EAAyB,KAAOprK,EAI3C,IAAK,iBAAqBA,GACtB,OAAOA,EAEX,GAAIA,EAAM+D,OAAS,WACf,OAAO/D,EAAM4C,MAAMoB,SACbinK,EAAsBjrK,EAAM4C,MAAMoB,SAAU,CAAEknK,cAAeA,EAAeC,sBAAuBA,EAAuBC,uBAAwBA,IAClJ,KAEV,IAUcvoJ,EAVVyoJ,EAAsBtrK,EACtBurK,EAAmB,CAAC,GASV1oJ,EARG7iB,IAaD,iBAAT6iB,GACLA,EAAK9e,MAEP8e,EAAK9e,KAAKhC,cAAgBypK,EAAA,EAAUzpK,cAfhCwpK,EAAmB,CAAEE,QAASP,IAElC,IAAIQ,EAAiBJ,EAAoB1oK,MAAMsC,UAC/C,OAAO,eAAmBomK,GAAqB,SAAS,SAAS,SAAS,QAAS,CAAC,EAAGC,GAAmBD,EAAoB1oK,OAAS8oK,GAAkB,CAAExmK,UAAWwmK,IAAqBP,GAAyB,CAAEjmK,WAAW,EAAAsN,EAAA,GAAI,EAAsBxS,MAAO0rK,KACtQ,GAEJ,CAWA,IAAIC,EAAe,CACfC,KAAMJ,EAAA,GAECK,GAAQ,EAAAtqK,EAAA,IApEH,SAAUqB,GACtB,IAAIlB,EAAKkB,EAAMoP,GAAI+jH,OAAkB,IAAPr0H,EAAgB,MAAQA,EAAI2H,EAAKzG,EAAMsoK,cAAeA,OAAuB,IAAP7hK,GAAwBA,EAE5HC,EAAK1G,EAAMwoK,uBAEXA,OAAgC,IAAP9hK,GAAwBA,EAAIC,EAAK3G,EAAMuoK,sBAAuBA,OAA+B,IAAP5hK,GAAwBA,EAAIuiK,EAAOlpK,EAAMkpK,KAAMh8I,GAAO,QAAOltB,EAAO,CAAC,KAAM,gBAAiB,yBAA0B,wBAAyB,UAC9P,EAAAkxB,EAAA,GAAiB,QAASlxB,EAAO,CAC7Bu7B,IAAK,qBACL0H,UAAW,mBACX7K,SAAU,kBACVhT,QAAS,mBAEb,IAAI+jJ,EAAgBd,EAAsBroK,EAAMoB,SAAU,CACtDknK,cAAeA,EACfC,sBAAuBA,EACvBC,uBAAwBA,IAExB1rJ,GAAc,QAAeoQ,EAAM,MACnCk8I,GAAQ,QAASppK,EAAO,CACxBmO,KAAMglH,EACNlc,MAAO,QAEX,OAAIiyD,GACQ,QAAUE,EAAMj7J,MAAM,QAAS,CAAC,EAAG2O,IACvC,QAAUssJ,EAAMnyD,MAAO,KAAMkyD,KAE9B,QAAUC,EAAMj7J,MAAM,QAAS,CAAC,EAAG2O,GAAcqsJ,EAC5D,GAyC8C,CAC1ChqK,YAAa,QACbY,ODjEgB,SAAUC,EAAOJ,EAAOC,GACxC,IAAIf,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAAIC,EAChD90B,EAAYtC,EAAMsC,UAAWgmK,EAAgBtoK,EAAMsoK,cAAeC,EAAwBvoK,EAAMuoK,sBAAuBc,EAAOrpK,EAAMqpK,KAAM/+J,EAAatK,EAAMsK,WAAYg/J,EAAkBtpK,EAAMspK,gBAAiB99H,EAAWxrC,EAAMwrC,SAAUlS,EAAgBt5B,EAAMs5B,cAAeiwI,EAAevpK,EAAMupK,aAAcL,EAAOlpK,EAAMkpK,KAClU/mK,GAAa,QAAoBihB,EAAkBxjB,GAEnD4pK,EAAc3pK,GAAUA,EAAO2pK,YAAc3pK,EAAO2pK,YAAcxpK,EAAMu7B,IACxE0H,EAAYpjC,GAAUA,EAAOojC,UAAYpjC,EAAOojC,UAAYjjC,EAAMijC,UAClE7K,EAAWv4B,GAAUA,EAAOu4B,SAAWv4B,EAAOu4B,SAAWp4B,EAAMo4B,SAC/DhT,EAAUvlB,GAAUA,EAAOulB,QAAUvlB,EAAOulB,QAAUplB,EAAMolB,QAE5DiS,EDCc,SAAUkE,EAAK37B,GACjC,QAAY6D,IAAR83B,GAA6B,KAARA,EACrB,MAAO,CACHkuI,OAAQ,CACJp1J,MAAO,EACP0zJ,KAAM,MAEV2B,UAAW,CACPr1J,MAAO,EACP0zJ,KAAM,OAIlB,GAAmB,iBAARxsI,EACP,MAAO,CACHkuI,OAAQ,CACJp1J,MAAOknB,EACPwsI,KAAM,MAEV2B,UAAW,CACPr1J,MAAOknB,EACPwsI,KAAM,OAIlB,IAAI4B,EAAWpuI,EAAItK,MAAM,KAEzB,GAAI04I,EAASvpK,OAAS,EAClB,MAAO,CACHqpK,OAAQ,CACJp1J,MAAO,EACP0zJ,KAAM,MAEV2B,UAAW,CACPr1J,MAAO,EACP0zJ,KAAM,OAKlB,GAAwB,IAApB4B,EAASvpK,OACT,MAAO,CACHqpK,OAAQ9B,EAAiBF,EAAkBkC,EAAS,GAAI/pK,IACxD8pK,UAAW/B,EAAiBF,EAAkBkC,EAAS,GAAI/pK,KAInE,IAAIgqK,EAAgBjC,EAAiBF,EAAkBlsI,EAAK37B,IAC5D,MAAO,CACH6pK,OAAQG,EACRF,UAAWE,EAEnB,CCrDaC,CAASL,EAAa5pK,GAAQ6pK,EAASpyI,EAAGoyI,OAAQC,EAAYryI,EAAGqyI,UACtEI,EAAmB,GAAG5yJ,QAAQ,GAAMwyJ,EAAUr1J,OAAO6C,OAAOwyJ,EAAU3B,MACtEgC,EAAiB,GAAG7yJ,QAAQ,GAAMuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,MAE9DiC,EAAc,CACdzmJ,aAAc,YAEd0mJ,EAAgB,MAAQ1B,EAAwB,IAAMnlJ,EAAiBhmB,MAAQ,KAC/E8sK,IAAuBprK,EAAK,CAAC,GAE1B,GAAGoY,OAAO+yJ,EAAe,UAAU/yJ,OAAO,IAA0B/I,KAAM,MAAQ,CACjFmmB,WAAY,GAEhBx1B,GACJ,OAAIoqK,EACO,CACH/6J,KAAM,CACFhM,EAAWgM,KACX,CACI+mB,SAAU,OACVkD,SAAUA,EACV6K,UAAWA,EACXn2B,MAAO,OACP0U,SAAU,UACV5N,OAAQ,QAEZ01J,IAAoB7iK,EAAK,CAAC,EACtBA,EAAG6D,EAAa,iBAAmB,cAAgB89J,EAAQkB,IAAoBA,EAC/E7iK,GACJ6yB,IAAkB5yB,EAAK,CAAC,EACpBA,EAAG4D,EAAa,aAAe,kBAAoB89J,EAAQ9uI,IAAkBA,EAC7E5yB,GACJpE,EACA,CAGImjB,QAAS,QAEbnb,GAAc,CACVsJ,OAAQ21J,EAAe,OAAS,SAGxCtyD,MAAO,CACH90G,EAAW80G,OACVtwG,EAAK,CACE8e,QAAS,OACTyP,SAAU,OACVqE,WAAYuwI,EACZrwI,YAAaqwI,EACbtwI,UAAWuwI,EACXrwI,aAAcqwI,EACdvoJ,SAAU,UACVwT,UAAW,aACX5P,QAAS4iJ,EAAa5iJ,EAASxlB,GAE/BkN,MAA2B,IAApB48J,EAAUr1J,MAAc,OAAS,eAAe6C,OAAOwyJ,EAAUr1J,OAAO6C,OAAOwyJ,EAAU3B,KAAM,KACtG3vI,SAAU,SAEdzxB,EAAGsjK,IAAiB,QAAS,CAAEzkJ,OAAQ,GAAGtO,OAAO,GAAMuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,KAAM,KAAK7wJ,OAAO,GAAMwyJ,EAAUr1J,OAAO6C,OAAOwyJ,EAAU3B,OAASiC,GACtJrjK,GACJ2hK,GAAiB4B,EACjBZ,IAAoB1lJ,EAAK,CAAC,EACtBA,EAAGtZ,EAAa,iBAAmB,cAAgB89J,EAAQkB,IAAoBA,EAC/E1lJ,GACJ0V,IAAkBnD,EAAK,CAAC,EACpBA,EAAG7rB,EAAa,aAAe,kBAAoB89J,EAAQ9uI,IAAkBA,EAC7EnD,GACJ7rB,IAAe8rB,EAAK,CACZkC,cAAekT,EAAW,cAAgB,MAE1C53B,OAAyB,IAAjB61J,EAAOp1J,MAAc,OAAS,eAAe6C,OAAOuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,KAAM,MAElG3xI,EAAG6zI,GAAiB,CAChB7xI,SAA8B,IAApBsxI,EAAUr1J,MAAc,OAAS,eAAe6C,OAAOwyJ,EAAUr1J,OAAO6C,OAAOwyJ,EAAU3B,KAAM,MAE7G3xI,IACH9rB,IAAe+rB,EAAK,CACbiC,cAAekT,EAAW,iBAAmB,SAC7C53B,OAAQ,eAAesD,OAAOuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,KAAM,MAEpE1xI,EAAG4zI,GAAiB,CAChBhnI,UAA4B,IAAjBwmI,EAAOp1J,MAAc,OAAS,eAAe6C,OAAOuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,KAAM,MAErG1xI,KAIT,CACHloB,KAAM,CACFhM,EAAWgM,MACVmoB,EAAK,CACE7Q,QAAS,OACT6S,cAAehuB,EAAckhC,EAAW,cAAgB,MAASA,EAAW,iBAAmB,SAC/FtW,SAAU,SACVpoB,MAAO,OACP8G,OAAQ21J,EAAe,OAAS,OAChCnxI,SAAUA,EACV6K,UAAWA,EACX7d,QAAS4iJ,EAAa5iJ,EAASxlB,GAC/Bo1B,UAAW,cAEfsB,EAAG2zI,GAAiBD,EACpB1zI,GACJgyI,GAAiB4B,EACjBb,GAAQ,CACJrhJ,UAAmB,IAATqhJ,EAAgB,EAAIA,GAElCC,IAAoBryI,EAAK,CAAC,EACtBA,EAAG3sB,EAAa,iBAAmB,cAAgB89J,EAAQkB,IAAoBA,EAC/EryI,GACJqC,IAAkBpC,EAAK,CAAC,EACpBA,EAAG5sB,EAAa,aAAe,kBAAoB89J,EAAQ9uI,IAAkBA,EAC7EpC,GACJ5sB,GACIo/J,EAAUr1J,MAAQ,IAAM8iB,EAAK,CAAC,EAG9BA,EAAc,GAAGjgB,OAAO+yJ,EAArBz+H,EAAoC,oBAAgD,uBAAyB,CAC5GjS,WAAY,GAAGriB,OAAOwyJ,EAAUr1J,OAAO6C,OAAOwyJ,EAAU3B,OAE5D5wI,IACH7sB,GACGm/J,EAAOp1J,MAAQ,IAAM+iB,EAAK,CAAC,EAG3BA,EAAc,GAAGlgB,OAAO+yJ,EAArBz+H,EAAoC,oBAAgD,uBAAyB,CAC5GhS,UAAW,GAAGtiB,OAAOuyJ,EAAOp1J,OAAO6C,OAAOuyJ,EAAO1B,OAErD3wI,GACJ90B,GAKZ,EC9EI1B,QAASmoK,G,8FC/DFH,GAAY,QAZH,SAAU5oK,GAC1B,IAAIoB,EAAWpB,EAAMoB,SACjB0b,GAAc,QAAe9c,EAAO,MAExC,GAAgB,MAAZoB,EACA,OAAO,KAEX,IAAIgoK,GAAQ,QAASppK,EAAO,CACxBmO,KAAM,QAEV,OAAO,QAAUi7J,EAAMj7J,MAAM,QAAS,CAAC,EAAG2O,GAAc1b,EAC5D,GACsD,CAClDjC,YAAa,YACbY,OAAQ,K,0DCjBDqjB,EAAmB,CAC1BjV,KAAM,gBAENg8J,EAAW,CACXvtJ,MAAO,aACPlR,IAAK,YAEE0+J,EAAkB,SAAUpqK,EAAOJ,EAAOC,GACjD,IAAIwpK,EAAOrpK,EAAMqpK,KAAMR,EAAS7oK,EAAM6oK,OAAQP,EAAgBtoK,EAAMsoK,cAAe+B,EAAQrqK,EAAMqqK,MAAOd,EAAevpK,EAAMupK,aAAce,EAAQtqK,EAAMsqK,MAAOhoK,EAAYtC,EAAMsC,UAAWxD,EAAKkB,EAAMuqK,MAAOA,OAAe,IAAPzrK,EAAgB,OAASA,EAC5OqD,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFvO,EAAMkkB,MAAMyB,OACZpjB,EAAWgM,KACX,CACIoqB,UAAWgyI,EACX/kJ,OAAQ3lB,EAAO2lB,OACfJ,QAASvlB,EAAOulB,QAChBxR,OAAQ21J,EAAe,OAAS,OAChCz8J,MAAO,QAEXu8J,GAAQ,CACJrhJ,UAAmB,IAATqhJ,EAAgB,EAAIA,IAEjCf,IAAmBe,IAASR,IAAY,CACrCv0I,WAAY,GAEhBu0I,IACKP,GAAiB,CAClBh0I,WAAY,GAEhB+1I,GAAS,CACLhzF,UAAW8yF,EAASE,IAAUA,GAElCC,GAAS,CACLA,MAAOA,GAEXhoK,GAKZ,C,wGCrCIkoK,EAAwB,SAAUhkK,GAElC,SAASgkK,EAAOxqK,GACZ,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAgFxC,OA/EAkC,EAAMC,MAAQ,cACdD,EAAM6jK,kBAAoB,cAC1B7jK,EAAM8jK,qBAAuB,cAC7B9jK,EAAM+jK,kBAAoB,cAC1B/jK,EAAMgkK,aAAe,cACrBhkK,EAAM4vJ,WAAa,SAAUtnI,GACzB,IAAIinI,EAAmBvvJ,EAAMuvJ,iBACzBA,GAAoBvvJ,EAAM5G,MAAM6qK,iBAChC1U,EAAiBtsB,WAAa36G,EAAU26G,WAEhD,EACAjjI,EAAMkkK,YAAc,WAAc,OAAOlkK,EAAMxH,OAAS,EACxDwH,EAAMmkK,eAAiB,SAAU77I,EAAW87I,GACxC,GAAIpkK,EAAMuH,MAAQvH,EAAMuvJ,iBAAkB,CACtC,IAAIe,EAAkBtwJ,EAAMqkK,6BAA6B/7I,GACrD+mI,GAAc,EACdC,GAAiB,EACjBtvJ,EAAM4uJ,eAENS,EADyBiB,EAAkBtwJ,EAAMskK,4BACdh8I,EAAUigC,WAI7CvoD,EAAM+uJ,iBAAmBzmI,EAAU3b,aAAey3J,EAAsBh8G,cAAgBkoG,IACxFhB,EACIgB,EAAkB3qJ,KAAKC,MAAM0iB,EAAUigC,YACnCvoD,EAAMukK,mCAAmCj8I,EAAW87I,IAE5DptK,SAASwL,eACTxC,EAAMuvJ,iBAAiB34J,SAASI,SAASwL,iBACxCxC,EAAMjH,MAAMs2J,cAAgBA,GAAervJ,EAAMjH,MAAMu2J,iBAAmBA,GAC3EtvJ,EAAMoB,eAAiBpK,SAASwL,cAGhCxC,EAAMoB,oBAAiBvE,EAE3BmD,EAAM0T,SAAS,CACX27I,YAAarvJ,EAAM4uJ,cAAgBS,EACnCC,eAAgBA,EAChBgB,gBAAiBA,GAEzB,CACJ,EACAtwJ,EAAMskK,0BAA4B,WAC9B,IAAIl4J,EAAW,EAIf,OAHIpM,EAAM6uJ,mBACNziJ,EAAWpM,EAAM6uJ,iBAAiBxmG,WAE/Bj8C,CACX,EACApM,EAAMukK,mCAAqC,SAAUj8I,EAAWk8I,GAC5D,IAAIp4J,EAAW,EAKf,OAJIpM,EAAMgvJ,sBACN5iJ,EACIkc,EAAU3b,aAAe63J,EAA6Bp8G,aAAepoD,EAAMgvJ,oBAAoB3mG,WAEhGj8C,CACX,EACApM,EAAMqkK,6BAA+B,SAAU/7I,GAC3C,IAAIlc,EAAW,EACXq4J,EAAWzkK,EAAMuH,KACrB,GAAIk9J,EAAU,CACV,KAAOA,GAAYA,EAASv8G,eAAiB5/B,GACzClc,GAAYq4J,EAASp8G,UACrBo8G,EAAWA,EAASv8G,aAEpBu8G,GAAYA,EAASv8G,eAAiB5/B,IACtClc,GAAYq4J,EAASp8G,UAE7B,CACA,OAAOj8C,CACX,GACA,OAAuBpM,GACvBA,EAAMjH,MAAQ,CACVs2J,aAAa,EACbC,gBAAgB,EAChBgB,qBAAiBzzJ,GAErBmD,EAAMoB,oBAAiBvE,EAChBmD,CACX,CA8MA,OAjSA,QAAU4jK,EAAQhkK,GAoFlBzC,OAAOgN,eAAey5J,EAAOrmK,UAAW,OAAQ,CAC5C6M,IAAK,WACD,OAAOtM,KAAKmC,MAAMgB,OACtB,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,cAAe,CACnD6M,IAAK,WACD,OAAOtM,KAAKkmK,aAAa/iK,OAC7B,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,mBAAoB,CACxD6M,IAAK,WACD,OAAOtM,KAAK+lK,kBAAkB5iK,OAClC,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,sBAAuB,CAC3D6M,IAAK,WACD,OAAOtM,KAAKgmK,qBAAqB7iK,OACrC,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,mBAAoB,CACxD6M,IAAK,WACD,OAAOtM,KAAKimK,kBAAkB9iK,OAClC,EACAoJ,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,eAAgB,CACpD6M,IAAK,WACD,OAAQtM,KAAK1E,MAAMsrK,iBAAmB,IAAmBC,MAAQ7mK,KAAK1E,MAAMsrK,iBAAmB,IAAmBjjH,MACtH,EACAp3C,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAey5J,EAAOrmK,UAAW,kBAAmB,CACvD6M,IAAK,WACD,OAAQtM,KAAK1E,MAAMsrK,iBAAmB,IAAmBC,MAAQ7mK,KAAK1E,MAAMsrK,iBAAmB,IAAmBE,MACtH,EACAv6J,YAAY,EACZC,cAAc,IAElBs5J,EAAOrmK,UAAU+J,kBAAoB,WACjC,IAAIwoJ,EAAiBhyJ,KAAKomK,cAAcpU,eACnCA,IAGLA,EAAelsE,UAAU9lF,KAAKqmK,gBAC9BrU,EAAe7B,UAAUnwJ,MAC7B,EACA8lK,EAAOrmK,UAAU6K,qBAAuB,WACpC,IAAI0nJ,EAAiBhyJ,KAAKomK,cAAcpU,eACnCA,IAGLA,EAAe9B,YAAYlwJ,KAAKqmK,gBAChCrU,EAAexB,aAAaxwJ,MAChC,EACA8lK,EAAOrmK,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GACvD,IAAIykI,EAAiBhyJ,KAAKomK,cAAcpU,eACxC,GAAKA,EAAL,CAGA,IAAI53J,EAAK4F,KAAK/E,MAAOu2J,EAAiBp3J,EAAGo3J,eAAgBD,EAAcn3J,EAAGm3J,YAAaiB,EAAkBp4J,EAAGo4J,gBACxGV,GAAa,EACbvkI,EAAUilI,kBAAoBA,IAC9BR,EAAezB,WAAWvwJ,MAAM,GAChC8xJ,GAAa,GAEbvkI,EAAUgkI,cAAgBA,GAAehkI,EAAUikI,iBAAmBA,IAClExxJ,KAAKsD,gBACLtD,KAAKsD,eAAeD,QAExB2uJ,EAAeb,yBACfW,GAAa,GAEbA,GAEAE,EAAeH,iBAAiB7xJ,KAhBpC,CAkBJ,EACA8lK,EAAOrmK,UAAUm0D,sBAAwB,SAAU/vB,EAAW04D,GAC1D,IAAKv8F,KAAKtF,QAAQs3J,eACd,OAAO,EAEX,IAAI53J,EAAK4F,KAAK/E,MAAOs2J,EAAcn3J,EAAGm3J,YAAaC,EAAiBp3J,EAAGo3J,eAAgBgB,EAAkBp4J,EAAGo4J,gBAC5G,OAAQjB,IAAgBh1D,EAAUg1D,aAC9BC,IAAmBj1D,EAAUi1D,gBAC7BxxJ,KAAK1E,MAAMsrK,iBAAmB/iI,EAAU+iI,gBACxC5mK,KAAK1E,MAAMoB,WAAamnC,EAAUnnC,UAClC81J,IAAoBj2D,EAAUi2D,iBAC9BuU,EAAyB/mK,KAAKimK,kBAAmBjmK,KAAK+lK,oBACtDgB,EAAyB/mK,KAAKimK,kBAAmBjmK,KAAKgmK,uBACtDe,EAAyB/mK,KAAKimK,kBAAmBjmK,KAAKkmK,aAC9D,EACAJ,EAAOrmK,UAAUxB,OAAS,WACtB,IAAI7D,EAAK4F,KAAK/E,MAAOs2J,EAAcn3J,EAAGm3J,YAAaC,EAAiBp3J,EAAGo3J,eACnEzvJ,EAAK/B,KAAK1E,MAAO0rK,EAAkBjlK,EAAGilK,gBAAiBtqK,EAAWqF,EAAGrF,SACzE,OAAKsD,KAAKtF,QAAQs3J,eAGV,gBAAoB,MAAO,CAAE1mJ,IAAKtL,KAAKmC,OAC3CnC,KAAK8wJ,cAAiB,gBAAoB,MAAO,CAAExlJ,IAAKtL,KAAK+lK,kBAAmB1tJ,MAAO,CAAEic,cAAei9H,EAAc,OAAS,SAC3H,gBAAoB,MAAO,CAAEl5I,MAAOrY,KAAKinK,4BAA4B1V,MACzEvxJ,KAAKixJ,iBAAoB,gBAAoB,MAAO,CAAE3lJ,IAAKtL,KAAKgmK,qBAAsB3tJ,MAAO,CAAEic,cAAek9H,EAAiB,OAAS,SACpI,gBAAoB,MAAO,CAAEn5I,MAAOrY,KAAKinK,4BAA4BzV,MACzE,gBAAoB,MAAO,CAAEn5I,MAAOrY,KAAKknK,yCAA0C57J,IAAKtL,KAAKkmK,eACxF3U,GAAeC,IAAmB,gBAAoB,OAAQ,CAAEn5I,MAAO,MAAsB3b,GAC9F,gBAAoB,MAAO,CAAE4O,IAAKtL,KAAKimK,kBAAmBroK,UAAW2zJ,GAAeC,EAAiBwV,OAAkBjoK,EAAWsZ,MAAOrY,KAAKmnK,kBAAkB5V,GAAeC,IAAmB90J,KAT/L,gBAAoB,MAAO,KAAMsD,KAAK1E,MAAMoB,SAU3D,EACAopK,EAAOrmK,UAAU0wJ,UAAY,SAAUsC,GAC/BzyJ,KAAKyxJ,kBACLgB,EAAch0H,YAAYz+B,KAAKyxJ,iBAEvC,EACAqU,EAAOrmK,UAAU80J,YAAc,WACvBv0J,KAAKyxJ,kBAAoBzxJ,KAAKy/C,aAC9Bz/C,KAAKy/C,YAAYhhB,YAAYz+B,KAAKyxJ,iBAE1C,EACAqU,EAAOrmK,UAAU6wJ,mBAAqB,SAAU9lI,GAC5C,IAAIgoI,EAAkBxyJ,KAAKumK,6BAA6B/7I,GACxDxqB,KAAK4V,SAAS,CAAE48I,gBAAiBA,GACrC,EACAsT,EAAOrmK,UAAU0nK,kBAAoB,SAAUC,GAC3C,MAAO,CACH7mJ,gBAAiBvgB,KAAK1E,MAAM+rK,uBAAyBrnK,KAAKsnK,iBAC1DxqJ,SAAUsqJ,EAAW,SAAW,GAExC,EACAtB,EAAOrmK,UAAUwnK,4BAA8B,SAAUG,GACrD,IAAIl4J,EAASlP,KAAKyxJ,iBAAmBzxJ,KAAKyxJ,iBAAiBnnG,aAAe,EAC1E,MAAO,CACH9rB,WAAY4oI,EAAW,SAAW,UAClCl4J,OAAQk4J,EAAW,EAAIl4J,EAE/B,EACA42J,EAAOrmK,UAAUynK,uCAAyC,WACtD,IAAI9sK,EAAK4F,KAAK/E,MAAOs2J,EAAcn3J,EAAGm3J,YAAaC,EAAiBp3J,EAAGo3J,eACvE,GAAID,GAAeC,EAAgB,CAC/B,IAAItiJ,EAAS,EACT9G,EAAQ,EAyBZ,OAfIpI,KAAKyxJ,kBAAoBzxJ,KAAKyxJ,iBAAiBnkJ,oBAC/C4B,EAASlP,KAAKyxJ,iBAAiBnnG,aAS/BliD,EACIpI,KAAKyxJ,iBAAiBnkJ,kBAAkBqqG,aACnC33G,KAAKyxJ,iBAAiBnkJ,kBAAkBwxD,YACrC9+D,KAAKyxJ,iBAAiBnkJ,kBAAkBq1C,cAEjD,CACHzzC,OAAQA,EACR9G,MAAOA,EAEf,CAEI,MAAO,CAAC,CAEhB,EAEA09J,EAAOrmK,UAAU6nK,eAAiB,WAC9B,GAAKtnK,KAAKyJ,KAAV,CAIA,IADA,IAAI89J,EAAOvnK,KAAKyJ,KAC8D,qBAAvEnI,OAAOo2G,iBAAiB6vD,GAAMC,iBAAiB,qBACqB,gBAAvElmK,OAAOo2G,iBAAiB6vD,GAAMC,iBAAiB,qBAAuC,CACtF,GAAqB,SAAjBD,EAAKn6J,QAEL,OAEAm6J,EAAKrkK,gBACLqkK,EAAOA,EAAKrkK,cAEpB,CACA,OAAO5B,OAAOo2G,iBAAiB6vD,GAAMC,iBAAiB,mBAZtD,CAaJ,EACA1B,EAAOn9J,aAAe,CAClBi+J,eAAgB,IAAmBC,KACnCV,gBAAgB,GAEpBL,EAAOtsJ,YAAc,EAAA46I,EACd0R,CACX,CAnS2B,CAmSzB,aAEF,SAASiB,EAAyBh3H,EAAG3wC,GACjC,OAAQ2wC,GAAK3wC,GAAK2wC,EAAE5sC,SAAW/D,EAAE+D,SAAW4sC,EAAE5sC,QAAQmnD,eAAiBlrD,EAAE+D,QAAQmnD,YACrF,C,iBC7SO,IAAIm9G,E,iBACX,SAAWA,GACPA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAA2B,OAAI,GAAK,QAC1D,CAJD,CAIGA,IAAuBA,EAAqB,CAAC,G,yICA5C9tJ,GAAgB,EAAAC,EAAA,KACT8tJ,EAAiB,cAAiB,SAAUpsK,EAAO6jC,GAC1D,IAAI5rB,GAAK,EAAA5B,EAAA,QAAM5S,EAAWzD,EAAMiY,IAC5B2J,EAAQ5hB,EAAM4hB,MAAOyqJ,EAAcrsK,EAAMqsK,YAAazsJ,EAAe5f,EAAM4f,aAAc0sJ,EAAkBtsK,EAAMssK,gBAErHxtK,EAAKkB,EAAM89F,aAEXA,OAAsB,IAAPh/F,EAAgBkB,EAAM89G,cAAgBh/G,EAErD2H,EAAKzG,EAAM2qC,YAEXA,OAAqB,IAAPlkC,EAAgBzG,EAAMusK,QAAU9lK,EAAI1G,EAASC,EAAMD,OAAQysK,EAA8BxsK,EAAMwsK,4BACzGC,GAAY,QAAezsK,EAAO,KAEtCwsK,EAA8B,GAAK,CAAC,WAChCrqK,EAAakc,EAActe,EAAQ,CAAEH,MAAOI,EAAMJ,QAElD8sK,GAAc,QAAS9qJ,EAAOyqJ,GAC9B3pJ,EAAW,gBAAoB,SAAS,QAAS,CAAE,gBAAiBo7E,EAAc,eAAgBnzD,EAAa1yB,GAAIA,EAAIyJ,KAAM4qJ,EAAkB,aAAe,QAAUG,EAAW,CAAEnqK,UAAWH,EAAWgM,OAC3M,gBAAoB,QAAS,CAAEuT,KAAM4qJ,EAAkB,eAAiB,YAAcI,EAAYpsK,KAAI,SAAUqsK,EAAMC,GAClH,OAAQ,gBAAoB,KAAM,CAAElrJ,KAAM4qJ,EAAkB,eAAiB,MAAOlsJ,IAAKwsJ,GAAYD,EAAKrsK,KAAI,SAAUu0F,EAAMg4E,GAC1H,OAAQ,gBAAoB,KAAM,CAAEnrJ,KAAM,eAAgBtB,IAAKysJ,EAAY,QAASvqK,UAAWH,EAAW2qK,WAAaltJ,EAAai1E,EAAMg4E,GAC9I,IACJ,MACJ,OAAOL,EAA8B,EAAa,gBAAoBjmK,EAAA,EAAW,CAAE0J,WAAY4zB,EAAchxB,qBAAsB7S,EAAM+sK,4BAA6BzqK,UAAWH,EAAW6qK,iBAAkBj9H,OAAQ/vC,EAAM+vC,QAAUrtB,EAC1O,IC3BWuqJ,GAAa,EAAAtpJ,EAAA,GAAOyoJ,GCHR,SAAUpsK,GAC7B,MAAO,CACHmO,KAAM,CACFiX,QAAS,EACTrV,QAAS,QAEb+8J,UAAW,CACP1nJ,QAAS,GAGrB,IDNA6nJ,EAAW9tK,YAAc,a,0DECd+tK,EAAiB,SAAUltK,GAClC,IAAIlB,EACAquK,GAAY,EAAA92J,EAAA,GAAM,YAClB4J,EAAOjgB,EAAMigB,KAAMxZ,EAAKzG,EAAMiY,GAAIA,OAAY,IAAPxR,EAAgB0mK,EAAY1mK,EAAInE,EAAYtC,EAAMsC,UAAW+qD,EAAWrtD,EAAMqtD,SAAU3mD,EAAK1G,EAAMwI,SAAUA,OAAkB,IAAP9B,GAAwBA,EAAIkZ,EAAe5f,EAAM4f,aAAcwtJ,EAAoBptK,EAAMotK,kBAAmBC,EAAsBrtK,EAAMqtK,oBAAqB1sJ,EAAQ3gB,EAAM2gB,MAAOsJ,EAAQjqB,EAAMiqB,MAAO5L,EAAgBre,EAAMqe,cAAeb,EAAUxd,EAAMwd,QAASqpF,EAAU7mG,EAAM6mG,QAASt9C,EAAcvpD,EAAMupD,YAAaE,EAAezpD,EAAMypD,aAAcJ,EAAerpD,EAAMqpD,aAAc9hD,EAAUvH,EAAMuH,QACpjBylB,GAAc,QAAehtB,EAAO,MACpCstK,EAAc,eAAkB,SAAUhoK,GACtCkY,IAAYhV,GACZgV,EAAQyC,EAAM3a,EAEtB,GAAG,CAACkD,EAAUyX,EAAMzC,IAChB+vJ,EAAmB,eAAkB,SAAUloK,GACxBgkD,GAAgBA,EAAahkD,KAC3BwhG,GAAYr+F,GACjCq+F,EAAQ5mF,EAAM5a,EAEtB,GAAG,CAACmD,EAAUyX,EAAM4mF,EAASx9C,IACzBmkH,EAAkB,eAAkB,SAAUnoK,GACxBkkD,GAAeA,EAAYlkD,KACzBwhG,GAAYr+F,GAChCq+F,EAAQ5mF,EAAM5a,EAEtB,GAAG,CAACmD,EAAUyX,EAAM4mF,EAASt9C,IACzBkkH,EAAmB,eAAkB,SAAUpoK,GACxBokD,GAAgBA,EAAapkD,KAC3BwhG,GAAYr+F,GACjCq+F,OAAQpjG,EAAW4B,EAE3B,GAAG,CAACmD,EAAUq+F,EAASp9C,IACnBikH,EAAc,eAAkB,SAAUpoK,GACtCiC,IAAYiB,GACZjB,EAAQ0Y,EAAM3a,EAEtB,GAAG,CAACkD,EAAUyX,EAAM1Y,IACpB,OAAQ,gBAAoBywB,EAAA,GAAe,QAAS,CAAE/f,GAAIA,EAAI,aAAc0I,EAAO,qBAAqB,EAAM,gBAAiB0sC,EAAU7tC,UAAWyK,EAAOe,MAAOf,GAAS+C,EAAa,CAAE1qB,WAAW,EAAAsN,EAAA,GAAItN,GAAYxD,EAAK,CAAC,EACnNA,EAAG,GAAKuuK,GAAuBhgH,EAC/BvuD,EAAG,GAAKsuK,GAAqB5kK,EAC7B1J,IAAM0e,QAAS8vJ,EAAajkH,aAAckkH,EAAkBhkH,YAAaikH,EAAiB/jH,aAAcgkH,EAAkBlmK,QAASmmK,EAAarvJ,cAAeA,IAAkBuB,EAAaK,GAC1M,E,UCnCI,GAAgB,EAAA3B,EAAA,KAMhBqvJ,GAAyC,EAAAtiJ,EAAA,KAAgB,SAAUzrB,EAAO0C,EAAW+jB,EAAkBuC,EAAeC,EAAmBrgB,EAAUugB,EAASC,EAAUC,GACtK,IAAIlpB,GAAS,OAAsBH,GACnC,OAAO,QAAe,CAClBuO,KAAM,CACF,YACApO,EAAOoO,KACPkY,EACA/jB,EACAymB,GAAW,CAAC,aAAchpB,EAAOwnB,aACjC/e,GAAY,CAAC,cAAezI,EAAOsnB,eAClC7e,IACIugB,GAAW,CACZjZ,UAAW,CACP,SAAU/P,EAAO8mB,YACjB,SAAU9mB,EAAO2pB,YACjB,UAAW3pB,EAAOinB,cAG1Bxe,GAAYugB,GAAW,CAAChpB,EAAO8pB,sBAC9BrhB,GACGugB,GAAW,CACXjZ,UAAW,CACP,SAAU/P,EAAO+pB,mBACjB,UAAW/pB,EAAOgqB,sBAI9BtC,cAAe,CAAC,0BAA2B1nB,EAAO0nB,gBAE1D,I,WClCImmJ,EAAwB,CACxB7jK,MAAO,EACP0C,KAAM,EACNE,QAAS,EACTxC,OAAQ,EACRwc,OAAQ,OACRiO,aAAc,cCXPi5I,GAAsB,EAAAlqJ,EAAA,IFwCI,SAAU3jB,GAC3C,IAnCwB8tK,EACpBC,EAkCA9tJ,EAAOjgB,EAAMigB,KAEjBnhB,EAAKkB,EAAMguK,SAEXA,OAAkB,IAAPlvK,EAAgBkB,EAAMiY,GAAKnZ,EAAImvK,EAAUjuK,EAAMiuK,QAASxnK,EAAKzG,EAAMqtD,SAAUA,OAAkB,IAAP5mD,GAAwBA,EAAIC,EAAK1G,EAAMwI,SAAUA,OAAkB,IAAP9B,GAAwBA,EAAI3G,EAASC,EAAMD,OAAQ4G,EAAK3G,EAAM6pC,OAAQA,OAAgB,IAAPljC,GAAuBA,EAAI8X,EAAQze,EAAMye,MAAOjB,EAAUxd,EAAMwd,QAASqpF,EAAU7mG,EAAM6mG,QAASt/F,EAAUvH,EAAMuH,QAAS8hD,EAAerpD,EAAMqpD,aAAcE,EAAcvpD,EAAMupD,YAAaE,EAAezpD,EAAMypD,aAAcykH,EAAUluK,EAAMkuK,QAASjlK,EAAYjJ,EAAMiJ,UAAW2K,EAAS5T,EAAM4T,OAAQ9G,EAAQ9M,EAAM8M,MAAOq8B,EAAcnpC,EAAMmpC,YAClkBhnC,EAAa,EAAcpC,EAAQ,CACnCH,MAAOI,EAAMJ,MACb4I,SAAUA,EACV6kD,SAAUA,EACVxjB,OAAQA,EACRskI,SA7CoBL,EA6CCrvJ,EA5CrBsvJ,GAAe,EAAA/0H,EAAA,GAAmB80H,GACoD,YAAlFC,aAAmD,EAASA,EAAaz5H,MA4C7E1gC,OAAQA,EACR9G,MAAOA,EACPq8B,YAAaA,IAGbilI,EAAoB,SAAUC,GAC9B,IAAIvvK,EACAwvK,EAAensK,EAAW6tG,IAI9B,OAAQ,gBAAoB,MAAO,CAAE1tG,UAAWgsK,EAAc5sJ,KAAM,MAAO,aAAc2sJ,EAAYpkJ,MAAOimF,QAAS,YAAaN,KAAuD,QAAhD9wG,GAAK,EAAAk6C,EAAA,GAAmBq1H,EAAY5vJ,cAA2B,IAAP3f,OAAgB,EAASA,EAAGy1C,KAAO1K,EAAS,gBAAoB,SAAU,CAAE0kI,GAAI,MAAOC,GAAI,MAAOv6H,EAAG,QAAW,gBAAoB,OAAQ,CAAEnnC,MAAO,OAAQ8G,OAAQ,SAC1W,EAKI66J,EAAgBR,EACd,CACEvsJ,KAAM,QACN,eAAgB2rC,EAChBA,cAAU5pD,GAEZ,CACEie,KAAM,WACN2rC,SAAUA,GAElB,OAAQ,gBAAoB6/G,GAAgB,QAAS,CAAEjtJ,KAAMA,EAAMhI,GAAI,GAAGf,OAAO82J,EAAU,KAAK92J,OAAO+I,EAAKhI,GAAI,KAAKf,OAAO+I,EAAKU,OAAQP,IAAKH,EAAKhI,GAAIzP,SAAUA,GAAYimK,EAAe,CAExL7uJ,aAhBe,SAAUyyB,GACzB,IAAIvzC,EAAKkB,EAAM0uK,yBACf,YAD2E,IAAP5vK,EAAgBsvK,EAAoBtvK,GACxEuzC,EAAQ+7H,EAC5C,EAagC5wJ,QAASA,EAASqpF,QAASA,EAASt/F,QAASA,EAAS0iB,MAAOhK,EAAKgK,MAAO3nB,UAAWH,EAAWwsK,UAAWtwJ,cAAesvJ,EAAwChtJ,MAAOV,EAAKU,MAAO0oC,aAAcA,EAAcE,YAAaA,EAAaE,aAAcA,EAAcykH,QAASA,EAASjlK,UAAWA,IACvU,ICrEuB,SAAUjJ,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBhkB,EAAQI,EAAMJ,MAAO4I,EAAWxI,EAAMwI,SAAU6kD,EAAWrtD,EAAMqtD,SAAUxjB,EAAS7pC,EAAM6pC,OAAQskI,EAAUnuK,EAAMmuK,QAASh4I,EAAKn2B,EAAM4T,OAAQA,OAAgB,IAAPuiB,EAXvI,GAW2KA,EAAIC,EAAKp2B,EAAM8M,MAAOA,OAAe,IAAPspB,EAXzM,GAW6OA,EAAI+S,EAAcnpC,EAAMmpC,YACrRzqB,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QACvD+qJ,EAAsB/qJ,EAAQ4T,eAC9Bo3I,EAAsBhrJ,EAAQkS,aAC9B+4I,EAA6BjrJ,EAAQO,iBACrC2qJ,EAAsBlrJ,EAAQyD,gBAE9B0nJ,EAAwB7lI,IAEtBr8B,EAxBmB,GAEV,EADA,GA0Bf,MAAO,CAEH6hK,UAAW,EACP,QAAc/uK,EAAO,CAAEi1B,OAAQ,EAAGjP,SAAU,WAAYI,kBAAmB4nJ,IAC3E,CACI3oJ,gBAAiBvG,EAAe4rB,eAChCllB,QAAS,EACTQ,SAAU,WACVoP,UAAW,aACXvP,QAAS,eACTrJ,OAAQ,UACR6Y,WAAY,OACZH,aAAc,EACdnO,OAAQ,OACR/S,OAAQA,EACR9G,MAAOA,EACPwsB,cAAe,QAElBuQ,GAAU,CACP/5B,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,KAAyB,oBAAsB,CAEzDq3B,cAAe,GAAGr3B,OAAO83J,EAAwB,EAAG,OAExDlwK,IAGR+qC,GAAU,CACN/U,aAAc,MACdhlB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO,KAAyB,oBAAsB,CACzDnH,QAAS,OACT6W,YAAalI,EAAe0yB,YAC5Btc,aAAc,MACd/qB,MAAOilK,EACP7kK,OAAQ6kK,EACRviK,KAAMuiK,EACNriK,QAASqiK,EACTl/J,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBqJ,QAAS,wBAEbrJ,IAERD,IAER4mD,GAAY,CACRjoC,QAvEO,EAwEPuB,OAAQ,GAAGzP,OAAO83J,EAAuB,aAAa93J,OAAO23J,GAC7D/+J,WAAYnJ,EAAK,CAAC,EACdA,EAAG,mBAAqB,CACpB+b,QAAS,KACT9O,OAAQA,EACR9G,MAAOA,EACP8Y,SAAU,WACVnZ,KAAMuiK,EACNjlK,MAAOilK,EACPl6I,aAAc+U,EAAS,MAAQ,UAC/BZ,UAAW,mBAAmB/xB,OAAO43J,IAEzCnoK,KAEP0mD,GAAY,CACTv9C,WAAY8T,EAAK,CAAC,EACdA,EAAG,8BAAgC,CAC/BqB,gBAAiBvG,EAAe4rB,eAChCllB,QA1FD,EA2FCuB,OAAQ,GAAGzP,OAAO83J,EAAuB,aAAa93J,OAAO03J,IAEjEhrJ,EAAG,WAAa,CACZgD,YAAalI,EAAe4rB,eAC5BllB,QAAS,EACTtV,UAAW,CACP,SAAU,CACN8W,YAAahnB,EAAMikB,QAAQkS,aAC3B3Q,QAnGT,KAuGHxB,IAERpb,GAAY,CACRiW,MAAOC,EAAeuzB,iBACtBjZ,cAAe,OACfsI,QAAS,IAEb6sI,IACK9gH,GAAY,CAEbpoC,gBAAiB8pJ,EACjB3pJ,QAAS,IAIjB4qF,IAAK,CACD,CACIljG,MAAO,OACP8G,OAAQ,QAEZi2B,GAAU,CACN/U,aAAc,QAI9B,QCnI4ErxB,EAAW,CAAE0iB,MAAO,wBAAyB,G,iCCGrH,GAAgB,EAAA7H,EAAA,KAaT2wJ,EAAwB,cAAiB,SAAUjvK,EAAOgQ,GACjE,IAAIm9J,GAAY,EAAA92J,EAAA,GAAM,qBAClB4B,EAAKjY,EAAMiY,IAAMk1J,EACjBz7D,GAAgB,EAAAj8F,EAAA,GAAS,CACzBy5J,kBAAkB,EAClBC,aAAa,EACbC,6BAAyB3rK,EACzB4rK,oBAAqB,MAErBvwK,GAAK,EAAAgZ,EAAA,KAAiBK,EAAarZ,EAAGqZ,WAAYD,EAAepZ,EAAGoZ,aAEpEo3J,EAAatvK,EAAMsvK,WAAY7oK,EAAKzG,EAAMuvK,UAAWA,OAAmB,IAAP9oK,EAAgB,SAAWA,EAAI4lK,EAAcrsK,EAAMqsK,YAAa3lK,EAAK1G,EAAM+sK,4BAA6BA,OAAqC,IAAPrmK,GAAuBA,EAAIpE,EAAYtC,EAAMsC,UAAWqE,EAAK3G,EAAMwI,SAAUA,OAAkB,IAAP7B,GAAwBA,EAAI6lK,EAA8BxsK,EAAMwsK,4BAA6BzsK,EAASC,EAAMD,OAAQ6jB,EAAK5jB,EAAMwvK,WAAYA,OAAoB,IAAP5rJ,EAAgB,GAAKA,EAAI6rJ,EAAoBzvK,EAAMyvK,kBAAmBC,EAAe1vK,EAAM0vK,aAAcC,EAA2B3vK,EAAM2vK,yBAA0B75J,EAAW9V,EAAM8V,SAEhnB85J,EAAiB5vK,EAAM4vK,eAAgBC,EAAgB7vK,EAAM6vK,cAAeC,EAAgB9vK,EAAM8vK,cAAeC,EAAyB/vK,EAAM+vK,uBAAwBC,EAAahwK,EAAMgwK,WAAYC,EAAYjwK,EAAMiwK,UAAWC,EAAkBlwK,EAAMkwK,gBAAiBxB,EAA2B1uK,EAAM0uK,yBAI1SyB,EAAiB,WAAc,WAC/B,OAAOb,EAAWhvK,KAAI,SAAU2f,EAAMU,GAClC,OAAO,SAAS,QAAS,CAAC,EAAGV,GAAO,CAAEU,MAAOA,GACjD,GACJ,GAAG,CAAC2uJ,IACAc,EAAiB,eAAkB,SAAU/qK,EAAIgrK,GACjD,IAAIvxK,EAEAo2C,EAA4F,QAAhFp2C,EAAKwwK,EAAW/tI,QAAO,SAAU+uI,GAAK,OAAOA,EAAEr4J,KAAOo4J,CAAe,IAAG,UAAuB,IAAPvxK,OAAgB,EAASA,EAAG2f,MACpI3I,SAAoDA,EAASzQ,EAAIgrK,EAAen7H,GAChF06H,SAAgEA,EAAeS,EAAen7H,EAClG,GAAG,CAACp/B,EAAU85J,EAAgBN,IAC1Bn5I,GAAK,EAAAxgB,EAAA,GAAqB3V,EAAMuwK,WAAYd,EAAmBW,GAAiBG,EAAap6I,EAAG,GAAIq6I,EAAgBr6I,EAAG,GACvHh0B,EAAa,EAAcpC,EAAQ,CACnCH,MAAOI,EAAMJ,MACb0C,UAAWA,EACXktK,WAAYA,IAEZiB,EAAa,CACbtiK,KAAMhM,EAAWgM,KACjB2+J,UAAW3qK,EAAW2qK,UACtBE,iBAAkB7qK,EAAW6qK,kBAS7BV,EAAkBgD,EAAWlvK,QAAUisK,EAKvCqE,EAA0B,eAAkB,SAAUprK,GAClDwqK,IACAp+D,EAAcy9D,aAAc,EAC5BW,OAAcrsK,OAAWA,EAAW6B,GAE5C,GAAG,CAACosG,EAAeo+D,IAIfzmH,EAAe,eAAkB,SAAUhkD,GAC3C,OAAKqqK,GAGDh+D,EAAcw9D,mBAAqB1mK,GACnCnD,EAAGwyD,cAAc9vD,SAEd,IALK2pG,EAAcw9D,oBAAsB1mK,CAMpD,GAAG,CAACknK,EAAch+D,EAAelpG,IAI7B+gD,EAAc,eAAkB,SAAUlkD,GAC1C,IAAKqqK,EACD,OAAQh+D,EAAcw9D,oBAAsB1mK,EAEhD,IAAIqJ,EAAgBxM,EAAGwyD,cAKvB,OAHI65C,EAAcw9D,kBAAsBtxK,UAAYiU,IAAkBjU,SAASwL,eAC3EyI,EAAc9J,SAEX,CACX,GAAG,CAAC2nK,EAAch+D,EAAelpG,IAI7BihD,GAAe,eAAkB,SAAUpkD,GAC3C,IAAIsrK,EAAiBhB,EACrB,GAAKD,GAAiBiB,GAAmBj/D,EAAcw9D,mBAAoB1mK,EAM3E,IAFA,IAAIgnJ,EAAW5xJ,SAAS+wF,iBAAiBgiF,GAEhChwJ,EAAQ,EAAGA,EAAQ6uI,EAASpvJ,OAAQugB,GAAS,EAClD,GAAI6uI,EAAS7uI,GAAOnjB,SAAS6H,EAAGwyD,eAAgB,CAM5C,GAAI23F,EAAS7uI,GAAOo/C,UAChB,IACIyvF,EAAS7uI,GAAOo/C,WACpB,CACA,MAAOtL,GAEP,MAGA+6F,EAAS7uI,GAAO5Y,QAEpB,KACJ,CAER,GAAG,CAACS,EAAUknK,EAAch+D,EAAei+D,IAKvCiB,GAAoB,eAAkB,SAAU3wJ,EAAM3a,GAClDuqK,IACA5vJ,EAAO4vJ,EAAc5vJ,EAAKhI,GAAIgI,EAAKxB,MAAOnZ,GAASuqK,OAAcpsK,OAAWA,EAAW6B,GAE/F,GAAG,CAACuqK,IAIAgB,GAAoB,eAAkB,SAAU5wJ,EAAM3a,GACtD,GAAIwqK,EACA,OAAI7vJ,GACAyxF,EAAcy9D,aAAc,EACrBW,EAAc7vJ,EAAKhI,GAAIgI,EAAKxB,MAAOnZ,KAG1CosG,EAAcy9D,aAAc,EACrBW,OAAcrsK,OAAWA,EAAW6B,GAGvD,GAAG,CAACosG,EAAeo+D,IAIfgB,GAAc,eAAkB,SAAU7wJ,EAAM3a,GAC5CkD,GAAYyX,EAAKzX,UAGjByX,EAAKhI,KAAOs4J,IACRT,GAAiBp+D,EAAcy9D,cAC/Bz9D,EAAcy9D,aAAc,EAC5BW,OAAcrsK,OAAWA,EAAW6B,IAExCkrK,EAAcvwJ,EAAKhI,GAAI3S,GAE/B,GAAG,CAACkD,EAAUkpG,EAAeo+D,EAAeS,EAAYC,IAKpDO,GAAuB,eAAkB,WACpCr/D,EAAcw9D,uBAA8DzrK,IAA1CiuG,EAAc09D,wBAKjD19D,EAAcw9D,kBAAmB,GAJjCh3J,EAAaw5F,EAAc09D,yBAC3B19D,EAAc09D,6BAA0B3rK,GAK5CiuG,EAAc09D,wBAA0Bj3J,GAAW,WAC/Cu5F,EAAcw9D,kBAAmB,CACrC,GAAGx9D,EAAc29D,oBACrB,GAAG,CAACn3J,EAAcw5F,EAAev5F,IAI7BlP,GAAY,eAAkB,SAAU5D,GAGxCA,EAAGqE,QAAUC,EAAA,EAASU,IAElBhF,EAAGqE,QAAUC,EAAA,EAASa,MAEtBnF,EAAGqE,QAAUC,EAAA,EAASI,MAEtB1E,EAAGqE,QAAUC,EAAA,EAASQ,OACtB4mK,IAER,GAAG,CAACA,KAMAC,GAAe,SAAU/wJ,GACzB,OAAQ,gBAAoB4tJ,EAAqB,CAAE5tJ,KAAMA,EAAM+tJ,SAAU/1J,EAAIwG,MAAOwB,EAAKxB,MAAO1e,OAAQgwK,EAAwBvnK,SAAUA,GAAYyX,EAAKzX,SAAUgV,QAASszJ,GAAajqE,QAAS+pE,GAAmBrpK,QAASspK,GAAmBxjH,SAAUkjH,IAAetwJ,EAAKhI,GAAI4xB,OAAsB,WAAd0lI,EAAwBtlJ,MAAOhK,EAAKgK,MAAOo/B,aAAcA,EAAcE,YAAaA,EAAaE,aAAcA,GAAcykH,QAAS6C,GAAsB9nK,UAAWA,GAAWylK,yBAA0BA,EAA0B96J,OAAQo8J,EAAYljK,MAAOmjK,EAAW9mI,YAAa+mI,EAAiBjC,QAAS3B,GACplB,EACA,OAAIgD,EAAWlvK,OAAS,GAAKisK,EAAc,EAChC,KAMH,gBAAoBY,GAAY,QAAS,CAAC,EAAGjtK,EAAO,CAAEgQ,IAAKA,EAAKiI,GAAIA,EAAI2J,MAAOuuJ,EAAgB9D,YAAaA,EAAaC,gBAAiBA,EAE9I1sJ,aANe,SAAUK,EAAMU,GAC/B,IAAI7hB,EAAKkB,EAAMixK,kBACf,YAD6D,IAAPnyK,EAAgBkyK,GAAelyK,GAC5DmhB,EAAM+wJ,GACnC,EAGgCjE,4BAA6BA,EAA6BP,4BAA6BA,EAA6Bz8H,OAAQ2gI,EAAyB9wK,MAAOI,EAAMJ,MAAOG,OAAQ0wK,IACrN,IACAxB,EAAsB9vK,YA3ND,oBCNrB,IAAIikB,EAAmB,CACnB4pJ,iBAAkB,qCCCXkE,GAAoB,EAAAvtJ,EAAA,GAAOsrJ,GDCf,SAAUjvK,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAE/C,MAAO,CACHuO,KAAM,CACFqX,OAAQ,QACR0vD,eAAgB,YAEpB43F,UAAW,CACP1nJ,QAR2DplB,EAAMwvK,WAQ3C,GAE1BxC,iBAAkB,EATL,QAAoB5pJ,EAAkBxjB,GAUpCotK,iBACX,CACIvvJ,MAAO,OACPgI,QAAS,QACT+R,SAAU,SAEdl1B,GAGZ,QCtBwEmB,EAAW,CAAE0iB,MAAO,qB,4MCMxF9H,GAAgB,EAAAC,EAAA,KAMT6yJ,EAA4B,cAAiB,SAAUnxK,EAAO6jC,GACrE,IAAI/kC,EAAI2H,EAgCJ2qK,EACAC,EACAC,EACAC,EACAl0B,EAnCAsd,EAAiB,SAAa,MAC9B6W,GAAc,UACdzvH,GAAgB,EAAAvrC,EAAA,GAAcmkJ,EAAgB92H,GAC9CswE,GAAoB,EAAA99F,EAAA,GAAM,4BAC1Bq+F,GAAmB,EAAAr+F,EAAA,GAAM,0BACzB9G,EAAmD,QAAhCzQ,EAAKkB,EAAMuP,uBAAoC,IAAPzQ,EAAgBA,EAAKq1G,EAChF3kG,EAAiD,QAA/B/I,EAAKzG,EAAMwP,sBAAmC,IAAP/I,EAAgBA,EAAKiuG,EAC9E+8D,EAAoBzxK,EAAMyxK,kBAAmBC,EAAqB1xK,EAAM0xK,mBAAoBC,EAAuB3xK,EAAM2xK,qBAAsBC,EAAW5xK,EAAM4xK,SAAUC,EAAuB7xK,EAAM6xK,qBAE3MnrK,EAAK1G,EAAMogH,eAEXA,OAAwB,IAAP15G,EAAgB1G,EAAM8xK,aAAeprK,EAAI8nB,EAAYxuB,EAAMwuB,UAAW03C,EAAuBlmE,EAAMkmE,qBAAsB6rG,EAAmB/xK,EAAM+xK,iBAAkBC,EAAShyK,EAAMgyK,OAAQjyK,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAOqyK,EAAsBjyK,EAAMuxK,cAAexxD,EAAqB//G,EAAM+/G,mBAC1T59G,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACPiyK,qBAAsBA,EACtBE,iBAAkBA,EAClB3xD,eAAgBA,EAChB8xD,cAAeN,EACfI,OAAQA,EACRG,uBAAwBT,EAAqBA,EAAmBpvK,eAAYmB,EAC5E2uK,yBAA0BT,EAAuBA,EAAqBrvK,eAAYmB,IAElFwF,EAAY,eAAkB,SAAU5D,GACpCmpB,GAEInpB,EAAGqE,QAAUC,EAAA,EAAS4gD,QACtB/7B,EAAUnpB,EAGtB,GAAG,CAACmpB,IAWJ,IAVA,EAAApX,EAAA,GAAWo6J,EAAa,UAAWvoK,GAM/BwoK,GAAqBA,EAAkBjiI,MACvC4hI,EAAgB,gBAAoB,MAAO,CAAE9uK,UAAWH,EAAWivK,cAC/D,gBAAoBhmJ,EAAA,GAAO,QAAS,CAAC,EAAGqmJ,MAE5CG,EAAU,CACV,IAAIS,EAAsC,iBAAbT,EAAwB,IAAM,MAC3DP,EAAiB,gBAAoB,MAAO,CAAE/uK,UAAWH,EAAWi/C,QAChE,gBAAoBixH,EAAiB,CAAE3wJ,KAAM,UAAW,aAAc,EAAGpf,UAAWH,EAAWyvK,SAAU35J,GAAIzI,GAAkBoiK,GACvI,CACA,GAAI5xK,EAAMoB,SAAU,CAChB,IAAIkxK,EAAiD,iBAAnBtyK,EAAMoB,SAAwB,IAAM,MACtEkwK,EAAe,gBAAoB,MAAO,CAAEhvK,UAAWH,EAAWtE,MAC9D,gBAAoBy0K,EAAsB,CAAEhwK,UAAWH,EAAWmyG,QAASr8F,GAAI1I,GAAmBvP,EAAMoB,UAChH,CAYA,OAXIswK,GAAsBC,GAAwBM,KAC9CV,EAAiB,gBAAoBtI,EAAA,EAAO,CAAE3mK,UAAWH,EAAW27I,OAAQxzI,YAAY,EAAMg/J,gBAAiB2I,EAAsB,gBAAkB,OACnJ,gBAAoBhJ,EAAA,EAAMD,KAAM,CAAEqB,MAAO,UAAY,gBAAoB,OAAQ,KAAM4H,IACvF,gBAAoBhJ,EAAA,EAAMD,KAAM,KAC5B0I,GAAsB,gBAAoB34I,EAAA,GAAe,QAAS,CAAC,EAAG24I,EAAoB,CAAEpvK,UAAWH,EAAWowK,iBAClHZ,GAAwB,gBAAoB/4I,EAAA,GAAe,QAAS,CAAC,EAAG+4I,EAAsB,CAAErvK,UAAWH,EAAWqwK,sBAE9HpyD,IACAi9B,EAAe,gBAAoB97H,EAAA,EAAY,CAAEjf,UAAWH,EAAWk7I,YAAaj8H,UAAW,CAAED,SAAU,UAAY3B,UAAW0mD,EAAsB1oD,QAASgR,KAjEnJ,SAAU1M,EAAc64I,GAC1C,sBAA0B74I,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WAAc,IAAIjJ,EAAI,OAAyC,QAAjCA,EAAK67J,EAAe9yJ,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,OAAS,EACnH,GAAG,CAAC4yJ,GACZ,CA+DI3uH,CAAgBhsC,EAAM8hB,aAAc64I,GAC5B,gBAAoB,MAAO,CAAEr4J,UAAWH,EAAWugB,QAAS1S,IAAK+xC,EAAergC,KAAM,SAAU/P,UAAW,EAAG,kBAAmBnC,EAAgB,mBAAoBD,EAAiB,qBAAqB,GAC/M6hK,EACA,gBAAoB7sF,EAAA,GAAe,QAAS,CAAEC,6BAA6B,GAAQu7B,GAC/E,gBAAoB,MAAO,CAAEz9G,UAAWH,EAAWmvK,aAC/CD,EACAC,EACAC,EACAl0B,IAChB,I,sBCnFI5tC,EAAmB,CACnBthG,KAAM,oBACNtQ,KAAM,yBACNyzK,YAAa,gCACbj0B,YAAa,gCACb36H,QAAS,4BACTo7H,OAAQ,2BACR18F,OAAQ,2BACRqxH,kBAAmB,sCACnBC,cAAe,kCACfC,cAAe,kCACff,SAAU,6BACVzmJ,MAAO,0BACPonJ,cAAe,kCACfC,gBAAiB,oCACjBl+D,QAAS,4BAGTztB,OAAQ,YACR+rF,YAAa,mBAEbC,GAAgB,EAAAxnJ,EAAA,KAAgB,WAChC,OAAO,QAAU,CACb,KAAM,CACFiW,QAAS,EACT4wE,wBAAyB,KAAmB2wD,cAC5Cv5H,UAAW,wBAEf,OAAQ,CACJhI,QAAS,EACTgI,UAAW,mBAGvB,IACIwpI,EAAY,SAAUd,EAAQprH,GAC9B,IAAI9nD,EAAK8nD,GAAgB,CAAC,EAAG7iB,EAAejlC,EAAGilC,aAAcC,EAAkBllC,EAAGklC,gBAClF,MAAO,CACH,CACIve,QAAS,QACT2S,SAAU,IACVzR,OAAQ,EACR5W,QAAS,cACTjD,MAAOi3B,GAAgB,mBACvB+wC,cAAe,GAAG59D,OAAO27J,KACzB5gE,kBAAmB,QACnBC,wBAAyB,SACzB6gE,kBAAmB,QAEvBf,GAAU,CACN55I,SAAU4L,GAAmB,KAGzC,EACIgvI,EAAc,SAAU7wK,EAAY0vK,EAAsBE,GAC1D,OAAIF,EACO,CACH1vK,EAAWswK,kBACX,CACI/4I,aAAc,KAInB,CACHq4I,GAAoB5vK,EAAWuwK,eAC9BX,GAAoB5vK,EAAWwwK,cAChC,CACI7iK,UAAW,CACP,oBAAqB,CACjB4pB,aAAc,MAKlC,EACWnT,EAAY,SAAUvmB,GAC7B,IAAIlB,EAAI2H,EAAIC,EACRmrK,EAAuB7xK,EAAM6xK,qBAAsBE,EAAmB/xK,EAAM+xK,iBAAkB3xD,EAAiBpgH,EAAMogH,eAAgB8xD,EAAclyK,EAAMkyK,YAAaF,EAAShyK,EAAMgyK,OAAQG,EAAyBnyK,EAAMmyK,uBAAwBC,EAA2BpyK,EAAMoyK,yBAA0BxyK,EAAQI,EAAMJ,MAAO+G,EAAK3G,EAAM4mD,aAAcA,OAAsB,IAAPjgD,EAAgB,CAAErE,eAAWmB,EAAW7D,MAAOA,GAAU+G,EACrassK,GAAoBpB,IAAyBE,EAC7CluJ,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBstG,EAAkB7vG,GACnDszK,GAAuB,QAActzK,EAAO,CAC5Cg1B,aAAc,cACdhO,YAAa,gBAEjB,MAAO,CACHzY,KAAM,CAAChM,EAAWgM,KAAM2V,EAAMyB,OAAQqhC,EAAatkD,WACnDzE,KAAM,CACFsE,EAAWtE,KACXuiH,IAAmB8xD,GAAe,CAAEz4I,YAAa,IACjD,CACI3pB,UAAW,CACP,oBAAqB,CACjB4pB,aAAc,OAK9B43I,YAAa,CACTnvK,EAAWmvK,YACX,CACIlsJ,QAAS,wBAGjBi4H,YAAa,CACTl7I,EAAWk7I,YACX,CACIz3H,SAAU,WACVzb,MAAO,EACPsC,IAAK,EACL+Y,OAAQ,gBACRsP,aAAc,EACdrW,MAAOoF,EAAQiS,MACfxQ,SAAUxB,EAAMiC,MAAMT,SACtBxV,UAAW,CACP,SAAU,CACNu6B,WAAYxmB,EAAQ+D,aACpBnJ,MAAOoF,EAAQiS,OAEnB,UAAW,CACPuU,WAAYxmB,EAAQ6T,UACpBjZ,MAAOoF,EAAQiS,OAEnB,SAAU,CACNnP,OAAQ,aAAazP,OAAOwH,EAAeuiI,mBAK3Dv+H,SAAS,SAAc,QAAc,CACjCvgB,EAAWugB,SACZowJ,EAAUd,IAAS,GAAO,CACzBA,GAAU,CACNvsJ,QAAS,UAEd,GACHq4H,OAAQ,CACJ37I,EAAW27I,OACX,CACIr4H,QAAS,OACTsmE,KAAM,OACNrmE,WAAY,SACZjH,MAAOoF,EAAQiS,MACfhmB,WAAYhR,EAAK,CAAC,EAEdA,EAAG,IAAIoY,OAAO/U,EAAW0kF,OAAQ,uBAAyB,CACtDttD,WAAY,IAEhBz6B,KAGZsiD,QAAQ,SAAc,QAAc,CAChCj/C,EAAWi/C,QACZ4xH,EAAY7wK,EAAY0vK,EAAsBE,IAAmB,GAAO,CACvE3xD,GAAkB,CAAE3mF,YAAa,KAChCo4I,GAAwBE,IAAqB,CAC1CjuJ,EAAMyB,OACN,CACIR,WAAY,KAAYJ,aAGjC,GACHitJ,SAAU,CACNzvK,EAAWyvK,SACX,CACIpsJ,OAAQ,EACR/G,MAAOoF,EAAQiS,MACf/Q,WAAY,KAAYJ,SACxB45B,aAAc,cAElB00H,GAAoB,CAChB,CACI3tJ,SAAUxB,EAAMyzF,OAAOjyF,YAInC8rJ,aAAc,CACVjvK,EAAWi/C,OACXj/C,EAAWgpB,MACX6mJ,GAAU,CACNvsJ,QAAS,OACTC,WAAY,SACZ0S,SAAU,MAGlBm6I,cAAe,CACXpwK,EAAWowK,cACXJ,EACAe,EACA,CACIjuJ,gBAAiBpB,EAAQiS,MACzBlP,YAAa/C,EAAQiS,MACrBrX,MAAOoF,EAAQiD,aACfxD,WAAY,SACZxT,WAAYrJ,EAAK,CAAC,EAEdA,EAAG,IAAIyQ,OAAO/U,EAAWywK,cAAgB9uJ,EAAMyB,OAC/C9e,EAAG,UAAY,CACXwe,gBAAiBpB,EAAQsvJ,aACzBvsJ,YAAa/C,EAAQsvJ,aACrB10J,MAAOoF,EAAQ6T,WAEnBjxB,EAAG,UAAY,CACXwe,gBAAiBpB,EAAQsvJ,aACzBxsJ,OAAQ,aAAazP,OAAO2M,EAAQoD,OACpCxI,MAAOoF,EAAQ6T,UACf3nB,QAAS,aAAamH,OAAO2M,EAAQiS,OACrCyY,cAAe,QAEnB9nC,EAAG,WAAa,CACZwe,gBAAiBpB,EAAQiS,MACzBlP,YAAa/C,EAAQiS,MACrBrX,MAAOoF,EAAQiD,cAEnBrgB,KAGZ+rK,gBAAiB,CACbrwK,EAAWqwK,gBACXJ,EACAc,EACA,CACIjuJ,gBAAiBpB,EAAQiD,aACzBF,YAAa/C,EAAQiS,MACrBxS,WAAY,SACZxT,WAAYpJ,EAAK,CAAC,EAEdA,EAAG,IAAIwQ,OAAO/U,EAAWywK,cAAgB,CACrC9uJ,EAAMyB,OACN,CACI9G,MAAOoF,EAAQiS,QAGvBpvB,EAAG,UAAY,CACXue,gBAAiBpB,EAAQ+D,aACzBhB,YAAa/C,EAAQiS,OAEzBpvB,EAAG,UAAY,CACXue,gBAAiBpB,EAAQ6T,UACzB/Q,OAAQ,aAAazP,OAAO2M,EAAQoD,OACpClX,QAAS,aAAamH,OAAO2M,EAAQiS,OACrCyY,cAAe,QAEnB7nC,EAAG,WAAa,CACZue,gBAAiBpB,EAAQiD,aACzBF,YAAa/C,EAAQiS,OAEzBpvB,KAGZ4tG,QAAS,CACLnyG,EAAWmyG,QACX,CACI9uF,OAAQ,EACRF,SAAUxB,EAAMyB,OAAOD,SACvB7G,MAAOoF,EAAQiS,MACf/Q,WAAY,KAAYT,UAGhCy8C,mBAAoB,CAChBlhC,QAAS,CACL1xB,MAAM,SAAc,QAAc,GAAI2kK,EAAUd,EAAQprH,IAAe,GAAO,CAAC9iC,EAAMyB,SAAS,GAC9FyiB,KAAM,CACF,CACIqC,WAAYxmB,EAAQiD,eAG5BshB,YAAa,CACT,CACIiC,WAAYxmB,EAAQiD,iBAM5C,EClRWssJ,GAAwB,EAAAzvJ,EAAA,GAAOwtJ,EAA2B5qJ,OAAW9iB,EAAW,CAAE0iB,MAAO,0B,WCKhGktJ,EAAsB,CACtBvzI,UAAW,GACXf,SAAU,EACVwI,iBAAiB,EACjB5U,YAAY,EACZ9Q,gB,SAAiB,EAAgB9H,aAEjC,GAAgB,EAAAuE,EAAA,KAMTg1J,EAAqB,cAAiB,SAAUtzK,EAAO6jC,GAC9D,IAAI82H,EAAiB,SAAa,MAC9B54G,GAAgB,EAAAvrC,EAAA,GAAcmkJ,EAAgB92H,GAC9C0vI,EAAkBvzK,EAAM4mD,aAE5B/0C,EAAgB7R,EAAM6R,cAAe2c,EAAYxuB,EAAMwuB,UAEvD1vB,EAAKkB,EAAMogH,eAEXA,OAAwB,IAAPthH,EAAgBkB,EAAM8xK,aAAehzK,EAAIkzK,EAAShyK,EAAMgyK,OAAQjyK,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAOxB,EAAS4B,EAAM5B,OACxIwoD,EAAe,WAAc,WAAc,OAAQ,SAAS,SAAS,QAAS,CAAC,EAAGysH,GAAsBE,GAAkB,CAAE3zK,MAAOA,GAAW,GAAG,CAAC2zK,EAAiB3zK,IAOnKuC,EAAa,EAAcpC,EANb,CACdH,MAAOA,EACPoyK,OAAQA,EACRprH,aAAcA,EACdw5D,eAAgBA,IAGhBozD,EAAgBrxK,EAAW4+D,mBACzB5+D,EAAW4+D,mBAAmBlhC,aAC9Bp8B,EAEN,OA3BkB,SAAUqe,EAAc64I,GAC1C,sBAA0B74I,GAAc,WAAc,MAAO,CACzD/Z,MAAO,WAAc,IAAIjJ,EAAI,OAAyC,QAAjCA,EAAK67J,EAAe9yJ,eAA4B,IAAP/I,OAAgB,EAASA,EAAGiJ,OAAS,EACnH,GAAG,CAAC4yJ,GACZ,CAsBI,CAAgB36J,EAAM8hB,aAAc64I,GAC5B,gBAAoBnxH,EAAA,GAAS,QAAS,CAAEprC,OAAQA,GAAUyT,EAAe2c,UAAWA,GAAao4B,EAAc,CAAEtkD,UAAWH,EAAWgM,KAAMpO,OAAQyzK,EAAetvI,cAAc,IACtL,gBAAoB,MAAO,CAAEl0B,IAAK+xC,GAC9B,gBAAoBqxH,GAAuB,QAAS,CAAC,EAAGpzK,KACpE,IACAszK,EAAmBn0K,YAxCE,iBCJd,IAAIs0K,GAAiB,EAAA9vJ,EAAA,GAAO2vJ,EAAoB/sJ,OAAW9iB,EAAW,CAAE0iB,MAAO,kB,mFCH3EutJ,EAA4B,CACnC,EAAK,QACLj/H,EAAG,WACH,IAAK,eAgBF,SAASk/H,EAAUC,EAAMC,GAE5B,QADoB,IAAhBA,IAA0BA,EAAcH,IACvCE,EACD,MAAO,GAKX,IAHA,IAAIE,EAAe,GAEfC,EAAe,EACVvvK,EAAI,EAAGA,EAAIuvK,EAAeH,EAAKxzK,OAAQoE,IAAK,CACjD,IAAIwvK,EAAWJ,EAAKK,OAAOzvK,EAAIuvK,GAC/B,GAAiB,OAAbC,EACAD,QAEC,CAED,IAAIG,EAAaL,EAAYG,GACzBE,GACAJ,EAAazxK,KAAK,CAOd8xK,aAAc3vK,EACd4vK,OAAQF,GAGpB,CACJ,CACA,OAAOJ,CACX,CAqBO,SAASO,EAAeT,EAAME,EAAcE,GAC/C,IAAIM,EAAcV,EAClB,IAAKU,EACD,MAAO,GAGXA,EAAcA,EAAY5+H,QAAQ,MAAO,IAEzC,IAAI6+H,EAAmB,EACnBT,EAAa1zK,OAAS,IACtBm0K,EAAmBT,EAAa,GAAGK,aAAe,GAMtD,IAAK,IAAIj0K,EAAK,EAAGs0K,EAAiBV,EAAc5zK,EAAKs0K,EAAep0K,OAAQF,IAAM,CAC9E,IAAIu0K,EAAWD,EAAet0K,GAC1Bw0K,EAAW,IACXD,EAASpgK,OACTqgK,EAAWD,EAASpgK,MAChBogK,EAASN,aAAeI,IACxBA,EAAmBE,EAASN,eAI5BH,IACAU,EAAWV,GAInBM,EAAcA,EAAYr9J,MAAM,EAAGw9J,EAASN,cAAgBO,EAAWJ,EAAYr9J,MAAMw9J,EAASN,aAAe,EACrH,CAKA,OAHKH,IACDM,EAAcA,EAAYr9J,MAAM,EAAGs9J,EAAmB,IAEnDD,CACX,CAOO,SAASK,EAAoBb,EAAcnzJ,GAC9C,IAAK,IAAInc,EAAI,EAAGA,EAAIsvK,EAAa1zK,OAAQoE,IACrC,GAAIsvK,EAAatvK,GAAG2vK,cAAgBxzJ,EAChC,OAAOmzJ,EAAatvK,GAAG2vK,aAG/B,OAAOL,EAAaA,EAAa1zK,OAAS,GAAG+zK,YACjD,CAsBO,SAASS,EAAWd,EAAc7/J,EAAgB4gK,GACrD,IAAK,IAAIrwK,EAAI,EAAGA,EAAIsvK,EAAa1zK,OAAQoE,IACrC,GAAIsvK,EAAatvK,GAAG2vK,cAAgBlgK,EAAgB,CAChD,GAAI6/J,EAAatvK,GAAG2vK,cAAgBlgK,EAAiB4gK,EACjD,MAEJf,EAAatvK,GAAG6P,WAAQ5Q,CAC5B,CAEJ,OAAOqwK,CACX,CAwCO,SAASgB,EAAahB,EAAc7/J,EAAgB8gK,GAKvD,IAJA,IAAIC,EAAc,EACdC,EAAY,EACZC,GAAmB,EAEd1wK,EAAI,EAAGA,EAAIsvK,EAAa1zK,QAAU40K,EAAcD,EAAU30K,OAAQoE,IACvE,GAAIsvK,EAAatvK,GAAG2vK,cAAgBlgK,EAIhC,IAHAihK,GAAmB,EACnBD,EAAYnB,EAAatvK,GAAG2vK,aAErBa,EAAcD,EAAU30K,QAAQ,CAEnC,GAAI0zK,EAAatvK,GAAG4vK,OAAO13H,KAAKq4H,EAAUd,OAAOe,IAAe,CAC5DlB,EAAatvK,GAAG6P,MAAQ0gK,EAAUd,OAAOe,KAErCxwK,EAAI,EAAIsvK,EAAa1zK,OACrB60K,EAAYnB,EAAatvK,EAAI,GAAG2vK,aAGhCc,IAEJ,KACJ,CACAD,GACJ,CAGR,OAAOE,EAAmBD,EAAYhhK,CAC1C,C,0BCjLWkhK,EAAkB,cAAiB,SAAUn1K,EAAOgQ,GAC3D,IAAI2xE,EAAY,SAAa,MACzB7/D,EAAe9hB,EAAM8hB,aAAcva,EAAUvH,EAAMuH,QAASwoC,EAAS/vC,EAAM+vC,OAAQjgB,EAAc9vB,EAAM8vB,YAAaD,EAAY7vB,EAAM6vB,UAAW/Z,EAAW9V,EAAM8V,SAAUs/J,EAAUp1K,EAAMo1K,QAASnsK,EAAYjJ,EAAMiJ,UAAW2qK,EAAO5zK,EAAM4zK,KAAM90K,EAAKkB,EAAMg0K,SAAUA,OAAkB,IAAPl1K,EAH9P,IAGkSA,EAAI2H,EAAKzG,EAAMk0K,WAAYA,OAAoB,IAAPztK,EAAgBitK,EAA4BjtK,EAAI4N,EAAQrU,EAAMqU,MAC/Zq9F,GAAgB,EAAAj8F,EAAA,IAAS,WAAc,MAAO,CAC9Cq+J,aAAcH,EAAUC,EAAMM,GAC9BpP,WAAW,EACXuQ,qBAAqB,EACrBC,oBAAqB,KACrB,IAEA5uK,EAAK,aAAkB6uK,EAAqB7uK,EAAG,GAAI8uK,EAAwB9uK,EAAG,GAO9EC,EAAK,YAAe,WACpB,OAAO0tK,EAAeT,EAAMliE,EAAcoiE,aAAcE,EAC5D,IAAIl2J,EAAenX,EAAG,GAAI8uK,EAAkB9uK,EAAG,GAC3CyO,EAAW,eAAkB,SAAUgB,GAGvC,IAFA,IAAIs/J,EAAa,EACbC,EAAgB,EACbD,EAAat/J,EAAShW,QAAUu1K,EAAgBjkE,EAAcoiE,aAAa1zK,QAAQ,CAEtF,IAAIw1K,EAAUx/J,EAASs/J,GACnBhkE,EAAcoiE,aAAa6B,GAAevB,OAAO13H,KAAKk5H,KACtDlkE,EAAcoiE,aAAa6B,GAAethK,MAAQuhK,EAClDD,KAEJD,GACJ,CACJ,GAAG,CAAChkE,IACAg8D,EAAc,eAAkB,SAAUroK,GAC1CkC,SAAkDA,EAAQlC,GAC1DqsG,EAAcozD,WAAY,EAE1B,IAAK,IAAItgK,EAAI,EAAGA,EAAIktG,EAAcoiE,aAAa1zK,OAAQoE,IACnD,IAAKktG,EAAcoiE,aAAatvK,GAAG6P,MAAO,CACtCmhK,EAAsB9jE,EAAcoiE,aAAatvK,GAAG2vK,cACpD,KACJ,CAER,GAAG,CAACziE,EAAenqG,IACfsuK,EAAa,eAAkB,SAAUxwK,GACzC0qC,SAAgDA,EAAO1qC,GACvDqsG,EAAcozD,WAAY,EAC1BpzD,EAAc2jE,qBAAsB,CACxC,GAAG,CAAC3jE,EAAe3hE,IACf+lI,EAAkB,eAAkB,SAAUzwK,GAC9CyqB,SAA0DA,EAAYzqB,GACjEqsG,EAAcozD,YACfpzD,EAAc2jE,qBAAsB,EAE5C,GAAG,CAAC3jE,EAAe5hF,IACfimJ,EAAgB,eAAkB,SAAU1wK,GAG5C,GAFAwqB,SAAsDA,EAAUxqB,GAE5DqsG,EAAc2jE,oBAAqB,CACnC3jE,EAAc2jE,qBAAsB,EAEpC,IAAK,IAAI7wK,EAAI,EAAGA,EAAIktG,EAAcoiE,aAAa1zK,OAAQoE,IACnD,IAAKktG,EAAcoiE,aAAatvK,GAAG6P,MAAO,CACtCmhK,EAAsB9jE,EAAcoiE,aAAatvK,GAAG2vK,cACpD,KACJ,CAER,CACJ,GAAG,CAACziE,EAAe7hF,IACfmmJ,EAAoB,eAAkB,SAAU3wK,EAAI+O,GAQpD,GAP0C,OAAtCs9F,EAAc4jE,qBAAgC3zF,EAAU95E,UACxD6pG,EAAc4jE,oBAAsB,CAChCW,WAAY,UACZhiK,eAAqD,OAArC0tE,EAAU95E,QAAQoM,eAA0B0tE,EAAU95E,QAAQoM,gBAAkB,EAChGE,aAAiD,OAAnCwtE,EAAU95E,QAAQsM,aAAwBwtE,EAAU95E,QAAQsM,cAAgB,IAG7Fu9F,EAAc4jE,oBAAnB,CAIA,IAAIY,EAAY,EACZp3K,EAAK4yG,EAAc4jE,oBAAqBW,EAAan3K,EAAGm3K,WAAYhiK,EAAiBnV,EAAGmV,eAAgBE,EAAerV,EAAGqV,aAC9H,GAAmB,eAAf8hK,EAA6B,CAC7B,IAAIE,EAAgBhiK,EAAeF,EAC/BmiK,EAAYhiK,EAAWhU,OAAS+1K,EAAgBr4J,EAAa1d,OAC7Di2K,EAAWpiK,EAEXqiK,EAAeliK,EAAWqoC,OAAO45H,EAAUD,GAE3CD,IACAzkE,EAAcoiE,aAAec,EAAWljE,EAAcoiE,aAAc7/J,EAAgBkiK,IAExFD,EAAYpB,EAAapjE,EAAcoiE,aAAcuC,EAAUC,EACnE,MACK,GAAmB,WAAfL,GAA0C,cAAfA,EAA4B,CAE5D,IAAIM,EAAuB,WAAfN,GACRG,EAAYjiK,EAAeF,IAG3By9F,EAAcoiE,aAAec,EAAWljE,EAAcoiE,aAAc7/J,EAAgBmiK,GACpFF,EAAYvB,EAAoBjjE,EAAcoiE,aAAc7/J,IAIxDsiK,GACA7kE,EAAcoiE,aDS3B,SAAmBA,EAAc7/J,GACpC,IAAK,IAAIzP,EAAI,EAAGA,EAAIsvK,EAAa1zK,OAAQoE,IACrC,GAAIsvK,EAAatvK,GAAG2vK,cAAgBlgK,EAAgB,CAChD6/J,EAAatvK,GAAG6P,WAAQ5Q,EACxB,KACJ,CAEJ,OAAOqwK,CACX,CCjBiD0C,CAAU9kE,EAAcoiE,aAAc7/J,GACnEiiK,EAAYvB,EAAoBjjE,EAAcoiE,aAAc7/J,KAG5Dy9F,EAAcoiE,aDoB3B,SAAmBA,EAAc7/J,GACpC,IAAK,IAAIzP,EAAIsvK,EAAa1zK,OAAS,EAAGoE,GAAK,EAAGA,IAC1C,GAAIsvK,EAAatvK,GAAG2vK,aAAelgK,EAAgB,CAC/C6/J,EAAatvK,GAAG6P,WAAQ5Q,EACxB,KACJ,CAEJ,OAAOqwK,CACX,CC5BiD2C,CAAU/kE,EAAcoiE,aAAc7/J,GACnEiiK,ED5Bb,SAA4BpC,EAAcnzJ,GAC7C,IAAK,IAAInc,EAAIsvK,EAAa1zK,OAAS,EAAGoE,GAAK,EAAGA,IAC1C,GAAIsvK,EAAatvK,GAAG2vK,aAAexzJ,EAC/B,OAAOmzJ,EAAatvK,GAAG2vK,aAG/B,OAAOL,EAAa,GAAGK,YAC3B,CCqBgCuC,CAAmBhlE,EAAcoiE,aAAc7/J,GAGvE,MACK,GAAIG,EAAWhU,OAAS0d,EAAa1d,OAAQ,CAG1Ci2K,EAAWliK,GADXiiK,EAAYhiK,EAAWhU,OAAS0d,EAAa1d,QAAjD,IAGIu2K,EAAgBviK,EAAWqoC,OAAO45H,EAAUD,GAChDF,EAAYpB,EAAapjE,EAAcoiE,aAAcuC,EAAUM,EACnE,MACK,GAAIviK,EAAWhU,QAAU0d,EAAa1d,OAAQ,CAK3Cg2K,EAAY,EAAhB,IACIQ,EAAc94J,EAAa1d,OAASg2K,EAAYhiK,EAAWhU,OAC3Di2K,EAAWliK,EAAeiiK,EAE1BO,EAAgBviK,EAAWqoC,OAAO45H,EAAUD,GAEhD1kE,EAAcoiE,aAAec,EAAWljE,EAAcoiE,aAAcuC,EAAUO,GAE9EV,EAAYpB,EAAapjE,EAAcoiE,aAAcuC,EAAUM,EACnE,CACAjlE,EAAc4jE,oBAAsB,KACpC,IAAIl/J,EAAWi+J,EAAeT,EAAMliE,EAAcoiE,aAAcE,GAChEyB,EAAgBr/J,GAChBo/J,EAAsBU,GAEtBpgK,SAAoDA,EAASzQ,EAAI+Q,EAjEjE,CAkEJ,GAAG,CAAC0H,EAAa1d,OAAQsxG,EAAekiE,EAAMI,EAAUl+J,IACpD4/H,EAAgB,eAAkB,SAAUrwI,GAG5C,GAFA4D,SAAsDA,EAAU5D,GAChEqsG,EAAc4jE,oBAAsB,KAChC3zF,EAAU95E,SAAW85E,EAAU95E,QAAQwM,MAAO,CAE9C,IAAIw2C,EAAUxlD,EAAGwlD,QAASrlD,EAAUH,EAAGG,QAASC,EAAUJ,EAAGI,QAE7D,GAAID,GAAWC,EACX,OAGJ,GAAIolD,IAAYlhD,EAAA,EAASqR,WAAa6vC,IAAYlhD,EAAA,EAASktK,IAAK,CAC5D,IAAI5iK,EAAiB5O,EAAGjH,OAAO6V,eAC3BE,EAAe9O,EAAGjH,OAAO+V,aAE7B,KAAM02C,IAAYlhD,EAAA,EAASqR,WAAa7G,GAAgBA,EAAe,GACjE02C,IAAYlhD,EAAA,EAASktK,KAA0B,OAAnB5iK,GAA2BA,EAAiB0tE,EAAU95E,QAAQwM,MAAMjU,QAClG,OAEJsxG,EAAc4jE,oBAAsB,CAChCW,WAAYprH,IAAYlhD,EAAA,EAASqR,UAAY,YAAc,SAC3D/G,eAAmC,OAAnBA,EAA0BA,GAAkB,EAC5DE,aAA+B,OAAjBA,EAAwBA,GAAgB,EAE9D,CACJ,CACJ,GAAG,CAACu9F,EAAezoG,IACf6tK,EAAc,eAAkB,SAAUzxK,GAC1C+vK,SAAkDA,EAAQ/vK,GAC1D,IAAI4O,EAAiB5O,EAAGjH,OAAO6V,eAC3BE,EAAe9O,EAAGjH,OAAO+V,aAE7Bu9F,EAAc4jE,oBAAsB,CAChCW,WAAY,aACZhiK,eAAmC,OAAnBA,EAA0BA,GAAkB,EAC5DE,aAA+B,OAAjBA,EAAwBA,GAAgB,EAE9D,GAAG,CAACu9F,EAAe0jE,IAuBnB,OArBA,aAAgB,WACZ1jE,EAAcoiE,aAAeH,EAAUC,EAAMM,QACnCzwK,IAAV4Q,GAAuBe,EAASf,GAChCohK,EAAgBpB,EAAeT,EAAMliE,EAAcoiE,aAAcE,GAErE,GAAG,CAACJ,EAAMv/J,KAEV,EAAA2oD,EAAA,IAA0B,gBAEKv5D,IAAvB8xK,GAAoC5zF,EAAU95E,SAC9C85E,EAAU95E,QAAQ6U,kBAAkB64J,EAAoBA,EAEhE,GAAG,CAACA,IAEJ,aAAgB,WAER7jE,EAAcozD,gBAAoCrhK,IAAvB8xK,GAAoC5zF,EAAU95E,SACzE85E,EAAU95E,QAAQ6U,kBAAkB64J,EAAoBA,EAEhE,IAnPkB,SAAUzzJ,EAAc4vF,EAAe/vB,GACzD,sBAA0B7/D,GAAc,WAAc,MAAO,CACrDzN,YAEA,IADA,IAAIA,EAAQ,GACH7P,EAAI,EAAGA,EAAIktG,EAAcoiE,aAAa1zK,OAAQoE,IAAK,CACxD,IAAKktG,EAAcoiE,aAAatvK,GAAG6P,MAC/B,OAEJA,GAASq9F,EAAcoiE,aAAatvK,GAAG6P,KAC3C,CACA,OAAOA,CACX,EACIJ,qBACA,OAAO0tE,EAAU95E,SAAgD,OAArC85E,EAAU95E,QAAQoM,eAA0B0tE,EAAU95E,QAAQoM,gBAAkB,CAChH,EACIE,mBACA,OAAOwtE,EAAU95E,SAAW85E,EAAU95E,QAAQsM,aAAewtE,EAAU95E,QAAQsM,cAAgB,CACnG,EACApM,MAAO,WACH45E,EAAU95E,SAAW85E,EAAU95E,QAAQE,OAC3C,EACAizJ,KAAM,WACFr5E,EAAU95E,SAAW85E,EAAU95E,QAAQmzJ,MAC3C,EACAh1G,OAAQ,WACJ27B,EAAU95E,SAAW85E,EAAU95E,QAAQm+C,QAC3C,EACA+wH,kBAAmB,SAAU1iK,GACzBstE,EAAU95E,SAAW85E,EAAU95E,QAAQkvK,kBAAkB1iK,EAC7D,EACA2iK,gBAAiB,SAAU3iK,GACvBstE,EAAU95E,SAAW85E,EAAU95E,QAAQmvK,gBAAgB3iK,EAC3D,EACAqI,kBAAmB,SAAUE,EAAOlR,GAChCi2E,EAAU95E,SAAW85E,EAAU95E,QAAQ6U,kBAAkBE,EAAOlR,EACpE,EACA,GAAG,CAACgmG,EAAe/vB,GAC3B,CA+MI31C,CAAgBlqB,EAAc4vF,EAAe/vB,GACrC,gBAAoBtlC,EAAA,GAAW,QAAS,CAAC,EAAGr8C,EAAO,CAAEiQ,WAAYD,EAAKzI,QAASmmK,EAAa39H,OAAQ8lI,EAAY/lJ,YAAagmJ,EAAiBjmJ,UAAWkmJ,EAAejgK,SAAUkgK,EAAmB/sK,UAAWysI,EAAe0/B,QAAS0B,EAAaziK,MAAOyJ,GAAgB,GAAIgE,aAAc6/D,IAC1S,IACAwzF,EAAgBh2K,YAxPK,iB,uCCybjB83K,E,uJA1bA54J,GAAgB,EAAAC,EAAA,KAEhBkO,EAAiB,YAGjB0qJ,EAA+B,SAAU1wK,GAEzC,SAAS0wK,EAAcl3K,GACnB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMuwK,aAAe,cACrBvwK,EAAMI,SAAW,SAAU3B,GACnBuB,EAAM5G,MAAMuH,SACZX,EAAM5G,MAAMuH,QAAQlC,GAExBuB,EAAM0T,SAAS,CAAEwqJ,WAAW,IAAQ,WAC5Bl+J,EAAM5G,MAAMo3K,mBACZxwK,EAAMywK,UAAUzwK,EAAMyN,MAE9B,GACJ,EACAzN,EAAMyB,QAAU,SAAUhD,GAClBuB,EAAM5G,MAAM+vC,QACZnpC,EAAM5G,MAAM+vC,OAAO1qC,GAEvBuB,EAAM0T,SAAS,CAAEwqJ,WAAW,IAAS,WAC7Bl+J,EAAM5G,MAAMs3K,oBACZ1wK,EAAMywK,UAAUzwK,EAAMyN,MAE9B,GACJ,EACAzN,EAAMkhD,eAAiB,SAAU9nD,GAC7B,IAAIiqB,EAAQjqB,EAAMiqB,MAAOugB,EAAWxqC,EAAMwqC,SAEtC+lB,EAAc3pD,EAAMoa,YAAY+/C,mBAC9Bn6D,EAAMoa,YAAY+/C,mBAAmB92C,WACrCxmB,EACN,OAAIwmB,EACQ,gBAAoB2pB,EAAA,EAAO,CAAEpJ,SAAUA,EAAU4B,QAASxlC,EAAMqG,IAAKlN,OAAQwwD,EAAa/nD,SAAUxI,EAAMwI,SAAUyP,GAAIrR,EAAM8mB,UAAY1tB,EAAMiqB,OAErJ,IACX,EACArjB,EAAM4mB,qBAAuB,SAAUxtB,GACnC,OAAIA,EAAMuqB,YACC,gBAAoB,OAAQ,CAAEjoB,UAAWsE,EAAMoa,YAAYuJ,aAAevqB,EAAMuqB,aAEpF,IACX,EACA3jB,EAAM2wK,qBAAuB,SAAUjyK,GACnCsB,EAAM0T,UAAS,SAAU2X,GAAa,MAAO,CAAGulJ,qBAAsBvlJ,EAAUulJ,oBAAwB,GAC5G,EACA5wK,EAAMi+C,eAAiB,SAAUv/C,GAK7B,IAAIxG,EAAI2H,EAIJ4N,EADU/O,EAAMlH,OACAiW,MAKhBojK,EAAgBC,EAAU9wK,EAAM5G,MAAO4G,EAAMjH,QAAU,QAC7C8D,IAAV4Q,GAAuBA,IAAUzN,EAAM+wK,kBAAoBtjK,IAAUojK,GAIzE7wK,EAAM+wK,iBAAmBtjK,EACc,QAAtC5N,GAAM3H,EAAK8H,EAAM5G,OAAO8V,gBAA6B,IAAPrP,GAAyBA,EAAGrC,KAAKtF,EAAIwG,EAAO+O,GACtFzN,EAAMgxK,eAGPhxK,EAAM0T,SAAS,CAAEu9J,kBAAmBxjK,KARpCzN,EAAM+wK,sBAAmBl0K,CAUjC,GACA,EAAAuJ,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GAMzBA,EAAMkxK,aAAc,EAAA5qK,EAAA,GAAMsf,GAC1B5lB,EAAMgnB,gBAAiB,EAAA1gB,EAAA,GAAMsf,EAAiB,eAC9C5lB,EAAM8mB,UAAW,EAAAxgB,EAAA,GAAMsf,EAAiB,SACxC5lB,EAAMmxK,WAAY,EAAA7qK,EAAA,GAAMsf,EAAiB,UACzC5lB,EAAMoxK,WAAY,EAAA9qK,EAAA,GAAMsf,EAAiB,UACzC5lB,EAAMqxK,uBACN,IAAIn5K,EAAKkB,EAAM05J,aAAcA,OAAsB,IAAP56J,EAzF1B,GAyFgEA,EAYlF,MAX4B,iBAAjB46J,IAEPA,EAAejsJ,OAAOisJ,IAE1B9yJ,EAAMjH,MAAQ,CACVk4K,kBAAmBjxK,EAAMgxK,mBAAgBn0K,EAAYi2J,EACrDoL,WAAW,EACX7jH,aAAc,IAElBr6C,EAAMsxK,iBAAmBtxK,EAAMiU,OAAOuqB,SAASx+B,EAAMywK,UAAWzwK,EAAM5G,MAAMm4K,wBAC5EvxK,EAAMwxK,gBAAkB,EACjBxxK,CACX,CA+TA,OAhaA,QAAUswK,EAAe1wK,GAkGzBzC,OAAOgN,eAAemmK,EAAc/yK,UAAW,QAAS,CAIpD6M,IAAK,WACD,OAAO0mK,EAAUhzK,KAAK1E,MAAO0E,KAAK/E,MACtC,EACAsR,YAAY,EACZC,cAAc,IAElBgmK,EAAc/yK,UAAU+J,kBAAoB,WACxCxJ,KAAK2zK,qBACD3zK,KAAK1E,MAAMkjF,gBACXx+E,KAAK2yK,UAAU3yK,KAAK2P,MAE5B,EACA6iK,EAAc/yK,UAAU6K,qBAAuB,WAC3CtK,KAAKmW,OAAO5F,SAChB,EACAiiK,EAAc/yK,UAAUuZ,wBAA0B,SAAUsU,EAAWC,GACnE,MAAO,CACH0+D,UAAW,CAACjsF,KAAKuP,eAAgBvP,KAAKyP,cAE9C,EACA+iK,EAAc/yK,UAAUuK,mBAAqB,SAAUsjB,EAAWC,EAAWqmJ,GACzE,IAAIt4K,EAAQ0E,KAAK1E,MACblB,GAAMw5K,GAAY,CAAC,GAAG3nF,UAAWA,OAAmB,IAAP7xF,EAAgB,CAAC,KAAM,MAAQA,EAC5E8d,EAAQ+zE,EAAU,GAAIjlF,EAAMilF,EAAU,KACpC3+D,EAAUk8G,aAAgBluI,EAAMkuI,WAAaj8G,EAAU6yI,YAGzDpgK,KAAKqD,QACS,OAAV6U,GAA0B,OAARlR,GAAgBkR,GAAS,GAAKlR,GAAO,GACvDhH,KAAKgY,kBAAkBE,EAAOlR,IAGlCsmB,EAAU3d,QAAUrU,EAAMqU,QAI1B3P,KAAKizK,sBAAmBl0K,GAE5B,IAAI4zH,EAAYqgD,EAAU1lJ,EAAWC,GACjC5d,EAAQ3P,KAAK2P,MACbgjH,IAAchjH,IAEd3P,KAAKuzK,qBAAqBjmJ,GAGtBttB,KAAK/E,MAAMshD,eAAiBjhD,EAAMihD,cAClCv8C,KAAK4V,SAAS,CAAE2mC,aAAc,KAGlCv8C,KAAK2zK,qBAIDE,EAA0Bv4K,IAC1B0E,KAAKwzK,iBAAiB7jK,GAGlC,EACA6iK,EAAc/yK,UAAUxB,OAAS,WAC7B,IAAI7D,EAAK4F,KAAK1E,MAAOqhF,EAAaviF,EAAGuiF,WAAY/+E,EAAYxD,EAAGwD,UAAWkG,EAAW1J,EAAG0J,SAAU+zC,EAAUz9C,EAAGy9C,QAASn7B,EAAYtiB,EAAGsiB,UAAWo3J,EAAiB15K,EAAG05K,eAAgBvuJ,EAAQnrB,EAAGmrB,MAAOikH,EAAYpvI,EAAGovI,UAAW1jG,EAAW1rC,EAAG0rC,SAAU+2C,EAAaziF,EAAGyiF,WAAYjrE,EAASxX,EAAGwX,OAAQmiK,EAAY35K,EAAG25K,UAAWC,EAAS55K,EAAG45K,OAAQ94K,EAAQd,EAAGc,MAAOG,EAASjB,EAAGiB,OAAQ44K,EAAmB75K,EAAG65K,iBAAkBC,EAAoB95K,EAAG85K,kBAAmBC,EAA0B/5K,EAAG+5K,wBAAyB13K,EAAOrC,EAAGqC,KAAMsF,EAAK3H,EAAGg6K,eAAgBA,OAAwB,IAAPryK,EAAgB/B,KAAKq0K,gBAAkBtyK,EAAIC,EAAK5H,EAAGk6K,eAAgBA,OAAwB,IAAPtyK,EAAgBhC,KAAKu0K,gBAAkBvyK,EAAIC,EAAK7H,EAAG4sC,cAAeA,OAAuB,IAAP/kC,EAAgBjC,KAAKojD,eAAiBnhD,EAAIid,EAAK9kB,EAAGwnB,oBAAqBA,OAA6B,IAAP1C,EAAgBlf,KAAK8oB,qBAAuB5J,EAC32BuS,EAAKzxB,KAAK/E,MAAOmlK,EAAY3uI,EAAG2uI,UAAW0S,EAAsBrhJ,EAAGqhJ,oBACpEv2H,EAAev8C,KAAKw0K,cACpBC,EAA+B,kBAAZ58H,EAAwBA,IAAY0E,EACvDm4H,IAAoBR,GAA8B,aAATz3K,GAgRrD,WACI,GAA0C,kBAA/B81K,EAA0C,CACjD,IAAIngI,GAAM,EAAAC,EAAA,KACV,GAAID,aAAiC,EAASA,EAAI8/E,UAAW,CAEzD,IAAIyiD,EAAS,MAAM38H,KAAK5F,EAAI8/E,UAAU0iD,WAAa,IACnDrC,KAA+B,UAAYoC,EAC/C,MAEIpC,GAA6B,CAErC,CACA,OAAOA,CACX,CA7R4EsC,GAChEp3K,EAAcuC,KAAKsc,YAAc3C,EAActe,EAAQ,CACvDH,MAAOA,EACP0C,UAAWA,EACXkG,SAAUA,EACVmmC,QAASm2H,EACTt6H,SAAUA,EACV0jG,UAAWA,EACXhrB,WAAYj5F,EACZs3B,gBAAiB43H,EACjB93F,WAAYA,EACZo3F,UAAWA,EACX5pI,UAAWztB,EACXmgE,WAAYA,EACZi3F,eAAgBA,EAChBG,iBAAkBA,EAClBS,gBAAiBA,IAErB,OAEA,gBAAoB,MAAO,CAAEppK,IAAKtL,KAAK1E,MAAMiQ,WAAY3N,UAAWH,EAAWgM,MAC3E,gBAAoB,MAAO,CAAE7L,UAAWH,EAAWwzD,SAC/CjqB,EAAchnC,KAAK1E,MAAO0E,KAAKojD,gBAC/B,gBAAoB,MAAO,CAAExlD,UAAWH,EAAWq3K,kBACnC/1K,IAAX6S,GAAwB5R,KAAK1E,MAAM84K,iBAAoB,gBAAoB,MAAO,CAAEx2K,UAAWH,EAAWmU,OAAQ2B,GAAIvT,KAAKqzK,WAAae,EAAep0K,KAAK1E,MAAO0E,KAAKq0K,kBACzK7qC,EAAYxpI,KAAK+0K,kBAAoB/0K,KAAKg1K,eAC1Ct4J,GAAa,gBAAoBzB,EAAA,GAAM,QAAS,CAAErd,UAAWH,EAAWwlB,MAAQvG,IAChFg4J,GAEA,gBAAoB,SAAU,CAAE,aAAcP,EAAyBv2K,UAAWH,EAAWw3K,aAAcn8J,QAAS9Y,KAAK6yK,qBAAsB,iBAAkBC,EAAqBr2K,KAAM,UACxL,gBAAoB,OAAQ,CAAEmB,UAAWH,EAAWy3K,YAChD,gBAAoBj6J,EAAA,EAAM,CAAErd,UAAWH,EAAW03K,WAAY14J,SAAUq2J,EAtM/E,OADE,mBAwMS/zK,IAAXi1K,GAAwBh0K,KAAK1E,MAAMg5K,iBAAoB,gBAAoB,MAAO,CAAE12K,UAAWH,EAAWu2K,OAAQzgK,GAAIvT,KAAKszK,WAAagB,EAAet0K,KAAK1E,MAAO0E,KAAKu0K,oBACjLv0K,KAAKo1K,yBAA4B,gBAAoB,OAAQ,CAAE7hK,GAAIvT,KAAKkpB,gBACpEtH,EAAoB5hB,KAAK1E,MAAO0E,KAAK8oB,sBACrCyzB,GAAiB,gBAAoB,MAAO,CAAEv/B,KAAM,SAChD,gBAAoBqwF,EAAA,EAAe,KAAMrtG,KAAKq1K,yBAC9D,EAIA7C,EAAc/yK,UAAU4D,MAAQ,WACxBrD,KAAKyyK,aAAatvK,SAClBnD,KAAKyyK,aAAatvK,QAAQE,OAElC,EAIAmvK,EAAc/yK,UAAU62J,KAAO,WACvBt2J,KAAKyyK,aAAatvK,SAClBnD,KAAKyyK,aAAatvK,QAAQmzJ,MAElC,EAIAkc,EAAc/yK,UAAU6hD,OAAS,WACzBthD,KAAKyyK,aAAatvK,SAClBnD,KAAKyyK,aAAatvK,QAAQm+C,QAElC,EAIAkxH,EAAc/yK,UAAU4yK,kBAAoB,SAAU1iK,GAC9C3P,KAAKyyK,aAAatvK,UAClBnD,KAAKyyK,aAAatvK,QAAQoM,eAAiBI,EAEnD,EAIA6iK,EAAc/yK,UAAU6yK,gBAAkB,SAAU3iK,GAC5C3P,KAAKyyK,aAAatvK,UAClBnD,KAAKyyK,aAAatvK,QAAQsM,aAAeE,EAEjD,EACAtQ,OAAOgN,eAAemmK,EAAc/yK,UAAW,iBAAkB,CAI7D6M,IAAK,WACD,OAAOtM,KAAKyyK,aAAatvK,QAAUnD,KAAKyyK,aAAatvK,QAAQoM,gBAAkB,CACnF,EACAhD,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemmK,EAAc/yK,UAAW,eAAgB,CAI3D6M,IAAK,WACD,OAAOtM,KAAKyyK,aAAatvK,QAAUnD,KAAKyyK,aAAatvK,QAAQsM,cAAgB,CACjF,EACAlD,YAAY,EACZC,cAAc,IAOlBgmK,EAAc/yK,UAAUuY,kBAAoB,SAAUE,EAAOlR,GACrDhH,KAAKyyK,aAAatvK,SAClBnD,KAAKyyK,aAAatvK,QAAQ6U,kBAAkBE,EAAOlR,EAE3D,EACAwrK,EAAc/yK,UAAU8zK,qBAAuB,SAAUjmJ,GAGpCttB,KAAKuI,IAEXvI,KAAK1E,MAOS,OAArB0E,KAAK1E,MAAMqU,OAAmB3P,KAAKs1K,sBACnCt1K,KAAKs1K,qBAAsB,GAC3B,EAAAh8J,EAAA,GAAK,6BAA6B9G,OAAOsV,EAAgB,4CACrD,2FAEZ,EACAzoB,OAAOgN,eAAemmK,EAAc/yK,UAAW,MAAO,CAElD6M,IAAK,WACD,OAAOtM,KAAK1E,MAAMiY,IAAMvT,KAAKozK,WACjC,EACA7mK,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAemmK,EAAc/yK,UAAW,gBAAiB,CAC5D6M,IAAK,WACD,YC/SoBvN,KAHHzD,EDkTG0E,KAAK1E,OAAO,UC/SsB,OAArBA,EAAe,MAHrD,IAAsBA,CDmTrB,EACAiR,YAAY,EACZC,cAAc,IAElBgmK,EAAc/yK,UAAU40K,gBAAkB,SAAU/4K,GAChD,IAAIsW,EAAStW,EAAMsW,OACnB,OAAO,gBAAoB,OAAQ,CAAEyG,MAAO,CAAEwzB,cAAe,QAAWj6B,EAC5E,EACA4gK,EAAc/yK,UAAU80K,gBAAkB,SAAUj5K,GAChD,IAAI04K,EAAS14K,EAAM04K,OACnB,OAAO,gBAAoB,OAAQ,CAAE37J,MAAO,CAAEwzB,cAAe,QAAWmoI,EAC5E,EACA30K,OAAOgN,eAAemmK,EAAc/yK,UAAW,gBAAiB,CAO5D6M,IAAK,WACD,IAAIlS,EAAK4F,KAAK1E,MAAMihD,aACpB,YADwD,IAAPniD,EAAgB4F,KAAK/E,MAAMshD,aAAeniD,IACpE,EAC3B,EACAmS,YAAY,EACZC,cAAc,IAQlBgmK,EAAc/yK,UAAU41K,oBAAsB,WAC1C,IAAI94H,EAAev8C,KAAKw0K,cACxB,OAAOj4H,EAAwC,iBAAjBA,EAA6B,gBAAoB,IAAK,CAAE3+C,UAAWoC,KAAKsc,YAAYigC,cAC9G,gBAAoB,OAAQ,CAAE,qBAAsB,iBAAmBA,IAAmB,gBAAoB,MAAO,CAAE3+C,UAAWoC,KAAKsc,YAAYigC,aAAc,qBAAsB,iBAAmBA,GAAkB,IACpO,EACAl9C,OAAOgN,eAAemmK,EAAc/yK,UAAW,0BAA2B,CAKtE6M,IAAK,WACD,IAAIhR,EAAQ0E,KAAK1E,MACjB,SAAUA,EAAMsmB,qBAAuBtmB,EAAMuqB,aAAe7lB,KAAKw0K,cACrE,EACAjoK,YAAY,EACZC,cAAc,IAElBgmK,EAAc/yK,UAAUs1K,gBAAkB,WACtC,IAAI36K,EAAK4F,KAAK1E,MAAMu8C,QAASA,OAAiB,IAAPz9C,IAAkB4F,KAAKw0K,cAAgBp6K,EAC1Em7K,GAAgB,QAAev1K,KAAK1E,MAAO,KAAoB,CAAC,iBAChEwP,EAAiB9K,KAAK1E,MAAM,qBAAuB0E,KAAK1E,MAAMiqB,MAAQvlB,KAAKgpB,cAAWjqB,GAC1F,OAAQ,gBAAoB,YAAY,QAAS,CAAEwU,GAAIvT,KAAKuI,KAAOgtK,EAAe,CAAEjqK,IAAKtL,KAAKyyK,aAAc9iK,MAAO3P,KAAK2P,OAAS,GAAIkJ,QAAS7Y,KAAKmgD,eAAgB/uC,SAAUpR,KAAKmgD,eAAgBviD,UAAWoC,KAAKsc,YAAYquB,MAAO,kBAAmB7/B,EAAgB,mBAAoB9K,KAAKo1K,wBAA0Bp1K,KAAKkpB,eAAiBlpB,KAAK1E,MAAM,oBAAqB,eAAgBu8C,EAAS,aAAc73C,KAAK1E,MAAMwf,UAAWjL,SAAU7P,KAAK1E,MAAMuU,SAAUhN,QAAS7C,KAAKsC,SAAU+oC,OAAQrrC,KAAK2D,UACtf,EACA6uK,EAAc/yK,UAAUu1K,aAAe,WACnC,IAAI56K,EAAK4F,KAAK1E,MAAOwf,EAAY1gB,EAAG0gB,UAAW/Y,EAAK3H,EAAGy9C,QAASA,OAAiB,IAAP91C,IAAkB/B,KAAKw0K,cAAgBzyK,EAAIqyK,EAAiBh6K,EAAGg6K,eAAgBE,EAAiBl6K,EAAGk6K,eAAgB1iK,EAASxX,EAAGwX,OAAQoiK,EAAS55K,EAAG45K,OAAQhyK,EAAK5H,EAAGqC,KAAMA,OAAc,IAAPuF,EAAgB,OAASA,EAE/QwzK,EAAW,GAFgRp7K,EAAGmrB,OAGzRiwJ,EAAS73K,KAAKqC,KAAKgpB,gBAChBjqB,IAAX6S,GAAwBwiK,IAAmBoB,EAAS73K,KAAKqC,KAAKqzK,iBACnDt0K,IAAXi1K,GAAwBM,IAAmBkB,EAAS73K,KAAKqC,KAAKszK,WAC/D,IAAIvtI,GAAa,SAAS,QAAS,CAAEtpC,KAAMuD,KAAK/E,MAAM63K,oBAAsB,OAASr2K,EAAM8W,GAAIvT,KAAKuI,MAAO,QAAevI,KAAK1E,MAAO,KAAiB,CAAC,eAAgB,UAAW,CAAE,kBAAmB0E,KAAK1E,MAAM,qBAAuBk6K,EAAS95K,OAAS,EAAI85K,EAASxiI,KAAK,UAAOj0C,GAAYuM,IAAKtL,KAAKyyK,aAAc9iK,MAAO3P,KAAK2P,OAAS,GAAIkJ,QAAS7Y,KAAKmgD,eAAgB/uC,SAAUpR,KAAKmgD,eAAgBviD,UAAWoC,KAAKsc,YAAYquB,MAAO,aAAc7vB,EAAW,mBAAoB9a,KAAKo1K,wBAA0Bp1K,KAAKkpB,eAAiBlpB,KAAK1E,MAAM,oBAAqB,eAAgBu8C,EAASh1C,QAAS7C,KAAKsC,SAAU+oC,OAAQrrC,KAAK2D,UAC9mB4kB,EAAgB,SAAUktJ,GAC1B,OAAO,gBAAoB,SAAS,QAAS,CAAC,EAAGA,GACrD,EAEA,OADoBz1K,KAAK1E,MAAMkkF,eAAiBj3D,GAC3Bwd,EAAYxd,EACrC,EACAiqJ,EAAc/yK,UAAUkzK,UAAY,SAAUhjK,GAC1C,IAAIzN,EAAQlC,KAEZ,GAAIA,KAAK01K,uBAAyB/lK,IAASkkK,EAA0B7zK,KAAK1E,OAA1E,CAGA0E,KAAK01K,qBAAuB/lK,EAC5B,IAAIgmK,EAAoB31K,KAAK1E,MAAMq6K,kBAC/Bt3K,EAASs3K,GAAqBA,EAAkBhmK,GAAS,IAC7D,QAAe5Q,IAAXV,EACA,GAAsB,iBAAXA,GAAyB,SAAUA,EAIzC,CACD,IAAIu3K,IAAwB51K,KAAK0zK,gBACjCr1K,EAAOkkC,MAAK,SAAUga,GACdq5H,IAAwB1zK,EAAMwxK,iBAC9BxxK,EAAM0T,SAAS,CAAE2mC,aAAcA,IAEnCr6C,EAAM2zK,qBAAqBlmK,EAAO4sC,EACtC,GACJ,MAXIv8C,KAAK4V,SAAS,CAAE2mC,aAAcl+C,IAC9B2B,KAAK61K,qBAAqBlmK,EAAOtR,QAarC2B,KAAK61K,qBAAqBlmK,EAAO,GApBrC,CAsBJ,EACA6iK,EAAc/yK,UAAUo2K,qBAAuB,SAAUlmK,EAAO4sC,GACxD5sC,IAAU3P,KAAK2P,OAAS3P,KAAK1E,MAAMw6K,0BACnC91K,KAAK1E,MAAMw6K,yBAAyBv5H,EAAc5sC,EAE1D,EACA6iK,EAAc/yK,UAAUk0K,mBAAqB,WACzC,GAAI3zK,KAAKyyK,aAAatvK,SAAWnD,KAAK1E,MAAM24K,kBAAoBj0K,KAAK1E,MAAMkuI,UAAW,CAClF,IAAIvsD,EAAYj9E,KAAKyyK,aAAatvK,QAClC85E,EAAU5kE,MAAMnJ,OAAS,GACzB+tE,EAAU5kE,MAAMnJ,OAAS+tE,EAAUo7B,aAAe,IACtD,CACJ,EACAm6D,EAAc7pK,aAAe,CACzBorK,WAAW,EACXN,uBAAwB,IACxBj1F,gBAAgB,GAEbg0F,CACX,CAlakC,CAkahC,aAGF,SAASQ,EAAU13K,EAAOL,GACtB,IAAIb,EAAKkB,EAAMqU,MAAOA,OAAe,IAAPvV,EAAgBa,EAAMk4K,kBAAoB/4K,EACxE,MAAqB,iBAAVuV,EAEA5G,OAAO4G,GAEXA,CACX,CAKA,SAASkkK,EAA0Bv4K,GAC/B,QAASA,EAAMo3K,mBAAqBp3K,EAAMs3K,mBAC9C,C,eE3bI7nE,EAAmB,CACnBthG,KAAM,eACNoc,YAAa,2BACb02B,aAAc,4BACd5R,MAAO,qBACPmqI,WAAY,0BACZljK,OAAQ,sBACRoiK,OAAQ,sBACR/iH,QAAS,uBACTgkH,aAAc,sBACdzrC,UAAW,0BACX7sD,WAAY,2BACZE,WAAY,2BACZk5F,YAAa,4BACbjwI,SAAU,cACVhiC,SAAU,cACVkyK,OAAQ,aAEZ,SAASC,EAAe36K,GACpB,IAAIuhF,EAAavhF,EAAMuhF,WAAY/4E,EAAWxI,EAAMwI,SAAUmmC,EAAU3uC,EAAM2uC,QAAS/uC,EAAQI,EAAMJ,MACjGikB,EAAUjkB,EAAMikB,QAASC,EAAQlkB,EAAMkkB,MAC3C,OAAO,WACH,IAAIhlB,EACJ,MAAO,CACHqP,KAAM,CACFozE,GACI/4E,GAAY,CACZiW,MAAOoF,EAAQyD,iBAEnBi6D,GAAc,CACVj8D,SAAUxB,EAAMyB,OAAOD,SACvBmU,YAAa,EACbsY,YAAa,GACbG,aAAc,EACd7sB,WAAY,OACZzR,OAAQ,IAEZ2tE,GACI5yC,GAAW,CACX7+B,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8U,OAAQ,IAEZ9U,KAIpB,CACJ,CC/CO,IAAIu9C,GAAY,EAAA14B,EAAA,GAAOuzJ,GDgDvB,SAAmBl3K,GACtB,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAAIC,EAAIW,EAAIC,EAAIC,EAC5Cv3B,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWkG,EAAWxI,EAAMwI,SAAUmmC,EAAU3uC,EAAM2uC,QAASnE,EAAWxqC,EAAMwqC,SAAU0jG,EAAYluI,EAAMkuI,UAAWhrB,EAAWljH,EAAMkjH,SAAU7hC,EAAarhF,EAAMqhF,WAAYE,EAAavhF,EAAMuhF,WAAY1yC,EAAU7uC,EAAM6uC,QAAS4pI,EAAYz4K,EAAMy4K,UAAWl3H,EAAkBvhD,EAAMuhD,gBAAiBi3H,EAAiBx4K,EAAMw4K,eAAgBG,EAAmB34K,EAAM24K,iBAAkBS,EAAkBp5K,EAAMo5K,gBAChc16J,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBstG,EAAkB7vG,GACnDg7K,EAAoB,CAEpBvwI,WAAY3rB,EAAe+V,mBAC3BhW,MAAQjW,EAAiDkW,EAAegW,aAArDhW,EAAe8hC,qBAClC/6B,QAAS,OACTC,WAAY,SACZN,QAAS,SACTC,WAAY,EACZ/B,WAAY,SACZgR,WAAY,EACZxkB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBurC,WAAY,SACZ5rB,MAAOjW,EAAW,WAAa,cAEnC1J,IAGJyhD,EAAoB,CACpB,CACI9hC,MAAOC,EAAe8hC,qBACtBlf,QAAS,EACTxxB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,YAEXhY,KAGRi6C,EAA4B,CAC5BjiC,MAAOC,EAAegW,aACtB5kB,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,YAEX/X,IAER,MAAO,CACHyH,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,OACNilB,GAAYroC,EAAWqoC,SACvBhiC,GAAYrG,EAAWqG,SACvBmmC,GAAWxsC,EAAWu4K,OACtBxsC,GAAa/rI,EAAW+rI,UACxB7sD,GAAcl/E,EAAWk/E,WACzBE,GAAcp/E,EAAWo/E,WACzB,KACA,CACI37D,SAAU,YAEdtjB,GAEJqzD,QAAS,CACLxzD,EAAWwzD,QACX4rB,GAAc,CACV,CACI97D,QAAS,OACTiwD,aAAc,aAAax+D,OAAQqqC,EAA+C7iC,EAAeuhC,UAA5CvhC,EAAeghC,aACpE5yC,MAAO,QAEXtE,GAAY,CACRmwG,kBAAmBj6F,EAAe+V,mBAClC3kB,WAAYnJ,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEigB,YAAa,aAAc,WACjEjgB,KAEP6B,GAAY,CACTsH,UAAW,CACP,SAAU,CACN6oG,kBAAoBp3D,EAAsD7iC,EAAeuhC,UAAnDvhC,EAAe8uB,mBACrD19B,WAAY8T,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAE+0F,kBAAmB,cAAe,WACxE/0F,MAIhB+qB,GAAW,CACP,CACI/oB,SAAU,aAEd,QAAoB27B,EAAuD7iC,EAAeuhC,UAApDvhC,EAAemhC,oBAAgD,EAAG,mBAIpH25H,WAAY,CACRr3K,EAAWq3K,WACX,KACA,CACI7yJ,OAAQ,aAAazP,OAAOwH,EAAeghC,aAC3C5qB,aAAcP,EAAQQ,eACtBsV,WAAY3rB,EAAeqhC,gBAC3B3jC,OAAQ,OACRxI,OAAQ,GACR6R,QAAS,OACT6S,cAAe,MACf5S,WAAY,UACZE,SAAU,YAEdsoH,GAAa,CACT71G,UAAW,OACXzkB,OAAQ,OACR6R,QAAS,SAEZkpB,IACInmC,GAAY,CACbsH,UAAW,CACP,SAAU,CACN8W,YAAalI,EAAe8uB,mBAC5B19B,WAAYqmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEvP,YAAa,cAAe,WAClEuP,MAIhBwY,IACK4yC,IACD,QAAoBhgC,EAAuD7iC,EAAeuhC,UAApDvhC,EAAemhC,oBAAgDtrB,EAAQQ,gBACjHvsB,GAAY,CACRoe,YAAalI,EAAe+V,mBAC5B3kB,WAAYsmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAExP,YAAa,aAAc,WACjEwP,GACJha,OAAQ,WAEZilE,GAAc,CACV16D,OAAQ,QAEZ06D,GACI1yC,GAAW,CACXhoB,OAAQ,OACR7W,UAAW,CACP,SAAU,CACN6W,OAAQ,UAIpB46D,GAAc,CACVwK,KAAM,UACNplE,OAAQ,OACR0N,UAAW,QAEfktD,GACI/4E,GAAY,CACZyc,gBAAiB,eAErBs8B,IACKggC,GAAc,CACf36D,YAAalI,EAAeuhC,UAC5BnwC,UAAW,CACP,UAAW,CACP8W,YAAalI,EAAeuhC,cAIvCijE,GACG14E,GAAY,CACZ16B,WAAYumB,EAAK,CACT,UAAW,CACP3T,QAAS,MACTjE,MAAOC,EAAeuhC,UACtBr6B,SAAU,WACVnZ,KAAM,EACNtC,OAAQ,KAGhBksB,EAAG,MAAwB,CACvBvmB,UAAW,CACP,UAAW,CACP2O,MAAO,aACPtU,OAAQ,MAIpBksB,KAGZgZ,MAAO,CACHvrB,EAAMyB,OACNpjB,EAAWktC,MACX,KACA,CACIva,aAAc,EACdnO,OAAQ,OACR0jB,WAAY,OACZplB,gBAAiB,cACjBxG,MAAOC,EAAe+gC,UACtBr6B,QAAS,QACTtY,MAAO,OACP0qB,SAAU,EACVjU,aAAc,WACdxT,QAAS,EACTD,WAAYwmB,EAAK,CACT,6BAA8B,CAAEvmB,QAAS,GACzC,cAAe,CACX0V,QAAS,SAGjB6Q,EAAG,MAAwB,CACvB+T,WAAY,SACZ5rB,MAAOjW,EAAW,WAAa,cAEnC8tB,KAER,QAAqBiqB,GACrB2tF,IACKuqC,GAAa,CACdt2K,EAAWs4K,YACX,CACII,OAAQ,SAGhB3sC,GAAa,CACT71G,UAAW,UACXhT,WAAY,GACZ2C,SAAU,EACVgqB,WAAY,EACZzB,cAAe,EACf/uB,SAAU,OACV1U,MAAO,QAEXohI,GACIyqC,GAAoB,CACpBn3J,SAAU,UAEdqtB,IACKuqI,GAAmB,CACpBlnI,aAAc,IAElBg8F,GACIr/F,GAAW,CACXqD,aAAc,IAElB1pC,GAAY,CACR,CACIyc,gBAAiBvG,EAAe+V,mBAChChW,MAAOC,EAAegW,aACtB9N,YAAalI,EAAe+V,qBAEhC,QAAqBisB,IAEzB6gC,GAAc,CACVltD,UAAW,QAEfsa,IACK0yC,GAAc,CACfvxE,WAAYmnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8a,YAAa,GACbG,aAAc,IAElBjb,IAER0X,GACIu/F,IACC7sD,GAAc,CACfvxE,WAAYonB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB8a,WAAY,GAEhB9a,IAERshJ,GAEJ7wJ,KAAM,CACFumH,GAAa,CACTh8F,aAAc,GACdxsB,WAAY,YAEhB,CACIsT,cAAe,OACfpT,SAAU,WACVjZ,OAAQ,EACRxC,MAAO,EACPsC,IAAK,OACL6Y,SAAU,KAAcC,OACxBF,WAAY,IAEhB7c,GAAY,CACRiW,MAAOC,EAAegW,eAG9BnK,YAAa,CACTpoB,EAAWooB,YACX,CACI9L,MAAOC,EAAeogC,YACtBx5B,SAAUxB,EAAM8qH,OAAOtpH,WAG/B27B,aAAc,CACV9+C,EAAW8+C,aACX,KAAoByzB,cACpB5wD,EAAMiC,MACN,CACItH,MAAOC,EAAeuhC,UACtBz6B,OAAQ,EACRwsB,WAAY,EACZvsB,QAAS,OACTC,WAAY,WAGpBpP,OAAQ,CAACnU,EAAWmU,OAAQskK,GAC5BlC,OAAQ,CAACv2K,EAAWu2K,OAAQkC,GAC5BjB,aAAc,CACVx3K,EAAWw3K,aACX,YACA,mBACA,QAAc/5K,EAAO,CAAEi1B,MAAO,IAC9B,CACIjhB,OAAQ,GACR9G,MAAO,GACP6Z,OAAQ,OACRvB,QAAS,UACTH,gBAAiB,cACjBxG,MAAOC,EAAeoa,KACtBhpB,UAAW,CACP,SAAU,CACNC,QAAS,EACT0O,MAAOC,EAAe+X,+BACtBxR,gBAAiBvG,EAAe6W,wBAChCzlB,WAAYqnB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBvQ,YAAa,YACbnI,MAAO,aAEX0Y,IAER,SAAU,CAAEpnB,QAAS,KAG7B8+B,GAAW,CACPpV,YAAa,KAGrBmgJ,WAAY,CACRn0J,QAAS,OACT7R,OAAQ,OACR8R,WAAY,UAEhBm0J,WAAY,CACRr0J,OAAQ,UACRwT,cAAe,OACfrsB,OAAQ,EACRxC,MAAO,EACPsC,IAAK,OACL6Y,SAAU,KAAcC,OACxBF,WAAY,IAEhB07C,mBAAoB,CAChB92C,MAAO0wJ,EAAe36K,IAGlC,QCrZwDyD,EAAW,CAC/D0iB,MAAO,a,mFCDA20J,GAAO,EAAAn8K,EAAA,ICEI,SAAUqB,GAE5B,GAAsB,MAAlBA,EAAMoB,SACN,OAAO,KAECpB,EAAM+6K,MAAmB/6K,EAAMsC,UAA3C,IAAsDxD,EAAKkB,EAAMoP,GAAI+jH,OAAkB,IAAPr0H,EAAgB,OAASA,EAAoDouB,GAAtCltB,EAAMg7K,QAAkBh7K,EAAMi7K,QAAe,QAAOj7K,EAAO,CAAC,QAAS,YAAa,KAAM,UAAW,YACtNopK,GAAQ,QAASppK,EAAO,CACxBmO,KAAMglH,IAEV,OAAO,QAAUi2C,EAAMj7J,MAAM,QAAS,CAAC,GAAG,QAAe+e,EAAM,OACnE,GDZ4C,CACxC/tB,YAAa,OACbY,OELoB,SAAUC,EAAOJ,GACrC,IAAIwP,EAAKpP,EAAMoP,GAAI9M,EAAYtC,EAAMsC,UAAWy4K,EAAQ/6K,EAAM+6K,MAAOE,EAASj7K,EAAMi7K,OAAQD,EAAUh7K,EAAMg7K,QACxGl3J,EAAQlkB,EAAMkkB,MAAOpF,EAAiB9e,EAAM8e,eAC5Cw8J,EAAgBp3J,EAAMk3J,GAAW,UACrC,MAAO,CACH7sK,KAAM,CACF+sK,EACA,CACIz8J,MAAOy8J,EAAcz8J,OAASC,EAAeC,SAC7C8G,QAASs1J,EAAgB,OAAP3rK,EAAc,aAAe,QAAW,SAC1D+rK,oBAAqBD,EAAcE,oBACnCC,oBAAqBH,EAAchiE,qBAEvC+hE,GAAU,CACN33J,WAAY,SACZ9B,SAAU,SACV+B,aAAc,YAElBjhB,GAGZ,G,mFCuBWg5K,EAA2B,SAAUC,EAAWC,EAAiBC,GACxE,IAYIC,EAZA58K,EAAK,IAAc7B,gBAAgB0+K,KAAKF,IAAiB,GAAIG,EAAgB98K,EAAG,GAAI+8K,EAAkB/8K,EAAG,GAAIg9K,EAAkBh9K,EAAG,GAAIi9K,EAAaj9K,EAAG,GACtJk9K,GAASJ,EACTK,GAAWJ,EACXK,EAAUJ,GAAmBA,EAAkB,EAC/CP,GAAaQ,IACoB,OAA7BA,EAAWhoK,eAA0BioK,IAAU,IAAch/K,qBAC7Dg/K,GAAS,IAAch/K,qBAEW,OAA7B++K,EAAWhoK,eAA0BioK,IAAU,IAAch/K,uBAClEg/K,GAAS,IAAch/K,uBAM3B0+K,EAFAF,EAAgBW,WAAaH,GAC5BR,EAAgBW,aAAeH,GAASR,EAAgBY,aAAeH,EAC1D,IAAcn/K,cAAgB0+K,EAAgBW,WAAaH,EAG3DzvK,KAAKQ,IAAIyuK,EAAgBW,WAAaH,GAExD,IAAItuF,EAAS,IAAcpxF,mBAAqB,IAAcK,iBAAmB++K,EAAc,IAAc3+K,mBACzGm/K,EAAU,IAAc5/K,mBACxBuoE,EAAO,IAAI4B,KAAK+0G,EAAgB90G,UAAYgnB,GAGhD,OAFA7oB,EAAKw3G,WAAWJ,GAChBp3G,EAAKy3G,WAAWJ,GACTr3G,CACX,ECjEW03G,EAAmB,SAAU13G,EAAM23G,EAAajB,GACvD,IAAIkB,EAAmB53G,EAAK63G,mBAAmB,GAAI,CAC/CC,KAAM,UACNC,OAAQ,UACRC,OAAQL,EAAc,eAAY/4K,EAClCq5K,OAAQvB,IAKZ,OAHKA,GAA8C,OAAjCkB,EAAiBxlK,MAAM,EAAG,KACxCwlK,EAAmB,KAAOA,EAAiBxlK,MAAM,IAE9CwlK,CACX,E,4CCVIM,EAA6B,+DAC7BC,EAA6B,gDAC7BC,EAA6B,+CAC7BC,EAA6B,oCAgBtBC,EAAa,SAAUr+K,GAC9B,IAAImrB,EAAQnrB,EAAGmrB,MAAOxjB,EAAK3H,EAAGs+K,WAAYA,OAAoB,IAAP32K,EAAgB,GAAKA,EAAIC,EAAK5H,EAAG09K,YAAaA,OAAqB,IAAP91K,GAAwBA,EAAIC,EAAK7H,EAAG8iD,cAAeA,OAAuB,IAAPj7C,GAAuBA,EAAIid,EAAK9kB,EAAGy8K,UAAWA,OAAmB,IAAP33J,GAAwBA,EAAIy5J,EAAYv+K,EAAGu+K,UAAWlnJ,EAAKr3B,EAAGs6C,QAASA,OAAiB,IAAPjjB,EAd7S,SAAUolJ,EAAWiB,GACzC,IAAIc,EAAY/B,EAAY,UAAY,UACpCgC,EAAa,QAAQrmK,OAAOslK,EAAc,MAAQ,IAAItlK,OAAOqkK,EAAY,MAAQ,IAGrF,MAAO,CACH56F,yBAH2B,6BAA6BzpE,OAAOomK,EAAW,aAAapmK,OAAOqmK,GAI9FC,4BAH8B,sDAKtC,CAKqVC,CAAkBlC,EAAWiB,GAAermJ,EAAIujI,EAAe56J,EAAG46J,aAAcrlJ,EAAQvV,EAAGuV,MAAOqpK,EAAa5+K,EAAG4+K,WAAY5nK,EAAWhX,EAAGgX,SAAU6nK,EAAe7+K,EAAG6+K,aAAcC,EAAsB9+K,EAAG8+K,oBAAqBC,EAAqB/+K,EAAG++K,mBAAoB3wJ,GAAO,QAAOpuB,EAAI,CAAC,QAAS,aAAc,cAAe,gBAAiB,YAAa,YAAa,UAAW,eAAgB,QAAS,aAAc,WAAY,eAAgB,sBAAuB,uBACtyBs3B,EAAK,WAAe,IAAK0nJ,EAAe1nJ,EAAG,GAAI2nJ,EAAkB3nJ,EAAG,GACpEC,EAAK,aAAkB2c,EAAc3c,EAAG,GAAIo2H,EAAiBp2H,EAAG,GAChEC,EAAK,WAAe,IAAK2qB,EAAe3qB,EAAG,GAAIwsD,EAAkBxsD,EAAG,GACpE0nJ,GAAqB,EAAAvoK,EAAA,GAAS,IAAIgxD,MAClCxvC,GAAK,EAAAthB,EAAA,GAAqBtB,EAAOqlJ,GAAe+hB,EAAexkJ,EAAG,GAAIgnJ,EAAkBhnJ,EAAG,GAC3FinJ,EAAeC,EAAwBf,EAAYC,GACnDe,EAAqBV,GAAcrpK,GAASqlJ,GAAgBskB,EAC5DxC,EAAkB,WAAc,WAAc,OAAO6C,EAAcD,EAAoB,QAAShB,EAAYC,EAAY,GAAG,CAACe,EAAoBhB,EAAYC,IAC5JiB,EAAgB,WAAc,WAAc,OAAOD,EAAcD,EAAoB,MAAOhB,EAAYC,EAAY,GAAG,CAACe,EAAoBhB,EAAYC,IACxJkB,GAAoB,WAAc,WAElC,IADA,IAAIC,EAAcx9K,MAAMk9K,GACf15K,EAAI,EAAGA,EAAI05K,EAAc15K,IAC9Bg6K,EAAYh6K,GAAK,EAErB,OAAOg6K,EAAYl+K,KAAI,SAAU4b,EAAGyE,GAChC,IFpC4Bs7J,EAChCl5K,EEmCQsvC,GFpCwB4pI,EEoCamB,EAAaz8J,GFnC1D5d,EAAS,IAAI0jE,KEmCe+0G,EFnCL90G,YACpB+3G,QAAQ17K,EAAO2jE,UAAYu1G,EAAU,IAAct/K,iBAAmB,IAAcL,oBACpFyG,GEkCCsvC,EAAOiqI,WAAW,GAClB,IAAIoC,EAAsBnC,EAAiBlqI,EAAQmqI,EAAajB,GAEhE,MAAO,CACHn7J,IAAKs+J,EACLvgK,KAHaw/J,EAAeA,EAAatrI,GAAUqsI,EAInD3/J,KAAMszB,EAEd,GACJ,GAAG,CAACmpI,EAAiB4B,EAAYc,EAAc1B,EAAamB,EAAcpC,IAC1E,aAAgB,WACZ,GAAIE,IAAiB3iI,MAAM2iI,EAAah9F,WAAY,CAChD,IAAIkgG,EAAwBpC,EAAiBd,EAAce,EAAajB,GACpEqD,EAAiBL,GAAkBlwH,MAAK,SAAUhc,GAAU,OAAOA,EAAOjyB,MAAQu+J,CAAuB,IAC7GlyB,EAAemyB,aAAuD,EAASA,EAAex+J,KAC9F29J,EAAgBa,EAAiBA,EAAezgK,KAAOwgK,EAC3D,MAEIlyB,EAAe,KAEvB,GAAG,CAACgvB,EAAc8C,GAAmBZ,EAAcnB,EAAajB,IAChE,IAAI//J,GAAgB,eAAkB,SAAUnW,EAAIgtC,EAAQwsI,EAAQ1yI,GAChE,IAuCI2yI,EAnBAC,EAAwB,GAoB5B,GAnBI5yI,GACIyV,IAAkBvP,IACbsrI,EAMGC,IACAmB,EAAwBnB,EAAoBzxI,IALhD4yI,EAzBY,SAAUC,GAC9B,IAAID,EAAwB,GAQ5B,IANIxD,EACQiB,EAAcO,EAA6BC,EAG3CR,EAAcS,EAA6BC,GAE5CxgI,KAAKsiI,IAGX,GAAI3B,GAAajkI,EAAQokI,4BAA6B,CACvD,IAAIyB,EAAa3D,EAAyBC,EAAWC,EAAiBwD,IAClEC,EAAazD,GAAmByD,EAAaX,KAC7CS,GAAwB,OAAO3lI,EAAQokI,4BAA6BhC,EAAgBv9J,WAAYqgK,EAAcrgK,YAEtH,OAPI8gK,EAAwB3lI,EAAQunC,yBAQpC,OAAOo+F,CACX,CAMoCG,CAAkB/yI,IAUlD0xI,GAAsB58H,IAAiB89H,GAEvClB,EAAmBx4K,EAAI,CAAE47C,aAAc89H,IAGvCA,QAAoCt7K,IAAV0oC,IAAwBA,EAAM/rC,OAAS,CACjE,IAAI++K,EAAgBhzI,IAAUkG,aAAuC,EAASA,EAAOl0B,OAAS,GAC9F4/J,EAAgBoB,GAChBlB,EAAgBc,EAAwB,IAAIt4G,KAAK,gBAAahjE,GAC9Dq7K,EAAc,IAAIr4G,KAAK,UAC3B,KACK,CACD,IAAI24G,OAAc,GACb/sI,aAAuC,EAASA,EAAOtzB,gBAAiB0nD,KACzE24G,EAAc/sI,EAAOtzB,MAGjBogK,GAAiB9sI,aAAuC,EAASA,EAAOjyB,MAAQ+rB,GAAS,GAC7FizI,EAAc9D,EAAyBC,EAAWC,EAAiB2D,IAEvElB,EAAgBmB,GAChBN,EAAcM,CAClB,CACAtpK,SAAoDA,EAASzQ,EAAIy5K,GACjEh8F,EAAgBi8F,EACpB,GAAG,CACC1B,EACA7B,EACA8C,EACA18H,EACA+7H,EACAC,EACApB,EACAjB,EACAniI,EAAQunC,yBACRvnC,EAAQokI,4BACRS,EACAJ,EACA/nK,EACAmrC,IAeJ,OAAQ,gBAAoBa,EAAAu9H,GAAU,QAAS,CAAC,EAAGnyJ,EAAM,CAAE00B,cAAeA,EAAe5O,YAAaA,EAAa/oB,MAAOA,EAAOg3B,aAAcA,EAAcpiD,QAAS0/K,GAAmBzoK,SAAU0F,GAAe2C,KAAM2/J,EAEpNnuJ,WAfqB,SAAUrqB,GAE/B,IAAIg6K,EAAWh6K,EAAMg6K,SAChB3B,GAEE2B,GAAY31K,EAAA,EAAS41K,MAAQD,GAAY31K,EAAA,EAAS61K,OACjDF,IAAa31K,EAAA,EAASC,OACtB01K,IAAa31K,EAAA,EAAS8qC,GACtB6qI,IAAa31K,EAAA,EAAS81K,GACtBH,IAAa31K,EAAA,EAASzF,GAC1BoB,EAAMwG,gBAEd,EAGoCq7C,wBAAwB,IAChE,EACAg2H,EAAWh+K,YAAc,aACzB,IAAIk/K,EAAgB,SAAUD,EAAoBsB,EAAUtC,EAAYC,GACpE,IAAIsC,EAAoB,IAAIl5G,KAAK23G,EAAmB13G,WACpD,GAAI22G,EAAW,CACX,IAAIuC,EAAmBC,EAAexC,GAClCyC,EAA8B,UAAbJ,EAAuBE,EAAiBhjK,MAAQgjK,EAAiBl0K,IAClFi0K,EAAkBxD,aAAe2D,GACjCH,EAAkBI,SAASD,EAEnC,KACsB,QAAbJ,GACLC,EAAkBh5G,QAAQg5G,EAAkB76G,UAAY,GAK5D,OAHA66G,EAAkBtD,WAAW,GAC7BsD,EAAkBrD,WAAW,GAC7BqD,EAAkBK,gBAAgB,GF3JH,SAAUn7G,EAAMu4G,GAC/C,IAAIr6K,EAAS,IAAI0jE,KAAK5B,EAAK6B,WACvBk2G,EAAS75K,EAAOq5K,aACpB,GAAI,IAAcz/K,iBAAmBygL,EACjCr6K,EAAOs5K,WAAW,OAEjB,CAED,IADA,IAAI4D,EAAQ,IAActjL,iBAAmBygL,EACpC54K,EAAI,EAAGA,GAAKy7K,EAAOz7K,IACxB,GAAIo4K,EAASQ,GAAc54K,EAAI,IAAMo4K,GAAUQ,EAAa54K,EAAG,CAC3Do4K,EAASQ,EAAa54K,EACtB,KACJ,CAEJzB,EAAOs5K,WAAWO,EACtB,CACA,OAAO75K,CACX,CE2IWm9K,CAAsBP,EAAmBvC,EACpD,EACIyC,EAAiB,SAAUxC,GAC3B,MAAO,CACHzgK,MAAOrQ,KAAKugD,IAAIvgD,KAAKsgD,IAAIwwH,EAAUzgK,MAxKpB,GACA,IAwKflR,IAAKa,KAAKugD,IAAIvgD,KAAKsgD,IAAIwwH,EAAU3xK,IAzKlB,GACA,IA0KvB,EAcIyyK,EAA0B,SAAUf,EAAYC,GAChD,IAAI8C,EAdc,SAAU9C,GAC5B,IAAI8C,EAAe,IAAcrjL,cACjC,GAAIugL,EAAW,CACX,IAAIuC,EAAmBC,EAAexC,GAClCuC,EAAiBhjK,MAAQgjK,EAAiBl0K,IAC1Cy0K,EAAe,IAAcrjL,cAAgBugL,EAAUzgK,MAAQygK,EAAU3xK,IAEpE2xK,EAAU3xK,IAAM2xK,EAAUzgK,QAC/BujK,EAAe9C,EAAU3xK,IAAM2xK,EAAUzgK,MAEjD,CACA,OAAOujK,CACX,CAEuBC,CAAgB/C,GACnC,OAAO9wK,KAAKC,MAAO,IAAc7P,iBAAmBwjL,EAAgB/C,EACxE,C,0IClMI/+J,GAAgB,EAAAC,EAAA,KAChBkO,EAAiB,SACV6zJ,EAAa,cAAiB,SAAUrgL,EAAO6jC,GACtD,IAAI/kC,EAAKkB,EAAMoP,GAAI+jH,OAAkB,IAAPr0H,EAAgB,MAAQA,EAAI0gB,EAAYxf,EAAMwf,UAAW8gK,EAAoBtgL,EAAM+oB,QAASzmB,EAAYtC,EAAMsC,UAAWmE,EAAKzG,EAAMgrC,eAAgBA,OAAwB,IAAPvkC,GAAwBA,EAAI+B,EAAWxI,EAAMwI,SAAU+3K,EAAcvgL,EAAMugL,YAAat2J,EAAQjqB,EAAMiqB,MAEzSu2J,EAAexgL,EAAMwgL,aAAcC,EAAUzgL,EAAMygL,QAEnDC,EAAc1gL,EAAM0gL,YAAa5qK,EAAW9V,EAAM8V,SAElDupG,EAAYr/G,EAAMq/G,UAAWshE,EAAgB3gL,EAAMwd,QAASojK,EAAS5gL,EAAM4gL,OAAQl/J,EAAO1hB,EAAM0hB,KAAM3hB,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MACvI8G,GAAK,EAAAiP,EAAA,GAAqB2qK,EAAmBt1I,EAAgB,eAAkB,SAAU3lC,EAAI4lC,GAC7Fn1B,SAAoDA,EAASzQ,EAAI4lC,GACjEo0E,SAAsDA,EAAUp0E,EACpE,GAAG,CAACn1B,EAAUupG,KAAct2F,EAAUriB,EAAG,GAAIm6K,EAAan6K,EAAG,GACzDvE,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACXkG,SAAUA,EACVugB,QAASA,EACTw3J,YAAaA,EACbO,cAAeF,IAAWH,IAE1BM,EAAeh4J,EAAU23J,EAAcF,EACvCvoK,GAAK,EAAA5B,EAAA,GAAMmW,EAAgBxsB,EAAMiY,IACjCg3B,EAAU,GAAG/3B,OAAOe,EAAI,UACxB+oK,EAAc,GAAG9pK,OAAOe,EAAI,cAC5BgpK,EAAYl4J,EAAU63J,EAASH,EAC/BS,GAAoB,QAAelhL,EAAO,KAAiB,CAC3D,mBAMAmhL,OAAe19K,EACd+b,GAAcuhK,IACX92J,IACAk3J,EAAelyI,GAEfgyI,IAAcE,IACdA,EAAeH,IAGvB,IAAII,EAAe,SAAa,OAChC,EAAA71I,EAAA,IAAc61I,GACdp1I,EAAgBhsC,EAAO+oB,EAASq4J,GAchC,IAQIt/K,EAAY,CACZqM,KAAM,CACF7L,UAAWH,EAAWgM,KACtBglB,OAAQ+tJ,EAAkB/tJ,QAE9BlJ,MAAO,CACH7oB,SAAU6oB,EACV3nB,UAAWH,EAAW8nB,MACtBmiB,QAASn0B,EACTA,GAAIg3B,GAER/f,UAAW,CACP5sB,UAAWH,EAAW+sB,WAE1BmyJ,MAAM,SAAS,QAAS,CAAC,EAAGH,GAAoB,CAAE,gBAAiB14K,EAAU,eAAgBugB,EAAS,aAAcvJ,GAAwBuhK,EAAc,kBAAmBI,EAAc7+K,UAAWH,EAAWk/K,KAAM,qBAAqB,EAAM,mBAAmB,EAAM74K,SAAUA,EAAUyP,GAAIA,EAAIuF,QAtB7R,SAAUnY,GACfmD,IACDq4K,GAAY93J,EAAS1jB,GACjBs7K,GACAA,EAAct7K,GAG1B,EAe6T2K,IAAKoxK,EAAc1/J,KAAMA,GAAc,SAAUvgB,KAAM,WAChX00C,MAAO,CACHvzC,UAAWH,EAAW0zC,OAE1BorI,UAAW,CACP7/K,SAAU6/K,EACV3+K,UAAWH,EAAWgc,KACtBiuB,QAASn0B,EACTA,GAAI+oK,IAGZ,OAAQ,gBAAoB7tD,GAAU,QAAS,CAAEnjH,IAAK6zB,GAAgB/hC,EAAUqM,MAC5E8b,GAAS,gBAAoB2pB,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUmoB,QAC3D,gBAAoB,OAAO,QAAS,CAAC,EAAGnoB,EAAUotB,WAC9C,gBAAoB,UAAU,QAAS,CAAC,EAAGptB,EAAUu/K,MACjD,gBAAoB,QAAQ,QAAS,CAAC,EAAGv/K,EAAU+zC,UACrD9sB,GAAW63J,GAAWH,IAAY,gBAAoB7sI,EAAA,GAAO,QAAS,CAAC,EAAG9xC,EAAUm/K,aAClG,IACAZ,EAAWlhL,YAAcqtB,EAAiB,OAC1C,IAAIwf,EAAkB,SAAUhsC,EAAOirC,EAAWq2I,GAC9C,sBAA0BthL,EAAM8hB,cAAc,WAAc,MAAO,CAC3DiH,cACA,QAASkiB,CACb,EACAljC,MAAO,WACCu5K,EAAgBz5K,SAChBy5K,EAAgBz5K,QAAQE,OAEhC,EACA,GAAG,CAACkjC,EAAWq2I,GACvB,E,WCjHWC,GAAS,EAAA59J,EAAA,GAAO08J,GCEJ,SAAUrgL,GAC7B,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EACxBx2B,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWkG,EAAWxI,EAAMwI,SAAUugB,EAAU/oB,EAAM+oB,QAASw3J,EAAcvgL,EAAMugL,YAAaO,EAAe9gL,EAAM8gL,aAC5JpiK,EAAiB9e,EAAM8e,eAAgBmF,EAAUjkB,EAAMikB,QAEvD29J,EAA0B9iK,EAAe4rB,eACzCm3I,EAAwB/iK,EAAe0uB,uBACvCs0I,EAA+BhjK,EAAegvB,8BAC9Ci0I,EAAkC99J,EAAQqC,YAC1C07J,EAAgCljK,EAAeiZ,oBAC/CkqJ,EAAkBnjK,EAAe0jJ,iBACjC0f,EAAyBpjK,EAAesuB,uBACxC+0I,EAA0BrjK,EAAeiZ,oBACzCqqJ,EAAiCtjK,EAAe+V,mBAChDwtJ,EAAkBvjK,EAAe0jJ,iBACjC8f,EAAyBxjK,EAAe8uB,mBACxC20I,EAA0BzjK,EAAeiZ,oBACzCumB,EAAoBx/B,EAAegW,aACvC,MAAO,CACHvmB,KAAM,CACF,YACA4a,GAAW,cACVvgB,GAAY,aACbA,GAAY,cACZ5I,EAAMkkB,MAAMyB,OACZ,CACImU,aAAc,OAElB6mJ,GAAe,CACX96J,QAAS,OACTC,WAAY,UAEhBpjB,GAEJ2nB,MAAO,CACH,kBACA,CAAExE,QAAS,gBACXjd,GAAY,CACRiW,MAAOy/B,EACPpuC,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,YAEX3f,IAERyhL,IACKO,GAAgB,CACjBrnJ,YAAa,IAEjBqnJ,GACIP,GAAe,CACfjW,MAAO,EACP/wI,WAAY,IAEhBgnJ,GAAe,CAAEr5E,UAAW,eAEhCh4E,UAAW,CACP,2BACA,CACIzJ,QAAS,OACTG,SAAU,aAGlBy7J,KAAM,CACF,wBACA,QAAczhL,EAAO,CAAEi1B,OAAQ,IAC/B,CACIvP,SAAU,OACV0P,UAAW,aACXloB,MAxES,GAyET8G,OAxEU,GAyEVkhB,aAAcstJ,GACdp2F,WAAY,gBACZrlE,OAAQ,aAAazP,OAAO+qK,GAC5B53I,WAAYm3I,EACZplK,OAAQ,UACRqJ,QAAS,OACTC,WAAY,SACZN,QAAS,QACT5D,SAAU,YAEbhZ,GAAY,EACRugB,GAAW,CACRjZ,UAAW,CACP,SAAU,CACN,CACI8W,YAAas7J,IAGrB,0BAA2B,CACvB,CACIj9J,gBAAiB08J,EACjB7xK,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,aAEjBngB,OAKpBsiB,GAAW,CACP,CACIshB,WAAYo3I,EACZ76J,YAAa,cACbc,eAAgB,YAEpB,CACI5X,WAAYpJ,EAAK,CACT,SAAU,CACN,CACIue,gBAAiBy8J,EACjB96J,YAAa,cACb9W,WAAYnJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBse,gBAAiB,aAErBte,MAIhBD,EAAG,OAAwB,QAAS,CAAEue,gBAAiB,cAAe,WACtEve,MAIhB8B,GAAY,CACR,CACI4T,OAAQ,YAEX2M,GAAW,CACR,CACInC,YAAau7J,IAGrBp5J,GAAW,CACP,CACI9D,gBAAiB28J,EACjBh7J,YAAa,cACbc,eAAgB,eAI3Blf,GAAY,CACTsH,UAAW,CACP,UAAW,CACPA,WAAY8T,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgD,YAAa,aAEjBhD,OAKpBiyB,MAAO,CACH,kBACA,CACIpwB,QAAS,QACT3Y,MAhKS,GAiKT8G,OAjKS,GAkKTkhB,aAAc,MACdk3D,WAAY,gBACZ/mE,gBAAiB48J,EAEjBj7J,YAAa,cACbuiB,YAAak5I,EACbj5I,YAAa,QACbpU,UAAW,eAEdxsB,GACGugB,GAAW,CACX,CACI9D,gBAAiB68J,EACjBhyK,WAAYqmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBlR,gBAAiB,SACjB2B,YAAa,UAEjBuP,KAGZ3tB,GAAY,EACPugB,GAAW,CACR,CACI9D,gBAAiB88J,IAGzBh5J,GAAW,CACP,CACI9D,gBAAiB+8J,MAKjC7jK,KAAM,CACF,sBACA,CACIrO,UAAW,CAEP,KAAM,CACFsV,QAAS,IACTI,OAAQ,QACRyP,WAAY,OACZlQ,WAAY,KAAYT,WAIpC9b,GAAY,CACRsH,UAAW,CACP,KAAM,CACF2O,MAAOy/B,EACPpuC,WAAYsmB,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB3X,MAAO,YAEX2X,OAM5B,QDhOkD3yB,EAAW,CACzD0iB,MAAO,U,iBEDJ,IAAIm8J,E,iBACX,SAAWA,GACPA,EAAaA,EAAmB,KAAI,GAAK,OAEzCA,EAAaA,EAAqB,OAAI,GAAK,SAE3CA,EAAaA,EAAmB,KAAI,GAAK,MAC5C,CAND,CAMGA,IAAiBA,EAAe,CAAC,G,0MCLhCjkK,GAAgB,EAAAC,EAAA,KAChBikK,EAA6B,SAAU/7K,GAEvC,SAAS+7K,IACL,IAAI37K,EAAmB,OAAXJ,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,KAShE,OARAkC,EAAMirB,iBAAmB,SAAU7xB,GAC/B,MAA6B,iBAAlBA,EAAM0iB,QACN,gBAAoB,IAAK,CAAEpgB,UAAWsE,EAAMoa,YAAYszF,SAAWt0G,EAAM0iB,SAGzE,gBAAoB,MAAO,CAAEpgB,UAAWsE,EAAMoa,YAAYszF,SAAWt0G,EAAM0iB,QAE1F,EACO9b,CACX,CAyBA,OArCA,QAAU27K,EAAa/7K,GAavB+7K,EAAYp+K,UAAUxB,OAAS,WAC3B,IAAI7D,EAAK4F,KAAK1E,MAAOsC,EAAYxD,EAAGwD,UAAWskD,EAAe9nD,EAAG8nD,aAAc/kC,EAAkB/iB,EAAG+iB,gBAAiB2d,EAAwB1gC,EAAG0gC,sBAAuBz/B,EAASjB,EAAGiB,OAAQkY,EAAKnZ,EAAGmZ,GAAImgB,EAAWt5B,EAAGs5B,SAAU3xB,EAAK3H,EAAGojB,gBAAiBA,OAAyB,IAAPzb,EAAgB/B,KAAKmtB,iBAAmBprB,EAAIoL,EAAgB/S,EAAG+S,cAAejS,EAAQd,EAAGc,MAQnW,OAPA8E,KAAKsc,YAAc3C,EAActe,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,GAAcskD,GAAgBA,EAAatkD,UACtDw9B,UAAW8mB,GAAgBA,EAAa7mB,cAAgB6mB,EAAa9mB,UAAY,EACjFf,SAAU6nB,GAAgBA,EAAa7nB,SACvC3G,SAAUA,IAEN,gBAAoBoR,EAAA,GAAS,QAAS,CAAEprC,OAAQyT,EAAegQ,gBAAiBA,EAAiB2d,sBAAuBA,GAAyBonB,GAAc,QAAeliD,KAAK1E,MAAO,KAAe,CAAC,OAAQ,CAAEsC,UAAWoC,KAAKsc,YAAY7S,OACpP,gBAAoB,MAAO,CAAE7L,UAAWoC,KAAKsc,YAAY0B,QAASzK,GAAIA,EAAI1Q,QAAS7C,KAAK1E,MAAMuH,QAAS8hD,aAAc3kD,KAAK1E,MAAMqpD,aAAcI,aAAc/kD,KAAK1E,MAAMypD,cAAgBvnC,EAAgBxd,KAAK1E,MAAO0E,KAAKmtB,mBAChO,EAEA0wJ,EAAYl1K,aAAe,CACvBwU,gBAAiB3I,EAAA,EAAgBE,UACjCgf,SAAU,QACVwuB,aAAc,CACV7mB,eAAe,EACfD,UAAW,GACXf,SAAU,EACVwI,iBAAiB,EACjB5U,YAAY,IAGb4vJ,CACX,CAvCgC,CAuC9B,aC1CSC,GAAU,EAAA7+J,EAAA,GAAO4+J,GCFL,SAAUviL,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAWxD,EAAKkB,EAAM8/B,UAAWA,OAAmB,IAAPhhC,EAAgB,GAAKA,EAAI2H,EAAKzG,EAAM++B,SAAUA,OAAkB,IAAPt4B,EAAgB,EAAIA,EAAI2xB,EAAWp4B,EAAMo4B,SAAUx4B,EAAQI,EAAMJ,MACzL8e,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAAOyQ,EAAU30B,EAAM20B,QAI5EkuJ,IAAoBl2K,KAAKyzB,KAAMF,EAAYA,EAAa,GAAKf,GAAY,EAAI/4B,OAAO08K,iBACxF,MAAO,CACHv0K,KAAM,CACF,aACAvO,EAAMkkB,MAAMyB,OACZ,KAAoB6vD,UACpB,CACI/qC,WAAY3rB,EAAe2qB,eAC3BJ,UAAW1U,EAAQmiB,WACnBtxB,QAAS,MACTgT,SAAUA,EACVtoB,UAAW,CACP,SAAU,CACN4S,QAAS,KACTkD,SAAU,WACVjZ,OAAQ81K,EACR14K,KAAM04K,EACNt4K,MAAOs4K,EACPh2K,IAAKg2K,EACL15I,OAAQ,KAIpBzmC,GAEJogB,QAAS,CACL,qBACAoB,EAAMiC,MACN,CACIH,SAAU,WACVmjB,OAAQ,EACRtqB,MAAOC,EAAesmG,aACtB1mE,SAAU,aACVC,aAAc,aACd/8B,SAAU,WAGlB8yF,QAAS,CACL,qBACA,CAEIhvF,SAAU,UACVP,WAAY,UACZtG,MAAO,UACP+G,OAAQ,IAIxB,QDpDoD/hB,EAAW,CAC3D0iB,MAAO,Y,UEGP,GAAgB,EAAA7H,EAAA,KAChBqkK,EAAiC,SAAUn8K,GAG3C,SAASm8K,EAAgB3iL,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KA4IxC,OA1IAkC,EAAMg8K,aAAe,cACrBh8K,EAAMi8K,mBAAoB,EAAA31K,EAAA,GAAM,WAChCtG,EAAMm/E,KAAO,WACTn/E,EAAMk8K,gBAAe,EACzB,EACAl8K,EAAMg1D,QAAU,WACZh1D,EAAMm8K,cACV,EACAn8K,EAAMo8K,kBAAoB,WACtB,GAAKp8K,EAAMg8K,aAAa/6K,QAAxB,CAGA,IAAI8a,EAAe/b,EAAM5G,MAAM2iB,aAG/B,QAAqBlf,IAAjBkf,EACA,OAAQA,GACJ,KAAK,IAAoBC,OACrB,OAAOhc,EAAMg8K,aAAa/6K,QAAQD,cACtC,KAAK,IAAoBq7K,KACrB,OAAOr8K,EAAMg8K,aAAa/6K,QAGtC,OAAOjB,EAAMg8K,aAAa/6K,OAZ1B,CAaJ,EACAjB,EAAMs8K,gBAAkB,SAAU79K,GAC1BuB,EAAMu8K,sBACNv8K,EAAMu8K,uBAAwB,EAGlCv8K,EAAMw8K,qBAAqB/9K,EAC/B,EACAuB,EAAMy8K,uBAAyB,SAAUh+K,GACjCs9K,EAAgBW,wBAA0BX,EAAgBW,yBAA2B18K,GACrF+7K,EAAgBW,uBAAuB1nH,UAE3C+mH,EAAgBW,uBAAyB18K,EACzCA,EAAM28K,qBACN38K,EAAM48K,iBACV,EACA58K,EAAM68K,eAAiB,SAAUp+K,GAO7BuB,EAAMu8K,uBAAsC,OAAbvlL,eAAkC,IAAbA,cAAsB,EAASA,SAASwL,iBAAmB/D,EAAGjH,OAClHwI,EAAM88K,gBAAkB98K,EAAMiU,OAAO1C,YAAW,WAC5CvR,EAAMm8K,cACV,GAAG,EACP,EAEAn8K,EAAMw8K,qBAAuB,SAAU/9K,GACnC,ICzCgB3H,EDyCZoB,EAAK8H,EAAM5G,MAAO2iB,EAAe7jB,EAAG6jB,aAAcghK,EAAQ7kL,EAAG6kL,MAKjE,GAJIhB,EAAgBW,wBAA0BX,EAAgBW,yBAA2B18K,GACrF+7K,EAAgBW,uBAAuB1nH,UAE3C+mH,EAAgBW,uBAAyB18K,OACpBnD,IAAjBkf,EAA4B,CAC5B,IAAIihK,EAAkBh9K,EAAMo8K,oBAC5B,GAAIY,ICpEb,SAA+BlmL,GAClC,OAAOA,EAAQ2pD,YAAc3pD,EAAQ2+G,WACzC,CAmBWwnE,CADiBnmL,EDgDwBkmL,KC1D7C,SAA6BlmL,GAChC,OAAOA,EAAQ6V,aAAe7V,EAAQq/G,YAC1C,CAS6C+mE,CAAoBpmL,GDgD7C,MAER,CACA,IAAI2H,EAAGjH,UAAU,EAAAD,EAAA,GAAsBkH,EAAGjH,OAAQwI,EAAMo8K,qBAMxD,GAFAp8K,EAAM28K,qBACN38K,EAAM48K,kBACFG,IAAU,IAAapE,KAAM,CAC7B,IAAIwE,EAAYn9K,EAAMo9K,cAAcL,GACpC/8K,EAAMq9K,aAAer9K,EAAMiU,OAAO1C,YAAW,WACzCvR,EAAMk8K,gBAAe,EACzB,GAAGiB,EACP,MAEIn9K,EAAMk8K,gBAAe,EAE7B,EAEAl8K,EAAMs9K,qBAAuB,SAAU7+K,GACnC,IAAI8+K,EAAav9K,EAAM5G,MAAMmkL,WAC7Bv9K,EAAM28K,qBACN38K,EAAM48K,kBACFW,EACAv9K,EAAM88K,gBAAkB98K,EAAMiU,OAAO1C,YAAW,WAC5CvR,EAAMk8K,gBAAe,EACzB,GAAGqB,GAGHv9K,EAAMk8K,gBAAe,GAErBH,EAAgBW,yBAA2B18K,IAC3C+7K,EAAgBW,4BAAyB7/K,EAEjD,EACAmD,EAAMw9K,kBAAoB,SAAU/+K,IAE3BA,EAAGqE,QAAUC,EAAA,EAAS4gD,QAAUllD,EAAGG,UAAYoB,EAAMjH,MAAM0kL,mBAC5Dz9K,EAAMm8K,eACN19K,EAAG+C,kBAEX,EACAxB,EAAM28K,mBAAqB,WACvB38K,EAAMiU,OAAO3C,aAAatR,EAAM88K,gBACpC,EACA98K,EAAM48K,gBAAkB,WACpB58K,EAAMiU,OAAO3C,aAAatR,EAAMq9K,aACpC,EAEAr9K,EAAMm8K,aAAe,WACjBn8K,EAAM48K,kBACN58K,EAAM28K,qBACN38K,EAAMk8K,gBAAe,EACzB,EACAl8K,EAAMk8K,eAAiB,SAAUuB,GACzBz9K,EAAMjH,MAAM0kL,mBAAqBA,GACjCz9K,EAAM0T,SAAS,CAAE+pK,iBAAkBA,IAAoB,WAAc,OAAOz9K,EAAM5G,MAAMskL,iBAAmB19K,EAAM5G,MAAMskL,gBAAgBD,EAAmB,GAElK,EACAz9K,EAAMo9K,cAAgB,SAAUL,GAC5B,OAAQA,GACJ,KAAK,IAAap+J,OACd,OAAO,IACX,KAAK,IAAag/J,KACd,OAAO,IACX,QACI,OAAO,EAEnB,GACA,EAAAv3K,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CACV6kL,2BAA2B,EAC3BH,kBAAkB,GAEtBz9K,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GAClBA,CACX,CAwCA,OAxLA,QAAU+7K,EAAiBn8K,GAkJ3Bm8K,EAAgBx+K,UAAUxB,OAAS,WAC/B,IAAI7D,EAAK4F,KAAK1E,MAAO4mD,EAAe9nD,EAAG8nD,aAAcxlD,EAAWtC,EAAGsC,SAAUshB,EAAU5jB,EAAG4jB,QAASb,EAAkB/iB,EAAG+iB,gBAAiB2d,EAAwB1gC,EAAG0gC,sBAAuBl9B,EAAYxD,EAAG2mF,cAAextE,EAAKnZ,EAAGmZ,GAEjOxR,EAAK3H,EAAGgzD,mBAERA,OAA4B,IAAPrrD,GAAuBA,EAAIk0C,EAAe77C,EAAG67C,aAAc56C,EAASjB,EAAGiB,OAAQH,EAAQd,EAAGc,MAC/G8E,KAAKsc,YAAc,EAAcjhB,EAAQ,CACrCH,MAAOA,EACP0C,UAAWA,IAEf,IAAI+hL,EAAmB3/K,KAAK/E,MAAM0kL,iBAC9BI,EAAYxsK,GAAMvT,KAAKm+K,kBACvB6B,GAAqB,SAAS,QAAS,CAAEzsK,GAAI,GAAGf,OAAOutK,EAAW,aAAc/hK,QAASA,EAAS7Q,cAAenN,KAAKs+K,oBAAqBnhK,gBAAiBA,EAAiB2d,sBAAuBA,EAAuBonB,cAAc,QAAO,CAAC,EAAGA,EAAc,CAC9Pp4B,UAAW9pB,KAAKq+K,aAChBx7K,QAAS7C,KAAK2+K,uBACdh6H,aAAc3kD,KAAK0+K,qBACnB35H,aAAc/kD,KAAKw/K,uBACnB76H,aAAc3kD,KAAK0+K,qBAAsB35H,aAAc/kD,KAAKw/K,uBAAwB,QAAex/K,KAAK1E,MAAO,KAAe,CAAC,QAAS26C,GAE5IwB,GAAkBxB,aAAmD,EAASA,EAAaz4B,iBACzFy4B,EAAaz4B,gBAAgBwiK,GAAoB,SAAU1kL,GAAS,OAASA,aAAqC,EAASA,EAAM0iB,SAAW,gBAAoB,WAAgB,KAAM1iB,EAAM0iB,SAAW,IAAO,IAC9MA,EACF+jG,EAAc49D,KAAsBloI,EACpC5sC,EAAkBuiD,GAAsBuyH,GAAsBloI,EAAiBsoI,OAAYhhL,EAC/F,OAAQ,gBAAoB,OAAO,QAAS,CAAEnB,UAAWoC,KAAKsc,YAAY7S,KAAM6B,IAAKtL,KAAKk+K,cAAgB,CAAEnvJ,eAAgB/uB,KAAKw+K,iBAAmB,CAAEx4D,cAAehmH,KAAK++K,gBAAkB,CAAEp6H,aAAc3kD,KAAK0+K,qBAAsB35H,aAAc/kD,KAAKw/K,qBAAsBj7K,UAAWvE,KAAK0/K,kBAAmB1iK,KAAM,OAAQ,mBAAoBnS,IACjVnO,EACAqlH,GAAe,gBAAoB+7D,GAAS,QAAS,CAAC,EAAGkC,IACzD,gBAAoB,MAAO,CAAEvxJ,QAAQ,EAAMlb,GAAIwsK,EAAW1nK,MAAO,MAAsBo/B,GAC/F,EACAwmI,EAAgBx+K,UAAU6K,qBAAuB,WACzC2zK,EAAgBW,wBAA0BX,EAAgBW,yBAA2B5+K,OACrFi+K,EAAgBW,4BAAyB7/K,GAE7CiB,KAAKmW,OAAO5F,SAChB,EACA0tK,EAAgBt1K,aAAe,CAC3Bs2K,MAAO,IAAap+J,QAEjBo9J,CACX,CA1LoC,CA0LlC,aEjMEv/J,EAAmB,CACnBjV,KAAM,iBACNw2K,gBAAiB,mCCAVliK,GAAc,EAAAkB,EAAA,GAAOg/J,GDET,SAAU3iL,GAC7B,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAE/C,MAAO,CACHuO,KAAM,EAFO,QAAoBiV,EAAkBxjB,GAGpCuO,KACX,CACIsX,QAAS,UAEbnjB,GAGZ,QCd4DmB,EAAW,CACnE0iB,MAAO,e,kBCDJ,IAAIy+J,E,iBACX,SAAWA,GAEPA,EAAoBA,EAA4B,OAAI,GAAK,SAKzDA,EAAoBA,EAA0B,KAAI,GAAK,MAC1D,CARD,CAQGA,IAAwBA,EAAsB,CAAC,G,mfCRvCC,E,yNCDPxmK,GAAgB,EAAAC,EAAA,KAIhBwmK,EAA+B,SAAUt+K,GAEzC,SAASs+K,IACL,OAAkB,OAAXt+K,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAWA,OAdA,QAAUogL,EAAet+K,GAIzBs+K,EAAc3gL,UAAUxB,OAAS,WAC7B,IAAI7D,EAAK4F,KAAK1E,MAAO+kL,EAAUjmL,EAAGimL,QAAShlL,EAASjB,EAAGiB,OAAQ0G,EAAK3H,EAAGsQ,GAAImsH,OAAc,IAAP90H,EAAgB,MAAQA,EAAInE,EAAYxD,EAAGwD,UACzHH,EAAakc,EAActe,EAAQ,CAAEuC,UAAWA,IACpD,OAAQ,gBAAoBi5H,GAAM,QAAS,CAAE75G,KAAM,SAAUpf,UAAWH,EAAWgM,OAAQ,QAAezJ,KAAK1E,MAAO,KAAe,CAAC,eAClI,gBAAoB+xG,EAAA,EAAe,KAC/B,gBAAoB,MAAO,CAAEzvG,UAAWH,EAAWuoB,kBAAoBq6J,IACnF,EACAD,EAAcz3K,aAAe,CACzB,YAAa,UAEVy3K,CACX,CAhBkC,CAgBhC,a,WCpBSE,GAAY,EAAArhK,EAAA,GAAOmhK,GCFP,SAAU9kL,GAC7B,MAAO,CACHmO,KAAMnO,EAAMsC,UACZooB,iBAAkB,KAE1B,KHDA,SAAWm6J,GAEPA,EAAqBA,EAA2B,KAAI,GAAK,OAEzDA,EAAqBA,EAAmC,aAAI,GAAK,eAEjEA,EAAqBA,EAAiC,WAAI,GAAK,YAClE,CAPD,CAOGA,IAAyBA,EAAuB,CAAC,I,2BIVpD,QAAW,CAAC,CAAE,UAAa,mUAAqU,CAAE,MAAS,iBAAkB,aAAgB,WAAa,CAAE,UAAa,kJAAoJ,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,oFAAsF,CAAE,MAAS,qBAAsB,aAAgB,WAAa,CAAE,UAAa,4fAA8f,CAAE,MAAS,kBAAmB,aAAgB,WAAa,CAAE,UAAa,WAAa,CAAE,MAAS,iBAAkB,aAAgB,WAAa,CAAE,UAAa,+PAAiQ,CAAE,MAAS,mBAAoB,aAAgB,WAAa,CAAE,UAAa,sEAAwE,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,iIAAmI,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,ySAA2S,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,gGAAkG,CAAE,MAAS,aAAc,aAAgB,WAAa,CAAE,UAAa,oPAAsP,CAAE,MAAS,aAAc,aAAgB,WAAa,CAAE,UAAa,qDAAuD,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,6DAA+D,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,+GAAiH,CAAE,MAAS,eAAgB,aAAgB,WAAa,CAAE,UAAa,+9BAAi+B,CAAE,MAAS,cAAe,aAAgB,WAAa,CAAE,UAAa,6RAA+R,CAAE,MAAS,qBAAsB,aAAgB,WAAa,CAAE,UAAa,WAAa,CAAE,MAAS,cAAe,aAAgB,WAAa,CAAE,UAAa,+IACz1J,IAAI12K,EAAO,gBACP82K,EAAkB,2BAClB5nC,EAAc,uBACd6nC,EAA6B,sCAC7BjtG,EAAa,sBACbktG,EAAe,wBACfC,EAAiB,0BACjBC,EAAmB,4BACnBC,EAAuB,gCACvBC,EAAkB,2BAClBC,EAAqB,8BACrBC,EAAuB,gCCT9BC,EAAe,EACf,GAAgB,EAAApnK,EAAA,KAIhBqnK,EAAiC,SAAUn/K,GAE3C,SAASm/K,EAAgB3lL,GACrB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADA,EAAAsI,EAAA,GAAuBpG,GAChBA,CACX,CAgCA,OArCA,QAAU++K,EAAiBn/K,GAM3Bm/K,EAAgBxhL,UAAUxB,OAAS,WAC/B,IAAI7D,EACA2H,EAAK/B,KAAK1E,MAAO4lL,EAAkBn/K,EAAGm/K,gBAAiBC,EAAmBp/K,EAAGo/K,iBAAkBroK,EAAU/W,EAAG+W,QAASlb,EAAYmE,EAAGnE,UAAW2V,EAAKxR,EAAGwR,GAAI6tK,EAAer/K,EAAGq/K,aAAcC,EAAqBt/K,EAAGs/K,mBAAoBC,EAAwBv/K,EAAGu/K,sBAAuBjmL,EAAS0G,EAAG1G,OAAQH,EAAQ6G,EAAG7G,MAAOqmL,EAAwBx/K,EAAGw/K,sBAY1V9jL,EAAapC,EACX,EAAcA,EAAQ,CACpBH,MAAOA,EACP0C,UAAWA,EACX4jL,UAAWN,EAAgBv4H,UAAY04H,IAEzC,CACE53K,MAAM,EAAAyB,EAAA,GAAI,sBAAuB81K,EAAaT,iBAAkBnmL,EAAK,CAAC,EAClEA,EAAG,gBAAkB4mL,EAAaR,4BAA8BU,EAAgBv4H,UAAY04H,EAC5FjnL,GAAKwD,GACT21E,YAAY,EAAAroE,EAAA,GAAI,4BAA6B81K,EAAaztG,YAC1DolE,aAAa,EAAAztI,EAAA,GAAI,6BAA8B81K,EAAaroC,cAEpE,OAAQ,gBAAoB,MAAO,CAAE/6I,UAAWH,EAAWgM,KAAMuT,KAAM,gBACnE,gBAAoBsW,EAAA,EAAe,CAAExa,QAASA,EAASlb,UAAWH,EAAW81E,WAAYhgE,GAAIA,EAAI,gBAAiB2tK,EAAgBv4H,SAAU3rC,KAAM,SAAU,aAAckkK,EAAgBpmK,WAAaqmK,EAAiBD,EAAgB3lK,KAAMvb,KAAK1E,QACnP0E,KAAK1E,MAAMmmL,iBAAoB,gBAAoB5kK,EAAA,EAAY,CAAEH,UAAW6kK,QAAqEA,EAAwB,CAAE9kK,SAAU,UAAYphB,OAAQ,CAAE4nB,KAAM,CAAErC,SAAU,SAAY0F,MAAOg7J,EAAuBxmK,UAAWwmK,EAAuBxoK,QAASsoK,EAAcxjL,UAAWH,EAAWk7I,cAAkB,KAChX,EACOsoC,CACX,CAvCoC,CAuClC,a,WCvCE,EAAe,EACf,GAAgB,EAAArnK,EAAA,KAChB8nK,GAAwB,EAAAziK,EAAA,GAAOgiK,EAAiB,SAAuBliL,EAAW,CAClF0iB,MAAO,mBAKPkgK,EAA6B,SAAU7/K,GAEvC,SAAS6/K,EAAYC,GACjB,IAAI1/K,EAAQJ,EAAOpC,KAAKM,KAAM4hL,IAAqB5hL,KAkInD,OAjIAkC,EAAM2/K,oBAAsB,cAC5B3/K,EAAM4/K,qBAAuB,cAC7B5/K,EAAMw8C,iBAAmB,cACzBx8C,EAAM6/K,iBAAmB,cAIzB7/K,EAAM8/K,iBAAmB,SAAU77H,EAAS87H,GACxC,IAAIC,GAAiB,EACjBC,EAAwB,KACxBC,EAAwBlgL,EAAMjH,MAAMonL,mBACpCC,EAAmBpgL,EAAM5G,MAAMinL,YAAY7mL,OAC/C,GAAIyqD,IAAYlhD,EAAA,EAASa,KACrB,OAAQs8K,GACJ,KAAKjC,EAAqBqC,aAClBF,EAAmB,GACnBpgL,EAAMugL,sBAAsBt8H,GAC5Bg8H,EAAwBhC,EAAqB/vK,MAG7C+xK,EADKjgL,EAAM4/K,qBAAqB3+K,QACRg9K,EAAqBuC,WAGrBvC,EAAqBqC,aAEjD,MACJ,KAAKrC,EAAqBuC,WAClBxgL,EAAM2/K,oBAAoB1+K,QAC1Bg/K,EAAwBhC,EAAqBqC,aAExCF,EAAmB,GACxBpgL,EAAMugL,sBAAsBt8H,GAC5Bg8H,EAAwBhC,EAAqB/vK,MAG7C+xK,EAAwBhC,EAAqBuC,WAEjD,MACJ,KAAKvC,EAAqB/vK,MACU,IAA5B6xK,GAAiC//K,EAAM2/K,oBAAoB1+K,UAC3Dg/K,EAAwBhC,EAAqBqC,mBAKxD,GAAIr8H,IAAYlhD,EAAA,EAASU,GAC1B,OAAQy8K,GACJ,KAAKjC,EAAqBqC,aAClBtgL,EAAM4/K,qBAAqB3+K,QAC3Bg/K,EAAwBhC,EAAqBuC,WAExCJ,EAAmB,IACxBpgL,EAAMugL,sBAAsBt8H,GAC5Bg8H,EAAwBhC,EAAqB/vK,MAEjD,MACJ,KAAK+vK,EAAqBuC,WAClBJ,EAAmB,GACnBpgL,EAAMugL,sBAAsBt8H,GAC5Bg8H,EAAwBhC,EAAqB/vK,MAExClO,EAAM2/K,oBAAoB1+K,UAC/Bg/K,EAAwBhC,EAAqBqC,cAEjD,MACJ,KAAKrC,EAAqB/vK,MACU,IAA5B6xK,GAAiC//K,EAAM4/K,qBAAqB3+K,UAC5Dg/K,EAAwBhC,EAAqBuC,YAS7D,OAJ8B,OAA1BP,IACAjgL,EAAM0T,SAAS,CAAEysK,mBAAoBF,IACrCD,GAAiB,GAEdA,CACX,EACAhgL,EAAMygL,cAAgB,WAClB,IAAIvoL,EAAK8H,EAAM5G,MAAOsnL,EAAYxoL,EAAGwoL,UAAWC,EAAczoL,EAAGyoL,YAAaN,EAAcnoL,EAAGmoL,YAAaO,EAAgC1oL,EAAG0oL,8BAA+BC,EAAqB3oL,EAAG2oL,mBAAoBC,EAAoB5oL,EAAG4oL,kBAAmB57D,EAAchtH,EAAGgtH,YACrR,GAAKw7D,GAAcC,GAQd,GAAID,GAAaI,EAClB,OAAO57D,GAAe,OATM,CAC5B,GAAIm7D,EAAY7mL,OAAS,EACrB,OAAOonL,GAAiC,GAE5C,GAAIC,EACA,OAAOA,CAEf,CAIA,MAAO,EACX,EACA7gL,EAAM+gL,gBAAkB,WAChB/gL,EAAM5G,MAAM4nL,mBACZhhL,EAAM5G,MAAM4nL,mBAEZhhL,EAAM0T,SAAS,CAAEysK,mBAAoBlC,EAAqB/vK,OAElE,EACAlO,EAAMihL,cAAgB,WACdjhL,EAAM5G,MAAM8nL,mBACZlhL,EAAM5G,MAAM8nL,mBAEpB,EACAlhL,EAAMmhL,wBAA0B,WAC5B,QAAOnhL,EAAM5G,MAAMgoL,kBAAmBphL,EAAM5G,MAAMgoL,kBACtD,EACAphL,EAAMqhL,6BAA+B,SAAUhoK,EAAMU,GACjD,OAAO,SAAUtb,GACbuB,EAAM5G,MAAMkoL,kBAAkB7iL,EAAI4a,EAAMU,EAC5C,CACJ,EACA/Z,EAAMugL,sBAAwB,SAAUt8H,GACU,mBAAnCjkD,EAAM5G,MAAMmoL,oBACnBvhL,EAAM5G,MAAMmoL,mBAAmBt9H,EAEvC,EACAjkD,EAAMwhL,8BAAgC,SAAUnoK,EAAMU,GAClD,OAAO,SAAUtb,IAEbgjL,EADyBzhL,EAAM5G,MAAMqoL,oBAClBhjL,EAAI4a,EAAMU,GAC7Btb,EAAG+C,iBACP,CACJ,GACA,EAAA4E,EAAA,GAAuBpG,GACvBA,EAAMjH,MAAQ,CACVonL,mBAAoBlC,EAAqB/vK,MAEtClO,CACX,CAuKA,OA5SA,QAAUy/K,EAAa7/K,GAsIvB6/K,EAAYliL,UAAU+J,kBAAoB,WACtCxJ,KAAK4jL,iBACL5jL,KAAK6jL,sBAAwB7jL,KAAK0+C,iBAAmB1+C,KAAK0+C,iBAAiBv7C,QAAU,IACzF,EACAw+K,EAAYliL,UAAUuK,mBAAqB,WAInChK,KAAK0+C,iBAAiBv7C,SAAWnD,KAAK6jL,wBAA0B7jL,KAAK0+C,iBAAiBv7C,UACtFnD,KAAK4jL,iBACL5jL,KAAK6jL,sBAAwB7jL,KAAK0+C,iBAAiBv7C,QAE3D,EACAw+K,EAAYliL,UAAUxB,OAAS,WAC3B,IAAI7D,EAAI2H,EACJG,EAAQlC,KACRgC,EAAKhC,KAAK1E,MAAOwoL,EAAmB9hL,EAAG8hL,iBAAkBC,EAA6B/hL,EAAG+hL,2BAA4BC,EAAoBhiL,EAAGgiL,kBAAmBC,EAAoBjiL,EAAGiiL,kBAAmBrmL,EAAYoE,EAAGpE,UAAWsmL,EAA2BliL,EAAGkiL,yBAA0BnB,EAAqB/gL,EAAG+gL,mBAAoBR,EAAcvgL,EAAGugL,YAAaK,EAAY5gL,EAAG4gL,UAAWC,EAAc7gL,EAAG6gL,YAAaz7D,EAAcplH,EAAGolH,YAAa+8D,EAAwBniL,EAAGmiL,sBAAuBC,EAAgBpiL,EAAGoiL,cAAeC,EAA4BriL,EAAGqiL,0BAA2BC,EAAuBtiL,EAAGsiL,qBAAsBC,EAAoBviL,EAAGuiL,kBAAmBC,EAAgBxiL,EAAGwiL,cAAeviL,EAAKD,EAAGyiL,uBAAwBA,OAAgC,IAAPxiL,GAAuBA,EAAIyiL,EAAwB1iL,EAAG0iL,sBAAuBC,EAAuB3iL,EAAG2iL,qBAAsBzpL,EAAQ8G,EAAG9G,MAAOG,EAAS2G,EAAG3G,OAAQupL,EAAoB5iL,EAAG4iL,kBAAmBC,EAAgC7iL,EAAG6iL,8BAYl/B7kL,KAAKsc,YAAcjhB,EACb,EAAcA,EAAQ,CACpBH,MAAOA,EACP0C,UAAWA,EACX+mL,qBAAsBA,EACtBG,2BAA4B9kL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBqC,aACnFuC,4BAA6B/kL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBuC,aAEtF,CACEj5K,MAAM,EAAAyB,EAAA,GAAI,iBAAkBtN,EAAW,EAAa6L,MACpD6c,OAAO,EAAApb,EAAA,GAAI,uBAAwB,EAAay1K,kBAChDqE,qBAAqB,EAAA95K,EAAA,GAAI,uBAAwB,EAAau1K,cAAermL,EAAK,CAAC,EAC/EA,EAAG,eAAiB,EAAasmL,gBAAkB1gL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBuC,WAC1GtoL,IACJ6qL,oBAAoB,EAAA/5K,EAAA,GAAI,yBAA0B,EAAau1K,cAAe1+K,EAAK,CAAC,EAChFA,EAAG,eAAiB,EAAa2+K,gBAAkB1gL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBqC,aAC1GzgL,IACJg/K,sBAAsB,EAAA71K,EAAA,GAAI,sCAAuC,EAAa61K,sBAC9EH,sBAAsB,EAAA11K,EAAA,GAAI,2BAA4B,EAAa01K,qBAAsB+D,GACzFO,eAAe,EAAAh6K,EAAA,GAAI,sBAAuB,EAAa21K,kBAE/D,IAAIsE,EAAgBnlL,KAAKsc,YAAY+/C,mBAC/Br8D,KAAKsc,YAAY+/C,mBAAmB+oH,aACpCrmL,EAEFsmL,EAA2BhqL,EACzB,CAAEA,OAAQ8pL,GACV,CACEvnL,WAAW,EAAAsN,EAAA,GAAI,yBAA0B,EAAa41K,qBAW1D/nC,EAAa2rC,EACbL,GAA6BN,IAC7BhrC,EAAagrC,GAEjB,IAAIuB,OAAcvmL,EACd0lL,IACAa,EAAc/C,EAAY7mL,QAAU4oL,EAAuBC,EAAoBC,GAEnF,IAhBQj8J,EAgBJg9J,IAAqBhD,GAAgBA,EAAY7mL,QAAYknL,GAC7D4C,EAAiBxlL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBqC,aAAe,0BAAuBzjL,EAC9G0mL,EAAkBzlL,KAAK/E,MAAMonL,qBAAuBlC,EAAqBuC,WAAa,0BAAuB3jL,EACjH,OAAQ,gBAAoB,MAAO,CAAEnB,UAAWoC,KAAKsc,YAAY7S,KAAM,aAAco7K,GAAiC9rC,EAAYxlI,GAAIqxK,EAAmB5nK,KAAM,WAC3J,gBAAoBsjK,EAAW,CAAED,QAASrgL,KAAK2iL,gBAAiB,YAAa,WAC7E5pC,EAAa,gBAAoB,MAAO,CAAEn7I,UAAWoC,KAAKsc,YAAYgK,OAASyyH,GAAc,KAC7F+qC,GAAoB9jL,KAAKqjL,2BAA8B,gBAAoB/vJ,EAAA,EAAe,CAAElW,aAAcpd,KAAK6hL,oBAAqBjkL,UAAWoC,KAAKsc,YAAY2oK,mBAAoB1xK,GAAIiyK,EAAgB1sK,QAAS9Y,KAAKmjL,cAAe,oBAAqB,oBAAsBW,GAChRlB,GAAa,gBAAoB/6D,EAAA,GAAS,QAAS,CAAC,EAAGw9D,EAA0B,CAAEvqK,UAAWssG,EAAa7hG,MAAO6hG,KAClHm+D,GAxBIh9J,EAAgB,WAChB,OAAO,gBAAoB,MAAO,CAAE3qB,UAAWsE,EAAMoa,YAAY4oK,eAAiBnC,EACtF,EAGA,gBAAoB,MAAO,CAAExvK,GAAI,qBAAsByJ,KAAM,UAAYmnK,EAAwBA,OAAsBplL,EAAWwpB,GAAiBA,MAmBlHvoB,KAAK0lL,qBACtCzB,GAAqBC,GAA6B,gBAAoB5wJ,EAAA,EAAe,CAAElW,aAAcpd,KAAK8hL,qBAAsBlkL,UAAWoC,KAAKsc,YAAY0oK,oBAAqBtoK,UAAWsnK,GAAqB,CAAEvnK,SAAU,UAAYlJ,GAAIkyK,EAAiB3sK,QAAS9Y,KAAKijL,gBAAiB,oBAAqB,oBAAqBjmK,KAAM,UAAYinK,GACzVpB,EAAc,gBAAoBh7D,EAAA,GAAS,QAAS,CAAC,EAAGw9D,EAA0B,CAAEvqK,UAAWspK,EAAe7+J,MAAO6+J,KAAoB,MACzIkB,GAAgBpB,GAA6BG,GAA8BxB,EAA6G,KAA9F,gBAAoB,MAAO,CAAEjlL,UAAWoC,KAAKsc,YAAYgK,OAASg/J,EAAYtlL,KAAK1E,QACrL,EACAqmL,EAAYliL,UAAUkmL,mBAAqB,WACvC,QAAS3lL,KAAK8hL,qBAAqB3+K,WAAanD,KAAK6hL,oBAAoB1+K,OAC7E,EACAw+K,EAAYliL,UAAUmmL,2BAA6B,WAC/C,OAAO5lL,KAAK/E,MAAMonL,qBAAuBlC,EAAqB/vK,IAClE,EACAuxK,EAAYliL,UAAUomL,sBAAwB,WAC1C,OAAQ7lL,KAAK/E,MAAMonL,oBACf,KAAKlC,EAAqBqC,aACtBxiL,KAAKmjL,gBACL,MACJ,KAAKhD,EAAqBuC,WACtB1iL,KAAKijL,kBAGjB,EACAtB,EAAYliL,UAAUqmL,sBAAwB,WACtC9lL,KAAK6hL,oBAAoB1+K,QACzBnD,KAAK4V,SAAS,CAAEysK,mBAAoBlC,EAAqBqC,eAEpDxiL,KAAK8hL,qBAAqB3+K,SAC/BnD,KAAK4V,SAAS,CAAEysK,mBAAoBlC,EAAqBuC,YAEjE,EACAf,EAAYliL,UAAUsmL,sBAAwB,WACtC/lL,KAAK8hL,qBAAqB3+K,QAC1BnD,KAAK4V,SAAS,CAAEysK,mBAAoBlC,EAAqBuC,aAEpD1iL,KAAK6hL,oBAAoB1+K,SAC9BnD,KAAK4V,SAAS,CAAEysK,mBAAoBlC,EAAqBqC,cAEjE,EACAb,EAAYliL,UAAUumL,yBAA2B,WACzChmL,KAAK8hL,qBAAqB3+K,SAC1BnD,KAAK8hL,qBAAqB3+K,QAAQE,OAE1C,EACAs+K,EAAYliL,UAAUmkL,eAAiB,WACnC,GAAI5jL,KAAK0+C,iBAAiBv7C,SACtBnD,KAAK+hL,iBAAiB5+K,cACqBpE,IAA3CiB,KAAK+hL,iBAAiB5+K,QAAQwnD,SAAwB,CACtD,IAAIvwD,EAAK4F,KAAK0+C,iBAAiBv7C,QAASmnD,EAAelwD,EAAGkwD,aAAcC,EAAYnwD,EAAGmwD,UACnFxoD,EAAK/B,KAAK+hL,iBAAiB5+K,QAASqnD,EAAqBzoD,EAAGuoD,aAAcG,EAAY1oD,EAAG0oD,UAEzFC,EAAUH,EAAYD,EAAeG,EAAYD,EADvCD,EAAYE,EAGtBzqD,KAAK+hL,iBAAiB5+K,QAAQwnD,SAAS,EAAGJ,GAErCG,GACL1qD,KAAK+hL,iBAAiB5+K,QAAQwnD,SAAS,EAAGJ,EAAYC,EAAqBF,EAEnF,CACJ,EACAq3H,EAAYliL,UAAUimL,mBAAqB,WACvC,IAAIxjL,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAO2qL,EAAqB7rL,EAAG6rL,mBAAoBC,EAA4B9rL,EAAG8rL,0BAA2BC,EAA2B/rL,EAAG+rL,yBAA0B7B,EAAuBlqL,EAAGkqL,qBAAsB8B,EAAoBhsL,EAAGgsL,kBAAmB7E,EAAwBnnL,EAAGmnL,sBACpSgB,EAAcviL,KAAK1E,MAAMinL,YACzB8D,EAA6B3E,EAC7B52H,GAAiB,EAcrB,OAbAy3H,EAAYl0I,MAAK,SAAUr1C,EAASijB,GAChC,QAAIjjB,EAAQ2vD,WACRmC,EAAgB7uC,GACT,EAGf,IACIqoK,IACA/B,EACIz3H,GAAiBw5H,EACX/B,EAAYhwK,MAAMu4C,EAAgBw5H,EAAuB,EAAGx5H,EAAgB,GAC5Ey3H,EAAYhwK,MAAM,EAAG+xK,IAER,IAAvB/B,EAAY7mL,OACL,KAEH,gBAAoB,MAAO,CAAEkC,UAAWoC,KAAKsc,YAAYskK,qBAAsBt1K,IAAKtL,KAAK+hL,iBAAkB/kK,KAAM,gBAAkBulK,EAAY3mL,KAAI,SAAU0qL,EAAYrqK,GAAS,OAAQ,gBAAoB,MAAO,CAAE3Q,IAAKg7K,EAAW39H,SAAWzmD,EAAMw8C,sBAAmB3/C,EAAW2c,IAAK4qK,EAAW/qK,KAAKG,IAAM4qK,EAAW/qK,KAAKG,IAAMO,EAAOe,KAAM,gBACxV,gBAAoBqpK,EAA4B,CAAEnF,gBAAiBoF,EAAYnF,iBAAkB8E,EAAoBntK,QAAS5W,EAAMqhL,6BAA6B+C,EAAW/qK,KAAMU,GAAQre,UAAWuoL,EAA0B1E,iBAAkB2E,EAAmB9E,sBAAuB4E,EAA2B9E,aAAcl/K,EAAMwhL,8BAA8B4C,EAAW/qK,KAAMU,GAAQ1I,GAAI,OAAS0I,EAAOslK,sBAAuBA,IAA4B,IAChd,EACOI,CACX,CA9SgC,CA8S9B,aC9TEjjK,EAAmB,CACnBjV,KAAM,iBACNm3K,qBAAsB,2BACtBt6J,MAAO,uBACP2+J,mBAAoB,yBACpBD,oBAAqB,uBACrBI,QAAS,yBACTF,cAAe,sBACfnE,qBAAsB,sCACtB3nI,WAAY,eAET,SAAS,EAAU99C,GACtB,IAAIlB,EACAwD,EAAYtC,EAAMsC,UAAW+mL,EAAuBrpL,EAAMqpL,qBAAsBzpL,EAAQI,EAAMJ,MAAO4pL,EAA6BxpL,EAAMwpL,2BAA4BC,EAA8BzpL,EAAMypL,4BACxM5lK,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACnD8mB,EAAqB,CACrBzB,gBAAiB,cACjB0B,OAAQ,EACRvK,OAAQ,UACRoJ,OAAQ,EACRusB,YAAa,EACbnsB,SAAU,WACV6vD,UAAW,aAAav+D,OAAO2M,EAAQkS,cACvCniB,OAAQ,GACRygB,UAAW,OACXvnB,MAAO,OACPwY,SAAUxB,EAAMiC,MAAMT,SACtBxV,UAAW,CACP,SAAU,CACNmV,gBAAiBvG,EAAewF,0BAChC9H,OAAQ,WAEZ,kBAAmB,CACf6I,gBAAiBpB,EAAQq0D,YAE7B,kBAAmB,CACf5yD,SAAUxB,EAAMmC,WAAWX,SAC3BxY,MAAO,IAEX,mBAAoB,CAChB0Y,OAAQ,iBAIhBylK,EAA6B,CAC7BhmK,gBAAiBpB,EAAQq0D,WACzBpoE,WAAYhR,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEmmB,gBAAiB,YAAa2B,YAAa,YAAanI,MAAO,kBAAmB,WACxH3f,IAER,MAAO,CACHqP,KAAM,CACFhM,EAAWgM,KACX,CACIqpB,SAAU,KAEdl1B,GAEJgjL,qBAAsB,CAClBnjL,EAAWmjL,qBACX,CACIx9I,UAAW,OACXyB,UAAW,SACXtG,UAAW,IACXqG,UAAW,sBAEf+/I,GAEJr+J,MAAO,CACH7oB,EAAW6oB,MACX,CACI5F,QAAS,SACTE,SAAUxB,EAAMiC,MAAMT,SACtB7G,MAAOoF,EAAQiD,aACfzB,WAAY,GACZqwD,aAAc,aAAax+D,OAAOwH,EAAewF,6BAGzDylK,mBAAoB,CAChBxnL,EAAWwnL,mBACXjjK,EACA8iK,GAA8B,CAACrnL,EAAW27C,WAAYmtI,IAE1DvB,oBAAqB,CACjBvnL,EAAWunL,oBACXhjK,EACA+iK,GAA+B,CAACtnL,EAAW27C,WAAYmtI,IAE3DrB,cAAe,CACXznL,EAAWynL,cACX,CACIv1J,UAAW,SACX5V,MAAOoF,EAAQO,iBACfkB,SAAUxB,EAAMiC,MAAMT,SACtBD,WAAY,KAGpBogK,qBAAsB,CAACtjL,EAAWsjL,qBAAsB,MACxD1kH,mBAAoB,CAChB+oH,QAAS,CACL37K,KAAM,CACFhM,EAAW2nL,QACX,CACItkK,OAAQ,QACRusB,YAAa,GACb1d,UAAW,OACX/Q,WAAY,SACZ+B,WAAY,GACZC,SAAUxB,EAAMiC,MAAMT,WAG9BukB,OAAQ,CACJpkB,QAAS,eACT6T,cAAe,UAEnBrP,MAAO,CACHxE,QAAS,eACT6T,cAAe,SACf9T,OAAQ,mBAK5B,CC3HA,IAAI0lK,GAAuC,WACvC,SAASA,IACL,IAAItkL,EAAQlC,KACZA,KAAKymL,mBAAqB,SAAU92K,GAChC,YAAsB5Q,IAAf4Q,EAAM4L,IACjB,EACAvb,KAAK0mL,uBAAyB,SAAUJ,GACpC,OAAIpkL,EAAMukL,mBAAmBH,GAClBA,EAGA,CACH/qK,KAAM+qK,EACN39H,UAAU,EACV7tC,UAAWwrK,EAAWxrK,UAGlC,EACA9a,KAAKuiL,YAAc,GACnBviL,KAAK4qF,cAAgB,CACzB,CAmGA,OAlGA47F,EAAsB/mL,UAAUknL,kBAAoB,SAAUC,EAAgB97H,EAAe+7H,GACzF,GAAID,GAAkBA,EAAelrL,OAAS,EAAG,CAC7C,GAAImrL,GAAYD,EAAelrL,OAASmrL,EAAU,CAC9C,IAAI57F,EAAangC,GAAiBA,EAAgB+7H,EAAW/7H,EAAgB,EAAI+7H,EAAW,EAC5FD,EAAiBA,EAAer0K,MAAM04E,EAAYA,EAAa47F,EAAW,EAC9E,CACA7mL,KAAKuiL,YAAcviL,KAAK8mL,oCAAoCF,GAC5D5mL,KAAK4qF,aAAe9/B,GAAgC,GAC7B,IAAnBA,EACA9qD,KAAK+mL,uBAAoBhoL,OAEFA,IAAlB+rD,IACL9qD,KAAKuiL,YAAYz3H,GAAenC,UAAW,EAC3C3oD,KAAK+mL,kBAAoB/mL,KAAKuiL,YAAYz3H,GAElD,MAEI9qD,KAAKuiL,YAAc,GACnBviL,KAAK4qF,cAAgB,EACrB5qF,KAAK+mL,uBAAoBhoL,CAEjC,EAIAynL,EAAsB/mL,UAAUunL,eAAiB,WAC7C,GAAIhnL,KAAKuiL,aAAeviL,KAAKuiL,YAAY7mL,OAAQ,CAC7C,GAAIsE,KAAK4qF,aAAe5qF,KAAKuiL,YAAY7mL,OAAS,EAE9C,OADAsE,KAAKinL,sBAAsBjnL,KAAK4qF,aAAe,IACxC,EAEN,GAAI5qF,KAAK4qF,eAAiB5qF,KAAKuiL,YAAY7mL,OAAS,EAErD,OADAsE,KAAKinL,sBAAsB,IACpB,CAEf,CACA,OAAO,CACX,EAIAT,EAAsB/mL,UAAUynL,mBAAqB,WACjD,GAAIlnL,KAAKuiL,aAAeviL,KAAKuiL,YAAY7mL,OAAQ,CAC7C,GAAIsE,KAAK4qF,aAAe,EAEpB,OADA5qF,KAAKinL,sBAAsBjnL,KAAK4qF,aAAe,IACxC,EAEN,GAA0B,IAAtB5qF,KAAK4qF,aAEV,OADA5qF,KAAKinL,sBAAsBjnL,KAAKuiL,YAAY7mL,OAAS,IAC9C,CAEf,CACA,OAAO,CACX,EACA8qL,EAAsB/mL,UAAU0nL,eAAiB,WAC7C,OAAOnnL,KAAKuiL,WAChB,EACAiE,EAAsB/mL,UAAU2nL,eAAiB,WAC7C,OAAOpnL,KAAK+mL,iBAChB,EACAP,EAAsB/mL,UAAU4nL,qBAAuB,SAAUprK,GAC7D,OAAOjc,KAAKuiL,YAAYtmK,EAC5B,EACAuqK,EAAsB/mL,UAAU6nL,sBAAwB,WACpD,QAAOtnL,KAAK+mL,iBAChB,EACAP,EAAsB/mL,UAAU8nL,iBAAmB,SAAUtrK,GACzDjc,KAAKuiL,YAAY7nK,OAAOuB,EAAO,EACnC,EACAuqK,EAAsB/mL,UAAU+nL,wBAA0B,SAAUC,GAChE,IAAIC,EAAY1nL,KAAK8mL,oCAAoC,CAACW,IAAgB,GAC1EznL,KAAK+mL,kBAAoBW,CAC7B,EACAlB,EAAsB/mL,UAAUqnL,oCAAsC,SAAUvE,GAC5E,OAAOjmL,MAAMC,QAAQgmL,GAAeA,EAAY3mL,IAAIoE,KAAK0mL,wBAA0B,EACvF,EACAF,EAAsB/mL,UAAUkoL,uBAAyB,WACjD3nL,KAAK4qF,cAAgB,IACrB5qF,KAAKuiL,YAAYviL,KAAK4qF,cAAcjiC,UAAW,EAC/C3oD,KAAK4qF,cAAgB,EAE7B,EACA47F,EAAsB/mL,UAAUwnL,sBAAwB,SAAUhrK,GAC1DA,EAAQjc,KAAKuiL,YAAY7mL,OAAS,GAAKugB,EAAQ,GAC/Cjc,KAAK4qF,aAAe,EACpB5qF,KAAK+mL,kBAAkBp+H,UAAW,EAClC3oD,KAAK+mL,kBAAoB/mL,KAAKuiL,YAAY,GAC1CviL,KAAK+mL,kBAAkBp+H,UAAW,IAG9B3oD,KAAK4qF,cAAgB,IACrB5qF,KAAKuiL,YAAYviL,KAAK4qF,cAAcjiC,UAAW,GAEnD3oD,KAAKuiL,YAAYtmK,GAAO0sC,UAAW,EACnC3oD,KAAK4qF,aAAe3uE,EACpBjc,KAAK+mL,kBAAoB/mL,KAAKuiL,YAAYtmK,GAElD,EACOuqK,CACX,CAxH0C,G,wBCD1C,QAAW,CAAC,CAAE,UAAa,0RAA4R,CAAE,MAAS,kBAAmB,aAAgB,WAAa,CAAE,UAAa,6EAA+E,CAAE,MAAS,qBAAsB,aAAgB,WAAa,CAAE,UAAa,+EAAiF,CAAE,MAAS,sBAAuB,aAAgB,WAAa,CAAE,UAAa,kKAAsK,CAAE,MAAS,sBAAuB,aAAgB,WAAa,CAAE,UAAa,2uBACz6B,IAAIoB,GAAS,kBACTC,GAAa,sBACbC,GAAe,wBACfxrI,GAAgB,yBAChByrI,GAAc,uBACdC,GAAc,uBACdvlE,GAAmB,4BCG1B,GAAe,EAEf,IAAgB,EAAA7oG,EAAA,KAYhBquK,GAA4B,SAAUnmL,GAEtC,SAASmmL,EAAWC,GAChB,IAXsBC,EAWlBjmL,EAAQJ,EAAOpC,KAAKM,KAAMkoL,IAAoBloL,KAElDkC,EAAMuH,KAAO,cACbvH,EAAMulC,MAAQ,cACdvlC,EAAMkmL,kBAAoB,cAI1BlmL,EAAMmmL,uBAAyB1G,EAE/Bz/K,EAAMomL,oBArBgBH,EAqB0BjmL,EAAMmmL,wBApBnD,EAAAppK,EAAA,GAAOkpK,EAAiB,OAAmBppL,EAAW,CACzD0iB,MAAO,iBAoBPvf,EAAMy8C,wBAAyB,EAC/Bz8C,EAAMqmL,mBAAqB,SAAU5nL,GACjC,IAAI6nL,EAAqB,WACrB,IAAIC,GAAmB,EACnBvmL,EAAM5G,MAAMwuB,YACZ2+J,EAAmBvmL,EAAM5G,MAAMwuB,UAAUnpB,EAAIuB,EAAMwmL,gBAAgB3B,kBAAoB7kL,EAAMwmL,gBAAgB3B,kBAAkBxrK,UAAOxc,MAErI4B,GAAOA,IAAOA,EAAGopB,oBAEO,IAArB0+J,GACAvmL,EAAMymL,eACNzmL,EAAMwmL,gBAAgBpB,yBACtBplL,EAAMjH,MAAMub,uBACZtU,EAAM0mL,eAAe,EAGjC,EACI1mL,EAAM2mL,eACN3mL,EAAM2mL,eAAetmJ,MAAK,WAAc,OAAOimJ,GAAsB,IAGrEA,IAEJtmL,EAAM0T,SAAS,CAAEkzK,oBAAoB,GACzC,EACA5mL,EAAMuhL,mBAAqB,SAAUt9H,GACjCjkD,EAAM6mL,aACF7mL,EAAMwmL,gBAAgBnG,aAAergL,EAAMwmL,gBAAgBnG,YAAY7mL,OAAS,IAC5EyqD,IAAYlhD,EAAA,EAASU,GACrBzD,EAAMwmL,gBAAgBzB,sBAAsB/kL,EAAMwmL,gBAAgBnG,YAAY7mL,OAAS,GAElFyqD,IAAYlhD,EAAA,EAASa,MAC1B5D,EAAMwmL,gBAAgBzB,sBAAsB,GAGxD,EACA/kL,EAAM4U,cAAgB,SAAUnH,GAC5BzN,EAAMm3J,YAAY1pJ,GAClBzN,EAAM0T,SAAS,CACXsuK,0BAA0B,EAC1BG,2BAA2B,GAEnC,EACAniL,EAAMshL,kBAAoB,SAAU7iL,EAAI4a,EAAMU,GAC1C/Z,EAAM0mL,eAAe3sK,EACzB,EACA/Z,EAAMyhL,mBAAqB,SAAUhjL,EAAI4a,EAAMU,GACvC/Z,EAAM5G,MAAM0tL,oBACZ9mL,EAAM5G,MAAM0tL,mBAAmBztK,GAEnCrZ,EAAMwmL,gBAAgBnB,iBAAiBtrK,EAC3C,EACA/Z,EAAM+mL,aAAe,SAAUtoL,GAC3BuB,EAAM+pF,UAAU86C,gBAAe,GAI1B7kI,EAAMjH,MAAMmlK,YACbl+J,EAAMgnL,4BACFhnL,EAAM5G,MAAMyqC,YAAc7jC,EAAM5G,MAAMyqC,WAAWljC,SACjDX,EAAM5G,MAAMyqC,WAAWljC,QAAQlC,GAG3C,EACAuB,EAAMinL,YAAc,SAAUxoL,GACtBuB,EAAM5G,MAAMyqC,YAAc7jC,EAAM5G,MAAMyqC,WAAWsF,QACjDnpC,EAAM5G,MAAMyqC,WAAWsF,OAAO1qC,EAEtC,EACAuB,EAAMmpC,OAAS,SAAU1qC,GACrB,GAAIuB,EAAMjH,MAAMmlK,UAAW,CAMvB,IAAIn+H,EAAgBthC,EAAGshC,cACE,OAArBthC,EAAGshC,gBAMHA,EAAgB/oC,SAASwL,eAEzBu9B,KAAkB,EAAAzpC,EAAA,GAAgB0J,EAAMuH,KAAKtG,QAAS8+B,KACtD//B,EAAM0T,SAAS,CAAEwqJ,WAAW,IACxBl+J,EAAM5G,MAAM+vC,QACZnpC,EAAM5G,MAAM+vC,OAAO1qC,GAG/B,CACJ,EAIAuB,EAAMknL,eAAiB,SAAUzoL,GACzBuB,EAAMjH,MAAMiiB,MAAMxhB,SAAWwG,EAAMymL,eACnCzmL,EAAM6mL,WAAW7mL,EAAMjH,MAAMiiB,MAAMxhB,OAAS,EAEpD,EAKAwG,EAAM4W,QAAU,SAAUnY,QACS5B,IAA3BmD,EAAM5G,MAAMyqC,iBAA+DhnC,IAAnCmD,EAAM5G,MAAMyqC,WAAWjtB,SAC/D5W,EAAM5G,MAAMyqC,WAAWjtB,QAAQnY,GAGjB,IAAdA,EAAGwhF,QACHjgF,EAAMgnL,2BAEd,EACAhnL,EAAMW,QAAU,WACPX,EAAMjH,MAAMmlK,WACbl+J,EAAM0T,SAAS,CAAEwqJ,WAAW,GAEpC,EACAl+J,EAAMqC,UAAY,SAAU5D,GAExB,IAAIwlD,EAAUxlD,EAAGqE,MACjB,OAAQmhD,GACJ,KAAKlhD,EAAA,EAAS4gD,OACN3jD,EAAMjH,MAAM6tL,qBACZ5mL,EAAM0T,SAAS,CAAEkzK,oBAAoB,IACrCnoL,EAAGyG,iBACHzG,EAAG+C,mBAEP,MACJ,KAAKuB,EAAA,EAASkB,IACd,KAAKlB,EAAA,EAASiC,MACNhF,EAAMkmL,kBAAkBjlL,SAAWjB,EAAMkmL,kBAAkBjlL,QAAQyiL,6BACnE1jL,EAAMkmL,kBAAkBjlL,QAAQ0iL,yBAE1BllL,EAAGK,UAAYkB,EAAMwmL,gBAAgBpB,yBAA2BplL,EAAMjH,MAAM6tL,oBAClF5mL,EAAMmnL,qBACN1oL,EAAGyG,iBACHzG,EAAG+C,mBAGHxB,EAAMonL,6BAEV,MACJ,KAAKrkL,EAAA,EAASqR,UACLpU,EAAM5G,MAAMwI,UACb5B,EAAMqnL,YAAY5oL,GAEtBA,EAAG+C,kBACH,MACJ,KAAKuB,EAAA,EAASktK,IACLjwK,EAAM5G,MAAMwI,WACT5B,EAAMulC,MAAMtkC,SACZxC,EAAGjH,SAAWwI,EAAMulC,MAAMtkC,QAAQiU,cAClClV,EAAMjH,MAAM6tL,qBAC4B,IAAxC5mL,EAAMwmL,gBAAgB99F,cAClB1oF,EAAM5G,MAAM0tL,oBACZ9mL,EAAM5G,MAAM0tL,mBAAmB9mL,EAAMwmL,gBAAgB3B,kBAAkBxrK,MAE3ErZ,EAAMwmL,gBAAgBnB,iBAAiBrlL,EAAMwmL,gBAAgB99F,cAC7D1oF,EAAM2pB,eAGN3pB,EAAMqnL,YAAY5oL,IAG1BA,EAAG+C,kBACH,MACJ,KAAKuB,EAAA,EAASU,GACNzD,EAAMulC,MAAMtkC,SAAWxC,EAAGjH,SAAWwI,EAAMulC,MAAMtkC,QAAQiU,cAAgBlV,EAAMjH,MAAM6tL,qBACjF5mL,EAAMkmL,kBAAkBjlL,SACxBjB,EAAMkmL,kBAAkBjlL,QAAQ6+K,iBAAiB77H,EAASjkD,EAAMwmL,gBAAgB99F,eAChFjqF,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAM2pB,eAGF3pB,EAAMkmL,kBAAkBjlL,SACxBjB,EAAMkmL,kBAAkBjlL,QAAQwiL,sBACO,IAAvCzjL,EAAMwmL,gBAAgB99F,cACtBjqF,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAMkmL,kBAAkBjlL,QAAQ2iL,wBAChC5jL,EAAMwmL,gBAAgBf,yBACtBzlL,EAAM2pB,eAGF3pB,EAAMwmL,gBAAgBxB,uBACtBvmL,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAMsnL,uBAKtB,MACJ,KAAKvkL,EAAA,EAASa,KACN5D,EAAMulC,MAAMtkC,SAAWxC,EAAGjH,SAAWwI,EAAMulC,MAAMtkC,QAAQiU,cAAgBlV,EAAMjH,MAAM6tL,qBACjF5mL,EAAMkmL,kBAAkBjlL,SACxBjB,EAAMkmL,kBAAkBjlL,QAAQ6+K,iBAAiB77H,EAASjkD,EAAMwmL,gBAAgB99F,eAChFjqF,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAM2pB,eAGF3pB,EAAMkmL,kBAAkBjlL,SACxBjB,EAAMkmL,kBAAkBjlL,QAAQwiL,sBAChCzjL,EAAMwmL,gBAAgB99F,aAAe,IAAM1oF,EAAMwmL,gBAAgBnG,YAAY7mL,QAC7EiF,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAMkmL,kBAAkBjlL,QAAQ4iL,wBAChC7jL,EAAMwmL,gBAAgBf,yBACtBzlL,EAAM2pB,eAGF3pB,EAAMwmL,gBAAgB1B,mBACtBrmL,EAAGyG,iBACHzG,EAAG+C,kBACHxB,EAAMsnL,uBAOlC,EACAtnL,EAAMunL,aAAe,SAAUC,EAAaztK,GACxC,IAAIiB,EAAQhb,EAAMjH,MAAMiiB,MACxB,GAAIjB,GAAS,EAAG,CACZ,IAAI2jF,EAAW1iF,EACf0iF,EAAS3jF,GAASytK,EAClBxnL,EAAMynL,qBAAqB/pF,EAC/B,CACJ,EACA19F,EAAMghL,iBAAmB,WACrBhhL,EAAM0T,SAAS,CACXitK,aAAa,IACd,WACC,GAAI3gL,EAAM5G,MAAM4nL,kBAAoBhhL,EAAMulC,MAAMtkC,QAAS,CACrD,IAAIo/K,EAAcrgL,EAAM5G,MAAM4nL,iBAAiBhhL,EAAMulC,MAAMtkC,QAAQwM,MAAOzN,EAAMjH,MAAMiiB,OAClF0sK,EAAmBrH,EACnBsH,EAAyBtH,EACzBjmL,MAAMC,QAAQqtL,IACd1nL,EAAMykL,kBAAkBiD,GACxB1nL,EAAM0T,SAAS,CAAEitK,aAAa,KAEzBgH,EAAuBtnJ,MAC5BsnJ,EAAuBtnJ,MAAK,SAAUqkJ,GAClC1kL,EAAMykL,kBAAkBC,GACxB1kL,EAAM0T,SAAS,CAAEitK,aAAa,GAClC,GAER,MAEI3gL,EAAM0T,SAAS,CAAEitK,aAAa,IAE9B3gL,EAAMulC,MAAMtkC,SACZjB,EAAMulC,MAAMtkC,QAAQE,QAExBnB,EAAM0T,SAAS,CACXsuK,0BAA0B,EAC1BO,wBAAwB,GAEhC,GACJ,EACAviL,EAAM4nL,kBAAoB,SAAUvuK,GAChCrZ,EAAM6nL,QAAQxuK,GACdrZ,EAAMm3J,YAAY,IACdn3J,EAAMulC,MAAMtkC,SACZjB,EAAMulC,MAAMtkC,QAAQ4V,QAExB7W,EAAM0T,SAAS,CAAEkzK,oBAAoB,GACzC,EACA5mL,EAAM0mL,eAAiB,SAAU3sK,GAC7B/Z,EAAM4nL,kBAAkB5nL,EAAMwmL,gBAAgBrB,qBAAqBprK,GAAOV,KAC9E,EACArZ,EAAM6nL,QAAU,SAAUxuK,GACtB,IAAIyuK,EAAgB9nL,EAAM5G,MAAM2uL,eAC1B/nL,EAAM5G,MAAM2uL,eAAe1uK,GAC3BA,EACN,GAAsB,OAAlByuK,EAAJ,CAGA,IAAIE,EAAsBF,EACtBG,EAA2BH,EAC/B,GAAIG,GAA4BA,EAAyB5nJ,KACrD4nJ,EAAyB5nJ,MAAK,SAAU6nJ,GACpC,IAAIxqF,EAAW19F,EAAMjH,MAAMiiB,MAAM1K,OAAO,CAAC43K,IACzCloL,EAAMynL,qBAAqB/pF,EAC/B,QAEC,CACD,IAAIA,EAAW19F,EAAMjH,MAAMiiB,MAAM1K,OAAO,CAAC03K,IACzChoL,EAAMynL,qBAAqB/pF,EAC/B,CACA19F,EAAM0T,SAAS,CAAEY,sBAAuB,GAAI6zK,sBAAkBtrL,GAb9D,CAcJ,EACAmD,EAAMooL,WAAa,SAAU/uK,GACzB,IAAI2B,EAAQhb,EAAMjH,MAAMiiB,MACpBjB,EAAQiB,EAAM5N,QAAQiM,GAC1B,GAAIU,GAAS,EAAG,CACZ,IAAI2jF,EAAW1iF,EAAM3K,MAAM,EAAG0J,GAAOzJ,OAAO0K,EAAM3K,MAAM0J,EAAQ,IAChE/Z,EAAM0T,SAAS,CAAEy0K,iBAAkB9uK,IACnCrZ,EAAMynL,qBAAqB/pF,GAG3B19F,EAAMiU,OAAO1C,YAAW,WACpBvR,EAAM0T,SAAS,CAAEy0K,sBAAkBtrL,GACvC,GAAG,IACP,CACJ,EACAmD,EAAMqoL,YAAc,SAAUC,GAC1B,IACI5qF,EADQ19F,EAAMjH,MAAMiiB,MACH2f,QAAO,SAAUthB,GAAQ,OAAwC,IAAjCivK,EAAcl7K,QAAQiM,EAAc,IACzFrZ,EAAMynL,qBAAqB/pF,EAC/B,EAIA19F,EAAMuoL,+BAAiC,SAAU9pL,GAE7C,GAAIuB,EAAMjH,MAAM6tL,mBAEZ,OAAQnoL,EAAGqE,OACP,KAAKC,EAAA,EAASU,GACd,KAAKV,EAAA,EAASa,KACV,OAAO,EAInB,OAAInF,EAAGqE,QAAUC,EAAA,EAASiC,KAI9B,EACAhF,EAAMwoL,sBAAwB,SAAUxpI,GACpC,IAAIqhI,EAAcrgL,EAAM5G,MAAMqvL,qBAAqBzpI,EAAch/C,EAAMjH,MAAMiiB,OACzD,OAAhBqlK,GACArgL,EAAM0oL,sBAAsBrI,EAAarhI,EAEjD,EACAh/C,EAAMonL,2BAA6B,WAC/B,GAAIpnL,EAAM5G,MAAMuvL,iBACZ3oL,EAAMulC,MAAMtkC,SACZjB,EAAM5G,MAAMuvL,gBAAgB3oL,EAAMulC,MAAMtkC,QAAQwM,SAAW,KAAgBkoC,SAC3E31C,EAAM5G,MAAM8nL,kBAAmB,CAC/B,IAAIqE,EAAgBvlL,EAAM5G,MAAM8nL,kBAAkBlhL,EAAMulC,MAAMtkC,QAAQwM,MAAOzN,EAAM5G,MAAMuvL,gBAAgB3oL,EAAMulC,MAAMtkC,QAAQwM,QAC7HzN,EAAMwmL,gBAAgBlB,wBAAwBC,GAC9CvlL,EAAMmnL,oBACV,CACJ,EAKAnnL,EAAMgnL,0BAA4B,WAC9B,IAAKhnL,EAAMjH,MAAM6tL,mBAAoB,CACjC,IAAIrhJ,EAAQvlC,EAAMulC,MAAMtkC,QAAUjB,EAAMulC,MAAMtkC,QAAQwM,MAAQ,GACzD83B,EAIgD,IAA7CvlC,EAAMwmL,gBAAgBnG,YAAY7mL,OAClCwG,EAAMwoL,sBAAsBjjJ,GAG5BvlC,EAAM0T,SAAS,CACXyuK,2BAA2B,EAC3ByE,oBAAoB,IAT5B5mL,EAAM4oL,mBAad,CACJ,GACA,EAAAxiL,EAAA,GAAuBpG,GACvBA,EAAMiU,OAAS,IAAI+V,EAAA,EAAMhqB,GACzB,IAAIgb,EAAQgrK,EAAgB1mG,eAAiB0mG,EAAgB6C,sBAAwB,GAqBrF,OApBA7oL,EAAMqG,KAAM,EAAAC,EAAA,KACZtG,EAAM8oL,SAAW,CACbxpG,cAAe,kBAAkBhvE,OAAOtQ,EAAMqG,KAC9C0iL,wBAAyB,6BAA6Bz4K,OAAOtQ,EAAMqG,KACnE2iL,eAAgB,mBAAmB14K,OAAOtQ,EAAMqG,KAChD4iL,SAAU,YAAY34K,OAAOtQ,EAAMqG,MAEvCrG,EAAMwmL,gBAAkB,IAAIlC,GAC5BtkL,EAAM+pF,UAAY,IAAIuS,EAAA,EAAU,CAAEC,mBAAoB,WAAc,OAAOv8F,EAAMkpL,mBAAqB,IACtGlpL,EAAM+pF,UAAU0Q,SAASz/E,GACzBhb,EAAMjH,MAAQ,CACViiB,MAAOA,EACP1G,sBAAuB,GACvB6tK,2BAA2B,EAC3BH,0BAA0B,EAC1B9jB,WAAW,EACXyiB,aAAa,EACbnlI,gBAAiB,GACjB2sI,sBAAkBtrL,GAEfmD,CACX,CA2YA,OAtyBA,QAAU+lL,EAAYnmL,GA4ZtBmmL,EAAWhxK,yBAA2B,SAAUgmC,GAC5C,OAAIA,EAASukC,cACF,CAAEtkE,MAAO+/B,EAASukC,eAEtB,IACX,EACAniF,OAAOgN,eAAe47K,EAAWxoL,UAAW,QAAS,CACjD6M,IAAK,WACD,OAAOtM,KAAK/E,MAAMiiB,KACtB,EACA3Q,YAAY,EACZC,cAAc,IAElBy7K,EAAWxoL,UAAU+J,kBAAoB,WACrCxJ,KAAKisF,UAAU0Q,SAAS38F,KAAK/E,MAAMiiB,OACnCld,KAAK0qL,sBAAwB1qL,KAAKmW,OAAOuqB,SAAS1gC,KAAK0qL,sBAAuB1qL,KAAK1E,MAAM+vL,aAC7F,EACApD,EAAWxoL,UAAUuK,mBAAqB,SAAUgzC,EAAUsuI,GAC1D,IAAIppL,EAAQlC,KACZ,GAAIA,KAAK/E,MAAMiiB,OAASld,KAAK/E,MAAMiiB,QAAUouK,EAASpuK,MAAO,CACzD,IAAIquK,EAAuBvrL,KAAKisF,UAAU3uC,qBAAqB,GAC/Dt9C,KAAKisF,UAAU0Q,SAAS38F,KAAK/E,MAAMiiB,OAC/Bld,KAAK/E,MAAMmlK,YAGPpgK,KAAK/E,MAAMiiB,MAAMxhB,OAAS4vL,EAASpuK,MAAMxhB,QACzCsE,KAAKisF,UAAU8O,iBAAiBwwF,GAAsB,GAAO,GAC7DvrL,KAAK+oL,WAAWwC,IAGXvrL,KAAK/E,MAAMiiB,MAAMxhB,OAAS4vL,EAASpuK,MAAMxhB,SAAWsE,KAAK2oL,eAC9D3oL,KAAK+oL,WAAW/oL,KAAK/E,MAAMiiB,MAAMxhB,OAAS,GAGtD,CAEIsE,KAAK/E,MAAM6tL,qBAAuBwC,EAASxC,qBAC3C9oL,KAAK2+C,wBAAyB,EAC9B3+C,KAAKmW,OAAO3C,aAAaxT,KAAK+mD,8BAC9B/mD,KAAK+mD,6BAA+B/mD,KAAKmW,OAAO1C,YAAW,WACvDvR,EAAMy8C,wBAAyB,CACnC,GAAG,KAEX,EACAspI,EAAWxoL,UAAU6K,qBAAuB,WACpCtK,KAAK6oL,iBACL7oL,KAAK6oL,oBAAiB9pL,GAE1BiB,KAAKmW,OAAO5F,SAChB,EACA03K,EAAWxoL,UAAU4D,MAAQ,WACrBrD,KAAKynC,MAAMtkC,SACXnD,KAAKynC,MAAMtkC,QAAQE,OAE3B,EACA4kL,EAAWxoL,UAAU+rL,WAAa,WAC1BxrL,KAAKynC,MAAMtkC,SACXnD,KAAKynC,MAAMtkC,QAAQE,OAE3B,EACA4kL,EAAWxoL,UAAU4pL,mBAAqB,SAAUoC,GAC5CzrL,KAAK0oL,gBAAgBpB,yBAA2BtnL,KAAKynC,MAAMtkC,QAC3DnD,KAAK8pL,kBAAkB9pL,KAAK0oL,gBAAgB3B,kBAAkBxrK,MAEzDkwK,GACLzrL,KAAKspL,4BAEb,EACArB,EAAWxoL,UAAUxB,OAAS,WAC1B,IAAI7D,EAAK4F,KAAK/E,MAAOub,EAAwBpc,EAAGoc,sBAAuB4pJ,EAAYhmK,EAAGgmK,UAAWljJ,EAAQ9iB,EAAG8iB,MACxGnb,EAAK/B,KAAK1E,MAAOsC,EAAYmE,EAAGnE,UAAWmoC,EAAahkC,EAAGgkC,WAAYjiC,EAAW/B,EAAG+B,SAAU4nL,EAAqB3pL,EAAG2pL,mBAAoB1pL,EAAKD,EAAG4pL,cAAeA,OAAuB,IAAP3pL,EAAgB,OAASA,EAAI9G,EAAQ6G,EAAG7G,MAAOG,EAAS0G,EAAG1G,OAC7OytL,IAAuB9oL,KAAK/E,MAAM6tL,mBAClC/H,EAAuB+H,EAAqB9oL,KAAKgrL,SAASE,oBAAiBnsL,EAU3EtB,EAAapC,EACX,GAAcA,EAAQ,CACpBH,MAAOA,EACP0C,UAAWA,EACXwiK,UAAWA,EACXt8J,SAAUA,EACVgwK,eAAgB/tI,GAAcA,EAAWnoC,YAE3C,CACE6L,MAAM,EAAAyB,EAAA,GAAI,gBAAiBtN,GAAwB,IACnD6b,MAAM,EAAAvO,EAAA,GAAI,qBAAsB,GAAa28K,WAAY7nL,KAAK/E,MAAMmlK,WAAa,GAAa0nB,cAC9F8D,aAAc,GAAa5D,YAC3BvgJ,OAAO,EAAAv8B,EAAA,GAAI,sBAAuB,GAAa68K,YAAahiJ,GAAcA,EAAWnoC,WACrFooB,iBAAkB,GAAay8F,kBAEnCopE,EAAa7rL,KAAK1E,MAAM,gBAAkByqC,aAA+C,EAASA,EAAW,eAKjH,OAAQ,gBAAoB,MAAO,CAAEz6B,IAAKtL,KAAKyJ,KAAM7L,UAAWH,EAAWgM,KAAMlF,UAAWvE,KAAKuE,UAAW1B,QAAS7C,KAAK6C,QAASwoC,OAAQrrC,KAAKqrC,OAAQvyB,QAAS9Y,KAAKopL,gBAClKppL,KAAK8rL,kBAAkBruL,EAAWuoB,kBAClC,gBAAoB,OAAQ,CAAEzS,GAAI,GAAGf,OAAOxS,KAAKgrL,SAASxpG,cAAe,UAAW/yD,QAAQ,GAAQi9J,GAAsBG,GAC1H,gBAAoB1wF,EAAA,EAAe,CAAElP,UAAWjsF,KAAKisF,UAAW8B,cAAe,KAAcc,UACzF,gBAAoB,MAAO,CAAEjxF,UAAWH,EAAWgc,KAAM,YAAasnK,GAClE7jK,EAAMxhB,OAAS,GAAM,gBAAoB,OAAQ,CAAE6X,GAAIvT,KAAKgrL,SAASxpG,cAAe5jF,UAAWH,EAAWmuL,aAAc5uK,KAAM2uK,EAAe,kBAAmB,GAAGn5K,OAAOxS,KAAKgrL,SAASxpG,cAAe,WAAaxhF,KAAK+rL,eACzN/rL,KAAK2oL,eAAkB,gBAAoBnzK,GAAA,GAAU,QAAS,CAAEoiC,YAAY,GAAS7R,EAAY,CAAEnoC,UAAWH,EAAWgqC,MAAOrqB,aAAcpd,KAAKynC,MAAOl0B,IAAKwyB,aAA+C,EAASA,EAAWxyB,IAAMwyB,EAAWxyB,GAAKvT,KAAKgrL,SAASG,SAAUryK,QAAS9Y,KAAK8Y,QAASjW,QAAS7C,KAAKipL,aAAc59I,OAAQrrC,KAAKmpL,YAAapyK,mBAAoB/W,KAAK8W,cAAeN,sBAAuBA,EAAuB,wBAAyBsyK,EAAqB9oL,KAAKgsL,2BAAwBjtL,EAAW,gBAAiBgiL,EAAsB,mBAAoB7jK,EAAMxhB,OAAS,EAAIsE,KAAKgrL,SAASxpG,mBAAgBziF,EAAW,gBAAiB+pL,EAAoB,gBAAiB,UAAW,aAAc+C,EAAY7uK,KAAM,WAAYlZ,SAAUA,EAAUgT,cAAe9W,KAAK1E,MAAMwb,mBACnyB9W,KAAKisL,oBACb,EACAhE,EAAWxoL,UAAUkpL,YAAc,WAC/B,IAAIzrK,EAAQld,KAAK/E,MAAMiiB,MACnBgvK,EAAYlsL,KAAK1E,MAAM4wL,UAC3B,YAAqBntL,IAAdmtL,GAA2BhvK,EAAMxhB,OAASwwL,CACrD,EACAjE,EAAWxoL,UAAUwsL,kBAAoB,WACrC,IAAI/pL,EAAQlC,KACRmsL,EAAyBnsL,KAAKsoL,mBAClC,OAAOtoL,KAAK/E,MAAM6tL,oBAAsB9oL,KAAKynC,MAAS,gBAAoB3C,EAAA,GAAS,QAAS,CAAEzJ,eAAe,EAAOhB,SAAU,EAAG3gC,OAAQsG,KAAKynC,MAAMtkC,QAAUnD,KAAKynC,MAAMtkC,QAAQiU,kBAAerY,EAAW+qB,UAAW9pB,KAAKuoL,mBAAoBprK,gBAAiB3I,EAAA,EAAgBK,eAAgBimB,sBAAuBtmB,EAAA,EAAgBO,gBAEnUqsB,sBAAuB,SAAUzgC,GAAM,OAAOuB,EAAM8gD,gCAAgCriD,EAAK,GAAKX,KAAK1E,MAAM8wL,oBACzG,gBAAoBD,GAElB,QAAS,CAEPlG,mBAAoBjmL,KAAK1E,MAAM+wL,wBAAyB7I,kBAAmBxjL,KAAKwjL,kBAAmBG,mBAAoB3jL,KAAK2jL,mBAAoBpB,YAAaviL,KAAK0oL,gBAAgBvB,iBAAkB/pK,aAAcpd,KAAKooL,kBAAmBlF,iBAAkBljL,KAAKkjL,iBAAkBgB,yBAA0BlkL,KAAK/E,MAAMipL,yBAA0BtB,UAAW5iL,KAAK/E,MAAMqxL,mBAAoBtJ,kBAAmBhjL,KAAK/E,MAAMsxL,2BAA4B1J,YAAa7iL,KAAK/E,MAAM4nL,YAAawB,0BAA2BrkL,KAAK/E,MAAMopL,0BAA2BI,uBAAwBzkL,KAAK/E,MAAMwpL,uBAAwBhB,mBAAoBzjL,KAAKyjL,mBAAoByC,0BAA2BlmL,KAAK1E,MAAMgmL,sBAAuBsD,kBAAmB5kL,KAAKgrL,SAASE,eAAgB9H,kBAAmBpjL,KAAKspL,4BAA8BtpL,KAAK1E,MAAMkxL,0BAA6B,IAC51B,EACAvE,EAAWxoL,UAAUssL,YAAc,WAC/B,IAAI7pL,EAAQlC,KACR5F,EAAK4F,KAAK1E,MAAOwI,EAAW1J,EAAG0J,SAAUw9K,EAAwBlnL,EAAGknL,sBAAuBC,EAAwBnnL,EAAGmnL,sBACtHrmK,EAAelb,KAAK1E,MAAM4f,aAC1BnZ,EAAK/B,KAAK/E,MAAOiiB,EAAQnb,EAAGmb,MAAOwgC,EAAkB37C,EAAG27C,gBAC5D,OAAOxgC,EAAMthB,KAAI,SAAU2f,EAAMU,GAC7B,OAAOf,EAAa,CAChBK,KAAMA,EACNU,MAAOA,EACPP,IAAKH,EAAKG,IAAMH,EAAKG,IAAMO,EAC3B0sC,UAA8C,IAApCjL,EAAgBpuC,QAAQ2M,GAClCmlK,aAAc,WAAc,OAAOl/K,EAAMooL,WAAW/uK,EAAO,EAC3DzX,SAAUA,EACV2lL,aAAcvnL,EAAMunL,aACpBnI,sBAAuBA,EACvBC,sBAAuBA,GAE/B,GACJ,EACA0G,EAAWxoL,UAAUspL,WAAa,SAAU9sK,GACxC,IAAIiB,EAAQld,KAAK/E,MAAMiiB,MACvB,GAAIA,EAAMxhB,OAAQ,CAEdugB,EAAQA,QAAqCA,EAAQiB,EAAMxhB,OAAS,EACpE,IAAI+wL,EAAQzsL,KAAKyJ,KAAKtG,SAClBnD,KAAKyJ,KAAKtG,QAAQ8mF,iBAAiB,mCAAmCpiF,KAAKugD,IAAInsC,EAAOiB,EAAMxhB,OAAS,IACrG+wL,GACAA,EAAMppL,OAEd,MAEQrD,KAAKynC,MAAMtkC,SACXnD,KAAKynC,MAAMtkC,QAAQE,OAG/B,EACA4kL,EAAWxoL,UAAU+pL,mBAAqB,WACtC,GAAIxpL,KAAK0oL,gBAAgB3B,kBAAmB,CACxC,IAAIj2K,EAAe9Q,KAAKynC,MAAMtkC,QAAUnD,KAAKynC,MAAMtkC,QAAQwM,MAAQ,GAC/D+8K,EAAY1sL,KAAK2sL,iBAAiB3sL,KAAK0oL,gBAAgB3B,kBAAkBxrK,KAAMzK,GACnF9Q,KAAK4V,SAAS,CAAEY,sBAAuBk2K,GAC3C,CACJ,EACAzE,EAAWxoL,UAAU2rL,kBAAoB,WACrCprL,KAAK4V,SAAS,CACV8nC,gBAAiB19C,KAAKisF,UAAU3uC,sBAExC,EACA2qI,EAAWxoL,UAAUknL,kBAAoB,SAAUpE,GAC/C,IAAInoL,EACAwyL,EAAmE,QAA5CxyL,EAAK4F,KAAK1E,MAAMkxL,8BAA2C,IAAPpyL,OAAgB,EAASA,EAAGkqL,qBAC3GtkL,KAAK0oL,gBAAgB/B,kBAAkBpE,EAAa,EAAGqK,GACvD5sL,KAAK6rB,aACT,EAKAo8J,EAAWxoL,UAAUqrL,kBAAoB,WACrC,IAAI+B,EAA0B7sL,KAAK1E,MAAMwxL,0BACnC9sL,KAAK1E,MAAMwxL,0BAET9sL,KAAK1E,MAAMwvL,kBAEnB,GAAI+B,EAAyB,CACzB,IAAItK,EAAcsK,EAAwB7sL,KAAK/E,MAAMiiB,OACrDld,KAAK4qL,sBAAsBrI,GAC3BviL,KAAK4V,SAAS,CACVyuK,2BAA2B,EAC3ByE,oBAAoB,EACpB5E,0BAA0B,GAElC,CACJ,EACA+D,EAAWxoL,UAAU45J,YAAc,SAAUn4G,GACzClhD,KAAK0qL,sBAAsBxpI,EAC/B,EACA+mI,EAAWxoL,UAAUmrL,sBAAwB,SAAUrI,EAAarhI,GAChE,IAAIh/C,EAAQlC,KAIR1D,MAAMC,QAAQgmL,GACdviL,KAAK+sL,uBAAuB7rI,EAAcqhI,GAErCA,GAAeA,EAAYhgJ,OAChCviC,KAAK4V,SAAS,CACV02K,oBAAoB,IAExBtsL,KAAKgtL,kBAELhtL,KAAK0oL,gBAAgB/B,kBAAkB,SAClB5nL,IAAjBmiD,EACAlhD,KAAK4V,SAAS,CACVkzK,mBAAoB9oL,KAAKitL,wBAI7BjtL,KAAK4V,SAAS,CACVkzK,mBAAoB9oL,KAAKynC,MAAMtkC,SAAWnD,KAAKynC,MAAMtkC,QAAQiU,eAAiBle,SAASwL,gBAI/F1E,KAAK6oL,eAAiBtG,EACtBA,EAAYhgJ,MAAK,SAAUqkJ,GACnBrE,IAAgBrgL,EAAM2mL,gBACtB3mL,EAAM6qL,uBAAuB7rI,EAAc0lI,EAEnD,IAER,EACAqB,EAAWxoL,UAAUytL,gBAAkB,SAAUhsI,EAAcqhI,GAC3D,IAAIrgL,EAAQlC,KACZA,KAAK2mL,kBAAkBpE,GACvB,IAAImK,OAAY3tL,EACZiB,KAAK0oL,gBAAgB3B,oBACrB2F,EAAY1sL,KAAK2sL,iBAAiB3sL,KAAK0oL,gBAAgB3B,kBAAkBxrK,KAAM2lC,IAKnFlhD,KAAK4V,SAAS,CACVY,sBAAuBk2K,EACvB5D,mBAAoB9oL,KAAKitL,wBAC1B,WAAc,OAAO/qL,EAAM0T,SAAS,CAAE02K,oBAAoB,EAAOC,4BAA4B,GAAU,GAC9G,EACAtE,EAAWxoL,UAAU2R,SAAW,SAAU8L,GAClCld,KAAK1E,MAAM8V,UACXpR,KAAK1E,MAAM8V,SAAS8L,EAE5B,EAGA+qK,EAAWxoL,UAAU8pL,YAAc,SAAU5oL,IACpCX,KAAK/E,MAAMiiB,MAAMxhB,SAAWsE,KAAKynC,MAAMtkC,SACvCnD,KAAKynC,MAAMtkC,UAAYnD,KAAKynC,MAAMtkC,QAAQmmD,iBAAyD,IAAtCtpD,KAAKynC,MAAMtkC,QAAQgqL,kBAC7EntL,KAAKisF,UAAUo7C,mBAAqB,EACpCrnI,KAAKuqL,YAAYvqL,KAAKisF,UAAUmB,gBAGhCptF,KAAKsqL,WAAWtqL,KAAK/E,MAAMiiB,MAAMld,KAAK/E,MAAMiiB,MAAMxhB,OAAS,IAGvE,EACAusL,EAAWxoL,UAAUusL,oBAAsB,WACvC,IAAI5xL,EACJ,IAAI4F,KAAK/E,MAAMqxL,mBAAf,CAGA,IAAI1hG,EAAe5qF,KAAK0oL,gBAAgB99F,aACxC,OAAIA,EAAe,GAG+B,QAAzCxwF,EAAK4F,KAAKooL,kBAAkBjlL,eAA4B,IAAP/I,OAAgB,EAASA,EAAGurL,sBACvE,qBAGqC,IAA5C3lL,KAAK0oL,gBAAgBnG,YAAY7mL,OAC1B,0BAEX,EAGO,OAAO8W,OAAOo4E,EAfzB,CAiBJ,EAEAq9F,EAAWxoL,UAAU2tL,oBAAsB,SAAUC,QAChB,IAA7BA,IAAuCA,EAA2B,GAAa5qE,kBACnF,IAAI73B,EAAe5qF,KAAK0oL,gBAAgB99F,aACxC,GAAI5qF,KAAK1E,MAAMgyL,8BAA+B,CAC1C,IAAIC,EAAqB3iG,GAAgB,EAAI5qF,KAAK0oL,gBAAgBrB,qBAAqBrnL,KAAK0oL,gBAAgB99F,mBAAgB7rF,EACxHyuL,EAA8BD,EAAqBA,EAAmBzyK,eAAY/b,EAEtF,OAAQ,gBAAoB,MAAO,CAAEwU,GAAIvT,KAAKgrL,SAASC,wBAAyBrtL,UAAWyvL,GAA4B,GAAG76K,OAAOg7K,EAA6B,KAClK,CACJ,EACAvF,EAAWxoL,UAAUqsL,kBAAoB,SAAU2B,QACxB,IAAnBA,IAA6BA,EAAiB,GAAahrE,kBAC/D,IAAIroH,EAAK4F,KAAK1E,MAAMoyL,sBAAuBA,OAA+B,IAAPtzL,EAAgB,cAAgBA,EAC/FuzL,EAAkB,GACtB,GAAI3tL,KAAK/E,MAAMovL,iBAAkB,CAC7B,IAAIuD,EAAW5tL,KAAK2sL,iBAAiB3sL,KAAK/E,MAAMovL,iBAAkB,IAClEsD,GAAkB,OAAOD,EAAuBE,EACpD,CACA,OAAQ,gBAAoB,MAAO,CAAEhwL,UAAW6vL,EAAgBl6K,GAAIvT,KAAKgrL,SAASC,wBAAyB,YAAa,aAEpHjrL,KAAKotL,oBAAoBK,GACzBE,EACR,EAGA1F,EAAWxoL,UAAUujD,gCAAkC,SAAUriD,GAC7D,SAAIX,KAAK2+C,wBAAuC,WAAZh+C,EAAGlE,MAAiC,WAAZkE,EAAGlE,KAInE,EAEAwrL,EAAWxoL,UAAUutL,gBAAkB,WACnC,IAAI9qL,EAAQlC,KACZA,KAAKmW,OAAO1C,YAAW,WACfvR,EAAMjH,MAAMqxL,oBACZpqL,EAAM0T,SAAS,CAAE22K,4BAA4B,GAErD,GAvvBiB,IAwvBrB,EAKAtE,EAAWxoL,UAAUstL,uBAAyB,SAAU7rI,EAAc0lI,GAClE,IAAIxsL,EACJ,QAAqB2E,IAAjBmiD,EACAlhD,KAAKktL,gBAAgBhsI,EAAc0lI,OAElC,CACD,IAAIgG,EAAmE,QAA5CxyL,EAAK4F,KAAK1E,MAAMkxL,8BAA2C,IAAPpyL,OAAgB,EAASA,EAAGkqL,qBAC3GtkL,KAAK0oL,gBAAgB/B,kBAAkBC,GAAiB,EAAGgG,GACvD5sL,KAAK/E,MAAMqxL,oBACXtsL,KAAK4V,SAAS,CACV02K,oBAAoB,EACpBC,4BAA4B,GAGxC,CACJ,EAKAtE,EAAWxoL,UAAUkqL,qBAAuB,SAAUzsK,GAClD,IAAIhb,EAAQlC,KACRA,KAAK1E,MAAMkmF,cAEXxhF,KAAKoR,SAAS8L,GAGdld,KAAK4V,SAAS,CAAEsH,MAAOA,IAAS,WAC5Bhb,EAAM2rL,wBAAwB3wK,EAClC,GAER,EACA+qK,EAAWxoL,UAAUouL,wBAA0B,SAAU3wK,GACrDld,KAAKoR,SAAS8L,EAClB,EAMA+qK,EAAWxoL,UAAUwtL,oBAAsB,WAKvC,YAJmDluL,IAAvBiB,KAAKynC,MAAMtkC,SACZ,OAAvBnD,KAAKynC,MAAMtkC,SACXnD,KAAKynC,MAAMtkC,QAAQiU,eAAiBle,SAASwL,eAChB,KAA7B1E,KAAKynC,MAAMtkC,QAAQwM,KAE3B,EACAs4K,EAAWxoL,UAAUktL,iBAAmB,SAAUpxK,EAAMzK,GACpD,OAAI9Q,KAAK1E,MAAMwyL,gBACJ9tL,KAAK1E,MAAMwyL,gBAAgBvyK,EAAMzK,GAGjC,EAEf,EACOm3K,CACX,CAxyB+B,CAwyB7B,aAEE8F,GAAqC,SAAUjsL,GAE/C,SAASisL,IACL,OAAkB,OAAXjsL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CA4CA,OA/CA,QAAU+tL,EAAqBjsL,GAI/BisL,EAAoBtuL,UAAUxB,OAAS,WACnC,IAAI7D,EAAK4F,KAAK/E,MAAOub,EAAwBpc,EAAGoc,sBAAuB4pJ,EAAYhmK,EAAGgmK,UAClFr+J,EAAK/B,KAAK1E,MAAOsC,EAAYmE,EAAGnE,UAAWmoC,EAAahkC,EAAGgkC,WAAYjiC,EAAW/B,EAAG+B,SAAU4nL,EAAqB3pL,EAAG2pL,mBAAoB1pL,EAAKD,EAAG4pL,cAAeA,OAAuB,IAAP3pL,EAAgB,OAASA,EAAI9G,EAAQ6G,EAAG7G,MAAOG,EAAS0G,EAAG1G,OAC7OytL,IAAuB9oL,KAAK/E,MAAM6tL,mBAClC/H,EAAuB+H,EAAqB9oL,KAAKgrL,SAASE,oBAAiBnsL,EAU3EtB,EAAapC,EACX,GAAcA,EAAQ,CACpBH,MAAOA,EACP0C,UAAWA,EACXwiK,UAAWA,EACX0T,eAAgB/tI,GAAcA,EAAWnoC,YAE3C,CACE6L,MAAM,EAAAyB,EAAA,GAAI,gBAAiB,GAAa08K,OAAQhqL,GAAwB,IACxE6b,MAAM,EAAAvO,EAAA,GAAI,qBAAsB,GAAa28K,WAAY7nL,KAAK/E,MAAMmlK,WAAa,GAAa0nB,aAAchkL,GAAY,GAAaw4C,eACrIsvI,aAAc,GAAa5D,YAC3BvgJ,OAAO,EAAAv8B,EAAA,GAAI,sBAAuB,GAAa68K,YAAahiJ,GAAcA,EAAWnoC,WACrFooB,iBAAkB,GAAay8F,kBAEnCopE,EAAa7rL,KAAK1E,MAAM,gBAAkByqC,aAA+C,EAASA,EAAW,eACjH,OAAQ,gBAAoB,MAAO,CAAEz6B,IAAKtL,KAAKyJ,KAAM4hC,OAAQrrC,KAAKqrC,OAAQxoC,QAAS7C,KAAK6C,SACpF,gBAAoB,MAAO,CAAEjF,UAAWH,EAAWgM,KAAMlF,UAAWvE,KAAKuE,WACrEvE,KAAK8rL,kBAAkBruL,EAAWuoB,kBAClC,gBAAoB,OAAQ,CAAEzS,GAAI,GAAGf,OAAOxS,KAAKgrL,SAASxpG,cAAe,UAAW/yD,QAAQ,GAAQi9J,GAAsBG,GAC1H,gBAAoB,MAAO,CAAEjuL,UAAWH,EAAWgc,KAAM,YAAasnK,GAClE,gBAAoBvrK,GAAA,GAAU,QAAS,CAAC,EAAGuwB,EAAY,CAAEnoC,UAAWH,EAAWgqC,MAAOrqB,aAAcpd,KAAKynC,MAAO5kC,QAAS7C,KAAKipL,aAAc59I,OAAQrrC,KAAKmpL,YAAarwK,QAAS9Y,KAAK8Y,QAAS/B,mBAAoB/W,KAAK8W,cAAeN,sBAAuBA,EAAuB,wBAAyBsyK,EAAqB9oL,KAAKgsL,2BAAwBjtL,EAAW,gBAAiBgiL,EAAsB,gBAAiB+H,EAAoB,gBAAiB,UAAW,aAAc+C,EAAY,mBAAoB7rL,KAAK/E,MAAMiiB,MAAMxhB,OAAS,EAAIsE,KAAKgrL,SAASxpG,mBAAgBziF,EAAWie,KAAM,WAAYzJ,IAAKwyB,aAA+C,EAASA,EAAWxyB,IAAMwyB,EAAWxyB,GAAKvT,KAAKgrL,SAASG,SAAUrnL,SAAUA,EAAUgT,cAAe9W,KAAK1E,MAAMwb,mBACpwB9W,KAAKisL,oBACL,gBAAoB9wF,EAAA,EAAe,CAAElP,UAAWjsF,KAAKisF,UAAW8B,cAAe,KAAcmJ,QACzF,gBAAoB,MAAO,CAAE3jF,GAAIvT,KAAKgrL,SAASxpG,cAAe5jF,UAAW,8BACnEof,KAAM2uK,EAAe,kBAAmB,GAAGn5K,OAAOxS,KAAKgrL,SAASxpG,cAAe,WAAaxhF,KAAK+rL,gBACnH,EACAgC,EAAoBtuL,UAAU8pL,YAAc,SAAU5oL,GAEtD,EACOotL,CACX,CAjDwC,CAiDtC9F,G,iDCp3BEvpK,EAAmB,CACnBjV,KAAM,gBACNgQ,KAAM,qBACNmyK,aAAc,6BACdnkJ,MAAO,uBAEJ,SAAS5lB,EAAUvmB,GACtB,IAAIlB,EAAI2H,EAAIC,EACRpE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOklK,EAAY9kK,EAAM8kK,UAAW0T,EAAiBx4K,EAAMw4K,eAAgBhwK,EAAWxI,EAAMwI,SAC3I,IAAK5I,EACD,MAAM,IAAI0D,MAAM,qEAEpB,IAAIob,EAAiB9e,EAAM8e,eAAgB6V,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAC9E47B,EAAchhC,EAAeghC,YAAalS,EAAqB9uB,EAAe8uB,mBAAoBqS,EAAsBnhC,EAAemhC,oBACvI19C,GAAa,QAAoBihB,EAAkBxjB,GAEnD2gD,EAAoB,CACpBz8B,EAAMyB,OACN,CACI9G,MAAOC,EAAe8hC,qBACtBlf,QAAS,EACTxxB,WAAYhR,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB2f,MAAO,YAEX3f,KAGR4hD,EAA4B,CAC5BjiC,MAAOC,EAAegW,aACtB5kB,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,YAEXhY,IAOJisL,EAAuB,4BAC3B,MAAO,CACHvkL,KAAM,CAAChM,EAAWgM,KAAM7L,EAAW,CAAEsjB,SAAU,aAC/CzH,KAAM,CACFhc,EAAWgc,KACX,CACIsH,QAAS,OACTG,SAAU,WACVsP,SAAU,OACVxP,WAAY,SACZsP,UAAW,aACXwC,SAAU,IACVa,UAAW,GACX1R,OAAQ,aAAazP,OAAOwoC,GAC5B5qB,aAAcP,EAAQQ,iBAEzB+vI,IACIt8J,GAAY,CACbsH,UAAW,CACP,SAAU,CACN8W,YAAa4mB,KAIzBs3H,IAAct8J,IAAY,QAAmBq3C,EAAqBtrB,EAAQQ,gBAC1EvsB,GAAY,CACRoe,YAAa8rK,EACb5iL,WAAYpJ,EAAK,CACT,SAAU,CACNgc,QAAS,KACTkD,SAAU,WACVnZ,IAAK,EACLtC,MAAO,EACPwC,OAAQ,EACR5C,KAAM,EACNsgC,WAAYqoJ,IAGpBhsL,EAAG,MAAwB,CACvBkgB,YAAa,WACb9W,UAAW,CACP,SAAU,CACNu6B,WAAY,UAIxB3jC,KAGZ4pL,aAAc,CACVnuL,EAAWmuL,aACX,CACI7qK,QAAS,OACTyP,SAAU,OACVkD,SAAU,SAGlB+T,MAAO,CACHhqC,EAAWgqC,MACXroB,EAAMyB,OACN,CACI3R,OAAQ,GACR+S,OAAQ,OACRqB,SAAU,EACVjY,QAAS,OACTqV,QAAS,UACTiyD,UAAW,WACXviD,aAAcP,EAAQQ,eACtB9P,gBAAiB,cACjBxG,MAAOC,EAAe+gC,UACtB3vC,UAAW,CACP,cAAe,CACX2V,QAAS,QAEb,sBAAuB,CACnBlC,aAAc,eAI1B,QAAqBg9B,GACrB/3C,IAAY,QAAqBk4C,GACjC83H,GAEJ9tJ,iBAAkB,KAE1B,C,kBC3HO,IAAIioK,E,iBACX,SAAWA,GAEPA,EAAgBA,EAAuB,MAAI,GAAK,QAEhDA,EAAgBA,EAAyB,QAAI,GAAK,UAElDA,EAAgBA,EAAyB,QAAI,GAAK,SACrD,CAPD,CAOGA,IAAoBA,EAAkB,CAAC,G,uLCVtCvvK,EAAmB,CACnBjV,KAAM,iCACNykL,eAAgB,2BCChBv0K,GAAgB,EAAAC,EAAA,KAaTu0K,GAA6B,EAAAlvK,EAAA,IAZI,SAAU3jB,GAClD,IAAI8yL,EAAe9yL,EAAM8yL,aAAcxM,EAAmBtmL,EAAMsmL,iBAAkB7uF,EAAUz3F,EAAMy3F,QAAS13F,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UACrKH,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAYgkL,GAAoBA,EAAiBuE,0BAA6BvoL,IAE9EywL,EAAgB5wL,EAAW4+D,oBAAsB5+D,EAAW4+D,mBAAmB+kD,QAC7E3jH,EAAW4+D,mBAAmB+kD,aAC9BriH,EACN,OAAQ,gBAAoB,MAAO,CAAEnB,UAAWH,EAAWgM,MACvD,gBAAoB83G,EAAA,GAAS,QAAS,CAAEn4G,KAAM,KAAYo2I,OAAQnkJ,OAAQgzL,EAAezwL,UAAWH,EAAWywL,eAAgBjvC,mBAAoBlsD,EAASiqD,qBAAqB,GAASoxC,IAClM,IDXO,SAAmB9yL,GACtB,IAAIlB,EAAI2H,EAAIC,EACRpE,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAC3CuC,GAAa,QAAoBihB,EAAkBxjB,GACnDozL,EAAsB,CACtBljL,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,IAAU+7K,YAAa,OAAS,CAC1CnjL,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBgY,MAAO,iBAEXhY,IAER3H,EAAG,IAAIoY,OAAO/U,EAAWgM,KAAM,aAAe,CAC1C2B,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,iBAEX/X,IAER5H,IAER,MAAO,CACHqP,KAAM,CACFhM,EAAWgM,KACX,CACIrB,MAAO,OACPsY,QAAS,YAEb9iB,GAEJswL,eAAgB,CACZzwL,EAAWywL,eACX,CACI9lL,MAAO,MAGfi0D,mBAAoB,CAChB+kD,QAAS,CACL+7B,YAAamxC,EACb3lK,cAAe2lK,IAI/B,QChC0FvvL,EAAW,CAAE0iB,MAAO,+B,UCP1G+sK,EAAkC,SAAU1sL,GAE5C,SAAS0sL,IACL,OAAkB,OAAX1sL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CACA,OAJA,QAAUwuL,EAAkB1sL,GAIrB0sL,CACX,CANqC,CAMnCvG,EAAA,GAKEwG,EAAwC,SAAU3sL,GAElD,SAAS2sL,IACL,OAAkB,OAAX3sL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CACA,OAJA,QAAUyuL,EAAwB3sL,GAI3B2sL,CACX,CAN2C,CAMzCxG,EAAA,GAMEyG,EAAwC,SAAU5sL,GAElD,SAAS4sL,IACL,OAAkB,OAAX5sL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAOA,OAVA,QAAU0uL,EAAwB5sL,GAKlC4sL,EAAuB/lL,aAAe,CAClCuS,aAAc,SAAU5f,GAAS,OAAO,gBAAoBqzL,EAAA,GAAkB,QAAS,CAAC,EAAGrzL,GAAS,EACpG+wL,wBAAyB,SAAU+B,EAAcxM,GAAoB,OAAQ,gBAAoBuM,EAA4B,CAAEC,aAAcA,EAAcxM,iBAAkBA,GAAsB,EACnMwB,kBAAmBA,GAEhBsL,CACX,CAZ2C,CAYzCF,GAMEI,EAAyC,SAAU9sL,GAEnD,SAAS8sL,IACL,OAAkB,OAAX9sL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAOA,OAVA,QAAU4uL,EAAyB9sL,GAKnC8sL,EAAwBjmL,aAAe,CACnCuS,aAAc,SAAU5f,GAAS,OAAO,gBAAoBqzL,EAAA,GAAkB,QAAS,CAAC,EAAGrzL,GAAS,EACpG+wL,wBAAyB,SAAU+B,EAAcxM,GAAoB,OAAQ,gBAAoBuM,EAA4B,CAAEC,aAAcA,EAAcxM,iBAAkBA,EAAkB7uF,SAAS,GAAU,EAClNqwF,kBAAmBA,GAEhBwL,CACX,CAZ4C,CAY1CJ,GAMEK,EAAsC,SAAU/sL,GAEhD,SAAS+sL,IACL,OAAkB,OAAX/sL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAOA,OAVA,QAAU6uL,EAAsB/sL,GAKhC+sL,EAAqBlmL,aAAe,CAChCuS,aAAc,SAAU5f,GAAS,OAAO,gBAAoBqzL,EAAA,GAAkB,QAAS,CAAC,EAAGrzL,GAAS,EACpG+wL,wBAAyB,SAAU+B,EAAcxM,GAAoB,OAAQ,gBAAoBuM,EAA4B,CAAEC,aAAcA,EAAcxM,iBAAkBA,GAAsB,EACnMwB,kBAAmBA,GAEhByL,CACX,CAZyC,CAYvCJ,GAKK,SAASrL,EAAkBpnL,EAAM8yL,GACpC,IAAIC,EAAmB,CACnBrzK,IAAK1f,EACLmhJ,YAAanhJ,EACbs5G,cAAe,IACf24E,gBAAiBa,GAKrB,OAHIA,IAA2B,IAAgB9mD,UAC3C+mD,EAAiBz5E,eAAgB,OAAYt5G,GAAM,YAEhD+yL,CACX,CACO,IAAIC,GAAqB,EAAA/vK,EAAA,GAAOyvK,EAAwB,SAAW3vL,EAAW,CACjF0iB,MAAO,wBAEsB,EAAAxC,EAAA,GAAO2vK,EAAyB,SAAW7vL,EAAW,CACnF0iB,MAAO,yBAEmB,EAAAxC,EAAA,GAAO4vK,EAAsB,SAAW9vL,EAAW,CAC7E0iB,MAAO,wB,+JCvGP/C,EAAmB,CACnBjV,KAAM,6BACNwlL,YAAa,wBACbC,aAAc,6BACd91I,WAAY,cACZq7H,UAAW,cCDX96J,GAAgB,EAAAC,EAAA,KA2BT+0K,GAAmB,EAAA1vK,EAAA,IA1BI,SAAU3jB,GACxC,IAAIigB,EAAOjgB,EAAMigB,KAAM6lK,EAAe9lL,EAAM8lL,aAAcnlK,EAAQ3gB,EAAM2gB,MAAO0sC,EAAWrtD,EAAMqtD,SAAU24H,EAAwBhmL,EAAMgmL,sBAAuBjmL,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAO0C,EAAYtC,EAAMsC,UAAWkG,EAAWxI,EAAMwI,SAAUy9K,EAAwBjmL,EAAMimL,sBAC7RptG,EAAY,cAKZg7G,GAAS,EAAA3mL,EAAA,KACT/K,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACX+qD,SAAUA,EACV7kD,SAAUA,EACV+zC,QAASt8B,EAAK0yK,kBAAoB,IAAgBjmD,UAElDqmD,EAAgB5wL,EAAW4+D,mBACzB5+D,EAAW4+D,mBAAmB+kD,aAC9BriH,EACFqwL,EAAoB3xL,EAAW4+D,mBAC7B5+D,EAAW4+D,mBAAmBgzH,iBAC9BtwL,EACN,OAAQ,gBAAoB,MAAO,CAAE,uBAAwBkd,EAAOre,UAAWH,EAAWgM,KAAMuT,KAAM,WAAYtB,IAAKO,EAAOnD,QAlB5G,WACd,IAAI1e,EACyB,QAA5BA,EAAK+5E,EAAUhxE,eAA4B,IAAP/I,GAAyBA,EAAGiJ,OACrE,GAgBI,gBAAoB,MAAO,CAAEzF,UAAWH,EAAWwxL,YAAa17K,GAAI,uBAAyB47K,GACzF,gBAAoB5tE,EAAA,GAAS,QAAS,CAAEn4G,KAAM,KAAYo2I,OAAQnkJ,OAAQgzL,EAAehwC,UAAW,CAAEhjJ,OAAQ+zL,IAAuB7zK,KACzI,gBAAoBsB,EAAA,EAAY,CAAEO,aAAc+2D,EAAW5gE,GAAI47K,EAAQr2K,QAASsoK,EAAct9K,SAAUA,EAAU4Y,UAAW6kK,QAAqEA,EAAwB,CAAE9kK,SAAU,UAAYphB,OAAQ,CAAE4nB,KAAM,CAAErC,SAAU,SAAYhjB,UAAWH,EAAWyxL,aAAcp0K,UAAWwmK,EAAuB,kBAAmB,GAAG9uK,OAAO28K,EAAQ,yBAAyB38K,OAAO28K,KAC7a,IDrBO,SAAmB7zL,GACtB,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EAAIC,EAAIC,EAC5B/zB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOytD,EAAWrtD,EAAMqtD,SAAU9Q,EAAUv8C,EAAMu8C,QAAS/zC,EAAWxI,EAAMwI,SACvHqb,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAAgBoF,EAAQlkB,EAAMkkB,MAC9E3hB,GAAa,QAAoBihB,EAAkBxjB,GACnDo0L,EAA2B,CAC3B3mI,IACK9Q,IACA/zC,GAAY,CACbiW,MAAOoF,EAAQiS,MACfhmB,WAAYhR,EAAK,CACT,SAAU,CACN2f,MAAOoF,EAAQiS,QAGvBh3B,EAAG,MAAwB,CACvB2f,MAAO,iBAEX3f,KAENy9C,IAAY8Q,GAAc9Q,GAAW8Q,GAAY7kD,IAAc,CAC7DiW,MAAOoF,EAAQowK,QACfv+G,aAAc,cAAcx+D,OAAO2M,EAAQowK,SAC3CnkL,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO/U,EAAWgM,KAAM,aAAe,CAE1CsQ,MAAOoF,EAAQowK,SAEnBxtL,IAER81C,GACI8Q,IACC7kD,GAAY,CACbiW,MAAOoF,EAAQiS,MACf4/C,aAAc,cAAcx+D,OAAO2M,EAAQiS,QAE/CttB,GAAY,CACRsH,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,YAEX/X,KAGRwtL,EAA6B,CAC7B7mI,IACK9Q,IACA/zC,GAAY,CACbiW,MAAOoF,EAAQiS,MACfhmB,WAAYnJ,EAAK,CACT,SAAU,CACN8X,MAAOoF,EAAQiS,QAGvBnvB,EAAG,MAAwB,CACvB8X,MAAO,iBAEX9X,KAGRwtL,EAA4B,CAC5B53I,GAAW,CACPj3B,SAAUxB,EAAMyzF,OAAOjyF,WAG/B,MAAO,CACHnX,KAAM,CACFhM,EAAWgM,MACX,QAAcvO,EAAO,CAAEi1B,OAAQ,IAC/B,CACIC,aAvEY,GAwEZrP,QAAS,cACTC,WAAY,SACZ2kB,WAAYxmB,EAAQ4T,eACpBjS,OAAQ,UACRpJ,OAAQ,UACR6Y,WAAY,OACZmD,SAAU,IACVkB,cAAe,SACf9B,SAAU,EACV1nB,WAAY8T,EAAK,CACT,SAAU,CACNymB,WAAagjB,GAAa7kD,EAAkC,GAAvBqb,EAAQkS,eAGrDnS,EAAG,MAAwB,CAAC,CAAE+C,OAAQ,wBAA0Bne,GAAY,CAAEoe,YAAa,aAC3FhD,IAERypC,IACK7kD,GAAY,CACbrG,EAAW27C,WACX,CACIzT,WAAYxmB,EAAQiD,aACpBhX,WAAYqmB,EAAK,CAAC,EACdA,EAAG,OAAwB,QAAS,CAAEvP,YAAa,YAAayjB,WAAY,cAAe,WAC3FlU,KAGZomB,GAAW,CAACp6C,EAAWg3K,WACvB58H,GACI8Q,IACC7kD,GAAY,CACb6hC,WAAYxmB,EAAQowK,SAExB3xL,GAEJqxL,YAAa,CACTxxL,EAAWwxL,YACX,CACI5nG,KAAM,WACNv0D,SAAU,EAGVY,SAAU,OACV5W,SAAU,WAGlBoyK,aAAc,CACVzxL,EAAWyxL,aACX,CACI9+J,aAzHY,GA0HZrW,MAAOoF,EAAQW,eACfunE,KAAM,WACNj/E,MA7HS,GA8HT8G,OA9HS,GA+HT9D,UAAW,CACP,SAAU,CACNu6B,WAAYxmB,EAAQmS,mBACpBvX,MAAOoF,EAAQqC,eAI3BmnC,GAAY,EACR,QAAcztD,EAAO,CACjBi1B,MAAO,EACPjO,YAAa,cACbZ,kBAAmB,CAAE6O,MAAO,EAAG9qB,KAAM,EAAG0C,IAAK,EAAGE,OAAQ,EAAGxC,MAAO,EAAGyqB,aAAc,cACnFA,aAAc/Q,EAAQiS,MACtBhB,aA3IQ,KA6IZ,CACIrW,MAAOoF,EAAQiS,MACfhmB,WAAYsmB,EAAK,CACT,SAAU,CACN3X,MAAOoF,EAAQiS,MACfuU,WAAYxmB,EAAQ6T,WAExB,UAAW,CACPjZ,MAAOoF,EAAQiS,MACfuU,WAAYxmB,EAAQuD,cAG5BgP,EAAG,MAAwB,CACvB3X,MAAO,iBAEX2X,IAERmmB,GAAW,CACPzsC,UAAW,CACP,SAAU,CACNu6B,WAAYxmB,EAAQq2B,KAExB,UAAW,CACP7P,WAAYxmB,EAAQowK,YAKpCzrL,GAAY,CACRsH,WAAYumB,EAAK,CAAC,EACdA,EAAG,IAAInf,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOC,EAAe+W,YAE1BY,KAGZ0qC,mBAAoB,CAChB+kD,QAAS,CACL+7B,YAAamyC,EACb3mK,cAAe6mK,GAEnBH,YAAa,CACT95E,SAAUk6E,IAI1B,QCpKsE1wL,EAAW,CAAE0iB,MAAO,oB,gFC/B/EiuK,EAAkC,CACzCjmL,KAAM,sBACN8pE,WAAY,4BACZolE,YAAa,6BACb41C,YAAa,gBAEV,SAAS1sK,EAAUvmB,GACtB,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAAIuS,EACpB7zB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOsmL,EAAYlmL,EAAMkmL,UACpEriK,EAAUjkB,EAAMikB,QAASnF,EAAiB9e,EAAM8e,eAChDvc,GAAa,QAAoBiyL,EAAiCx0L,GACtE,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX,CACIsX,QAAS,OACTC,WAAY,UACZsP,UAAW,aACXloB,MAAO,OACP8Y,SAAU,WACV9V,UAAW,CACP,UAAW,CACPu6B,WAAY3rB,EAAesF,2BAE/B,sCAAuC,CACnCyB,QAAS,WAIrBygK,GAAa,CACTp2K,WAAYhR,EAAK,CAAC,EACdA,EAAG,IAAIoY,OAAO,KAAyB,OAAS,CAC5CpH,WAAYrJ,EAAK,CAAC,EACdA,EAAG,IAAIyQ,OAAO/U,EAAWk7I,cAAgB,CACrC53H,QAAS,QACT4kB,WAAY3rB,EAAewF,2BAE/Bzd,IAER3H,EAAG,UAAY,CACXk6B,cAAe,OACftW,QAAS,KACTkD,SAAU,WACV7b,KAAM,EACN0C,IAAK,EACLE,OAAQ,EACRxC,MAAO,EACPwc,OAAQ,aAAazP,OAAOtX,EAAM8e,eAAe0yB,cAErDtyC,IAERwD,GAEJ21E,WAAY,CACR91E,EAAW81E,WACX,CACInrE,MAAO,OACPsY,QAAS,EACTuB,OAAQ,OACR/S,OAAQ,OAGR4jB,SAAU,EAEVhW,SAAU,SACV1R,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,aACP3O,UAAW,CACP,UAAU,QAAS,CAAEu6B,WAAY,YAAa5rB,MAAO,kBAAmB,aAGhF/X,EAAG,UAAY,CACX+X,MAAOC,EAAes/B,qBAE1Bt3C,IAERw/K,GAAa,CACT/jL,EAAW8wL,YACX,CACI5oJ,WAAY3rB,EAAewF,0BAC3BpU,WAAYnJ,EAAK,CACT,SAAU,CACN0jC,WAAY3rB,EAAe21K,cAGnC1tL,EAAG,OAAwB,QAAS,CAAE0jC,WAAY,YAAa5rB,MAAO,kBAAmB,WACzF9X,MAIhB02I,YAAa,CACTl7I,EAAWk7I,YACX,CACI53H,QAAS,OACThH,MAAOoF,EAAQO,iBACfgB,QAAS,QACTxR,OAAQ,OACR9G,MAAO,GACPgD,WAAY8T,EAAK,CACT,kBAAmB,CACfymB,WAAYxmB,EAAQmS,mBACpBvX,MAAOoF,EAAQqC,cAGvBtC,EAAG,MAAwB,CACvBnF,MAAO,cAEXmF,IAERsiK,IAAc/vJ,EAAK,CAAC,EAChBA,EAAG,IAAIjf,OAAO,KAAyB,OAAS,CAC5CpH,UAAW,CACP,kBAAmB,CACfu6B,WAAYxmB,EAAQyD,mBAIhC6O,EAAGrmB,UAAY,CACX,kBAAmB,CACfu6B,WAAYxmB,EAAQyD,gBACpB7I,MAAOoF,EAAQW,iBAGvB2R,IAGhB,C,oJC/HI/S,EAAmB,CACnBjV,KAAM,aACNgQ,KAAM,kBACNy4F,MAAO,mBACP94D,WAAY,e,WCDZz/B,GAAgB,EAAAC,EAAA,KA+BTg2K,GAAU,EAAA3wK,EAAA,IA3BI,SAAU3jB,GAC/B,IAAIJ,EAAQI,EAAMJ,MAAOG,EAASC,EAAMD,OAAQstD,EAAWrtD,EAAMqtD,SAAU7kD,EAAWxI,EAAMwI,SAAU+rL,EAAiCv0L,EAAMu0L,+BAAgCnzL,EAAWpB,EAAMoB,SAAUkB,EAAYtC,EAAMsC,UAAWqe,EAAQ3gB,EAAM2gB,MAAOmlK,EAAe9lL,EAAM8lL,aAAcE,EAAwBhmL,EAAMgmL,sBAAuBlnL,EAAKkB,EAAMgrB,MAAOA,OAAe,IAAPlsB,EAA0C,iBAAnBkB,EAAMoB,SAAwBpB,EAAMoB,SAAWpB,EAAMigB,KAAKvf,KAAO5B,EAAImnL,EAAwBjmL,EAAMimL,sBACleptG,EAAY,cAKZ12E,EAAakc,EAActe,EAAQ,CACnCH,MAAOA,EACP0C,UAAWA,EACX+qD,SAAUA,EACV7kD,SAAUA,IAEVqrL,GAAS,EAAAx9K,EAAA,KACTm+K,EAAgBD,EACd,CACE,gBAAiB/rL,EACjBisL,SAAU,GAEZ,CACEjsL,SAAUA,GAElB,OAAQ,gBAAoB,MAAO,CAAE,uBAAwBmY,EAAOre,UAAWH,EAAWgM,KAAMuT,KAAM,WAAYtB,IAAKO,EAAOnD,QAnB5G,WACd,IAAI1e,EACyB,QAA5BA,EAAK+5E,EAAUhxE,eAA4B,IAAP/I,GAAyBA,EAAGiJ,OACrE,GAiBI,gBAAoB,OAAQ,CAAEzF,UAAWH,EAAWgc,KAAM6M,MAAOA,EAAO/S,GAAI,GAAGf,OAAO28K,EAAQ,UAAYzyL,GAC1G,gBAAoBmgB,EAAA,GAAY,QAAS,CAAEO,aAAc+2D,EAAW5gE,GAAI47K,EAAQr2K,QAASsoK,GAAgB0O,EAAe,CAAEpzK,UAAW6kK,QAAqEA,EAAwB,CAAE9kK,SAAU,UAAYphB,OAAQ,CAAE4nB,KAAM,CAAErC,SAAU,SAAYhjB,UAAWH,EAAWy0G,MAAO,kBAAmB,GAAG1/F,OAAO28K,EAAQ,iBAAiB38K,OAAO28K,EAAQ,YACpY,gBAAoB,OAAQ,CAAE57K,GAAI,GAAGf,OAAO28K,EAAQ,gBAAiB1gK,QAAQ,GAAQ6yJ,GAC7F,ID1BO,SAAmBhmL,GACtB,IAAIlB,EAAI2H,EAAIC,EAAIC,EAAIid,EAChBthB,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAAOytD,EAAWrtD,EAAMqtD,SAAU7kD,EAAWxI,EAAMwI,SAC9Fqb,EAAUjkB,EAAMikB,QAAS0Q,EAAU30B,EAAM20B,QAASzQ,EAAQlkB,EAAMkkB,MAAOpF,EAAiB9e,EAAM8e,eAC9Fvc,GAAa,QAAoBihB,EAAkBxjB,GACvD,MAAO,CACHuO,KAAM,CACFhM,EAAWgM,KACX2V,EAAMyB,QACN,QAAc3lB,GACd,CACIo1B,UAAW,cACXV,WAAY,IACZ9O,OAAQ,EACR5R,OAfC,GAgBDyR,WAhBC,GAiBDjJ,OAAQ,UACR6Y,WAAY,OACZxP,QAAS,OACTyP,SAAU,SACVkD,SAAU,IACVZ,SAAU,EACV1C,aAAcP,EAAQQ,eACtBtW,MAAOC,EAAe+gC,UACtBpV,WAAYxmB,EAAQ4T,eACpB3nB,WAAYhR,EAAK,CACT,SAAU,EACL0J,IACI6kD,GAAY,CACb5uC,MAAOoF,EAAQqC,YACfmkB,WAAYxmB,EAAQkS,aACpBjmB,UAAW,CACP,oBAAqB,CACjB2O,MAAOoF,EAAQW,kBAI3Bhc,GAAY,CAAE6hC,WAAYxmB,EAAQ4T,kBAG1C34B,EAAG,MAAwB,CACvB6nB,OAAQ,aAAazP,OAAQm2C,EAA0B,cAAf,eAE5CvuD,IAER0J,GAAY,CACRsH,WAAYrJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvBmgB,YAAa,YAEjBngB,IAER4mD,IACK7kD,GAAY,CACbrG,EAAW27C,WACX,CACIzT,WAAYxmB,EAAQiD,aACpBrI,MAAOoF,EAAQiS,QAGvBxzB,GAEJ6b,KAAM,CACFhc,EAAWgc,KACX,CACIqD,SAAU,SACV+B,aAAc,WACdD,WAAY,SACZkU,SAAU,GACVhS,OAAQ,SAEZhd,GAAY,CACRsH,WAAYpJ,EAAK,CAAC,EACdA,EAAG,MAAwB,CACvB+X,MAAO,YAEX/X,KAGZkwG,MAAO,CACHz0G,EAAWy0G,OACX,QAAch3G,EAAO,CAAEgnB,YAAa,cAAeiO,MAAO,EAAGD,aAAc/Q,EAAQiS,QACnF,CACIrX,MAAOoF,EAAQO,iBACftX,MAAO,GACP8G,OAAQ,OACRm4E,KAAM,WACNj3D,cAAc,QAAOl1B,GACf,GAAGsX,OAAOqd,EAAQQ,eAAgB,SAAS7d,OAAOqd,EAAQQ,gBAC1D,KAAK7d,OAAOqd,EAAQQ,eAAgB,KAAK7d,OAAOqd,EAAQQ,eAAgB,MAC9EjlB,WAAYnJ,EAAK,CACT,SAAU,CACN0jC,WAAYxmB,EAAQoS,qBACpBxX,MAAOoF,EAAQW,iBAGvB7d,EAAG,IAAIuQ,OAAO/U,EAAW27C,WAAY,eAAiB,CAClDr/B,MAAOoF,EAAQiS,MACfuU,WAAYxmB,EAAQiD,cAExBngB,EAAG,gBAAkB,CACjB8X,MAAOoF,EAAQiS,MACfuU,WAAYxmB,EAAQ6T,WAExB/wB,EAAG,WAAa,CACZ8X,MAAOoF,EAAQiS,MACf7Q,gBAAiBpB,EAAQ6T,WAE7B/wB,IAER6B,GAAY,CACRsH,WAAY8T,EAAK,CAAC,EACdA,EAAG,IAAI1M,OAAO,IAAuBkR,eAAiB,CAClD3J,MAAOoF,EAAQO,kBAEnBR,KAIpB,QC5FoDngB,EAAW,CAC3D0iB,MAAO,YCrCP,EAAmB,CACnBuuK,uBAAwB,2BCCxB,GAAgB,EAAAp2K,EAAA,KAcTq2K,GAAoB,EAAAhxK,EAAA,IAVI,SAAU3jB,GACzC,IAAID,EAASC,EAAMD,OAAQH,EAAQI,EAAMJ,MAAOwB,EAAWpB,EAAMoB,SAC7De,EAAa,EAAcpC,EAAQ,CACnCH,MAAOA,IAEX,OAAO,gBAAoB,MAAO,CAAE0C,UAAWH,EAAWuyL,wBACtD,IACAtzL,EACA,IACR,IDZO,SAAmBpB,GACtB,IAAIsC,EAAYtC,EAAMsC,UAAW1C,EAAQI,EAAMJ,MAE/C,MAAO,CACH80L,uBAAwB,EAFX,QAAoB,EAAkB90L,GAGpC80L,uBACX,CACIlzK,SAAU,SACV+B,aAAc,WACd6U,SAAU,OACVhT,QAAS,eACT9B,WAAY,UAEhBhhB,GAGZ,QCHwEmB,EAAW,CAAE0iB,MAAO,sBCPxFyuK,EAA+B,SAAUpuL,GAEzC,SAASouL,IACL,OAAkB,OAAXpuL,GAAmBA,EAAOnG,MAAMqE,KAAMvE,YAAcuE,IAC/D,CAKA,OARA,QAAUkwL,EAAepuL,GAIzBouL,EAAcvnL,aAAe,CACzBuS,aAAc,SAAU5f,GAAS,OAAO,gBAAoBs0L,GAAS,QAAS,CAAC,EAAGt0L,GAAQA,EAAMigB,KAAKvf,KAAO,EAC5GqwL,wBAAyB,SAAU/wL,GAAS,OAAO,gBAAoB20L,EAAmB,KAAM30L,EAAMU,KAAO,GAE1Gk0L,CACX,CAVkC,CAUhCjI,EAAA,GAESkI,GAAY,EAAAlxK,EAAA,GAAOixK,EAAe,SAAWnxL,EAAW,CAC/D0iB,MAAO,a,uECtBA2uK,EAAe,qBAAoBrxL,GCYnCsxL,EAAW,WAClB,IAAIn1L,GAAQ,IAAAo1L,YAAWF,GACnBG,GAPG,EAAAC,EAAA,GAAyB,CAAC,UAAUt1L,MAQ3C,OAAOA,GAASq1L,IAAe,EAAAj6D,EAAA,GAAY,CAAC,EAChD,C,kDCVO,SAASxmF,EAAiBP,EAAGE,EAAGrwC,EAAG2wC,EAAGH,GACzC,OAAOG,IAAM,MAAgC,iBAANA,EAAiB,IAAIv9B,OAAOo9B,GAAO,QAAQp9B,OAAO+8B,EAAG,MAAM/8B,OAAOi9B,EAAG,MAAMj9B,OAAOpT,EAAG,MAAMoT,OAAOu9B,EAAI,KAAiB,IAClK,C,kBCRO,SAASM,EAAM1gC,EAAOw4C,EAAKC,GAE9B,YADY,IAARA,IAAkBA,EAAM,GACrBz4C,EAAQy4C,EAAMA,EAAMz4C,EAAQw4C,EAAMA,EAAMx4C,CACnD,C,8ICJO,IAAI8gL,EAAuB,IACvBC,EAAgB,IAChBC,EAAkB,IAClBC,EAAgB,IAGhBC,EAAkB,IAElBC,EAAiB,EAEjBC,EAAiB,EAEjBC,EAAkB,EAElBC,EAAkB,EAElBC,EAAY,kBAEZC,EAAa,W,wECbjB,SAAS38I,EAAiB48I,GAC7B,IAAIh3L,EAAKg3L,EAAKrhJ,EAAGA,OAAW,IAAP31C,EAAgB,KAAkBA,EAAIgF,EAAIgyL,EAAKhyL,EAAGqwC,EAAI2hJ,EAAK3hJ,EAAGF,EAAI6hJ,EAAK7hJ,EACxFxtC,ECLD,SAAiBwtC,EAAGE,EAAGrwC,GAC1B,IAAIiwC,EAAIgiJ,IACJlpI,EAAMtgD,KAAKsgD,IAAI5Y,EAAGE,EAAGrwC,GAErBquI,EAAQtlF,EADFtgD,KAAKugD,IAAI7Y,EAAGE,EAAGrwC,GAuBzB,OApBc,IAAVquI,EACAp+F,EAAI,EAECE,IAAM4Y,EACX9Y,GAAMI,EAAIrwC,GAAKquI,EAAS,EAEnBh+F,IAAM0Y,EACX9Y,GAAKjwC,EAAImwC,GAAKk+F,EAAQ,EAEjBruI,IAAM+oD,IACX9Y,GAAKE,EAAIE,GAAKg+F,EAAQ,IAE1Bp+F,EAAIxnC,KAAKiqC,MAAU,GAAJzC,IACP,IACJA,GAAK,KAMF,CAAEA,EAAGA,EAAGxvC,EAHPgI,KAAKiqC,MAAsC,KAAvB,IAARqW,EAAY,EAAIslF,EAAQtlF,IAGvB7Y,EADbznC,KAAKiqC,MAAOqW,EAAM,KAAiB,KAE/C,CDtBampI,CAAQ/hJ,EAAGE,EAAGrwC,GAAIiwC,EAAIttC,EAAGstC,EAAGxvC,EAAIkC,EAAGlC,EAAGyvC,EAAIvtC,EAAGutC,EAClDM,GAAM,EAAAF,EAAA,GAAQH,EAAGE,EAAGrwC,GAGxB,MAAO,CAAE2wC,EAAGA,EAAG3wC,EAAGA,EAAGqwC,EAAGA,EAAGJ,EAAGA,EAAGO,IAAKA,EAAKL,EAAGA,EAAG1vC,EAAGA,EAAGgwC,KAF7C,EAAAC,EAAA,GAAiBP,EAAGE,EAAGrwC,EAAG2wC,EAAGH,GAE0BN,EAAGA,EAAG1vC,EAD/D,KAAkBmwC,EAE9B,C,wEEqDA,SAASwhJ,EAAM1hJ,GACX,GAAKA,EAAL,CAGA,IAAItiC,EAAQsiC,EAAItiC,MAAM,2BACtB,GAAIA,EAAO,CACP,IAAIikL,IAAajkL,EAAM,GACnBkkL,EAAoBD,EAAW,EAAI,EACnCE,EAAQnkL,EAAM,GAAGgf,MAAM,SAAS3wB,IAAIy4C,QACxC,GAAIq9I,EAAMh2L,SAAW+1L,EACjB,MAAO,CACHliJ,EAAGmiJ,EAAM,GACTjiJ,EAAGiiJ,EAAM,GACTtyL,EAAGsyL,EAAM,GACT3hJ,EAAGyhJ,EAAsB,IAAXE,EAAM,GAAW,KAG3C,CAdA,CAeJ,C,eCxEO,SAASp9I,EAAmB80H,GAC/B,IAAIrvJ,EDJD,SAAkBA,GACrB,GAAKA,EAQL,OADgBw3K,EAAMx3K,IAyF1B,SAAe81B,GACX,GAAe,MAAXA,EAAI,IAA6B,IAAfA,EAAIn0C,QAAgB,mBAAmBs8C,KAAKnI,GAC9D,MAAO,CACHN,EAAGuoE,SAASjoE,EAAIt9B,MAAM,EAAG,GAAI,IAC7Bk9B,EAAGqoE,SAASjoE,EAAIt9B,MAAM,EAAG,GAAI,IAC7BnT,EAAG04G,SAASjoE,EAAIt9B,MAAM,EAAG,GAAI,IAC7Bw9B,EAAG,KAGf,CAlGoC4hJ,CAAM53K,IAuG1C,SAAe81B,GACX,GAAe,MAAXA,EAAI,IAA6B,IAAfA,EAAIn0C,QAAgB,mBAAmBs8C,KAAKnI,GAC9D,MAAO,CACHN,EAAGuoE,SAASjoE,EAAI,GAAKA,EAAI,GAAI,IAC7BJ,EAAGqoE,SAASjoE,EAAI,GAAKA,EAAI,GAAI,IAC7BzwC,EAAG04G,SAASjoE,EAAI,GAAKA,EAAI,GAAI,IAC7BE,EAAG,KAGf,CAhHoD6hJ,CAAM73K,IAwE1D,SAAe81B,GACX,IErFIgiJ,ECHgBxiJ,EAAGxvC,EAAGyS,EAEtBg9B,EHsFA/hC,EAAQsiC,EAAItiC,MAAM,2BACtB,GAAIA,EAAO,CACP,IAAIikL,IAAajkL,EAAM,GACnBkkL,EAAoBD,EAAW,EAAI,EACnCE,EAAQnkL,EAAM,GAAGgf,MAAM,SAAS3wB,IAAIy4C,QACxC,GAAIq9I,EAAMh2L,SAAW+1L,EAAmB,CACpC,IAAIL,GG9FQ/hJ,EH8FOqiJ,EAAM,GG9FV7xL,EH8Fc6xL,EAAM,GG9FjBp/K,EH8FqBo/K,EAAM,GG5FjDpiJ,EAAIh9B,GADRzS,IAAMyS,EAAI,GAAKA,EAAI,IAAMA,GAAK,KDE1Bu/K,ECAG,CACHxiJ,EAAGA,EACHxvC,EAAS,IAANyvC,EAAU,EAAM,EAAIzvC,EAAKyvC,EAAK,IACjCA,EAAGA,IDFA,EAAAE,EAAA,GAAQqiJ,EAAIxiJ,EAAGwiJ,EAAIhyL,EAAGgyL,EAAIviJ,IF4FzB,OADA8hJ,EAAKrhJ,EAAIyhJ,EAAsB,IAAXE,EAAM,GAAW,KAC9BN,CACX,CACJ,CACJ,CApFoEU,CAAM/3K,IAa1E,SAAyB81B,GACrB,GAAwB,oBAAb32C,SAAX,CAIA,IAAI8/H,EAAO9/H,SAASqgI,cAAc,OAClCP,EAAK3gH,MAAMkI,gBAAkBsvB,EAE7BmpF,EAAK3gH,MAAM6I,SAAW,WACtB83G,EAAK3gH,MAAMtQ,IAAM,UACjBixH,EAAK3gH,MAAMhT,KAAO,UAClB2zH,EAAK3gH,MAAMnJ,OAAS,MACpB8pH,EAAK3gH,MAAMjQ,MAAQ,MACnBlP,SAASC,KAAKslC,YAAYu6F,GAC1B,IAAI+4D,EAAiBr6E,iBAAiBshB,GAClCg5D,EAAgBD,GAAkBA,EAAexxK,gBAKrD,GAJArnB,SAASC,KAAK2lC,YAAYk6F,GAIJ,qBAAlBg5D,GAA0D,gBAAlBA,EAU5C,OAAOT,EAAMS,GATT,OAAQniJ,EAAIkQ,QAER,IAAK,cACL,IAAK,QACL,IAAK,YACD,MAAO,CAAExQ,EAAG,EAAGE,EAAG,EAAGrwC,EAAG,EAAG2wC,EAAG,GAtB1C,CA2BJ,CAvCWkiJ,CAAgBl4K,EAC3B,CCVgBm4K,CAAS9oB,GACrB,GAAKrvJ,EAGL,OAAO,SAAS,QAAS,CAAC,GAAG,EAAAy6B,EAAA,GAAiBz6B,IAAS,CAAE81B,IAAKu5H,GAClE,C,kDGfO,SAAS55H,EAAQH,EAAGxvC,EAAGyvC,GAG1B,IAAI6iJ,EAAM,GACNvmB,GAFJt8H,GAAQ,MADRzvC,GAAQ,KAIJuyL,EAAK/iJ,EAAI,GACT1nC,EAAIikK,GAAK,EAAI/jK,KAAKQ,IAAK+pL,EAAK,EAAK,IACjCrX,EAAIzrI,EAAIs8H,EACZ,OAAQ/jK,KAAKC,MAAMsqL,IACf,KAAK,EACDD,EAAM,CAACvmB,EAAGjkK,EAAG,GACb,MACJ,KAAK,EACDwqL,EAAM,CAACxqL,EAAGikK,EAAG,GACb,MACJ,KAAK,EACDumB,EAAM,CAAC,EAAGvmB,EAAGjkK,GACb,MACJ,KAAK,EACDwqL,EAAM,CAAC,EAAGxqL,EAAGikK,GACb,MACJ,KAAK,EACDumB,EAAM,CAACxqL,EAAG,EAAGikK,GACb,MACJ,KAAK,EACDumB,EAAM,CAACvmB,EAAG,EAAGjkK,GAGrB,MAAO,CACH4nC,EAAG1nC,KAAKiqC,MAAM,MAAiBqgJ,EAAI,GAAKpX,IACxCtrI,EAAG5nC,KAAKiqC,MAAM,MAAiBqgJ,EAAI,GAAKpX,IACxC37K,EAAGyI,KAAKiqC,MAAM,MAAiBqgJ,EAAI,GAAKpX,IAEhD,C,6DChCO,SAASrrI,EAAQH,EAAGE,EAAGrwC,GAC1B,MAAO,CAACizL,EAAgB9iJ,GAAI8iJ,EAAgB5iJ,GAAI4iJ,EAAgBjzL,IAAI4zC,KAAK,GAC7E,CAEA,SAASq/I,EAAgBrtH,GAErB,IAAIp1B,GADJo1B,GAAM,OAAMA,EAAK,OACHzrD,SAAS,IACvB,OAAsB,IAAfq2B,EAAIl0C,OAAe,IAAMk0C,EAAMA,CAC1C,C,6DCXI0iJ,EAA6B,CAC7B,WACA,SACA,qBACA,4BACA,oBACA,4BACA,mCACA,wBACA,sBACA,0BACA,6BACA,qBACA,wBCVA7/F,EAA+B,SAAU3wF,GAEzC,SAAS2wF,EAAcn3F,GACnB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAExC,OADAkC,EAAMswF,4BAA8BtwF,EAAMswF,4BAA4B52E,KAAK1Z,GACpEA,CACX,CAgBA,OArBA,QAAUuwF,EAAe3wF,GAYzB2wF,EAAchzF,UAAU+yF,4BAA8B,SAAU+/F,GD2C7D,IAAwBC,EC1CvBxyL,KAAKiyF,2BAA6BsgG,EAC9BA,EACAvyL,KAAKyyL,SDKV,SAEPC,EAEAF,EAAQG,QACe,IAAfA,IAAyBA,EAAaL,GAC1C,IAAIp0I,EAAU,GACV3/C,EAAU,SAAUq0L,GACc,mBAAvBJ,EAAOI,SACc7zL,IAA5B2zL,EAAYE,IACVD,IAAkD,IAApCA,EAAWrjL,QAAQsjL,KACnC10I,EAAQvgD,KAAKi1L,GAEbF,EAAYE,GAAc,WAEtB,IADA,IAAIj0L,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAEzBg3L,EAAOI,GAAYj3L,MAAM62L,EAAQ7zL,EACrC,EAER,EACA,IAAK,IAAIi0L,KAAcJ,EACnBj0L,EAAQq0L,GAEZ,OAAO10I,CACX,CC/B4B20I,CAAa7yL,KAAMuyL,GAE9BvyL,KAAKyyL,WDsCSD,ECrCJxyL,KAAMA,KAAKyyL,SDsCtBnpL,SAAQ,SAAUspL,GAAc,cAAcJ,EAAOI,EAAa,ICpC9E,EACOngG,CACX,CAvBkC,CAuBhC,Y,mECrBSqgG,E,kEACX,SAAWA,GAEPA,EAAeA,EAAsB,MAAI,GAAK,QAE9CA,EAAeA,EAAuB,OAAI,GAAK,SAE/CA,EAAeA,EAAsB,MAAI,GAAK,QAE9CA,EAAeA,EAAuB,OAAI,GAAK,SAE/CA,EAAeA,EAAwB,QAAI,GAAK,UAEhDA,EAAeA,EAAyB,SAAI,GAAK,WACjDA,EAAeA,EAAwB,QAAI,KAAO,SACrD,CAdD,CAcGA,IAAmBA,EAAiB,CAAC,IACxC,IAIIC,EAKAC,EATAC,EAA4B,CAAC,IAAK,IAAK,KAAM,KAAM,KAAM,UA8BtD,SAASC,IACZ,IAAI94L,EACJ,OAA8F,QAAtFA,EAAK24L,QAAmDA,EAAeC,SAA8B,IAAP54L,EAAgBA,EAAK04L,EAAe7gI,KAC9I,CAKO,SAASw/C,EAAmBzgB,GAC/B,IAAI52F,EAEA+4L,IAAe/4L,EAAoB,SAAU0H,GAEzC,SAASsxL,EAAmB93L,GACxB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAcxC,OAbAkC,EAAMmxL,UAAY,WACd,IAAI15H,EAAiB25H,EAAkBpxL,EAAMxH,QAAQ4G,QACjDq4D,IAAmBz3D,EAAMjH,MAAM0+D,gBAC/Bz3D,EAAM0T,SAAS,CACX+jD,eAAgBA,GAG5B,EACAz3D,EAAMiqB,QAAU,IAAI,IAAWjqB,GAC/BA,EAAMswF,4BAA8BtwF,EAAMswF,4BAA4B52E,KAAK1Z,GAC3EA,EAAMjH,MAAQ,CACV0+D,eAAgBu5H,KAEbhxL,CACX,CAYA,OA7BA,QAAUkxL,EAAoBtxL,GAkB9BsxL,EAAmB3zL,UAAU+J,kBAAoB,WAC7CxJ,KAAKmsB,QAAQnZ,GAAGhT,KAAKtF,QAAQ4G,OAAQ,SAAUtB,KAAKqzL,WACpDrzL,KAAKqzL,WACT,EACAD,EAAmB3zL,UAAU6K,qBAAuB,WAChDtK,KAAKmsB,QAAQ5b,SACjB,EACA6iL,EAAmB3zL,UAAUxB,OAAS,WAClC,IAAI07D,EAAiB35D,KAAK/E,MAAM0+D,eAChC,OAAOA,IAAmBm5H,EAAeS,QAAU,KAAQ,gBAAoBviG,GAAmB,QAAS,CAAE1lF,IAAKtL,KAAKwyF,4BAA6B74B,eAAgBA,GAAkB35D,KAAK1E,OAC/L,EACO83L,CACX,CA/BkC,CA+BhC,MACC55K,YAAc,KACjBpf,GACJ,OAAO,OAAa42F,EAAmBmiG,EAC3C,CACA,SAASK,EAAwBC,GAC7B,IACI,OAAOA,EAAcv6L,SAASopC,gBAAgBqgB,WAClD,CACA,MAAOoN,GACH,OAAO0jI,EAAc73J,UACzB,CACJ,CAKO,SAAS03J,EAAkBG,GAC9B,IAAI95H,EAAiBm5H,EAAezxK,MACpC,GAAIoyK,EAAe,CACf,IACI,KAAOD,EAAwBC,GAAiBR,EAA0Bt5H,IACtEA,GAER,CACA,MAAO5J,GAEH4J,EAAiBu5H,GACrB,CAGAF,EAAYr5H,CAChB,KACK,CACD,QAAqB56D,IAAjBg0L,EAIA,MAAM,IAAIn0L,MAAM,2JAHhB+6D,EAAiBo5H,CAMzB,CACA,OAAOp5H,CACX,C,6DCrIIwzB,EAAgC,WAChC,SAASA,EAAeumG,GACpB1zL,KAAKi8F,WAAay3F,EAAOznG,UACzBjsF,KAAK2zL,iBAAmB,CAAC,EACzB3zL,KAAK4zL,eAAiB,CAAC,EACvB5zL,KAAK6zL,QAAU,EAGf7zL,KAAK8zL,cAAe,CACxB,CA2SA,OA1SA3mG,EAAe1tF,UAAU8Q,QAAU,WAC3BvQ,KAAKmsB,SACLnsB,KAAKmsB,QAAQ5b,SAErB,EACA48E,EAAe1tF,UAAUqmF,UAAY,SAAUr8E,EAAMylI,EAAQ6kD,GACzD,IAAI7xL,EAAQlC,KACZ,IAAKA,KAAK8zL,aAAc,CACpB9zL,KAAKmsB,QAAU,IAAI,IAAWnsB,MAC9B,IAAIiK,GAAM,SAENA,IACAjK,KAAKmsB,QAAQnZ,GAAG/I,EAAI9Q,KAAM,UAAW6G,KAAKkrB,WAAWtP,KAAK5b,OAAO,GACjEA,KAAKmsB,QAAQnZ,GAAG/I,EAAK,UAAWjK,KAAKg0L,mBAAmBp4K,KAAK5b,OAAO,IAExEA,KAAK8zL,cAAe,CACxB,CACA,IAEIzuG,EACAof,EACAF,EACA/e,EACAD,EACAmK,EACAtkE,EACA82D,EACA+xG,EACAC,EAXA95L,EAAK25L,EAAgBr4K,IAAKA,OAAa,IAAPthB,EAAgB,GAAGoY,SAASxS,KAAK6zL,SAAWz5L,EAC5E+5L,EAAW,GAWf,GAAIJ,GAAmBtqL,EAAM,CACzB,IAAIy8F,EAAW6tF,EAAgB7tF,SAAUxrG,EAAUq5L,EAAgBr5L,QAAS05L,EAAoBL,EAAgBzuG,gBAC5G+uG,EAAiB,CACjB5qL,KAAMA,EACNtP,QAAS45L,EACTr4K,IAAKA,GAIT,GAFAwmE,EAAcliF,KAAKqvF,aAAaglG,GAChCJ,EAAcj0L,KAAKs0L,aAAaD,IAC5BnyG,GAAe+xG,IACX/tF,EACA,IAAK,IAAI1qG,EAAK,EAAG+4L,EAAaruF,EAAU1qG,EAAK+4L,EAAW74L,OAAQF,IAAM,CAClE,IAAIg5L,EAAUD,EAAW/4L,GACrBw0J,EAAU,CACVp9I,SAAU4hL,EAAQ5hL,SAASgJ,KAAK,KAAMlhB,GACtCiY,UAAW6hL,EAAQ7hL,WAEvBwhL,EAASx2L,KAAKqyJ,GACdhwJ,KAAKmsB,QAAQnZ,GAAGvJ,EAAMumJ,EAAQr9I,UAAWq9I,EAAQp9I,SACrD,CAGJqhL,IAEAxvF,EAAc,SAAU7jG,GACfA,EAAM6zL,YACP7zL,EAAM6zL,WAAY,EAClBvyL,EAAMyxL,iBAAiBj4K,KACa,IAAhCxZ,EAAMyxL,iBAAiBj4K,IACvB04K,GAAkB,EAAwBxzL,GAGtD,EACA2jG,EAAc,SAAU3jG,GACpBA,EAAMwG,iBACDxG,EAAM6zL,YACP7zL,EAAM6zL,WAAY,EAClBvyL,EAAMyxL,iBAAiBj4K,KACa,IAAhCxZ,EAAMyxL,iBAAiBj4K,IACvB04K,GAAkB,EAAuBxzL,GAGrD,EACA4kF,EAAY,SAAU5kF,GAClBsB,EAAMyxL,iBAAiBj4K,GAAO,EAC9B04K,GAAkB,EAAwBxzL,EAC9C,EACA2kF,EAAS,SAAU3kF,GACfsB,EAAMyxL,iBAAiBj4K,GAAO,EAC9B04K,GAAkB,EAAwBxzL,GACtCmzL,EAAgBxuG,QAChBwuG,EAAgBxuG,OAAOwuG,EAAgBr5L,QAAQ2f,KAAMzZ,EAE7D,EACA8uF,EAAa,SAAU9uF,GACnBA,EAAMwG,iBACF2sL,EAAgBrkG,YAChBqkG,EAAgBrkG,WAAWqkG,EAAgBr5L,QAAQ2f,KAAMzZ,EAEjE,EACAZ,KAAK2zL,iBAAiBj4K,GAAO,EAI7BwzH,EAAOl8H,GAAGvJ,EAAM,YAAa86F,GAC7B2qC,EAAOl8H,GAAGvJ,EAAM,YAAag7F,GAC7ByqC,EAAOl8H,GAAGvJ,EAAM,UAAW+7E,GAC3B0pD,EAAOl8H,GAAGvJ,EAAM,OAAQ87E,GACxB2pD,EAAOl8H,GAAGvJ,EAAM,WAAYimF,IAE5BxN,IAEA92D,EAAcprB,KAAK6D,aAAa+X,KAAK5b,KAAMq0L,GAC3C7uG,EAAYxlF,KAAK4hF,WAAWhmE,KAAK5b,KAAMq0L,GAEvChvG,EAAc,SAAUzkF,GACpB,IAAIzG,EAAU45L,EACV55L,GAAWA,EAAQkrF,aACnBlrF,EAAQkrF,YAAYlrF,EAAQO,QAAQ2f,KAAMlgB,EAAQO,QAAQuhB,MAAO/Z,EAAM+5F,WAAW7O,eAAgBxsF,GAEtGsB,EAAMwyL,aAAc,EAChB9zL,EAAM+zL,cACN/zL,EAAM+zL,aAAaC,QAAQ,KAAMnrL,EAAK8J,GAE9C,EACA27H,EAAOl8H,GAAGvJ,EAAM,YAAa47E,GAC7B6pD,EAAOl8H,GAAGvJ,EAAM,YAAa2hB,GAC7B8jH,EAAOl8H,GAAGvJ,EAAM,UAAW+7E,IAE/B0uG,EAAe,CACXx6L,OAAQ26L,EACR9jL,QAAS,WAIL,GAHIrO,EAAM0xL,eAAel4K,KAASw4K,UACvBhyL,EAAM0xL,eAAel4K,GAE5BjS,EAAM,CACN,IAAK,IAAIjO,EAAK,EAAGq5L,EAAaV,EAAU34L,EAAKq5L,EAAWn5L,OAAQF,IAAM,CAClE,IAAIw0J,EAAU6kC,EAAWr5L,GACzB0G,EAAMiqB,QAAQ44D,IAAIt7E,EAAMumJ,EAAQr9I,UAAWq9I,EAAQp9I,SACvD,CACIqhL,IACA/kD,EAAOnqD,IAAIt7E,EAAM,YAAa86F,GAC9B2qC,EAAOnqD,IAAIt7E,EAAM,YAAag7F,GAC9ByqC,EAAOnqD,IAAIt7E,EAAM,UAAW+7E,GAC5B0pD,EAAOnqD,IAAIt7E,EAAM,WAAYimF,GAC7Bw/C,EAAOnqD,IAAIt7E,EAAM,OAAQ87E,IAEzBrD,IACAgtD,EAAOnqD,IAAIt7E,EAAM,YAAa47E,GAC9B6pD,EAAOnqD,IAAIt7E,EAAM,YAAa2hB,GAC9B8jH,EAAOnqD,IAAIt7E,EAAM,UAAW+7E,GAEpC,CACJ,GAEJxlF,KAAK4zL,eAAel4K,GAAOw4K,CAC/B,CACA,MAAO,CACHx4K,IAAKA,EACLnL,QAAS,WACD2jL,GACAA,EAAa3jL,SAErB,EAER,EACA48E,EAAe1tF,UAAUywJ,YAAc,SAAUzmJ,EAAMiS,GACnD,IAAIw4K,EAAel0L,KAAK4zL,eAAel4K,GACnCw4K,GACAA,EAAa3jL,SAErB,EACA48E,EAAe1tF,UAAUmiF,WAAa,SAAUloF,EAAQkH,GACpD,IAAIzG,EAAUT,EAAOS,QACjBA,EAAQqrF,WACRrrF,EAAQqrF,UAAUrrF,EAAQO,QAAQ2f,KAAMzZ,EAEhD,EAIAusF,EAAe1tF,UAAUyrB,WAAa,SAAUtqB,GAE5C,GADAZ,KAAK00L,aAAc,EACf10L,KAAK80L,UAAW,CAChB,IAAK,IAAIt5L,EAAK,EAAGpB,EAAKiF,OAAOiU,KAAKtT,KAAK4zL,gBAAiBp4L,EAAKpB,EAAGsB,OAAQF,IAAM,CAC1E,IAAIkgB,EAAMthB,EAAGoB,GACT04L,EAAel0L,KAAK4zL,eAAel4K,GACnCw4K,EAAax6L,OAAO+P,OACpBzJ,KAAKmsB,QAAQ44D,IAAImvG,EAAax6L,OAAO+P,KAAM,aAC3CzJ,KAAKmsB,QAAQ44D,IAAImvG,EAAax6L,OAAO+P,KAAM,cAEnD,CACIzJ,KAAK80L,UAAUC,aAEf,IAAWC,MAAMh1L,KAAK80L,UAAUC,WAAWtrL,KAAM,aACjD,IAAWurL,MAAMh1L,KAAK80L,UAAUC,WAAWtrL,KAAM,QAEzD,CACAzJ,KAAK80L,UAAY,IACrB,EAIA3nG,EAAe1tF,UAAUu0L,mBAAqB,SAAUpzL,GACpD,IAAIqJ,GAAM,SACNA,GAAOrJ,EAAMlH,SAAWuQ,EAAIq4B,iBAC5BtiC,KAAKkrB,WAAWtqB,EAExB,EAMAusF,EAAe1tF,UAAU6wC,aAAe,SAAU52C,EAAQkH,GACtD,IAGAxG,EAAKwG,EAAM8rF,QAGXA,OAAiB,IAAPtyF,EA7Na,EA6N8BA,EACrD,GAAI4F,KAAK80L,WA9Nc,IA8NDpoG,EAElB1sF,KAAKkrB,WAAWtqB,OAFpB,CAKA,IAAI6I,EAAO/P,EAAO+P,KAAMiS,EAAMhiB,EAAOgiB,IACjC1b,KAAK00L,aACD10L,KAAKs0L,aAAa56L,IAKdsG,KAAK80L,WACD90L,KAAK80L,UAAUC,YACf/0L,KAAK80L,UAAUC,WAAWr5K,MAAQA,IACjC1b,KAAKi1L,SAASxrL,EAAMzJ,KAAK80L,UAAUC,WAAWtrL,OAC3CzJ,KAAK2zL,iBAAiB3zL,KAAK80L,UAAUC,WAAWr5K,KAAO,IACvD,IAAWs5K,MAAMh1L,KAAK80L,UAAUC,WAAWtrL,KAAM,aACjD,IAAWurL,MAAMvrL,EAAM,aACvBzJ,KAAK80L,UAAUC,WAAar7L,EAfhD,CAqBJ,EAIAyzF,EAAe1tF,UAAUy1L,cAAgB,SAAUx7L,EAAQkH,GACnDZ,KAAK00L,aACD10L,KAAK80L,WAAa90L,KAAK80L,UAAUC,YAAc/0L,KAAK80L,UAAUC,WAAWr5K,MAAQhiB,EAAOgiB,MACxF,IAAWs5K,MAAMt7L,EAAO+P,KAAM,aAC9BzJ,KAAK80L,UAAUC,gBAAah2L,EAGxC,EAIAouF,EAAe1tF,UAAUoE,aAAe,SAAUnK,EAAQkH,GACtD,GAxQuB,IAwQnBA,EAAMuhF,OAIV,GAAIniF,KAAKqvF,aAAa31F,GAAS,CAC3BsG,KAAK80L,UAAY,CACbv6J,QAAS35B,EAAM25B,QACfC,QAAS55B,EAAM45B,QACf26J,YAAav0L,EAAMlH,OACnB07L,WAAY17L,GAEhB,IAAK,IAAI8B,EAAK,EAAGpB,EAAKiF,OAAOiU,KAAKtT,KAAK4zL,gBAAiBp4L,EAAKpB,EAAGsB,OAAQF,IAAM,CAC1E,IAAIkgB,EAAMthB,EAAGoB,GACT04L,EAAel0L,KAAK4zL,eAAel4K,GACnCw4K,EAAax6L,OAAO+P,OACpBzJ,KAAKmsB,QAAQnZ,GAAGkhL,EAAax6L,OAAO+P,KAAM,YAAazJ,KAAKswC,aAAa10B,KAAK5b,KAAMk0L,EAAax6L,SACjGsG,KAAKmsB,QAAQnZ,GAAGkhL,EAAax6L,OAAO+P,KAAM,aAAczJ,KAAKk1L,cAAct5K,KAAK5b,KAAMk0L,EAAax6L,SAE3G,CACJ,MAEIsG,KAAK80L,UAAY,IAEzB,EAIA3nG,EAAe1tF,UAAUw1L,SAAW,SAAU/xL,EAAek0I,GACzD,KAAOA,GAAgBA,EAAal0I,eAAe,CAC/C,GAAIk0I,EAAal0I,gBAAkBA,EAC/B,OAAO,EAEXk0I,EAAeA,EAAal0I,aAChC,CACA,OAAO,CACX,EACAiqF,EAAe1tF,UAAU4vF,aAAe,SAAU31F,GAC9C,IAAIS,EAAUT,EAAOS,QACrB,SAAUA,EAAQgrF,UAAWhrF,EAAQgrF,QAAQhrF,EAAQO,QAAQ2f,MACjE,EACA8yE,EAAe1tF,UAAU60L,aAAe,SAAU56L,GAE9C,IAAIS,EAAUT,EAAOS,QACjBk7L,EAAcr1L,KAAK80L,WAAa90L,KAAK80L,UAAUM,WAAap1L,KAAK80L,UAAUM,WAAWj7L,QAAQO,aAAUqE,EAC5G,SAAU5E,EAAQirF,UAAWjrF,EAAQirF,QAAQjrF,EAAQO,QAAS26L,GAClE,EACOloG,CACX,CArTmC,E,6FCOxBvzB,EAAoB,SAAUruD,EAAY+pL,GACjD,IAAIl7L,EAAK,YAAe,WAA6Bm7L,EAAqBn7L,EAAG,GAAIo7L,EAAwBp7L,EAAG,GACxGuvJ,EAAW,eAAkB,WAC7B,IAAI8rC,GAAoB,SAAkB,OAAUlqL,EAAWpI,UAE3DoyL,IAAuBE,GACvBD,EAAsBC,EAE9B,GAAG,CAAClqL,EAAYgqL,IACZnjJ,GAAM,UAUV,OATA,OAAWA,EAAK,SAAUu3G,GAG1B,aAAgB,gBACmB5qJ,IAA3Bu2L,GACA3rC,GAGR,GAAG,CAAC2rC,IACGA,QAAuEA,EAAyBC,CAC3G,C,iFC9BO,IASIG,EATAC,EAAa,MACbC,EAAgB,IAEhBC,EAAiB,kBACjBC,EAAyB,0BAEzBC,EAAe,gBAI1B,SAAWL,GACPA,EAAaM,aAAe,cAC5BN,EAAaO,eAAiB,gBAC9BP,EAAaQ,eAAiB,gBAC9BR,EAAaS,uBAAyB,uBACtCT,EAAaU,yBAA2B,yBACxCV,EAAaW,yBAA2B,yBACxCX,EAAaY,kBAAoB,kBACjCZ,EAAaa,iBAAmB,gBACnC,CATD,CASGb,IAAiBA,EAAe,CAAC,G,iFCbhC5iE,EAA+B,WAC/B,SAASA,IACL9yH,KAAKw2L,QAAU,CAAC,EAChBx2L,KAAKk2I,iBAAmB,CAAC,EACzBl2I,KAAKy2L,gBAAkB,CAAC,EAGxBz2L,KAAK02L,cAAe,EAGpB12L,KAAK22L,uBAAwB,EAG7B32L,KAAK42L,2BAA4B,CACrC,CA4JA,OAtJA9jE,EAAcE,YAAc,WACxB,OAAOhzH,KAAK62L,SAChB,EAQA/jE,EAAcrzH,UAAUq3L,KAAO,SAAUF,GACrC52L,KAAK42L,0BAA4BA,CACrC,EAQA9jE,EAAcrzH,UAAUyzH,SAAW,SAAU9qG,EAAa2uK,QACpC,IAAdA,IAAwBA,GAAY,GACxC,IAAIz7L,EAAQ8sB,EACP2uK,IAEDz7L,EAAQ0E,KAAKwzH,kBAAkBprG,GAC/BpoB,KAAKy2L,gBAAgBn7L,EAAMo3H,aAAan5G,YAAcje,GAG1D,IAAI07L,EAAeh3L,KAAKi3L,cAAc37L,GAMtC,GAJAy7L,EACO/2L,KAAKk2I,iBAAiB8gD,EAAajhD,UAAYihD,EAC/Ch3L,KAAKw2L,QAAQQ,EAAajhD,UAAYihD,EAEzCh3L,KAAK02L,eAAiB12L,KAAK42L,0BAA2B,CACtD,IAAIpC,EAAUuC,EAAY,KAAaZ,uBAAyB,KAAaH,aAC7E,IAAWhB,MAAMh1L,KAAMw0L,EAAS,CAC5B3+C,OAAQv6I,EACRy6I,SAAUihD,EAAajhD,UAE/B,CACA,OAAOihD,EAAajhD,QACxB,EAOAjjB,EAAcrzH,UAAUgS,OAAS,SAAU2W,EAAa2tH,GACpD,IAAIxiB,EAAiBvzH,KAAKwzH,kBAAkBprG,GACxC4uK,EAAeh3L,KAAKi3L,cAAc1jE,EAAgBwiB,GAClDmhD,EAAYl3L,KAAKw2L,QAAQzgD,GACzBmhD,IAEAF,EAAanhD,OAAOrnD,QAAU0oG,EAAUrhD,OAAOrnD,QAE/CxuF,KAAKw2L,QAAQzgD,GAAYihD,SAElBh3L,KAAKy2L,gBAAgBS,EAAUrhD,OAAOnjB,aAAan5G,YAC1DvZ,KAAKy2L,gBAAgBO,EAAanhD,OAAOnjB,aAAan5G,YAAcy9K,EAAanhD,QAE7E71I,KAAK02L,cAAiB12L,KAAK42L,2BAC3B,IAAW5B,MAAMh1L,KAAM,KAAak2L,eAAgB,CAChDrgD,OAAQmhD,EAAanhD,OACrBE,SAAUihD,EAAajhD,WAIvC,EAQAjjB,EAAcrzH,UAAU0zH,WAAa,SAAUgkE,EAAgBphD,EAAUghD,QACnD,IAAdA,IAAwBA,GAAY,GACxCA,SAAmB/2L,KAAKk2I,iBAAiBH,UAAmB/1I,KAAKw2L,QAAQzgD,IACxEghD,UAAoB/2L,KAAKy2L,gBAAgBU,EAAezkE,aAAan5G,YACtE,IAAI3Y,EAAQm2L,EAAY,KAAaX,yBAA2B,KAAaH,gBAEzEj2L,KAAK02L,cAAiB12L,KAAK42L,2BAC3B,IAAW5B,MAAMh1L,KAAMY,EAAO,CAC1Bi1I,OAAQshD,EACRphD,SAAUA,GAGtB,EAIAjjB,EAAcrzH,UAAU23L,gBAAkB,WACtC,IAAWpC,MAAMh1L,KAAM,KAAas2L,kBACxC,EAIAxjE,EAAcrzH,UAAU43L,eAAiB,WACrC,IAAWrC,MAAMh1L,KAAM,KAAau2L,iBACxC,EAMAzjE,EAAcrzH,UAAU63L,WAAa,WACjC,IAAIp1L,EAAQlC,KACZ,OAAOX,OAAOiU,KAAKtT,KAAKw2L,SAAS56L,KAAI,SAAU8f,GAAO,OAAOxZ,EAAMs0L,QAAQ96K,GAAKm6H,MAAQ,GAC5F,EAOA/iB,EAAcrzH,UAAU+zH,kBAAoB,SAAUprG,GAClD,IAAImvK,GAAe,QAAc,GAAInvK,EAAYsqG,cAAc,GAE/D,GADA6kE,EAAavzL,MACe,IAAxBuzL,EAAa77L,OAAc,CAC3B,IAAI87L,EAAex3L,KAAKy2L,gBAAgBc,EAAah+K,YACrD,GAAIi+K,GAAgBA,EAAa7jE,oBAC7B,OAAO,SAAS,QAAS,CAAC,EAAGvrG,GAAc,CAAEurG,oBAAqB6jE,EAAa7jE,qBAEvF,CACA,OAAOvrG,CACX,EAIA0qG,EAAcrzH,UAAUi3I,YAAc,SAAU+gD,EAAyBzhD,GACrE,IAAWg/C,MAAMh1L,KAAM,KAAaq2L,yBAA0B,CAC1DoB,wBAAyBA,EACzBzhD,gBAAiBA,GAEzB,EAQAljB,EAAcrzH,UAAUw3L,cAAgB,SAAU7uK,EAAa2tH,GAE3D,YADiB,IAAbA,IAAuBA,GAAW,UAC/B,CAAEF,QAAQ,QAAS,CAAC,EAAGztH,GAAc2tH,SAAUA,EAC1D,EACAjjB,EAAc+jE,UAAY,IAAI/jE,EACvBA,CACX,CA3KkC,E,kBCN3B,IAAI4kE,EAOAC,E,yBANX,SAAWD,GACPA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAsB,QAAK,GAAK,SAC9CA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAqB,OAAK,GAAK,OAChD,CALD,CAKGA,IAAkBA,EAAgB,CAAC,IAEtC,SAAWC,GACPA,EAASA,EAAc,IAAI,GAAK,MAChCA,EAASA,EAAiB,OAAI,GAAK,SACnCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAc,IAAI,GAAK,KACnC,CALD,CAKGA,IAAaA,EAAW,CAAC,G,kBCbrB,SAASC,EAAsBz9L,EAASujD,GAE3C,IADA,IAAI4gE,EAAkB,GACb9iH,EAAK,EAAGq8L,EAAoBn6I,EAAiBliD,EAAKq8L,EAAkBn8L,OAAQF,IAAM,CACvF,IACImyC,EAASxzC,EADD09L,EAAkBr8L,IAE1BmyC,GACA2wE,EAAgB3gH,KAAKgwC,EAE7B,CACA,OAAO2wE,CACX,C,kCCVO,IAAIw5E,E,iBACX,SAAWA,GACPA,EAA6BA,EAAqC,OAAI,GAAK,SAC3EA,EAA6BA,EAAsC,QAAI,GAAK,UAC5EA,EAA6BA,EAAqC,OAAI,GAAK,SAC3EA,EAA6BA,EAAwC,UAAI,GAAK,WACjF,CALD,CAKGA,IAAiCA,EAA+B,CAAC,G,2MCahEC,EAAiC,uBAEjCC,EAAkC,wBAClCC,EAAkC,wBAElCC,EAAsC,4BAKtC/8F,EAA+B,SAAUr5F,GAEzC,SAASq5F,EAAc7/F,GACnB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KACxCkC,EAAMC,MAAQ,cAOdD,EAAMu9F,gBAAkB,WACpBv9F,EAAMi2L,kBAAiB,EAC3B,EACAj2L,EAAMmoH,mBAAqB,WACvB,IAAIp+B,EAAY/pF,EAAM5G,MAAM2wF,UACxBma,EAAUna,EAAUma,SAAWna,EAAUma,UAC7ClkG,EAAM0T,SAAS,CACXwwF,QAASA,GAEjB,EACAlkG,EAAMk2L,oBAAsB,SAAUz3L,GAClC,IAAIjH,EAASiH,EAAGjH,OAChB,GAAIR,SAASwL,gBAAkBhL,IAAW,OAAgBR,SAASwL,cAAehL,IAIlF,IAAK,OAAgBA,EAAQwI,EAAMC,MAAMgB,SAGzC,KAAOzJ,IAAWwI,EAAMC,MAAMgB,SAAS,CACnC,GAAIjB,EAAMm2L,cAAc3+L,EAAQu+L,GAAkC,CAC9D/1L,EAAMu9F,kBACN,KACJ,CACA/lG,GAAS,OAAUA,EACvB,OAZIwI,EAAMu9F,iBAad,EAMAv9F,EAAMI,SAAW,SAAU3B,GACvB,IAAIjH,EAASiH,EAAGjH,OACZuyF,EAAY/pF,EAAM5G,MAAM2wF,UACxBqsG,EAA0Bp2L,EAAMq2L,gBAAkBr2L,EAAMs2L,eACxDzqG,EAAgB7rF,EAAMu2L,oBAC1B,GAAIv2L,EAAMw2L,oBAAsB3qG,IAAkB,KAAc39E,KAAM,CAClE,IAAIuoL,EAAWz2L,EAAMm2L,cAAc3+L,EAAQs+L,GACvCY,EAAW12L,EAAM22L,cAAcn/L,GACnC,IAAKi/L,GAAYC,EAAU,CACvB,IAAI38K,EAAQ/Z,EAAM42L,cAAcF,QAEnB75L,IADFmD,EAAM62L,aAAaH,KAEtBN,GAEArsG,EAAU8O,iBAAiB9+E,EAAOgwE,EAAUka,gBAAgBlqF,IAAQ,GAChE/Z,EAAM5G,MAAMggG,mBAAqBp5F,EAAMujI,UAAYx5C,EAAU+sG,WAC7D/sG,EAAU+sG,UAAS,GACnB92L,EAAM+2L,aAAY,KAIlB/2L,EAAM5G,MAAM25F,mBACZ/yF,EAAMg3L,oBAAoB,QAASj9K,GAInD,CACJ,CACA/Z,EAAMi2L,kBAAiB,EAC3B,EACAj2L,EAAM2B,aAAe,SAAUlD,GAC3BuB,EAAMi3L,iBAAiBx4L,GACvB,IAAI06F,EAA+Bn5F,EAAM5G,MAAM+/F,6BAC3C3hG,EAASiH,EAAGjH,OACZk/L,EAAW12L,EAAM22L,cAAcn/L,GAEnC,IAAIwI,EAAMk3L,qBAAqB1/L,GAG/B,KAAOA,IAAWwI,EAAMC,MAAMgB,UACtBjB,EAAMm2L,cAAc3+L,EAAQw+L,IADG,CAI9B,GAAIU,EAAU,CACf,GAAI12L,EAAMm2L,cAAc3+L,EAAQs+L,GAC5B,MAEC,GAAI91L,EAAMm2L,cAAc3+L,EAAQu+L,GACjC,MAEC,KAAKv+L,IAAWk/L,IAAY12L,EAAMm3L,kBAAkB3/L,IACpDwI,EAAMo3L,iBACNp3L,EAAMq2L,gBACNr2L,EAAMs2L,gBACNn9F,GAA8B,CAC/Bn5F,EAAMq3L,mBAAmB54L,EAAIuB,EAAM42L,cAAcF,GAAW12L,EAAM62L,aAAaH,IAC/E,KACJ,CACK,GAAI12L,EAAM5G,MAAMk+L,mCACG,MAAnB9/L,EAAO0T,SAAsC,WAAnB1T,EAAO0T,SAA2C,UAAnB1T,EAAO0T,SACjE,MAER,CACA1T,GAAS,OAAUA,EACvB,CACJ,EACAwI,EAAMu3L,qBAAuB,SAAU94L,GACnCuB,EAAM+2L,aAAY,EACtB,EACA/2L,EAAMkU,SAAW,SAAUzV,GACvB,IAAIvG,EAAK8H,EAAM5G,MAAMo+L,4BAA6BA,OAAqC,IAAPt/L,GAAwBA,EACxG8H,EAAMi3L,iBAAiBx4L,GAIvB,IAHA,IAAIjH,EAASiH,EAAGjH,OACZk/L,EAAW12L,EAAM22L,cAAcn/L,GAC/BigM,EAAsBz3L,EAAMk3L,qBAAqB1/L,GAC9CA,IAAWwI,EAAMC,MAAMgB,SAAS,CACnC,GAAIjB,EAAMm2L,cAAc3+L,EAAQw+L,GAAsC,CAC7DyB,GACDz3L,EAAM03L,kBAAkBj5L,GAE5B,KACJ,CACK,GAAIi4L,EAAU,CACf,IAAI38K,EAAQ/Z,EAAM42L,cAAcF,GAC5BhoH,EAAO1uE,EAAM62L,aAAaH,GAC9B,GAAI12L,EAAMm2L,cAAc3+L,EAAQs+L,GAAkC,CACzD2B,IACGz3L,EAAMo3L,gBACNp3L,EAAMg3L,oBAAoB,QAASj9K,EAAO20D,GAG1C1uE,EAAM0kH,eAAejmH,EAAIsb,EAAO20D,IAGxC,KACJ,CACK,GAAK1uE,EAAMujI,UACZi0D,GACAx3L,EAAMm2L,cAAc3+L,EAnJA,gCAoJpBwI,EAAMm2L,cAAc3+L,EAAQu+L,GAAkC,MACjDl5L,IAAT6xE,GAEA1uE,EAAM23L,eAAel5L,EAAIsb,GAE7B,KACJ,CACK,GAAIviB,IAAWk/L,EAAU,CACrBe,GACDz3L,EAAMg3L,oBAAoB,QAASj9K,EAAO20D,GAE9C,KACJ,CACK,GAAuB,MAAnBl3E,EAAO0T,SAAsC,WAAnB1T,EAAO0T,SAA2C,UAAnB1T,EAAO0T,QACrE,MAER,CACA1T,GAAS,OAAUA,EACvB,CACJ,EACAwI,EAAM43L,eAAiB,SAAUn5L,GAC7B,IAAIjH,EAASiH,EAAGjH,OACZU,EAAK8H,EAAM5G,MAAOi4F,EAAoBn5F,EAAGm5F,kBAAmBtH,EAAY7xF,EAAG6xF,UAC/E,GAAIsH,EAAmB,CACnB,IAAIqlG,EAAW12L,EAAM22L,cAAcn/L,GACnC,GAAIk/L,EAAU,CACV,IAAI38K,EAAQ/Z,EAAM42L,cAAcF,GAChC12L,EAAMq3L,mBAAmB54L,EAAIsb,GACJs3E,EAAkBtH,EAAU8tG,WAAW99K,GAAQA,EAAOtb,EAAG0V,cAK9E1V,EAAGyG,gBAEX,CACJ,CACJ,EAKAlF,EAAM83L,eAAiB,SAAUr5L,GAC7B,IAAIjH,EAASiH,EAAGjH,OACZ45F,EAAgBpxF,EAAM5G,MAAMg4F,cAC5BslG,EAAW12L,EAAM22L,cAAcn/L,GACnC,GAAIk/L,GAAYtlG,IAAkBpxF,EAAM+3L,gBAAgBvgM,GAAS,CAE7D,IADA,IAAIuiB,EAAQ/Z,EAAM42L,cAAcF,GACzBl/L,IAAWwI,EAAMC,MAAMgB,UACtBjB,EAAMm2L,cAAc3+L,EAAQs+L,KAC5B91L,EAAMm2L,cAAc3+L,EAAQu+L,IAFG,CAK9B,GAAIv+L,IAAWk/L,EAAU,CAC1B12L,EAAM23L,eAAel5L,EAAIsb,GACzB,KACJ,CACAviB,GAAS,OAAUA,EACvB,CACAA,GAAS,OAAUA,EACvB,CACJ,EACAwI,EAAMmH,kBAAoB,SAAU1I,GAChCuB,EAAMi3L,iBAAiBx4L,GACvBuB,EAAMi2L,kBAAiB,EAC3B,EACAj2L,EAAMgC,WAAa,SAAUvD,GACzBuB,EAAMi3L,iBAAiBx4L,GACvB,IAAIjH,EAASiH,EAAGjH,OACZigM,EAAsBz3L,EAAMk3L,qBAAqB1/L,GACjDU,EAAK8H,EAAM5G,MAAO2wF,EAAY7xF,EAAG6xF,UAAWmP,EAAgChhG,EAAGghG,8BAE/E8+F,EAAiBv5L,EAAGqE,QAAU,IAAS+qC,IAAM7tC,EAAMq2L,gBAAkBr2L,EAAMs2L,gBAE3E2B,EAAsBx5L,EAAGqE,QAAU,IAAS6gD,OAEhD,IAAI3jD,EAAM+3L,gBAAgBvgM,GAA1B,CAIA,IAAIq0F,EAAgB7rF,EAAMu2L,oBAE1B,GAAIyB,GAAkBnsG,IAAkB,KAAcc,WAAa5C,EAAU/F,gBAMzE,OALKyzG,GACD1tG,EAAU86C,gBAAe,GAE7BpmI,EAAG+C,uBACH/C,EAAGyG,iBAKP,GAAIg0F,GAAiC++F,GAAuBluG,EAAUo7C,mBAAqB,EAMvF,OALKsyD,GACD1tG,EAAU86C,gBAAe,GAE7BpmI,EAAG+C,uBACH/C,EAAGyG,iBAGP,IAAIwxL,EAAW12L,EAAM22L,cAAcn/L,GAEnC,GAAIk/L,EAGA,IAFA,IAAI38K,EAAQ/Z,EAAM42L,cAAcF,GAC5BhoH,EAAO1uE,EAAM62L,aAAaH,GACvBl/L,IAAWwI,EAAMC,MAAMgB,UACtBjB,EAAMm2L,cAAc3+L,EAAQs+L,IADG,CAM9B,GAAI91L,EAAMm3L,kBAAkB3/L,GAAS,CACjCigM,QAAgC56L,IAAT6xE,GAGxB1uE,EAAMq3L,mBAAmB54L,EAAIsb,EAAO20D,GAExC,KACJ,CACK,KAEJjwE,EAAGqE,QAAU,IAASkC,OAASvG,EAAGqE,QAAU,IAASE,OAC9B,WAAnBxL,EAAO0T,SACe,MAAnB1T,EAAO0T,SACY,UAAnB1T,EAAO0T,SACY,YAAnB1T,EAAO0T,SACX,OAAO,EAEN,GAAI1T,IAAWk/L,EAAU,CAE1B,GAAIj4L,EAAGqE,QAAU,IAASkC,MAMtB,iBALanI,IAAT6xE,IAEA1uE,EAAM23L,eAAel5L,EAAIsb,GACzBtb,EAAGyG,mBAKN,GAAIzG,EAAGqE,QAAU,IAASE,MAK3B,OAJKy0L,GACDz3L,EAAM0kH,eAAejmH,EAAIsb,EAAO20D,QAEpCjwE,EAAGyG,iBAGP,KACJ,CACA1N,GAAS,OAAUA,EACvB,CAtEJ,CAwEJ,EACAwI,EAAMiqB,QAAU,IAAI,IAAWjqB,GAC/BA,EAAMiU,OAAS,IAAI,IAAMjU,IACzB,OAAuBA,GACvB,IAAI+pF,EAAY/pF,EAAM5G,MAAM2wF,UAExBma,EAAUna,EAAUma,SAAWna,EAAUma,UAI7C,OAHAlkG,EAAMjH,MAAQ,CACVmrG,QAASA,GAENlkG,CACX,CAkTA,OAjmBA,QAAUi5F,EAAer5F,GAgTzBq5F,EAAclkF,yBAA2B,SAAU4sB,EAAWtW,GAC1D,IAAI64E,EAAUviE,EAAUooD,UAAUma,SAAWviE,EAAUooD,UAAUma,UACjE,OAAO,SAAS,QAAS,CAAC,EAAG74E,GAAY,CAAE64E,QAASA,GACxD,EACAjL,EAAc17F,UAAU+J,kBAAoB,WACxC,IAAI4oC,GAAM,OAAUpyC,KAAKmC,MAAMgB,SAE/BnD,KAAKmsB,QAAQnZ,GAAGo/B,EAAK,iBAAkBpyC,KAAKm5L,kBAAkB,GAC9Dn5L,KAAKmsB,QAAQnZ,GAAG9Z,SAAU,QAAS8G,KAAKo6L,0CACxCp6L,KAAKmsB,QAAQnZ,GAAG9Z,SAASC,KAAM,aAAc6G,KAAKy5L,sBAAsB,GACxEz5L,KAAKmsB,QAAQnZ,GAAG9Z,SAASC,KAAM,WAAY6G,KAAKy5L,sBAAsB,GAEtEz5L,KAAKmsB,QAAQnZ,GAAGhT,KAAK1E,MAAM2wF,UAAW,SAAUjsF,KAAKqqH,mBACzD,EACAlvB,EAAc17F,UAAUxB,OAAS,WAC7B,IAAImoG,EAAUpmG,KAAK/E,MAAMmrG,QACzB,OAAQ,gBAAoB,MAAO,CAAExoG,WAAW,OAAI,mBAAoBoC,KAAK1E,MAAMsC,UAAW,CACtF,4BAA6BwoG,IAC7B96F,IAAKtL,KAAKmC,MAAOoC,UAAWvE,KAAKkE,WAAYknB,YAAaprB,KAAK6D,aAAcw2L,iBAAkBr6L,KAAKqJ,kBAAmByP,QAAS9Y,KAAKoW,SAAU4G,KAAM,eAAgB8uE,cAAe9rF,KAAKg6L,eAAgBj2G,cAAe/jF,KAAK85L,eAAgBtuL,mBAAoBxL,KAAKo4L,oBAAqBrpK,eAAgB/uB,KAAKsC,SAAU,4BAA2B8jG,QAAiBrnG,GAC1WiB,KAAK1E,MAAMoB,SACX,gBAAoB,IAAY,MACxC,EACAy+F,EAAc17F,UAAUuK,mBAAqB,SAAU45B,GACnD,IAAIqoD,EAAYjsF,KAAK1E,MAAM2wF,UACvBA,IAAcroD,EAAcqoD,YAE5BjsF,KAAKmsB,QAAQ44D,IAAInhD,EAAcqoD,WAC/BjsF,KAAKmsB,QAAQnZ,GAAGi5E,EAAW,SAAUjsF,KAAKqqH,oBAElD,EACAlvB,EAAc17F,UAAU6K,qBAAuB,WAC3CtK,KAAKmsB,QAAQ5b,UACbvQ,KAAKmW,OAAO5F,SAChB,EACA4qF,EAAc17F,UAAU25L,qBAAuB,SAAU1/L,GACrD,GAAIsG,KAAKy4L,sBAAwB,KAAcroL,KAC3C,OAAO,EAEX,KAAO1W,IAAWsG,KAAKmC,MAAMgB,SAAS,CAClC,GAAInD,KAAKq4L,cAAc3+L,EAnWK,2BAoWxB,OAAO,EAEXA,GAAS,OAAUA,EACvB,CACA,OAAO,CACX,EACAyhG,EAAc17F,UAAUm6L,kBAAoB,SAAUj5L,GAClD,IAAIsrF,EAAYjsF,KAAK1E,MAAM2wF,UACPjsF,KAAKy4L,sBACH,KAAc5pG,WAChC5C,EAAUC,oBACVvrF,EAAG+C,kBACH/C,EAAGyG,iBAEX,EACA+zF,EAAc17F,UAAUmnH,eAAiB,SAAUjmH,EAAIsb,EAAO20D,GAC1D,IAAIqb,EAAYjsF,KAAK1E,MAAM2wF,UACvB8B,EAAgB/tF,KAAKy4L,oBASzB,GARAxsG,EAAU07C,iBAAgB,GACtB3nI,KAAK1E,MAAMggG,mBACXt7F,KAAKylI,gBACK1mI,IAAT6xE,GAAsBqb,EAAUz8E,gBAAgByM,EAAO20D,IAASqb,EAAUka,gBAAgBlqF,KAC3FgwE,EAAU+sG,WACV/sG,EAAU+sG,UAAS,GACnBh5L,KAAKi5L,aAAY,IAEjBlrG,IAAkB,KAAcc,cACnB9vF,IAAT6xE,EACAqb,EAAUwgC,oBAAoBxwG,EAAO20D,GAGrCqb,EAAUquG,oBAAoBr+K,OAGjC,IAAI8xE,IAAkB,KAAcmJ,OAgBrC,YADAjL,EAAU07C,iBAAgB,GAd1B,QAAa5oI,IAAT6xE,GAA+B,IAATA,EAAY,CAClC,IAAIx3B,EAAa6yC,EAAUka,gBAAgBlqF,GACvCmqF,EAAUna,EAAUma,SAAWna,EAAUma,UAC7Cna,EAAU86C,gBAAe,GACzB96C,EAAU8O,iBAAiB9+E,GAAQm9B,GAAY,GAC3CgtD,GAAWna,EAAU+sG,UAIrB/sG,EAAU+sG,UAAS,EAE3B,CAKJ,CACA/sG,EAAU07C,iBAAgB,GAC1BhnI,EAAG+C,iBAGP,EACAy3F,EAAc17F,UAAUo6L,eAAiB,SAAUl5L,EAAIsb,GACnD,IAAI7hB,EAAK4F,KAAK1E,MAAO2wF,EAAY7xF,EAAG6xF,UAAWqH,EAAgBl5F,EAAGk5F,cAC9DA,IACAA,EAAcrH,EAAU8tG,WAAW99K,GAAQA,EAAOtb,EAAG0V,aACrD1V,EAAGyG,iBACHzG,EAAG+C,kBAEX,EACAy3F,EAAc17F,UAAUy5L,oBAAsB,SAAUz8L,EAAMwf,EAAO20D,GACjE,IAAIx2E,EACA2H,EAAK/B,KAAK1E,MAAO2wF,EAAYlqF,EAAGkqF,UAAWoP,EAA+Bt5F,EAAGs5F,6BAC7Ei9F,EAA0Bt4L,KAAKu4L,gBAAkBv4L,KAAKw4L,eACtDzqG,EAAgB/tF,KAAKy4L,oBACrB1qG,IAAkB,KAAcc,SAC5B7uF,KAAKs5L,kBAAoBt5L,KAAKu6L,mBACjBx7L,IAAT6xE,EACmC,QAAlCx2E,EAAK6xF,EAAUuuG,qBAAkC,IAAPpgM,GAAyBA,EAAGsF,KAAKusF,EAAWhwE,EAAO20D,GAAO0nH,GAGrGrsG,EAAUwuG,cAAcx+K,GAAQq8K,GAGtB,UAAT77L,IAAqB67L,GAA2Bj9F,QACxCt8F,IAAT6xE,EACAqb,EAAUwgC,oBAAoBxwG,EAAO20D,GAGrCqb,EAAUquG,oBAAoBr+K,GAIlCjc,KAAK06L,qBAAqBz+K,EAAO20D,GAGhCmd,IAAkB,KAAcmJ,QACrCl3F,KAAK06L,qBAAqBz+K,EAAO20D,EAEzC,EACAuqB,EAAc17F,UAAU85L,mBAAqB,SAAU54L,EAAIsb,EAAO20D,GAC9D,IAAIqb,EAAYjsF,KAAK1E,MAAM2wF,UAC3B,QAAaltF,IAAT6xE,GACA,GAAIqb,EAAUz8E,gBAAgByM,EAAO20D,GACjC,YAKJ,GAAIqb,EAAUka,gBAAgBlqF,GAC1B,OAGRjc,KAAK06L,qBAAqBz+K,EAAO20D,EACrC,EAQAuqB,EAAc17F,UAAU26L,yCAA2C,SAAUz5L,GACzE,IAAIg6L,GAAe,QAAqB36L,KAAKmC,MAAMgB,SAEnDnD,KAAKmsB,QAAQ44D,IAAI7rF,SAAU,QAAS8G,KAAKo6L,0CACzCp6L,KAAKmsB,QAAQnZ,GAAG2nL,EAAc,QAAS36L,KAAK46L,wBAEvCD,GAAgBh6L,EAAGjH,kBAAkBmhM,MAAQF,EAAa7hM,SAAS6H,EAAGjH,SAAYihM,IAAiBh6L,EAAGjH,SACvGsG,KAAK46L,sBAAsBj6L,EAEnC,EACAw6F,EAAc17F,UAAUm7L,sBAAwB,SAAUj6L,IACjDX,KAAK1E,MAAMq4F,gCAAkC3zF,KAAK86L,mBAAmBn6L,EAAGjH,SACzEsG,KAAK1E,MAAM2wF,UAAU86C,gBAAe,EAE5C,EACA5rC,EAAc17F,UAAUi7L,qBAAuB,SAAUz+K,EAAO20D,GAC5D,IAAIx2E,EACA2H,EAAK/B,KAAK1E,MAAO2wF,EAAYlqF,EAAGkqF,UAAWjqF,EAAKD,EAAGg5L,+BAAgCA,OAAwC,IAAP/4L,GAAuBA,EAE/I,SADwCjD,IAAT6xE,GAA+B,IAATA,GAAgD,IAAjCqb,EAAUo7C,qBAA4Bp7C,EAAUka,gBAAgBlqF,KACpG8+K,EAAgC,CAC5D,IAAI30F,EAAUna,EAAUma,SAAWna,EAAUma,UAC7Cna,EAAU07C,iBAAgB,GAC1B17C,EAAU86C,gBAAe,QACZhoI,IAAT6xE,EACsC,QAArCx2E,EAAK6xF,EAAU+uG,wBAAqC,IAAP5gM,GAAyBA,EAAGsF,KAAKusF,EAAWhwE,EAAO20D,GAAM,GAAM,GAG7Gqb,EAAU8O,iBAAiB9+E,GAAO,GAAM,IAExCmqF,GAAYpmG,KAAK1E,MAAMggG,mBAAqBt7F,KAAKylI,YAC7Cx5C,EAAU+sG,UACV/sG,EAAU+sG,UAAS,GAEnBh5L,KAAKylI,UACLzlI,KAAKi5L,aAAY,IAGzBhtG,EAAU07C,iBAAgB,EAC9B,CACJ,EAKAxsC,EAAc17F,UAAU05L,iBAAmB,SAAUx4L,GACjDX,KAAKs5L,gBAAkB34L,EAAGK,SAC1BhB,KAAKu4L,eAAiB53L,EAAGG,QACzBd,KAAKw4L,eAAiB73L,EAAGI,QAEzB,IAAIolD,EAAUxlD,EAAGwlD,QACjBnmD,KAAKu6L,gBAAgBp0I,GAAUA,IAAY,IAAShgD,GACxD,EACAg1F,EAAc17F,UAAUo5L,cAAgB,SAAUn/L,GAE9C,IADA,IAAIuyF,EAAYjsF,KAAK1E,MAAM2wF,UACpBvyF,IAAWsG,KAAKmC,MAAMgB,SAAS,CAClC,IAAI83L,EAAavhM,EAAOiS,aAAaosL,GACjC97K,EAAQo4B,OAAO4mJ,GACnB,GAAmB,OAAfA,GAAuBh/K,GAAS,GAAKA,EAAQgwE,EAAU8tG,WAAWr+L,OAClE,MAEJhC,GAAS,OAAUA,EACvB,CACA,GAAIA,IAAWsG,KAAKmC,MAAMgB,QAG1B,OAAOzJ,CACX,EACAyhG,EAAc17F,UAAUq5L,cAAgB,SAAUF,GAC9C,IAAIx+L,EACA6gM,EAAanjF,SAA0E,QAAhE19G,EAAKw+L,EAASjtL,aAAaosL,UAAoD,IAAP39L,EAAgBA,EAAK,GAAI,IAC5H,OAAOg6C,MAAM6mJ,IAAe,EAAIA,CACpC,EACA9/F,EAAc17F,UAAUs5L,aAAe,SAAUH,GAC7C,IAAIx+L,EACA8gM,EAAYpjF,SAAyE,QAA/D19G,EAAKw+L,EAASjtL,aAjiBZ,8BAiiB4E,IAAPvR,EAAgBA,EAAK,GAAI,IAC1H,OAAOg6C,MAAM8mJ,QAAan8L,EAAYm8L,CAC1C,EACA//F,EAAc17F,UAAU45L,kBAAoB,SAAUrgM,GAClD,OAAOgH,KAAKq4L,cAAcr/L,EAhiBI,wBAiiBlC,EACAmiG,EAAc17F,UAAU44L,cAAgB,SAAUr/L,EAASmiM,GAEvD,IADA,IAAIxC,GAAW,GACPA,GAAY3/L,IAAYgH,KAAKmC,MAAMgB,SAAS,CAChD,IAAIwM,EAAQ3W,EAAQ2S,aAAawvL,GACjC,GAAc,UAAVxrL,EAAmB,CACnBgpL,GAAW,EACX,KACJ,CACAA,EAAqB,SAAVhpL,EACX3W,GAAU,OAAUA,EACxB,CACA,OAAO2/L,CACX,EACAx9F,EAAc17F,UAAUw6L,gBAAkB,SAAUjhM,GAChD,MAA4B,UAApBA,EAAQoU,SACQ,aAApBpU,EAAQoU,SACoC,SAA5CpU,EAAQ2S,aAAa,oBACuB,KAA5C3S,EAAQ2S,aAAa,kBAC7B,EACAwvF,EAAc17F,UAAUq7L,mBAAqB,SAAU9hM,GACnD,IAAIiR,GAAM,SACV,GAAIA,GAAOjR,EACP,KAAOA,GAAWA,IAAYiR,EAAIq4B,iBAAiB,CAC/C,IAAI,QAAkBtpC,IAAYA,EAAQa,aAAa,wBACnD,OAAO,EAEXb,GAAU,OAAUA,EACxB,CAEJ,OAAO,CACX,EACAmiG,EAAc17F,UAAU04L,iBAAmB,SAAUnvB,GACjD,IAAI9mK,EAAQlC,KACRA,KAAKo7L,8BACLp7L,KAAKmW,OAAO3C,aAAaxT,KAAKo7L,6BAC9Bp7L,KAAKo7L,iCAA8Br8L,GAEvCiB,KAAK04L,mBAAqB1vB,EACtBA,GACAhpK,KAAKmW,OAAO1C,YAAW,WACnBvR,EAAMw2L,oBAAqB,CAC/B,GAAG,IAEX,EACAv9F,EAAc17F,UAAUw5L,YAAc,SAAUoC,GAC5C,IAAIn5L,EAAQlC,KACRA,KAAKs7L,oBACLt7L,KAAKmW,OAAO3C,aAAaxT,KAAKs7L,mBAC9Bt7L,KAAKs7L,uBAAoBv8L,GAE7BiB,KAAKylI,UAAW,EACZ41D,GACAr7L,KAAKmW,OAAO1C,YAAW,WACnBvR,EAAMujI,UAAW,CACrB,GAAG,IAEX,EACAtqC,EAAc17F,UAAUg5L,kBAAoB,WACxC,IAAIxsG,EAAYjsF,KAAK1E,MAAM2wF,UACvB7xF,EAAK4F,KAAK1E,MAAMyyF,cACpB,YAD0D,IAAP3zF,EAAgB6xF,EAAYA,EAAUyH,KAAO,KAActjF,KAAOhW,CAEzH,EACA+gG,EAAcxyF,aAAe,CACzBssF,mBAAmB,EACnBoG,8BAA8B,EAC9BtN,cAAe,KAAcc,SAC7BuM,+BAA+B,GAE5BD,CACX,CAnmBkC,CAmmBhC,Y,iDCtnBEjvE,EAAuB,WAEvB,SAASA,EAAMzzB,EAAQy2H,GACnBlvH,KAAKu7L,YAAc,KACnBv7L,KAAKw7L,cAAgB,KACrBx7L,KAAKy7L,aAAe,KACpBz7L,KAAK07L,mBAAqB,KAC1B17L,KAAK27L,aAAc,EACnB37L,KAAK47L,QAAUnjM,GAAU,KACzBuH,KAAK67L,gBAAkB3sE,EACvBlvH,KAAK87L,MAAQ,WAEb,CACJ,CAiYA,OA7XA5vK,EAAMzsB,UAAU8Q,QAAU,WACtB,IAAIgD,EAIJ,GAHAvT,KAAK27L,aAAc,EACnB37L,KAAK47L,QAAU,KAEX57L,KAAKu7L,YAAa,CAClB,IAAKhoL,KAAMvT,KAAKu7L,YACRv7L,KAAKu7L,YAAY98L,eAAe8U,IAChCvT,KAAKwT,aAAaskG,SAASvkG,EAAI,KAGvCvT,KAAKu7L,YAAc,IACvB,CAEA,GAAIv7L,KAAKw7L,cAAe,CACpB,IAAKjoL,KAAMvT,KAAKw7L,cACRx7L,KAAKw7L,cAAc/8L,eAAe8U,IAClCvT,KAAK+7L,eAAejkF,SAASvkG,EAAI,KAGzCvT,KAAKw7L,cAAgB,IACzB,CAEA,GAAIx7L,KAAKy7L,aAAc,CACnB,IAAKloL,KAAMvT,KAAKy7L,aACRz7L,KAAKy7L,aAAah9L,eAAe8U,IACjCvT,KAAKg8L,cAAclkF,SAASvkG,EAAI,KAGxCvT,KAAKy7L,aAAe,IACxB,CAEA,GAAIz7L,KAAK07L,mBAAoB,CACzB,IAAKnoL,KAAMvT,KAAK07L,mBACR17L,KAAK07L,mBAAmBj9L,eAAe8U,IACvCvT,KAAKg/B,qBAAqB84E,SAASvkG,EAAI,KAG/CvT,KAAK07L,mBAAqB,IAC9B,CACJ,EAOAxvK,EAAMzsB,UAAUgU,WAAa,SAAUb,EAAUe,GAC7C,IAAIzR,EAAQlC,KACRy6G,EAAY,EAoBhB,OAnBKz6G,KAAK27L,cACD37L,KAAKu7L,cACNv7L,KAAKu7L,YAAc,CAAC,GAExB9gF,EAAYhnG,YAAW,WAEnB,IAEQvR,EAAMq5L,oBACCr5L,EAAMq5L,YAAY9gF,GAE7B7nG,EAASjX,MAAMuG,EAAM05L,QACzB,CACA,MAAO7rI,GACH7tD,EAAM+5L,UAAUlsI,EACpB,CACJ,GAAGp8C,GACH3T,KAAKu7L,YAAY9gF,IAAa,GAE3BA,CACX,EAKAvuF,EAAMzsB,UAAU+T,aAAe,SAAUD,GACjCvT,KAAKu7L,aAAev7L,KAAKu7L,YAAYhoL,KACrCC,aAAaD,UACNvT,KAAKu7L,YAAYhoL,GAEhC,EAOA2Y,EAAMzsB,UAAUy8L,aAAe,SAAUtpL,EAAUzF,GAC/C,IAAIjL,EAAQlC,KACRm8L,EAAc,EACd/pJ,GAAM,OAAUjlC,GAqBpB,OApBKnN,KAAK27L,cACD37L,KAAKw7L,gBACNx7L,KAAKw7L,cAAgB,CAAC,GAe1BW,EAAc/pJ,EAAI3+B,YAbS,WAEvB,IAEQvR,EAAMs5L,sBACCt5L,EAAMs5L,cAAcW,GAE/BvpL,EAASjX,MAAMuG,EAAM05L,QACzB,CACA,MAAO7rI,GACH7tD,EAAM+5L,UAAUlsI,EACpB,CACJ,GACmD,GACnD/vD,KAAKw7L,cAAcW,IAAe,GAE/BA,CACX,EAMAjwK,EAAMzsB,UAAUs8L,eAAiB,SAAUxoL,EAAIpG,GAC3C,IAAIilC,GAAM,OAAUjlC,GAChBnN,KAAKw7L,eAAiBx7L,KAAKw7L,cAAcjoL,KACzC6+B,EAAI5+B,aAAaD,UACVvT,KAAKw7L,cAAcjoL,GAElC,EAOA2Y,EAAMzsB,UAAU28L,YAAc,SAAUxpL,EAAUe,GAC9C,IAAIzR,EAAQlC,KACRq8L,EAAa,EAgBjB,OAfKr8L,KAAK27L,cACD37L,KAAKy7L,eACNz7L,KAAKy7L,aAAe,CAAC,GAEzBY,EAAaD,aAAY,WAErB,IACIxpL,EAASjX,MAAMuG,EAAM05L,QACzB,CACA,MAAO7rI,GACH7tD,EAAM+5L,UAAUlsI,EACpB,CACJ,GAAGp8C,GACH3T,KAAKy7L,aAAaY,IAAc,GAE7BA,CACX,EAKAnwK,EAAMzsB,UAAUu8L,cAAgB,SAAUzoL,GAClCvT,KAAKy7L,cAAgBz7L,KAAKy7L,aAAaloL,KACvCyoL,cAAczoL,UACPvT,KAAKy7L,aAAaloL,GAEjC,EAgBA2Y,EAAMzsB,UAAU2zJ,SAAW,SAAU1/I,EAAM4oL,EAAMniM,GAC7C,IAAI+H,EAAQlC,KACZ,GAAIA,KAAK27L,YACL,OAAO37L,KAAK87L,MAEhB,IAIIS,EAEAC,EANAC,EAASH,GAAQ,EACjB37J,GAAU,EACV+7J,GAAW,EACXC,EAAkB,EAIlBliF,EAAY,KACZtgH,GAAsC,kBAApBA,EAAQwmC,UAC1BA,EAAUxmC,EAAQwmC,SAElBxmC,GAAuC,kBAArBA,EAAQuiM,WAC1BA,EAAWviM,EAAQuiM,UAEvB,IAAI9pL,EAAW,SAAUgqL,GACrB,IAAIC,EAAM96H,KAAK86H,MACXpvD,EAAQovD,EAAMF,EACdG,EAAan8J,EAAU87J,EAAShvD,EAAQgvD,EAY5C,OAXIhvD,GAASgvD,KAAYG,GAAYj8J,IACjCg8J,EAAkBE,EACdpiF,IACAv4G,EAAMsR,aAAainG,GACnBA,EAAY,MAEhB8hF,EAAa7oL,EAAK/X,MAAMuG,EAAM05L,QAASY,IAEpB,OAAd/hF,GAAsBiiF,IAC3BjiF,EAAYv4G,EAAMuR,WAAWb,EAAUkqL,IAEpCP,CACX,EAUA,OARqB,WAEjB,IADA,IAAI59L,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAGzB,OADAghM,EAAW79L,EACJiU,GAAS,EACnB,CAEL,EAiBAsZ,EAAMzsB,UAAUihC,SAAW,SAAUhtB,EAAM4oL,EAAMniM,GAC7C,IAAI+H,EAAQlC,KACZ,GAAIA,KAAK27L,YAAa,CAClB,IAAIoB,EAAe,WAElB,EAMD,OALAA,EAAaC,OAAS,WAEtB,EACAD,EAAaE,MAAQ,WAAe,OAAO,IAAO,EAClDF,EAAaG,QAAU,WAAc,OAAO,CAAO,EAC5CH,CACX,CACA,IAMIR,EAEAC,EARAC,EAASH,GAAQ,EACjB37J,GAAU,EACV+7J,GAAW,EACX5+D,EAAU,KACVq/D,EAAe,EACfR,EAAkB56H,KAAK86H,MAIvBpiF,EAAY,KACZtgH,GAAsC,kBAApBA,EAAQwmC,UAC1BA,EAAUxmC,EAAQwmC,SAElBxmC,GAAuC,kBAArBA,EAAQuiM,WAC1BA,EAAWviM,EAAQuiM,UAEnBviM,GAAsC,iBAApBA,EAAQ2jI,UAAyB1pF,MAAMj6C,EAAQ2jI,WACjEA,EAAU3jI,EAAQ2jI,SAEtB,IAAIs/D,EAAe,SAAUC,GACrB5iF,IACAv4G,EAAMsR,aAAainG,GACnBA,EAAY,MAEhBkiF,EAAkBU,CACtB,EACIC,EAAiB,SAAUD,GAC3BD,EAAaC,GACbd,EAAa7oL,EAAK/X,MAAMuG,EAAM05L,QAASY,EAC3C,EACI5pL,EAAW,SAAUgqL,GACrB,IAAIC,EAAM96H,KAAK86H,MACXU,GAAqB,EACrBX,IACIj8J,GAAWk8J,EAAMM,GAAgBV,IACjCc,GAAqB,GAEzBJ,EAAeN,GAEnB,IAAIpvD,EAAQovD,EAAMM,EACdL,EAAaL,EAAShvD,EACtB+vD,EAAeX,EAAMF,EACrBc,GAAiB,EAgBrB,OAfgB,OAAZ3/D,IAEI0/D,GAAgB1/D,GAAWrjB,EAC3BgjF,GAAiB,EAGjBX,EAAaj1L,KAAKugD,IAAI00I,EAAYh/D,EAAU0/D,IAGhD/vD,GAASgvD,GAAUgB,GAAkBF,EACrCD,EAAeT,GAEK,OAAdpiF,GAAuBmiF,IAAaF,IAC1CjiF,EAAYv4G,EAAMuR,WAAWb,EAAUkqL,IAEpCP,CACX,EACIW,EAAU,WACV,QAASziF,CACb,EAcIijF,EAAiB,WAEjB,IADA,IAAI/+L,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAGzB,OADAghM,EAAW79L,EACJiU,GAAS,EACnB,EAID,OAHA8qL,EAAeV,OArBF,WACLE,KAEAE,EAAar7H,KAAK86H,MAE1B,EAiBAa,EAAeT,MAhBH,WAIR,OAHIC,KACAI,EAAev7H,KAAK86H,OAEjBN,CACX,EAYAmB,EAAeR,QAAUA,EAClBQ,CACX,EACAxxK,EAAMzsB,UAAUw+B,sBAAwB,SAAUrrB,EAAUzF,GACxD,IAAIjL,EAAQlC,KACR29L,EAAmB,EACnBvrJ,GAAM,OAAUjlC,GACpB,IAAKnN,KAAK27L,YAAa,CACd37L,KAAK07L,qBACN17L,KAAK07L,mBAAqB,CAAC,GAE/B,IAAIkC,EAAyB,WACzB,IAEQ17L,EAAMw5L,2BACCx5L,EAAMw5L,mBAAmBiC,GAEpC/qL,EAASjX,MAAMuG,EAAM05L,QACzB,CACA,MAAO7rI,GACH7tD,EAAM+5L,UAAUlsI,EACpB,CACJ,EACA4tI,EAAmBvrJ,EAAInU,sBACjBmU,EAAInU,sBAAsB2/J,GAC1BxrJ,EAAI3+B,WAAWmqL,EAAwB,GAC7C59L,KAAK07L,mBAAmBiC,IAAoB,CAChD,CACA,OAAOA,CACX,EACAzxK,EAAMzsB,UAAUu/B,qBAAuB,SAAUzrB,EAAIpG,GACjD,IAAIilC,GAAM,OAAUjlC,GAChBnN,KAAK07L,oBAAsB17L,KAAK07L,mBAAmBnoL,KACnD6+B,EAAIpT,qBAAuBoT,EAAIpT,qBAAqBzrB,GAAM6+B,EAAI5+B,aAAaD,UACpEvT,KAAK07L,mBAAmBnoL,GAEvC,EAEA2Y,EAAMzsB,UAAUw8L,UAAY,SAAUlsI,GAC9B/vD,KAAK67L,iBACL77L,KAAK67L,gBAAgB9rI,EAE7B,EACO7jC,CACX,CA/Y0B,E,mHCuM1B,SAAS2xK,EAAUC,EAAKr+L,EAAWmzL,GAE/B,IAAImL,EAAcD,EAAIlL,GAClBoL,EAAkBv+L,EAAUmzL,IAC5BmL,GAAeC,KACfF,EAAIlL,GAAc,WAEd,IADA,IAKIqL,EALAt/L,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAUzB,OANIwiM,IACAC,EAASD,EAAgBriM,MAAMqE,KAAMrB,IAErCo/L,IAAgBC,IAChBC,EAASF,EAAYpiM,MAAMqE,KAAMrB,IAE9Bs/L,CACX,EAER,CAMO,SAASC,IACZ,OAAO,IACX,EA/NmC,SAAUp8L,GAQzC,SAASq8L,EAAc7iM,EAAOZ,GAC1B,IAAIwH,EAAQJ,EAAOpC,KAAKM,KAAM1E,EAAOZ,IAAYsF,KAUjD,OAyKR,SAAsB89L,EAAKr+L,EAAW2+L,GAClC,IAAK,IAAIt+L,EAAI,EAAGu+L,EAAMD,EAAY1iM,OAAQoE,EAAIu+L,EAAKv+L,IAC/C+9L,EAAUC,EAAKr+L,EAAW2+L,EAAYt+L,GAE9C,CArLQw+L,CAAap8L,EAAOi8L,EAAc1+L,UAAW,CACzC,oBACA,wBACA,0BACA,SACA,qBACA,yBAEGyC,CACX,EAnBA,QAAUi8L,EAAer8L,GAuBzBq8L,EAAc1+L,UAAUuK,mBAAqB,SAAUsjB,EAAWC,GAC9DvtB,KAAKu+L,oBAAoBjxK,EAAWttB,KAAK1E,MAC7C,EAIA6iM,EAAc1+L,UAAU+J,kBAAoB,WACxCxJ,KAAKw+L,iBAAiBx+L,KAAK1E,MAAM8hB,aAAcpd,KACnD,EAIAm+L,EAAc1+L,UAAU6K,qBAAuB,WAE3C,GADAtK,KAAKw+L,iBAAiBx+L,KAAK1E,MAAM8hB,aAAc,MAC3Cpd,KAAKy+L,cAAe,CACpB,IAAK,IAAI3+L,EAAI,EAAGu+L,EAAMr+L,KAAKiwC,aAAav0C,OAAQoE,EAAIu+L,EAAKv+L,IAAK,CAC1D,IAAI4+L,EAAa1+L,KAAKy+L,cAAc3+L,GAChC4+L,EAAWnuL,SACXmuL,EAAWnuL,SAEnB,CACAvQ,KAAKy+L,cAAgB,IACzB,CACJ,EACAp/L,OAAOgN,eAAe8xL,EAAc1+L,UAAW,YAAa,CAIxD6M,IAAK,WACD,IAAKtM,KAAK2+L,YAAa,CACnB,IACIC,EADgB,qBACQ3nB,KAAKj3K,KAAKiJ,YAAYsQ,YAClDvZ,KAAK2+L,YAAcC,GAAWA,EAAQljM,OAAS,EAAIkjM,EAAQ,GAAK,EACpE,CACA,OAAO5+L,KAAK2+L,WAChB,EACApyL,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAe8xL,EAAc1+L,UAAW,eAAgB,CAI3D6M,IAAK,WAID,OAHKtM,KAAKy+L,gBACNz+L,KAAKy+L,cAAgB,IAElBz+L,KAAKy+L,aAChB,EACAlyL,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAe8xL,EAAc1+L,UAAW,SAAU,CAOrD6M,IAAK,WAKD,OAJKtM,KAAK6+L,UACN7+L,KAAK6+L,QAAU,IAAI,IAAM7+L,MACzBA,KAAKiwC,aAAatyC,KAAKqC,KAAK6+L,UAEzB7+L,KAAK6+L,OAChB,EACAtyL,YAAY,EACZC,cAAc,IAElBnN,OAAOgN,eAAe8xL,EAAc1+L,UAAW,UAAW,CAOtD6M,IAAK,WAKD,OAJKtM,KAAK8+L,WACN9+L,KAAK8+L,SAAW,IAAI,IAAW9+L,MAC/BA,KAAKiwC,aAAatyC,KAAKqC,KAAK8+L,WAEzB9+L,KAAK8+L,QAChB,EACAvyL,YAAY,EACZC,cAAc,IAQlB2xL,EAAc1+L,UAAUs/L,YAAc,SAAUC,GAC5C,IAAI98L,EAAQlC,KAUZ,OATKA,KAAKi/L,aACNj/L,KAAKi/L,WAAa,CAAC,GAElBj/L,KAAKi/L,WAAWD,KACjBh/L,KAAKi/L,WAAWD,GAAW,SAAU1zL,GAEjC,OAAQpJ,EAAM88L,GAAW1zL,CAC7B,GAEGtL,KAAKi/L,WAAWD,EAC3B,EAIAb,EAAc1+L,UAAU8+L,oBAAsB,SAAUngK,EAAc6e,QACjD,IAAbA,IAAuBA,EAAW,CAAC,GAGnC7e,GAAgB6e,GAAY7e,EAAahhB,eAAiB6/B,EAAS7/B,eACnEpd,KAAKw+L,iBAAiBpgK,EAAahhB,aAAc,MACjDpd,KAAKw+L,iBAAiBvhJ,EAAS7/B,aAAcpd,MAErD,EAOAm+L,EAAc1+L,UAAUy/L,kBAAoB,SAAUC,IAClD,OAAiBn/L,KAAKpC,UAAWoC,KAAK1E,MAAO6jM,EACjD,EAMAhB,EAAc1+L,UAAU2/L,uBAAyB,SAAUC,IACvD,OAAsBr/L,KAAKpC,UAAWoC,KAAK1E,MAAO+jM,EACtD,EAQAlB,EAAc1+L,UAAU6/L,gCAAkC,SAAUC,EAAeC,EAAqBC,IACpG,IAAAnzK,GAA+BtsB,KAAKpC,UAAWoC,KAAK1E,MAAOikM,EAAeC,EAAqBC,EACnG,EACAtB,EAAc1+L,UAAU++L,iBAAmB,SAAUlzL,EAAKqE,IACjD3P,KAAK0/L,6BAA+Bp0L,IAClB,mBAARA,GACPA,EAAIqE,GAEW,iBAARrE,IAEPA,EAAInI,QAAUwM,GAG1B,CAEJ,CApLkC,CAoLhC,Y,sECxLE09F,EAA+B,SAAUvrG,GAEzC,SAASurG,EAAc/xG,GACnB,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAIxC,OAHAkC,EAAMjH,MAAQ,CACV0kM,gBAA4B5gM,KAAhB,UAETmD,CACX,CAqBA,OA5BA,QAAUmrG,EAAevrG,GAQzBurG,EAAc5tG,UAAU+J,kBAAoB,WACxC,IAAItH,EAAQlC,KACRi/K,EAAQj/K,KAAK1E,MAAM2jL,MACvBj/K,KAAKklI,WAAa5jI,OAAOmS,YAAW,WAChCvR,EAAM0T,SAAS,CACX+pL,YAAY,GAEpB,GAAG1gB,EACP,EACA5xE,EAAc5tG,UAAU6K,qBAAuB,WACvCtK,KAAKklI,YACL1xH,aAAaxT,KAAKklI,WAE1B,EACA73B,EAAc5tG,UAAUxB,OAAS,WAC7B,OAAO+B,KAAK/E,MAAM0kM,WAAa,WAAet0D,KAAKrrI,KAAK1E,MAAMoB,UAAY,IAC9E,EACA2wG,EAAc1kG,aAAe,CACzBs2K,MAAO,GAEJ5xE,CACX,CA9BkC,CA8BhC,Y,kDC7BEjhF,EAA4B,WAE5B,SAASA,EAAW3zB,GAChBuH,KAAKuI,IAAM6jB,EAAWwzK,YACtB5/L,KAAK47L,QAAUnjM,EACfuH,KAAK6/L,cAAgB,EACzB,CAoOA,OA7NAzzK,EAAW4oK,MAAQ,SAAUt7L,EAAQiZ,EAAWmtL,EAAWC,GACvD,IAAI9B,EACJ,GAAI7xK,EAAW4zK,WAAWtmM,IACtB,GAAwB,oBAAbR,UAA4BA,SAASkI,YAAa,CACzD,IAAIT,EAAKzH,SAASkI,YAAY,cAE9BT,EAAGs/L,UAAUttL,EAAWotL,IAAe,GAAO,IAC9C,QAAOp/L,EAAIm/L,GACX7B,EAASvkM,EAAO6H,cAAcZ,EAClC,MACK,GAAwB,oBAAbzH,UAA4BA,SAASgnM,kBAAmB,CAEpE,IAAIC,EAAQjnM,SAASgnM,kBAAkBJ,GAEvCpmM,EAAO0mM,UAAU,KAAOztL,EAAWwtL,EACvC,OAKA,KAAOzmM,IAAqB,IAAXukM,GAAkB,CAC/B,IAAI/uD,EAASx1I,EAAO2mM,WAChBC,EAAepxD,EAASA,EAAOv8H,GAAa,KAChD,GAAI2tL,EACA,IAAK,IAAI/sL,KAAM+sL,EACX,GAAIA,EAAa7hM,eAAe8U,GAI5B,IAHA,IAAIgtL,EAAkBD,EAAa/sL,GAG1BitL,EAAY,GAAc,IAAXvC,GAAoBuC,EAAYD,EAAgB7kM,OAAQ8kM,IAAa,CACzF,IAAIC,EAASF,EAAgBC,GACzBC,EAAOC,iBACPzC,EAASwC,EAAOC,eAAehhM,KAAK+gM,EAAOhoM,OAAQqnM,GAE3D,CAKZpmM,EAASqmM,EAAcrmM,EAAOjB,OAAS,IAC3C,CAEJ,OAAOwlM,CACX,EACA7xK,EAAWu0K,WAAa,SAAUjnM,EAAQiZ,GACtC,IAAIu8H,EAASx1I,GAAUA,EAAO2mM,WAC9B,QAASnxD,KAAYA,EAAOv8H,EAChC,EAEAyZ,EAAWw0K,WAAa,SAAUlnM,EAAQiZ,GACtC,IAAIkuL,EAAiBnnM,GAAUA,EAAOonM,iBACtC,QAASD,KAAoBA,EAAeluL,EAChD,EACAyZ,EAAW1oB,gBAAkB,SAAU9C,GAC/BA,EAAM8C,gBACN9C,EAAM8C,kBAIN9C,EAAMmgM,cAAe,CAE7B,EACA30K,EAAW4zK,WAAa,SAAUtmM,GAC9B,QAAUA,MAAaA,EAAOkQ,kBAA4C,oBAAhBklC,aAA+Bp1C,aAAkBo1C,YAC/G,EACA1iB,EAAW3sB,UAAU8Q,QAAU,WACtBvQ,KAAK27L,cACN37L,KAAK27L,aAAc,EACnB37L,KAAK+kF,MACL/kF,KAAK47L,QAAU,KAEvB,EAEAxvK,EAAW3sB,UAAUuhM,MAAQ,SAAUtnM,EAAQw1I,EAAQr8H,GACnD,IAAK,IAAIF,KAAau8H,EACdA,EAAOzwI,eAAekU,IACtB3S,KAAKgT,GAAGtZ,EAAQiZ,EAAWu8H,EAAOv8H,GAAYE,EAG1D,EAKAuZ,EAAW3sB,UAAUuT,GAAK,SAAUtZ,EAAQiZ,EAAWC,EAAUzY,GAC7D,IAAI+H,EAAQlC,KACZ,GAAI2S,EAAUrD,QAAQ,MAAQ,EAE1B,IADA,IAAI4/H,EAASv8H,EAAU4Z,MAAM,SACpBzsB,EAAI,EAAGA,EAAIovI,EAAOxzI,OAAQoE,IAC/BE,KAAKgT,GAAGtZ,EAAQw1I,EAAOpvI,GAAI8S,EAAUzY,OAGxC,CACD,IAAI8mM,EAAWjhM,KAAK47L,QAChBsF,EAAc,CACdxnM,OAAQA,EACRiZ,UAAWA,EACXla,OAAQwoM,EACRruL,SAAUA,EACVzY,QAASA,GAYb,IATI+0I,EAAUx1I,EAAO2mM,WAAa3mM,EAAO2mM,YAAc,CAAC,GACjD1tL,GACHu8H,EAAOv8H,IACH,CACIy8E,MAAO,GAEnB8/C,EAAOv8H,GAAW3S,KAAKuI,KAAO2mI,EAAOv8H,GAAW3S,KAAKuI,MAAQ,GAC7D2mI,EAAOv8H,GAAW3S,KAAKuI,KAAK5K,KAAKujM,GACjChyD,EAAOv8H,GAAWy8E,QACdhjE,EAAW4zK,WAAWtmM,GAAS,CAC/B,IAAIynM,EAAsB,WAEtB,IADA,IAAIxiM,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAEzB,IAAI0G,EAAMy5L,YAAV,CAGA,IAAIt9L,EACJ,IAII,IAAe,KAHfA,EAASuU,EAASjX,MAAMslM,EAAUtiM,KAGVA,EAAK,GAAI,CAC7B,IAAIoxD,EAAIpxD,EAAK,GACToxD,EAAE3oD,gBACF2oD,EAAE3oD,iBAEF2oD,EAAErsD,iBACFqsD,EAAErsD,kBAENqsD,EAAEgxI,cAAe,CACrB,CACJ,CACA,MAAOhxI,GAEP,CACA,OAAO1xD,CApBP,CAqBJ,EACA6iM,EAAYE,gBAAkBD,EAC1BznM,EAAOkQ,iBACPlQ,EAAOkQ,iBAAiB+I,EAAWwuL,EAAqBhnM,GAEnDT,EAAO2nM,aAEZ3nM,EAAO2nM,YAAY,KAAO1uL,EAAWwuL,EAE7C,MAYID,EAAYR,eAVa,WAErB,IADA,IAAI/hM,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAEzB,IAAI0G,EAAMy5L,YAGV,OAAO/oL,EAASjX,MAAMslM,EAAUtiM,EACpC,EAIJqB,KAAK6/L,cAAcliM,KAAKujM,EAC5B,CACJ,EACA90K,EAAW3sB,UAAUslF,IAAM,SAAUrrF,EAAQiZ,EAAWC,EAAUzY,GAC9D,IAAK,IAAI2F,EAAI,EAAGA,EAAIE,KAAK6/L,cAAcnkM,OAAQoE,IAAK,CAChD,IAAIohM,EAAclhM,KAAK6/L,cAAc//L,GACrC,KAAMpG,GAAUA,IAAWwnM,EAAYxnM,QACjCiZ,GAAaA,IAAcuuL,EAAYvuL,WACvCC,GAAYA,IAAasuL,EAAYtuL,UACnB,kBAAZzY,GAAyBA,IAAY+mM,EAAY/mM,SAAU,CACnE,IAAI+0I,EAASgyD,EAAYxnM,OAAO2mM,WAC5BiB,EAAoBpyD,EAAOgyD,EAAYvuL,WACvC4uL,EAAcD,EAAoBA,EAAkBthM,KAAKuI,KAAO,KAEhEg5L,IAC2B,IAAvBA,EAAY7lM,QAAiBkX,GAK7B0uL,EAAkBlyG,QAClBmyG,EAAY7mL,OAAO6mL,EAAYjyL,QAAQ4xL,GAAc,KALrDI,EAAkBlyG,OAASmyG,EAAY7lM,cAChCwzI,EAAOgyD,EAAYvuL,WAAW3S,KAAKuI,MAMzC+4L,EAAkBlyG,cACZ8/C,EAAOgyD,EAAYvuL,YAG9BuuL,EAAYE,kBACRF,EAAYxnM,OAAO8Q,oBACnB02L,EAAYxnM,OAAO8Q,oBAAoB02L,EAAYvuL,UAAWuuL,EAAYE,gBAAiBF,EAAY/mM,SAElG+mM,EAAYxnM,OAAO8nM,aAExBN,EAAYxnM,OAAO8nM,YAAY,KAAON,EAAYvuL,UAAWuuL,EAAYE,kBAGjFphM,KAAK6/L,cAAcnlL,OAAO5a,IAAK,EACnC,CACJ,CACJ,EAEAssB,EAAW3sB,UAAUu1L,MAAQ,SAAUriL,EAAWmtL,EAAWC,GACzD,OAAO3zK,EAAW4oK,MAAMh1L,KAAK47L,QAASjpL,EAAWmtL,EAAWC,EAChE,EAEA3zK,EAAW3sB,UAAUgiM,QAAU,SAAU7gM,GACrC,IAAIigM,EAAkB7gM,KAAK47L,QAAQkF,iBAAmB9gM,KAAK47L,QAAQkF,kBAAoB,CAAC,EACxF,GAAqB,iBAAVlgM,EACPigM,EAAejgM,IAAS,OAGxB,IAAK,IAAId,EAAI,EAAGA,EAAIc,EAAMlF,OAAQoE,IAC9B+gM,EAAejgM,EAAMd,KAAM,CAGvC,EACAssB,EAAWwzK,UAAY,EAChBxzK,CACX,CA3O+B,E,kBCNxB,SAASs1K,IAEZ,IADA,IAAIC,EAAiB,GACZnmM,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmmM,EAAenmM,GAAMC,UAAUD,GAEnC,IAAIomM,EAAkBD,EACjB9kK,QAAO,SAAUglK,GAAO,OAAOA,CAAK,IACpC7uJ,KAAK,KACL+M,OACL,MAA2B,KAApB6hJ,OAAyB7iM,EAAY6iM,CAChD,C,iCCPO,SAAS1iG,EAAU+f,EAAO1E,EAAIunF,QACf,IAAdA,IAAwBA,EAAY,GAExC,IADA,IAAI7lL,GAAS,EACJnc,EAAIgiM,EAAW7iF,GAASn/G,EAAIm/G,EAAMvjH,OAAQoE,IAC/C,GAAIy6G,EAAG0E,EAAMn/G,GAAIA,GAAI,CACjBmc,EAAQnc,EACR,KACJ,CAEJ,OAAOmc,CACX,CAMO,SAAS0tC,EAAKs1D,EAAO1E,GACxB,IAAIt+F,EAAQijF,EAAU+f,EAAO1E,GAC7B,KAAIt+F,EAAQ,GAGZ,OAAOgjG,EAAMhjG,EACjB,CAwBO,SAAS8lL,EAAS7kL,EAAOyqJ,GAC5B,OAAOzqJ,EAAM8xC,QAAO,SAAUi5G,EAAMn3J,EAAcmL,GAO9C,OANIA,EAAQ0rJ,GAAgB,EACxBM,EAAKtqK,KAAK,CAACmT,IAGXm3J,EAAKA,EAAKvsK,OAAS,GAAGiC,KAAKmT,GAExBm3J,CACX,GAAG,GACP,CA0BO,SAAS+5B,EAAkB/iF,EAAOhjG,EAAOyrK,GAC5C,IAAIua,EAAOhjF,EAAM1sG,QAEjB,OADA0vL,EAAKvnL,OAAOuB,EAAO,EAAGyrK,GACfua,CACX,CAiBO,SAASC,EAAYC,EAAQC,GAChC,GAAID,EAAOzmM,SAAW0mM,EAAO1mM,OACzB,OAAO,EAEX,IAAK,IAAIoE,EAAI,EAAGA,EAAIqiM,EAAOzmM,OAAQoE,IAC/B,GAAIqiM,EAAOriM,KAAOsiM,EAAOtiM,GACrB,OAAO,EAGf,OAAO,CACX,C,6HClGIuiM,GAAsB,SArB1B,SAAiCC,GAC7B,IAAIC,EAAQD,EAkBZ,OAjBoB,SAAe,SAAU/vF,GACzC,GAAI+vF,IAAU/vF,EACV,MAAM,IAAI3zG,MAAM,iDAEpB,IAAI4jM,EAAQjwF,EACRkwF,GAAgB,SAAe,SAAUl6K,GAIzC,OAH6B,SAAUm6K,GACnC,OAAO,gBAAoBF,GAAO,QAAS,CAAC,EAAGE,EAAY,CAAEn6K,cAAeA,IAChF,CAEJ,IAKA,OAJ6B,SAAUo6K,GACnC,IAAIp6K,EAAgBo6K,EAAWp6K,cAC/B,OAAO,gBAAoBg6K,GAAO,QAAS,CAAC,EAAGI,EAAY,CAAEp6K,cAAeA,EAAgBk6K,EAAcl6K,GAAiBi6K,IAC/H,CAEJ,GAEJ,IASO,SAAS74K,EAAmB24K,EAAO/vF,GACtC,OAAO8vF,EAAoBC,EAApBD,CAA2B9vF,EACtC,C,iDCZWlwG,EAAkB,SAAUsN,GACnC,IAAIizL,EAAQ,CACR7wL,KAAM,IAEV,OAAO,WAEH,IADA,IAAI8wL,EAAU,GACLrnM,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCqnM,EAAQrnM,GAAMC,UAAUD,GAM5B,OAJKonM,EAAME,WAAa,QAAYF,EAAM7wL,KAAM8wL,KAC5CD,EAAME,SA3BG,SAAUF,GAC3B,OAAO,SAAUlxL,GACb,IAAK,IAAIlW,EAAK,EAAGpB,EAAKwoM,EAAM7wL,KAAMvW,EAAKpB,EAAGsB,OAAQF,IAAM,CACpD,IAAI8P,EAAMlR,EAAGoB,GACM,mBAAR8P,EACPA,EAAIoG,GAECpG,IAELA,EAAInI,QAAUuO,EAEtB,CACJ,CACJ,CAc6BqxL,CAAeH,IAEpCA,EAAM7wL,KAAO8wL,EACND,EAAME,QACjB,CACJ,C,kBChCO,SAAS53L,IAEZ,IADA,IAAIvM,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAGzB,IADA,IAAIs/E,EAAU,GACL1gF,EAAK,EAAG4oM,EAASrkM,EAAMvE,EAAK4oM,EAAOtnM,OAAQtB,IAAM,CACtD,IAAIynM,EAAMmB,EAAO5oM,GACjB,GAAIynM,EACA,GAAmB,iBAARA,EACP/mH,EAAQn9E,KAAKkkM,QAEZ,GAAIA,EAAIpjM,eAAe,aAAuC,mBAAjBojM,EAAItoL,SAClDuhE,EAAQn9E,KAAKkkM,EAAItoL,iBAIjB,IAAK,IAAImC,KAAOmmL,EAERA,EAAInmL,IACJo/D,EAAQn9E,KAAK+d,EAKjC,CACA,OAAOo/D,EAAQ9nC,KAAK,IACxB,C,wHC1BO,SAAS3f,EAAa5R,EAAO9mB,EAAQsoM,GAExC,OAAO,SAA6BjyG,GAChC,IAAI52F,EACA+4L,IAAe/4L,EAAoB,SAAU0H,GAEzC,SAASohM,EAA2B5nM,GAChC,IAAI4G,EAAQJ,EAAOpC,KAAKM,KAAM1E,IAAU0E,KAIxC,OAFAkC,EAAMihM,YAAc,CAAC,EACrBjhM,EAAMkhM,kBAAoBlhM,EAAMkhM,kBAAkBxnL,KAAK1Z,GAChDA,CACX,CAkCA,OAzCA,QAAUghM,EAA4BphM,GAQtCohM,EAA2BzjM,UAAU+J,kBAAoB,WACrD,IAAe8nF,QAAQtxF,KAAKojM,kBAChC,EACAF,EAA2BzjM,UAAU6K,qBAAuB,WACxD,IAAeorH,UAAU11H,KAAKojM,kBAClC,EACAF,EAA2BzjM,UAAUxB,OAAS,WAC1C,IAAIiE,EAAQlC,KACZ,OAAQ,gBAAoB,IAAkBk/D,SAAU,MAAM,SAAUxkE,GACpE,IAAIiO,EAAe,IAAe7N,YAAYH,EAAQ8mB,EAAO/mB,EAAQK,gBAEjEP,EAAiB0H,EAAM5G,MAM3B,GAJIqN,EAAatN,QAAyC,mBAAxBsN,EAAatN,SAC3CsN,EAAatN,OAASsN,EAAatN,QAAO,SAAS,QAAS,CAAC,EAAGsN,GAAenO,KAG/EyoM,GAAgBt6L,EAAatN,OAAQ,CACrC,GAAI6G,EAAMihM,YAAYz8I,UAAY/9C,EAAatN,QAC3C6G,EAAMihM,YAAYplM,YAAcvD,EAAea,OAAQ,CACvD,IAAIgoM,GAAe,OAAgB16L,EAAatN,OAAQb,EAAea,QACvE6G,EAAMihM,YAAYz8I,QAAU/9C,EAAatN,OACzC6G,EAAMihM,YAAYplM,UAAYvD,EAAea,OAC7C6G,EAAMihM,YAAYG,OAASD,CAC/B,CACA,OAAO,gBAAoBryG,GAAmB,QAAS,CAAC,EAAGroF,EAAcnO,EAAgB,CAAEa,OAAQ6G,EAAMihM,YAAYG,SACzH,CACA,OAAO,gBAAoBtyG,GAAmB,QAAS,CAAC,EAAGroF,EAAcnO,GAC7E,GACJ,EACA0oM,EAA2BzjM,UAAU2jM,kBAAoB,WACrDpjM,KAAK6rB,aACT,EACOq3K,CACX,CA3CkC,CA2ChC,cACCzoM,YAAc,aAAegnB,EAChCrnB,GACJ,OAAO,OAAa42F,EAAmBmiG,EAC3C,CACJ,C,kBCrDO,SAASphG,EAAQ/4F,GACpB,IAAIgW,EAgBJ,OAfIhW,IACIA,IAAYsI,OACZ0N,EAAO,CACH3J,KAAM,EACN0C,IAAK,EACLK,MAAO9G,OAAOs6B,WACd1sB,OAAQ5N,OAAOu6B,YACfp2B,MAAOnE,OAAOs6B,WACd3zB,OAAQ3G,OAAOu6B,aAGd7iC,EAAQiV,wBACbe,EAAOhW,EAAQiV,0BAGhBe,CACX,C,kCCvBO,SAASgE,EAAGha,EAAS2Z,EAAWC,EAAUzY,GAE7C,OADAnB,EAAQ4Q,iBAAiB+I,EAAWC,EAAUzY,GACvC,WAAc,OAAOnB,EAAQwR,oBAAoBmI,EAAWC,EAAUzY,EAAU,CAC3F,C,mCCEO,SAASopM,EAAe9qM,GAE3B,IADA,IAAI+qM,EAAY,GACPhoM,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCgoM,EAAUhoM,EAAK,GAAKC,UAAUD,GAElC,OAAIgoM,EAAU9nM,OAAS,EACZ8nM,EAAU,GAEd,WAEH,IADA,IAAI7kM,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,GAAMC,UAAUD,GAEzBgoM,EAAUl6L,SAAQ,SAAUm6L,GAAK,OAAOA,GAAKA,EAAE9nM,MAAMlD,EAAQkG,EAAO,GACxE,CACJ,CChBO,SAAS67G,EAAgB/hH,EAAQirM,GACpC,IAAK,IAAIllM,KAAUklM,EACXA,EAAQjlM,eAAeD,KAEvB/F,EAAO+F,GAAU+kM,EAAe9qM,EAAQA,EAAO+F,GAASklM,EAAQllM,IAG5E,C,qPCNI2B,EAAyB,oBACzBwjM,EAAuB,kBACvBvjM,EAAyB,oBACzBwjM,EAA0B,wBAMvB,SAASC,EAAkBx2L,EAAa4G,EAAgB6vL,GAC3D,OAAOC,EAAe12L,EAAa4G,GAAgB,GAAoB,GAAmC,EAAkC6vL,EAChJ,CAMO,SAASE,EAAiB32L,EAAa4G,EAAgB6vL,GAC1D,OAAOG,EAAmB52L,EAAa4G,GAAgB,GAAoB,GAAmC,EAA2B6vL,EAC7I,CAWO,SAASI,EAAiB72L,EAAa4G,EAAgB6vL,EAA6BK,GAEvF,YADkB,IAAdA,IAAwBA,GAAY,GACjCJ,EAAe12L,EAAa4G,EAAgBkwL,GAAW,GAAmC,EAAkCL,GAA6B,GAA0B,EAC9L,CAWO,SAASM,EAAgB/2L,EAAa4G,EAAgB6vL,EAA6BK,GAEtF,YADkB,IAAdA,IAAwBA,GAAY,GACjCF,EAAmB52L,EAAa4G,EAAgBkwL,GAAW,GAAmC,EAA2BL,GAA6B,GAA0B,EAC3L,CASO,SAASO,EAAgBh3L,EAAa3B,GACzC,IAAI1S,EAAU+qM,EAAe12L,EAAaA,GAAa,GAAM,GAAO,GAAO,OAAMtO,OAAWA,EAAW2M,GACvG,QAAI1S,IACAsrM,EAAWtrM,IACJ,EAGf,CAOO,SAASirM,EAAmB52L,EAAa4G,EAAgBkwL,EAAWI,EAAyBC,EAAkBV,EAA6Bj3L,EAAgB43L,GAC/J,IAAKxwL,IAAoBpH,GAAkBoH,IAAmB5G,EAC1D,OAAO,KAEX,IAAIq3L,EAA0BC,EAAiB1wL,GAE/C,GAAIuwL,GACAE,IACCZ,IAAiCc,EAAmB3wL,KAAmB4wL,EAAsB5wL,IAAmB,CACjH,IAAI6wL,EAAab,EAAmB52L,EAAa4G,EAAe7F,kBAAkB,GAAM,GAAM,EAAM01L,EAA6Bj3L,EAAgB43L,GACjJ,GAAIK,EAAY,CACZ,GAAKL,GAAYM,EAAkBD,GAAY,KAAWL,EACtD,OAAOK,EAEX,IAAIE,EAAyBf,EAAmB52L,EAAay3L,EAAWG,wBAAwB,GAAM,GAAM,EAAMnB,EAA6Bj3L,EAAgB43L,GAC/J,GAAIO,EACA,OAAOA,EAOX,IALA,IAAIE,EAAmBJ,EAAW5hM,cAK3BgiM,GAAoBA,IAAqBjxL,GAAgB,CAC5D,IAAIkxL,EAAwBlB,EAAmB52L,EAAa63L,EAAiBD,wBAAwB,GAAM,GAAM,EAAMnB,EAA6Bj3L,EAAgB43L,GACpK,GAAIU,EACA,OAAOA,EAEXD,EAAmBA,EAAiBhiM,aACxC,CACJ,CACJ,CAEA,OAAIihM,GAAaO,GAA2BK,EAAkB9wL,EAAgBwwL,GACnExwL,EAGQgwL,EAAmB52L,EAAa4G,EAAegxL,wBAAwB,GAAM,GAAM,EAAMnB,EAA6Bj3L,EAAgB43L,KAKpJF,EAGE,KAFIN,EAAmB52L,EAAa4G,EAAe/Q,eAAe,GAAM,GAAO,EAAO4gM,EAA6Bj3L,EAAgB43L,GAG9I,CAQO,SAASV,EAAe12L,EAAa4G,EAAgBkwL,EAAWI,EAAyBa,EAAwBtB,EAA6Bj3L,EAAgB43L,EAAU/4L,GAC3K,IAAKuI,GAAmBA,IAAmB5G,GAAe+3L,IAA2Bv4L,EACjF,OAAO,KAEX,IACI63L,GADyBh5L,EAAuB25L,EAA+BV,GAC9B1wL,GAErD,GAAIkwL,GAAaO,GAA2BK,EAAkB9wL,EAAgBwwL,GAC1E,OAAOxwL,EAGX,IAAKmxL,GACDV,IACCZ,IAAiCc,EAAmB3wL,KAAmB4wL,EAAsB5wL,IAAmB,CACjH,IAAI6wL,EAAaf,EAAe12L,EAAa4G,EAAe3G,mBAAmB,GAAM,GAAM,EAAOw2L,EAA6Bj3L,EAAgB43L,EAAU/4L,GACzJ,GAAIo5L,EACA,OAAOA,CAEf,CACA,OAAI7wL,IAAmB5G,EACZ,KAGQ02L,EAAe12L,EAAa4G,EAAezG,oBAAoB,GAAM,GAAM,EAAOs2L,EAA6Bj3L,EAAgB43L,EAAU/4L,KAIvJ64L,EAGE,KAFIR,EAAe12L,EAAa4G,EAAe/Q,eAAe,GAAO,GAAO,EAAM4gM,EAA6Bj3L,EAAgB43L,EAAU/4L,GAGpJ,CAMO,SAASi5L,EAAiB3rM,GAE7B,IAAKA,IAAYA,EAAQ2S,aACrB,OAAO,EAEX,IAAI25L,EAAsBtsM,EAAQ2S,aAAag4L,GAE/C,OAAI2B,QAC+B,SAAxBA,EAGsB,IAAzBtsM,EAAQsxD,cACa,OAAzBtxD,EAAQoxD,eAEc,IAAtBpxD,EAAQi2F,SAChB,CAQO,SAASo2G,EAA6BrsM,GACzC,QAAUA,GACN2rM,EAAiB3rM,KAChBA,EAAQy1B,QACuC,WAAhDntB,OAAOo2G,iBAAiB1+G,GAASwlC,UACzC,CAQO,SAASumK,EAAkB/rM,EAASusM,GAEvC,IAAKvsM,GAAWA,EAAQ8K,SACpB,OAAO,EAEX,IAAImJ,EAAW,EACXu4L,EAAyB,KACzBxsM,GAAWA,EAAQ2S,eACnB65L,EAAyBxsM,EAAQ2S,aAAa,eAE1CsB,EAAW6qG,SAAS0tF,EAAwB,KAGpD,IAAIC,EAAuBzsM,EAAQ2S,aAAe3S,EAAQ2S,aAAaxL,GAA0B,KAC7FulM,EAA2C,OAA3BF,GAAmCv4L,GAAY,EAC/D5O,IAAWrF,GACc,UAAzBysM,IACqB,MAApBzsM,EAAQoU,SACe,WAApBpU,EAAQoU,SACY,UAApBpU,EAAQoU,SACY,aAApBpU,EAAQoU,SACY,WAApBpU,EAAQoU,SACiB,SAAzBq4L,GACAC,GACR,OAAOH,GAA8B,IAAdt4L,GAAmB5O,EAASA,CACvD,CAMO,SAASumM,EAAmB5rM,GAC/B,SAAUA,GAAWA,EAAQ2S,cAAkB3S,EAAQ2S,aAAavL,GACxE,CAMO,SAASykM,EAAsB7rM,GAClC,SAAUA,IAAWA,EAAQ2S,cAAkE,SAAlD3S,EAAQ2S,aAAai4L,GACtE,CAMO,SAAS+B,EAAwB3sM,GACpC,IAAIE,GAAW,EAAA+W,EAAA,GAAYjX,GACvB4sM,EAAuB1sM,GAAYA,EAASwL,cAChD,SAAIkhM,KAAwB,EAAAptM,EAAA,GAAgBQ,EAAS4sM,GAIzD,CAOO,SAASC,EAAgB7sM,EAAS+W,GACrC,MAAkE,SCjQ/D,SAAkC/W,EAAS8sM,GAC9C,IAAInsM,GAAe,EAAAZ,EAAA,GAAqBC,GAAS,SAAUY,GAAe,OAAOA,EAAYC,aAAaisM,EAAY,IACtH,OAAOnsM,GAAgBA,EAAagS,aAAam6L,EACrD,CD8PWC,CAAyB/sM,EAAS+W,EAC7C,CACA,IAAIi2L,OAAcjnM,EAOX,SAASulM,EAAWtrM,GACvB,GAAIA,EAAS,CACT,IAAIo5C,GAAM,EAAAC,EAAA,GAAUr5C,GAChBo5C,SAEoBrzC,IAAhBinM,GACA5zJ,EAAIpT,qBAAqBgnK,GAG7BA,EAAc5zJ,EAAInU,uBAAsB,WACpCjlC,GAAWA,EAAQqK,QAEnB2iM,OAAcjnM,CAClB,IAER,CACJ,CAKO,SAASknM,EAAwBxtM,EAAQsL,GAE5C,IADA,IAAI/K,EAAUP,EACL+C,EAAK,EAAG0qM,EAASniM,EAAMvI,EAAK0qM,EAAOxqM,OAAQF,IAAM,CACtD,IAAIygB,EAAQiqL,EAAO1qM,GACf2qM,EAAYntM,EAAQ0D,SAASmL,KAAKugD,IAAInsC,EAAOjjB,EAAQ0D,SAAShB,OAAS,IAC3E,IAAKyqM,EACD,MAEJntM,EAAUmtM,CACd,CAKA,OAHIpB,EAAkB/rM,IAAY2rM,EAAiB3rM,GACzCA,EACA+qM,EAAetrM,EAAQO,GAAS,IAASirM,EAAmBxrM,EAAQO,EAElF,CAOO,SAASotM,EAAoBC,EAAaC,GAE7C,IADA,IAAIviM,EAAO,GACJuiM,GAAaD,GAAeC,IAAcD,GAAa,CAC1D,IAAIpF,GAAW,EAAA7nM,EAAA,GAAUktM,GAAW,GACpC,GAAiB,OAAbrF,EACA,MAAO,GAEXl9L,EAAKwiM,QAAQjqM,MAAMmD,UAAU6P,QAAQ5P,KAAKuhM,EAASvkM,SAAU4pM,IAC7DA,EAAYrF,CAChB,CACA,OAAOl9L,CACX,C,kDE/TO,SAASq7B,EAAqBz2B,EAAcu2B,GAE/C,IADA,IAAI5jC,GAAQ,QAAS,CAAC,EAAG4jC,GAChB1jC,EAAK,EAAGpB,EAAKiF,OAAOiU,KAAK3K,GAAenN,EAAKpB,EAAGsB,OAAQF,IAAM,CACnE,IAAIkgB,EAAMthB,EAAGoB,QACMuD,IAAfzD,EAAMogB,KACNpgB,EAAMogB,GAAO/S,EAAa+S,GAElC,CACA,OAAOpgB,CACX,C,iBCPO,SAASkrM,EAAahU,EAAQiU,GACjC,IAAK,IAAIjoM,KAAUg0L,EACXA,EAAO/zL,eAAeD,KAEtBioM,EAAKjoM,GAAUg0L,EAAOh0L,IAG9B,OAAOioM,CACX,C,iECjBWC,EAAS,WAChB,IAAItsM,EACAg4C,GAAM,SACV,SAAyE,QAAlEh4C,EAAKg4C,aAAiC,EAASA,EAAI8/E,iBAA8B,IAAP93H,OAAgB,EAASA,EAAGw6K,YAGtGxiI,EAAI8/E,UAAU0iD,UAAUtlK,QAAQ,YAAc,CACzD,C,kDCDO,SAAShH,EAAuBw1L,IACnC,OAAgBA,EAAK,CACjBt0L,kBAAmBm9L,EACnB38L,mBAAoB48L,EACpBt8L,qBAAsBu8L,GAE9B,CAEA,SAASF,IACLnI,EAAiBx+L,KAAK1E,MAAM8hB,aAAcpd,KAC9C,CAEA,SAAS4mM,EAAUt5K,GACXA,EAAUlQ,eAAiBpd,KAAK1E,MAAM8hB,eAEtCohL,EAAiBlxK,EAAUlQ,aAAc,MACzCohL,EAAiBx+L,KAAK1E,MAAM8hB,aAAcpd,MAElD,CAEA,SAAS6mM,IACLrI,EAAiBx+L,KAAK1E,MAAM8hB,aAAc,KAC9C,CACA,SAASohL,EAAiBphL,EAAczN,GAChCyN,IAC4B,iBAAjBA,EACPA,EAAaja,QAAUwM,EAEM,mBAAjByN,GACZA,EAAazN,GAGzB,C,mCChCA,IAAIm3L,EAA4B,oCAK5BC,EAAuB,6DAKvBC,EAAoB,gCAEpBC,EAA6B,OAS7BC,EAEJ,6MAgCO,SAASC,EAAY1sM,EAAa+vF,EAAOmrB,GAC5C,OAAKl7G,GAGLA,EAhBJ,SAA4BA,GAKxB,OAFAA,GADAA,GADAA,EAAcA,EAAYu2C,QAAQ81J,EAA2B,KACnC91J,QAAQ+1J,EAAsB,KAC9B/1J,QAAQi2J,EAA4B,MACpClnJ,MAE9B,CAUkBqnJ,CAAmB3sM,GAE7BysM,EAAuBlvJ,KAAKv9C,KAAkBk7G,GAAsBqxF,EAAkBhvJ,KAAKv9C,GACpF,GAtCf,SAA0BA,EAAa+vF,GACnC,IAAI+qB,EAAW,GACX8xF,EAAS5sM,EAAY8xB,MAAM,KAY/B,OAXsB,IAAlB86K,EAAO3rM,QACP65G,GAAY8xF,EAAO,GAAG93B,OAAO,GAAG+3B,cAChC/xF,GAAY8xF,EAAO,GAAG93B,OAAO,GAAG+3B,eAET,IAAlBD,EAAO3rM,QACZ65G,GAAY8xF,EAAO,GAAG93B,OAAO,GAAG+3B,cAChC/xF,GAAY8xF,EAAO,GAAG93B,OAAO,GAAG+3B,eAET,IAAlBD,EAAO3rM,SACZ65G,GAAY8xF,EAAO,GAAG93B,OAAO,GAAG+3B,eAEhC98G,GAAS+qB,EAAS75G,OAAS,EACpB65G,EAASg6D,OAAO,GAAKh6D,EAASg6D,OAAO,GAEzCh6D,CACX,CAsBWgyF,CAAiB9sM,EAAa+vF,IAP1B,EAQf,C,kBClEO,SAASg9G,EAAyBC,EAAQC,GAC7C,IAAIC,EAAQF,EAAOpiM,MAAQoiM,EAAO9/L,GAAK,EACnCigM,EAAOH,EAAO1/L,KAAO0/L,EAAO/sK,GAAK,EACjCmtK,EAAQH,EAAOriM,MAAQqiM,EAAO//L,GAAK,EACnCmgM,EAAOJ,EAAO3/L,KAAO2/L,EAAOhtK,GAAK,EAGrC,OADe7yB,KAAKyzB,KAAKzzB,KAAKsvB,IAAIwwK,EAAQE,EAAO,GAAKhgM,KAAKsvB,IAAIywK,EAAOE,EAAM,GAEhF,CAoCO,SAASC,EAAmBp4L,GAO/B,IAAIujF,EAAS,0BAA0B+jF,KAAKluK,OAAO4G,IACnD,OAAKujF,EAGDA,EAAO,IACCA,EAAO,GAAGx3F,OAElBw3F,EAAO,GACAA,EAAO,GAAGx3F,OAEd,EARI,CASf,CAMO,SAASssM,EAAer4L,EAAO6vJ,EAAWyoC,QAChC,IAATA,IAAmBA,EAAO,IAC9B,IAAIC,EAAMrgM,KAAKsvB,IAAI8wK,EAAMzoC,GACzB,OAAO33J,KAAKiqC,MAAMniC,EAAQu4L,GAAOA,CACrC,C,sEC1EO,IAAIC,EAAQ,WACf,SAAK7mM,QAAWA,OAAO4wH,WAAc5wH,OAAO4wH,UAAU0iD,YAG/C,oBAAoB58H,KAAK12C,OAAO4wH,UAAU0iD,UACrD,C,kDCFIwzB,EAAe,CAAC,WAAY,QAAS,UAKlC,SAAStiF,EAASpsH,GACrB,IAAI2uM,GAAiB,OAAY3uM,GACjC,IAAK2uM,EAED,OAAO,WAAgC,EAI3C,IAFA,IAAIC,EAAgB,GAEb5uM,IAAW2uM,EAAelvM,MAAQO,EAAOwJ,eAAe,CAE3D,IAAK,IAAI1H,EAAK,EAAGpB,EAAKV,EAAOwJ,cAAcxG,SAAUlB,EAAKpB,EAAGsB,OAAQF,IAAM,CACvE,IAAI+sM,EAAUnuM,EAAGoB,GAEbkxB,EAAa67K,EAAQ58L,aAAa,eAClC48L,IAAY7uM,GAAiG,UAAtFgzB,aAA+C,EAASA,EAAWrd,iBAAwE,IAA3C+4L,EAAa94L,QAAQi5L,EAAQn7L,UACpJk7L,EAAc3qM,KAAK,CAAC4qM,EAAS77K,GAErC,CACAhzB,EAASA,EAAOwJ,aACpB,CAMA,OAJAolM,EAAch/L,SAAQ,SAAUlP,GACjBA,EAAG,GACTJ,aAAa,cAAe,OACrC,IACO,YAQX,SAAoBsuM,GAChBA,EAAch/L,SAAQ,SAAUlP,GAC5B,IAAIouM,EAAOpuM,EAAG,GAAIquM,EAAgBruM,EAAG,GAEjCquM,EACAD,EAAKxuM,aAAa,cAAeyuM,GAGjCD,EAAKz7L,gBAAgB,cAE7B,GACJ,CAlBQ27L,CAAWJ,GACXA,EAAgB,EACpB,CACJ,C,kBCnCO,SAASK,EAAe54J,EAAG3wC,GAC9B,IAAK2wC,IAAM3wC,EAEP,OAAQ2wC,IAAM3wC,EAElB,IAAK,IAAIghG,KAAYrwD,EACjB,GAAIA,EAAEtxC,eAAe2hG,MACZhhG,EAAEX,eAAe2hG,IAAahhG,EAAEghG,KAAcrwD,EAAEqwD,IACjD,OAAO,EAInB,IAAK,IAAIA,KAAYhhG,EACjB,GAAIA,EAAEX,eAAe2hG,KACZrwD,EAAEtxC,eAAe2hG,GAClB,OAAO,EAInB,OAAO,CACX,CAYO,SAASnhG,EAAOvF,GAEnB,IADA,IAAIiF,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,EAAK,GAAKC,UAAUD,GAE7B,OAAOotM,EAAejtM,MAAMqE,KAAM,CAAC,KAAMtG,GAAQ8Y,OAAO7T,GAC5D,CAcO,SAASiqM,EAAeC,EAAWnvM,GAEtC,IADA,IAAIiF,EAAO,GACFnD,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCmD,EAAKnD,EAAK,GAAKC,UAAUD,GAE7B9B,EAASA,GAAU,CAAC,EACpB,IAAK,IAAIU,EAAK,EAAG4oM,EAASrkM,EAAMvE,EAAK4oM,EAAOtnM,OAAQtB,IAAM,CACtD,IAAI0uM,EAAe9F,EAAO5oM,GAC1B,GAAI0uM,EACA,IAAK,IAAI1oG,KAAY0oG,GACbA,EAAarqM,eAAe2hG,IAAeyoG,IAAaA,EAAUzoG,KAClE1mG,EAAO0mG,GAAY0oG,EAAa1oG,GAIhD,CACA,OAAO1mG,CACX,C,iEC1EIqvM,E,UAKG,SAASC,EAAMhqH,GAClB,IAAI5kF,EACJ,QAA2B,IAAhB2uM,GAA+B/pH,EAAO,CAC7C,IAAI5sC,GAAM,SAENwiI,EAA+E,QAAlEx6K,EAAKg4C,aAAiC,EAASA,EAAI8/E,iBAA8B,IAAP93H,OAAgB,EAASA,EAAGw6K,UACvHm0B,IAAgBn0B,IAAiD,IAApCA,EAAUtlK,QAAQ,YACnD,CACA,QAASy5L,CACb,C,0OCfA,IAAIE,EAAc,WAEd,IADA,IAAI/rL,EAAQ,GACH1hB,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpC0hB,EAAM1hB,GAAMC,UAAUD,GAG1B,IADA,IAAI6C,EAAS,CAAC,EACLjE,EAAK,EAAGk8D,EAAUp5C,EAAO9iB,EAAKk8D,EAAQ56D,OAAQtB,IAGnD,IAFA,IAAImhB,EAAO+6C,EAAQl8D,GAEV2H,EAAK,EAAGmnM,EADN5sM,MAAMC,QAAQgf,GAAQA,EAAOlc,OAAOiU,KAAKiI,GACpBxZ,EAAKmnM,EAAOxtM,OAAQqG,IAEhD1D,EADU6qM,EAAOnnM,IACH,EAGtB,OAAO1D,CACX,EAMW8qM,EAAoBF,EAAY,CACvC,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAOOG,EAAwBH,EAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOI,EAAwBJ,EAAYG,EAA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","sources":["webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateValues/timeConstants.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/createComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/slots.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/lib/utilities.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useAsync.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useBoolean.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useConst.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useControllableValue.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useId.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useOnEvent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/usePrevious.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useTarget.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useUnmount.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/common/DirectionalHint.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Autofill/Autofill.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/Rectangle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Callout/Callout.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Check/Check.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getFullColorString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsv2hex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateSV.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateA.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateT.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/updateH.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/correctHex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/correctRGB.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/getChildren.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CommandBar/CommandBar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateValues/dateValues.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/node_modules/tslib/tslib.es6.mjs","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateFormatting/dateFormatting.defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getBoundedDateRange.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isBeforeMinDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isAfterMaxDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isRestrictedDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/findAvailableDate.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridDayCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDayGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDateRangeTypeToUse.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/dateGrid/isContiguous.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarPicker/CalendarPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Calendar/Calendar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/defaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/withViewport.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/groupedList/GroupedListUtility.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowFields.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/getNativeElementProps.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/Dialog.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogContent.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardPreview.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCard.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardActivity.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardDetails.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardImage.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardLocation.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/DocumentCard/DocumentCardTitle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/safeRequestAnimationFrame.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/FacepileButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/FacepileButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Facepile/Facepile.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useEventCallback.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupSpacer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedListSection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Image/Image.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Label/Label.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/Customizer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Layer/Layer.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/useLink.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Link/Link.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/utils/scroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/List.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/List/List.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/AutoScroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MarqueeSelection/MarqueeSelection.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Modal/Modal.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Nav/Nav.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/OverflowSet/OverflowSet.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Panel/Panel.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react-hooks/lib/useRefEffect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/useOverflow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/observeResize.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/Pivot.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Pivot/PivotItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Popup/Popup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Separator/Separator.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/useSlider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Slider/Slider.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackUtils.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/Stack.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/Stack.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Sticky/Sticky.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Sticky/Sticky.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGrid.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ButtonGrid/ButtonGridCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/ColorPickerGridCell.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/SwatchColorPicker/SwatchColorPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubbleContent.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubbleContent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TeachingBubble/TeachingBubble.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/inputMask.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/MaskedTextField.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/controlled.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TextField/TextField.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.view.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Text/Text.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/timeMath/timeMath.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/date-time-utilities/lib/timeFormatting/index.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/TimePicker/TimePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Toggle/Toggle.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/overflow.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.base.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/Announced/Announced.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.scss.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsController.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.scss.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.styles.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagPicker.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ThemeProvider/ThemeContext.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/ThemeProvider/useTheme.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/_rgbaOrHexString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/clamp.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/consts.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getColorFromRGBA.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/rgb2hsv.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/cssColor.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/getColorFromString.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsl2rgb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsl2hsv.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/hsv2rgb.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/color/rgb2hex.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/hoist.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/dragdrop/DragDropHelper.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/react/lib/utilities/selection/SelectionZone.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/Async.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/BaseComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/DelayedRender.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/EventGroup.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/aria.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/array.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/createMergedRef.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/css.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/customizations/customizable.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/dom/getRect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/dom/on.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/appendFunction.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/extendComponent.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/focus.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/hoistStatics.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/ie11Detector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/initializeComponentRef.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/initials.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/math.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/mobileDetector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/modalize.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/object.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/osDetector.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/properties.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/scroll.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/selection/Selection.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/selection/Selection.types.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/string.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/keyboard.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/useFocusRects.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnDeprecations.js","webpack://polite-mail-reactv2/./node_modules/@fluentui/utilities/lib/warn/warnMutuallyExclusive.js","webpack://polite-mail-reactv2/./node_modules/office-ui-fabric-core/dist/css/fabric.min.css","webpack://polite-mail-reactv2/./node_modules/office-ui-fabric-core/dist/css/fabric.min.css?44ac","webpack://polite-mail-reactv2/./node_modules/@fluentui/foundation-legacy/node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["export var TimeConstants = {\n MillisecondsInOneDay: 86400000,\n MillisecondsIn1Sec: 1000,\n MillisecondsIn1Min: 60000,\n MillisecondsIn30Mins: 1800000,\n MillisecondsIn1Hour: 3600000,\n MinutesInOneDay: 1440,\n MinutesInOneHour: 60,\n DaysInOneWeek: 7,\n MonthInOneYear: 12,\n HoursInOneDay: 24,\n SecondsInOneMinute: 60,\n OffsetTo24HourFormat: 12,\n /**\n * Matches a time string. Groups:\n * 1. hours (with or without leading 0)\n * 2. minutes\n * 3. seconds (optional)\n * 4. meridiem (am/pm, case-insensitive, optional)\n */\n TimeFormatRegex: /^(\\d\\d?):(\\d\\d):?(\\d\\d)? ?([ap]m)?/i,\n};\n//# sourceMappingURL=timeConstants.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n return (child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSets } from '@fluentui/style-utilities';\nimport { Customizations, CustomizerContext } from '@fluentui/utilities';\nimport { createFactory } from './slots';\nimport { assign } from './utilities';\n/**\n * Assembles a higher order component based on the following: styles, theme, view, and state.\n * Imposes a separation of concern and centralizes styling processing to increase ease of use and robustness\n * in how components use and apply styling and theming.\n *\n * Automatically merges and applies themes and styles with theme / styleprops having the highest priority.\n * State component, if provided, is passed in props for processing. Props from state / user are automatically processed\n * and styled before finally being passed to view.\n *\n * State components should contain all stateful behavior and should not generate any JSX, but rather simply call\n * the view prop.\n *\n * Views should simply be stateless pure functions that receive all props needed for rendering their output.\n *\n * State component is optional. If state is not provided, created component is essentially a functional\n * stateless component.\n *\n * @param options - component Component options. See IComponentOptions for more detail.\n */\nexport function createComponent(view, options) {\n if (options === void 0) { options = {}; }\n var _a = options.factoryOptions, factoryOptions = _a === void 0 ? {} : _a;\n var defaultProp = factoryOptions.defaultProp;\n var ResultComponent = function (componentProps) {\n var settings = _getCustomizations(options.displayName, React.useContext(CustomizerContext), options.fields);\n var stateReducer = options.state;\n if (stateReducer) {\n // Don't assume state will return all props, so spread useState result over component props.\n componentProps = __assign(__assign({}, componentProps), stateReducer(componentProps));\n }\n var theme = componentProps.theme || settings.theme;\n var tokens = _resolveTokens(componentProps, theme, options.tokens, settings.tokens, componentProps.tokens);\n var styles = _resolveStyles(componentProps, theme, tokens, options.styles, settings.styles, componentProps.styles);\n var viewProps = __assign(__assign({}, componentProps), { styles: styles, tokens: tokens, _defaultStyles: styles, theme: theme });\n return view(viewProps);\n };\n ResultComponent.displayName = options.displayName || view.name;\n // If a shorthand prop is defined, create a factory for the component.\n // TODO: This shouldn't be a concern of createComponent.. factoryOptions should just be forwarded.\n // Need to weigh creating default factories on component creation vs. memoizing them on use in slots.tsx.\n if (defaultProp) {\n ResultComponent.create = createFactory(ResultComponent, { defaultProp: defaultProp });\n }\n assign(ResultComponent, options.statics);\n // Later versions of TypeSript should allow us to merge objects in a type safe way and avoid this cast.\n return ResultComponent;\n}\n/**\n * Resolve all styles functions with both props and tokens and flatten results along with all styles objects.\n */\nfunction _resolveStyles(props, theme, tokens) {\n var allStyles = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n allStyles[_i - 3] = arguments[_i];\n }\n return concatStyleSets.apply(void 0, allStyles.map(function (styles) {\n return typeof styles === 'function' ? styles(props, theme, tokens) : styles;\n }));\n}\n/**\n * Resolve all tokens functions with props flatten results along with all tokens objects.\n */\nfunction _resolveTokens(props, theme) {\n var allTokens = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n allTokens[_i - 2] = arguments[_i];\n }\n var tokens = {};\n for (var _a = 0, allTokens_1 = allTokens; _a < allTokens_1.length; _a++) {\n var currentTokens = allTokens_1[_a];\n if (currentTokens) {\n // TODO: why is this cast needed? TS seems to think there is a (TToken | Function) union from somewhere.\n currentTokens =\n typeof currentTokens === 'function'\n ? currentTokens(props, theme)\n : currentTokens;\n if (Array.isArray(currentTokens)) {\n currentTokens = _resolveTokens.apply(void 0, __spreadArray([props, theme], currentTokens, false));\n }\n assign(tokens, currentTokens);\n }\n }\n return tokens;\n}\n/**\n * Helper function for calling Customizations.getSettings falling back to default fields.\n *\n * @param displayName Displayable name for component.\n * @param context React context passed to component containing contextual settings.\n * @param fields Optional list of properties to grab from global store and context.\n */\nfunction _getCustomizations(displayName, context, fields) {\n // TODO: do we want field props? should fields be part of IComponent and used here?\n // TODO: should we centrally define DefaultFields? (not exported from styling)\n // TODO: tie this array to ICustomizationProps, such that each array element is keyof ICustomizationProps\n var DefaultFields = ['theme', 'styles', 'tokens'];\n return Customizations.getSettings(fields || DefaultFields, displayName, context.customizations);\n}\n//# sourceMappingURL=createComponent.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { mergeCss } from '@fluentui/merge-styles';\nimport { getRTL, memoizeFunction } from '@fluentui/utilities';\nimport { assign } from './utilities';\n/**\n * This function is required for any module that uses slots.\n *\n * This function is a slot resolver that automatically evaluates slot functions to generate React elements.\n * A byproduct of this resolver is that it removes slots from the React hierarchy by bypassing React.createElement.\n *\n * To use this function on a per-file basis, use the jsx directive targeting withSlots.\n * This directive must be the FIRST LINE in the file to work correctly.\n * Usage of this pragma also requires withSlots import statement.\n *\n * See React.createElement\n */\n// Can't use typeof on React.createElement since it's overloaded. Approximate createElement's signature for now\n// and widen as needed.\nexport function withSlots(type, props) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var slotType = type;\n if (slotType.isSlot) {\n // Since we are bypassing createElement, use React.Children.toArray to make sure children are\n // properly assigned keys.\n // TODO: should this be mutating? does React mutate children subprop with createElement?\n // TODO: will toArray clobber existing keys?\n // TODO: React generates warnings because it doesn't detect hidden member _store that is set in createElement.\n // Even children passed to createElement without keys don't generate this warning.\n // Is there a better way to prevent slots from appearing in hierarchy? toArray doesn't address root issue.\n children = React.Children.toArray(children);\n // TODO: There is something weird going on here with children embedded in props vs. rest args.\n // Comment out these lines to see. Make sure this function is doing the right things.\n if (children.length === 0) {\n return slotType(props);\n }\n return slotType(__assign(__assign({}, props), { children: children }));\n }\n else {\n // TODO: Are there some cases where children should NOT be spread? Also, spreading reraises perf question.\n // Children had to be spread to avoid breaking KeytipData in Toggle.view:\n // react-dom.development.js:18931 Uncaught TypeError: children is not a function\n // Without spread, function child is a child array of one element\n // TODO: is there a reason this can't be:\n // return React.createElement.apply(this, arguments);\n return React.createElement.apply(React, __spreadArray([type, props], children, false));\n }\n}\n/**\n * This function creates factories that render ouput depending on the user ISlotProp props passed in.\n * @param DefaultComponent - Base component to render when not overridden by user props.\n * @param options - Factory options, including defaultProp value for shorthand prop mapping.\n * @returns ISlotFactory function used for rendering slots.\n */\nexport function createFactory(DefaultComponent, options) {\n if (options === void 0) { options = {}; }\n var _a = options.defaultProp, defaultProp = _a === void 0 ? 'children' : _a;\n var result = function (componentProps, userProps, userSlotOptions, defaultStyles, theme) {\n // If they passed in raw JSX, just return that.\n if (React.isValidElement(userProps)) {\n return userProps;\n }\n var flattenedUserProps = _translateShorthand(defaultProp, userProps);\n var finalProps = _constructFinalProps(defaultStyles, theme, componentProps, flattenedUserProps);\n if (userSlotOptions) {\n if (userSlotOptions.component) {\n // TODO: Remove cast if possible. This cast is needed because TS errors on the intrinsic portion of ReactType.\n // return <userSlotOptions.component {...finalProps} />;\n var UserComponent = userSlotOptions.component;\n return React.createElement(UserComponent, __assign({}, finalProps));\n }\n if (userSlotOptions.render) {\n return userSlotOptions.render(finalProps, DefaultComponent);\n }\n }\n return React.createElement(DefaultComponent, __assign({}, finalProps));\n };\n return result;\n}\n/**\n * Default factory for components without explicit factories.\n */\nvar defaultFactory = memoizeFunction(function (type) { return createFactory(type); });\n/**\n * This function generates slots that can be used in JSX given a definition of slots and their corresponding types.\n * @param userProps - Props as pass to component.\n * @param slots - Slot definition object defining the default slot component for each slot.\n * @returns A set of created slots that components can render in JSX.\n */\nexport function getSlots(userProps, slots) {\n var result = {};\n // userProps already has default props mixed in by createComponent. Recast here to gain typing for this function.\n var mixedProps = userProps;\n var _loop_1 = function (name_1) {\n if (slots.hasOwnProperty(name_1)) {\n // This closure method requires the use of withSlots to prevent unnecessary rerenders. This is because React\n // detects each closure as a different component (since it is a new instance) from the previous one and then\n // forces a rerender of the entire slot subtree. For now, the only way to avoid this is to use withSlots, which\n // bypasses the call to React.createElement.\n var slot = function (componentProps) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (args.length > 0) {\n // If React.createElement is being incorrectly used with slots, there will be additional arguments.\n // We can detect these additional arguments and error on their presence.\n throw new Error('Any module using getSlots must use withSlots. Please see withSlots javadoc for more info.');\n }\n // TODO: having TS infer types here seems to cause infinite loop.\n // use explicit types or casting to preserve typing if possible.\n // TODO: this should be a lookup on TProps property instead of being TProps directly, which is probably\n // causing the infinite loop\n return _renderSlot(slots[name_1], \n // TODO: this cast to any is hiding a relationship issue between the first two args\n componentProps, mixedProps[name_1], mixedProps.slots && mixedProps.slots[name_1], \n // _defaultStyles should always be present, but a check for existence is added to make view tests\n // easier to use.\n mixedProps._defaultStyles && mixedProps._defaultStyles[name_1], mixedProps.theme);\n };\n slot.isSlot = true;\n result[name_1] = slot;\n }\n };\n for (var name_1 in slots) {\n _loop_1(name_1);\n }\n return result;\n}\n/**\n * Helper function that translates shorthand as needed.\n * @param defaultProp\n * @param slotProps\n */\nfunction _translateShorthand(defaultProp, slotProps) {\n var _a;\n var transformedProps;\n if (typeof slotProps === 'string' || typeof slotProps === 'number' || typeof slotProps === 'boolean') {\n transformedProps = (_a = {},\n _a[defaultProp] = slotProps,\n _a);\n }\n else {\n transformedProps = slotProps;\n }\n return transformedProps;\n}\n/**\n * Helper function that constructs final styles and props given a series of props ordered by increasing priority.\n */\nfunction _constructFinalProps(defaultStyles, theme) {\n var allProps = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n allProps[_i - 2] = arguments[_i];\n }\n var finalProps = {};\n var classNames = [];\n for (var _a = 0, allProps_1 = allProps; _a < allProps_1.length; _a++) {\n var props = allProps_1[_a];\n classNames.push(props && props.className);\n assign(finalProps, props);\n }\n finalProps.className = mergeCss([defaultStyles, classNames], { rtl: getRTL(theme) });\n return finalProps;\n}\n/**\n * Render a slot given component and user props. Uses component factory if available, otherwise falls back\n * to default factory.\n * @param ComponentType Factory component type.\n * @param componentProps The properties passed into slot from within the component.\n * @param userProps The user properties passed in from outside of the component.\n */\nfunction _renderSlot(ComponentType, componentProps, userProps, slotOptions, defaultStyles, theme) {\n if (ComponentType.create !== undefined) {\n return ComponentType.create(componentProps, userProps, slotOptions, defaultStyles);\n }\n else {\n // TODO: need to resolve typing / generic issues passing through memoizeFunction. for now, cast to 'unknown'\n return defaultFactory(ComponentType)(componentProps, userProps, slotOptions, defaultStyles, theme);\n }\n}\n//# sourceMappingURL=slots.js.map","import { __assign } from 'tslib';\nexport var assign = __assign;\n//# sourceMappingURL=utilities.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n event = document.createEvent('MouseEvents');\n // eslint-disable-next-line deprecation/deprecation\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _this = this;\n var _a, _b, _c, _d;\n _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n activeRect, \n // eslint-disable-next-line deprecation/deprecation\n targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var root = this._root.current;\n _allInstances[this._id] = this;\n if (root) {\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n // reset those variables (and update tab indexes) to avoid memory leaks\n if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n (this._defaultFocusElement &&\n !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n this._activeElement = null;\n this._defaultFocusElement = null;\n this._updateTabIndexes();\n }\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement) &&\n (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n get: function () {\n return this._defaultFocusElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n get: function () {\n return this._activeElement;\n },\n enumerable: false,\n configurable: true\n });\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SUMMARY') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n // eslint-disable-next-line deprecation/deprecation\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n };\n return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var asyncRef = React.useRef();\n if (!asyncRef.current) {\n asyncRef.current = new Async();\n }\n React.useEffect(function () {\n return function () {\n var _a;\n (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n asyncRef.current = undefined;\n };\n }, []);\n return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n var setTrue = useConst(function () { return function () {\n setValue(true);\n }; });\n var setFalse = useConst(function () { return function () {\n setValue(false);\n }; });\n var toggle = useConst(function () { return function () {\n setValue(function (currentValue) { return !currentValue; });\n }; });\n return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value;\n // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n });\n // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n if (!isControlled) {\n setValue(newValue);\n }\n }; });\n return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs, true));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n var timeoutIds = useConst({});\n // Cleanup function.\n React.useEffect(function () { return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearTimeout(id);\n }\n }; }, \n // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]);\n // Return wrapper which will auto cleanup.\n return useConst({\n setTimeout: function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n },\n clearTimeout: function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n },\n });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, getDocument, getNativeProps, initializeComponentRef, inputProperties, isIE11, KeyCodes, } from '../../Utilities';\nimport { WindowContext } from '@fluentui/react-window-provider';\nvar SELECTION_FORWARD = 'forward';\nvar SELECTION_BACKWARD = 'backward';\n/**\n * {@docCategory Autofill}\n */\nvar Autofill = /** @class */ (function (_super) {\n __extends(Autofill, _super);\n function Autofill(props) {\n var _this = _super.call(this, props) || this;\n _this._inputElement = React.createRef();\n _this._autoFillEnabled = true;\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionStart = function (ev) {\n _this.setState({ isComposing: true });\n _this._autoFillEnabled = false;\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionUpdate = function () {\n if (isIE11()) {\n _this._updateValue(_this._getCurrentInputValue(), true);\n }\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionEnd = function (ev) {\n var inputValue = _this._getCurrentInputValue();\n _this._tryEnableAutofill(inputValue, _this.value, false, true);\n _this.setState({ isComposing: false });\n // Due to timing, this needs to be async, otherwise no text will be selected.\n _this._async.setTimeout(function () {\n // it's technically possible that the value of isComposing is reset during this timeout,\n // so explicitly trigger this with composing=true here, since it is supposed to be the\n // update for composition end\n _this._updateValue(_this._getCurrentInputValue(), false);\n }, 0);\n };\n _this._onClick = function () {\n if (_this.value && _this.value !== '' && _this._autoFillEnabled) {\n _this._autoFillEnabled = false;\n }\n };\n _this._onKeyDown = function (ev) {\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the event is actively being composed, then don't alert autofill.\n // Right now typing does not have isComposing, once that has been fixed any should be removed.\n if (!ev.nativeEvent.isComposing) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.backspace:\n _this._autoFillEnabled = false;\n break;\n case KeyCodes.left:\n case KeyCodes.right:\n if (_this._autoFillEnabled) {\n _this.setState(function (prev) { return ({\n inputValue: _this.props.suggestedDisplayValue || prev.inputValue,\n }); });\n _this._autoFillEnabled = false;\n }\n break;\n default:\n if (!_this._autoFillEnabled) {\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {\n _this._autoFillEnabled = true;\n }\n }\n break;\n }\n }\n };\n _this._onInputChanged = function (ev) {\n var value = _this._getCurrentInputValue(ev);\n if (!_this.state.isComposing) {\n _this._tryEnableAutofill(value, _this.value, ev.nativeEvent.isComposing);\n }\n // If it is not IE11 and currently composing, update the value\n if (!(isIE11() && _this.state.isComposing)) {\n var nativeEventComposing = ev.nativeEvent.isComposing;\n var isComposing = nativeEventComposing === undefined ? _this.state.isComposing : nativeEventComposing;\n _this._updateValue(value, isComposing);\n }\n };\n _this._onChanged = function () {\n // Swallow this event, we don't care about it\n // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose\n return;\n };\n /**\n * Updates the current input value as well as getting a new display value.\n * @param newValue - The new value from the input\n */\n _this._updateValue = function (newValue, composing) {\n // Only proceed if the value is nonempty and is different from the old value\n // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus\n if (!newValue && newValue === _this.value) {\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onInputChange = _a.onInputChange, onInputValueChange = _a.onInputValueChange;\n if (onInputChange) {\n newValue = (onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(newValue, composing)) || '';\n }\n _this.setState({ inputValue: newValue }, function () { return onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(newValue, composing); });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this.state = {\n inputValue: props.defaultVisibleValue || '',\n isComposing: false,\n };\n return _this;\n }\n Autofill.getDerivedStateFromProps = function (props, state) {\n // eslint-disable-next-line deprecation/deprecation\n if (props.updateValueInWillReceiveProps) {\n // eslint-disable-next-line deprecation/deprecation\n var updatedInputValue = props.updateValueInWillReceiveProps();\n // Don't update if we have a null value or the value isn't changing\n // the value should still update if an empty string is passed in\n if (updatedInputValue !== null && updatedInputValue !== state.inputValue && !state.isComposing) {\n return __assign(__assign({}, state), { inputValue: updatedInputValue });\n }\n }\n return null;\n };\n Object.defineProperty(Autofill.prototype, \"cursorLocation\", {\n get: function () {\n if (this._inputElement.current) {\n var inputElement = this._inputElement.current;\n if (inputElement.selectionDirection !== SELECTION_FORWARD) {\n return inputElement.selectionEnd;\n }\n else {\n return inputElement.selectionStart;\n }\n }\n else {\n return -1;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"isValueSelected\", {\n get: function () {\n return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"value\", {\n get: function () {\n return this._getControlledValue() || this.state.inputValue || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionStart\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionEnd\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement.current;\n },\n enumerable: false,\n configurable: true\n });\n Autofill.prototype.componentDidUpdate = function (_, _1, cursor) {\n var _a;\n var _b = this.props, suggestedDisplayValue = _b.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _b.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _b.preventValueSelection;\n var differenceIndex = 0;\n if (preventValueSelection) {\n return;\n }\n var document = ((_a = this.context) === null || _a === void 0 ? void 0 : _a.window.document) || getDocument(this._inputElement.current);\n var isFocused = this._inputElement.current && this._inputElement.current === (document === null || document === void 0 ? void 0 : document.activeElement);\n if (isFocused &&\n this._autoFillEnabled &&\n this.value &&\n suggestedDisplayValue &&\n _doesTextStartWith(suggestedDisplayValue, this.value)) {\n var shouldSelectFullRange = false;\n if (shouldSelectFullInputValueInComponentDidUpdate) {\n shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();\n }\n if (shouldSelectFullRange) {\n this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n else {\n while (differenceIndex < this.value.length &&\n this.value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {\n differenceIndex++;\n }\n if (differenceIndex > 0) {\n this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n }\n }\n else if (this._inputElement.current) {\n if (cursor !== null && !this._autoFillEnabled && !this.state.isComposing) {\n this._inputElement.current.setSelectionRange(cursor.start, cursor.end, cursor.dir);\n }\n }\n };\n Autofill.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n Autofill.prototype.render = function () {\n var nativeProps = getNativeProps(this.props, inputProperties);\n var style = __assign(__assign({}, this.props.style), { fontFamily: 'inherit' });\n return (React.createElement(\"input\", __assign({ autoCapitalize: \"off\", autoComplete: \"off\", \"aria-autocomplete\": 'both' }, nativeProps, { style: style, ref: this._inputElement, value: this._getDisplayValue(), onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, \n // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.\n onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, \"data-lpignore\": true })));\n };\n Autofill.prototype.focus = function () {\n this._inputElement.current && this._inputElement.current.focus();\n };\n Autofill.prototype.clear = function () {\n this._autoFillEnabled = true;\n this._updateValue('', false);\n this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);\n };\n Autofill.prototype.getSnapshotBeforeUpdate = function () {\n var _a, _b;\n var inel = this._inputElement.current;\n if (inel && inel.selectionStart !== this.value.length) {\n return {\n start: (_a = inel.selectionStart) !== null && _a !== void 0 ? _a : inel.value.length,\n end: (_b = inel.selectionEnd) !== null && _b !== void 0 ? _b : inel.value.length,\n dir: inel.selectionDirection || 'backward' || 'none',\n };\n }\n return null;\n };\n Autofill.prototype._getCurrentInputValue = function (ev) {\n if (ev && ev.target && ev.target.value) {\n return ev.target.value;\n }\n else if (this.inputElement && this.inputElement.value) {\n return this.inputElement.value;\n }\n else {\n return '';\n }\n };\n /**\n * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,\n * whether or not any text is selected, and only if the new input value is longer than the old input value.\n * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then\n * it should be completed.\n * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.\n * @param newValue - new input value\n * @param oldValue - old input value\n * @param isComposing - if true then the text is actively being composed and it has not completed.\n * @param isComposed - if the text is a composed text value.\n */\n Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {\n if (!isComposing &&\n newValue &&\n this._inputElement.current &&\n this._inputElement.current.selectionStart === newValue.length &&\n !this._autoFillEnabled &&\n (newValue.length > oldValue.length || isComposed)) {\n this._autoFillEnabled = true;\n }\n };\n Autofill.prototype._getDisplayValue = function () {\n if (this._autoFillEnabled) {\n return _getDisplayValue(this.value, this.props.suggestedDisplayValue);\n }\n return this.value;\n };\n Autofill.prototype._getControlledValue = function () {\n var value = this.props.value;\n if (value === undefined || typeof value === 'string') {\n return value;\n }\n // eslint-disable-next-line no-console\n console.warn(\"props.value of Autofill should be a string, but it is \".concat(value, \" with type of \").concat(typeof value));\n return value.toString();\n };\n Autofill.defaultProps = {\n enableAutofillOnKeyPress: [KeyCodes.down, KeyCodes.up],\n };\n // need to check WindowContext to get the provided document\n Autofill.contextType = WindowContext;\n return Autofill;\n}(React.Component));\nexport { Autofill };\n/**\n * Returns a string that should be used as the display value.\n * It evaluates this based on whether or not the suggested value starts with the input value\n * and whether or not autofill is enabled.\n * @param inputValue - the value that the input currently has.\n * @param suggestedDisplayValue - the possible full value\n */\nfunction _getDisplayValue(inputValue, suggestedDisplayValue) {\n var displayValue = inputValue;\n if (suggestedDisplayValue && inputValue && _doesTextStartWith(suggestedDisplayValue, displayValue)) {\n displayValue = suggestedDisplayValue;\n }\n return displayValue;\n}\nfunction _doesTextStartWith(text, startWith) {\n if (!text || !startWith) {\n return false;\n }\n if (process.env.NODE_ENV !== 'production') {\n for (var _i = 0, _a = [text, startWith]; _i < _a.length; _i++) {\n var val = _a[_i];\n if (typeof val !== 'string') {\n throw new Error(\"\".concat(Autofill.name\n // eslint-disable-next-line @fluentui/max-len\n , \" received non-string value \\\"\").concat(val, \"\\\" of type \").concat(typeof val, \" from either input's value or suggestedDisplayValue\"));\n }\n }\n }\n return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;\n}\n//# sourceMappingURL=Autofill.js.map","import { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, getRTL, classNamesFunction, getNativeProps, htmlElementProperties, } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Link } from '../../Link';\nimport { Icon } from '../../Icon';\nimport { IconButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { composeRenderFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OVERFLOW_KEY = 'overflow';\nvar nullFunction = function () { return null; };\nvar nonActionableItemProps = {\n styles: function (props) {\n var theme = props.theme;\n return {\n root: {\n selectors: {\n '&.is-disabled': {\n color: theme.semanticColors.bodyText,\n },\n },\n },\n };\n },\n};\n/**\n * {@docCategory Breadcrumb}\n */\nvar BreadcrumbBase = /** @class */ (function (_super) {\n __extends(BreadcrumbBase, _super);\n function BreadcrumbBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n /**\n * Remove the first rendered item past the overlow point and put it and the end the overflow set.\n */\n _this._onReduceData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var overflowIndex = data.props.overflowIndex;\n var movedItem = renderedItems[overflowIndex];\n if (!movedItem) {\n return undefined;\n }\n renderedItems = __spreadArray([], renderedItems, true);\n renderedItems.splice(overflowIndex, 1);\n renderedOverflowItems = __spreadArray(__spreadArray([], renderedOverflowItems, true), [movedItem], false);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n /**\n * Remove the last item of the overflow set and insert the item as the start of the rendered set past the overflow\n * point.\n */\n _this._onGrowData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var _a = data.props, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems;\n renderedOverflowItems = __spreadArray([], renderedOverflowItems, true);\n var movedItem = renderedOverflowItems.pop();\n if (!movedItem || renderedItems.length >= maxDisplayedItems) {\n return undefined;\n }\n renderedItems = __spreadArray([], renderedItems, true);\n renderedItems.splice(overflowIndex, 0, movedItem);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n _this._onRenderBreadcrumb = function (data) {\n var _a = data.props, ariaLabel = _a.ariaLabel, _b = _a.dividerAs, DividerType = _b === void 0 ? Icon : _b, onRenderItem = _a.onRenderItem, overflowAriaLabel = _a.overflowAriaLabel, overflowIndex = _a.overflowIndex, onRenderOverflowIcon = _a.onRenderOverflowIcon, overflowButtonAs = _a.overflowButtonAs;\n var renderedOverflowItems = data.renderedOverflowItems, renderedItems = data.renderedItems;\n var contextualItems = renderedOverflowItems.map(function (item) {\n var isActionable = !!(item.onClick || item.href);\n return {\n text: item.text,\n name: item.text,\n key: item.key,\n onClick: item.onClick ? _this._onBreadcrumbClicked.bind(_this, item) : null,\n href: item.href,\n disabled: !isActionable,\n itemProps: isActionable ? undefined : nonActionableItemProps,\n };\n });\n // Find index of last rendered item so the divider icon\n // knows not to render on that item\n var lastItemIndex = renderedItems.length - 1;\n var hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0;\n var itemElements = renderedItems.map(function (item, index) {\n var finalOnRenderItem = _this._onRenderItem;\n if (item.onRender) {\n finalOnRenderItem = composeRenderFunction(item.onRender, finalOnRenderItem);\n }\n if (onRenderItem) {\n finalOnRenderItem = composeRenderFunction(onRenderItem, finalOnRenderItem);\n }\n return (React.createElement(\"li\", { className: _this._classNames.listItem, key: item.key || String(index) },\n finalOnRenderItem(item),\n (index !== lastItemIndex || (hasOverflowItems && index === overflowIndex - 1)) && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: item }))));\n });\n if (hasOverflowItems) {\n var iconProps = !onRenderOverflowIcon ? { iconName: 'More' } : {};\n var onRenderMenuIcon = onRenderOverflowIcon ? onRenderOverflowIcon : nullFunction;\n var OverflowButton = overflowButtonAs ? overflowButtonAs : IconButton;\n itemElements.splice(overflowIndex, 0, React.createElement(\"li\", { className: _this._classNames.overflow, key: OVERFLOW_KEY },\n React.createElement(OverflowButton, { className: _this._classNames.overflowButton, iconProps: iconProps, role: \"button\", \"aria-haspopup\": \"true\", ariaLabel: overflowAriaLabel, onRenderMenuIcon: onRenderMenuIcon, menuProps: {\n items: contextualItems,\n directionalHint: DirectionalHint.bottomLeftEdge,\n } }),\n overflowIndex !== lastItemIndex + 1 && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: renderedOverflowItems[renderedOverflowItems.length - 1] }))));\n }\n var nativeProps = getNativeProps(_this.props, htmlElementProperties, [\n 'className',\n ]);\n return (React.createElement(\"div\", __assign({ className: _this._classNames.root, role: \"navigation\", \"aria-label\": ariaLabel }, nativeProps),\n React.createElement(FocusZone, __assign({ componentRef: _this._focusZone, direction: FocusZoneDirection.horizontal }, _this.props.focusZoneProps),\n React.createElement(\"ol\", { className: _this._classNames.list }, itemElements))));\n };\n _this._onRenderItem = function (item) {\n if (!item) {\n return null;\n }\n var as = item.as, href = item.href, onClick = item.onClick, isCurrentItem = item.isCurrentItem, text = item.text, onRenderContent = item.onRenderContent, additionalProps = __rest(item, [\"as\", \"href\", \"onClick\", \"isCurrentItem\", \"text\", \"onRenderContent\"]);\n var finalOnRenderContent = defaultOnRenderCrumbContent;\n if (onRenderContent) {\n finalOnRenderContent = composeRenderFunction(onRenderContent, finalOnRenderContent);\n }\n if (_this.props.onRenderItemContent) {\n finalOnRenderContent = composeRenderFunction(_this.props.onRenderItemContent, finalOnRenderContent);\n }\n if (onClick || href) {\n return (React.createElement(Link, __assign({}, additionalProps, { as: as, className: _this._classNames.itemLink, href: href, \"aria-current\": isCurrentItem ? 'page' : undefined, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: _this._onBreadcrumbClicked.bind(_this, item) }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n else {\n var Tag = as || 'span';\n return (React.createElement(Tag, __assign({}, additionalProps, { className: _this._classNames.item }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n };\n _this._onBreadcrumbClicked = function (item, ev) {\n if (item.onClick) {\n item.onClick(ev, item);\n }\n };\n initializeComponentRef(_this);\n _this._validateProps(props);\n return _this;\n }\n /**\n * Sets focus to the first breadcrumb link.\n */\n BreadcrumbBase.prototype.focus = function () {\n if (this._focusZone.current) {\n this._focusZone.current.focus();\n }\n };\n BreadcrumbBase.prototype.render = function () {\n this._validateProps(this.props);\n var _a = this.props, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems, items = _a.items, className = _a.className, theme = _a.theme, styles = _a.styles;\n var renderedItems = __spreadArray([], items, true);\n var renderedOverflowItems = renderedItems.splice(overflowIndex, renderedItems.length - maxDisplayedItems);\n var breadcrumbData = {\n props: this.props,\n renderedItems: renderedItems,\n renderedOverflowItems: renderedOverflowItems,\n };\n this._classNames = getClassNames(styles, {\n className: className,\n theme: theme,\n });\n return (React.createElement(ResizeGroup, { onRenderData: this._onRenderBreadcrumb, onReduceData: onReduceData, onGrowData: onGrowData, data: breadcrumbData }));\n };\n /**\n * Validate incoming props\n * @param props - Props to validate\n */\n BreadcrumbBase.prototype._validateProps = function (props) {\n var maxDisplayedItems = props.maxDisplayedItems, overflowIndex = props.overflowIndex, items = props.items;\n if (overflowIndex < 0 ||\n (maxDisplayedItems > 1 && overflowIndex > maxDisplayedItems - 1) ||\n (items.length > 0 && overflowIndex > items.length - 1)) {\n throw new Error('Breadcrumb: overflowIndex out of range');\n }\n };\n BreadcrumbBase.defaultProps = {\n items: [],\n maxDisplayedItems: 999,\n overflowIndex: 0,\n };\n return BreadcrumbBase;\n}(React.Component));\nexport { BreadcrumbBase };\nfunction defaultOnRenderCrumbContent(item) {\n return item ? React.createElement(React.Fragment, null, item.text) : null;\n}\n//# sourceMappingURL=Breadcrumb.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, ScreenWidthMaxMedium, ScreenWidthMaxSmall, ScreenWidthMinMedium, getFocusStyle, getScreenSelector, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Breadcrumb',\n list: 'ms-Breadcrumb-list',\n listItem: 'ms-Breadcrumb-listItem',\n chevron: 'ms-Breadcrumb-chevron',\n overflow: 'ms-Breadcrumb-overflow',\n overflowButton: 'ms-Breadcrumb-overflowButton',\n itemLink: 'ms-Breadcrumb-itemLink',\n item: 'ms-Breadcrumb-item',\n};\nvar SingleLineTextStyle = {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n};\nvar overflowButtonFontSize = 16;\nvar chevronSmallFontSize = 8;\nvar itemLineHeight = 36;\nvar itemFontSize = 18;\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\nvar MediumScreenSelector = getScreenSelector(ScreenWidthMinMedium, ScreenWidthMaxMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n var itemBackgroundHoveredColor = semanticColors.menuItemBackgroundHovered;\n var itemBackgroundPressedColor = semanticColors.menuItemBackgroundPressed;\n var itemTextColor = palette.neutralSecondary;\n var itemTextFontWeight = FontWeights.regular;\n var itemTextHoveredOrPressedColor = palette.neutralPrimary;\n var itemLastChildTextColor = palette.neutralPrimary;\n var itemLastChildTextFontWeight = FontWeights.semibold;\n var chevronButtonColor = palette.neutralSecondary;\n var overflowButtonColor = palette.neutralSecondary;\n var lastChildItemStyles = {\n fontWeight: itemLastChildTextFontWeight,\n color: itemLastChildTextColor,\n };\n var itemStateSelectors = {\n ':hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundHoveredColor,\n cursor: 'pointer',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'Highlight',\n backgroundColor: 'transparent',\n },\n _a),\n },\n ':active': {\n backgroundColor: itemBackgroundPressedColor,\n color: itemTextHoveredOrPressedColor,\n },\n '&:active:hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundPressedColor,\n },\n '&:active, &:hover, &:active:hover': {\n textDecoration: 'none',\n },\n };\n var commonItemStyles = {\n color: itemTextColor,\n padding: '0 8px',\n lineHeight: itemLineHeight,\n fontSize: itemFontSize,\n fontWeight: itemTextFontWeight,\n };\n var overflowButtonHighContrastFocus = {\n left: 1,\n right: 1,\n top: 1,\n bottom: 1,\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n margin: '11px 0 1px',\n },\n className,\n ],\n list: [\n classNames.list,\n {\n whiteSpace: 'nowrap',\n padding: 0,\n margin: 0,\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n listItem: [\n classNames.listItem,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n selectors: {\n '&:last-child .ms-Breadcrumb-itemLink': __assign(__assign({}, lastChildItemStyles), (_b = {}, _b[HighContrastSelector] = {\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n }, _b)),\n '&:last-child .ms-Breadcrumb-item': lastChildItemStyles,\n },\n },\n ],\n chevron: [\n classNames.chevron,\n {\n color: chevronButtonColor,\n fontSize: fonts.small.fontSize,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c[MediumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _c[MinimumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _c),\n },\n ],\n overflow: [\n classNames.overflow,\n {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n },\n ],\n overflowButton: [\n classNames.overflowButton,\n getFocusStyle(theme, { highContrastStyle: overflowButtonHighContrastFocus }),\n SingleLineTextStyle,\n {\n fontSize: overflowButtonFontSize,\n color: overflowButtonColor,\n height: '100%',\n cursor: 'pointer',\n selectors: __assign(__assign({}, itemStateSelectors), (_d = {}, _d[MinimumScreenSelector] = {\n padding: '4px 6px',\n }, _d[MediumScreenSelector] = {\n fontSize: fonts.mediumPlus.fontSize,\n }, _d)),\n },\n ],\n itemLink: [\n classNames.itemLink,\n getFocusStyle(theme),\n SingleLineTextStyle,\n __assign(__assign({}, commonItemStyles), { selectors: __assign((_e = { ':focus': {\n color: palette.neutralDark,\n } }, _e[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n outline: \"none\",\n }, _e), itemStateSelectors) }),\n ],\n item: [\n classNames.item,\n __assign(__assign({}, commonItemStyles), { selectors: {\n ':hover': {\n cursor: 'default',\n },\n } }),\n ],\n };\n};\n//# sourceMappingURL=Breadcrumb.styles.js.map","import { styled } from '../../Utilities';\nimport { BreadcrumbBase } from './Breadcrumb.base';\nimport { getStyles } from './Breadcrumb.styles';\nexport var Breadcrumb = styled(BreadcrumbBase, getStyles, undefined, { scope: 'Breadcrumb' });\n//# sourceMappingURL=Breadcrumb.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b),\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: (_a = {},\n _a[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\".concat(classNames.msButtonLabel)] = styles.labelHovered,\n _b[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconHovered,\n _b[\":hover .\".concat(classNames.msButtonDescription)] = styles.descriptionHovered,\n _b[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\".concat(classNames.msButtonIcon)] = styles.iconPressed,\n _b[\":active .\".concat(classNames.msButtonDescription)] = styles.descriptionPressed,\n _b[\":active .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconPressed,\n _b),\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n var altText = imageProps.alt || props['aria-label'];\n var hasName = altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n // move naming or describing attributes from the container (where they are invalid) to the image\n var imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n var containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ], !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n // toggle split buttons need two separate targets, even for touch\n var singleTouchTarget = _this._processingTouch && !_this.props.toggle;\n if (!singleTouchTarget && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (singleTouchTarget) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n var _a;\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n if (!ev.defaultPrevented) {\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: false,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n var ariaLabelledBy = undefined;\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n var _e = this.props.menuProps.id, id = _e === void 0 ? \"\".concat(this._labelId, \"-menu\") : _e;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n var _a, _b;\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(React.Fragment, null,\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n // Only focus the button if a splitbutton menu is not open\n if (_this.state.menuHidden) {\n _this.focus();\n }\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n // needed to access registeredProviders when manually setting focus visibility\n BaseButton.contextType = FocusRectsContext;\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n border: '1px solid ' + border,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 16px',\n textDecoration: 'none',\n textAlign: 'center',\n userSelect: 'none',\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n iconDisabled: {\n color: disabledText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n menuIconDisabled: {\n color: disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\nexport function standardStyles(theme) {\n var _a, _b, _c, _d, _e;\n var s = theme.semanticColors, p = theme.palette;\n var buttonBackground = s.buttonBackground;\n var buttonBackgroundPressed = s.buttonBackgroundPressed;\n var buttonBackgroundHovered = s.buttonBackgroundHovered;\n var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n var buttonText = s.buttonText;\n var buttonTextHovered = s.buttonTextHovered;\n var buttonTextDisabled = s.buttonTextDisabled;\n var buttonTextChecked = s.buttonTextChecked;\n var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n rootHovered: {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n rootDisabled: {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _b),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n border: 'none',\n },\n _c),\n },\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLight,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.neutralTertiaryAlt, selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _e) }),\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\nexport function primaryStyles(theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var p = theme.palette, s = theme.semanticColors;\n return {\n root: {\n backgroundColor: s.primaryButtonBackground,\n border: \"1px solid \".concat(s.primaryButtonBackground),\n color: s.primaryButtonText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n selectors: {\n ':after': {\n border: \"none\",\n outlineColor: p.white,\n },\n },\n },\n _a),\n },\n rootHovered: {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: \"1px solid \".concat(s.primaryButtonBackgroundHovered),\n color: s.primaryButtonTextHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n _b),\n },\n rootPressed: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: \"1px solid \".concat(s.primaryButtonBackgroundPressed),\n color: s.primaryButtonTextPressed,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootDisabled: {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n // Split button styles\n splitButtonContainer: {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n },\n _e),\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), { backgroundColor: p.white, selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _f) }),\n splitButtonMenuButton: {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n backgroundColor: 'Canvas',\n },\n _g[':hover'] = {\n backgroundColor: s.primaryButtonBackgroundHovered,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n color: 'Highlight',\n },\n _h),\n },\n _g),\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n selectors: {\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n },\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n color: 'GrayText',\n },\n _j),\n },\n };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { ButtonGlobalClassNames } from '../BaseButton.classNames';\nexport var getStyles = memoizeFunction(function (theme, customStyles, focusInset, focusColor) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var baseSplitButtonStyles = getSplitButtonStyles(theme);\n var p = theme.palette, semanticColors = theme.semanticColors;\n var commandButtonHighContrastFocus = {\n left: 4,\n top: 4,\n bottom: 4,\n right: 4,\n border: 'none',\n };\n var commandButtonStyles = {\n root: [\n getFocusStyle(theme, {\n inset: 2,\n highContrastStyle: commandButtonHighContrastFocus,\n borderColor: 'transparent',\n }),\n theme.fonts.medium,\n {\n minWidth: '40px',\n backgroundColor: p.white,\n color: p.neutralPrimary,\n padding: '0 4px',\n border: 'none',\n borderRadius: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n },\n ],\n rootHovered: {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDarkAlt,\n },\n _b[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _b),\n },\n rootPressed: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_c = {},\n _c[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _c[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _c),\n },\n rootChecked: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_d = {},\n _d[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _d[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _d),\n },\n rootCheckedHovered: {\n backgroundColor: p.neutralQuaternaryAlt,\n selectors: (_e = {},\n _e[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _e[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _e),\n },\n rootExpanded: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: (_f = {},\n _f[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _f[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _f),\n },\n rootExpandedHovered: {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n rootDisabled: {\n backgroundColor: p.white,\n selectors: (_g = {},\n _g[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: semanticColors.disabledBodySubtext,\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n _g[HighContrastSelector] = __assign({ color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _g),\n },\n // Split button styles\n splitButtonContainer: {\n height: '100%',\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n border: 'none',\n },\n _j),\n },\n splitButtonDividerDisabled: {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonDivider: {\n backgroundColor: p.neutralTertiaryAlt,\n },\n splitButtonMenuButton: {\n backgroundColor: p.white,\n border: 'none',\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n color: p.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark,\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'Highlight',\n },\n _l[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.neutralPrimary,\n },\n _l),\n },\n ':active': {\n backgroundColor: p.neutralLight,\n selectors: (_m = {},\n _m[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.neutralPrimary,\n },\n _m),\n },\n },\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: p.white,\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', border: 'none', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralLight,\n color: p.black,\n selectors: {\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n },\n splitButtonMenuIcon: {\n color: p.neutralPrimary,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n },\n label: {\n fontWeight: 'normal', // theme.fontWeights.semibold,\n },\n icon: {\n color: p.themePrimary,\n },\n menuIcon: (_p = {\n color: p.neutralSecondary\n },\n _p[HighContrastSelector] = {\n color: 'GrayText',\n },\n _p),\n };\n return concatStyleSets(baseButtonStyles, baseSplitButtonStyles, commandButtonStyles, customStyles);\n});\n//# sourceMappingURL=CommandBarButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './CommandBarButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CommandBarButton = /** @class */ (function (_super) {\n __extends(CommandBarButton, _super);\n function CommandBarButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommandBarButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--commandBar\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n CommandBarButton = __decorate([\n customizable('CommandBarButton', ['theme', 'styles'], true)\n ], CommandBarButton);\n return CommandBarButton;\n}(React.Component));\nexport { CommandBarButton };\n//# sourceMappingURL=CommandBarButton.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, FontWeights, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var _a, _b, _c, _d, _e;\n var fonts = theme.fonts, palette = theme.palette;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var compoundButtonStyles = {\n root: {\n maxWidth: '280px',\n minHeight: '72px',\n height: 'auto',\n padding: '16px 12px',\n },\n flexContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n minWidth: '100%',\n margin: '',\n },\n textContainer: {\n textAlign: 'left',\n },\n icon: {\n fontSize: '2em',\n lineHeight: '1em',\n height: '1em',\n margin: '0px 8px 0px 0px',\n flexBasis: '1em',\n flexShrink: '0',\n },\n label: {\n margin: '0 0 5px',\n lineHeight: '100%',\n fontWeight: FontWeights.semibold,\n },\n description: [\n fonts.small,\n {\n lineHeight: '100%',\n },\n ],\n };\n var standardCompoundTheme = {\n description: {\n color: palette.neutralSecondary,\n },\n descriptionHovered: {\n color: palette.neutralDark,\n },\n descriptionPressed: {\n color: 'inherit',\n },\n descriptionChecked: {\n color: 'inherit',\n },\n descriptionDisabled: {\n color: 'inherit',\n },\n };\n var primaryCompoundTheme = {\n description: {\n color: palette.white,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n descriptionHovered: {\n color: palette.white,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'Window',\n },\n _b),\n },\n descriptionPressed: {\n color: 'inherit',\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n descriptionChecked: {\n color: 'inherit',\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n descriptionDisabled: {\n color: 'inherit',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'inherit',\n },\n _e),\n },\n };\n return concatStyleSets(baseButtonStyles, compoundButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), primary ? primaryCompoundTheme : standardCompoundTheme, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=CompoundButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable } from '../../../Utilities';\nimport { getStyles } from './CompoundButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CompoundButton = /** @class */ (function (_super) {\n __extends(CompoundButton, _super);\n function CompoundButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CompoundButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--compoundPrimary' : 'ms-Button--compound', styles: getStyles(theme, styles, primary) })));\n };\n CompoundButton = __decorate([\n customizable('CompoundButton', ['theme', 'styles'], true)\n ], CompoundButton);\n return CompoundButton;\n}(React.Component));\nexport { CompoundButton };\n//# sourceMappingURL=CompoundButton.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var defaultButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n height: DEFAULT_BUTTON_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n __extends(DefaultButton, _super);\n function DefaultButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n };\n DefaultButton = __decorate([\n customizable('DefaultButton', ['theme', 'styles'], true)\n ], DefaultButton);\n return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n __extends(PrimaryButton, _super);\n function PrimaryButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryButton.prototype.render = function () {\n return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n };\n PrimaryButton = __decorate([\n customizable('PrimaryButton', ['theme', 'styles'], true)\n ], PrimaryButton);\n return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n flexGrow: '1',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n flexGrow: '1',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n _a[':hover'] = {\n border: 'none',\n },\n _a[':active'] = {\n border: 'none',\n },\n _a),\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n _b),\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n _c),\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_g = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _g[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _g),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h) }),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _j) }),\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: (_k = {\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _l),\n },\n '.ms-Button-menuIcon': {\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'GrayText',\n },\n _m),\n }\n },\n _k[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n if (maintainSize === void 0) { maintainSize = true; }\n var difference = _getEdgeValue(rect, edge) - newValue;\n var returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n var total = 0;\n for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n var edge = breakingEdges_1[_i];\n total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n }\n return total;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // keep track of least bad option, in case no sides fit\n var oobDegree;\n var bestEdge = currentEdge;\n var bestAlignment = currentAlignment;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // update least-bad edges\n var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n var edgeAttempt = void 0;\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n }\n else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n elementEstimate.elementRectangle = edgeAttempt;\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n }\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n // only show the beak if the callout is not fully covering the target\n var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n // eslint-disable-next-line deprecation/deprecation\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = rectOrPointTarget.top || rectOrPointTarget.y;\n var right = rectOrPointTarget.right || left;\n var bottom = rectOrPointTarget.bottom || top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n var cachedBounds = React.useRef();\n var getBounds = React.useCallback(function () {\n if (!cachedBounds.current || targetWindowResized) {\n var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right - minPagePadding,\n bottom: currentBounds.bottom - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n var async = useAsync();\n useOnEvent(targetWindow, 'resize', async.debounce(function () {\n setTargetWindowResized(true);\n }, 500, { leading: true }));\n return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, positions) {\n var _b;\n var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden;\n var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n React.useEffect(function () {\n var _a;\n var _b = (_a = getBounds()) !== null && _a !== void 0 ? _a : {}, topBounds = _b.top, bottomBounds = _b.bottom;\n var calculatedHeight;\n if (typeof top === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - top;\n }\n else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - topBounds - bottom;\n }\n if ((!calloutMaxHeight && !hidden) ||\n (calloutMaxHeight && calculatedHeight && calloutMaxHeight > calculatedHeight)) {\n setMaxHeight(calculatedHeight);\n }\n else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n }\n else {\n setMaxHeight(undefined);\n }\n }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds) {\n var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n var positionAttempts = React.useRef(0);\n var previousTarget = React.useRef();\n var async = useAsync();\n var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint;\n React.useEffect(function () {\n if (!hidden) {\n var timerId_1 = async.requestAnimationFrame(function () {\n var _a, _b;\n if (hostElement.current && calloutElement) {\n var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n var dupeCalloutElement = calloutElement.cloneNode(true);\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\".concat(calloutMaxHeight) : '';\n dupeCalloutElement.style.visibility = 'hidden';\n (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n var previousPositions = previousTarget.current === target ? positions : undefined;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n // clean up duplicate calloutElement\n (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n }\n else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n }\n }\n }, calloutElement);\n previousTarget.current = target;\n return function () {\n async.cancelAnimationFrame(timerId_1);\n previousTarget.current = undefined;\n };\n }\n else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n ]);\n return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n var async = useAsync();\n var hasPositions = !!positions;\n React.useEffect(function () {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n return function () { return async.cancelAnimationFrame(timerId_2); };\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n var hidden = _a.hidden, onDismiss = _a.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll = _a.preventDismissOnScroll, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize = _a.preventDismissOnResize, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n var isMouseDownOnPopup = React.useRef(false);\n var async = useAsync();\n var mouseDownHandlers = useConst([\n function () {\n isMouseDownOnPopup.current = true;\n },\n function () {\n isMouseDownOnPopup.current = false;\n },\n ]);\n var positionsExists = !!positions;\n React.useEffect(function () {\n var dismissOnScroll = function (ev) {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnResize = function (ev) {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnLostFocus = function (ev) {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnClickOrScroll = function (ev) {\n var eventPaths = ev.composedPath ? ev.composedPath() : [];\n var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n if ((!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnTargetWindowBlur = function (ev) {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n ev.relatedTarget === null) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n var disposablesPromise = new Promise(function (resolve) {\n async.setTimeout(function () {\n if (!hidden && targetWindow) {\n var disposables_1 = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n resolve(function () {\n disposables_1.forEach(function (dispose) { return dispose(); });\n });\n }\n }, 0);\n });\n return function () {\n disposablesPromise.then(function (dispose) { return dispose(); });\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n var hostElement = React.useRef(null);\n var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n var calloutCallback = React.useCallback(function (calloutEl) {\n setCalloutElement(calloutEl);\n }, []);\n var rootRef = useMergedRefs(hostElement, forwardedRef);\n var _d = useTarget(props.target, {\n current: calloutElement,\n }), targetRef = _d[0], targetWindow = _d[1];\n var getBounds = useBounds(props, targetRef, targetWindow);\n var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n var maxHeight = useMaxHeight(props, getBounds, positions);\n var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n useAutoFocus(props, positions, calloutElement);\n React.useEffect(function () {\n if (!hidden) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMaxWidth: calloutMaxWidth,\n calloutMinWidth: calloutMinWidth,\n doNotLayer: doNotLayer,\n });\n var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: calloutCallback }),\n beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n React.createElement(Popup\n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n , __assign({ \n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps), children))));\n}), function (previousProps, nextProps) {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n var _a, _b;\n var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n for (var key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n var oldPositionEdge = prevElementPositions[key];\n var newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","import * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var CheckBase = React.forwardRef(function (props, ref) {\n var _a = props.checked, checked = _a === void 0 ? false : _a, className = props.className, theme = props.theme, styles = props.styles, _b = props.useFastIcons, useFastIcons = _b === void 0 ? true : _b;\n var classNames = getClassNames(styles, { theme: theme, className: className, checked: checked });\n var IconComponent = useFastIcons ? FontIcon : Icon;\n return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n React.createElement(IconComponent, { iconName: \"CircleRing\", className: classNames.circle }),\n React.createElement(IconComponent, { iconName: \"StatusCircleCheckmark\", className: classNames.check })));\n});\nCheckBase.displayName = 'CheckBase';\n//# sourceMappingURL=Check.base.js.map","import { styled } from '../../Utilities';\nimport { CheckBase } from './Check.base';\nimport { getStyles } from './Check.styles';\nexport var Check = styled(CheckBase, getStyles, undefined, {\n scope: 'Check',\n}, true);\n//# sourceMappingURL=Check.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, IconFontSizes, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nexport var CheckGlobalClassNames = {\n root: 'ms-Check',\n circle: 'ms-Check-circle',\n check: 'ms-Check-check',\n /** Must be manually applied to the parent element of the check. */\n checkHost: 'ms-Check-checkHost',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n // eslint-disable-next-line deprecation/deprecation\n var _f = props.height, height = _f === void 0 ? props.checkBoxHeight || '18px' : _f, checked = props.checked, className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var isRTL = getRTL(theme);\n var classNames = getGlobalClassNames(CheckGlobalClassNames, theme);\n var sharedCircleCheck = {\n fontSize: height,\n position: 'absolute',\n left: 0,\n top: 0,\n width: height,\n height: height,\n textAlign: 'center',\n // inline-flex prevents the check from shifting with custom line height styles\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n // lineHeight currently needs to be a string to output without 'px'\n lineHeight: '1',\n width: height,\n height: height,\n verticalAlign: 'top',\n position: 'relative',\n userSelect: 'none',\n selectors: (_a = {\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: '1px',\n right: '1px',\n bottom: '1px',\n left: '1px',\n borderRadius: '50%',\n opacity: 1,\n background: semanticColors.bodyBackground,\n }\n },\n _a[\".\".concat(classNames.checkHost, \":hover &, .\").concat(classNames.checkHost, \":focus &, &:hover, &:focus\")] = {\n opacity: 1,\n },\n _a),\n },\n checked && [\n 'is-checked',\n {\n selectors: {\n ':before': {\n background: palette.themePrimary,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n background: 'Window',\n },\n _b),\n },\n },\n },\n ],\n className,\n ],\n circle: [\n classNames.circle,\n sharedCircleCheck,\n {\n color: palette.neutralSecondary,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n },\n _c),\n },\n checked && {\n color: palette.white,\n },\n ],\n check: [\n classNames.check,\n sharedCircleCheck,\n {\n opacity: 0,\n color: palette.neutralSecondary,\n fontSize: IconFontSizes.medium,\n left: isRTL ? '-0.5px' : '.5px',\n top: '-1px',\n selectors: (_d = {\n ':hover': {\n opacity: 1,\n }\n },\n _d[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _d),\n },\n checked && {\n opacity: 1,\n color: palette.white,\n fontWeight: 900,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n color: 'WindowText',\n },\n _e),\n },\n ],\n checkHost: classNames.checkHost,\n };\n};\n//# sourceMappingURL=Check.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useFocusRects, classNamesFunction } from '@fluentui/utilities';\nimport { Icon } from '../Icon/Icon';\nvar getClassNames = classNamesFunction();\nexport var CheckboxBase = React.forwardRef(function (props, forwardedRef) {\n var disabled = props.disabled, required = props.required, inputProps = props.inputProps, name = props.name, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, title = props.title, checkmarkIconProps = props.checkmarkIconProps, styles = props.styles, theme = props.theme, className = props.className, _a = props.boxSide, boxSide = _a === void 0 ? 'start' : _a;\n var id = useId('checkbox-', props.id);\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n var inputRef = React.useRef(null);\n var _b = useControllableValue(props.checked, props.defaultChecked, props.onChange), isChecked = _b[0], setIsChecked = _b[1];\n var _c = useControllableValue(props.indeterminate, props.defaultIndeterminate), isIndeterminate = _c[0], setIsIndeterminate = _c[1];\n useFocusRects(rootRef);\n useDebugWarning(props);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n indeterminate: isIndeterminate,\n checked: isChecked,\n reversed: boxSide !== 'start',\n isUsingCustomLabelRender: !!props.onRenderLabel,\n });\n var onChange = React.useCallback(function (event) {\n if (isIndeterminate) {\n // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if\n // controlled, lets the consumer know to change it by calling onChange). It doesn't\n // change the checked state.\n setIsChecked(!!isChecked, event);\n setIsIndeterminate(false);\n }\n else {\n setIsChecked(!isChecked, event);\n }\n }, [setIsChecked, setIsIndeterminate, isIndeterminate, isChecked]);\n var defaultLabelRenderer = React.useCallback(function (checkboxProps) {\n if (!checkboxProps) {\n return null;\n }\n return checkboxProps.label ? (React.createElement(\"span\", { className: classNames.text, title: checkboxProps.title }, checkboxProps.label)) : null;\n }, [classNames.text]);\n var setNativeIndeterminate = React.useCallback(function (indeterminate) {\n if (!inputRef.current) {\n return;\n }\n var value = !!indeterminate;\n inputRef.current.indeterminate = value;\n setIsIndeterminate(value);\n }, [setIsIndeterminate]);\n useComponentRef(props, isChecked, isIndeterminate, setNativeIndeterminate, inputRef);\n React.useEffect(function () { return setNativeIndeterminate(isIndeterminate); }, [setNativeIndeterminate, isIndeterminate]);\n var onRenderLabel = props.onRenderLabel || defaultLabelRenderer;\n var ariaChecked = isIndeterminate\n ? 'mixed'\n : undefined;\n var mergedInputProps = __assign(__assign({ className: classNames.input, type: 'checkbox' }, inputProps), { checked: !!isChecked, disabled: disabled, required: required, name: name, id: id, title: title, onChange: onChange, 'aria-disabled': disabled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-posinset': ariaPositionInSet, 'aria-setsize': ariaSetSize, 'aria-checked': ariaChecked });\n return (React.createElement(\"div\", { className: classNames.root, title: title, ref: mergedRootRefs },\n React.createElement(\"input\", __assign({}, mergedInputProps, { ref: inputRef, title: title, \"data-ktp-execute-target\": true })),\n React.createElement(\"label\", { className: classNames.label, htmlFor: id },\n React.createElement(\"div\", { className: classNames.checkbox, \"data-ktp-target\": true },\n React.createElement(Icon, __assign({ iconName: \"CheckMark\" }, checkmarkIconProps, { className: classNames.checkmark }))),\n onRenderLabel(props, defaultLabelRenderer))));\n});\nCheckboxBase.displayName = 'CheckboxBase';\nfunction useDebugWarning(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Checkbox',\n props: props,\n mutuallyExclusive: {\n checked: 'defaultChecked',\n indeterminate: 'defaultIndeterminate',\n },\n });\n }\n}\nfunction useComponentRef(props, isChecked, isIndeterminate, setIndeterminate, checkBoxRef) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n get checked() {\n return !!isChecked;\n },\n get indeterminate() {\n return !!isIndeterminate;\n },\n set indeterminate(indeterminate) {\n setIndeterminate(indeterminate);\n },\n focus: function () {\n if (checkBoxRef.current) {\n checkBoxRef.current.focus();\n }\n },\n }); }, [checkBoxRef, isChecked, isIndeterminate, setIndeterminate]);\n}\n//# sourceMappingURL=Checkbox.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar GlobalClassNames = {\n root: 'ms-Checkbox',\n label: 'ms-Checkbox-label',\n checkbox: 'ms-Checkbox-checkbox',\n checkmark: 'ms-Checkbox-checkmark',\n text: 'ms-Checkbox-text',\n};\nvar MS_CHECKBOX_LABEL_SIZE = '20px';\nvar MS_CHECKBOX_TRANSITION_DURATION = '200ms';\nvar MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;\n var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var checkmarkFontColor = semanticColors.inputForegroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder\n var checkmarkFontColorHovered = palette.neutralSecondary;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var checkboxBorderColor = palette.neutralPrimary;\n var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;\n var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;\n var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping the following 2 tokens need to be\n // semanticColors.inputBackgroundCheckedHovered\n var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxHoveredTextColor = semanticColors.inputTextHovered;\n var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;\n var checkboxTextColor = semanticColors.bodyText;\n var checkboxTextColorDisabled = semanticColors.disabledText;\n var indeterminateDotStyles = [\n (_a = {\n content: '\"\"',\n borderRadius: effects.roundedCorner2,\n position: 'absolute',\n width: 10,\n height: 10,\n top: 4,\n left: 4,\n boxSizing: 'border-box',\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,\n transitionProperty: 'border-width, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING\n },\n _a[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _a),\n ];\n return {\n root: [\n classNames.root,\n {\n position: 'relative',\n display: 'flex',\n },\n reversed && 'reversed',\n checked && 'is-checked',\n !disabled && 'is-enabled',\n disabled && 'is-disabled',\n !disabled && [\n !checked && (_b = {},\n _b[\":hover .\".concat(classNames.checkbox)] = (_c = {\n borderColor: checkboxBorderHoveredColor\n },\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n _b[\":focus .\".concat(classNames.checkbox)] = { borderColor: checkboxBorderHoveredColor },\n _b[\":hover .\".concat(classNames.checkmark)] = (_d = {\n color: checkmarkFontColorHovered,\n opacity: '1'\n },\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n _b),\n checked &&\n !indeterminate && (_e = {},\n _e[\":hover .\".concat(classNames.checkbox)] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[\":focus .\".concat(classNames.checkbox)] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[HighContrastSelector] = (_f = {},\n _f[\":hover .\".concat(classNames.checkbox)] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _f[\":focus .\".concat(classNames.checkbox)] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\".concat(classNames.checkbox)] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\".concat(classNames.checkmark)] = {\n color: 'Window',\n },\n _f[\":hover .\".concat(classNames.checkmark)] = {\n color: 'Window',\n },\n _f),\n _e),\n indeterminate && (_g = {},\n _g[\":hover .\".concat(classNames.checkbox, \", :hover .\").concat(classNames.checkbox, \":after\")] = (_h = {\n borderColor: checkboxBorderIndeterminateHoveredColor\n },\n _h[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _h),\n _g[\":focus .\".concat(classNames.checkbox)] = {\n borderColor: checkboxBorderIndeterminateHoveredColor,\n },\n _g[\":hover .\".concat(classNames.checkmark)] = {\n opacity: '0',\n },\n _g),\n (_j = {},\n _j[\":hover .\".concat(classNames.text, \", :focus .\").concat(classNames.text)] = (_k = {\n color: checkboxHoveredTextColor\n },\n _k[HighContrastSelector] = {\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _k),\n _j),\n ],\n className,\n ],\n input: (_l = {\n position: 'absolute',\n background: 'none',\n opacity: 0\n },\n _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before\")] = (_m = {\n outline: '1px solid ' + theme.palette.neutralSecondary,\n outlineOffset: '2px'\n },\n _m[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _m),\n _l),\n label: [\n classNames.label,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',\n cursor: disabled ? 'default' : 'pointer',\n position: 'relative',\n userSelect: 'none',\n },\n reversed && {\n flexDirection: 'row-reverse',\n justifyContent: 'flex-end',\n },\n {\n '&::before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n content: '\"\"',\n pointerEvents: 'none',\n },\n },\n ],\n checkbox: [\n classNames.checkbox,\n (_o = {\n position: 'relative',\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n height: MS_CHECKBOX_LABEL_SIZE,\n width: MS_CHECKBOX_LABEL_SIZE,\n border: \"1px solid \".concat(checkboxBorderColor),\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n transitionProperty: 'background, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,\n /* in case the icon is bigger than the box */\n overflow: 'hidden',\n ':after': indeterminate ? indeterminateDotStyles : null\n },\n _o[HighContrastSelector] = __assign({ borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _o),\n indeterminate && {\n borderColor: checkboxBorderIndeterminateColor,\n },\n !reversed\n ? // This margin on the checkbox is for backwards compat. Notably it has the effect where a customRender\n // is used, there will be only a 4px margin from checkbox to label. The label by default would have\n // another 4px margin for a total of 8px margin between checkbox and label. We don't combine the two\n // (and move it into the text) to not incur a breaking change for everyone using custom render atm.\n {\n marginRight: 4,\n }\n : {\n marginLeft: 4,\n },\n !disabled &&\n !indeterminate &&\n checked && (_p = {\n background: checkboxBackgroundChecked,\n borderColor: checkboxBorderColorChecked\n },\n _p[HighContrastSelector] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _p),\n disabled && (_q = {\n borderColor: checkboxBorderColorDisabled\n },\n _q[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _q),\n checked &&\n disabled && (_r = {\n background: checkboxBackgroundDisabledChecked,\n borderColor: checkboxBorderColorDisabled\n },\n _r[HighContrastSelector] = {\n background: 'Window',\n },\n _r),\n ],\n checkmark: [\n classNames.checkmark,\n (_s = {\n opacity: checked && !indeterminate ? '1' : '0',\n color: checkmarkFontColor\n },\n _s[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'Window' }, getHighContrastNoAdjustStyle()),\n _s),\n ],\n text: [\n classNames.text,\n (_t = {\n color: disabled ? checkboxTextColorDisabled : checkboxTextColor,\n fontSize: fonts.medium.fontSize,\n lineHeight: '20px'\n },\n _t[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'WindowText' }, getHighContrastNoAdjustStyle()),\n _t),\n !reversed\n ? {\n marginLeft: 4,\n }\n : {\n marginRight: 4,\n },\n ],\n };\n};\n//# sourceMappingURL=Checkbox.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CheckboxBase } from './Checkbox.base';\nimport { getStyles } from './Checkbox.styles';\nexport var Checkbox = styled(CheckboxBase, getStyles, undefined, { scope: 'Checkbox' });\n//# sourceMappingURL=Checkbox.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../../../Image';\nimport { Icon } from '../../../Icon';\nimport { classNamesFunction, getNativeProps, inputProperties, css, composeRenderFunction, getPropsWithDefaults, } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nvar LARGE_IMAGE_SIZE = 71;\nvar DEFAULT_PROPS = {\n // This ensures default imageSize value doesn't mutate. Mutation can cause style re-calcuation.\n imageSize: { width: 32, height: 32 },\n};\nexport var ChoiceGroupOptionBase = function (propsWithoutDefaults) {\n // Mix the `key` prop back in since custom render functions may be expecting it\n // (React uses `key` internally rather than passing it through to the component)\n var props = getPropsWithDefaults(__assign(__assign({}, DEFAULT_PROPS), { key: propsWithoutDefaults.itemKey }), propsWithoutDefaults);\n var ariaLabel = props.ariaLabel, focused = props.focused, required = props.required, theme = props.theme, iconProps = props.iconProps, imageSrc = props.imageSrc, imageSize = props.imageSize, disabled = props.disabled, checked = props.checked, id = props.id, styles = props.styles, name = props.name, rest = __rest(props, [\"ariaLabel\", \"focused\", \"required\", \"theme\", \"iconProps\", \"imageSrc\", \"imageSize\", \"disabled\", \"checked\", \"id\", \"styles\", \"name\"]);\n var classNames = getClassNames(styles, {\n theme: theme,\n hasIcon: !!iconProps,\n hasImage: !!imageSrc,\n checked: checked,\n disabled: disabled,\n imageIsLarge: !!imageSrc && (imageSize.width > LARGE_IMAGE_SIZE || imageSize.height > LARGE_IMAGE_SIZE),\n imageSize: imageSize,\n focused: focused,\n });\n var _a = getNativeProps(rest, inputProperties), className = _a.className, nativeProps = __rest(_a, [\"className\"]);\n var defaultOnRenderLabel = function () {\n return (React.createElement(\"span\", { id: props.labelId, className: \"ms-ChoiceFieldLabel\" }, props.text));\n };\n var defaultOnRenderField = function () {\n var _a = props.imageAlt, imageAlt = _a === void 0 ? '' : _a, selectedImageSrc = props.selectedImageSrc;\n var onRenderLabel = props.onRenderLabel\n ? composeRenderFunction(props.onRenderLabel, defaultOnRenderLabel)\n : defaultOnRenderLabel;\n var label = onRenderLabel(__assign(__assign({}, props), { key: props.itemKey }));\n return (React.createElement(\"label\", { htmlFor: id, className: classNames.field },\n imageSrc && (React.createElement(\"div\", { className: classNames.innerField },\n React.createElement(\"div\", { className: classNames.imageWrapper },\n React.createElement(Image, __assign({ src: imageSrc, alt: imageAlt }, imageSize))),\n React.createElement(\"div\", { className: classNames.selectedImageWrapper },\n React.createElement(Image, __assign({ src: selectedImageSrc, alt: imageAlt }, imageSize))))),\n iconProps && (React.createElement(\"div\", { className: classNames.innerField },\n React.createElement(\"div\", { className: classNames.iconWrapper },\n React.createElement(Icon, __assign({}, iconProps))))),\n imageSrc || iconProps ? React.createElement(\"div\", { className: classNames.labelWrapper }, label) : label));\n };\n var _b = props.onRenderField, onRenderField = _b === void 0 ? defaultOnRenderField : _b;\n var onChange = function (evt) {\n var _a;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n };\n var onBlur = function (evt) {\n var _a;\n (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, evt);\n };\n var onFocus = function (evt) {\n var _a;\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n };\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.choiceFieldWrapper },\n React.createElement(\"input\", __assign({ \"aria-label\": ariaLabel, id: id, className: css(classNames.input, className), type: \"radio\", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: onChange, onFocus: onFocus, onBlur: onBlur })),\n onRenderField(__assign(__assign({}, props), { key: props.itemKey }), defaultOnRenderField))));\n};\nChoiceGroupOptionBase.displayName = 'ChoiceGroupOption';\n//# sourceMappingURL=ChoiceGroupOption.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-ChoiceField',\n choiceFieldWrapper: 'ms-ChoiceField-wrapper',\n input: 'ms-ChoiceField-input',\n field: 'ms-ChoiceField-field',\n innerField: 'ms-ChoiceField-innerField',\n imageWrapper: 'ms-ChoiceField-imageWrapper',\n iconWrapper: 'ms-ChoiceField-iconWrapper',\n labelWrapper: 'ms-ChoiceField-labelWrapper',\n checked: 'is-checked',\n};\nvar labelWrapperLineHeight = 15;\nvar labelWrapperHeight = labelWrapperLineHeight * 2 + 2; // adding 2px height to ensure text doesn't get cutoff\nvar iconSize = 32;\nvar choiceFieldSize = 20;\nvar choiceFieldTransitionDuration = '200ms';\nvar choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';\nvar radioButtonSpacing = 3;\nvar radioButtonInnerSize = 5;\nfunction getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {\n var _a, _b;\n return [\n 'is-inFocus',\n {\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n position: 'relative',\n outline: 'transparent',\n selectors: {\n '::-moz-focus-inner': {\n border: 0,\n },\n ':after': {\n content: '\"\"',\n top: -2,\n right: -2,\n bottom: -2,\n left: -2,\n pointerEvents: 'none',\n border: \"1px solid \".concat(focusBorderColor),\n position: 'absolute',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'WindowText',\n borderWidth: hasIconOrImage ? 1 : 2,\n },\n _b),\n },\n },\n },\n _a),\n },\n ];\n}\nfunction getImageWrapperStyle(isSelectedImageWrapper, className, checked) {\n return [\n className,\n {\n paddingBottom: 2,\n transitionProperty: 'opacity',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n selectors: {\n '.ms-Image': {\n display: 'inline-block',\n borderStyle: 'none',\n },\n },\n },\n (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [\n 'is-hidden',\n {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n opacity: 0,\n },\n ],\n ];\n}\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var circleBorderColor = palette.neutralPrimary;\n var circleHoveredBorderColor = semanticColors.inputBorderHovered;\n var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var circleCheckedHoveredBorderColor = palette.themeDark;\n var circleDisabledBorderColor = semanticColors.disabledBodySubtext;\n var circleBackgroundColor = semanticColors.bodyBackground;\n var dotUncheckedHoveredColor = palette.neutralSecondary;\n var dotCheckedColor = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var dotCheckedHoveredColor = palette.themeDark;\n var dotDisabledColor = semanticColors.disabledBodySubtext;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked\n var labelHoverFocusColor = palette.neutralDark;\n var focusBorderColor = semanticColors.focusBorder;\n var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;\n var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;\n var iconOrImageChoiceBackgroundColor = palette.neutralLighter;\n var fieldHoverOrFocusProperties = {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: labelHoverFocusColor,\n },\n ':before': {\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n ':after': [\n !hasIcon &&\n !hasImage &&\n !checked && {\n content: '\"\"',\n transitionProperty: 'background-color',\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n backgroundColor: dotUncheckedHoveredColor,\n },\n checked && {\n borderColor: dotCheckedHoveredColor,\n background: dotCheckedHoveredColor,\n },\n ],\n },\n };\n var enabledFieldWithImageHoverOrFocusProperties = {\n borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,\n selectors: {\n ':before': {\n opacity: 1,\n borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n },\n },\n };\n var circleAreaProperties = [\n {\n content: '\"\"',\n display: 'inline-block',\n backgroundColor: circleBackgroundColor,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: circleBorderColor,\n width: choiceFieldSize,\n height: choiceFieldSize,\n fontWeight: 'normal',\n position: 'absolute',\n top: 0,\n left: 0,\n boxSizing: 'border-box',\n transitionProperty: 'border-color',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n borderRadius: '50%',\n },\n disabled && {\n borderColor: circleDisabledBorderColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderColor: 'GrayText', background: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n checked && {\n borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n background: 'Window',\n forcedColorAdjust: 'none',\n },\n _b),\n },\n (hasIcon || hasImage) && {\n top: radioButtonSpacing,\n right: radioButtonSpacing,\n left: 'auto',\n opacity: checked ? 1 : 0,\n },\n ];\n var dotAreaProperties = [\n {\n content: '\"\"',\n width: 0,\n height: 0,\n borderRadius: '50%',\n position: 'absolute',\n left: choiceFieldSize / 2,\n right: 0,\n transitionProperty: 'border-width',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: choiceFieldTransitionTiming,\n boxSizing: 'border-box',\n },\n checked && {\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? dotDisabledColor : dotCheckedColor,\n background: dotCheckedColor,\n left: 5,\n top: 5,\n width: 10,\n height: 10,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n checked &&\n (hasIcon || hasImage) && {\n top: radioButtonSpacing + radioButtonInnerSize,\n right: radioButtonSpacing + radioButtonInnerSize,\n left: 'auto', // To reset the value of 'left' to its default value, so that 'right' works\n },\n ];\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n boxSizing: 'border-box',\n color: semanticColors.bodyText,\n minHeight: 26,\n border: 'none',\n position: 'relative',\n marginTop: 8,\n selectors: {\n '.ms-ChoiceFieldLabel': {\n display: 'inline-block',\n },\n },\n },\n !hasIcon &&\n !hasImage && {\n selectors: {\n '.ms-ChoiceFieldLabel': {\n paddingLeft: '26px',\n },\n },\n },\n hasImage && 'ms-ChoiceField--image',\n hasIcon && 'ms-ChoiceField--icon',\n (hasIcon || hasImage) && {\n display: 'inline-flex',\n fontSize: 0,\n margin: '0 4px 4px 0',\n paddingLeft: 0,\n backgroundColor: iconOrImageChoiceBackgroundColor,\n height: '100%',\n },\n ],\n choiceFieldWrapper: [\n classNames.choiceFieldWrapper,\n focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage),\n ],\n // The hidden input\n input: [\n classNames.input,\n {\n position: 'absolute',\n opacity: 0,\n top: 0,\n right: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n },\n disabled && 'is-disabled',\n ],\n field: [\n classNames.field,\n checked && classNames.checked,\n {\n display: 'inline-block',\n cursor: 'pointer',\n marginTop: 0,\n position: 'relative',\n verticalAlign: 'top',\n userSelect: 'none',\n minHeight: 20,\n selectors: {\n ':hover': !disabled && fieldHoverOrFocusProperties,\n ':focus': !disabled && fieldHoverOrFocusProperties,\n // The circle\n ':before': circleAreaProperties,\n // The dot\n ':after': dotAreaProperties,\n },\n },\n hasIcon && 'ms-ChoiceField--icon',\n hasImage && 'ms-ChoiceField-field--image',\n (hasIcon || hasImage) && {\n boxSizing: 'content-box',\n cursor: 'pointer',\n paddingTop: 22,\n margin: 0,\n textAlign: 'center',\n transitionProperty: 'all',\n transitionDuration: choiceFieldTransitionDuration,\n transitionTimingFunction: 'ease',\n border: '1px solid transparent',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n checked && {\n borderColor: iconOrImageChoiceBorderCheckedColor,\n },\n (hasIcon || hasImage) &&\n !disabled && {\n selectors: {\n ':hover': enabledFieldWithImageHoverOrFocusProperties,\n ':focus': enabledFieldWithImageHoverOrFocusProperties,\n },\n },\n disabled && {\n cursor: 'default',\n selectors: {\n '.ms-ChoiceFieldLabel': {\n color: semanticColors.disabledBodyText,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n },\n },\n checked &&\n disabled && {\n borderColor: iconOrImageChoiceBackgroundColor,\n },\n ],\n innerField: [\n classNames.innerField,\n hasImage && {\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n height: imageSize.height,\n width: imageSize.width,\n },\n (hasIcon || hasImage) && {\n position: 'relative',\n display: 'inline-block',\n paddingLeft: 30,\n paddingRight: 30,\n },\n (hasIcon || hasImage) &&\n imageIsLarge && {\n paddingLeft: 24,\n paddingRight: 24,\n },\n (hasIcon || hasImage) &&\n disabled && {\n opacity: 0.25,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _e),\n },\n ],\n imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),\n selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),\n iconWrapper: [\n classNames.iconWrapper,\n {\n fontSize: iconSize,\n lineHeight: iconSize,\n height: iconSize,\n },\n ],\n labelWrapper: [\n classNames.labelWrapper,\n fonts.medium,\n (hasIcon || hasImage) && {\n display: 'block',\n position: 'relative',\n margin: '4px 8px 2px 8px',\n height: labelWrapperHeight,\n lineHeight: labelWrapperLineHeight,\n // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n maxWidth: imageSize.width * 2,\n overflow: 'hidden',\n whiteSpace: 'pre-wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroupOption.styles.js.map","import { styled } from '../../../Utilities';\nimport { ChoiceGroupOptionBase } from './ChoiceGroupOption.base';\nimport { getStyles } from './ChoiceGroupOption.styles';\nexport var ChoiceGroupOption = styled(ChoiceGroupOptionBase, getStyles, undefined, { scope: 'ChoiceGroupOption' });\n//# sourceMappingURL=ChoiceGroupOption.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { classNamesFunction, find, FocusRectsContext, getNativeProps, divProperties, setFocusVisibility, useFocusRects, } from '../../Utilities';\nimport { ChoiceGroupOption } from './ChoiceGroupOption/index';\nimport { useId, useControllableValue, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getOptionId = function (option, id) {\n return \"\".concat(id, \"-\").concat(option.key);\n};\nvar findOption = function (options, key) {\n return key === undefined ? undefined : find(options, function (value) { return value.key === key; });\n};\nvar focusSelectedOption = function (options, keyChecked, id, focusProviders) {\n var optionToFocus = findOption(options, keyChecked) || options.filter(function (option) { return !option.disabled; })[0];\n var elementToFocus = optionToFocus && document.getElementById(getOptionId(optionToFocus, id));\n if (elementToFocus) {\n elementToFocus.focus();\n setFocusVisibility(true, elementToFocus, focusProviders);\n }\n};\nvar focusFromFocusTrapZone = function (evt) {\n return evt.relatedTarget instanceof HTMLElement && evt.relatedTarget.dataset.isFocusTrapZoneBumper === 'true';\n};\nvar useComponentRef = function (options, keyChecked, id, componentRef, focusProviders) {\n React.useImperativeHandle(componentRef, function () { return ({\n get checkedOption() {\n return findOption(options, keyChecked);\n },\n focus: function () {\n focusSelectedOption(options, keyChecked, id, focusProviders);\n },\n }); }, [options, keyChecked, id, focusProviders]);\n};\nvar COMPONENT_NAME = 'ChoiceGroup';\nexport var ChoiceGroupBase = React.forwardRef(function (props, forwardedRef) {\n var className = props.className, theme = props.theme, styles = props.styles, _a = props.options, options = _a === void 0 ? [] : _a, label = props.label, required = props.required, disabled = props.disabled, name = props.name, defaultSelectedKey = props.defaultSelectedKey, componentRef = props.componentRef, onChange = props.onChange;\n var id = useId('ChoiceGroup');\n var labelId = useId('ChoiceGroupLabel');\n var divProps = getNativeProps(props, divProperties, [\n 'onChange',\n 'className',\n 'required',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); }),\n });\n var ariaLabelledBy = props.ariaLabelledBy || (label ? labelId : props['aria-labelledby']);\n var _b = useControllableValue(props.selectedKey, defaultSelectedKey), keyChecked = _b[0], setKeyChecked = _b[1];\n var _c = React.useState(), keyFocused = _c[0], setKeyFocused = _c[1];\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n var focusContext = React.useContext(FocusRectsContext);\n useDebugWarnings(props);\n useComponentRef(options, keyChecked, id, componentRef, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n useFocusRects(rootRef);\n var onFocus = React.useCallback(function (ev, option) {\n var _a;\n if (option) {\n setKeyFocused(option.itemKey);\n (_a = option.onFocus) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n }\n }, []);\n var onBlur = React.useCallback(function (ev, option) {\n var _a;\n setKeyFocused(undefined);\n (_a = option === null || option === void 0 ? void 0 : option.onBlur) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n }, []);\n var onOptionChange = React.useCallback(function (evt, option) {\n var _a;\n if (!option) {\n return;\n }\n setKeyChecked(option.itemKey);\n (_a = option.onChange) === null || _a === void 0 ? void 0 : _a.call(option, evt);\n onChange === null || onChange === void 0 ? void 0 : onChange(evt, findOption(options, option.itemKey));\n }, [onChange, options, setKeyChecked]);\n var onRadioFocus = React.useCallback(function (evt) {\n // Handles scenarios like this bug: https://github.com/microsoft/fluentui/issues/20173\n if (focusFromFocusTrapZone(evt)) {\n focusSelectedOption(options, keyChecked, id, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n }\n }, [options, keyChecked, id, focusContext]);\n return (React.createElement(\"div\", __assign({ className: classNames.root }, divProps, { ref: mergedRootRefs }),\n React.createElement(\"div\", __assign({ role: \"radiogroup\" }, (ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }), { onFocus: onRadioFocus }),\n label && (React.createElement(Label, { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),\n React.createElement(\"div\", { className: classNames.flexContainer }, options.map(function (option) {\n return (React.createElement(ChoiceGroupOption, __assign({ itemKey: option.key }, option, { key: option.key, onBlur: onBlur, onFocus: onFocus, onChange: onOptionChange, focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: getOptionId(option, id), labelId: option.labelId || \"\".concat(labelId, \"-\").concat(option.key), name: name || id, required: required })));\n })))));\n});\nChoiceGroupBase.displayName = COMPONENT_NAME;\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n mutuallyExclusive: {\n selectedKey: 'defaultSelectedKey',\n },\n });\n }\n}\n//# sourceMappingURL=ChoiceGroup.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ChoiceFieldGroup',\n flexContainer: 'ms-ChoiceFieldGroup-flexContainer',\n};\nexport var getStyles = function (props) {\n var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n className,\n classNames.root,\n theme.fonts.medium,\n {\n display: 'block',\n },\n ],\n flexContainer: [\n classNames.flexContainer,\n optionsContainIconOrImage && {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n ],\n };\n};\n//# sourceMappingURL=ChoiceGroup.styles.js.map","import { styled } from '../../Utilities';\nimport { ChoiceGroupBase } from './ChoiceGroup.base';\nimport { getStyles } from './ChoiceGroup.styles';\nexport var ChoiceGroup = styled(ChoiceGroupBase, getStyles, undefined, { scope: 'ChoiceGroup' });\n//# sourceMappingURL=ChoiceGroup.js.map","import { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\nimport { hsv2hex } from './hsv2hex';\n/**\n * Converts a color hue to an HTML color string (with # prefix).\n * This implementation ignores all components of `color` except hue.\n */\nexport function getFullColorString(color) {\n return \"#\".concat(hsv2hex(color.h, MAX_COLOR_SATURATION, MAX_COLOR_VALUE));\n}\n//# sourceMappingURL=getFullColorString.js.map","import { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\n/** Converts HSV components to a hex color string (without # prefix). */\nexport function hsv2hex(h, s, v) {\n var _a = hsv2rgb(h, s, v), r = _a.r, g = _a.g, b = _a.b;\n return rgb2hex(r, g, b);\n}\n//# sourceMappingURL=hsv2hex.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same hue as `color` and other components updated to match the given\n * saturation and value.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateSV(color, s, v) {\n var _a = hsv2rgb(color.h, s, v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { s: s, v: v, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateSV.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, on, initializeComponentRef, KeyCodes, getId } from '../../../Utilities';\n// These imports are separated to help with bundling\nimport { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from '../../../utilities/color/consts';\nimport { getFullColorString } from '../../../utilities/color/getFullColorString';\nimport { updateSV } from '../../../utilities/color/updateSV';\nimport { clamp } from '../../../utilities/color/clamp';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorRectangleBase = /** @class */ (function (_super) {\n __extends(ColorRectangleBase, _super);\n function ColorRectangleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._isAdjustingSaturation = true;\n _this._descriptionId = getId('ColorRectangle-description');\n _this._onKeyDown = function (ev) {\n var color = _this.state.color;\n var s = color.s, v = color.v;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up: {\n _this._isAdjustingSaturation = false;\n v += increment; // V = 100 (lightest) is at the top\n break;\n }\n case KeyCodes.down: {\n _this._isAdjustingSaturation = false;\n v -= increment; // V = 0 (darkest) is at the bottom\n break;\n }\n case KeyCodes.left: {\n _this._isAdjustingSaturation = true;\n s -= increment;\n break;\n }\n case KeyCodes.right: {\n _this._isAdjustingSaturation = true;\n s += increment;\n break;\n }\n default:\n return;\n }\n _this._updateColor(ev, updateSV(color, clamp(s, MAX_COLOR_SATURATION), clamp(v, MAX_COLOR_VALUE)));\n };\n _this._onMouseDown = function (ev) {\n _this._disposables.push(on(window, 'mousemove', _this._onMouseMove, true), on(window, 'mouseup', _this._disposeListeners, true));\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // Leaving the following commented code which is sometimes necessary for debugging:\n // If the primary button (1) isn't pressed, the user is no longer dragging, so turn off\n // the event handlers and exit.\n // if (!(ev.buttons & 1)) {\n // this._disposeListeners();\n // return;\n // }\n var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n if (newColor) {\n _this._updateColor(ev, newColor);\n }\n };\n _this._onTouchStart = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n ev.stopPropagation();\n };\n _this._onTouchMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n if (newColor) {\n _this._updateColor(ev, newColor);\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n _this.state = { color: props.color };\n return _this;\n }\n Object.defineProperty(ColorRectangleBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: false,\n configurable: true\n });\n ColorRectangleBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.color) {\n this.setState({ color: this.props.color });\n }\n };\n ColorRectangleBase.prototype.componentDidMount = function () {\n if (this._root.current) {\n // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n }\n };\n ColorRectangleBase.prototype.componentWillUnmount = function () {\n if (this._root.current) {\n this._root.current.removeEventListener('touchstart', this._onTouchStart);\n this._root.current.removeEventListener('touchmove', this._onTouchMove);\n }\n this._disposeListeners();\n };\n ColorRectangleBase.prototype.render = function () {\n var _a = this.props, minSize = _a.minSize, theme = _a.theme, className = _a.className, styles = _a.styles, ariaValueFormat = _a.ariaValueFormat, ariaLabel = _a.ariaLabel, ariaDescription = _a.ariaDescription;\n var color = this.state.color;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n minSize: minSize,\n });\n var valueText = ariaValueFormat.replace('{0}', String(color.s)).replace('{1}', String(color.v));\n return (React.createElement(\"div\", { ref: this._root, tabIndex: 0, className: classNames.root, style: { backgroundColor: getFullColorString(color) }, onMouseDown: this._onMouseDown, onKeyDown: this._onKeyDown, role: \"slider\", \"aria-valuetext\": valueText, \"aria-valuenow\": this._isAdjustingSaturation ? color.s : color.v, \"aria-valuemin\": 0, \"aria-valuemax\": MAX_COLOR_VALUE, \"aria-label\": ariaLabel, \"aria-describedby\": this._descriptionId, \"data-is-focusable\": true },\n React.createElement(\"div\", { className: classNames.description, id: this._descriptionId }, ariaDescription),\n React.createElement(\"div\", { className: classNames.light }),\n React.createElement(\"div\", { className: classNames.dark }),\n React.createElement(\"div\", { className: classNames.thumb, style: { left: color.s + '%', top: MAX_COLOR_VALUE - color.v + '%', backgroundColor: color.str } })));\n };\n ColorRectangleBase.prototype._updateColor = function (ev, color) {\n var onChange = this.props.onChange;\n var oldColor = this.state.color;\n if (color.s === oldColor.s && color.v === oldColor.v) {\n return; // no change\n }\n if (onChange) {\n onChange(ev, color);\n }\n if (!ev.defaultPrevented) {\n this.setState({ color: color });\n ev.preventDefault();\n }\n };\n ColorRectangleBase.defaultProps = {\n minSize: 220,\n ariaLabel: 'Saturation and brightness',\n ariaValueFormat: 'Saturation {0} brightness {1}',\n ariaDescription: 'Use left and right arrow keys to set saturation. Use up and down arrow keys to set brightness.',\n };\n return ColorRectangleBase;\n}(React.Component));\nexport { ColorRectangleBase };\n/**\n * Exported for testing only.\n * @internal\n */\nexport function _getNewColor(ev, prevColor, root) {\n var rectSize = root.getBoundingClientRect();\n var coords = undefined;\n var touchEvent = ev;\n if (touchEvent.touches) {\n var lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (lastTouch.clientX !== undefined && lastTouch.clientY !== undefined) {\n coords = {\n clientX: lastTouch.clientX,\n clientY: lastTouch.clientY,\n };\n }\n }\n if (!coords) {\n var mouseEvent = ev;\n if (mouseEvent.clientX !== undefined && mouseEvent.clientY !== undefined) {\n coords = {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n };\n }\n }\n if (coords) {\n var sPercentage = (coords.clientX - rectSize.left) / rectSize.width;\n var vPercentage = (coords.clientY - rectSize.top) / rectSize.height;\n return updateSV(prevColor, clamp(Math.round(sPercentage * MAX_COLOR_SATURATION), MAX_COLOR_SATURATION), clamp(Math.round(MAX_COLOR_VALUE - vPercentage * MAX_COLOR_VALUE), MAX_COLOR_VALUE));\n }\n}\n//# sourceMappingURL=ColorRectangle.base.js.map","import { styled } from '../../../Utilities';\nimport { ColorRectangleBase } from './ColorRectangle.base';\nimport { getStyles } from './ColorRectangle.styles';\nexport var ColorRectangle = styled(ColorRectangleBase, getStyles, undefined, { scope: 'ColorRectangle' });\n//# sourceMappingURL=ColorRectangle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nimport { hiddenContentStyle } from '@fluentui/style-utilities';\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, minSize = props.minSize;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-colorRect',\n {\n position: 'relative',\n marginBottom: 8,\n border: \"1px solid \".concat(palette.neutralLighter),\n borderRadius: effects.roundedCorner2,\n minWidth: minSize,\n minHeight: minSize,\n outline: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = (_b = {\n outline: \"1px solid \".concat(palette.neutralSecondary)\n },\n _b[\"\".concat(HighContrastSelector)] = {\n outline: '2px solid CanvasText',\n },\n _b),\n _a),\n },\n className,\n ],\n light: [\n 'ms-ColorPicker-light',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n background: 'linear-gradient(to right, white 0%, transparent 100%) /*@noflip*/',\n },\n ],\n dark: [\n 'ms-ColorPicker-dark',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n background: 'linear-gradient(to bottom, transparent 0, #000 100%)',\n },\n ],\n thumb: [\n 'ms-ColorPicker-thumb',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n selectors: {\n ':before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n border: \"2px solid \".concat(palette.white),\n borderRadius: '50%',\n boxSizing: 'border-box',\n content: '\"\"',\n },\n },\n },\n ],\n description: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=ColorRectangle.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, on, KeyCodes, getWindow, warnDeprecations, warn, } from '../../../Utilities';\nimport { clamp } from '../../../utilities/color/clamp';\nimport { MAX_COLOR_HUE, MAX_COLOR_ALPHA } from '../../../utilities/color/consts';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorSliderBase = /** @class */ (function (_super) {\n __extends(ColorSliderBase, _super);\n function ColorSliderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._onKeyDown = function (ev) {\n var currentValue = _this.value;\n var maxValue = _this._maxValue;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.left: {\n currentValue -= increment;\n break;\n }\n case KeyCodes.right: {\n currentValue += increment;\n break;\n }\n case KeyCodes.home: {\n currentValue = 0;\n break;\n }\n case KeyCodes.end: {\n currentValue = maxValue;\n break;\n }\n default: {\n return;\n }\n }\n _this._updateValue(ev, clamp(currentValue, maxValue));\n };\n _this._onMouseDown = function (ev) {\n var win = getWindow(_this);\n if (win) {\n _this._disposables.push(on(win, 'mousemove', _this._onMouseMove, true), on(win, 'mouseup', _this._disposeListeners, true));\n }\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var maxValue = _this._maxValue;\n var rectSize = _this._root.current.getBoundingClientRect();\n var currentPercentage = (ev.clientX - rectSize.left) / rectSize.width;\n var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n _this._updateValue(ev, newValue);\n };\n _this._onTouchStart = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n ev.stopPropagation();\n };\n _this._onTouchMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var lastTouch = ev.touches[ev.touches.length - 1];\n if (lastTouch.clientX !== undefined) {\n var maxValue = _this._maxValue;\n var rectSize = _this._root.current.getBoundingClientRect();\n var currentPercentage = (lastTouch.clientX - rectSize.left) / rectSize.width;\n var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n _this._updateValue(ev, newValue);\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n warnDeprecations('ColorSlider', props, {\n thumbColor: 'styles.sliderThumb',\n overlayStyle: 'overlayColor',\n isAlpha: 'type',\n maxValue: 'type',\n minValue: 'type',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (_this._type !== 'hue' && !(props.overlayColor || props.overlayStyle)) {\n warn(\"ColorSlider: 'overlayColor' is required when 'type' is \\\"alpha\\\" or \\\"transparency\\\"\");\n }\n _this.state = {\n currentValue: props.value || 0,\n };\n return _this;\n }\n Object.defineProperty(ColorSliderBase.prototype, \"value\", {\n get: function () {\n return this.state.currentValue;\n },\n enumerable: false,\n configurable: true\n });\n ColorSliderBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.value !== undefined) {\n this.setState({ currentValue: this.props.value });\n }\n };\n ColorSliderBase.prototype.componentDidMount = function () {\n if (this._root.current) {\n // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n }\n };\n ColorSliderBase.prototype.componentWillUnmount = function () {\n if (this._root.current) {\n this._root.current.removeEventListener('touchstart', this._onTouchStart);\n this._root.current.removeEventListener('touchmove', this._onTouchMove);\n }\n this._disposeListeners();\n };\n ColorSliderBase.prototype.render = function () {\n var type = this._type;\n var maxValue = this._maxValue;\n var _a = this.props, \n // eslint-disable-next-line deprecation/deprecation\n overlayStyle = _a.overlayStyle, overlayColor = _a.overlayColor, theme = _a.theme, className = _a.className, styles = _a.styles, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? type : _b;\n var currentValue = this.value;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n type: type,\n });\n var currentPercentage = (100 * currentValue) / maxValue;\n return (React.createElement(\"div\", { ref: this._root, className: classNames.root, tabIndex: 0, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, role: \"slider\", \"aria-valuenow\": currentValue, \"aria-valuetext\": String(currentValue), \"aria-valuemin\": 0, \"aria-valuemax\": maxValue, \"aria-label\": ariaLabel, \"data-is-focusable\": true },\n !!(overlayColor || overlayStyle) && (React.createElement(\"div\", { className: classNames.sliderOverlay, \n // this isn't included in getStyles because it may change frequently\n style: overlayColor\n ? {\n background: type === 'transparency'\n ? \"linear-gradient(to right, #\".concat(overlayColor, \", transparent)\")\n : \"linear-gradient(to right, transparent, #\".concat(overlayColor, \")\"),\n }\n : overlayStyle })),\n React.createElement(\"div\", { className: classNames.sliderThumb, style: { left: currentPercentage + '%' } })));\n };\n Object.defineProperty(ColorSliderBase.prototype, \"_type\", {\n get: function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, isAlpha = _a.isAlpha, _b = _a.type, type = _b === void 0 ? isAlpha ? 'alpha' : 'hue' : _b;\n return type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorSliderBase.prototype, \"_maxValue\", {\n get: function () {\n return this._type === 'hue' ? MAX_COLOR_HUE : MAX_COLOR_ALPHA;\n },\n enumerable: false,\n configurable: true\n });\n ColorSliderBase.prototype._updateValue = function (ev, newValue) {\n if (newValue === this.value) {\n return;\n }\n var onChange = this.props.onChange;\n if (onChange) {\n onChange(ev, newValue);\n }\n if (!ev.defaultPrevented) {\n this.setState({\n currentValue: newValue,\n });\n ev.preventDefault();\n }\n };\n ColorSliderBase.defaultProps = {\n value: 0,\n };\n return ColorSliderBase;\n}(React.Component));\nexport { ColorSliderBase };\n//# sourceMappingURL=ColorSlider.base.js.map","import { IsFocusVisibleClassName } from '../../../Utilities';\nimport { HighContrastSelector } from '../../../Styling';\nvar hueStyle = {\n background: \"linear-gradient(\".concat([\n 'to left',\n 'red 0',\n '#f09 10%',\n '#cd00ff 20%',\n '#3200ff 30%',\n '#06f 40%',\n '#00fffd 50%',\n '#0f6 60%',\n '#35ff00 70%',\n '#cdff00 80%',\n '#f90 90%',\n 'red 100%',\n ].join(','), \")\"),\n};\nvar alphaStyle = {\n backgroundImage: 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJUlEQVQYV2N89erVfwY0ICYmxoguxjgUFKI7GsTH5m4M3w1ChQC1/Ca8i2n1WgAAAABJRU5ErkJggg==)',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, className = props.className, _c = props.type, type = _c === void 0 ? 'hue' : _c, _d = props.isAlpha, useAlphaBackground = _d === void 0 ? type !== 'hue' : _d;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-slider',\n {\n position: 'relative',\n height: 20,\n marginBottom: 8,\n border: \"1px solid \".concat(palette.neutralLight),\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n outline: 'none',\n forcedColorAdjust: 'none',\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = (_b = {\n outline: \"1px solid \".concat(palette.neutralSecondary)\n },\n _b[\"\".concat(HighContrastSelector)] = {\n outline: '2px solid CanvasText',\n },\n _b),\n _a),\n },\n useAlphaBackground ? alphaStyle : hueStyle,\n className,\n ],\n sliderOverlay: [\n 'ms-ColorPicker-sliderOverlay',\n {\n content: '',\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n ],\n sliderThumb: [\n 'ms-ColorPicker-thumb',\n 'is-slider',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n top: '50%',\n forcedColorAdjust: 'auto',\n },\n ],\n };\n};\n//# sourceMappingURL=ColorSlider.styles.js.map","import { styled } from '../../../Utilities';\nimport { ColorSliderBase } from './ColorSlider.base';\nimport { getStyles } from './ColorSlider.styles';\nexport var ColorSlider = styled(ColorSliderBase, getStyles, undefined, { scope: 'ColorSlider' });\n//# sourceMappingURL=ColorSlider.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given alpha value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateA(color, a) {\n return __assign(__assign({}, color), { a: a, t: MAX_COLOR_ALPHA - a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateA.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given transparency value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateT(color, t) {\n var a = MAX_COLOR_ALPHA - t;\n return __assign(__assign({}, color), { t: t, a: a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateT.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, warnDeprecations, warn } from '../../Utilities';\nimport { TextField } from '../../TextField';\nimport { TooltipHost } from '../../Tooltip';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ColorRectangle } from './ColorRectangle/ColorRectangle';\nimport { ColorSlider } from './ColorSlider/ColorSlider';\nimport { MAX_COLOR_ALPHA, MAX_COLOR_RGB, MAX_HEX_LENGTH, MAX_RGBA_LENGTH, MIN_HEX_LENGTH, MIN_RGBA_LENGTH, HEX_REGEX, RGBA_REGEX, } from '../../utilities/color/consts';\n// These imports are separated to help with bundling\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { getColorFromRGBA } from '../../utilities/color/getColorFromRGBA';\nimport { clamp } from '../../utilities/color/clamp';\nimport { updateA } from '../../utilities/color/updateA';\nimport { updateT } from '../../utilities/color/updateT';\nimport { updateH } from '../../utilities/color/updateH';\nimport { correctRGB } from '../../utilities/color/correctRGB';\nimport { correctHex } from '../../utilities/color/correctHex';\nimport { ColorRectangleBase } from './ColorRectangle/ColorRectangle.base';\nvar getClassNames = classNamesFunction();\nvar allColorComponents = ['hex', 'r', 'g', 'b', 'a', 't'];\nvar errorKeys = {\n hex: 'hexError',\n r: 'redError',\n g: 'greenError',\n b: 'blueError',\n a: 'alphaError',\n t: 'transparencyError',\n};\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorPickerBase = /** @class */ (function (_super) {\n __extends(ColorPickerBase, _super);\n function ColorPickerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onSVChanged = function (ev, color) {\n _this._updateColor(ev, color);\n };\n _this._onHChanged = function (ev, h) {\n _this._updateColor(ev, updateH(_this.state.color, h));\n };\n /** Callback for when the alpha/transparency slider changes */\n _this._onATChanged = function (ev, value) {\n var updater = _this.props.alphaType === 'transparency' ? updateT : updateA;\n _this._updateColor(ev, updater(_this.state.color, Math.round(value)));\n };\n _this._onBlur = function (event) {\n var _a;\n var _b = _this.state, color = _b.color, editingColor = _b.editingColor;\n if (!editingColor) {\n return;\n }\n // If there was an intermediate incorrect value (such as too large or empty), correct it.\n var value = editingColor.value, component = editingColor.component;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n var minLength = isHex ? MIN_HEX_LENGTH : MIN_RGBA_LENGTH;\n if (value.length >= minLength && (isHex || !isNaN(Number(value)))) {\n // Real value. Clamp to appropriate length (hex) or range (rgba).\n var newColor = void 0;\n if (isHex) {\n newColor = getColorFromString('#' + correctHex(value));\n }\n else if (isAlpha || isTransparency) {\n var updater = isAlpha ? updateA : updateT;\n newColor = updater(color, clamp(Number(value), MAX_COLOR_ALPHA));\n }\n else {\n newColor = getColorFromRGBA(correctRGB(__assign(__assign({}, color), (_a = {}, _a[component] = Number(value), _a))));\n }\n // Update state and call onChange\n _this._updateColor(event, newColor);\n }\n else {\n // Intermediate value was an empty string or too short (hex only).\n // Just clear the intermediate state and revert to the previous value.\n _this.setState({ editingColor: undefined });\n }\n };\n initializeComponentRef(_this);\n var strings = props.strings; // always defined since it's in defaultProps\n warnDeprecations('ColorPicker', props, {\n hexLabel: 'strings.hex',\n redLabel: 'strings.red',\n greenLabel: 'strings.green',\n blueLabel: 'strings.blue',\n alphaLabel: 'strings.alpha',\n alphaSliderHidden: 'alphaType',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (strings.hue) {\n // warnDeprecations can't handle nested deprecated props\n warn(\"ColorPicker property 'strings.hue' was used but has been deprecated. Use 'strings.hueAriaLabel' instead.\");\n }\n _this.state = {\n color: _getColorFromProps(props) || getColorFromString('#ffffff'),\n };\n _this._textChangeHandlers = {};\n for (var _i = 0, allColorComponents_1 = allColorComponents; _i < allColorComponents_1.length; _i++) {\n var component = allColorComponents_1[_i];\n _this._textChangeHandlers[component] = _this._onTextChange.bind(_this, component);\n }\n var defaultStrings = ColorPickerBase.defaultProps.strings;\n _this._textLabels = {\n /* eslint-disable deprecation/deprecation */\n r: props.redLabel || strings.red || defaultStrings.red,\n g: props.greenLabel || strings.green || defaultStrings.green,\n b: props.blueLabel || strings.blue || defaultStrings.blue,\n a: props.alphaLabel || strings.alpha || defaultStrings.alpha,\n hex: props.hexLabel || strings.hex || defaultStrings.hex,\n t: strings.transparency || defaultStrings.transparency,\n /* eslint-enable deprecation/deprecation */\n };\n _this._strings = __assign(__assign(__assign({}, defaultStrings), { \n // these aria labels default to the visible labels\n alphaAriaLabel: _this._textLabels.a, transparencyAriaLabel: _this._textLabels.t }), strings);\n return _this;\n }\n Object.defineProperty(ColorPickerBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: false,\n configurable: true\n });\n ColorPickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), update the color\n if (prevProps !== this.props) {\n var color = _getColorFromProps(this.props);\n if (color) {\n this._updateColor(undefined, color);\n }\n }\n };\n ColorPickerBase.prototype.render = function () {\n var _this = this;\n var props = this.props;\n var strings = this._strings;\n var textLabels = this._textLabels;\n var theme = props.theme, className = props.className, styles = props.styles, alphaType = props.alphaType, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.alphaSliderHidden, \n // eslint-disable-next-line deprecation/deprecation\n alphaSliderHidden = _a === void 0 ? alphaType === 'none' : _a, tooltipProps = props.tooltipProps;\n var color = this.state.color;\n var useTransparency = alphaType === 'transparency';\n var colorComponents = ['hex', 'r', 'g', 'b', useTransparency ? 't' : 'a'];\n var atValue = useTransparency ? color.t : color.a;\n var atLabel = useTransparency ? textLabels.t : textLabels.a;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n alphaType: alphaType,\n });\n var selectedColorAriaParts = [textLabels.r, color.r, textLabels.g, color.g, textLabels.b, color.b];\n if (!alphaSliderHidden && typeof atValue === 'number') {\n selectedColorAriaParts.push(atLabel, \"\".concat(atValue, \"%\"));\n }\n var ariaLabel = strings.rootAriaLabelFormat.replace('{0}', selectedColorAriaParts.join(' '));\n return (React.createElement(\"div\", { className: classNames.root, role: \"group\", \"aria-label\": ariaLabel },\n React.createElement(\"div\", { className: classNames.panel },\n React.createElement(ColorRectangle, { color: color, onChange: this._onSVChanged, ariaLabel: strings.svAriaLabel, ariaDescription: strings.svAriaDescription, ariaValueFormat: strings.svAriaValueFormat, className: classNames.colorRectangle }),\n React.createElement(\"div\", { className: classNames.flexContainer },\n React.createElement(\"div\", { className: classNames.flexSlider },\n React.createElement(ColorSlider, { className: \"is-hue\", type: \"hue\", \n // eslint-disable-next-line deprecation/deprecation\n ariaLabel: strings.hue || strings.hueAriaLabel, value: color.h, onChange: this._onHChanged }),\n !alphaSliderHidden && (React.createElement(ColorSlider, { className: \"is-alpha\", type: alphaType, ariaLabel: useTransparency ? strings.transparencyAriaLabel : strings.alphaAriaLabel, overlayColor: color.hex, value: atValue, onChange: this._onATChanged }))),\n props.showPreview && (React.createElement(\"div\", { className: classNames.flexPreviewBox },\n React.createElement(\"div\", { className: classNames.colorSquare + ' is-preview', style: {\n backgroundColor: color.str,\n } })))),\n React.createElement(\"table\", { className: classNames.table, role: \"group\", cellPadding: \"0\", cellSpacing: \"0\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: classNames.tableHeader },\n React.createElement(\"td\", { className: classNames.tableHexCell }, textLabels.hex),\n React.createElement(\"td\", null, textLabels.r),\n React.createElement(\"td\", null, textLabels.g),\n React.createElement(\"td\", null, textLabels.b),\n !alphaSliderHidden && React.createElement(\"td\", { className: classNames.tableAlphaCell }, atLabel))),\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null, colorComponents.map(function (comp) {\n if ((comp === 'a' || comp === 't') && alphaSliderHidden) {\n return null;\n }\n var tooltipContent = _this._getTooltipValue(comp);\n return (React.createElement(\"td\", { key: comp },\n React.createElement(TooltipHost, __assign({ content: tooltipContent, directionalHint: DirectionalHint.bottomCenter, role: \"alert\" }, tooltipProps),\n React.createElement(TextField, { className: classNames.input, onChange: _this._textChangeHandlers[comp], onBlur: _this._onBlur, value: _this._getDisplayValue(comp), spellCheck: false, ariaLabel: textLabels[comp], autoComplete: \"off\", invalid: !!tooltipContent }))));\n })))))));\n };\n ColorPickerBase.prototype._getDisplayValue = function (component) {\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n if (editingColor && editingColor.component === component) {\n return editingColor.value;\n }\n if (component === 'hex') {\n return color[component] || '';\n }\n else if (typeof color[component] === 'number' && !isNaN(color[component])) {\n return String(color[component]);\n }\n return '';\n };\n /* Get the error tooltip value for a component if the component is in an invalid state */\n ColorPickerBase.prototype._getTooltipValue = function (component) {\n var editingColor = this.state.editingColor;\n // if the component does not have an interim value, it is valid\n if (!editingColor || editingColor.component !== component) {\n return undefined;\n }\n var value = editingColor.value;\n // for hex, do not show a tooltip if the value is between 3-6 characters\n if (component === 'hex' && value.length >= MIN_HEX_LENGTH && value.length <= MAX_HEX_LENGTH) {\n return undefined;\n }\n var errorKey = errorKeys[component];\n return this._strings[errorKey];\n };\n ColorPickerBase.prototype._onTextChange = function (component, event, newValue) {\n var _a;\n var color = this.state.color;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n // eslint-disable-next-line deprecation/deprecation\n newValue = (newValue || '').substr(0, isHex ? MAX_HEX_LENGTH : MAX_RGBA_LENGTH);\n // Ignore what the user typed if it contains invalid characters\n var validCharsRegex = isHex ? HEX_REGEX : RGBA_REGEX;\n if (!validCharsRegex.test(newValue)) {\n return;\n }\n // Determine if the entry is valid (different methods for hex, alpha, and RGB)\n var isValid;\n if (newValue === '') {\n // Empty string is obviously not valid\n isValid = false;\n }\n else if (isHex) {\n // Technically hex values of length 3 are also valid, but committing the value here would\n // cause it to be automatically converted to a value of length 6, which may not be what the\n // user wanted if they're not finished typing. (Values of length 3 will be committed on blur.)\n isValid = newValue.length === MAX_HEX_LENGTH;\n }\n else if (isAlpha || isTransparency) {\n isValid = Number(newValue) <= MAX_COLOR_ALPHA;\n }\n else {\n isValid = Number(newValue) <= MAX_COLOR_RGB;\n }\n if (!isValid) {\n // If the new value is an empty string or other invalid value, save that to display.\n // (if the user still hasn't entered anything on blur, the last value is restored)\n this.setState({ editingColor: { component: component, value: newValue } });\n }\n else if (String(color[component]) === newValue) {\n // If the new value is the same as the current value, mostly ignore it.\n // Exception is that if the user was previously editing the value (but hadn't yet entered\n // a new valid value), we should clear the intermediate value.\n if (this.state.editingColor) {\n this.setState({ editingColor: undefined });\n }\n }\n else {\n // Should be a valid color. Update the value.\n var newColor = isHex\n ? getColorFromString('#' + newValue)\n : isTransparency\n ? updateT(color, Number(newValue))\n : getColorFromRGBA(__assign(__assign({}, color), (_a = {}, _a[component] = Number(newValue), _a)));\n this._updateColor(event, newColor);\n }\n };\n /**\n * Update the displayed color and call change handlers if appropriate.\n * @param ev - Event if call was triggered by an event (undefined if triggered by props change)\n * @param newColor - Updated color\n */\n ColorPickerBase.prototype._updateColor = function (ev, newColor) {\n if (!newColor) {\n return;\n }\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n // For black or white, the hue can change without changing the string.\n var isDifferentColor = newColor.h !== color.h || newColor.str !== color.str;\n if (isDifferentColor || editingColor) {\n // If ev is undefined, it's an update from props (which should be unconditionally respected\n // and not call onChange).\n if (ev && this.props.onChange) {\n this.props.onChange(ev, newColor);\n if (ev.defaultPrevented) {\n return;\n }\n }\n this.setState({ color: newColor, editingColor: undefined });\n }\n };\n ColorPickerBase.defaultProps = {\n alphaType: 'alpha',\n strings: {\n rootAriaLabelFormat: 'Color picker, {0} selected.',\n hex: 'Hex',\n red: 'Red',\n green: 'Green',\n blue: 'Blue',\n alpha: 'Alpha',\n transparency: 'Transparency',\n hueAriaLabel: 'Hue',\n svAriaLabel: ColorRectangleBase.defaultProps.ariaLabel,\n svAriaValueFormat: ColorRectangleBase.defaultProps.ariaValueFormat,\n svAriaDescription: ColorRectangleBase.defaultProps.ariaDescription,\n hexError: 'Hex values must be between 3 and 6 characters long',\n alphaError: 'Alpha must be between 0 and 100',\n transparencyError: 'Transparency must be between 0 and 100',\n redError: 'Red must be between 0 and 255',\n greenError: 'Green must be between 0 and 255',\n blueError: 'Blue must be between 0 and 255',\n },\n };\n return ColorPickerBase;\n}(React.Component));\nexport { ColorPickerBase };\nfunction _getColorFromProps(props) {\n var color = props.color;\n return typeof color === 'string' ? getColorFromString(color) : color;\n}\n//# sourceMappingURL=ColorPicker.base.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same saturation and value as `color` and the other components updated\n * to match the given hue.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateH(color, h) {\n var _a = hsv2rgb(h, color.s, color.v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { h: h, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateH.js.map","import { MIN_HEX_LENGTH, MAX_HEX_LENGTH } from './consts';\n/**\n * Corrects a hex color to have length 3 or 6. Defaults to white if too short.\n * Does NOT check anything besides the length (such as valid characters) and does NOT handle\n * hex values starting with # sign.\n */\nexport function correctHex(hex) {\n if (!hex || hex.length < MIN_HEX_LENGTH) {\n return 'ffffff'; // not a valid color--default to white\n }\n if (hex.length >= MAX_HEX_LENGTH) {\n return hex.substring(0, MAX_HEX_LENGTH);\n }\n return hex.substring(0, MIN_HEX_LENGTH);\n}\n//# sourceMappingURL=correctHex.js.map","import { MAX_COLOR_ALPHA, MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Corrects an RGB color to fall within the valid range. */\nexport function correctRGB(color) {\n return {\n r: clamp(color.r, MAX_COLOR_RGB),\n g: clamp(color.g, MAX_COLOR_RGB),\n b: clamp(color.b, MAX_COLOR_RGB),\n a: typeof color.a === 'number' ? clamp(color.a, MAX_COLOR_ALPHA) : color.a,\n };\n}\n//# sourceMappingURL=correctRGB.js.map","export var getStyles = function (props) {\n var className = props.className, theme = props.theme, alphaType = props.alphaType;\n return {\n root: [\n 'ms-ColorPicker',\n theme.fonts.medium,\n {\n position: 'relative',\n maxWidth: 300,\n },\n className,\n ],\n panel: [\n 'ms-ColorPicker-panel',\n {\n padding: '16px',\n },\n ],\n table: [\n 'ms-ColorPicker-table',\n {\n tableLayout: 'fixed',\n width: '100%',\n selectors: {\n 'tbody td:last-of-type .ms-ColorPicker-input': {\n paddingRight: 0,\n },\n },\n },\n ],\n tableHeader: [\n theme.fonts.small,\n {\n selectors: {\n td: {\n paddingBottom: 4,\n },\n },\n },\n ],\n tableHexCell: {\n width: '25%',\n },\n // Account for \"Transparency\" being a longer word\n tableAlphaCell: alphaType === 'transparency' && {\n width: '22%',\n },\n colorSquare: [\n 'ms-ColorPicker-colorSquare',\n {\n width: 48,\n height: 48,\n margin: '0 0 0 8px',\n border: '1px solid #c8c6c4',\n forcedColorAdjust: 'none',\n },\n ],\n flexContainer: {\n display: 'flex',\n },\n flexSlider: {\n flexGrow: '1',\n },\n flexPreviewBox: {\n flexGrow: '0',\n },\n input: [\n 'ms-ColorPicker-input',\n {\n width: '100%',\n border: 'none',\n boxSizing: 'border-box',\n height: 30,\n selectors: {\n '&.ms-TextField': {\n paddingRight: 4,\n },\n '& .ms-TextField-field': {\n minWidth: 'auto',\n padding: 5,\n textOverflow: 'clip',\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=ColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerBase } from './ColorPicker.base';\nimport { getStyles } from './ColorPicker.styles';\nexport var ColorPicker = styled(ColorPickerBase, getStyles, undefined, { scope: 'ColorPicker' });\n//# sourceMappingURL=ColorPicker.js.map","var _a, _b;\nimport { __assign } from \"tslib\";\nimport { FontWeights, concatStyleSets, getFocusStyle, HighContrastSelector, getPlaceholderStyles, hiddenContentStyle, getInputFocusStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar ComboBoxHeight = 32;\nvar ComboBoxLineHeight = 30;\nvar ComboBoxCaretDownWidth = 32;\nvar ComboBoxOptionHeight = 36;\nvar getDisabledStyles = memoizeFunction(function (theme) {\n var _a;\n var semanticColors = theme.semanticColors;\n return {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_a = {\n ':after': {\n borderColor: semanticColors.disabledBackground,\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n selectors: {\n ':after': {\n borderColor: 'GrayText',\n },\n },\n },\n _a),\n };\n});\nvar listOptionHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n};\nvar inputHighContrastStyles = {\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _b),\n};\nexport var getOptionStyles = memoizeFunction(function (theme, customStylesForAllOptions, customOptionStylesForCurrentOption, isPending, isHidden, isSelected) {\n var _a;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var option = {\n textHoveredColor: semanticColors.menuItemTextHovered,\n textSelectedColor: palette.neutralDark,\n textDisabledColor: semanticColors.disabledText,\n backgroundHoveredColor: semanticColors.menuItemBackgroundHovered,\n backgroundPressedColor: semanticColors.menuItemBackgroundPressed,\n };\n var optionStyles = {\n root: [\n theme.fonts.medium,\n {\n backgroundColor: isPending ? option.backgroundHoveredColor : 'transparent',\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: isHidden ? 'none' : 'block',\n width: '100%',\n height: 'auto',\n minHeight: ComboBoxOptionHeight,\n lineHeight: '20px',\n padding: '0 8px',\n position: 'relative',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'transparent',\n borderRadius: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n textAlign: 'left',\n selectors: __assign(__assign((_a = {}, _a[HighContrastSelector] = {\n border: 'none',\n borderColor: 'Background',\n }, _a), (!isHidden && {\n '&.ms-Checkbox': {\n display: 'flex',\n alignItems: 'center',\n },\n })), { '&.ms-Button--command:hover:active': {\n backgroundColor: option.backgroundPressedColor,\n }, '.ms-Checkbox-label': {\n width: '100%',\n } }),\n },\n isSelected\n ? [\n {\n backgroundColor: 'transparent',\n color: option.textSelectedColor,\n selectors: {\n ':hover': [\n {\n backgroundColor: option.backgroundHoveredColor,\n },\n listOptionHighContrastStyles,\n ],\n },\n },\n getFocusStyle(theme, { inset: -1, isFocusedOnly: false }),\n listOptionHighContrastStyles,\n ]\n : [],\n ],\n rootHovered: {\n backgroundColor: option.backgroundHoveredColor,\n color: option.textHoveredColor,\n },\n rootFocused: {\n backgroundColor: option.backgroundHoveredColor,\n },\n rootDisabled: {\n color: option.textDisabledColor,\n cursor: 'default',\n },\n optionText: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n minWidth: '0px',\n maxWidth: '100%',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n display: 'inline-block',\n },\n optionTextWrapper: {\n maxWidth: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n };\n return concatStyleSets(optionStyles, customStylesForAllOptions, customOptionStylesForCurrentOption);\n});\nexport var getCaretDownButtonStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var caret = {\n buttonTextColor: semanticColors.bodySubtext,\n buttonTextHoveredCheckedColor: semanticColors.buttonTextChecked,\n buttonBackgroundHoveredColor: semanticColors.listItemBackgroundHovered,\n buttonBackgroundCheckedColor: semanticColors.listItemBackgroundChecked,\n buttonBackgroundCheckedHoveredColor: semanticColors.listItemBackgroundCheckedHovered,\n };\n var buttonHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n };\n var styles = {\n root: {\n color: caret.buttonTextColor,\n fontSize: fonts.small.fontSize,\n position: 'absolute',\n top: 0,\n height: '100%',\n lineHeight: ComboBoxLineHeight,\n width: ComboBoxCaretDownWidth,\n textAlign: 'center',\n cursor: 'default',\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ backgroundColor: 'ButtonFace', borderColor: 'ButtonText', color: 'ButtonText' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n icon: {\n fontSize: fonts.small.fontSize,\n },\n rootHovered: [\n {\n backgroundColor: caret.buttonBackgroundHoveredColor,\n color: caret.buttonTextHoveredCheckedColor,\n cursor: 'pointer',\n },\n buttonHighContrastStyles,\n ],\n rootPressed: [\n {\n backgroundColor: caret.buttonBackgroundCheckedColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootChecked: [\n {\n backgroundColor: caret.buttonBackgroundCheckedColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootCheckedHovered: [\n {\n backgroundColor: caret.buttonBackgroundCheckedHoveredColor,\n color: caret.buttonTextHoveredCheckedColor,\n },\n buttonHighContrastStyles,\n ],\n rootDisabled: [\n getDisabledStyles(theme),\n {\n position: 'absolute',\n },\n ],\n };\n return concatStyleSets(styles, customStyles);\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles, comboBoxOptionWidth) {\n var _a, _b, _c, _d, _e, _f;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n var root = {\n textColor: semanticColors.inputText,\n borderColor: semanticColors.inputBorder,\n borderHoveredColor: semanticColors.inputBorderHovered,\n borderPressedColor: semanticColors.inputFocusBorderAlt,\n borderFocusedColor: semanticColors.inputFocusBorderAlt,\n backgroundColor: semanticColors.inputBackground,\n erroredColor: semanticColors.errorText,\n };\n var option = {\n headerTextColor: semanticColors.menuHeader,\n dividerBorderColor: semanticColors.bodyDivider,\n };\n // placeholder style variables\n var placeholderHighContrastStyles = {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n };\n var placeholderStyles = [\n {\n color: semanticColors.inputPlaceholderText,\n },\n placeholderHighContrastStyles,\n ];\n var placeholderStylesHovered = [\n {\n color: semanticColors.inputTextHovered,\n },\n placeholderHighContrastStyles,\n ];\n var disabledPlaceholderStyles = [\n {\n color: semanticColors.disabledText,\n },\n placeholderHighContrastStyles,\n ];\n var ComboBoxRootHighContrastFocused = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n ':after': {\n borderColor: 'Highlight',\n },\n } });\n var focusBorderStyles = getInputFocusStyle(root.borderPressedColor, effects.roundedCorner2, 'border', 0);\n var styles = {\n container: {},\n label: {},\n labelDisabled: {},\n root: [\n theme.fonts.medium,\n {\n boxShadow: 'none',\n marginLeft: '0',\n paddingRight: ComboBoxCaretDownWidth,\n paddingLeft: 9,\n color: root.textColor,\n position: 'relative',\n outline: '0',\n userSelect: 'none',\n backgroundColor: root.backgroundColor,\n cursor: 'text',\n display: 'block',\n height: ComboBoxHeight,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n boxSizing: 'border-box',\n selectors: {\n '.ms-Label': {\n display: 'inline-block',\n marginBottom: '8px',\n },\n '&.is-open': {\n selectors: (_b = {},\n _b[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _b),\n },\n // setting border using pseudo-element here in order to\n // prevent chevron button to overlap ComboBox border under certain resolutions\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: root.borderColor,\n borderRadius: effects.roundedCorner2,\n },\n },\n },\n ],\n rootHovered: {\n selectors: (_c = {\n ':after': {\n borderColor: root.borderHoveredColor,\n },\n '.ms-ComboBox-Input': [\n {\n color: semanticColors.inputTextHovered,\n },\n getPlaceholderStyles(placeholderStylesHovered),\n inputHighContrastStyles,\n ]\n },\n _c[HighContrastSelector] = __assign(__assign({ color: 'HighlightText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()), { selectors: {\n ':after': {\n borderColor: 'Highlight',\n },\n } }),\n _c),\n },\n rootPressed: [\n {\n position: 'relative',\n selectors: (_d = {},\n _d[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _d),\n },\n ],\n rootFocused: [\n {\n selectors: (_e = {\n '.ms-ComboBox-Input': [\n {\n color: semanticColors.inputTextHovered,\n },\n inputHighContrastStyles,\n ]\n },\n _e[HighContrastSelector] = ComboBoxRootHighContrastFocused,\n _e),\n },\n focusBorderStyles,\n ],\n rootDisabled: getDisabledStyles(theme),\n rootError: {\n selectors: {\n ':after': {\n borderColor: root.erroredColor,\n },\n ':hover:after': {\n borderColor: semanticColors.inputBorderHovered,\n },\n },\n },\n rootDisallowFreeForm: {},\n input: [\n getPlaceholderStyles(placeholderStyles),\n {\n backgroundColor: root.backgroundColor,\n color: root.textColor,\n boxSizing: 'border-box',\n width: '100%',\n height: '100%',\n borderStyle: 'none',\n outline: 'none',\n font: 'inherit',\n textOverflow: 'ellipsis',\n padding: '0',\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n inputHighContrastStyles,\n ],\n inputDisabled: [getDisabledStyles(theme), getPlaceholderStyles(disabledPlaceholderStyles)],\n errorMessage: [\n theme.fonts.small,\n {\n color: root.erroredColor,\n marginTop: '5px',\n },\n ],\n callout: {\n boxShadow: effects.elevation8,\n },\n optionsContainerWrapper: {\n width: comboBoxOptionWidth,\n },\n optionsContainer: {\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n header: [\n fonts.medium,\n {\n fontWeight: FontWeights.semibold,\n color: option.headerTextColor,\n backgroundColor: 'none',\n borderStyle: 'none',\n height: ComboBoxOptionHeight,\n lineHeight: ComboBoxOptionHeight,\n cursor: 'default',\n padding: '0 8px',\n userSelect: 'none',\n textAlign: 'left',\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n ],\n divider: {\n height: 1,\n backgroundColor: option.dividerBorderColor,\n },\n };\n return concatStyleSets(styles, customStyles);\n});\n//# sourceMappingURL=ComboBox.styles.js.map","import { __assign, __decorate, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Autofill } from '../../Autofill';\nimport { initializeComponentRef, css, customizable, divProperties, findElementRecursive, findIndex, focusAsync, getId, getNativeProps, isIOS, isMac, KeyCodes, shallowCompare, mergeAriaAttributeValues, warnMutuallyExclusive, Async, EventGroup, getPropsWithDefaults, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { Checkbox } from '../../Checkbox';\nimport { getCaretDownButtonStyles, getOptionStyles, getStyles } from './ComboBox.styles';\nimport { getClassNames, getComboBoxOptionClassNames } from './ComboBox.classNames';\nimport { Label } from '../../Label';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\nimport { CommandButton, IconButton } from '../../Button';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { getChildren } from '@fluentui/utilities';\nvar SearchDirection;\n(function (SearchDirection) {\n SearchDirection[SearchDirection[\"backward\"] = -1] = \"backward\";\n SearchDirection[SearchDirection[\"none\"] = 0] = \"none\";\n SearchDirection[SearchDirection[\"forward\"] = 1] = \"forward\";\n})(SearchDirection || (SearchDirection = {}));\nvar HoverStatus;\n(function (HoverStatus) {\n /** Used when the user was hovering and has since moused out of the menu items */\n HoverStatus[HoverStatus[\"clearAll\"] = -2] = \"clearAll\";\n /** Default \"normal\" state, when no hover has happened or a hover is in progress */\n HoverStatus[HoverStatus[\"default\"] = -1] = \"default\";\n})(HoverStatus || (HoverStatus = {}));\nvar ScrollIdleDelay = 250; /* ms */\nvar TouchIdleDelay = 500; /* ms */\n/**\n * This is used to clear any pending autocomplete text (used when autocomplete is true and\n * allowFreeform is false)\n */\nvar ReadOnlyPendingAutoCompleteTimeout = 1000; /* ms */\n/**\n * Internal component that is used to wrap all ComboBox options.\n * This is used to customize when we want to re-render components,\n * so we don't re-render every option every time render is executed.\n */\nvar ComboBoxOptionWrapper = React.memo(function (_a) {\n var render = _a.render;\n return render();\n}, function (_a, _b) {\n var oldRender = _a.render, oldProps = __rest(_a, [\"render\"]);\n var newRender = _b.render, newProps = __rest(_b, [\"render\"]);\n // The render function will always be different, so we ignore that prop\n return shallowCompare(oldProps, newProps);\n});\nvar COMPONENT_NAME = 'ComboBox';\nvar DEFAULT_PROPS = {\n options: [],\n allowFreeform: false,\n autoComplete: 'on',\n buttonIconProps: { iconName: 'ChevronDown' },\n};\nfunction useOptionsState(_a) {\n var options = _a.options, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey;\n /** The currently selected indices */\n var _b = React.useState(function () {\n return getSelectedIndices(options, buildDefaultSelectedKeys(defaultSelectedKey, selectedKey));\n }), selectedIndices = _b[0], setSelectedIndices = _b[1];\n /** The options currently available for the callout */\n var _c = React.useState(options), currentOptions = _c[0], setCurrentOptions = _c[1];\n /** This value is used for the autocomplete hint value */\n var _d = React.useState(), suggestedDisplayValue = _d[0], setSuggestedDisplayValue = _d[1];\n React.useEffect(function () {\n if (selectedKey !== undefined) {\n var selectedKeys = buildSelectedKeys(selectedKey);\n var indices = getSelectedIndices(options, selectedKeys);\n setSelectedIndices(indices);\n }\n setCurrentOptions(options);\n }, [options, selectedKey]);\n React.useEffect(function () {\n if (selectedKey === null) {\n setSuggestedDisplayValue(undefined);\n }\n }, [selectedKey]);\n return [\n selectedIndices,\n setSelectedIndices,\n currentOptions,\n setCurrentOptions,\n suggestedDisplayValue,\n setSuggestedDisplayValue,\n ];\n}\nexport var ComboBox = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _a.ref, props = __rest(_a, [\"ref\"]);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(rootRef, forwardedRef);\n var _b = useOptionsState(props), selectedIndices = _b[0], setSelectedIndices = _b[1], currentOptions = _b[2], setCurrentOptions = _b[3], suggestedDisplayValue = _b[4], setSuggestedDisplayValue = _b[5];\n return (React.createElement(ComboBoxInternal, __assign({}, props, { hoisted: {\n mergedRootRef: mergedRootRef,\n rootRef: rootRef,\n selectedIndices: selectedIndices,\n setSelectedIndices: setSelectedIndices,\n currentOptions: currentOptions,\n setCurrentOptions: setCurrentOptions,\n suggestedDisplayValue: suggestedDisplayValue,\n setSuggestedDisplayValue: setSuggestedDisplayValue,\n } })));\n});\nComboBox.displayName = COMPONENT_NAME;\n/**\n * Depth-first search to find the first descendant element where the match function returns true.\n * @param element - element to start searching at\n * @param match - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nfunction findFirstDescendant(element, match) {\n var children = getChildren(element);\n // For loop is used because forEach cannot be stopped.\n for (var index = 0; index < children.length; index++) {\n var child = children[index];\n if (match(child)) {\n return child;\n }\n var candidate = findFirstDescendant(child, match);\n if (candidate) {\n return candidate;\n }\n }\n return null;\n}\nvar ComboBoxInternal = /** @class */ (function (_super) {\n __extends(ComboBoxInternal, _super);\n function ComboBoxInternal(props) {\n var _this = _super.call(this, props) || this;\n /** The input aspect of the combo box */\n _this._autofill = React.createRef();\n /** The wrapping div of the input and button */\n _this._comboBoxWrapper = React.createRef();\n /** The callout element */\n _this._comboBoxMenu = React.createRef();\n /** The menu item element that is currently selected */\n _this._selectedElement = React.createRef();\n // props to prevent dismiss on scroll/resize immediately after opening\n _this._overrideScrollDismiss = false;\n /**\n * {@inheritdoc}\n */\n _this.focus = function (shouldOpenOnFocus, useFocusAsync) {\n if (_this.props.disabled) {\n return;\n }\n if (_this._autofill.current) {\n if (useFocusAsync) {\n focusAsync(_this._autofill.current);\n }\n else {\n _this._autofill.current.focus();\n }\n if (shouldOpenOnFocus) {\n _this.setState({\n isOpen: true,\n });\n }\n }\n // Programmatically setting focus means that there is nothing else that needs to be done\n // Focus is now contained\n if (!_this._hasFocus()) {\n _this.setState({ focusState: 'focused' });\n }\n };\n /**\n * Close menu callout if it is open\n */\n _this.dismissMenu = function () {\n var isOpen = _this.state.isOpen;\n isOpen && _this.setState({ isOpen: false });\n };\n /**\n * componentWillReceiveProps handler for the auto fill component\n * Checks/updates the input value to set, if needed\n * @param defaultVisibleValue - the defaultVisibleValue that got passed\n * in to the auto fill's componentWillReceiveProps\n * @returns - the updated value to set, if needed\n */\n _this._onUpdateValueInAutofillWillReceiveProps = function () {\n var comboBox = _this._autofill.current;\n if (!comboBox) {\n return null;\n }\n if (comboBox.value === null || comboBox.value === undefined) {\n return null;\n }\n return normalizeToString(_this._currentVisibleValue);\n };\n _this._renderComboBoxWrapper = function (multiselectAccessibleText, errorMessageId) {\n var _a = _this.props, label = _a.label, disabled = _a.disabled, ariaLabel = _a.ariaLabel, _b = _a.ariaDescribedBy, ariaDescribedBy = _b === void 0 ? _this.props['aria-describedby'] : _b, required = _a.required, errorMessage = _a.errorMessage, buttonIconProps = _a.buttonIconProps, isButtonAriaHidden = _a.isButtonAriaHidden, title = _a.title, placeholderProp = _a.placeholder, tabIndex = _a.tabIndex, autofill = _a.autofill, iconButtonProps = _a.iconButtonProps, suggestedDisplayValue = _a.hoisted.suggestedDisplayValue;\n var _c = _this.state, ariaActiveDescendantValue = _c.ariaActiveDescendantValue, isOpen = _c.isOpen;\n // If the combo box has focus, is multiselect, and has a display string, then use that placeholder\n // so that the selected items don't appear to vanish. This is not ideal but it's the only reasonable way\n // to correct the behavior where the input is cleared so the user can type. If a full refactor is done, then this\n // should be removed and the multiselect combo box should behave like a picker.\n var placeholder = _this._hasFocus() && _this.props.multiSelect && multiselectAccessibleText\n ? multiselectAccessibleText\n : placeholderProp;\n var labelledBy = [_this.props['aria-labelledby'], label && _this._id + '-label'].join(' ').trim();\n var labelProps = {\n 'aria-labelledby': labelledBy ? labelledBy : undefined,\n 'aria-label': ariaLabel && !label ? ariaLabel : undefined,\n };\n return (React.createElement(\"div\", { \"data-ktp-target\": true, ref: _this._comboBoxWrapper, id: _this._id + 'wrapper', className: _this._classNames.root, \"aria-owns\": isOpen ? _this._id + '-list' : undefined },\n React.createElement(Autofill, __assign({ \"data-ktp-execute-target\": true, \"data-is-interactable\": !disabled, componentRef: _this._autofill, id: _this._id + '-input', className: _this._classNames.input, type: \"text\", onFocus: _this._onFocus, onBlur: _this._onBlur, onKeyDown: _this._onInputKeyDown, onKeyUp: _this._onInputKeyUp, onClick: _this._onAutofillClick, onTouchStart: _this._onTouchStart, onInputValueChange: _this._onInputChange, \"aria-expanded\": isOpen, \"aria-autocomplete\": _this._getAriaAutoCompleteValue(), role: \"combobox\", readOnly: disabled }, labelProps, { \"aria-describedby\": errorMessage !== undefined ? mergeAriaAttributeValues(ariaDescribedBy, errorMessageId) : ariaDescribedBy, \"aria-activedescendant\": ariaActiveDescendantValue, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? _this._id + '-list' : undefined, spellCheck: false, defaultVisibleValue: _this._currentVisibleValue, suggestedDisplayValue: suggestedDisplayValue, updateValueInWillReceiveProps: _this._onUpdateValueInAutofillWillReceiveProps, shouldSelectFullInputValueInComponentDidUpdate: _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate, title: title, preventValueSelection: !_this._hasFocus(), placeholder: placeholder, tabIndex: disabled ? -1 : tabIndex }, autofill)),\n React.createElement(IconButton, __assign({ className: 'ms-ComboBox-CaretDown-button', styles: _this._getCaretButtonStyles(), role: isButtonAriaHidden ? 'presentation' : undefined, \"aria-hidden\": isButtonAriaHidden }, (!isButtonAriaHidden ? labelProps : undefined), { \"data-is-focusable\": false, tabIndex: -1, onClick: _this._onComboBoxClick, onBlur: _this._onBlur, iconProps: buttonIconProps, disabled: disabled, checked: isOpen }, iconButtonProps))));\n };\n /**\n * componentDidUpdate handler for the auto fill component\n *\n * @param defaultVisibleValue - the current defaultVisibleValue in the auto fill's componentDidUpdate\n * @param suggestedDisplayValue - the current suggestedDisplayValue in the auto fill's componentDidUpdate\n * @returns - should the full value of the input be selected?\n * True if the defaultVisibleValue equals the suggestedDisplayValue, false otherwise\n */\n _this._onShouldSelectFullInputValueInAutofillComponentDidUpdate = function () {\n return _this._currentVisibleValue === _this.props.hoisted.suggestedDisplayValue;\n };\n /**\n * Get the correct value to pass to the input\n * to show to the user based off of the current props and state\n * @returns the value to pass to the input\n */\n _this._getVisibleValue = function () {\n var _a = _this.props, text = _a.text, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete, _b = _a.hoisted, suggestedDisplayValue = _b.suggestedDisplayValue, selectedIndices = _b.selectedIndices, currentOptions = _b.currentOptions;\n var _c = _this.state, currentPendingValueValidIndex = _c.currentPendingValueValidIndex, currentPendingValue = _c.currentPendingValue, isOpen = _c.isOpen;\n var currentPendingIndexValid = indexWithinBounds(currentOptions, currentPendingValueValidIndex);\n // If the user passed is a value prop, use that\n // unless we are open and have a valid current pending index\n if (!(isOpen && currentPendingIndexValid) &&\n (text || text === '') &&\n (currentPendingValue === null || currentPendingValue === undefined)) {\n return text;\n }\n if (_this.props.multiSelect) {\n // Multi-select\n if (_this._hasFocus()) {\n var index = -1;\n if (autoComplete === 'on' && currentPendingIndexValid) {\n index = currentPendingValueValidIndex;\n }\n return _this._getPendingString(currentPendingValue, currentOptions, index);\n }\n else {\n return _this._getMultiselectDisplayString(selectedIndices, currentOptions, suggestedDisplayValue);\n }\n }\n else {\n // Single-select\n var index = _this._getFirstSelectedIndex();\n if (allowFreeform || allowFreeInput) {\n // If we are allowing freeform/free input and autocomplete is also true\n // and we've got a pending value that matches an option, remember\n // the matched option's index\n if (autoComplete === 'on' && currentPendingIndexValid) {\n index = currentPendingValueValidIndex;\n }\n // Since we are allowing freeform, if there is currently a pending value, use that\n // otherwise use the index determined above (falling back to '' if we did not get a valid index)\n return _this._getPendingString(currentPendingValue, currentOptions, index);\n }\n else {\n // If we are not allowing freeform and have a valid index that matches the pending value,\n // we know we will need some version of the pending value\n if (currentPendingIndexValid && autoComplete === 'on') {\n // If autoComplete is on, return the raw pending value, otherwise remember\n // the matched option's index\n index = currentPendingValueValidIndex;\n return normalizeToString(currentPendingValue);\n }\n else if (!_this.state.isOpen && currentPendingValue) {\n return indexWithinBounds(currentOptions, index)\n ? currentPendingValue\n : normalizeToString(suggestedDisplayValue);\n }\n else {\n return indexWithinBounds(currentOptions, index)\n ? getPreviewText(currentOptions[index])\n : normalizeToString(suggestedDisplayValue);\n }\n }\n }\n };\n /**\n * Handler for typing changes on the input\n * @param updatedValue - the newly changed value\n */\n _this._onInputChange = function (updatedValue) {\n if (_this.props.disabled) {\n _this._handleInputWhenDisabled(null /* event */);\n return;\n }\n if (_this.props.onInputValueChange) {\n _this.props.onInputValueChange(updatedValue);\n }\n _this.props.allowFreeform || _this.props.allowFreeInput\n ? _this._processInputChangeWithFreeform(updatedValue)\n : _this._processInputChangeWithoutFreeform(updatedValue);\n };\n /**\n * Focus (and select) the content of the input\n * and set the focused state\n */\n _this._onFocus = function () {\n var _a, _b;\n (_b = (_a = _this._autofill.current) === null || _a === void 0 ? void 0 : _a.inputElement) === null || _b === void 0 ? void 0 : _b.select();\n if (!_this._hasFocus()) {\n _this.setState({ focusState: 'focusing' });\n }\n };\n /**\n * Callback issued when the options should be resolved, if they have been updated or\n * if they need to be passed in the first time. This only does work if an onResolveOptions\n * callback was passed in\n */\n _this._onResolveOptions = function () {\n if (_this.props.onResolveOptions) {\n // get the options\n var newOptions_1 = _this.props.onResolveOptions(__spreadArray([], _this.props.hoisted.currentOptions, true));\n // Check to see if the returned value is an array, if it is update the state\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(newOptions_1)) {\n _this.props.hoisted.setCurrentOptions(newOptions_1);\n }\n else if (newOptions_1 && newOptions_1.then) {\n // Ensure that the promise will only use the callback if it was the most recent one\n // and update the state when the promise returns\n _this._currentPromise = newOptions_1;\n newOptions_1.then(function (newOptionsFromPromise) {\n if (newOptions_1 === _this._currentPromise) {\n _this.props.hoisted.setCurrentOptions(newOptionsFromPromise);\n }\n });\n }\n }\n };\n /**\n * OnBlur handler. Set the focused state to false\n * and submit any pending value\n */\n // eslint-disable-next-line deprecation/deprecation\n _this._onBlur = function (event) {\n var _a, _b;\n // Do nothing if the blur is coming from something\n // inside the comboBox root or the comboBox menu since\n // it we are not really blurring from the whole comboBox\n var relatedTarget = event.relatedTarget;\n if (event.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = document.activeElement;\n }\n if (relatedTarget) {\n var isBlurFromComboBoxTitle = (_a = _this.props.hoisted.rootRef.current) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget);\n var isBlurFromComboBoxMenu = (_b = _this._comboBoxMenu.current) === null || _b === void 0 ? void 0 : _b.contains(relatedTarget);\n var isBlurFromComboBoxMenuAncestor = _this._comboBoxMenu.current &&\n findElementRecursive(_this._comboBoxMenu.current, function (element) { return element === relatedTarget; });\n if (isBlurFromComboBoxTitle || isBlurFromComboBoxMenu || isBlurFromComboBoxMenuAncestor) {\n if (isBlurFromComboBoxMenuAncestor &&\n _this._hasFocus() &&\n (!_this.props.multiSelect || _this.props.allowFreeform)) {\n _this._submitPendingValue(event);\n }\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n if (_this._hasFocus()) {\n _this.setState({ focusState: 'none' });\n if (!_this.props.multiSelect || _this.props.allowFreeform) {\n _this._submitPendingValue(event);\n }\n }\n };\n // Render Callout container and pass in list\n _this._onRenderContainer = function (props, defaultRender) {\n var onRenderList = props.onRenderList, calloutProps = props.calloutProps, dropdownWidth = props.dropdownWidth, dropdownMaxWidth = props.dropdownMaxWidth, _a = props.onRenderUpperContent, onRenderUpperContent = _a === void 0 ? _this._onRenderUpperContent : _a, _b = props.onRenderLowerContent, onRenderLowerContent = _b === void 0 ? _this._onRenderLowerContent : _b, useComboBoxAsMenuWidth = props.useComboBoxAsMenuWidth, persistMenu = props.persistMenu, _c = props.shouldRestoreFocus, shouldRestoreFocus = _c === void 0 ? true : _c;\n var isOpen = _this.state.isOpen;\n var id = _this._id;\n var comboBoxMenuWidth = useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n ? _this._comboBoxWrapper.current.clientWidth + 2\n : undefined;\n return (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintFixed: false }, calloutProps, { onLayerMounted: _this._onLayerMounted, className: css(_this._classNames.callout, calloutProps === null || calloutProps === void 0 ? void 0 : calloutProps.className), target: _this._comboBoxWrapper.current, onDismiss: _this._onDismiss, onMouseDown: _this._onCalloutMouseDown, onScroll: _this._onScroll, setInitialFocus: false, calloutWidth: useComboBoxAsMenuWidth && _this._comboBoxWrapper.current\n ? comboBoxMenuWidth && comboBoxMenuWidth\n : dropdownWidth, calloutMaxWidth: dropdownMaxWidth ? dropdownMaxWidth : comboBoxMenuWidth, hidden: persistMenu ? !isOpen : undefined, shouldRestoreFocus: shouldRestoreFocus, \n // eslint-disable-next-line react/jsx-no-bind\n preventDismissOnEvent: function (ev) { return _this._preventDismissOnScrollOrResize(ev); } }),\n onRenderUpperContent(_this.props, _this._onRenderUpperContent),\n React.createElement(\"div\", { className: _this._classNames.optionsContainerWrapper, ref: _this._comboBoxMenu }, onRenderList === null || onRenderList === void 0 ? void 0 : onRenderList(__assign(__assign({}, props), { id: id }), _this._onRenderList)),\n onRenderLowerContent(_this.props, _this._onRenderLowerContent)));\n };\n _this._onLayerMounted = function () {\n _this._onCalloutLayerMounted();\n // need to call this again here to get the correct scroll parent dimensions\n // when the callout is first opened\n _this._async.setTimeout(function () {\n _this._scrollIntoView();\n }, 0);\n if (_this.props.calloutProps && _this.props.calloutProps.onLayerMounted) {\n _this.props.calloutProps.onLayerMounted();\n }\n };\n _this._onRenderLabel = function (onRenderLabelProps) {\n var _a = onRenderLabelProps.props, label = _a.label, disabled = _a.disabled, required = _a.required;\n if (label) {\n return (React.createElement(Label, { id: _this._id + '-label', disabled: disabled, required: required, className: _this._classNames.label },\n label,\n onRenderLabelProps.multiselectAccessibleText && (React.createElement(\"span\", { className: _this._classNames.screenReaderText }, onRenderLabelProps.multiselectAccessibleText))));\n }\n return null;\n };\n // Render List of items\n _this._onRenderList = function (props) {\n var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n var queue = { items: [] };\n var renderedList = [];\n var emptyQueue = function () {\n var newGroup = queue.id\n ? [\n React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n ]\n : queue.items;\n renderedList = __spreadArray(__spreadArray([], renderedList, true), newGroup, true);\n // Flush items and id\n queue = { items: [] };\n };\n var placeRenderedOptionIntoQueue = function (item, index) {\n /*\n Case Header\n empty queue if it's not already empty\n ensure unique ID for header and set queue ID\n push header into queue\n Case Divider\n push divider into queue if not first item\n empty queue if not already empty\n Default\n push item into queue\n */\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Header:\n queue.items.length > 0 && emptyQueue();\n var id_1 = _this._id + item.key;\n queue.items.push(onRenderItem(__assign(__assign({ id: id_1 }, item), { index: index }), _this._onRenderItem));\n queue.id = id_1;\n break;\n case SelectableOptionMenuItemType.Divider:\n index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n queue.items.length > 0 && emptyQueue();\n break;\n default:\n queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n }\n };\n // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n props.options.forEach(function (item, index) {\n placeRenderedOptionIntoQueue(item, index);\n });\n // Push remaining items into all renderedList\n queue.items.length > 0 && emptyQueue();\n var id = _this._id;\n return (React.createElement(\"div\", { id: id + '-list', className: _this._classNames.optionsContainer, \"aria-labelledby\": label && id + '-label', \"aria-label\": ariaLabel && !label ? ariaLabel : undefined, \"aria-multiselectable\": multiSelect ? 'true' : undefined, role: \"listbox\" }, renderedList));\n };\n // Render items\n _this._onRenderItem = function (item) {\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Divider:\n return _this._renderSeparator(item);\n case SelectableOptionMenuItemType.Header:\n return _this._renderHeader(item);\n default:\n return _this._renderOption(item);\n }\n };\n // Default _onRenderLowerContent function returns nothing\n _this._onRenderLowerContent = function () {\n return null;\n };\n // Default _onRenderUpperContent function returns nothing\n _this._onRenderUpperContent = function () {\n return null;\n };\n _this._renderOption = function (item) {\n var _a;\n var _b = _this.props.onRenderOption, onRenderOption = _b === void 0 ? _this._onRenderOptionContent : _b;\n var id = (_a = item.id) !== null && _a !== void 0 ? _a : _this._id + '-list' + item.index;\n var isSelected = _this._isOptionSelected(item.index);\n var isChecked = _this._isOptionChecked(item.index);\n var isIndeterminate = _this._isOptionIndeterminate(item.index);\n var optionStyles = _this._getCurrentOptionStyles(item);\n var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n var title = item.title;\n var getOptionComponent = function () {\n return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id, key: item.key, \"data-index\": item.index, styles: optionStyles, checked: isSelected, className: 'ms-ComboBox-option', onClick: _this._onItemClick(item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseEnter: _this._onOptionMouseEnter.bind(_this, item.index), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseMove: _this._onOptionMouseMove.bind(_this, item.index), onMouseLeave: _this._onOptionMouseLeave, role: \"option\", \"aria-selected\": isSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, disabled: item.disabled, title: title }, React.createElement(\"span\", { className: optionClassNames.optionTextWrapper, ref: isSelected ? _this._selectedElement : undefined }, onRenderOption(item, _this._onRenderOptionContent)))) : (React.createElement(Checkbox, { id: id, ariaLabel: item.ariaLabel, ariaLabelledBy: item.ariaLabel ? undefined : id + '-label', key: item.key, styles: optionStyles, className: 'ms-ComboBox-option', onChange: _this._onItemClick(item), label: item.text, checked: isChecked, indeterminate: isIndeterminate, title: title, disabled: item.disabled, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderLabel: _this._renderCheckboxLabel.bind(_this, __assign(__assign({}, item), { id: id + '-label' })), inputProps: __assign({ \n // aria-selected should only be applied to checked items, not hovered items\n 'aria-selected': isChecked ? 'true' : 'false', role: 'option' }, {\n 'data-index': item.index,\n 'data-is-focusable': true,\n }) }));\n };\n return (React.createElement(ComboBoxOptionWrapper, { key: item.key, index: item.index, disabled: item.disabled, isSelected: isSelected, isChecked: isChecked, isIndeterminate: isIndeterminate, text: item.text, \n // eslint-disable-next-line react/jsx-no-bind\n render: getOptionComponent, data: item.data }));\n };\n /**\n * Mouse clicks to headers, dividers and scrollbar should not make input lose focus\n */\n _this._onCalloutMouseDown = function (ev) {\n ev.preventDefault();\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n var _a;\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n _this._async.clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n if ((_a = _this.props.calloutProps) === null || _a === void 0 ? void 0 : _a.onScroll) {\n _this.props.calloutProps.onScroll();\n }\n _this._scrollIdleTimeoutId = _this._async.setTimeout(function () {\n _this._isScrollIdle = true;\n }, ScrollIdleDelay);\n };\n _this._onRenderOptionContent = function (item) {\n var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n return React.createElement(\"span\", { className: optionClassNames.optionText }, item.text);\n };\n /*\n * Render content of a multiselect item label.\n * Text within the label is aria-hidden, to prevent duplicate input/label exposure\n */\n _this._onRenderMultiselectOptionContent = function (item) {\n var optionClassNames = getComboBoxOptionClassNames(_this._getCurrentOptionStyles(item));\n return (React.createElement(\"span\", { id: item.id, \"aria-hidden\": \"true\", className: optionClassNames.optionText }, item.text));\n };\n /**\n * Handles dismissing (cancelling) the menu\n */\n _this._onDismiss = function () {\n var onMenuDismiss = _this.props.onMenuDismiss;\n if (onMenuDismiss) {\n onMenuDismiss();\n }\n // In persistMode we need to simulate callout layer mount\n // since that only happens once. We do it on dismiss since\n // it works either way.\n if (_this.props.persistMenu) {\n _this._onCalloutLayerMounted();\n }\n // close the menu\n _this._setOpenStateAndFocusOnClose(false /* isOpen */, false /* focusInputAfterClose */);\n // reset the selected index\n // to the last value state\n _this._resetSelectedIndex();\n };\n _this._onAfterClearPendingInfo = function () {\n _this._processingClearPendingInfo = false;\n };\n /**\n * Handle keydown on the input\n * @param ev - The keyboard event that was fired\n */\n _this._onInputKeyDown = function (ev) {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete, currentOptions = _a.hoisted.currentOptions;\n var _b = _this.state, isOpen = _b.isOpen, currentPendingValueValidIndexOnHover = _b.currentPendingValueValidIndexOnHover;\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _onInputKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = isAltOrMeta(ev);\n if (disabled) {\n _this._handleInputWhenDisabled(ev);\n return;\n }\n var index = _this._getPendingSelectedIndex(false /* includeCurrentPendingValue */);\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n if (_this._autofill.current && _this._autofill.current.inputElement) {\n _this._autofill.current.inputElement.select();\n }\n _this._submitPendingValue(ev);\n if (_this.props.multiSelect && isOpen) {\n _this.setState({\n currentPendingValueValidIndex: index,\n });\n }\n else {\n // On enter submit the pending value\n if (isOpen ||\n ((!allowFreeform ||\n _this.state.currentPendingValue === undefined ||\n _this.state.currentPendingValue === null ||\n _this.state.currentPendingValue.length <= 0) &&\n _this.state.currentPendingValueValidIndex < 0)) {\n // if we are open or\n // if we are not allowing freeform or\n // our we have no pending value\n // and no valid pending index\n // flip the open state\n _this.setState({\n isOpen: !isOpen,\n });\n }\n }\n break;\n case KeyCodes.tab:\n // On enter submit the pending value\n if (!_this.props.multiSelect) {\n _this._submitPendingValue(ev);\n }\n // If we are not allowing freeform\n // or the combo box is open, flip the open state\n if (isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n }\n // Allow TAB to propagate\n return;\n case KeyCodes.escape:\n // reset the selected index\n _this._resetSelectedIndex();\n // Close the menu if opened\n if (isOpen) {\n _this.setState({\n isOpen: false,\n });\n }\n else {\n return;\n }\n break;\n case KeyCodes.up:\n // if we are in clearAll state (e.g. the user as hovering\n // and has since mousedOut of the menu items),\n // go to the last index\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n index = _this.props.hoisted.currentOptions.length;\n }\n if (ev.altKey || ev.metaKey) {\n // Close the menu if it is open and break so\n // that the event get stopPropagation and prevent default.\n // Otherwise, we need to let the event continue to propagate\n if (isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n break;\n }\n return;\n }\n // do not scroll page\n ev.preventDefault();\n // Go to the previous option\n _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.backward);\n break;\n case KeyCodes.down:\n // Expand the combo box on ALT + DownArrow\n if (ev.altKey || ev.metaKey) {\n _this._setOpenStateAndFocusOnClose(true /* isOpen */, true /* focusInputAfterClose */);\n }\n else {\n // if we are in clearAll state (e.g. the user as hovering\n // and has since mousedOut of the menu items),\n // go to the first index\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n index = -1;\n }\n // do not scroll page\n ev.preventDefault();\n // Got to the next option\n _this._setPendingInfoFromIndexAndDirection(index, SearchDirection.forward);\n }\n break;\n case KeyCodes.home:\n case KeyCodes.end:\n if (allowFreeform || allowFreeInput) {\n return;\n }\n // Set the initial values to respond to HOME\n // which goes to the first selectable option\n index = -1;\n var directionToSearch = SearchDirection.forward;\n // If end, update the values to respond to END\n // which goes to the last selectable option\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.end) {\n index = currentOptions.length;\n directionToSearch = SearchDirection.backward;\n }\n _this._setPendingInfoFromIndexAndDirection(index, directionToSearch);\n break;\n /* eslint-disable no-fallthrough */\n case KeyCodes.space:\n // event handled in _onComboBoxKeyUp\n if (!allowFreeform && !allowFreeInput && autoComplete === 'off') {\n break;\n }\n default:\n /* eslint-enable no-fallthrough */\n // are we processing a function key? if so bail out\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which >= 112 /* F1 */ && ev.which <= 123 /* F12 */) {\n return;\n }\n // If we get here and we got either and ALT key\n // or meta key, let the event propagate\n // eslint-disable-next-line deprecation/deprecation\n if (ev.keyCode === KeyCodes.alt || ev.key === 'Meta' /* && isOpen */) {\n return;\n }\n // If we are not allowing freeform or free input and\n // allowing autoComplete, handle the input here\n if (!allowFreeform && !allowFreeInput && autoComplete === 'on') {\n _this._onInputChange(ev.key);\n break;\n }\n // allow the key to propagate by default\n return;\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n /**\n * Handle keyup on the input\n * @param ev - the keyboard event that was fired\n */\n _this._onInputKeyUp = function (ev) {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform, allowFreeInput = _a.allowFreeInput, autoComplete = _a.autoComplete;\n var isOpen = _this.state.isOpen;\n // We close the menu on key up only if ALL of the following are true:\n // - Most recent key down was alt or meta (command)\n // - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n // expand/collapse the menu)\n // - We're not on a Mac (or iOS)\n // This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n // closing any open context menus. There is not a similar behavior on Macs.\n var keyPressIsAltOrMetaAlone = _this._lastKeyDownWasAltOrMeta && isAltOrMeta(ev);\n _this._lastKeyDownWasAltOrMeta = false;\n var shouldHandleKey = keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n if (disabled) {\n _this._handleInputWhenDisabled(ev);\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n // If we are not allowing freeform or free input, and autoComplete is off\n // make space expand/collapse the combo box\n // and allow the event to propagate\n if (!allowFreeform && !allowFreeInput && autoComplete === 'off') {\n _this._setOpenStateAndFocusOnClose(!isOpen, !!isOpen);\n }\n return;\n default:\n if (shouldHandleKey && isOpen) {\n _this._setOpenStateAndFocusOnClose(!isOpen, true /* focusInputAfterClose */);\n }\n else {\n if (_this.state.focusState === 'focusing' && _this.props.openOnKeyboardFocus) {\n _this.setState({ isOpen: true });\n }\n if (_this.state.focusState !== 'focused') {\n _this.setState({ focusState: 'focused' });\n }\n }\n return;\n }\n };\n _this._onOptionMouseLeave = function () {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n // Ignore the event in persistMenu mode if the callout has\n // closed. This is to avoid clearing the visuals on item click.\n if (_this.props.persistMenu && !_this.state.isOpen) {\n return;\n }\n _this.setState({\n currentPendingValueValidIndexOnHover: HoverStatus.clearAll,\n });\n };\n /**\n * Click handler for the button of the combo box and the input when not allowing freeform.\n * This toggles the expand/collapse state of the combo box (if enabled).\n */\n _this._onComboBoxClick = function () {\n var disabled = _this.props.disabled;\n var isOpen = _this.state.isOpen;\n if (!disabled) {\n _this._setOpenStateAndFocusOnClose(!isOpen, false /* focusInputAfterClose */);\n _this.setState({ focusState: 'focused' });\n }\n };\n /**\n * Click handler for the autofill.\n */\n _this._onAutofillClick = function () {\n var _a = _this.props, disabled = _a.disabled, allowFreeform = _a.allowFreeform;\n if (allowFreeform && !disabled) {\n _this.focus(_this.state.isOpen || _this._processingTouch);\n }\n else {\n _this._onComboBoxClick();\n }\n };\n _this._onTouchStart = function () {\n if (_this._comboBoxWrapper.current && !('onpointerdown' in _this._comboBoxWrapper)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n defaultSelectedKey: 'selectedKey',\n text: 'defaultSelectedKey',\n selectedKey: 'value',\n dropdownWidth: 'useComboBoxAsMenuWidth',\n ariaLabel: 'label',\n });\n _this._id = props.id || getId('ComboBox');\n _this._isScrollIdle = true;\n _this._processingTouch = false;\n _this._gotMouseMove = false;\n _this._processingClearPendingInfo = false;\n _this.state = {\n isOpen: false,\n focusState: 'none',\n currentPendingValueValidIndex: -1,\n currentPendingValue: undefined,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n };\n return _this;\n }\n Object.defineProperty(ComboBoxInternal.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n var _a = this.props.hoisted, currentOptions = _a.currentOptions, selectedIndices = _a.selectedIndices;\n return getAllSelectedOptions(currentOptions, selectedIndices);\n },\n enumerable: false,\n configurable: true\n });\n ComboBoxInternal.prototype.componentDidMount = function () {\n if (this._comboBoxWrapper.current && !this.props.disabled) {\n // hook up resolving the options if needed on focus\n this._events.on(this._comboBoxWrapper.current, 'focus', this._onResolveOptions, true);\n if ('onpointerdown' in this._comboBoxWrapper.current) {\n // For ComboBoxes, touching anywhere in the combo box should drop the dropdown, including the input element.\n // This gives more hit target space for touch environments. We're setting the onpointerdown here, because React\n // does not support Pointer events yet.\n this._events.on(this._comboBoxWrapper.current, 'pointerdown', this._onPointerDown, true);\n }\n }\n };\n ComboBoxInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _this = this;\n var _a, _b, _c;\n var _d = this.props, allowFreeform = _d.allowFreeform, allowFreeInput = _d.allowFreeInput, text = _d.text, onMenuOpen = _d.onMenuOpen, onMenuDismissed = _d.onMenuDismissed, _e = _d.hoisted, currentOptions = _e.currentOptions, selectedIndices = _e.selectedIndices;\n var _f = this.state, currentPendingValue = _f.currentPendingValue, currentPendingValueValidIndex = _f.currentPendingValueValidIndex, isOpen = _f.isOpen;\n // If we are newly open or are open and the pending valid index changed,\n // make sure the currently selected/pending option is scrolled into view\n if (isOpen && (!prevState.isOpen || prevState.currentPendingValueValidIndex !== currentPendingValueValidIndex)) {\n // Need this timeout so that the selectedElement ref is correctly updated\n this._async.setTimeout(function () { return _this._scrollIntoView(); }, 0);\n }\n // if an action is taken that put focus in the ComboBox\n // and If we are open or we are just closed, shouldFocusAfterClose is set,\n // but we are not the activeElement set focus on the input\n if (this._hasFocus() &&\n (isOpen ||\n (prevState.isOpen &&\n !isOpen &&\n this._focusInputAfterClose &&\n this._autofill.current &&\n document.activeElement !== this._autofill.current.inputElement))) {\n this.focus(undefined /*shouldOpenOnFocus*/, true /*useFocusAsync*/);\n }\n // If we should focusAfterClose AND\n // just opened/closed the menu OR\n // are focused AND\n // updated the selectedIndex with the menu closed OR\n // are not allowing freeform or free input OR\n // the value changed\n // we need to set selection\n if (this._focusInputAfterClose &&\n ((prevState.isOpen && !isOpen) ||\n (this._hasFocus() &&\n ((!isOpen &&\n !this.props.multiSelect &&\n prevProps.hoisted.selectedIndices &&\n selectedIndices &&\n prevProps.hoisted.selectedIndices[0] !== selectedIndices[0]) ||\n (!allowFreeform && !allowFreeInput) ||\n text !== prevProps.text)))) {\n this._onFocus();\n }\n this._notifyPendingValueChanged(prevState);\n if (isOpen && !prevState.isOpen) {\n // handle dismiss buffer after suggestions are opened\n this._overrideScrollDismiss = true;\n this._async.clearTimeout(this._overrideScrollDimissTimeout);\n this._overrideScrollDimissTimeout = this._async.setTimeout(function () {\n _this._overrideScrollDismiss = false;\n }, 100);\n onMenuOpen === null || onMenuOpen === void 0 ? void 0 : onMenuOpen();\n }\n if (!isOpen && prevState.isOpen && onMenuDismissed) {\n onMenuDismissed();\n }\n var newCurrentPendingValueValidIndex = currentPendingValueValidIndex;\n var options = currentOptions.map(function (item, index) { return (__assign(__assign({}, item), { index: index })); });\n // If currentOptions differs from the previous currentOptions we need to update the currentPendingValueValidIndex\n // otherwise, it will be out of sync with the currentOptions. This can happen when the options are filtered.\n if (!shallowCompare(prevProps.hoisted.currentOptions, currentOptions) && currentPendingValue) {\n newCurrentPendingValueValidIndex =\n this.props.allowFreeform || this.props.allowFreeInput\n ? this._processInputChangeWithFreeform(currentPendingValue)\n : this._updateAutocompleteIndexWithoutFreeform(currentPendingValue);\n }\n var descendantText = undefined;\n if (isOpen && this._hasFocus() && newCurrentPendingValueValidIndex !== -1) {\n descendantText =\n (_a = options[newCurrentPendingValueValidIndex].id) !== null && _a !== void 0 ? _a : this._id + '-list' + newCurrentPendingValueValidIndex;\n }\n else if (isOpen && selectedIndices.length) {\n descendantText = (_c = (_b = options[selectedIndices[0]]) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : this._id + '-list' + selectedIndices[0];\n }\n if (descendantText !== this.state.ariaActiveDescendantValue) {\n this.setState({\n ariaActiveDescendantValue: descendantText,\n });\n }\n };\n ComboBoxInternal.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n // Primary Render\n ComboBoxInternal.prototype.render = function () {\n var id = this._id;\n var errorMessageId = id + '-error';\n var _a = this.props, className = _a.className, disabled = _a.disabled, required = _a.required, errorMessage = _a.errorMessage, _b = _a.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = _a.onRenderLabel, onRenderLabel = _c === void 0 ? this._onRenderLabel : _c, _d = _a.onRenderList, onRenderList = _d === void 0 ? this._onRenderList : _d, _e = _a.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, _f = _a.onRenderOption, onRenderOption = _f === void 0 ? this._onRenderOptionContent : _f, allowFreeform = _a.allowFreeform, customStyles = _a.styles, theme = _a.theme, persistMenu = _a.persistMenu, multiSelect = _a.multiSelect, _g = _a.hoisted, suggestedDisplayValue = _g.suggestedDisplayValue, selectedIndices = _g.selectedIndices, currentOptions = _g.currentOptions;\n var isOpen = this.state.isOpen;\n this._currentVisibleValue = this._getVisibleValue();\n // Single select is already accessible since the whole text is selected\n // when focus enters the input. Since multiselect appears to clear the input\n // it needs special accessible text\n var multiselectAccessibleText = multiSelect\n ? this._getMultiselectDisplayString(selectedIndices, currentOptions, suggestedDisplayValue)\n : undefined;\n var divProps = getNativeProps(this.props, divProperties, [\n 'onChange',\n 'value',\n 'aria-describedby',\n 'aria-labelledby',\n ]);\n var hasErrorMessage = errorMessage && errorMessage.length > 0 ? true : false;\n this._classNames = this.props.getClassNames\n ? this.props.getClassNames(theme, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage, className)\n : getClassNames(getStyles(theme, customStyles), className, !!isOpen, !!disabled, !!required, !!this._hasFocus(), !!allowFreeform, !!hasErrorMessage);\n var comboBoxWrapper = this._renderComboBoxWrapper(multiselectAccessibleText, errorMessageId);\n return (React.createElement(\"div\", __assign({}, divProps, { ref: this.props.hoisted.mergedRootRef, className: this._classNames.container }),\n onRenderLabel({ props: this.props, multiselectAccessibleText: multiselectAccessibleText }, this._onRenderLabel),\n comboBoxWrapper,\n (persistMenu || isOpen) &&\n onRenderContainer(__assign(__assign({}, this.props), { onRenderList: onRenderList, onRenderItem: onRenderItem, onRenderOption: onRenderOption, options: currentOptions.map(function (item, index) { return (__assign(__assign({}, item), { index: index })); }), onDismiss: this._onDismiss }), this._onRenderContainer),\n hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n };\n ComboBoxInternal.prototype._getPendingString = function (currentPendingValue, currentOptions, index) {\n return currentPendingValue !== null && currentPendingValue !== undefined\n ? currentPendingValue\n : indexWithinBounds(currentOptions, index)\n ? getPreviewText(currentOptions[index])\n : '';\n };\n /**\n * Returns a string that concatenates all of the selected values\n * for multiselect combo box.\n */\n ComboBoxInternal.prototype._getMultiselectDisplayString = function (selectedIndices, currentOptions, suggestedDisplayValue) {\n var displayValues = [];\n for (var idx = 0; selectedIndices && idx < selectedIndices.length; idx++) {\n var index = selectedIndices[idx];\n if (currentOptions[index].itemType !== SelectableOptionMenuItemType.SelectAll) {\n displayValues.push(indexWithinBounds(currentOptions, index)\n ? currentOptions[index].text\n : normalizeToString(suggestedDisplayValue));\n }\n }\n var _a = this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n return displayValues.join(multiSelectDelimiter);\n };\n /**\n * Do not dismiss if the window resizes or scrolls within 100ms of opening\n * This prevents the Android issue where pickers immediately dismiss on open, because the keyboard appears\n * @param ev - the event triggering the dismiss check\n * @returns a boolean indicating whether the callout dismissal should be prevented\n */\n ComboBoxInternal.prototype._preventDismissOnScrollOrResize = function (ev) {\n if (this._overrideScrollDismiss && (ev.type === 'scroll' || ev.type === 'resize')) {\n return true;\n }\n return false;\n };\n /**\n * Process the new input's new value when the combo box allows freeform entry\n * @param updatedValue - the input's newly changed value\n * @returns the index of the matched option, -1 if no match was found\n */\n ComboBoxInternal.prototype._processInputChangeWithFreeform = function (updatedValue) {\n var currentOptions = this.props.hoisted.currentOptions;\n var newCurrentPendingValueValidIndex = -1;\n // if the new value is empty, see if we have an exact match and then set the pending info\n if (updatedValue === '') {\n var items = currentOptions\n .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n .filter(function (option) { return isNormalOption(option) && !option.disabled && getPreviewText(option) === updatedValue; });\n // if we found a match remember the index\n if (items.length === 1) {\n newCurrentPendingValueValidIndex = items[0].index;\n }\n this._setPendingInfo(updatedValue, newCurrentPendingValueValidIndex, updatedValue);\n return newCurrentPendingValueValidIndex;\n }\n // Remember the original value and then make the value lowercase for comparison\n var originalUpdatedValue = updatedValue;\n updatedValue = updatedValue.toLocaleLowerCase();\n var newSuggestedDisplayValue = '';\n // If autoComplete is on, attempt to find a match from the available options\n if (this.props.autoComplete === 'on') {\n // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n var items = currentOptions\n .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n .filter(function (option) {\n return isNormalOption(option) &&\n !option.disabled &&\n getPreviewText(option).toLocaleLowerCase().indexOf(updatedValue) === 0;\n });\n if (items.length > 0) {\n // use ariaLabel as the value when the option is set\n var text = getPreviewText(items[0]);\n // If the user typed out the complete option text, we don't need any suggested display text anymore\n newSuggestedDisplayValue = text.toLocaleLowerCase() !== updatedValue ? text : '';\n // remember the index of the match we found\n newCurrentPendingValueValidIndex = items[0].index;\n }\n }\n else {\n // If autoComplete is off, attempt to find a match only when the value is exactly equal to the text of an option\n var items = currentOptions\n .map(function (item, index) { return (__assign(__assign({}, item), { index: index })); })\n .filter(function (option) {\n return isNormalOption(option) && !option.disabled && getPreviewText(option).toLocaleLowerCase() === updatedValue;\n });\n // if we found a match remember the index\n if (items.length === 1) {\n newCurrentPendingValueValidIndex = items[0].index;\n }\n }\n // Set the updated state\n this._setPendingInfo(originalUpdatedValue, newCurrentPendingValueValidIndex, newSuggestedDisplayValue);\n return newCurrentPendingValueValidIndex;\n };\n /**\n * Process the new input's new value when the combo box does not allow freeform entry\n * @param updatedValue - the input's newly changed value\n * @returns the index of the matched option\n */\n ComboBoxInternal.prototype._processInputChangeWithoutFreeform = function (updatedValue) {\n var _this = this;\n var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex;\n if (this.props.autoComplete === 'on') {\n // If autoComplete is on while allow freeform is off,\n // we will remember the key press and build up a string to attempt to match\n // as long as characters are typed within a the timeout span of each other,\n // otherwise we will clear the string and start building a new one on the next keypress.\n // Also, only do this processing if we have a non-empty value\n if (updatedValue !== '') {\n // If we have a pending autocomplete clearing task,\n // we know that the user is typing with key press happening\n // within the timeout of each other so remove the clearing task\n // and continue building the pending value with the updated value\n if (this._autoCompleteTimeout) {\n this._async.clearTimeout(this._autoCompleteTimeout);\n this._autoCompleteTimeout = undefined;\n updatedValue = normalizeToString(currentPendingValue) + updatedValue;\n }\n var matchingIndex = this._updateAutocompleteIndexWithoutFreeform(updatedValue);\n // Schedule a timeout to clear the pending value after the timeout span\n this._autoCompleteTimeout = this._async.setTimeout(function () {\n _this._autoCompleteTimeout = undefined;\n }, ReadOnlyPendingAutoCompleteTimeout);\n return matchingIndex;\n }\n }\n // If we get here, autoComplete is off.\n // Remember we are not allowing freeform, so at this point, if we have a pending valid value index\n // use that; otherwise use the selectedIndex\n var index = currentPendingValueValidIndex >= 0 ? currentPendingValueValidIndex : this._getFirstSelectedIndex();\n // Since we are not allowing freeform, we need to\n // set both the pending and suggested values/index\n // to allow us to select all content in the input to\n // give the illusion that we are readonly (e.g. freeform off)\n this._setPendingInfoFromIndex(index);\n return index;\n };\n ComboBoxInternal.prototype._updateAutocompleteIndexWithoutFreeform = function (updatedValue) {\n var currentOptions = this.props.hoisted.currentOptions;\n var originalUpdatedValue = updatedValue;\n updatedValue = updatedValue.toLocaleLowerCase();\n // If autoComplete is on, attempt to find a match where the text of an option starts with the updated value\n var items = currentOptions\n .map(function (item, i) { return (__assign(__assign({}, item), { index: i })); })\n .filter(function (option) {\n return isNormalOption(option) && !option.disabled && option.text.toLocaleLowerCase().indexOf(updatedValue) === 0;\n });\n // If we found a match, update the state\n if (items.length > 0) {\n this._setPendingInfo(originalUpdatedValue, items[0].index, getPreviewText(items[0]));\n return items[0].index;\n }\n return -1;\n };\n ComboBoxInternal.prototype._getFirstSelectedIndex = function () {\n var selectedIndices = this.props.hoisted.selectedIndices;\n return (selectedIndices === null || selectedIndices === void 0 ? void 0 : selectedIndices.length) ? selectedIndices[0] : -1;\n };\n /**\n * Walk along the options starting at the index, stepping by the delta (positive or negative)\n * looking for the next valid selectable index (e.g. skipping headings and dividers)\n * @param index - the index to get the next selectable index from\n * @param delta - optional delta to step by when finding the next index, defaults to 0\n * @returns - the next valid selectable index. If the new index is outside of the bounds,\n * it will snap to the edge of the options array. If delta == 0 and the given index is not selectable\n */\n ComboBoxInternal.prototype._getNextSelectableIndex = function (index, searchDirection) {\n var currentOptions = this.props.hoisted.currentOptions;\n var newIndex = index + searchDirection;\n newIndex = Math.max(0, Math.min(currentOptions.length - 1, newIndex));\n if (!indexWithinBounds(currentOptions, newIndex)) {\n return -1;\n }\n var option = currentOptions[newIndex];\n if (!isSelectableOption(option) || option.hidden === true) {\n // Should we continue looking for an index to select?\n if (searchDirection !== SearchDirection.none &&\n ((newIndex > 0 && searchDirection < SearchDirection.none) ||\n (newIndex >= 0 && newIndex < currentOptions.length && searchDirection > SearchDirection.none))) {\n newIndex = this._getNextSelectableIndex(newIndex, searchDirection);\n }\n else {\n // If we cannot perform a useful search just return the index we were given\n return index;\n }\n }\n // We have the next valid selectable index, return it\n return newIndex;\n };\n /**\n * Set the selected index. Note, this is\n * the \"real\" selected index, not the pending selected index\n * @param index - the index to set (or the index to set from if a search direction is provided)\n * @param searchDirection - the direction to search along the options from the given index\n */\n ComboBoxInternal.prototype._setSelectedIndex = function (index, submitPendingValueEvent, searchDirection) {\n if (searchDirection === void 0) { searchDirection = SearchDirection.none; }\n var _a = this.props, onChange = _a.onChange, onPendingValueChanged = _a.onPendingValueChanged, _b = _a.hoisted, initialIndices = _b.selectedIndices, currentOptions = _b.currentOptions;\n // Clone currentOptions and selectedIndices so we don't mutate state\n var selectedIndices = initialIndices ? initialIndices.slice() : [];\n var changedOptions = currentOptions.slice();\n // Find the next selectable index, if searchDirection is none\n // we will get our starting index back\n index = this._getNextSelectableIndex(index, searchDirection);\n if (!indexWithinBounds(currentOptions, index)) {\n return;\n }\n // Are we at a new index? If so, update the state, otherwise\n // there is nothing to do\n if (this.props.multiSelect ||\n selectedIndices.length < 1 ||\n (selectedIndices.length === 1 && selectedIndices[0] !== index)) {\n var option = __assign({}, currentOptions[index]);\n // if option doesn't existing, or option is disabled, we noop\n if (!option || option.disabled) {\n return;\n }\n if (this.props.multiSelect) {\n // Setting the initial state of option.selected in Multi-select combo box by checking the\n // selectedIndices array and overriding the undefined issue\n option.selected = option.selected !== undefined ? !option.selected : selectedIndices.indexOf(index) < 0;\n // handle changing all options if SelectAll is changed\n if (option.itemType === SelectableOptionMenuItemType.SelectAll) {\n selectedIndices = [];\n // if select all is set to checked, push all selectable option indices\n if (option.selected) {\n currentOptions.forEach(function (currentOption, i) {\n if (!currentOption.disabled && isSelectableOption(currentOption)) {\n selectedIndices.push(i);\n changedOptions[i] = __assign(__assign({}, currentOption), { selected: true });\n }\n });\n }\n // otherwise un-check all options\n else {\n changedOptions = currentOptions.map(function (currentOption) { return (__assign(__assign({}, currentOption), { selected: false })); });\n }\n }\n // otherwise update the individual option\n else {\n if (option.selected && selectedIndices.indexOf(index) < 0) {\n selectedIndices.push(index);\n }\n else if (!option.selected && selectedIndices.indexOf(index) >= 0) {\n selectedIndices = selectedIndices.filter(function (value) { return value !== index; });\n }\n changedOptions[index] = option;\n // If SelectAll exists and another option was toggled, update the SelectAll option's state\n var selectAllOption = changedOptions.filter(function (o) { return o.itemType === SelectableOptionMenuItemType.SelectAll; })[0];\n if (selectAllOption) {\n var selectAllState = this._isSelectAllChecked(selectedIndices);\n var selectAllIndex_1 = changedOptions.indexOf(selectAllOption);\n if (selectAllState) {\n selectedIndices.push(selectAllIndex_1);\n changedOptions[selectAllIndex_1] = __assign(__assign({}, selectAllOption), { selected: true });\n }\n else {\n selectedIndices = selectedIndices.filter(function (value) { return value !== selectAllIndex_1; });\n changedOptions[selectAllIndex_1] = __assign(__assign({}, selectAllOption), { selected: false });\n }\n }\n }\n }\n else {\n selectedIndices[0] = index;\n }\n submitPendingValueEvent.persist();\n // Only setState if combo box is uncontrolled.\n if (this.props.selectedKey || this.props.selectedKey === null) {\n // If combo box value is changed, revert preview first\n if (this._hasPendingValue && onPendingValueChanged) {\n onPendingValueChanged();\n this._hasPendingValue = false;\n }\n }\n else {\n this.props.hoisted.setSelectedIndices(selectedIndices);\n this.props.hoisted.setCurrentOptions(changedOptions);\n // If ComboBox value is changed, revert preview first\n if (this._hasPendingValue && onPendingValueChanged) {\n onPendingValueChanged();\n this._hasPendingValue = false;\n }\n }\n // Call onChange after state is updated\n if (onChange) {\n onChange(submitPendingValueEvent, option, index, getPreviewText(option));\n }\n }\n if (this.props.multiSelect && this.state.isOpen) {\n return;\n }\n // clear all of the pending info\n this._clearPendingInfo();\n };\n /**\n * Submit a pending value if there is one\n */\n ComboBoxInternal.prototype._submitPendingValue = function (submitPendingValueEvent) {\n var _a;\n var _b = this.props, onChange = _b.onChange, allowFreeform = _b.allowFreeform, autoComplete = _b.autoComplete, multiSelect = _b.multiSelect, hoisted = _b.hoisted;\n var currentOptions = hoisted.currentOptions;\n var _c = this.state, currentPendingValue = _c.currentPendingValue, currentPendingValueValidIndex = _c.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _c.currentPendingValueValidIndexOnHover;\n var selectedIndices = this.props.hoisted.selectedIndices;\n // Do not submit any pending value if we\n // have already initiated clearing the pending info\n if (this._processingClearPendingInfo) {\n return;\n }\n // If we allow freeform we need to handle that\n if (allowFreeform) {\n // if currentPendingValue is null or undefined the user did not submit anything\n // (not even empty because we would have stored that as the pending value)\n if (currentPendingValue === null || currentPendingValue === undefined) {\n // if a user did not type anything they may just hovered over an item\n if (currentPendingValueValidIndexOnHover >= 0) {\n this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n this._clearPendingInfo();\n }\n return;\n }\n // Check to see if the user typed an exact match\n if (indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n var pendingOptionText = getPreviewText(currentOptions[currentPendingValueValidIndex]).toLocaleLowerCase();\n var autofill = this._autofill.current;\n // By exact match, that means: our pending value is the same as the pending option text OR\n // the pending option starts with the pending value and we have an \"autoComplete\" selection\n // where the total length is equal to pending option length OR\n // the live value in the underlying input matches the pending option; update the state\n if (currentPendingValue.toLocaleLowerCase() === pendingOptionText ||\n (autoComplete &&\n pendingOptionText.indexOf(currentPendingValue.toLocaleLowerCase()) === 0 &&\n (autofill === null || autofill === void 0 ? void 0 : autofill.isValueSelected) &&\n currentPendingValue.length + (autofill.selectionEnd - autofill.selectionStart) ===\n pendingOptionText.length) ||\n ((_a = autofill === null || autofill === void 0 ? void 0 : autofill.inputElement) === null || _a === void 0 ? void 0 : _a.value.toLocaleLowerCase()) === pendingOptionText) {\n this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n if (multiSelect && this.state.isOpen) {\n return;\n }\n this._clearPendingInfo();\n return;\n }\n }\n if (onChange) {\n if (onChange) {\n // trigger onChange to clear value\n onChange(submitPendingValueEvent, undefined, undefined, currentPendingValue);\n }\n }\n else {\n // If we are not controlled, create a new selected option\n var newOption = {\n key: currentPendingValue || getId(),\n text: normalizeToString(currentPendingValue),\n };\n // If it's multiselect, set selected state to true\n if (multiSelect) {\n newOption.selected = true;\n }\n var newOptions = currentOptions.concat([newOption]);\n if (selectedIndices) {\n if (!multiSelect) {\n selectedIndices = [];\n }\n selectedIndices.push(newOptions.length - 1);\n }\n hoisted.setCurrentOptions(newOptions);\n hoisted.setSelectedIndices(selectedIndices);\n }\n }\n else if (currentPendingValueValidIndex >= 0) {\n // Since we are not allowing freeform, we must have a matching\n // to be able to update state\n this._setSelectedIndex(currentPendingValueValidIndex, submitPendingValueEvent);\n }\n else if (currentPendingValueValidIndexOnHover >= 0) {\n // If all else failed and we were hovering over an item, select it\n this._setSelectedIndex(currentPendingValueValidIndexOnHover, submitPendingValueEvent);\n }\n // Finally, clear the pending info\n this._clearPendingInfo();\n };\n ComboBoxInternal.prototype._onCalloutLayerMounted = function () {\n // In persistMenu mode _onLayerMounted is only called once for the lifetime\n // of the component. Any functionality required for callout \"on mount\" can\n // go here so that we can also call it again during callout dismissal to reset\n // object state.\n this._gotMouseMove = false;\n };\n // Render separator\n ComboBoxInternal.prototype._renderSeparator = function (item) {\n var index = item.index, key = item.key;\n if (index && index > 0) {\n return React.createElement(\"div\", { role: \"presentation\", key: key, className: this._classNames.divider });\n }\n return null;\n };\n ComboBoxInternal.prototype._renderHeader = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOptionContent : _a;\n return (React.createElement(\"div\", { id: item.id, key: item.key, className: this._classNames.header }, onRenderOption(item, this._onRenderOptionContent)));\n };\n ComboBoxInternal.prototype._renderCheckboxLabel = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderMultiselectOptionContent : _a;\n return onRenderOption(item, this._onRenderMultiselectOptionContent);\n };\n /**\n * If we are coming from a mouseOut:\n * there is no visible selected option.\n *\n * Else if We are hovering over an item:\n * that gets the selected look.\n *\n * Else:\n * Use the current valid pending index if it exists OR\n * we do not have a valid index and we currently have a pending input value,\n * otherwise use the selected index\n * */\n ComboBoxInternal.prototype._isOptionHighlighted = function (index) {\n var currentPendingValueValidIndexOnHover = this.state.currentPendingValueValidIndexOnHover;\n // If the hover state is set to clearAll, don't show a selected index.\n // Note, this happens when the user moused out of the menu items\n if (currentPendingValueValidIndexOnHover === HoverStatus.clearAll) {\n return false;\n }\n return currentPendingValueValidIndexOnHover >= 0\n ? currentPendingValueValidIndexOnHover === index\n : this._isOptionSelected(index);\n };\n ComboBoxInternal.prototype._isOptionSelected = function (index) {\n return this._getPendingSelectedIndex(true /* includePendingValue */) === index;\n };\n ComboBoxInternal.prototype._isOptionChecked = function (index) {\n if (this.props.multiSelect && index !== undefined && this.props.hoisted.selectedIndices) {\n var idxOfSelectedIndex = -1;\n idxOfSelectedIndex = this.props.hoisted.selectedIndices.indexOf(index);\n return idxOfSelectedIndex >= 0;\n }\n return false;\n };\n ComboBoxInternal.prototype._isOptionIndeterminate = function (index) {\n var _a = this.props, multiSelect = _a.multiSelect, hoisted = _a.hoisted;\n if (multiSelect && index !== undefined && hoisted.selectedIndices && hoisted.currentOptions) {\n var option = hoisted.currentOptions[index];\n if (option && option.itemType === SelectableOptionMenuItemType.SelectAll) {\n return hoisted.selectedIndices.length > 0 && !this._isSelectAllChecked();\n }\n }\n return false;\n };\n ComboBoxInternal.prototype._isSelectAllChecked = function (testIndices) {\n var _a = this.props, multiSelect = _a.multiSelect, hoisted = _a.hoisted;\n var selectAllOption = hoisted.currentOptions.find(function (option) { return option.itemType === SelectableOptionMenuItemType.SelectAll; });\n var selectedIndices = testIndices || hoisted.selectedIndices;\n if (!multiSelect || !selectedIndices || !selectAllOption) {\n return false;\n }\n // start by not including the select all option itself\n var selectAllIndex = hoisted.currentOptions.indexOf(selectAllOption);\n var compareSelectedIndices = selectedIndices.filter(function (value) { return value !== selectAllIndex; });\n // get array of selectable options, excluding disabled options, headers, and dividers\n var selectableOptions = hoisted.currentOptions.filter(function (option) {\n return !option.disabled && option.itemType !== SelectableOptionMenuItemType.SelectAll && isSelectableOption(option);\n });\n return compareSelectedIndices.length === selectableOptions.length;\n };\n /**\n * Gets the pending selected index taking into account valueValidIndex and selectedIndex\n * @param includeCurrentPendingValue - Should we include the currentPendingValue when\n * finding the index\n */\n ComboBoxInternal.prototype._getPendingSelectedIndex = function (includeCurrentPendingValue) {\n var _a = this.state, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValue = _a.currentPendingValue;\n return currentPendingValueValidIndex >= 0 ||\n (includeCurrentPendingValue && currentPendingValue !== null && currentPendingValue !== undefined)\n ? currentPendingValueValidIndex\n : this.props.multiSelect\n ? -1\n : this._getFirstSelectedIndex();\n };\n /**\n * Scroll the selected element into view\n */\n ComboBoxInternal.prototype._scrollIntoView = function () {\n var _a = this.props, onScrollToItem = _a.onScrollToItem, scrollSelectedToTop = _a.scrollSelectedToTop;\n var currentPendingSelectedIndex = this._getPendingSelectedIndex(true);\n if (onScrollToItem) {\n // Use the custom scroll handler\n onScrollToItem(currentPendingSelectedIndex >= 0 ? currentPendingSelectedIndex : this._getFirstSelectedIndex());\n return;\n }\n var scrollToElement = this._selectedElement.current;\n // in multi-select there are multiple selected elements, so we use the pending select index\n // to locate the option to scroll to.\n if (this.props.multiSelect && this._comboBoxMenu.current) {\n scrollToElement = findFirstDescendant(this._comboBoxMenu.current, function (element) {\n var _a;\n return ((_a = element.dataset) === null || _a === void 0 ? void 0 : _a.index) === currentPendingSelectedIndex.toString();\n });\n }\n if (scrollToElement && scrollToElement.offsetParent) {\n var alignToTop = true;\n // We are using refs, scroll the ref into view\n if (this._comboBoxMenu.current && this._comboBoxMenu.current.offsetParent) {\n var scrollableParent = this._comboBoxMenu.current.offsetParent;\n var selectedElement = scrollToElement.offsetParent;\n var _b = selectedElement, offsetHeight = _b.offsetHeight, offsetTop = _b.offsetTop;\n var _c = scrollableParent, parentOffsetHeight = _c.offsetHeight, scrollTop = _c.scrollTop;\n var isAbove = offsetTop < scrollTop;\n var isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n if (isAbove || scrollSelectedToTop) {\n alignToTop = false;\n scrollableParent.scrollTo(0, offsetTop);\n }\n else if (isBelow) {\n scrollableParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n }\n }\n // if _comboboxMenu doesn't exist, fall back to scrollIntoView\n else {\n scrollToElement.offsetParent.scrollIntoView(alignToTop);\n }\n }\n };\n /**\n * Click handler for the menu items\n * to select the item and also close the menu\n * @param index - the index of the item that was clicked\n */\n ComboBoxInternal.prototype._onItemClick = function (item) {\n var _this = this;\n var onItemClick = this.props.onItemClick;\n var index = item.index;\n return function (ev) {\n // only close the callout when it's in single-select mode\n if (!_this.props.multiSelect) {\n // ensure that focus returns to the input, not the button\n _this._autofill.current && _this._autofill.current.focus();\n _this.setState({\n isOpen: false,\n });\n }\n // Continue processing the click only after\n // performing menu close / control focus(inner working)\n onItemClick && onItemClick(ev, item, index);\n _this._setSelectedIndex(index, ev);\n };\n };\n /**\n * Reset the selected index by clearing the\n * input (of any pending text), clearing the pending state,\n * and setting the suggested display value to the last\n * selected state text\n */\n ComboBoxInternal.prototype._resetSelectedIndex = function () {\n var currentOptions = this.props.hoisted.currentOptions;\n this._clearPendingInfo();\n var selectedIndex = this._getFirstSelectedIndex();\n if (selectedIndex > 0 && selectedIndex < currentOptions.length) {\n this.props.hoisted.setSuggestedDisplayValue(currentOptions[selectedIndex].text);\n }\n else if (this.props.text) {\n // If we had a value initially, restore it\n this.props.hoisted.setSuggestedDisplayValue(this.props.text);\n }\n };\n /**\n * Clears the pending info state\n */\n ComboBoxInternal.prototype._clearPendingInfo = function () {\n this._processingClearPendingInfo = true;\n this.props.hoisted.setSuggestedDisplayValue(undefined);\n this.setState({\n currentPendingValue: undefined,\n currentPendingValueValidIndex: -1,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n }, this._onAfterClearPendingInfo);\n };\n /**\n * Set the pending info\n * @param currentPendingValue - new pending value to set\n * @param currentPendingValueValidIndex - new pending value index to set\n * @param suggestedDisplayValue - new suggest display value to set\n */\n ComboBoxInternal.prototype._setPendingInfo = function (currentPendingValue, currentPendingValueValidIndex, suggestedDisplayValue) {\n if (currentPendingValueValidIndex === void 0) { currentPendingValueValidIndex = -1; }\n if (this._processingClearPendingInfo) {\n return;\n }\n this.props.hoisted.setSuggestedDisplayValue(suggestedDisplayValue);\n this.setState({\n currentPendingValue: normalizeToString(currentPendingValue),\n currentPendingValueValidIndex: currentPendingValueValidIndex,\n currentPendingValueValidIndexOnHover: HoverStatus.default,\n });\n };\n /**\n * Set the pending info from the given index\n * @param index - the index to set the pending info from\n */\n ComboBoxInternal.prototype._setPendingInfoFromIndex = function (index) {\n var currentOptions = this.props.hoisted.currentOptions;\n if (index >= 0 && index < currentOptions.length) {\n var option = currentOptions[index];\n this._setPendingInfo(getPreviewText(option), index, getPreviewText(option));\n }\n else {\n this._clearPendingInfo();\n }\n };\n /**\n * Sets the pending info for the combo box\n * @param index - the index to search from\n * @param searchDirection - the direction to search\n */\n ComboBoxInternal.prototype._setPendingInfoFromIndexAndDirection = function (index, searchDirection) {\n var currentOptions = this.props.hoisted.currentOptions;\n // update index to allow content to wrap\n if (searchDirection === SearchDirection.forward && index >= currentOptions.length - 1) {\n index = -1;\n }\n else if (searchDirection === SearchDirection.backward && index <= 0) {\n index = currentOptions.length;\n }\n // get the next \"valid\" index\n var indexUpdate = this._getNextSelectableIndex(index, searchDirection);\n // if the two indices are equal we didn't move and\n // we should attempt to get get the first/last \"valid\" index to use\n // (Note, this takes care of the potential cases where the first/last\n // item is not focusable), otherwise use the updated index\n if (index === indexUpdate) {\n if (searchDirection === SearchDirection.forward) {\n index = this._getNextSelectableIndex(-1, searchDirection);\n }\n else if (searchDirection === SearchDirection.backward) {\n index = this._getNextSelectableIndex(currentOptions.length, searchDirection);\n }\n }\n else {\n index = indexUpdate;\n }\n if (indexWithinBounds(currentOptions, index)) {\n this._setPendingInfoFromIndex(index);\n }\n };\n ComboBoxInternal.prototype._notifyPendingValueChanged = function (prevState) {\n var onPendingValueChanged = this.props.onPendingValueChanged;\n if (!onPendingValueChanged) {\n return;\n }\n var currentOptions = this.props.hoisted.currentOptions;\n var _a = this.state, currentPendingValue = _a.currentPendingValue, currentPendingValueValidIndex = _a.currentPendingValueValidIndex, currentPendingValueValidIndexOnHover = _a.currentPendingValueValidIndexOnHover;\n var newPendingIndex = undefined;\n var newPendingValue = undefined;\n if (currentPendingValueValidIndexOnHover !== prevState.currentPendingValueValidIndexOnHover &&\n indexWithinBounds(currentOptions, currentPendingValueValidIndexOnHover)) {\n // Set new pending index if hover index was changed\n newPendingIndex = currentPendingValueValidIndexOnHover;\n }\n else if (currentPendingValueValidIndex !== prevState.currentPendingValueValidIndex &&\n indexWithinBounds(currentOptions, currentPendingValueValidIndex)) {\n // Set new pending index if currentPendingValueValidIndex was changed\n newPendingIndex = currentPendingValueValidIndex;\n }\n else if (currentPendingValue !== prevState.currentPendingValue) {\n // Set pendingValue in the case it was changed and no index was changed\n newPendingValue = currentPendingValue;\n }\n // Notify when there is a new pending index/value. Also, if there is a pending value, it needs to send undefined.\n if (newPendingIndex !== undefined || newPendingValue !== undefined || this._hasPendingValue) {\n onPendingValueChanged(newPendingIndex !== undefined ? currentOptions[newPendingIndex] : undefined, newPendingIndex, newPendingValue);\n this._hasPendingValue = newPendingIndex !== undefined || newPendingValue !== undefined;\n }\n };\n /**\n * Sets the isOpen state and updates focusInputAfterClose\n */\n ComboBoxInternal.prototype._setOpenStateAndFocusOnClose = function (isOpen, focusInputAfterClose) {\n this._focusInputAfterClose = focusInputAfterClose;\n this.setState({ isOpen: isOpen });\n };\n ComboBoxInternal.prototype._onOptionMouseEnter = function (index) {\n if (this._shouldIgnoreMouseEvent()) {\n return;\n }\n this.setState({\n currentPendingValueValidIndexOnHover: index,\n });\n };\n ComboBoxInternal.prototype._onOptionMouseMove = function (index) {\n this._gotMouseMove = true;\n if (!this._isScrollIdle || this.state.currentPendingValueValidIndexOnHover === index) {\n return;\n }\n this.setState({\n currentPendingValueValidIndexOnHover: index,\n });\n };\n ComboBoxInternal.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /**\n * Handle dismissing the menu and eating the required key event when disabled\n * @param ev - the keyboard event that was fired\n */\n ComboBoxInternal.prototype._handleInputWhenDisabled = function (ev) {\n // If we are disabled, close the menu (if needed)\n // and eat all keystrokes other than TAB or ESC\n if (this.props.disabled) {\n if (this.state.isOpen) {\n this.setState({ isOpen: false });\n }\n // When disabled stop propagation and prevent default\n // of the event unless we have a tab, escape, or function key\n if (ev !== null &&\n // eslint-disable-next-line deprecation/deprecation\n ev.which !== KeyCodes.tab &&\n // eslint-disable-next-line deprecation/deprecation\n ev.which !== KeyCodes.escape &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which < 112 /* F1 */ || ev.which > 123) /* F12 */) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n }\n };\n ComboBoxInternal.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a nwe one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n /**\n * Get the styles for the current option.\n * @param item - Item props for the current option\n */\n ComboBoxInternal.prototype._getCaretButtonStyles = function () {\n var customCaretDownButtonStyles = this.props.caretDownButtonStyles;\n return getCaretDownButtonStyles(this.props.theme, customCaretDownButtonStyles);\n };\n /**\n * Get the styles for the current option.\n * @param item - Item props for the current option\n */\n ComboBoxInternal.prototype._getCurrentOptionStyles = function (item) {\n var customStylesForAllOptions = this.props.comboBoxOptionStyles;\n var customStylesForCurrentOption = item.styles;\n return getOptionStyles(this.props.theme, customStylesForAllOptions, customStylesForCurrentOption, this._isPendingOption(item), item.hidden, this._isOptionHighlighted(item.index));\n };\n /**\n * Get the aria autocomplete value for the combo box\n * @returns 'inline' if auto-complete automatically dynamic, 'both' if we have a list of possible values to pick from\n * and can dynamically populate input, and 'list' if auto-complete is not enabled as selection is the only option.\n * Ideally, this should be 'none' if auto-complete is not enabled, but there is a known bug in Edge\n * where the callout may appear over the combo box if this attribute is set to 'none'\n */\n ComboBoxInternal.prototype._getAriaAutoCompleteValue = function () {\n var autoComplete = !this.props.disabled && this.props.autoComplete === 'on';\n return autoComplete ? (this.props.allowFreeform ? 'inline' : 'both') : 'list';\n };\n ComboBoxInternal.prototype._isPendingOption = function (item) {\n return item && item.index === this.state.currentPendingValueValidIndex;\n };\n /**\n * Returns true if the component has some kind of focus. If it's either focusing or if it's focused\n */\n ComboBoxInternal.prototype._hasFocus = function () {\n return this.state.focusState !== 'none';\n };\n ComboBoxInternal = __decorate([\n customizable('ComboBox', ['theme', 'styles'], true)\n ], ComboBoxInternal);\n return ComboBoxInternal;\n}(React.Component));\n/**\n * Get the indices of the options that are marked as selected\n * @param options - the combo box options\n * @param selectedKeys - the known selected keys to find\n * @returns - an array of the indices of the selected options, empty array if nothing is selected\n */\nfunction getSelectedIndices(options, selectedKeys) {\n if (!options || !selectedKeys) {\n return [];\n }\n var selectedIndices = {};\n options.forEach(function (option, index) {\n if (option.selected) {\n selectedIndices[index] = true;\n }\n });\n var _loop_1 = function (selectedKey) {\n var index = findIndex(options, function (option) { return option.key === selectedKey; });\n if (index > -1) {\n selectedIndices[index] = true;\n }\n };\n for (var _i = 0, selectedKeys_1 = selectedKeys; _i < selectedKeys_1.length; _i++) {\n var selectedKey = selectedKeys_1[_i];\n _loop_1(selectedKey);\n }\n return Object.keys(selectedIndices).map(Number).sort();\n}\n/**\n * Given default selected key(s) and selected key(s), return the selected keys(s).\n * When default selected key(s) are available, they take precedence and return them instead of selected key(s).\n *\n * @returns No matter what specific types the input parameters are, always return an array of\n * either strings or numbers instead of primitive type. This normalization makes caller's logic easier.\n */\nfunction buildDefaultSelectedKeys(defaultSelectedKey, selectedKey) {\n var selectedKeys = buildSelectedKeys(defaultSelectedKey);\n if (selectedKeys.length) {\n return selectedKeys;\n }\n return buildSelectedKeys(selectedKey);\n}\nfunction buildSelectedKeys(selectedKey) {\n if (selectedKey === undefined) {\n return [];\n }\n // need to cast here so typescript does not complain\n return (selectedKey instanceof Array ? selectedKey : [selectedKey]);\n}\nfunction normalizeToString(value) {\n return value || '';\n}\n/**\n * Is the index within the bounds of the array?\n * @param options - options to check if the index is valid for\n * @param index - the index to check\n * @returns - true if the index is valid for the given options, false otherwise\n */\nfunction indexWithinBounds(options, index) {\n return !!options && index >= 0 && index < options.length;\n}\n/** Whether this is a normal option, not a header or divider or select all. */\nfunction isNormalOption(option) {\n return (option.itemType !== SelectableOptionMenuItemType.Header &&\n option.itemType !== SelectableOptionMenuItemType.Divider &&\n option.itemType !== SelectableOptionMenuItemType.SelectAll);\n}\n/** Whether this is a selectable option, not a header or divider. */\nfunction isSelectableOption(option) {\n return (option.itemType !== SelectableOptionMenuItemType.Header && option.itemType !== SelectableOptionMenuItemType.Divider);\n}\n/**\n * For scenarios where the option's `text` prop contains embedded styles, we use the option's\n * `ariaLabel` value as the text in the input and for autocomplete matching. We know to use this\n * when the `useAriaLabelAsText` prop is set to true.\n */\nfunction getPreviewText(item) {\n return item.useAriaLabelAsText && item.ariaLabel ? item.ariaLabel : item.text;\n}\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\n//# sourceMappingURL=ComboBox.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (styles, className, isOpen, disabled, required, focused, allowFreeForm, hasErrorMessage) {\n return {\n container: mergeStyles('ms-ComboBox-container', className, styles.container),\n label: mergeStyles(styles.label, disabled && styles.labelDisabled),\n root: mergeStyles('ms-ComboBox', hasErrorMessage ? styles.rootError : isOpen && 'is-open', required && 'is-required', styles.root, !allowFreeForm && styles.rootDisallowFreeForm, hasErrorMessage && !focused ? styles.rootError : !disabled && focused && styles.rootFocused, !disabled && {\n selectors: {\n ':hover': hasErrorMessage ? styles.rootError : !isOpen && !focused && styles.rootHovered,\n ':active': hasErrorMessage ? styles.rootError : styles.rootPressed,\n ':focus': hasErrorMessage ? styles.rootError : styles.rootFocused,\n },\n }, disabled && ['is-disabled', styles.rootDisabled]),\n input: mergeStyles('ms-ComboBox-Input', styles.input, disabled && styles.inputDisabled),\n errorMessage: mergeStyles(styles.errorMessage),\n callout: mergeStyles('ms-ComboBox-callout', styles.callout),\n optionsContainerWrapper: mergeStyles('ms-ComboBox-optionsContainerWrapper', styles.optionsContainerWrapper),\n optionsContainer: mergeStyles('ms-ComboBox-optionsContainer', styles.optionsContainer),\n header: mergeStyles('ms-ComboBox-header', styles.header),\n divider: mergeStyles('ms-ComboBox-divider', styles.divider),\n screenReaderText: mergeStyles(styles.screenReaderText),\n };\n});\nexport var getComboBoxOptionClassNames = memoizeFunction(function (styles) {\n return {\n optionText: mergeStyles('ms-ComboBox-optionText', styles.optionText),\n root: mergeStyles('ms-ComboBox-option', styles.root, {\n selectors: {\n ':hover': styles.rootHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n },\n }),\n optionTextWrapper: mergeStyles(styles.optionTextWrapper),\n };\n});\n//# sourceMappingURL=ComboBox.classNames.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the elements which are child elements of the given element.\n * If `allowVirtualChildren` is `true`, this method enumerates virtual child elements\n * after the original children.\n * @param parent - The element to get the children of.\n * @param allowVirtualChildren - true if the method should enumerate virtual child elements.\n */\nexport function getChildren(parent, allowVirtualChildren) {\n if (allowVirtualChildren === void 0) { allowVirtualChildren = true; }\n var children = [];\n if (parent) {\n for (var i = 0; i < parent.children.length; i++) {\n children.push(parent.children.item(i));\n }\n if (allowVirtualChildren && isVirtualElement(parent)) {\n children.push.apply(children, parent._virtual.children);\n }\n }\n return children;\n}\n//# sourceMappingURL=getChildren.js.map","import { __assign, __rest } from \"tslib\";\nimport { memoizeFunction } from '../../Utilities';\nvar COMMAND_BAR_HEIGHT = 44;\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var semanticColors = theme.semanticColors;\n return {\n root: [\n theme.fonts.medium,\n 'ms-CommandBar',\n {\n display: 'flex',\n backgroundColor: semanticColors.bodyBackground,\n padding: '0 14px 0 24px',\n height: COMMAND_BAR_HEIGHT,\n },\n className,\n ],\n primarySet: [\n 'ms-CommandBar-primaryCommand',\n {\n flexGrow: '1',\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n secondarySet: [\n 'ms-CommandBar-secondaryCommand',\n {\n flexShrink: '0',\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n };\n};\nexport var getCommandButtonStyles = memoizeFunction(function (customStyles) {\n var rootStyles = {\n height: '100%',\n };\n var labelStyles = {\n whiteSpace: 'nowrap',\n };\n var _a = customStyles || {}, root = _a.root, label = _a.label, restCustomStyles = __rest(_a, [\"root\", \"label\"]);\n return __assign(__assign({}, restCustomStyles), { root: root ? [rootStyles, root] : rootStyles, label: label ? [labelStyles, label] : labelStyles });\n});\n//# sourceMappingURL=CommandBar.styles.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, nullRender, getNativeProps, divProperties, composeComponentAs, initializeComponentRef, } from '../../Utilities';\nimport { OverflowSet } from '../../OverflowSet';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { CommandBarButton } from '../../Button';\nimport { TooltipHost } from '../../Tooltip';\nimport { getCommandButtonStyles } from './CommandBar.styles';\nvar getClassNames = classNamesFunction();\nvar CommandBarBase = /** @class */ (function (_super) {\n __extends(CommandBarBase, _super);\n function CommandBarBase(props) {\n var _this = _super.call(this, props) || this;\n _this._overflowSet = React.createRef();\n _this._resizeGroup = React.createRef();\n _this._onRenderData = function (data) {\n var _a = _this.props, ariaLabel = _a.ariaLabel, primaryGroupAriaLabel = _a.primaryGroupAriaLabel, farItemsGroupAriaLabel = _a.farItemsGroupAriaLabel;\n var hasSecondSet = data.farItems && data.farItems.length > 0;\n return (React.createElement(FocusZone, { className: css(_this._classNames.root), direction: FocusZoneDirection.horizontal, role: 'menubar', \"aria-label\": ariaLabel },\n React.createElement(OverflowSet, { role: hasSecondSet ? 'group' : 'none', \"aria-label\": hasSecondSet ? primaryGroupAriaLabel : undefined, componentRef: _this._overflowSet, className: css(_this._classNames.primarySet), items: data.primaryItems, overflowItems: data.overflowItems.length ? data.overflowItems : undefined, onRenderItem: _this._onRenderItem, onRenderOverflowButton: _this._onRenderOverflowButton }),\n hasSecondSet && (React.createElement(OverflowSet, { role: \"group\", \"aria-label\": farItemsGroupAriaLabel, className: css(_this._classNames.secondarySet), items: data.farItems, onRenderItem: _this._onRenderItem, onRenderOverflowButton: nullRender }))));\n };\n _this._onRenderItem = function (item) {\n if (item.onRender) {\n // These are the top level items, there is no relevant menu dismissing function to\n // provide for the IContextualMenuItem onRender function. Pass in a no op function instead.\n return item.onRender(item, function () { return undefined; });\n }\n // eslint-disable-next-line deprecation/deprecation\n var itemText = item.text || item.name;\n var commandButtonProps = __assign(__assign({ allowDisabledFocus: true, role: 'menuitem' }, item), { styles: getCommandButtonStyles(item.buttonStyles), className: css('ms-CommandBarItem-link', item.className), text: !item.iconOnly ? itemText : undefined, menuProps: item.subMenuProps, onClick: _this._onButtonClick(item) });\n if (item.iconOnly && (itemText !== undefined || item.tooltipHostProps)) {\n return (React.createElement(TooltipHost, __assign({ role: \"none\", content: itemText, setAriaDescribedBy: false }, item.tooltipHostProps), _this._commandButton(item, commandButtonProps)));\n }\n return _this._commandButton(item, commandButtonProps);\n };\n _this._commandButton = function (item, props) {\n var ButtonAs = _this.props.buttonAs;\n var CommandBarButtonAs = item.commandBarButtonAs;\n var DefaultButtonAs = CommandBarButton;\n // The prop types between these three possible implementations overlap enough that a force-cast is safe.\n var Type = DefaultButtonAs;\n if (CommandBarButtonAs) {\n Type = composeComponentAs(CommandBarButtonAs, Type);\n }\n if (ButtonAs) {\n Type = composeComponentAs(ButtonAs, Type);\n }\n // Always pass the default implementation to the override so it may be composed.\n return React.createElement(Type, __assign({}, props));\n };\n _this._onRenderOverflowButton = function (overflowItems) {\n var _a = _this.props.overflowButtonProps, overflowButtonProps = _a === void 0 ? {} : _a;\n var combinedOverflowItems = __spreadArray(__spreadArray([], (overflowButtonProps.menuProps ? overflowButtonProps.menuProps.items : []), true), overflowItems, true);\n var overflowProps = __assign(__assign({ role: 'menuitem' }, overflowButtonProps), { styles: __assign({ menuIcon: { fontSize: '17px' } }, overflowButtonProps.styles), className: css('ms-CommandBar-overflowButton', overflowButtonProps.className), menuProps: __assign(__assign({}, overflowButtonProps.menuProps), { items: combinedOverflowItems }), menuIconProps: __assign({ iconName: 'More' }, overflowButtonProps.menuIconProps) });\n var OverflowButtonType = _this.props.overflowButtonAs\n ? composeComponentAs(_this.props.overflowButtonAs, CommandBarButton)\n : CommandBarButton;\n return React.createElement(OverflowButtonType, __assign({}, overflowProps));\n };\n _this._onReduceData = function (data) {\n var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataReduced = _a.onDataReduced;\n var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n var farItems = data.farItems;\n // Use first item if shiftOnReduce, otherwise use last item\n var movedItem = primaryItems[shiftOnReduce ? 0 : primaryItems.length - 1];\n if (movedItem !== undefined) {\n movedItem.renderedInOverflow = true;\n overflowItems = __spreadArray([movedItem], overflowItems, true);\n primaryItems = shiftOnReduce ? primaryItems.slice(1) : primaryItems.slice(0, -1);\n var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0, farItems: farItems });\n if (onDataReduced) {\n onDataReduced(movedItem);\n }\n newData.cacheKey = cacheKey;\n return newData;\n }\n return undefined;\n };\n _this._onGrowData = function (data) {\n var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataGrown = _a.onDataGrown;\n var minimumOverflowItems = data.minimumOverflowItems;\n var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey;\n var farItems = data.farItems;\n var movedItem = overflowItems[0];\n // Make sure that moved item exists and is not one of the original overflow items\n if (movedItem !== undefined && overflowItems.length > minimumOverflowItems) {\n movedItem.renderedInOverflow = false;\n overflowItems = overflowItems.slice(1);\n // if shiftOnReduce, movedItem goes first, otherwise, last.\n primaryItems = shiftOnReduce ? __spreadArray([movedItem], primaryItems, true) : __spreadArray(__spreadArray([], primaryItems, true), [movedItem], false);\n var newData = __assign(__assign({}, data), { primaryItems: primaryItems, overflowItems: overflowItems });\n cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, overflow: overflowItems.length > 0, farItems: farItems });\n if (onDataGrown) {\n onDataGrown(movedItem);\n }\n newData.cacheKey = cacheKey;\n return newData;\n }\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n CommandBarBase.prototype.render = function () {\n var _a = this.props, items = _a.items, overflowItems = _a.overflowItems, farItems = _a.farItems, styles = _a.styles, theme = _a.theme, dataDidRender = _a.dataDidRender, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, _d = _a.resizeGroupAs, ResizeGroupAs = _d === void 0 ? ResizeGroup : _d;\n var commandBarData = {\n primaryItems: __spreadArray([], items, true),\n overflowItems: __spreadArray([], overflowItems, true),\n minimumOverflowItems: __spreadArray([], overflowItems, true).length,\n farItems: farItems,\n cacheKey: this._computeCacheKey({\n primaryItems: __spreadArray([], items, true),\n overflow: overflowItems && overflowItems.length > 0,\n farItems: farItems,\n }),\n };\n this._classNames = getClassNames(styles, { theme: theme });\n // ResizeGroup will render these attributes to the root <div>.\n // TODO We may need to elevate classNames from <FocusZone> into <ResizeGroup> ?\n var nativeProps = getNativeProps(this.props, divProperties);\n return (React.createElement(ResizeGroupAs, __assign({}, nativeProps, { componentRef: this._resizeGroup, data: commandBarData, onReduceData: onReduceData, onGrowData: onGrowData, onRenderData: this._onRenderData, dataDidRender: dataDidRender })));\n };\n CommandBarBase.prototype.focus = function () {\n var overflowSet = this._overflowSet.current;\n overflowSet && overflowSet.focus();\n };\n CommandBarBase.prototype.remeasure = function () {\n this._resizeGroup.current && this._resizeGroup.current.remeasure();\n };\n CommandBarBase.prototype._onButtonClick = function (item) {\n return function (ev) {\n // inactive is deprecated. remove check in 7.0\n // eslint-disable-next-line deprecation/deprecation\n if (item.inactive) {\n return;\n }\n if (item.onClick) {\n item.onClick(ev, item);\n }\n };\n };\n CommandBarBase.prototype._computeCacheKey = function (data) {\n var primaryItems = data.primaryItems, overflow = data.overflow, farItems = data.farItems;\n var returnKey = function (acc, current) {\n var _a = current.cacheKey, cacheKey = _a === void 0 ? current.key : _a;\n return acc + cacheKey;\n };\n var primaryKey = primaryItems && primaryItems.reduce(returnKey, '');\n var overflowKey = overflow ? 'overflow' : '';\n var farKey = farItems && farItems.reduce(returnKey, '');\n return [primaryKey, overflowKey, farKey].join('');\n };\n CommandBarBase.defaultProps = {\n items: [],\n overflowItems: [],\n };\n return CommandBarBase;\n}(React.Component));\nexport { CommandBarBase };\n//# sourceMappingURL=CommandBar.base.js.map","import { styled } from '../../Utilities';\nimport { CommandBarBase } from './CommandBar.base';\nimport { getStyles } from './CommandBar.styles';\n// Create a CommandBar variant which uses these default styles and this styled subcomponent.\nexport var CommandBar = styled(CommandBarBase, getStyles, undefined, {\n scope: 'CommandBar',\n});\n//# sourceMappingURL=CommandBar.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n var item = props.item, classNames = props.classNames;\n var iconProps = item.iconProps;\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: (_d = {},\n _d[MediumScreenSelector] = {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n _d),\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small,\n selectors: (_e = {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n }\n },\n _e[MediumScreenSelector] = {\n fontSize: IconFontSizes.medium, // 16px\n },\n _e),\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n var _a;\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28,\n selectors: (_a = {},\n _a[MediumScreenSelector] = {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n _a),\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n});\nvar GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n var _a, _b, _c, _d;\n var styles = getMenuItemStyles(theme);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_a = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _a[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH, \")\"),\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n // when hovering over the splitPrimary also affect the splitMenu\n _b[\":hover ~ .\".concat(classNames.splitMenu)] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _b[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _b),\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_c = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _c[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _c[\".\".concat(IsFocusVisibleClassName, \" &:hover\")] = { background: 'inherit;' },\n _c),\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: (_d = {},\n _d[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover\")] = styles.rootFocused,\n _d),\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n __extends(ContextualMenuItemWrapper, _super);\n function ContextualMenuItemWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._onItemMouseEnter = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget);\n }\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget);\n }\n };\n _this._onItemMouseLeave = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._onItemMouseMove = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget);\n }\n };\n _this._getSubmenuTarget = function () {\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n return !shallowCompare(newProps, this.props);\n };\n return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n __extends(ContextualMenuAnchor, _super);\n function ContextualMenuAnchor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._anchor = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._getSubmenuTarget = function () {\n return _this._anchor.current ? _this._anchor.current : undefined;\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n return _this;\n }\n ContextualMenuAnchor.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (this.props.item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (this.props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n }\n var anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n var itemHasSubmenu = hasSubmenu(item);\n var nativeProps = getNativeProps(item, anchorProperties);\n var disabled = isItemDisabled(item);\n var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n var additionalItemProperties = {\n 'aria-describedby': ariaDescribedByIds,\n };\n return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, getMenuItemAriaRole, hasSubmenu, isItemDisabled } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n __extends(ContextualMenuSplitButton, _super);\n function ContextualMenuSplitButton(props) {\n var _this = _super.call(this, props) || this;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._getSubmenuTarget = function () {\n return _this._splitButton;\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._onItemMouseEnterPrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseEnterIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, _this._splitButton);\n }\n };\n _this._onItemMouseMovePrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseMoveIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, _this._splitButton);\n }\n };\n _this._onIconItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n }\n };\n _this._executeItemClick = function (ev) {\n var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (_this._processingTouch && !item.canCheck && onItemClick) {\n return onItemClick(item, ev);\n }\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n _this._onTouchStart = function (ev) {\n if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n _this._handleTouchAndPointerEvent(ev);\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._dismissLabelId = getId();\n return _this;\n }\n ContextualMenuSplitButton.prototype.componentDidMount = function () {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n };\n ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ContextualMenuSplitButton.prototype.render = function () {\n var _this = this;\n var _a;\n var _b = this.props, item = _b.item, classNames = _b.classNames, index = _b.index, focusableElementIndex = _b.focusableElementIndex, totalItemCount = _b.totalItemCount, hasCheckmarks = _b.hasCheckmarks, hasIcons = _b.hasIcons, onItemMouseLeave = _b.onItemMouseLeave, expandedMenuItemKey = _b.expandedMenuItemKey;\n var itemHasSubmenu = hasSubmenu(item);\n var keytipProps = item.keytipProps;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n var ariaDescription = item.ariaDescription;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaChecked = (_a = getIsChecked(item)) !== null && _a !== void 0 ? _a : undefined;\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": ariaChecked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n _this._renderSplitDivider(item),\n _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n var itemProps = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n id: this._dismissLabelId,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n };\n ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, keytipAttributes) {\n var _a = this.props, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (this.props.item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (this.props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n }\n var itemProps = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n 'aria-labelledby': this._dismissLabelId,\n };\n var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-haspopup': true,\n });\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, buttonProps),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n var _this = this;\n var onTap = this.props.onTap;\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n __extends(ContextualMenuButton, _super);\n function ContextualMenuButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._btn = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._getSubmenuTarget = function () {\n return _this._btn.current ? _this._btn.current : undefined;\n };\n return _this;\n }\n ContextualMenuButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, contextualMenuItemAs = _a.contextualMenuItemAs, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(contextualMenuItemAs, ChildrenRenderer);\n }\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n var defaultRole = getMenuItemAriaRole(item);\n var itemHasSubmenu = hasSubmenu(item);\n var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n var buttonNativeProperties = getNativeProps(item, buttonProperties);\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n var itemRole = item.role || defaultRole;\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n var itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, composeComponentAs, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n};\n/* return number of menu items, excluding headers and dividers */\nfunction getItemCount(items) {\n var totalItemCount = 0;\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n return totalItemCount;\n}\nexport function getSubmenuItems(item, options) {\n var target = options === null || options === void 0 ? void 0 : options.target;\n // eslint-disable-next-line deprecation/deprecation\n var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n if (items) {\n var overrideItems = [];\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var subItem = items_2[_i];\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n }\n else {\n overrideItems.push(subItem);\n }\n }\n return overrideItems;\n }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n return items.some(function (item) {\n if (item.canCheck) {\n return true;\n }\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n return true;\n }\n return false;\n });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n var styles = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styles[_i] = arguments[_i];\n }\n return function (styleProps) {\n return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles, false));\n };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n var previousHidden = usePrevious(hidden);\n var onMenuOpenedRef = React.useRef(onMenuOpened);\n var onMenuClosedRef = React.useRef(onMenuDismissed);\n var propsRef = React.useRef(props);\n onMenuOpenedRef.current = onMenuOpened;\n onMenuClosedRef.current = onMenuDismissed;\n propsRef.current = props;\n React.useEffect(function () {\n var _a, _b;\n // Don't issue dismissed callbacks on initial mount\n if (hidden && previousHidden === false) {\n (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n }\n else if (!hidden && previousHidden !== false) {\n (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n }\n }, [hidden, previousHidden]);\n // Issue onDismissedCallback on unmount\n React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n var subMenuId = useId(COMPONENT_NAME, id);\n var closeSubMenu = React.useCallback(function () {\n setShouldFocusOnContainer(undefined);\n setExpandedMenuItemKey(undefined);\n setSubmenuTarget(undefined);\n }, []);\n var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n var submenuItemKey = _a.key;\n if (expandedMenuItemKey === submenuItemKey) {\n return;\n }\n target.focus();\n setShouldFocusOnContainer(focusContainer);\n setExpandedMenuItemKey(submenuItemKey);\n setSubmenuTarget(target);\n }, [expandedMenuItemKey]);\n React.useEffect(function () {\n if (hidden) {\n closeSubMenu();\n }\n }, [hidden, closeSubMenu]);\n var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n var getSubmenuProps = function () {\n var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n var submenuProps = null;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: onSubMenuDismiss,\n isSubMenu: true,\n id: subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: shouldFocusOnContainer,\n directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n if (item.preferMenuTargetAsEventTarget) {\n var onItemClick = item.onItemClick;\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n var gotMouseMove = React.useRef(false);\n React.useEffect(function () {\n shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n }, [delayUpdateFocusOnHover, hidden]);\n var onMenuFocusCapture = React.useCallback(function () {\n if (delayUpdateFocusOnHover) {\n shouldUpdateFocusOnMouseEvent.current = false;\n }\n }, [delayUpdateFocusOnHover]);\n return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n var previousActiveElement = React.useRef();\n var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n var _a, _b;\n if (onRestoreFocus) {\n onRestoreFocus(options);\n }\n else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n }, [onRestoreFocus]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (!hidden) {\n var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n previousActiveElement.current = newElement;\n }\n }\n else if (previousActiveElement.current) {\n tryFocusPreviousActiveElement({\n originalElement: previousActiveElement.current,\n containsFocus: true,\n documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n });\n previousActiveElement.current = undefined;\n }\n }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n var lastKeyDownWasAltOrMeta = React.useRef();\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n return handled;\n };\n /**\n * Checks if the submenu should be closed\n */\n var shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which !== submenuCloseKey || !isSubMenu) {\n return false;\n }\n return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n var shouldHandleKeyDown = function (ev) {\n return (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.escape ||\n shouldCloseSubMenu(ev) ||\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n var onKeyDown = function (ev) {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in shouldHandleKeyUp for reasoning.\n lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n // eslint-disable-next-line deprecation/deprecation\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n var shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n lastKeyDownWasAltOrMeta.current = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n var onKeyUp = function (ev) {\n return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n var onMenuKeyDown = function (ev) {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n var handled = onKeyDown(ev);\n if (handled || !hostElement.current) {\n return;\n }\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n var hasModifier = !!(ev.altKey || ev.metaKey);\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n var onItemKeyDown = function (item, ev) {\n var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n openSubMenu(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n var isScrollIdle = React.useRef(true);\n var scrollIdleTimeoutId = React.useRef();\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n var onScroll = function () {\n if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n scrollIdleTimeoutId.current = undefined;\n }\n else {\n isScrollIdle.current = false;\n }\n scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n isScrollIdle.current = true;\n }, NavigationIdleDelay);\n };\n return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n var isMountedRef = React.useRef(false);\n React.useEffect(function () {\n isMountedRef.current = true;\n return function () {\n isMountedRef.current = false;\n };\n }, []);\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The isMountedRef is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n var onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n dismiss(ev, dismissAll);\n }\n else if (isMountedRef.current) {\n closeSubMenu();\n }\n };\n return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n var enterTimerRef = React.useRef(undefined);\n var cancelSubMenuTimer = function () {\n if (enterTimerRef.current !== undefined) {\n asyncTracker.clearTimeout(enterTimerRef.current);\n enterTimerRef.current = undefined;\n }\n };\n var startSubmenuTimer = function (onTimerExpired) {\n enterTimerRef.current = asyncTracker.setTimeout(function () {\n onTimerExpired();\n cancelSubMenuTimer();\n }, subMenuHoverDelay);\n };\n return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n var menuTarget = props.target;\n var onItemMouseEnterBase = function (item, ev, target) {\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var onItemMouseMoveBase = function (item, ev, target) {\n var targetElement = ev.currentTarget;\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n else {\n return;\n }\n if (!isScrollIdle.current ||\n subMenuEntryTimer.current !== undefined ||\n targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var shouldIgnoreMouseEvent = function () {\n return !isScrollIdle.current || !gotMouseMove.current;\n };\n var onMouseItemLeave = function (item, ev) {\n var _a;\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n cancelSubMenuTimer();\n if (expandedMenuItemKey !== undefined) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (hostElement.current.setActive) {\n try {\n hostElement.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n var updateFocusOnMouseEvent = function (item, ev, target) {\n var targetElement = target ? target : ev.currentTarget;\n if (item.key === expandedMenuItemKey) {\n return;\n }\n cancelSubMenuTimer();\n // If the menu is not expanded we can update focus without any delay\n if (expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n startSubmenuTimer(function () {\n targetElement.focus();\n openSubMenu(item, targetElement, true);\n });\n }\n else {\n startSubmenuTimer(function () {\n onSubMenuDismiss(ev);\n targetElement.focus();\n });\n }\n };\n var onItemClick = function (item, ev) {\n onItemClickBase(item, ev, ev.currentTarget);\n };\n var onItemClickBase = function (item, ev, target) {\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel an async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n executeItemClick(item, ev);\n }\n else {\n if (item.key !== expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n ? props.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n openSubMenu(item, target, shouldFocusOnContainer);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n var onAnchorClick = function (item, ev) {\n executeItemClick(item, ev);\n ev.stopPropagation();\n };\n var executeItemClick = function (item, ev) {\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var shouldDismiss = false;\n if (item.onClick) {\n shouldDismiss = !!item.onClick(ev, item);\n }\n else if (props.onItemClick) {\n shouldDismiss = !!props.onItemClick(ev, item);\n }\n if (shouldDismiss || !ev.defaultPrevented) {\n dismiss(ev, true);\n }\n };\n return [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a;\n var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n var hostElement = React.useRef(null);\n var asyncTracker = useAsync();\n var menuId = useId(COMPONENT_NAME, props.id);\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: {\n getMenuClassNames: 'styles',\n },\n });\n var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n useVisibility(props, targetWindow);\n var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n //#region Render helpers\n var onDefaultRenderMenuList = function (menuListProps, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, defaultRender) {\n var indexCorrection = 0;\n var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })));\n };\n var renderFocusZone = function (children, adjustedFocusZoneProps) {\n var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n };\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var _a;\n var renderedItems = [];\n var iconProps = item.iconProps || { iconName: 'None' };\n var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps = item.itemProps;\n var styles = itemProps ? itemProps.styles : undefined;\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n // eslint-disable-next-line deprecation/deprecation\n var itemClassNames;\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n }\n else {\n var itemStyleProps = {\n theme: props.theme,\n disabled: isItemDisabled(item),\n expanded: expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName: dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(renderSeparator(index, itemClassNames));\n var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var defaultRenderNormalItem = function () {\n return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n var menuItem = props.onRenderContextualMenuItem\n ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n : defaultRenderNormalItem();\n renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n };\n var defaultMenuItemRenderer = function (item, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n };\n var renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n var headerItem;\n var groupProps;\n if (sectionProps.title) {\n var headerContextualMenuItem = undefined;\n var ariaLabelledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\".concat(sectionProps.title, \"-title\"),\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id_1,\n };\n ariaLabelledby = id_1;\n }\n else {\n var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n ariaLabelledby = id_2;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabelledby,\n };\n headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n }\n }\n if (sectionProps.items && sectionProps.items.length > 0) {\n var correctedIndex_1 = 0;\n return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\".concat(index) },\n React.createElement(\"div\", __assign({}, groupProps),\n React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n var menuItem = renderMenuItem(contextualMenuItem, itemsIndex, correctedIndex_1, getItemCount(sectionProps.items), hasCheckmarks, hasIcons, menuClassNames);\n if (contextualMenuItem.itemType !== ContextualMenuItemType.Divider &&\n contextualMenuItem.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = contextualMenuItem.customOnRenderListLength\n ? contextualMenuItem.customOnRenderListLength\n : 1;\n correctedIndex_1 += indexIncrease;\n }\n return menuItem;\n }),\n sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n }\n };\n var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n title) {\n return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n };\n var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n top, fromSection) {\n if (fromSection || index > 0) {\n return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n }\n return null;\n };\n var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n if (item.onRender) {\n return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n }\n var contextualMenuItemAs = props.contextualMenuItemAs;\n var commonProps = {\n item: item,\n classNames: classNames,\n index: index,\n focusableElementIndex: focusableElementIndex,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n contextualMenuItemAs: contextualMenuItemAs,\n onItemMouseEnter: onItemMouseEnterBase,\n onItemMouseLeave: onMouseItemLeave,\n onItemMouseMove: onItemMouseMoveBase,\n onItemMouseDown: onItemMouseDown,\n executeItemClick: executeItemClick,\n onItemKeyDown: onItemKeyDown,\n expandedMenuItemKey: expandedMenuItemKey,\n openSubMenu: openSubMenu,\n dismissSubMenu: onSubMenuDismiss,\n dismissMenu: dismiss,\n };\n if (item.href) {\n var ContextualMenuAnchorAs = ContextualMenuAnchor;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuAnchorAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuAnchorAs);\n }\n return React.createElement(ContextualMenuAnchorAs, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n }\n if (item.split && hasSubmenu(item)) {\n var ContextualMenuSplitButtonAs = ContextualMenuSplitButton;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuSplitButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuSplitButtonAs);\n }\n return (React.createElement(ContextualMenuSplitButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n }\n var ContextualMenuButtonAs = ContextualMenuButton;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuButtonAs);\n }\n return React.createElement(ContextualMenuButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n };\n var renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var ChildrenRenderer = ContextualMenuItem;\n if (item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(props.contextualMenuItemAs, ChildrenRenderer);\n }\n var itemProps = item.itemProps, id = item.id;\n var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n //#endregion\n //#region Main render\n var isBeakVisible = props.isBeakVisible;\n var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = props.getMenuClassNames;\n var classNames = getMenuClassNames\n ? getMenuClassNames(theme, className)\n : getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var hasIcons = itemsHaveIcons(items);\n function itemsHaveIcons(contextualMenuItems) {\n for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n var item = contextualMenuItems_1[_i];\n if (item.iconProps) {\n return true;\n }\n if (item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)) {\n return true;\n }\n }\n return false;\n }\n var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n var contextMenuStyle;\n var targetAsHtmlElement = targetRef.current;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n }\n else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n var totalItemCount_1 = getItemCount(items);\n var calloutStyles_1 = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length\n ? renderFocusZone(onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount_1,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: function (item) {\n return defaultMenuItemRenderer(item, classNames);\n },\n labelElementId: labelElementId,\n }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n : null,\n submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n React.createElement(FocusRects, null))); }));\n }\n else {\n return null;\n }\n //#endregion\n}), function (prevProps, newProps) {\n if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n var _a;\n (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n var match = findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n }\n else if (item.key && item.key === key) {\n return item;\n }\n }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n return onClick\n ? function (ev, item) {\n overrideTarget(ev, target);\n return onClick(ev, item);\n }\n : onClick;\n}\nfunction overrideTarget(ev, target) {\n if (ev && target) {\n ev.persist();\n if (target instanceof Event) {\n ev.target = target.target;\n }\n else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","/**\n * The days of the week\n * {@docCategory DateTimeUtilities}\n */\nexport var DayOfWeek;\n(function (DayOfWeek) {\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\n})(DayOfWeek || (DayOfWeek = {}));\n/**\n * The months\n * {@docCategory DateTimeUtilities}\n */\nexport var MonthOfYear;\n(function (MonthOfYear) {\n MonthOfYear[MonthOfYear[\"January\"] = 0] = \"January\";\n MonthOfYear[MonthOfYear[\"February\"] = 1] = \"February\";\n MonthOfYear[MonthOfYear[\"March\"] = 2] = \"March\";\n MonthOfYear[MonthOfYear[\"April\"] = 3] = \"April\";\n MonthOfYear[MonthOfYear[\"May\"] = 4] = \"May\";\n MonthOfYear[MonthOfYear[\"June\"] = 5] = \"June\";\n MonthOfYear[MonthOfYear[\"July\"] = 6] = \"July\";\n MonthOfYear[MonthOfYear[\"August\"] = 7] = \"August\";\n MonthOfYear[MonthOfYear[\"September\"] = 8] = \"September\";\n MonthOfYear[MonthOfYear[\"October\"] = 9] = \"October\";\n MonthOfYear[MonthOfYear[\"November\"] = 10] = \"November\";\n MonthOfYear[MonthOfYear[\"December\"] = 11] = \"December\";\n})(MonthOfYear || (MonthOfYear = {}));\n/**\n * First week of the year settings types\n * {@docCategory DateTimeUtilities}\n */\nexport var FirstWeekOfYear;\n(function (FirstWeekOfYear) {\n FirstWeekOfYear[FirstWeekOfYear[\"FirstDay\"] = 0] = \"FirstDay\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFullWeek\"] = 1] = \"FirstFullWeek\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFourDayWeek\"] = 2] = \"FirstFourDayWeek\";\n})(FirstWeekOfYear || (FirstWeekOfYear = {}));\n/**\n * The supported date range types\n * {@docCategory DateTimeUtilities}\n */\nexport var DateRangeType;\n(function (DateRangeType) {\n DateRangeType[DateRangeType[\"Day\"] = 0] = \"Day\";\n DateRangeType[DateRangeType[\"Week\"] = 1] = \"Week\";\n DateRangeType[DateRangeType[\"Month\"] = 2] = \"Month\";\n DateRangeType[DateRangeType[\"WorkWeek\"] = 3] = \"WorkWeek\";\n})(DateRangeType || (DateRangeType = {}));\nexport var DAYS_IN_WEEK = 7;\n//# sourceMappingURL=dateValues.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\n/**\n * Format date to a day string representation\n * @param date - input date to format\n */\nexport var formatDay = function (date) { return date.getDate().toString(); };\n/**\n * Format date to a month-day-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthDayYear = function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();\n};\n/**\n * Format date to a month-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthYear = function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getFullYear();\n};\n/**\n * Format date to a month string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonth = function (date, strings) { return strings.months[date.getMonth()]; };\n/**\n * Format date to a year string representation\n * @param date - input date to format\n */\nexport var formatYear = function (date) { return date.getFullYear().toString(); };\nexport var DEFAULT_DATE_GRID_STRINGS = {\n months: [\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 shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n};\nexport var DEFAULT_DATE_FORMATTING = {\n formatDay: formatDay,\n formatMonth: formatMonth,\n formatYear: formatYear,\n formatMonthDayYear: formatMonthDayYear,\n formatMonthYear: formatMonthYear,\n};\nexport var DEFAULT_CALENDAR_STRINGS = __assign(__assign({}, DEFAULT_DATE_GRID_STRINGS), { goToToday: 'Go to today', weekNumberFormatString: 'Week number {0}', prevMonthAriaLabel: 'Previous month', nextMonthAriaLabel: 'Next month', prevYearAriaLabel: 'Previous year', nextYearAriaLabel: 'Next year', prevYearRangeAriaLabel: 'Previous year range', nextYearRangeAriaLabel: 'Next year range', closeButtonAriaLabel: 'Close', selectedDateFormatString: 'Selected date {0}', todayDateFormatString: \"Today's date {0}\", monthPickerHeaderAriaLabel: '{0}, change year', yearPickerHeaderAriaLabel: '{0}, change month', dayMarkedAriaLabel: 'marked' });\n//# sourceMappingURL=dateFormatting.defaults.js.map","import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n var result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\nexport function addWeeks(date, weeks) {\n return addDays(date, weeks * TimeConstants.DaysInOneWeek);\n}\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n var result = new Date(date.getTime());\n var newMonth = result.getMonth() + months;\n result.setMonth(newMonth);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((newMonth % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n var result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((date.getMonth() % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\nexport function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\nexport function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\nexport function getYearStart(date) {\n return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\nexport function getYearEnd(date) {\n return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\nexport function setMonth(date, month) {\n return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\nexport function compareDates(date1, date2) {\n if (!date1 && !date2) {\n return true;\n }\n else if (!date1 || !date2) {\n return false;\n }\n else {\n return (date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate());\n }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\nexport function compareDatePart(date1, date2) {\n return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }\n var datesArray = [];\n var startDate;\n var endDate = null;\n if (!workWeekDays) {\n workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n }\n daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n switch (dateRangeType) {\n case DateRangeType.Day:\n startDate = getDatePart(date);\n endDate = addDays(startDate, daysToSelectInDayView);\n break;\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n break;\n case DateRangeType.Month:\n startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n endDate = addMonths(startDate, 1);\n break;\n default:\n throw new Error('Unexpected object: ' + dateRangeType);\n }\n // Populate the dates array with the dates in range\n var nextDate = startDate;\n do {\n if (dateRangeType !== DateRangeType.WorkWeek) {\n // push all days not in work week view\n datesArray.push(nextDate);\n }\n else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n datesArray.push(nextDate);\n }\n nextDate = addDays(nextDate, 1);\n } while (!compareDates(nextDate, endDate));\n return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\nexport function isInDateRangeArray(date, dateRange) {\n for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n var dateInRange = dateRange_1[_i];\n if (compareDates(date, dateInRange)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n var selectedYear = navigatedDate.getFullYear();\n var selectedMonth = navigatedDate.getMonth();\n var dayOfMonth = 1;\n var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n var endOfFirstWeek = dayOfMonth +\n (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) -\n adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n dayOfMonth = endOfWeekRange.getDate();\n var weeksArray = [];\n for (var i = 0; i < weeksInMonth; i++) {\n // Get week number for end of week\n weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n dayOfMonth += TimeConstants.DaysInOneWeek;\n endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n }\n return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n // First four-day week of the year - minumum days count\n var fourDayWeek = 4;\n switch (firstWeekOfYear) {\n case FirstWeekOfYear.FirstFullWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n case FirstWeekOfYear.FirstFourDayWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n default:\n return getFirstDayWeekOfYear(date, firstDayOfWeek);\n }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n var daysOffset = firstDayOfWeek - date.getDay();\n if (daysOffset > 0) {\n // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n daysOffset -= TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n var daysOffset = lastDayOfWeek - date.getDay();\n if (daysOffset < 0) {\n // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n daysOffset += TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\nfunction getDatePart(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\nexport function getDatePartHashValue(date) {\n // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n // eslint-disable-next-line no-bitwise\n return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n var dayOfYear = getDayOfYear(date) - 1;\n var num = date.getDay() - (dayOfYear % TimeConstants.DaysInOneWeek);\n var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n var num3 = dayOfYear - num2;\n if (num3 < 0) {\n num -= daysInYear % TimeConstants.DaysInOneWeek;\n num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n num3 = daysInYear - num2;\n }\n return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n var num = getDayOfYear(date) - 1;\n var num2 = date.getDay() - (num % TimeConstants.DaysInOneWeek);\n var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns adjusted week day number when `firstDayOfWeek` is other than Sunday.\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek\n ? dateWeekDay + TimeConstants.DaysInOneWeek\n : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year:\n * the number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\nfunction getDayOfYear(date) {\n var month = date.getMonth();\n var year = date.getFullYear();\n var daysUntilDate = 0;\n for (var i = 0; i < month; i++) {\n daysUntilDate += daysInMonth(i + 1, year);\n }\n daysUntilDate += date.getDate();\n return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\nfunction daysInMonth(month, year) {\n return new Date(year, month, 0).getDate();\n}\n//# sourceMappingURL=dateMath.js.map","import { __spreadArray } from \"tslib\";\nimport { compareDatePart } from '../dateMath/dateMath';\n/**\n * Generates a list of dates, bounded by min and max dates\n * @param dateRange - input date range\n * @param minDate - min date to limit the range\n * @param maxDate - max date to limit the range\n */\nexport var getBoundedDateRange = function (dateRange, minDate, maxDate) {\n var boundedDateRange = __spreadArray([], dateRange, true);\n if (minDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, minDate) >= 0; });\n }\n if (maxDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, maxDate) <= 0; });\n }\n return boundedDateRange;\n};\n//# sourceMappingURL=getBoundedDateRange.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens earlier than min date\n * @param date - date to check\n * @param options - object with min date to check against\n */\nexport var isBeforeMinDate = function (date, options) {\n var minDate = options.minDate;\n return minDate ? compareDatePart(minDate, date) >= 1 : false;\n};\n//# sourceMappingURL=isBeforeMinDate.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens later than max date\n * @param date - date to check\n * @param options - object with max date to check against\n */\nexport var isAfterMaxDate = function (date, options) {\n var maxDate = options.maxDate;\n return maxDate ? compareDatePart(date, maxDate) >= 1 : false;\n};\n//# sourceMappingURL=isAfterMaxDate.js.map","import { compareDates } from '../dateMath/dateMath';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\n/**\n * Checks if `date` falls into the restricted `options`\n * @param date - date to check\n * @param options - restriction options (min date, max date and list of restricted dates)\n */\nexport var isRestrictedDate = function (date, options) {\n var restrictedDates = options.restrictedDates, minDate = options.minDate, maxDate = options.maxDate;\n if (!restrictedDates && !minDate && !maxDate) {\n return false;\n }\n var inRestrictedDates = restrictedDates && restrictedDates.some(function (rd) { return compareDates(rd, date); });\n return inRestrictedDates || isBeforeMinDate(date, options) || isAfterMaxDate(date, options);\n};\n//# sourceMappingURL=isRestrictedDate.js.map","import * as React from 'react';\nimport { css, findIndex } from '@fluentui/utilities';\nimport { DAYS_IN_WEEK } from '@fluentui/date-time-utilities';\nexport var CalendarMonthHeaderRow = function (props) {\n var showWeekNumbers = props.showWeekNumbers, strings = props.strings, firstDayOfWeek = props.firstDayOfWeek, allFocusable = props.allFocusable, weeksToShow = props.weeksToShow, weeks = props.weeks, classNames = props.classNames;\n var dayLabels = strings.shortDays.slice();\n var firstOfMonthIndex = findIndex(weeks[1], function (day) { return day.originalDate.getDate() === 1; });\n if (weeksToShow === 1 && firstOfMonthIndex >= 0) {\n // if we only show one week, replace the header with short month name\n var firstOfMonthIndexOffset = (firstOfMonthIndex + firstDayOfWeek) % DAYS_IN_WEEK;\n dayLabels[firstOfMonthIndexOffset] = strings.shortMonths[weeks[1][firstOfMonthIndex].originalDate.getMonth()];\n }\n return (React.createElement(\"tr\", null,\n showWeekNumbers && React.createElement(\"th\", { className: classNames.dayCell }),\n dayLabels.map(function (val, index) {\n var i = (index + firstDayOfWeek) % DAYS_IN_WEEK;\n var label = strings.days[i];\n return (React.createElement(\"th\", { className: css(classNames.dayCell, classNames.weekDayLabelCell), scope: \"col\", key: dayLabels[i] + ' ' + index, title: label, \"aria-label\": label, \"data-is-focusable\": allFocusable ? true : undefined }, dayLabels[i]));\n })));\n};\n//# sourceMappingURL=CalendarMonthHeaderRow.js.map","import { __rest } from \"tslib\";\nimport { isRestrictedDate } from './isRestrictedDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { compareDatePart, addDays } from '../dateMath/dateMath';\n/**\n * Returns closest available date given the restriction `options`, or undefined otherwise\n * @param options - list of search options\n */\nexport var findAvailableDate = function (options) {\n var targetDate = options.targetDate, initialDate = options.initialDate, direction = options.direction, restrictedDateOptions = __rest(options, [\"targetDate\", \"initialDate\", \"direction\"]);\n var availableDate = targetDate;\n // if the target date is available, return it immediately\n if (!isRestrictedDate(targetDate, restrictedDateOptions)) {\n return targetDate;\n }\n while (compareDatePart(initialDate, availableDate) !== 0 &&\n isRestrictedDate(availableDate, restrictedDateOptions) &&\n !isAfterMaxDate(availableDate, restrictedDateOptions) &&\n !isBeforeMinDate(availableDate, restrictedDateOptions)) {\n availableDate = addDays(availableDate, direction);\n }\n if (compareDatePart(initialDate, availableDate) !== 0 && !isRestrictedDate(availableDate, restrictedDateOptions)) {\n return availableDate;\n }\n return undefined;\n};\n//# sourceMappingURL=findAvailableDate.js.map","import * as React from 'react';\nimport { KeyCodes, css, getRTLSafeKeyCode } from '@fluentui/utilities';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '@fluentui/date-time-utilities';\nexport var CalendarGridDayCell = function (props) {\n var _a;\n var navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, allFocusable = props.allFocusable, strings = props.strings, activeDescendantId = props.activeDescendantId, navigatedDayRef = props.navigatedDayRef, calculateRoundedStyles = props.calculateRoundedStyles, weeks = props.weeks, classNames = props.classNames, day = props.day, dayIndex = props.dayIndex, weekIndex = props.weekIndex, weekCorners = props.weekCorners, ariaHidden = props.ariaHidden, customDayCellRef = props.customDayCellRef, dateRangeType = props.dateRangeType, daysToSelectInDayView = props.daysToSelectInDayView, onSelectDate = props.onSelectDate, restrictedDates = props.restrictedDates, minDate = props.minDate, maxDate = props.maxDate, onNavigateDate = props.onNavigateDate, getDayInfosInRangeOfDay = props.getDayInfosInRangeOfDay, getRefsFromDayInfos = props.getRefsFromDayInfos;\n var cornerStyle = (_a = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _a !== void 0 ? _a : '';\n var isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n var navigateMonthEdge = function (ev, date) {\n var targetDate = undefined;\n var direction = 1; // by default search forward\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.up) {\n targetDate = addWeeks(date, -1);\n direction = -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.down) {\n targetDate = addWeeks(date, 1);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === getRTLSafeKeyCode(KeyCodes.left)) {\n targetDate = addDays(date, -1);\n direction = -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === getRTLSafeKeyCode(KeyCodes.right)) {\n targetDate = addDays(date, 1);\n }\n if (!targetDate) {\n // if we couldn't find a target date at all, do nothing\n return;\n }\n var findAvailableDateOptions = {\n initialDate: date,\n targetDate: targetDate,\n direction: direction,\n restrictedDates: restrictedDates,\n minDate: minDate,\n maxDate: maxDate,\n };\n // target date is restricted, search in whatever direction until finding the next possible date,\n // stopping at boundaries\n var nextDate = findAvailableDate(findAvailableDateOptions);\n if (!nextDate) {\n // if no dates available in initial direction, try going backwards\n findAvailableDateOptions.direction = -direction;\n nextDate = findAvailableDate(findAvailableDateOptions);\n }\n // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n // don't jump the view unnecessarily\n var isInCurrentView = weeks &&\n nextDate &&\n weeks.slice(1, weeks.length - 1).some(function (week) {\n return week.some(function (dayToCompare) {\n return compareDates(dayToCompare.originalDate, nextDate);\n });\n });\n if (isInCurrentView) {\n return;\n }\n // else, fire navigation on the date to change the view to show it\n if (nextDate) {\n onNavigateDate(nextDate, true);\n ev.preventDefault();\n }\n };\n var onMouseOverDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef, index) {\n var _a;\n if (dayRef) {\n dayRef.classList.add('ms-CalendarDay-hoverStyle');\n if (!dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1) {\n // remove the static classes first to overwrite them\n dayRef.classList.remove(classNames.bottomLeftCornerDate, classNames.bottomRightCornerDate, classNames.topLeftCornerDate, classNames.topRightCornerDate);\n var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n (_a = dayRef.classList).add.apply(_a, classNamesToAdd.split(' '));\n }\n }\n }\n });\n };\n var onMouseDownDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef) {\n if (dayRef) {\n dayRef.classList.add('ms-CalendarDay-pressedStyle');\n }\n });\n };\n var onMouseUpDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef) {\n if (dayRef) {\n dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n }\n });\n };\n var onMouseOutDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef, index) {\n var _a;\n if (dayRef) {\n dayRef.classList.remove('ms-CalendarDay-hoverStyle');\n dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n if (!dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1) {\n var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n (_a = dayRef.classList).remove.apply(_a, classNamesToAdd.split(' '));\n }\n }\n }\n });\n };\n var onDayKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);\n }\n else {\n navigateMonthEdge(ev, day.originalDate);\n }\n };\n var ariaLabel = day.originalDate.getDate() +\n ', ' +\n strings.months[day.originalDate.getMonth()] +\n ', ' +\n day.originalDate.getFullYear();\n if (day.isMarked) {\n ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n }\n return (React.createElement(\"td\", { className: css(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, day.isSelected && 'ms-CalendarDay-daySelected', !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth), ref: function (element) {\n customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);\n day.setRef(element);\n isNavigatedDate && (navigatedDayRef.current = element);\n }, \"aria-hidden\": ariaHidden, \"aria-disabled\": !ariaHidden && !day.isInBounds, onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined, onMouseOver: !ariaHidden ? onMouseOverDay : undefined, onMouseDown: !ariaHidden ? onMouseDownDay : undefined, onMouseUp: !ariaHidden ? onMouseUpDay : undefined, onMouseOut: !ariaHidden ? onMouseOutDay : undefined, onKeyDown: !ariaHidden ? onDayKeyDown : undefined, role: \"gridcell\", tabIndex: isNavigatedDate ? 0 : undefined, \"aria-current\": day.isToday ? 'date' : undefined, \"aria-selected\": day.isInBounds ? day.isSelected : undefined, \"data-is-focusable\": !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined)) },\n React.createElement(\"button\", { key: day.key + 'button', \"aria-hidden\": ariaHidden, className: css(classNames.dayButton, day.isToday && classNames.dayIsToday, day.isToday && 'ms-CalendarDay-dayIsToday'), \"aria-label\": ariaLabel, id: isNavigatedDate ? activeDescendantId : undefined, disabled: !ariaHidden && !day.isInBounds, type: \"button\", tabIndex: -1, \"data-is-focusable\": \"false\" },\n React.createElement(\"span\", { \"aria-hidden\": \"true\" }, dateTimeFormatter.formatDay(day.originalDate)),\n day.isMarked && React.createElement(\"div\", { \"aria-hidden\": \"true\", className: classNames.dayMarker }))));\n};\n//# sourceMappingURL=CalendarGridDayCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { format } from '@fluentui/utilities';\nimport { getWeekNumbersInMonth } from '@fluentui/date-time-utilities';\nimport { CalendarGridDayCell } from './CalendarGridDayCell';\nexport var CalendarGridRow = function (props) {\n var classNames = props.classNames, week = props.week, weeks = props.weeks, weekIndex = props.weekIndex, rowClassName = props.rowClassName, ariaRole = props.ariaRole, showWeekNumbers = props.showWeekNumbers, firstDayOfWeek = props.firstDayOfWeek, firstWeekOfYear = props.firstWeekOfYear, navigatedDate = props.navigatedDate, strings = props.strings;\n var weekNumbers = showWeekNumbers\n ? getWeekNumbersInMonth(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate)\n : null;\n var titleString = weekNumbers\n ? strings.weekNumberFormatString && format(strings.weekNumberFormatString, weekNumbers[weekIndex])\n : '';\n return (React.createElement(\"tr\", { role: ariaRole, className: rowClassName, key: weekIndex + '_' + week[0].key },\n showWeekNumbers && weekNumbers && (React.createElement(\"th\", { className: classNames.weekNumberCell, key: weekIndex, title: titleString, \"aria-label\": titleString, scope: \"row\" },\n React.createElement(\"span\", null, weekNumbers[weekIndex]))),\n week.map(function (day, dayIndex) { return (React.createElement(CalendarGridDayCell, __assign({}, props, { key: day.key, day: day, dayIndex: dayIndex }))); })));\n};\n//# sourceMappingURL=CalendarGridRow.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, classNamesFunction } from '@fluentui/utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { getDateRangeArray, getDayGrid, getBoundedDateRange, isRestrictedDate, DAYS_IN_WEEK, compareDates, DateRangeType, } from '@fluentui/date-time-utilities';\nimport { usePrevious, useId } from '@fluentui/react-hooks';\nimport { CalendarMonthHeaderRow } from './CalendarMonthHeaderRow';\nimport { CalendarGridRow } from './CalendarGridRow';\nvar getClassNames = classNamesFunction();\nfunction useDayRefs() {\n var daysRef = React.useRef({});\n var getSetRefCallback = function (dayKey) { return function (element) {\n if (element === null) {\n delete daysRef.current[dayKey];\n }\n else {\n daysRef.current[dayKey] = element;\n }\n }; };\n return [daysRef, getSetRefCallback];\n}\nfunction useWeeks(props, onSelectDate, getSetRefCallback) {\n /**\n * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation\n * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.\n */\n var weeks = React.useMemo(function () {\n var _a;\n var weeksGrid = getDayGrid(props);\n var firstVisibleDay = weeksGrid[1][0].originalDate;\n var lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;\n var markedDays = ((_a = props.getMarkedDays) === null || _a === void 0 ? void 0 : _a.call(props, firstVisibleDay, lastVisibleDay)) || [];\n /**\n * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,\n * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.\n *\n * Weeks[1... weeks.length - 2] contains the actual visible data\n */\n var returnValue = [];\n for (var weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++) {\n var week = [];\n var _loop_1 = function (dayIndex) {\n var day = weeksGrid[weekIndex][dayIndex];\n var dayInfo = __assign(__assign({ onSelected: function () { return onSelectDate(day.originalDate); }, setRef: getSetRefCallback(day.key) }, day), { isMarked: day.isMarked || (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(day.originalDate, markedDay); })) });\n week.push(dayInfo);\n };\n for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n _loop_1(dayIndex);\n }\n returnValue.push(week);\n }\n return returnValue;\n // TODO: this is missing deps on getSetRefCallback and onSelectDate (and depending on the entire\n // props object may not be a good idea due to likely frequent mutation). It would be easy to\n // fix getSetRefCallback to not mutate every render, but onSelectDate is passed down from\n // Calendar and trying to fix it requires a huge cascade of changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props]);\n return weeks;\n}\n/**\n * Hook to determine whether to animate the CalendarDayGrid forwards or backwards\n * @returns true if the grid should animate backwards; false otherwise\n */\nfunction useAnimateBackwards(weeks) {\n var previousNavigatedDate = usePrevious(weeks[0][0].originalDate);\n if (!previousNavigatedDate || previousNavigatedDate.getTime() === weeks[0][0].originalDate.getTime()) {\n return undefined;\n }\n else if (previousNavigatedDate <= weeks[0][0].originalDate) {\n return false;\n }\n else {\n return true;\n }\n}\nfunction useWeekCornerStyles(props) {\n /**\n *\n * Section for setting the rounded corner styles on individual day cells. Individual day cells need different\n * corners to be rounded depending on which date range type and where the cell is located in the current grid.\n * If we just round all of the corners, there isn't a good overlap and we get gaps between contiguous day boxes\n * in Edge browser.\n *\n */\n var getWeekCornerStyles = function (classNames, initialWeeks) {\n var weekCornersStyled = {};\n /* need to handle setting all of the corners on arbitrarily shaped blobs\n __\n __|A |\n |B |C |__\n |D |E |F |\n \n in this case, A needs top left rounded, top right rounded\n B needs top left rounded\n C doesn't need any rounding\n D needs bottom left rounded\n E doesn't need any rounding\n F needs top right rounding\n */\n // cut off the animation transition weeks\n var weeks = initialWeeks.slice(1, initialWeeks.length - 1);\n // if there's an item above, lose both top corners. Item below, lose both bottom corners, etc.\n weeks.forEach(function (week, weekIndex) {\n week.forEach(function (day, dayIndex) {\n var above = weeks[weekIndex - 1] &&\n weeks[weekIndex - 1][dayIndex] &&\n isInSameHoverRange(weeks[weekIndex - 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex - 1][dayIndex].isSelected, day.isSelected);\n var below = weeks[weekIndex + 1] &&\n weeks[weekIndex + 1][dayIndex] &&\n isInSameHoverRange(weeks[weekIndex + 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex + 1][dayIndex].isSelected, day.isSelected);\n var left = weeks[weekIndex][dayIndex - 1] &&\n isInSameHoverRange(weeks[weekIndex][dayIndex - 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex - 1].isSelected, day.isSelected);\n var right = weeks[weekIndex][dayIndex + 1] &&\n isInSameHoverRange(weeks[weekIndex][dayIndex + 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex + 1].isSelected, day.isSelected);\n var style = [];\n style.push(calculateRoundedStyles(classNames, above, below, left, right));\n style.push(calculateBorderStyles(classNames, above, below, left, right));\n weekCornersStyled[weekIndex + '_' + dayIndex] = style.join(' ');\n });\n });\n return weekCornersStyled;\n };\n var calculateRoundedStyles = function (classNames, above, below, left, right) {\n var style = [];\n var roundedTopLeft = !above && !left;\n var roundedTopRight = !above && !right;\n var roundedBottomLeft = !below && !left;\n var roundedBottomRight = !below && !right;\n if (roundedTopLeft) {\n style.push(getRTL() ? classNames.topRightCornerDate : classNames.topLeftCornerDate);\n }\n if (roundedTopRight) {\n style.push(getRTL() ? classNames.topLeftCornerDate : classNames.topRightCornerDate);\n }\n if (roundedBottomLeft) {\n style.push(getRTL() ? classNames.bottomRightCornerDate : classNames.bottomLeftCornerDate);\n }\n if (roundedBottomRight) {\n style.push(getRTL() ? classNames.bottomLeftCornerDate : classNames.bottomRightCornerDate);\n }\n return style.join(' ');\n };\n var calculateBorderStyles = function (classNames, above, below, left, right) {\n var style = [];\n if (!above) {\n style.push(classNames.datesAbove);\n }\n if (!below) {\n style.push(classNames.datesBelow);\n }\n if (!left) {\n style.push(getRTL() ? classNames.datesRight : classNames.datesLeft);\n }\n if (!right) {\n style.push(getRTL() ? classNames.datesLeft : classNames.datesRight);\n }\n return style.join(' ');\n };\n var isInSameHoverRange = function (date1, date2, date1Selected, date2Selected) {\n var dateRangeType = props.dateRangeType, firstDayOfWeek = props.firstDayOfWeek, workWeekDays = props.workWeekDays;\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n var dateRangeHoverType = dateRangeType === DateRangeType.WorkWeek ? DateRangeType.Week : dateRangeType;\n // we do not pass daysToSelectInDayView because we handle setting those styles dyanamically in onMouseOver\n var dateRange = getDateRangeArray(date1, dateRangeHoverType, firstDayOfWeek, workWeekDays);\n if (date1Selected !== date2Selected) {\n // if one is selected and the other is not, they can't be in the same range\n return false;\n }\n else if (date1Selected && date2Selected) {\n // if they're both selected at the same time they must be in the same range\n return true;\n }\n // otherwise, both must be unselected, so check the dateRange\n return dateRange.filter(function (date) { return date.getTime() === date2.getTime(); }).length > 0;\n };\n return [getWeekCornerStyles, calculateRoundedStyles];\n}\nexport var CalendarDayGridBase = function (props) {\n var navigatedDayRef = React.useRef(null);\n var activeDescendantId = useId();\n var onSelectDate = function (selectedDate) {\n var _a, _b;\n var firstDayOfWeek = props.firstDayOfWeek, minDate = props.minDate, maxDate = props.maxDate, workWeekDays = props.workWeekDays, daysToSelectInDayView = props.daysToSelectInDayView, restrictedDates = props.restrictedDates;\n var restrictedDatesOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n var dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n dateRange = getBoundedDateRange(dateRange, minDate, maxDate);\n dateRange = dateRange.filter(function (d) {\n return !isRestrictedDate(d, restrictedDatesOptions);\n });\n (_a = props.onSelectDate) === null || _a === void 0 ? void 0 : _a.call(props, selectedDate, dateRange);\n (_b = props.onNavigateDate) === null || _b === void 0 ? void 0 : _b.call(props, selectedDate, true);\n };\n var _a = useDayRefs(), daysRef = _a[0], getSetRefCallback = _a[1];\n var weeks = useWeeks(props, onSelectDate, getSetRefCallback);\n var animateBackwards = useAnimateBackwards(weeks);\n var _b = useWeekCornerStyles(props), getWeekCornerStyles = _b[0], calculateRoundedStyles = _b[1];\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = navigatedDayRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n /**\n *\n * Section for setting hover/pressed styles. Because we want arbitrary blobs of days to be selectable, to support\n * highlighting every day in the month for month view, css :hover style isn't enough, so we need mouse callbacks\n * to set classnames on all relevant child refs to apply the styling\n *\n */\n var getDayInfosInRangeOfDay = function (dayToCompare) {\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n var dateRangeHoverType = getDateRangeTypeToUse(props.dateRangeType, props.workWeekDays);\n // gets all the dates for the given date range type that are in the same date range as the given day\n var dateRange = getDateRangeArray(dayToCompare.originalDate, dateRangeHoverType, props.firstDayOfWeek, props.workWeekDays, props.daysToSelectInDayView).map(function (date) { return date.getTime(); });\n // gets all the day refs for the given dates\n var dayInfosInRange = weeks.reduce(function (accumulatedValue, currentWeek) {\n return accumulatedValue.concat(currentWeek.filter(function (weekDay) { return dateRange.indexOf(weekDay.originalDate.getTime()) !== -1; }));\n }, []);\n return dayInfosInRange;\n };\n var getRefsFromDayInfos = function (dayInfosInRange) {\n var dayRefs = [];\n dayRefs = dayInfosInRange.map(function (dayInfo) { return daysRef.current[dayInfo.key]; });\n return dayRefs;\n };\n var styles = props.styles, theme = props.theme, className = props.className, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, labelledBy = props.labelledBy, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animationDirection = props.animationDirection;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n dateRangeType: dateRangeType,\n showWeekNumbers: showWeekNumbers,\n lightenDaysOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth === undefined ? true : lightenDaysOutsideNavigatedMonth,\n animationDirection: animationDirection,\n animateBackwards: animateBackwards,\n });\n // When the month is highlighted get the corner dates so that styles can be added to them\n var weekCorners = getWeekCornerStyles(classNames, weeks);\n var partialWeekProps = {\n weeks: weeks,\n navigatedDayRef: navigatedDayRef,\n calculateRoundedStyles: calculateRoundedStyles,\n activeDescendantId: activeDescendantId,\n classNames: classNames,\n weekCorners: weekCorners,\n getDayInfosInRangeOfDay: getDayInfosInRangeOfDay,\n getRefsFromDayInfos: getRefsFromDayInfos,\n };\n return (React.createElement(FocusZone, { className: classNames.wrapper, preventDefaultWhenHandled: true },\n React.createElement(\"table\", { className: classNames.table, \"aria-multiselectable\": \"false\", \"aria-labelledby\": labelledBy, \"aria-activedescendant\": activeDescendantId, role: \"grid\" },\n React.createElement(\"tbody\", null,\n React.createElement(CalendarMonthHeaderRow, __assign({}, props, { classNames: classNames, weeks: weeks })),\n React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[0], weekIndex: -1, rowClassName: classNames.firstTransitionWeek, ariaRole: \"presentation\", ariaHidden: true })),\n weeks.slice(1, weeks.length - 1).map(function (week, weekIndex) { return (React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { key: weekIndex, week: week, weekIndex: weekIndex, rowClassName: classNames.weekRow }))); }),\n React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[weeks.length - 1], weekIndex: -2, rowClassName: classNames.lastTransitionWeek, ariaRole: \"presentation\", ariaHidden: true }))))));\n};\nCalendarDayGridBase.displayName = 'CalendarDayGridBase';\n/**\n * When given work week, if the days are non-contiguous, the hover states look really weird. So for non-contiguous\n * work weeks, we'll just show week view instead.\n */\nfunction getDateRangeTypeToUse(dateRangeType, workWeekDays) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n var sortedWWDays = workWeekDays.slice().sort();\n var isContiguous = true;\n for (var i = 1; i < sortedWWDays.length; i++) {\n if (sortedWWDays[i] !== sortedWWDays[i - 1] + 1) {\n isContiguous = false;\n break;\n }\n }\n if (!isContiguous || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n}\n//# sourceMappingURL=CalendarDayGrid.base.js.map","import { addDays, compareDates, getDateRangeArray, isInDateRangeArray } from '../dateMath/dateMath';\nimport { DAYS_IN_WEEK } from '../dateValues/dateValues';\nimport { getDateRangeTypeToUse } from './getDateRangeTypeToUse';\nimport { getBoundedDateRange } from './getBoundedDateRange';\nimport { isRestrictedDate } from './isRestrictedDate';\n/**\n * Generates a grid of days, given the `options`.\n * Returns one additional week at the begining from the previous range\n * and one at the end from the future range\n * @param options - parameters to specify date related restrictions for the resulting grid\n */\nexport var getDayGrid = function (options) {\n var selectedDate = options.selectedDate, dateRangeType = options.dateRangeType, firstDayOfWeek = options.firstDayOfWeek, today = options.today, minDate = options.minDate, maxDate = options.maxDate, weeksToShow = options.weeksToShow, workWeekDays = options.workWeekDays, daysToSelectInDayView = options.daysToSelectInDayView, restrictedDates = options.restrictedDates, markedDays = options.markedDays;\n var restrictedDateOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n var todaysDate = today || new Date();\n var navigatedDate = options.navigatedDate ? options.navigatedDate : todaysDate;\n var date;\n if (weeksToShow && weeksToShow <= 4) {\n // if showing less than a full month, just use date == navigatedDate\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), navigatedDate.getDate());\n }\n else {\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n }\n var weeks = [];\n // Cycle the date backwards to get to the first day of the week.\n while (date.getDay() !== firstDayOfWeek) {\n date.setDate(date.getDate() - 1);\n }\n // add the transition week as last week of previous range\n date = addDays(date, -DAYS_IN_WEEK);\n // a flag to indicate whether all days of the week are outside the month\n var isAllDaysOfWeekOutOfMonth = false;\n // in work week view if the days aren't contiguous we use week view instead\n var selectedDateRangeType = getDateRangeTypeToUse(dateRangeType, workWeekDays, firstDayOfWeek);\n var selectedDates = [];\n if (selectedDate) {\n selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n selectedDates = getBoundedDateRange(selectedDates, minDate, maxDate);\n }\n var shouldGetWeeks = true;\n for (var weekIndex = 0; shouldGetWeeks; weekIndex++) {\n var week = [];\n isAllDaysOfWeekOutOfMonth = true;\n var _loop_1 = function (dayIndex) {\n var originalDate = new Date(date.getTime());\n var dayInfo = {\n key: date.toString(),\n date: date.getDate().toString(),\n originalDate: originalDate,\n isInMonth: date.getMonth() === navigatedDate.getMonth(),\n isToday: compareDates(todaysDate, date),\n isSelected: isInDateRangeArray(date, selectedDates),\n isInBounds: !isRestrictedDate(date, restrictedDateOptions),\n isMarked: (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(originalDate, markedDay); })) || false,\n };\n week.push(dayInfo);\n if (dayInfo.isInMonth) {\n isAllDaysOfWeekOutOfMonth = false;\n }\n date.setDate(date.getDate() + 1);\n };\n for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n _loop_1(dayIndex);\n }\n // We append the condition of the loop depending upon the showSixWeeksByDefault prop.\n shouldGetWeeks = weeksToShow ? weekIndex < weeksToShow + 1 : !isAllDaysOfWeekOutOfMonth || weekIndex === 0;\n // we don't check shouldGetWeeks before pushing because we want to add one extra week for transition state\n weeks.push(week);\n }\n return weeks;\n};\n//# sourceMappingURL=getDayGrid.js.map","import { DateRangeType } from '../dateValues/dateValues';\nimport { isContiguous } from './isContiguous';\n/**\n * Return corrected date range type, given `dateRangeType` and list of working days.\n * For non-contiguous working days and working week range type, returns general week range type.\n * For other cases returns input date range type.\n * @param dateRangeType - input type of range\n * @param workWeekDays - list of working days in a week\n */\nexport var getDateRangeTypeToUse = function (dateRangeType, workWeekDays, firstDayOfWeek) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n if (!isContiguous(workWeekDays, true, firstDayOfWeek) || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n};\n//# sourceMappingURL=getDateRangeTypeToUse.js.map","/**\n * Returns whether provided week days are contiguous.\n * @param days - list of days in a week\n * @param isSingleWeek - decides whether the contiguous logic applies across week boundaries or not\n * @param firstDayOfWeek - decides which day of week is the first one in the order.\n */\nexport var isContiguous = function (days, isSingleWeek, firstDayOfWeek) {\n var daySet = new Set(days);\n var amountOfNoNeighbors = 0;\n for (var _i = 0, days_1 = days; _i < days_1.length; _i++) {\n var day = days_1[_i];\n var nextDay = (day + 1) % 7;\n if (!(daySet.has(nextDay) && (!isSingleWeek || firstDayOfWeek !== nextDay))) {\n amountOfNoNeighbors++;\n }\n }\n // In case the full week is provided, then each day has a neighbor\n //, otherwise the last day does not have a neighbor.\n return amountOfNoNeighbors < 2;\n};\n//# sourceMappingURL=isContiguous.js.map","/**\n * {@docCategory Calendar}\n */\nexport var AnimationDirection;\n(function (AnimationDirection) {\n /**\n * Grid will transition out and in horizontally\n */\n AnimationDirection[AnimationDirection[\"Horizontal\"] = 0] = \"Horizontal\";\n /**\n * Grid will transition out and in vertically\n */\n AnimationDirection[AnimationDirection[\"Vertical\"] = 1] = \"Vertical\";\n})(AnimationDirection || (AnimationDirection = {}));\n//# sourceMappingURL=Calendar.types.js.map","import { __assign } from \"tslib\";\nimport { FontSizes, FontWeights, getFocusStyle, getGlobalClassNames, AnimationStyles, keyframes, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { DateRangeType } from '@fluentui/date-time-utilities';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nvar GlobalClassNames = {\n hoverStyle: 'ms-CalendarDay-hoverStyle',\n pressedStyle: 'ms-CalendarDay-pressedStyle',\n dayIsTodayStyle: 'ms-CalendarDay-dayIsToday',\n daySelectedStyle: 'ms-CalendarDay-daySelected',\n};\nvar transitionRowDisappearance = keyframes({\n '100%': {\n width: 0,\n height: 0,\n overflow: 'hidden',\n },\n '99.9%': {\n width: '100%',\n height: 28,\n overflow: 'visible',\n },\n '0%': {\n width: '100%',\n height: 28,\n overflow: 'visible',\n },\n});\nexport var styles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var theme = props.theme, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var rowAnimationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection === AnimationDirection.Horizontal) {\n rowAnimationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n }\n else {\n rowAnimationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n }\n }\n var firstTransitionRowAnimationStyle = {};\n var lastTransitionRowAnimationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection !== AnimationDirection.Horizontal) {\n firstTransitionRowAnimationStyle = animateBackwards ? { animationName: '' } : AnimationStyles.slideUpOut20;\n lastTransitionRowAnimationStyle = animateBackwards ? AnimationStyles.slideDownOut20 : { animationName: '' };\n }\n }\n var disabledStyle = {\n selectors: {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n },\n },\n };\n return {\n wrapper: {\n paddingBottom: 10,\n },\n table: [\n {\n textAlign: 'center',\n borderCollapse: 'collapse',\n borderSpacing: '0',\n tableLayout: 'fixed',\n fontSize: 'inherit',\n marginTop: 4,\n width: 196,\n position: 'relative',\n paddingBottom: 10,\n },\n showWeekNumbers && {\n width: 226,\n },\n ],\n dayCell: [\n getFocusStyle(theme, { inset: -3 }),\n {\n margin: 0,\n padding: 0,\n width: 28,\n height: 28,\n lineHeight: 28,\n fontSize: FontSizes.small,\n fontWeight: FontWeights.regular,\n color: palette.neutralPrimary,\n cursor: 'pointer',\n position: 'relative',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'transparent', zIndex: 0 }, getHighContrastNoAdjustStyle()),\n _a['&.' + classNames.hoverStyle] = {\n backgroundColor: palette.neutralLighter,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n zIndex: 3,\n backgroundColor: 'Window',\n outline: '1px solid Highlight',\n },\n _b),\n },\n _a['&.' + classNames.pressedStyle] = {\n backgroundColor: palette.neutralLight,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n backgroundColor: 'Window',\n },\n _c),\n },\n _a['&.' + classNames.pressedStyle + '.' + classNames.hoverStyle] = {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Window',\n outline: '1px solid Highlight',\n },\n _d),\n },\n _a),\n },\n ],\n daySelected: [\n dateRangeType !== DateRangeType.Month && {\n backgroundColor: palette.neutralLight + '!important',\n selectors: (_e = {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n },\n _e['&:hover, &.' + classNames.hoverStyle + ', &.' + classNames.pressedStyle] = (_f = {\n backgroundColor: palette.neutralLight + '!important'\n },\n _f[HighContrastSelector] = {\n color: 'HighlightText!important',\n background: 'Highlight!important',\n },\n _f),\n _e[HighContrastSelector] = __assign({ background: 'Highlight!important', color: 'HighlightText!important', borderColor: 'Highlight!important' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n ],\n weekRow: rowAnimationStyle,\n weekDayLabelCell: AnimationStyles.fadeIn200,\n weekNumberCell: {\n margin: 0,\n padding: 0,\n borderRight: '1px solid',\n borderColor: palette.neutralLight,\n backgroundColor: palette.neutralLighterAlt,\n color: palette.neutralSecondary,\n boxSizing: 'border-box',\n width: 28,\n height: 28,\n fontWeight: FontWeights.regular,\n fontSize: FontSizes.small,\n },\n dayOutsideBounds: disabledStyle,\n dayOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth && {\n color: palette.neutralSecondary,\n fontWeight: FontWeights.regular,\n },\n dayButton: {\n width: 24,\n height: 24,\n lineHeight: 24,\n fontSize: FontSizes.small,\n fontWeight: 'inherit',\n borderRadius: 2,\n border: 'none',\n padding: 0,\n color: 'inherit',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n overflow: 'visible',\n selectors: {\n span: {\n height: 'inherit',\n lineHeight: 'inherit',\n },\n },\n },\n dayIsToday: {\n backgroundColor: palette.themePrimary + '!important',\n borderRadius: '100%',\n color: palette.white + '!important',\n fontWeight: (FontWeights.semibold + '!important'),\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ background: 'WindowText!important', color: 'Window!important', borderColor: 'WindowText!important' }, getHighContrastNoAdjustStyle()),\n _g),\n },\n firstTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden' }, firstTransitionRowAnimationStyle), { animationName: firstTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n lastTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden', marginTop: -28 }, lastTransitionRowAnimationStyle), { animationName: lastTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n dayMarker: {\n width: 4,\n height: 4,\n backgroundColor: palette.neutralSecondary,\n borderRadius: '100%',\n bottom: 1,\n left: 0,\n right: 0,\n position: 'absolute',\n margin: 'auto',\n selectors: (_h = {},\n _h['.' + classNames.dayIsTodayStyle + ' &'] = {\n backgroundColor: palette.white,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _j),\n },\n _h['.' + classNames.daySelectedStyle + ' &'] = {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n backgroundColor: 'HighlightText',\n },\n _k),\n },\n _h[HighContrastSelector] = __assign({ backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n topRightCornerDate: {\n borderTopRightRadius: '2px',\n },\n topLeftCornerDate: {\n borderTopLeftRadius: '2px',\n },\n bottomRightCornerDate: {\n borderBottomRightRadius: '2px',\n },\n bottomLeftCornerDate: {\n borderBottomLeftRadius: '2px',\n },\n datesAbove: {\n '&::before': {\n borderTop: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesBelow: {\n '&::before': {\n borderBottom: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesLeft: {\n '&::before': {\n borderLeft: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesRight: {\n '&::before': {\n borderRight: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n };\n};\n//# sourceMappingURL=CalendarDayGrid.styles.js.map","import { CalendarDayGridBase } from './CalendarDayGrid.base';\nimport { styles } from './CalendarDayGrid.styles';\nimport { styled } from '../../Utilities';\nexport var CalendarDayGrid = styled(CalendarDayGridBase, styles, undefined, { scope: 'CalendarDayGrid' });\n//# sourceMappingURL=CalendarDayGrid.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, classNamesFunction, format } from '@fluentui/utilities';\nimport { Icon } from '../../../Icon';\nimport { addMonths, compareDatePart, getMonthStart, getMonthEnd } from '@fluentui/date-time-utilities';\nimport { CalendarDayGrid } from '../../CalendarDayGrid/CalendarDayGrid';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var CalendarDayBase = function (props) {\n var dayGrid = React.useRef(null);\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = dayGrid.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var strings = props.strings, navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, styles = props.styles, theme = props.theme, className = props.className, onHeaderSelect = props.onHeaderSelect, showSixWeeksByDefault = props.showSixWeeksByDefault, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, onNavigateDate = props.onNavigateDate, showWeekNumbers = props.showWeekNumbers, dateRangeType = props.dateRangeType, animationDirection = props.animationDirection;\n var monthAndYearId = useId();\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n animationDirection: animationDirection,\n });\n var monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n var HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n var headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? format(strings.yearPickerHeaderAriaLabel, monthAndYear)\n : monthAndYear;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(HeaderButtonComponentType, { \"aria-label\": onHeaderSelect ? headerAriaLabel : undefined, className: classNames.monthAndYear, onClick: onHeaderSelect, \"data-is-focusable\": !!onHeaderSelect, tabIndex: onHeaderSelect ? 0 : -1, onKeyDown: onButtonKeyDown(onHeaderSelect), type: \"button\" },\n React.createElement(\"span\", { id: monthAndYearId, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, monthAndYear)),\n React.createElement(CalendarDayNavigationButtons, __assign({}, props, { classNames: classNames }))),\n React.createElement(CalendarDayGrid, __assign({}, props, { styles: styles, componentRef: dayGrid, strings: strings, navigatedDate: navigatedDate, weeksToShow: showSixWeeksByDefault ? 6 : undefined, dateTimeFormatter: dateTimeFormatter, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, onNavigateDate: onNavigateDate, labelledBy: monthAndYearId, dateRangeType: dateRangeType }))));\n};\nCalendarDayBase.displayName = 'CalendarDayBase';\nvar CalendarDayNavigationButtons = function (props) {\n var _a, _b;\n var minDate = props.minDate, maxDate = props.maxDate, navigatedDate = props.navigatedDate, allFocusable = props.allFocusable, strings = props.strings, navigationIcons = props.navigationIcons, showCloseButton = props.showCloseButton, classNames = props.classNames, onNavigateDate = props.onNavigateDate, onDismiss = props.onDismiss;\n var onSelectNextMonth = function () {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n var onSelectPrevMonth = function () {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n var closeNavigationIcon = navigationIcons.closeIcon;\n // determine if previous/next months are in bounds\n var prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n var nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (React.createElement(\"div\", { className: classNames.monthComponents },\n React.createElement(\"button\", { className: css(classNames.headerIconButton, (_a = {},\n _a[classNames.disabledStyle] = !prevMonthInBounds,\n _a)), tabIndex: prevMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !prevMonthInBounds, onClick: prevMonthInBounds ? onSelectPrevMonth : undefined, onKeyDown: prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined, title: strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: leftNavigationIcon })),\n React.createElement(\"button\", { className: css(classNames.headerIconButton, (_b = {},\n _b[classNames.disabledStyle] = !nextMonthInBounds,\n _b)), tabIndex: nextMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !nextMonthInBounds, onClick: nextMonthInBounds ? onSelectNextMonth : undefined, onKeyDown: nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined, title: strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: rightNavigationIcon })),\n showCloseButton && (React.createElement(\"button\", { className: css(classNames.headerIconButton), onClick: onDismiss, onKeyDown: onButtonKeyDown(onDismiss), title: strings.closeButtonAriaLabel, type: \"button\" },\n React.createElement(Icon, { iconName: closeNavigationIcon })))));\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\nvar onButtonKeyDown = function (callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n callback === null || callback === void 0 ? void 0 : callback();\n break;\n }\n };\n};\n//# sourceMappingURL=CalendarDay.base.js.map","import { CalendarDayBase } from './CalendarDay.base';\nimport { styles } from './CalendarDay.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarDay = styled(CalendarDayBase, styles, undefined, {\n scope: 'CalendarDay',\n});\n//# sourceMappingURL=CalendarDay.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, headerIsClickable = props.headerIsClickable, showWeekNumbers = props.showWeekNumbers;\n var palette = theme.palette;\n var disabledStyle = {\n selectors: (_a = {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n forcedColorAdjust: 'none',\n },\n _a),\n };\n return {\n root: [\n normalize,\n {\n width: 196,\n padding: 12,\n boxSizing: 'content-box',\n },\n showWeekNumbers && {\n width: 226,\n },\n className,\n ],\n header: {\n position: 'relative',\n display: 'inline-flex',\n height: 28,\n lineHeight: 44,\n width: '100%',\n },\n monthAndYear: [\n getFocusStyle(theme, { inset: 1 }),\n __assign(__assign({}, AnimationStyles.fadeIn200), { alignItems: 'center', fontSize: FontSizes.medium, fontFamily: 'inherit', color: palette.neutralPrimary, display: 'inline-block', flexGrow: 1, fontWeight: FontWeights.semibold, padding: '0 4px 0 10px', border: 'none', backgroundColor: 'transparent', borderRadius: 2, lineHeight: 28, overflow: 'hidden', whiteSpace: 'nowrap', textAlign: 'left', textOverflow: 'ellipsis' }),\n headerIsClickable && {\n selectors: {\n '&:hover': {\n cursor: 'pointer',\n background: palette.neutralLight,\n color: palette.black,\n },\n },\n },\n ],\n monthComponents: {\n display: 'inline-flex',\n alignSelf: 'flex-end',\n },\n headerIconButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n width: 28,\n height: 28,\n display: 'block',\n textAlign: 'center',\n lineHeight: 28,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n color: palette.neutralPrimary,\n borderRadius: 2,\n position: 'relative',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n overflow: 'visible',\n selectors: {\n '&:hover': {\n color: palette.neutralDark,\n backgroundColor: palette.neutralLight,\n cursor: 'pointer',\n outline: '1px solid transparent',\n },\n },\n },\n ],\n disabledStyle: disabledStyle,\n };\n};\n//# sourceMappingURL=CalendarDay.styles.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { AnimationDirection } from '../Calendar.types';\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var className = props.className, theme = props.theme, hasHeaderClickCallback = props.hasHeaderClickCallback, highlightCurrent = props.highlightCurrent, highlightSelected = props.highlightSelected, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var palette = theme.palette;\n var animationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection === AnimationDirection.Horizontal) {\n animationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n }\n else {\n animationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n }\n }\n var headerAnimationStyle = animateBackwards !== undefined ? AnimationStyles.fadeIn200 : {};\n return {\n root: [\n normalize,\n {\n width: 196,\n padding: 12,\n boxSizing: 'content-box',\n overflow: 'hidden',\n },\n className,\n ],\n headerContainer: {\n display: 'flex',\n },\n currentItemButton: [\n getFocusStyle(theme, { inset: -1 }),\n __assign(__assign({}, headerAnimationStyle), { fontSize: FontSizes.medium, fontWeight: FontWeights.semibold, fontFamily: 'inherit', textAlign: 'left', color: 'inherit', backgroundColor: 'transparent', flexGrow: 1, padding: '0 4px 0 10px', border: 'none', overflow: 'visible' }),\n hasHeaderClickCallback && {\n selectors: {\n '&:hover, &:active': {\n cursor: !hasHeaderClickCallback ? 'default' : 'pointer',\n color: palette.neutralDark,\n outline: '1px solid transparent',\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n navigationButtonsContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n navigationButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n fontFamily: 'inherit',\n width: 28,\n minWidth: 28,\n height: 28,\n minHeight: 28,\n display: 'block',\n textAlign: 'center',\n lineHeight: 28,\n fontSize: FontSizes.small,\n color: palette.neutralPrimary,\n borderRadius: 2,\n position: 'relative',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n overflow: 'visible',\n selectors: {\n '&:hover': {\n color: palette.neutralDark,\n cursor: 'pointer',\n outline: '1px solid transparent',\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n gridContainer: {\n marginTop: 4,\n },\n buttonRow: __assign(__assign({}, animationStyle), { marginBottom: 16, selectors: {\n '&:nth-child(n + 3)': {\n marginBottom: 0,\n },\n } }),\n itemButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n width: 40,\n height: 40,\n minWidth: 40,\n minHeight: 40,\n lineHeight: 40,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n padding: 0,\n margin: '0 12px 0 0',\n color: palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: 'none',\n borderRadius: 2,\n overflow: 'visible',\n selectors: {\n '&:nth-child(4n + 4)': {\n marginRight: 0,\n },\n '&:nth-child(n + 9)': {\n marginBottom: 0,\n },\n '& div': {\n fontWeight: FontWeights.regular,\n },\n '&:hover': {\n color: palette.neutralDark,\n backgroundColor: palette.neutralLight,\n cursor: 'pointer',\n outline: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ background: 'Window', color: 'WindowText', outline: '1px solid Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n '&:active': {\n backgroundColor: palette.themeLight,\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ background: 'Window', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n },\n },\n ],\n current: highlightCurrent\n ? {\n color: palette.white,\n backgroundColor: palette.themePrimary,\n selectors: (_c = {\n '& div': {\n fontWeight: FontWeights.semibold,\n },\n '&:hover': {\n backgroundColor: palette.themePrimary,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _d),\n }\n },\n _c[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _c),\n }\n : {},\n selected: highlightSelected\n ? {\n color: palette.neutralPrimary,\n backgroundColor: palette.themeLight,\n fontWeight: FontWeights.semibold,\n selectors: (_e = {\n '& div': {\n fontWeight: FontWeights.semibold,\n },\n '&:hover, &:active': {\n backgroundColor: palette.themeLight,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n }\n },\n _e[HighContrastSelector] = __assign({ background: 'Highlight', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _e),\n }\n : {},\n disabled: {\n selectors: (_g = {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n }\n },\n _g[HighContrastSelector] = {\n color: 'GrayText',\n forcedColorAdjust: 'none',\n },\n _g),\n },\n };\n};\n//# sourceMappingURL=CalendarPicker.styles.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n /* Return styles from the base class.\n * If this component has extra styles not in the base, apply them here i.e.:\n * const myStyle: IStyle = {\n * display: \"block\"\n * }; *\n * return {...getPickerStyles(props), myStyle};\n */\n return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarMonth.styles.js.map","import { DEFAULT_CALENDAR_STRINGS } from '@fluentui/date-time-utilities';\nexport var defaultCalendarStrings = DEFAULT_CALENDAR_STRINGS;\n/**\n * @deprecated Use `defaultCalendarStrings`\n */\nexport var defaultDayPickerStrings = defaultCalendarStrings;\nexport var defaultCalendarNavigationIcons = {\n leftNavigation: 'Up',\n rightNavigation: 'Down',\n closeIcon: 'CalculatorMultiply',\n};\n//# sourceMappingURL=defaults.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, getRTL, classNamesFunction, css, format } from '../../../Utilities';\nimport { FocusZone } from '../../../FocusZone';\nimport { Icon } from '../../../Icon';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar getClassNames = classNamesFunction();\nvar CELL_COUNT = 12;\nvar CELLS_PER_ROW = 4;\nvar DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\nvar CalendarYearGridCell = function (props) {\n var _a;\n var _b;\n var styles = props.styles, theme = props.theme, className = props.className, highlightCurrentYear = props.highlightCurrentYear, highlightSelectedYear = props.highlightSelectedYear, year = props.year, selected = props.selected, disabled = props.disabled, componentRef = props.componentRef, onSelectYear = props.onSelectYear, onRenderYear = props.onRenderYear;\n var buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var onClick = function () {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n };\n var onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n }\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n return (React.createElement(\"button\", { className: css(classNames.itemButton, (_a = {},\n _a[classNames.selected] = selected,\n _a[classNames.disabled] = disabled,\n _a)), type: \"button\", role: \"gridcell\", onClick: !disabled ? onClick : undefined, onKeyDown: !disabled ? onKeyDown : undefined, disabled: disabled, \"aria-selected\": selected, ref: buttonRef }, (_b = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _b !== void 0 ? _b : year));\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nvar CalendarYearGrid = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, animationDirection = props.animationDirection, animateBackwards = props.animateBackwards, minYear = props.minYear, maxYear = props.maxYear, onSelectYear = props.onSelectYear, selectedYear = props.selectedYear, componentRef = props.componentRef;\n var selectedCellRef = React.useRef(null);\n var currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = (selectedCellRef.current || currentCellRef.current)) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var renderCell = function (yearToRender) {\n var selected = yearToRender === selectedYear;\n var disabled = (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n var current = yearToRender === new Date().getFullYear();\n return (React.createElement(CalendarYearGridCell, __assign({}, props, { key: yearToRender, year: yearToRender, selected: selected, current: current, disabled: disabled, onSelectYear: onSelectYear, componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined, theme: theme })));\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n var onRenderYear = function (value) {\n var _a, _b;\n return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, value)) !== null && _b !== void 0 ? _b : value;\n };\n var gridAriaLabel = \"\".concat(onRenderYear(fromYear), \" - \").concat(onRenderYear(toYear));\n var year = fromYear;\n var cells = [];\n for (var i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++) {\n cells.push([]);\n for (var j = 0; j < CELLS_PER_ROW; j++) {\n cells[i].push(renderCell(year));\n year++;\n }\n }\n return (React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": gridAriaLabel }, cells.map(function (cellRow, index) {\n return (React.createElement.apply(React, __spreadArray([\"div\", { key: 'yearPickerRow_' + index + '_' + fromYear, role: \"row\", className: classNames.buttonRow }], cellRow, false)));\n }))));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nvar CalendarYearNavDirection;\n(function (CalendarYearNavDirection) {\n CalendarYearNavDirection[CalendarYearNavDirection[\"Previous\"] = 0] = \"Previous\";\n CalendarYearNavDirection[CalendarYearNavDirection[\"Next\"] = 1] = \"Next\";\n})(CalendarYearNavDirection || (CalendarYearNavDirection = {}));\nvar CalendarYearNavArrow = function (props) {\n var _a;\n var styles = props.styles, theme = props.theme, className = props.className, _b = props.navigationIcons, navigationIcons = _b === void 0 ? defaultCalendarNavigationIcons : _b, _c = props.strings, strings = _c === void 0 ? DefaultCalendarYearStrings : _c, direction = props.direction, onSelectPrev = props.onSelectPrev, onSelectNext = props.onSelectNext, fromYear = props.fromYear, toYear = props.toYear, maxYear = props.maxYear, minYear = props.minYear;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n var newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n var newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n var ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n var disabled = direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n var onNavigate = function () {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();\n };\n var onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onNavigate();\n }\n };\n // can be condensed, but leaving verbose for clarity due to regressions\n var isLeftNavigation = getRTL()\n ? direction === CalendarYearNavDirection.Next\n : direction === CalendarYearNavDirection.Previous;\n return (React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n _a[classNames.disabled] = disabled,\n _a)), onClick: !disabled ? onNavigate : undefined, onKeyDown: !disabled ? onKeyDown : undefined, type: \"button\", title: ariaLabelString, disabled: disabled },\n React.createElement(Icon, { iconName: isLeftNavigation ? navigationIcons.leftNavigation : navigationIcons.rightNavigation })));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nvar CalendarYearNav = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Previous })),\n React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Next }))));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nvar CalendarYearTitle = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, _a = props.strings, strings = _a === void 0 ? DefaultCalendarYearStrings : _a, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var onHeaderSelect = function () {\n var _a;\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props, true);\n };\n var onHeaderKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n onHeaderSelect();\n }\n };\n var onRenderYear = function (year) {\n var _a, _b;\n return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, year)) !== null && _b !== void 0 ? _b : year;\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n if (props.onHeaderSelect) {\n var rangeAriaLabel = strings.rangeAriaLabel;\n var headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n var currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n var ariaLabel = headerAriaLabelFormatString\n ? format(headerAriaLabelFormatString, currentDateRange)\n : currentDateRange;\n return (React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onHeaderKeyDown, \"aria-label\": ariaLabel, role: \"button\", type: \"button\" },\n React.createElement(\"span\", { \"aria-live\": \"assertive\", \"aria-atomic\": \"true\" },\n onRenderYear(fromYear),\n \" - \",\n onRenderYear(toYear))));\n }\n return (React.createElement(\"div\", { className: classNames.current },\n onRenderYear(fromYear),\n \" - \",\n onRenderYear(toYear)));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nvar CalendarYearHeader = function (props) {\n var _a;\n var styles = props.styles, theme = props.theme, className = props.className, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection, onRenderTitle = props.onRenderTitle;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n return (React.createElement(\"div\", { className: classNames.headerContainer }, (_a = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _a !== void 0 ? _a : React.createElement(CalendarYearTitle, __assign({}, props)),\n React.createElement(CalendarYearNav, __assign({}, props))));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards(_a) {\n var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n var rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n var fromYear = Math.floor(rangeYear / 10) * 10;\n var previousFromYear = usePrevious(fromYear);\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n }\n else if (previousFromYear > fromYear) {\n return true;\n }\n else {\n return false;\n }\n}\nfunction useYearRangeState(_a) {\n var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n var rangeYear = React.useMemo(function () {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n var _b = React.useState(rangeYear), fromYear = _b[0], setFromYear = _b[1];\n var onNavNext = function () {\n setFromYear(function (year) { return year + CELL_COUNT; });\n };\n var onNavPrevious = function () {\n setFromYear(function (year) { return year - CELL_COUNT; });\n };\n React.useEffect(function () {\n setFromYear(rangeYear);\n }, [rangeYear]);\n var toYear = fromYear + CELL_COUNT - 1;\n return [fromYear, toYear, onNavNext, onNavPrevious];\n}\nexport var CalendarYearBase = function (props) {\n var animateBackwards = useAnimateBackwards(props);\n var _a = useYearRangeState(props), fromYear = _a[0], toYear = _a[1], onNavNext = _a[2], onNavPrevious = _a[3];\n var gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); });\n var styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(CalendarYearHeader, __assign({}, props, { fromYear: fromYear, toYear: toYear, onSelectPrev: onNavPrevious, onSelectNext: onNavNext, animateBackwards: animateBackwards })),\n React.createElement(CalendarYearGrid, __assign({}, props, { fromYear: fromYear, toYear: toYear, animateBackwards: animateBackwards, componentRef: gridRef }))));\n};\nCalendarYearBase.displayName = 'CalendarYearBase';\n//# sourceMappingURL=CalendarYear.base.js.map","import { getStyles } from './CalendarYear.styles';\nimport { styled } from '../../../Utilities';\nimport { CalendarYearBase } from './CalendarYear.base';\nexport var CalendarYear = styled(CalendarYearBase, getStyles, undefined, { scope: 'CalendarYear' });\n//# sourceMappingURL=CalendarYear.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n /* Return styles from the base class.\n * If this component has extra styles not in the base, apply them here i.e.:\n * const myStyle: IStyle = {\n * display: \"block\"\n * };\n * return {...getPickerStyles(props), myStyle};\n */\n return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarYear.styles.js.map","import * as React from 'react';\nimport { FocusZone } from '../../../FocusZone';\nimport { addYears, setMonth, getYearStart, getYearEnd, getMonthStart, getMonthEnd, compareDatePart, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { Icon } from '../../../Icon';\nimport { getStyles } from './CalendarMonth.styles';\nimport { css, getRTL, classNamesFunction, KeyCodes, format, getPropsWithDefaults } from '@fluentui/utilities';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar MONTHS_PER_ROW = 4;\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n styles: getStyles,\n strings: undefined,\n navigationIcons: defaultCalendarNavigationIcons,\n dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n yearPickerHidden: false,\n};\nfunction useAnimateBackwards(_a) {\n var navigatedDate = _a.navigatedDate;\n var currentYear = navigatedDate.getFullYear();\n var previousYear = usePrevious(currentYear);\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n }\n else {\n return previousYear > currentYear;\n }\n}\nfunction useFocusLogic(_a) {\n var componentRef = _a.componentRef;\n var navigatedMonthRef = React.useRef(null);\n var calendarYearRef = React.useRef(null);\n var focusOnUpdate = React.useRef(false);\n var focus = React.useCallback(function () {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n }\n else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n React.useEffect(function () {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n var focusOnNextUpdate = function () {\n focusOnUpdate.current = true;\n };\n return [navigatedMonthRef, calendarYearRef, focusOnNextUpdate];\n}\nexport var CalendarMonthBase = function (propsWithoutDefaults) {\n var _a, _b;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var _c = useFocusLogic(props), navigatedMonthRef = _c[0], calendarYearRef = _c[1], focusOnNextUpdate = _c[2];\n var _d = React.useState(false), isYearPickerVisible = _d[0], setIsYearPickerVisible = _d[1];\n var animateBackwards = useAnimateBackwards(props);\n var navigatedDate = props.navigatedDate, selectedDate = props.selectedDate, strings = props.strings, _e = props.today, today = _e === void 0 ? new Date() : _e, navigationIcons = props.navigationIcons, dateTimeFormatter = props.dateTimeFormatter, minDate = props.minDate, maxDate = props.maxDate, theme = props.theme, styles = props.styles, className = props.className, allFocusable = props.allFocusable, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, animationDirection = props.animationDirection, yearPickerHidden = props.yearPickerHidden, onNavigateDate = props.onNavigateDate;\n var selectMonthCallback = function (newMonth) {\n return function () { return onSelectMonth(newMonth); };\n };\n var onSelectNextYear = function () {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n var onSelectPrevYear = function () {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n var onSelectMonth = function (newMonth) {\n var _a;\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n var onHeaderSelect = function () {\n var _a;\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n }\n else {\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n };\n var onSelectYear = function (selectedYear) {\n focusOnNextUpdate();\n var navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n var newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n }\n else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n var onYearPickerHeaderSelect = function (focus) {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n // navigationIcons has a default value in defaultProps, but typescript doesn't recognize this\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n var dateFormatter = dateTimeFormatter;\n // determine if previous/next years are in bounds\n var isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n var isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n if (isYearPickerVisible) {\n var _f = getYearStrings(props), onRenderYear = _f[0], yearStrings = _f[1];\n // use navigated date for the year picker\n return (React.createElement(CalendarYear, { key: 'calendarYear', minYear: minDate ? minDate.getFullYear() : undefined, maxYear: maxDate ? maxDate.getFullYear() : undefined, \n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear: onSelectYear, navigationIcons: navigationIcons, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onYearPickerHeaderSelect, selectedYear: selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined, navigatedYear: navigatedDate.getFullYear(), onRenderYear: onRenderYear, strings: yearStrings, componentRef: calendarYearRef, styles: styles, highlightCurrentYear: highlightCurrentMonth, highlightSelectedYear: highlightSelectedMonth, animationDirection: animationDirection }));\n }\n var rowIndexes = [];\n for (var i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n var yearString = dateFormatter.formatYear(navigatedDate);\n var headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? format(strings.monthPickerHeaderAriaLabel, yearString)\n : yearString;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.headerContainer },\n React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onButtonKeyDown(onHeaderSelect), \"aria-label\": headerAriaLabel, \"data-is-focusable\": !!props.onHeaderSelect || !yearPickerHidden, tabIndex: !!props.onHeaderSelect || !yearPickerHidden ? 0 : -1, type: \"button\" },\n React.createElement(\"span\", { \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, yearString)),\n React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n _a[classNames.disabled] = !isPrevYearInBounds,\n _a)), \"aria-disabled\": !isPrevYearInBounds, tabIndex: isPrevYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isPrevYearInBounds ? onSelectPrevYear : undefined, onKeyDown: isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined, title: strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? rightNavigationIcon : leftNavigationIcon })),\n React.createElement(\"button\", { className: css(classNames.navigationButton, (_b = {},\n _b[classNames.disabled] = !isNextYearInBounds,\n _b)), \"aria-disabled\": !isNextYearInBounds, tabIndex: isNextYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isNextYearInBounds ? onSelectNextYear : undefined, onKeyDown: isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined, title: strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? leftNavigationIcon : rightNavigationIcon })))),\n React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": yearString }, rowIndexes.map(function (rowNum) {\n var monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (React.createElement(\"div\", { key: 'monthRow_' + rowNum + navigatedDate.getFullYear(), role: \"row\", className: classNames.buttonRow }, monthsForRow.map(function (month, index) {\n var _a;\n var monthIndex = rowNum * MONTHS_PER_ROW + index;\n var indexedMonth = setMonth(navigatedDate, monthIndex);\n var isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n var isSelectedMonth = selectedDate.getMonth() === monthIndex;\n var isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n var isInBounds = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n return (React.createElement(\"button\", { ref: isNavigatedMonth ? navigatedMonthRef : undefined, role: 'gridcell', className: css(classNames.itemButton, (_a = {},\n _a[classNames.current] = highlightCurrentMonth && isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today),\n _a[classNames.selected] = highlightSelectedMonth && isSelectedMonth && isSelectedYear,\n _a[classNames.disabled] = !isInBounds,\n _a)), disabled: !allFocusable && !isInBounds, key: monthIndex, onClick: isInBounds ? selectMonthCallback(monthIndex) : undefined, onKeyDown: isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined, \"aria-label\": dateFormatter.formatMonth(indexedMonth, strings), \"aria-selected\": isNavigatedMonth, \"data-is-focusable\": isInBounds ? true : undefined, type: \"button\" }, month));\n })));\n })))));\n};\nCalendarMonthBase.displayName = 'CalendarMonthBase';\nfunction getYearStrings(_a) {\n var strings = _a.strings, navigatedDate = _a.navigatedDate, dateTimeFormatter = _a.dateTimeFormatter;\n var yearToString = function (year) {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n var yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n var yearRangeToString = function (yearRange) {\n return \"\".concat(yearToString(yearRange.fromYear), \" - \").concat(yearToString(yearRange.toYear));\n };\n var yearRangeToNextDecadeLabel = function (yearRange) {\n return strings.nextYearRangeAriaLabel ? \"\".concat(strings.nextYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n };\n var yearRangeToPrevDecadeLabel = function (yearRange) {\n return strings.prevYearRangeAriaLabel ? \"\".concat(strings.prevYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n };\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n },\n ];\n}\nfunction isCurrentMonth(month, year, today) {\n return today.getFullYear() === year && today.getMonth() === month;\n}\nfunction onButtonKeyDown(callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n callback();\n break;\n }\n };\n}\n//# sourceMappingURL=CalendarMonth.base.js.map","import { CalendarMonthBase } from './CalendarMonth.base';\nimport { getStyles } from './CalendarMonth.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarMonth = styled(CalendarMonthBase, getStyles, undefined, { scope: 'CalendarMonth' });\n//# sourceMappingURL=CalendarMonth.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DayOfWeek, FirstWeekOfYear, DateRangeType, addMonths, addYears, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { CalendarDay } from './CalendarDay/CalendarDay';\nimport { CalendarMonth } from './CalendarMonth/CalendarMonth';\nimport { css, KeyCodes, classNamesFunction, focusAsync, format, FocusRects, getPropsWithDefaults, getWindow, } from '@fluentui/utilities';\nimport { useControllableValue } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from './defaults';\nvar MIN_SIZE_FORCE_OVERLAY = 440;\nvar getClassNames = classNamesFunction();\nvar defaultWorkWeekDays = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\nvar DEFAULT_PROPS = {\n isMonthPickerVisible: true,\n isDayPickerVisible: true,\n showMonthPickerAsOverlay: false,\n today: new Date(),\n firstDayOfWeek: DayOfWeek.Sunday,\n dateRangeType: DateRangeType.Day,\n showGoToToday: true,\n strings: DEFAULT_CALENDAR_STRINGS,\n highlightCurrentMonth: false,\n highlightSelectedMonth: false,\n navigationIcons: defaultCalendarNavigationIcons,\n showWeekNumbers: false,\n firstWeekOfYear: FirstWeekOfYear.FirstDay,\n dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n showSixWeeksByDefault: false,\n workWeekDays: defaultWorkWeekDays,\n showCloseButton: false,\n allFocusable: false,\n};\nfunction useDateState(_a) {\n var value = _a.value, _b = _a.today, today = _b === void 0 ? new Date() : _b, onSelectDate = _a.onSelectDate;\n /** The currently selected date in the calendar */\n var _c = useControllableValue(value, today), _d = _c[0], selectedDate = _d === void 0 ? today : _d, setSelectedDate = _c[1];\n /** The currently focused date in the day picker, but not necessarily selected */\n var _e = React.useState(value), _f = _e[0], navigatedDay = _f === void 0 ? today : _f, setNavigatedDay = _e[1];\n /** The currently focused date in the month picker, but not necessarily selected */\n var _g = React.useState(value), _h = _g[0], navigatedMonth = _h === void 0 ? today : _h, setNavigatedMonth = _g[1];\n /** If using a controlled value, when that value changes, navigate to that date */\n var _j = React.useState(value), _k = _j[0], lastSelectedDate = _k === void 0 ? today : _k, setLastSelectedDate = _j[1];\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n var navigateMonth = function (date) {\n setNavigatedMonth(date);\n };\n var navigateDay = function (date) {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n var onDateSelected = function (date, selectedDateRangeArray) {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];\n}\nfunction useVisibilityState(props) {\n /** State used to show/hide month picker */\n var _a = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isMonthPickerVisible, false), _b = _a[0], isMonthPickerVisible = _b === void 0 ? true : _b, setIsMonthPickerVisible = _a[1];\n /** State used to show/hide day picker */\n var _c = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isDayPickerVisible, true), _d = _c[0], isDayPickerVisible = _d === void 0 ? true : _d, setIsDayPickerVisible = _c[1];\n var toggleDayMonthPickerVisibility = function () {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];\n}\nfunction useFocusLogic(_a, isDayPickerVisible, isMonthPickerVisible) {\n var componentRef = _a.componentRef;\n var dayPicker = React.useRef(null);\n var monthPicker = React.useRef(null);\n var focusOnUpdate = React.useRef(false);\n var focus = React.useCallback(function () {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n }\n else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n React.useEffect(function () {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n var focusOnNextUpdate = function () {\n focusOnUpdate.current = true;\n };\n return [dayPicker, monthPicker, focusOnNextUpdate];\n}\nexport var CalendarBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var _a = useDateState(props), selectedDate = _a[0], navigatedDay = _a[1], navigatedMonth = _a[2], onDateSelected = _a[3], navigateDay = _a[4], navigateMonth = _a[5];\n var _b = useVisibilityState(props), isMonthPickerVisible = _b[0], isDayPickerVisible = _b[1], toggleDayMonthPickerVisibility = _b[2];\n var _c = useFocusLogic(props, isDayPickerVisible, isMonthPickerVisible), dayPicker = _c[0], monthPicker = _c[1], focusOnNextUpdate = _c[2];\n var renderGoToTodayButton = function () {\n var goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n return (showGoToToday && (React.createElement(\"button\", { className: css('js-goToday', classes.goTodayButton), onClick: onGotoToday, onKeyDown: onButtonKeyDown(onGotoToday), type: \"button\", disabled: !goTodayEnabled }, strings.goToToday)));\n };\n var onNavigateDayDate = function (date, focusOnNavigatedDay) {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n var onNavigateMonthDate = function (date, focusOnNavigatedDay) {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n var onHeaderSelect = getShowMonthPickerAsOverlay(props)\n ? function () {\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n }\n : undefined;\n var onGotoToday = function () {\n navigateDay(today);\n focusOnNextUpdate();\n };\n var onButtonKeyDown = function (callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n case KeyCodes.space:\n callback();\n break;\n }\n };\n };\n var onDatePickerPopupKeyDown = function (ev) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n ev.preventDefault();\n break;\n case KeyCodes.backspace:\n ev.preventDefault();\n break;\n case KeyCodes.escape:\n (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);\n break;\n case KeyCodes.pageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n }\n else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case KeyCodes.pageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n }\n else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n var rootClass = 'ms-DatePicker';\n var firstDayOfWeek = props.firstDayOfWeek, dateRangeType = props.dateRangeType, strings = props.strings, showGoToToday = props.showGoToToday, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, navigationIcons = props.navigationIcons, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, id = props.id, className = props.className, showCloseButton = props.showCloseButton, allFocusable = props.allFocusable, styles = props.styles, showWeekNumbers = props.showWeekNumbers, theme = props.theme, calendarDayProps = props.calendarDayProps, calendarMonthProps = props.calendarMonthProps, dateTimeFormatter = props.dateTimeFormatter, _d = props.today, today = _d === void 0 ? new Date() : _d;\n var showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n var monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n var overlaidWithButton = showMonthPickerAsOverlay && showGoToToday;\n var classes = getClassNames(styles, {\n theme: theme,\n className: className,\n isMonthPickerVisible: isMonthPickerVisible,\n isDayPickerVisible: isDayPickerVisible,\n monthPickerOnly: monthPickerOnly,\n showMonthPickerAsOverlay: showMonthPickerAsOverlay,\n overlaidWithButton: overlaidWithButton,\n overlayedWithButton: overlaidWithButton,\n showGoToToday: showGoToToday,\n showWeekNumbers: showWeekNumbers,\n });\n var todayDateString = '';\n var selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = format(strings.todayDateFormatString, dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n var dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = format(strings.selectedDateFormatString, dateStringFormatter(selectedDate, strings));\n }\n var selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return (React.createElement(\"div\", { id: id, ref: forwardedRef, role: \"group\", \"aria-label\": selectionAndTodayString, className: css(rootClass, classes.root, className, 'ms-slideDownIn10'), onKeyDown: onDatePickerPopupKeyDown },\n React.createElement(\"div\", { className: classes.liveRegion, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" },\n React.createElement(\"span\", null, selectedDateString)),\n isDayPickerVisible && (React.createElement(CalendarDay, __assign({ selectedDate: selectedDate, navigatedDate: navigatedDay, today: props.today, onSelectDate: onDateSelected, \n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate, onDismiss: props.onDismiss, firstDayOfWeek: firstDayOfWeek, dateRangeType: dateRangeType, strings: strings, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, showWeekNumbers: props.showWeekNumbers, firstWeekOfYear: props.firstWeekOfYear, dateTimeFormatter: props.dateTimeFormatter, showSixWeeksByDefault: props.showSixWeeksByDefault, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, workWeekDays: props.workWeekDays, componentRef: dayPicker, showCloseButton: showCloseButton, allFocusable: allFocusable }, calendarDayProps))),\n isDayPickerVisible && isMonthPickerVisible && React.createElement(\"div\", { className: classes.divider }),\n isMonthPickerVisible ? (React.createElement(\"div\", { className: classes.monthPickerWrapper },\n React.createElement(CalendarMonth, __assign({ navigatedDate: navigatedMonth, selectedDate: navigatedDay, strings: strings, \n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate, today: props.today, highlightCurrentMonth: highlightCurrentMonth, highlightSelectedMonth: highlightSelectedMonth, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, dateTimeFormatter: props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: monthPicker }, calendarMonthProps)),\n renderGoToTodayButton())) : (renderGoToTodayButton()),\n React.createElement(FocusRects, null)));\n});\nCalendarBase.displayName = 'CalendarBase';\nfunction getShowMonthPickerAsOverlay(_a) {\n var showMonthPickerAsOverlay = _a.showMonthPickerAsOverlay, isDayPickerVisible = _a.isDayPickerVisible;\n var win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n//# sourceMappingURL=Calendar.base.js.map","import { normalize, FontSizes, getFocusStyle, HighContrastSelector } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isDayPickerVisible = props.isDayPickerVisible, isMonthPickerVisible = props.isMonthPickerVisible, showWeekNumbers = props.showWeekNumbers;\n var palette = theme.palette;\n var totalWidth = isDayPickerVisible && isMonthPickerVisible ? 440 : 220;\n if (showWeekNumbers && isDayPickerVisible) {\n totalWidth += 30;\n }\n return {\n root: [\n normalize,\n {\n display: 'flex',\n width: totalWidth,\n },\n !isMonthPickerVisible && {\n flexDirection: 'column',\n },\n className,\n ],\n divider: {\n top: 0,\n borderRight: '1px solid',\n borderColor: palette.neutralLight,\n },\n monthPickerWrapper: [\n {\n display: 'flex',\n flexDirection: 'column',\n },\n ],\n goTodayButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n bottom: 0,\n color: palette.neutralPrimary,\n height: 30,\n lineHeight: 30,\n backgroundColor: 'transparent',\n border: 'none',\n boxSizing: 'content-box',\n padding: '0 4px',\n alignSelf: 'flex-end',\n marginRight: 16,\n marginTop: 3,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n overflow: 'visible',\n selectors: {\n '& div': {\n fontSize: FontSizes.small,\n },\n '&:hover': {\n color: palette.themePrimary,\n backgroundColor: 'transparent',\n cursor: 'pointer',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n outline: '1px solid Buttontext',\n borderRadius: '2px',\n },\n _a),\n },\n '&:active': {\n color: palette.themeDark,\n },\n '&:disabled': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n },\n },\n },\n ],\n liveRegion: {\n border: 0,\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n width: '1px',\n position: 'absolute',\n },\n };\n};\n//# sourceMappingURL=Calendar.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CalendarBase } from './Calendar.base';\nimport { styles } from './Calendar.styles';\nexport var Calendar = styled(CalendarBase, styles, undefined, {\n scope: 'Calendar',\n});\n//# sourceMappingURL=Calendar.js.map","import { __assign } from \"tslib\";\nimport { defaultCalendarStrings } from '../../Calendar';\nexport var defaultDatePickerStrings = __assign(__assign({}, defaultCalendarStrings), { prevMonthAriaLabel: 'Go to previous month', nextMonthAriaLabel: 'Go to next month', prevYearAriaLabel: 'Go to previous year', nextYearAriaLabel: 'Go to next year', closeButtonAriaLabel: 'Close date picker', isRequiredErrorMessage: 'Field is required', invalidInputErrorMessage: 'Invalid date format', isResetStatusMessage: 'Invalid entry \"{0}\", date reset to \"{1}\"' });\n//# sourceMappingURL=defaults.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, getNativeProps, divProperties, css, format, getPropsWithDefaults, } from '@fluentui/utilities';\nimport { Calendar } from '../../Calendar';\nimport { FirstWeekOfYear, getDatePartHashValue, compareDatePart, DayOfWeek } from '@fluentui/date-time-utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { mergeStyles } from '../../Styling';\nimport { TextField } from '../../TextField';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { useId, useAsync, useControllableValue } from '@fluentui/react-hooks';\nimport { defaultDatePickerStrings } from './defaults';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n allowTextInput: false,\n formatDate: function (date) { return (date ? date.toDateString() : ''); },\n parseDateFromString: function (dateStr) {\n //if dateStr is DATE ONLY ISO 8601 -> add time so Date.parse() won't convert it to UTC\n //See here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#date_time_string_format\n if (dateStr.match(/^\\d{4}(-\\d{2}){2}$/)) {\n dateStr += 'T12:00';\n }\n var date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n },\n firstDayOfWeek: DayOfWeek.Sunday,\n initialPickerDate: new Date(),\n isRequired: false,\n isMonthPickerVisible: true,\n showMonthPickerAsOverlay: false,\n strings: defaultDatePickerStrings,\n highlightCurrentMonth: false,\n highlightSelectedMonth: false,\n borderless: false,\n pickerAriaLabel: 'Calendar',\n showWeekNumbers: false,\n firstWeekOfYear: FirstWeekOfYear.FirstDay,\n showGoToToday: true,\n showCloseButton: false,\n underlined: false,\n allFocusable: false,\n};\nfunction useFocusLogic() {\n var textFieldRef = React.useRef(null);\n var preventFocusOpeningPicker = React.useRef(false);\n var focus = function () {\n var _a, _b;\n (_b = (_a = textFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n var preventNextFocusOpeningPicker = function () {\n preventFocusOpeningPicker.current = true;\n };\n return [textFieldRef, focus, preventFocusOpeningPicker, preventNextFocusOpeningPicker];\n}\nfunction useCalendarVisibility(_a, focus) {\n var allowTextInput = _a.allowTextInput, onAfterMenuDismiss = _a.onAfterMenuDismiss;\n var _b = React.useState(false), isCalendarShown = _b[0], setIsCalendarShown = _b[1];\n var isMounted = React.useRef(false);\n var async = useAsync();\n React.useEffect(function () {\n if (isMounted.current && !isCalendarShown) {\n // In browsers like IE, textfield gets unfocused when datepicker is collapsed\n if (allowTextInput) {\n async.requestAnimationFrame(focus);\n }\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n onAfterMenuDismiss === null || onAfterMenuDismiss === void 0 ? void 0 : onAfterMenuDismiss();\n }\n isMounted.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCalendarShown]);\n return [isCalendarShown, setIsCalendarShown];\n}\nfunction useSelectedDate(_a) {\n var formatDate = _a.formatDate, value = _a.value, onSelectDate = _a.onSelectDate;\n var _b = useControllableValue(value, undefined, function (ev, newValue) {\n return onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newValue);\n }), selectedDate = _b[0], setSelectedDateState = _b[1];\n var _c = React.useState(function () { return (value && formatDate ? formatDate(value) : ''); }), formattedDate = _c[0], setFormattedDate = _c[1];\n var setSelectedDate = function (newDate) {\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n React.useEffect(function () {\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [formatDate, value]);\n return [selectedDate, formattedDate, setSelectedDate, setFormattedDate];\n}\nfunction useErrorMessage(_a, selectedDate, setSelectedDate, inputValue, isCalendarShown) {\n var _b;\n var isRequired = _a.isRequired, allowTextInput = _a.allowTextInput, strings = _a.strings, parseDateFromString = _a.parseDateFromString, onSelectDate = _a.onSelectDate, formatDate = _a.formatDate, minDate = _a.minDate, maxDate = _a.maxDate, textField = _a.textField;\n var _c = React.useState(), errorMessage = _c[0], setErrorMessage = _c[1];\n var _d = React.useState(), statusMessage = _d[0], setStatusMessage = _d[1];\n var isFirstLoadRef = React.useRef(true);\n var validateOnLoad = (_b = textField === null || textField === void 0 ? void 0 : textField.validateOnLoad) !== null && _b !== void 0 ? _b : true;\n var validateTextInput = function (date) {\n if (date === void 0) { date = null; }\n if (allowTextInput) {\n if (inputValue || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && !errorMessage && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === inputValue) {\n return;\n }\n date = date || parseDateFromString(inputValue);\n // Check if date is null, or date is Invalid Date\n if (!date || isNaN(date.getTime())) {\n // Reset invalid input field, if formatting is available\n setSelectedDate(selectedDate);\n // default the newer isResetStatusMessage string to invalidInputErrorMessage for legacy support\n var selectedText = formatDate ? formatDate(selectedDate) : '';\n var statusText = strings.isResetStatusMessage\n ? format(strings.isResetStatusMessage, inputValue, selectedText)\n : strings.invalidInputErrorMessage || '';\n setStatusMessage(statusText);\n }\n else {\n // Check against optional date boundaries\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n setErrorMessage(strings.isOutOfBoundsErrorMessage || ' ');\n }\n else {\n setSelectedDate(date);\n setErrorMessage(undefined);\n setStatusMessage(undefined);\n }\n }\n }\n else {\n // Only show error for empty inputValue if it is a required field\n setErrorMessage(isRequired ? strings.isRequiredErrorMessage || ' ' : undefined);\n // If no input date string or input date string is invalid\n // date variable will be null, callback should expect null value for this case\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date);\n }\n }\n else if (isRequired && !inputValue) {\n // Check when DatePicker is a required field but has NO input value\n setErrorMessage(strings.isRequiredErrorMessage || ' ');\n }\n else {\n // Cleanup the error message and status message\n setErrorMessage(undefined);\n setStatusMessage(undefined);\n }\n };\n React.useEffect(function () {\n if (isFirstLoadRef.current) {\n isFirstLoadRef.current = false;\n if (!validateOnLoad) {\n return;\n }\n }\n if (isRequired && !selectedDate) {\n setErrorMessage(strings.isRequiredErrorMessage || ' ');\n }\n else if (selectedDate && isDateOutOfBounds(selectedDate, minDate, maxDate)) {\n setErrorMessage(strings.isOutOfBoundsErrorMessage || ' ');\n }\n else {\n setErrorMessage(undefined);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // We don't want to compare the date itself, since two instances of date at the same time are not equal\n // eslint-disable-next-line react-hooks/exhaustive-deps\n minDate && getDatePartHashValue(minDate),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n maxDate && getDatePartHashValue(maxDate),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n selectedDate && getDatePartHashValue(selectedDate),\n isRequired,\n validateOnLoad,\n ]);\n return [\n isCalendarShown ? undefined : errorMessage,\n validateTextInput,\n setErrorMessage,\n isCalendarShown ? undefined : statusMessage,\n setStatusMessage,\n ];\n}\nexport var DatePickerBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a, _b;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var firstDayOfWeek = props.firstDayOfWeek, strings = props.strings, label = props.label, theme = props.theme, className = props.className, styles = props.styles, initialPickerDate = props.initialPickerDate, isRequired = props.isRequired, disabled = props.disabled, ariaLabel = props.ariaLabel, pickerAriaLabel = props.pickerAriaLabel, placeholder = props.placeholder, allowTextInput = props.allowTextInput, borderless = props.borderless, minDate = props.minDate, maxDate = props.maxDate, showCloseButton = props.showCloseButton, calendarProps = props.calendarProps, calloutProps = props.calloutProps, textFieldProps = props.textField, underlined = props.underlined, allFocusable = props.allFocusable, _c = props.calendarAs, CalendarType = _c === void 0 ? Calendar : _c, tabIndex = props.tabIndex, _d = props.disableAutoFocus, disableAutoFocus = _d === void 0 ? true : _d;\n var id = useId('DatePicker', props.id);\n var calloutId = useId('DatePicker-Callout');\n var calendar = React.useRef(null);\n var datePickerDiv = React.useRef(null);\n var _e = useFocusLogic(), textFieldRef = _e[0], focus = _e[1], preventFocusOpeningPicker = _e[2], preventNextFocusOpeningPicker = _e[3];\n var _f = useCalendarVisibility(props, focus), isCalendarShown = _f[0], setIsCalendarShown = _f[1];\n var _g = useSelectedDate(props), selectedDate = _g[0], formattedDate = _g[1], setSelectedDate = _g[2], setFormattedDate = _g[3];\n var _h = useErrorMessage(props, selectedDate, setSelectedDate, formattedDate, isCalendarShown), errorMessage = _h[0], validateTextInput = _h[1], setErrorMessage = _h[2], statusMessage = _h[3], setStatusMessage = _h[4];\n var showDatePickerPopup = React.useCallback(function () {\n if (!isCalendarShown) {\n preventNextFocusOpeningPicker();\n setIsCalendarShown(true);\n }\n }, [isCalendarShown, preventNextFocusOpeningPicker, setIsCalendarShown]);\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: focus,\n reset: function () {\n setIsCalendarShown(false);\n setSelectedDate(undefined);\n setErrorMessage(undefined);\n setStatusMessage(undefined);\n },\n showDatePickerPopup: showDatePickerPopup,\n }); }, [focus, setErrorMessage, setIsCalendarShown, setSelectedDate, setStatusMessage, showDatePickerPopup]);\n var onTextFieldFocus = function () {\n if (disableAutoFocus) {\n return;\n }\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n };\n var onSelectDate = function (date) {\n if (props.calendarProps && props.calendarProps.onSelectDate) {\n props.calendarProps.onSelectDate(date);\n }\n calendarDismissed(date);\n };\n var onCalloutPositioned = function () {\n var shouldFocus = true;\n // If the user has specified that the callout shouldn't use initial focus, then respect\n // that and don't attempt to set focus. That will default to true within the callout\n // so we need to check if it's undefined here.\n if (props.calloutProps && props.calloutProps.setInitialFocus !== undefined) {\n shouldFocus = props.calloutProps.setInitialFocus;\n }\n if (calendar.current && shouldFocus) {\n calendar.current.focus();\n }\n };\n var onTextFieldBlur = function (ev) {\n validateTextInput();\n };\n var onTextFieldChanged = function (ev, newValue) {\n var _a;\n var textField = props.textField;\n if (allowTextInput) {\n if (isCalendarShown) {\n dismissDatePickerPopup();\n }\n setFormattedDate(newValue);\n }\n (_a = textField === null || textField === void 0 ? void 0 : textField.onChange) === null || _a === void 0 ? void 0 : _a.call(textField, ev, newValue);\n };\n var onTextFieldKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!isCalendarShown) {\n validateTextInput();\n showDatePickerPopup();\n }\n else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n case KeyCodes.escape:\n handleEscKey(ev);\n break;\n case KeyCodes.down:\n if (ev.altKey && !isCalendarShown) {\n showDatePickerPopup();\n }\n break;\n default:\n break;\n }\n };\n var onTextFieldClick = function (ev) {\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n var openOnClick = props.openOnClick || !props.disableAutoFocus;\n if (openOnClick && !isCalendarShown && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n var onIconClick = function (ev) {\n ev.stopPropagation();\n if (!isCalendarShown && !props.disabled) {\n showDatePickerPopup();\n }\n else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n var dismissDatePickerPopup = function (newlySelectedDate) {\n if (isCalendarShown) {\n setIsCalendarShown(false);\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n };\n var renderTextfieldDescription = function (inputProps, defaultRender) {\n return (React.createElement(React.Fragment, null,\n inputProps.description || inputProps.onRenderDescription ? defaultRender(inputProps) : null,\n React.createElement(\"div\", { \"aria-live\": \"assertive\", className: classNames.statusMessage }, statusMessage)));\n };\n var renderReadOnlyInput = function (inputProps) {\n var divProps = getNativeProps(inputProps, divProperties);\n // Need to merge styles so the provided styles win over the default ones. This is due to the classnames having the\n // same specificity.\n var readOnlyTextFieldClassName = mergeStyles(divProps.className, classNames.readOnlyTextField);\n // Talkback on Android treats readonly inputs as disabled, so swipe gestures to open the Calendar\n // don't register. Workaround is rendering a div with role=\"combobox\" (passed in via TextField props).\n return (React.createElement(\"div\", __assign({}, divProps, { className: readOnlyTextFieldClassName, tabIndex: tabIndex || 0 }), formattedDate || (\n // Putting the placeholder in a separate span fixes specificity issues for the text color\n React.createElement(\"span\", { className: classNames.readOnlyPlaceholder }, placeholder))));\n };\n /**\n * Callback for closing the calendar callout\n */\n var calendarDismissed = function (newlySelectedDate) {\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n // don't need to focus the text box, if necessary the focusTrapZone will do it\n };\n var calloutDismissed = function (ev) {\n calendarDismissed();\n };\n var handleEscKey = function (ev) {\n if (isCalendarShown) {\n ev.stopPropagation();\n calendarDismissed();\n }\n };\n var onCalendarDismissed = function (ev) {\n calendarDismissed();\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n underlined: underlined,\n label: !!label,\n isDatePickerShown: isCalendarShown,\n });\n var nativeProps = getNativeProps(props, divProperties, ['value']);\n var iconProps = textFieldProps && textFieldProps.iconProps;\n var textFieldId = textFieldProps && textFieldProps.id && textFieldProps.id !== id ? textFieldProps.id : id + '-label';\n var readOnly = !allowTextInput && !disabled;\n var dataIsFocusable = (_b = (_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps['data-is-focusable']) !== null && _a !== void 0 ? _a : props['data-is-focusable']) !== null && _b !== void 0 ? _b : true;\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root, ref: forwardedRef }),\n React.createElement(\"div\", { ref: datePickerDiv, \"aria-owns\": isCalendarShown ? calloutId : undefined, className: classNames.wrapper },\n React.createElement(TextField, __assign({ role: \"combobox\", label: label, \"aria-expanded\": isCalendarShown, ariaLabel: ariaLabel, \"aria-haspopup\": \"dialog\", \"aria-controls\": isCalendarShown ? calloutId : undefined, required: isRequired, disabled: disabled, errorMessage: errorMessage, placeholder: placeholder, borderless: borderless, value: formattedDate, componentRef: textFieldRef, underlined: underlined, tabIndex: tabIndex, readOnly: !allowTextInput }, textFieldProps, { \"data-is-focusable\": dataIsFocusable, id: textFieldId, className: css(classNames.textField, textFieldProps && textFieldProps.className), iconProps: __assign(__assign({ iconName: 'Calendar' }, iconProps), { className: css(classNames.icon, iconProps && iconProps.className), onClick: onIconClick }), \n // eslint-disable-next-line react/jsx-no-bind\n onRenderDescription: renderTextfieldDescription, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: onTextFieldKeyDown, \n // eslint-disable-next-line react/jsx-no-bind\n onFocus: onTextFieldFocus, \n // eslint-disable-next-line react/jsx-no-bind\n onBlur: onTextFieldBlur, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onTextFieldClick, \n // eslint-disable-next-line react/jsx-no-bind\n onChange: onTextFieldChanged, onRenderInput: readOnly ? renderReadOnlyInput : undefined }))),\n isCalendarShown && (React.createElement(Callout, __assign({ id: calloutId, role: \"dialog\", ariaLabel: pickerAriaLabel, isBeakVisible: false, gapSpace: 0, doNotLayer: false, target: datePickerDiv.current, directionalHint: DirectionalHint.bottomLeftEdge }, calloutProps, { className: css(classNames.callout, calloutProps && calloutProps.className), \n // eslint-disable-next-line react/jsx-no-bind\n onDismiss: calloutDismissed, \n // eslint-disable-next-line react/jsx-no-bind\n onPositioned: onCalloutPositioned }),\n React.createElement(FocusTrapZone, { isClickableOutsideFocusTrap: true, disableFirstFocus: disableAutoFocus },\n React.createElement(CalendarType, __assign({}, calendarProps, { \n // eslint-disable-next-line react/jsx-no-bind\n onSelectDate: onSelectDate, \n // eslint-disable-next-line react/jsx-no-bind\n onDismiss: onCalendarDismissed, isMonthPickerVisible: props.isMonthPickerVisible, showMonthPickerAsOverlay: props.showMonthPickerAsOverlay, today: props.today, value: selectedDate || initialPickerDate, firstDayOfWeek: firstDayOfWeek, strings: strings, highlightCurrentMonth: props.highlightCurrentMonth, highlightSelectedMonth: props.highlightSelectedMonth, showWeekNumbers: props.showWeekNumbers, firstWeekOfYear: props.firstWeekOfYear, showGoToToday: props.showGoToToday, dateTimeFormatter: props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: calendar, showCloseButton: showCloseButton, allFocusable: allFocusable })))))));\n});\nDatePickerBase.displayName = 'DatePickerBase';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n return (!!minDate && compareDatePart(minDate, date) > 0) || (!!maxDate && compareDatePart(maxDate, date) < 0);\n}\n//# sourceMappingURL=DatePicker.base.js.map","import { normalize, getGlobalClassNames, FontSizes, HighContrastSelector } from '@fluentui/style-utilities';\nvar GlobalClassNames = {\n root: 'ms-DatePicker',\n callout: 'ms-DatePicker-callout',\n withLabel: 'ms-DatePicker-event--with-label',\n withoutLabel: 'ms-DatePicker-event--without-label',\n disabled: 'msDatePickerDisabled ',\n};\nvar TEXTFIELD_HEIGHT = 32;\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, disabled = props.disabled, underlined = props.underlined, label = props.label, isDatePickerShown = props.isDatePickerShown;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var DatePickerIcon = {\n color: palette.neutralSecondary,\n fontSize: FontSizes.icon,\n lineHeight: '18px',\n pointerEvents: 'none',\n position: 'absolute',\n right: '4px',\n padding: '5px',\n };\n return {\n root: [classNames.root, theme.fonts.large, isDatePickerShown && 'is-open', normalize, className],\n textField: [\n {\n position: 'relative',\n selectors: {\n '& input[readonly]': {\n cursor: 'pointer',\n },\n input: {\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n },\n },\n disabled && {\n selectors: {\n '& input[readonly]': {\n cursor: 'default',\n },\n },\n },\n ],\n callout: [classNames.callout],\n icon: [\n DatePickerIcon,\n label ? classNames.withLabel : classNames.withoutLabel,\n { paddingTop: '7px' },\n !disabled && [\n classNames.disabled,\n {\n pointerEvents: 'initial',\n cursor: 'pointer',\n },\n ],\n disabled && {\n color: semanticColors.disabledText,\n cursor: 'default',\n },\n ],\n statusMessage: [\n fonts.small,\n {\n color: semanticColors.errorText,\n marginTop: 5,\n },\n ],\n readOnlyTextField: [\n {\n cursor: 'pointer',\n height: TEXTFIELD_HEIGHT,\n lineHeight: TEXTFIELD_HEIGHT - 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n underlined && {\n lineHeight: TEXTFIELD_HEIGHT + 2,\n },\n ],\n readOnlyPlaceholder: (_a = {\n color: semanticColors.inputPlaceholderText\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n };\n};\n//# sourceMappingURL=DatePicker.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { DatePickerBase } from './DatePicker.base';\nimport { styles } from './DatePicker.styles';\nexport var DatePicker = styled(DatePickerBase, styles, undefined, {\n scope: 'DatePicker',\n});\n//# sourceMappingURL=DatePicker.js.map","/**\n * {@docCategory GroupedList}\n */\nexport var CollapseAllVisibility;\n(function (CollapseAllVisibility) {\n CollapseAllVisibility[CollapseAllVisibility[\"hidden\"] = 0] = \"hidden\";\n CollapseAllVisibility[CollapseAllVisibility[\"visible\"] = 1] = \"visible\";\n})(CollapseAllVisibility || (CollapseAllVisibility = {}));\n//# sourceMappingURL=GroupedList.types.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { initializeComponentRef, EventGroup, Async, classNamesFunction, composeRenderFunction } from '../../Utilities';\nimport { ColumnActionsMode } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar getClassNames = classNamesFunction();\nvar TRANSITION_DURATION_DRAG = 200; // ms\nvar TRANSITION_DURATION_DROP = 1500; // ms\nvar CLASSNAME_ADD_INTERVAL = 20; // ms\nvar defaultOnRenderHeader = function (classNames) {\n return function (props) {\n if (!props) {\n return null;\n }\n if (props.column.isIconOnly) {\n return React.createElement(\"span\", { className: classNames.accessibleLabel }, props.column.name);\n }\n return React.createElement(React.Fragment, null, props.column.name);\n };\n};\n/**\n * Component for rendering columns in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nvar DetailsColumnBase = /** @class */ (function (_super) {\n __extends(DetailsColumnBase, _super);\n function DetailsColumnBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._tooltipRef = React.createRef();\n _this._onRenderFilterIcon = function (classNames) {\n return function (props) {\n var columnProps = props.columnProps, iconProps = __rest(props, [\"columnProps\"]);\n var IconComponent = (columnProps === null || columnProps === void 0 ? void 0 : columnProps.useFastIcons) ? FontIcon : Icon;\n return React.createElement(IconComponent, __assign({}, iconProps));\n };\n };\n _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n };\n _this._onColumnClick = function (ev) {\n var _a = _this.props, onColumnClick = _a.onColumnClick, column = _a.column;\n if (column.columnActionsMode === ColumnActionsMode.disabled) {\n return;\n }\n if (column.onColumnClick) {\n column.onColumnClick(ev, column);\n }\n if (onColumnClick) {\n onColumnClick(ev, column);\n }\n };\n _this._onColumnBlur = function () {\n _this._tooltipRef.current && _this._tooltipRef.current.dismiss();\n };\n _this._onColumnFocus = function () {\n _this._tooltipRef.current && _this._tooltipRef.current.show();\n };\n _this._onDragStart = function (item, itemIndex, selectedItems, event) {\n var classNames = _this._classNames;\n if (itemIndex) {\n _this._updateHeaderDragInfo(itemIndex);\n _this._root.current.classList.add(classNames.borderWhileDragging);\n _this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.add(classNames.noBorderWhileDragging);\n }\n }, CLASSNAME_ADD_INTERVAL);\n }\n };\n _this._onDragEnd = function (item, event) {\n var classNames = _this._classNames;\n if (event) {\n _this._updateHeaderDragInfo(-1, event);\n }\n _this._root.current.classList.remove(classNames.borderWhileDragging);\n _this._root.current.classList.remove(classNames.noBorderWhileDragging);\n };\n _this._updateHeaderDragInfo = function (itemIndex, event) {\n /* eslint-disable deprecation/deprecation */\n if (_this.props.setDraggedItemIndex) {\n _this.props.setDraggedItemIndex(itemIndex);\n }\n /* eslint-enable deprecation/deprecation */\n if (_this.props.updateDragInfo) {\n _this.props.updateDragInfo({ itemIndex: itemIndex }, event);\n }\n };\n _this._onColumnContextMenu = function (ev) {\n var _a = _this.props, onColumnContextMenu = _a.onColumnContextMenu, column = _a.column;\n if (column.onColumnContextMenu) {\n column.onColumnContextMenu(column, ev);\n ev.preventDefault();\n }\n if (onColumnContextMenu) {\n onColumnContextMenu(column, ev);\n ev.preventDefault();\n }\n };\n _this._onRootMouseDown = function (ev) {\n var isDraggable = _this.props.isDraggable;\n // Ignore anything except the primary button.\n if (isDraggable && ev.button === MOUSEDOWN_PRIMARY_BUTTON) {\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n return _this;\n }\n DetailsColumnBase.prototype.render = function () {\n var _a = this.props, column = _a.column, parentId = _a.parentId, isDraggable = _a.isDraggable, styles = _a.styles, theme = _a.theme, _b = _a.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, _c = _a.useFastIcons, useFastIcons = _c === void 0 ? true : _c;\n var _d = this.props.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _d === void 0 ? this._onRenderColumnHeaderTooltip : _d;\n this._classNames = getClassNames(styles, {\n theme: theme,\n headerClassName: column.headerClassName,\n iconClassName: column.iconClassName,\n isActionable: column.columnActionsMode !== ColumnActionsMode.disabled,\n isEmpty: !column.name,\n isIconVisible: column.isSorted || column.isGrouped || column.isFiltered,\n isPadded: column.isPadded,\n isIconOnly: column.isIconOnly,\n cellStyleProps: cellStyleProps,\n transitionDurationDrag: TRANSITION_DURATION_DRAG,\n transitionDurationDrop: TRANSITION_DURATION_DROP,\n });\n var classNames = this._classNames;\n var IconComponent = useFastIcons ? FontIcon : Icon;\n var onRenderFilterIcon = column.onRenderFilterIcon\n ? composeRenderFunction(column.onRenderFilterIcon, this._onRenderFilterIcon(this._classNames))\n : this._onRenderFilterIcon(this._classNames);\n var onRenderHeader = column.onRenderHeader\n ? composeRenderFunction(column.onRenderHeader, defaultOnRenderHeader(this._classNames))\n : defaultOnRenderHeader(this._classNames);\n var hasInnerButton = column.columnActionsMode !== ColumnActionsMode.disabled &&\n (column.onColumnClick !== undefined || this.props.onColumnClick !== undefined);\n // use aria-describedby to point to the tooltip if the tooltip is not using the ariaLabel string\n var shouldAssociateTooltip = this.props.onRenderColumnHeaderTooltip\n ? !column.ariaLabel\n : this._hasAccessibleDescription();\n var accNameDescription = {\n 'aria-label': column.ariaLabel ? column.ariaLabel : column.isIconOnly ? column.name : undefined,\n 'aria-labelledby': column.ariaLabel || column.isIconOnly ? undefined : \"\".concat(parentId, \"-\").concat(column.key, \"-name\"),\n 'aria-describedby': shouldAssociateTooltip ? \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\") : undefined,\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", __assign({ key: column.key, ref: this._root, role: 'columnheader' }, (!hasInnerButton && accNameDescription), { \"aria-sort\": column.isSorted ? (column.isSortedDescending ? 'descending' : 'ascending') : 'none', \"data-is-focusable\": !hasInnerButton && column.columnActionsMode !== ColumnActionsMode.disabled ? 'true' : undefined, className: classNames.root, \"data-is-draggable\": isDraggable, draggable: isDraggable, style: {\n width: column.calculatedWidth +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n }, \"data-automationid\": 'ColumnsHeaderColumn', \"data-item-key\": column.key, onBlur: this._onColumnBlur, onFocus: this._onColumnFocus }),\n isDraggable && (React.createElement(IconComponent, { iconName: \"GripperBarVertical\", className: classNames.gripperBarVerticalStyle })),\n onRenderColumnHeaderTooltip({\n hostClassName: classNames.cellTooltip,\n id: \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\"),\n setAriaDescribedBy: false,\n column: column,\n componentRef: this._tooltipRef,\n content: column.columnActionsMode !== ColumnActionsMode.disabled ? column.ariaLabel : '',\n children: (React.createElement(\"span\", __assign({ id: \"\".concat(parentId, \"-\").concat(column.key), className: classNames.cellTitle, \"data-is-focusable\": hasInnerButton && column.columnActionsMode !== ColumnActionsMode.disabled ? 'true' : undefined, role: hasInnerButton ? 'button' : undefined }, (hasInnerButton && accNameDescription), { onContextMenu: this._onColumnContextMenu, onClick: this._onColumnClick, \"aria-haspopup\": column.columnActionsMode === ColumnActionsMode.hasDropdown ? 'menu' : undefined, \"aria-expanded\": column.columnActionsMode === ColumnActionsMode.hasDropdown ? !!column.isMenuOpen : undefined }),\n React.createElement(\"span\", { id: \"\".concat(parentId, \"-\").concat(column.key, \"-name\"), className: classNames.cellName },\n (column.iconName || column.iconClassName) && (React.createElement(IconComponent, { className: classNames.iconClassName, iconName: column.iconName })),\n onRenderHeader(this.props)),\n column.isFiltered && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"Filter\" }),\n (column.isSorted || column.showSortIconWhenUnsorted) && (React.createElement(IconComponent, { className: classNames.sortIcon, iconName: column.isSorted ? (column.isSortedDescending ? 'SortDown' : 'SortUp') : 'Sort' })),\n column.isGrouped && React.createElement(IconComponent, { className: classNames.nearIcon, iconName: \"GroupedDescending\" }),\n column.columnActionsMode === ColumnActionsMode.hasDropdown &&\n !column.isIconOnly &&\n onRenderFilterIcon({\n 'aria-hidden': true,\n columnProps: this.props,\n className: classNames.filterChevron,\n iconName: 'ChevronDown',\n }))),\n }, this._onRenderColumnHeaderTooltip)),\n !this.props.onRenderColumnHeaderTooltip ? this._renderAccessibleDescription() : null));\n };\n DetailsColumnBase.prototype.componentDidMount = function () {\n var _this = this;\n if (this.props.dragDropHelper && this.props.isDraggable) {\n this._addDragDropHandling();\n }\n var classNames = this._classNames;\n if (this.props.isDropped) {\n if (this._root.current) {\n this._root.current.classList.add(classNames.borderAfterDropping);\n this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.add(classNames.noBorderAfterDropping);\n }\n }, CLASSNAME_ADD_INTERVAL);\n }\n this._async.setTimeout(function () {\n if (_this._root.current) {\n _this._root.current.classList.remove(classNames.borderAfterDropping);\n _this._root.current.classList.remove(classNames.noBorderAfterDropping);\n }\n }, TRANSITION_DURATION_DROP + CLASSNAME_ADD_INTERVAL);\n }\n };\n DetailsColumnBase.prototype.componentWillUnmount = function () {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n this._async.dispose();\n this._events.dispose();\n };\n DetailsColumnBase.prototype.componentDidUpdate = function () {\n if (!this._dragDropSubscription && this.props.dragDropHelper && this.props.isDraggable) {\n this._addDragDropHandling();\n }\n if (this._dragDropSubscription && !this.props.isDraggable) {\n this._dragDropSubscription.dispose();\n this._events.off(this._root.current, 'mousedown');\n delete this._dragDropSubscription;\n }\n };\n DetailsColumnBase.prototype._getColumnDragDropOptions = function () {\n var _this = this;\n var columnIndex = this.props.columnIndex;\n var options = {\n selectionIndex: columnIndex,\n context: { data: columnIndex, index: columnIndex },\n canDrag: function () { return _this.props.isDraggable; },\n canDrop: function () { return false; },\n onDragStart: this._onDragStart,\n updateDropState: function () { return undefined; },\n onDrop: function () { return undefined; },\n onDragEnd: this._onDragEnd,\n };\n return options;\n };\n DetailsColumnBase.prototype._hasAccessibleDescription = function () {\n var column = this.props.column;\n return !!(column.filterAriaLabel ||\n column.sortAscendingAriaLabel ||\n column.sortDescendingAriaLabel ||\n column.groupAriaLabel ||\n column.sortableAriaLabel);\n };\n DetailsColumnBase.prototype._renderAccessibleDescription = function () {\n var _a = this.props, column = _a.column, parentId = _a.parentId;\n var classNames = this._classNames;\n return this._hasAccessibleDescription() && !this.props.onRenderColumnHeaderTooltip ? (React.createElement(\"label\", { key: \"\".concat(column.key, \"_label\"), id: \"\".concat(parentId, \"-\").concat(column.key, \"-tooltip\"), className: classNames.accessibleLabel, hidden: true },\n (column.isFiltered && column.filterAriaLabel) || null,\n ((column.isSorted || column.showSortIconWhenUnsorted) &&\n (column.isSorted\n ? column.isSortedDescending\n ? column.sortDescendingAriaLabel\n : column.sortAscendingAriaLabel\n : column.sortableAriaLabel)) ||\n null,\n (column.isGrouped && column.groupAriaLabel) || null)) : null;\n };\n DetailsColumnBase.prototype._addDragDropHandling = function () {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getColumnDragDropOptions());\n // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n this._events.on(this._root.current, 'mousedown', this._onRootMouseDown);\n };\n return DetailsColumnBase;\n}(React.Component));\nexport { DetailsColumnBase };\n//# sourceMappingURL=DetailsColumn.base.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, getGlobalClassNames, hiddenContentStyle, FontWeights } from '../../Styling';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { getCellStyles } from './DetailsHeader.styles';\nvar GlobalClassNames = {\n isActionable: 'is-actionable',\n cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n collapseButton: 'ms-DetailsHeader-collapseButton',\n isCollapsed: 'is-collapsed',\n isAllSelected: 'is-allSelected',\n isSelectAllHidden: 'is-selectAllHidden',\n isResizingColumn: 'is-resizingColumn',\n isEmpty: 'is-empty',\n isIconVisible: 'is-icon-visible',\n cellSizer: 'ms-DetailsHeader-cellSizer',\n isResizing: 'is-resizing',\n dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n cellTitle: 'ms-DetailsHeader-cellTitle',\n cellName: 'ms-DetailsHeader-cellName',\n filterChevron: 'ms-DetailsHeader-filterChevron',\n gripperBarVerticalStyle: 'ms-DetailsColumn-gripperBar',\n nearIcon: 'ms-DetailsColumn-nearIcon',\n};\nexport var getDetailsColumnStyles = function (props) {\n var _a;\n var theme = props.theme, headerClassName = props.headerClassName, iconClassName = props.iconClassName, isActionable = props.isActionable, isEmpty = props.isEmpty, isIconVisible = props.isIconVisible, isPadded = props.isPadded, isIconOnly = props.isIconOnly, _b = props.cellStyleProps, cellStyleProps = _b === void 0 ? DEFAULT_CELL_STYLE_PROPS : _b, transitionDurationDrag = props.transitionDurationDrag, transitionDurationDrop = props.transitionDurationDrop;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var colors = {\n iconForegroundColor: semanticColors.bodySubtext,\n headerForegroundColor: semanticColors.bodyText,\n headerBackgroundColor: semanticColors.bodyBackground,\n dropdownChevronForegroundColor: palette.neutralSecondary,\n resizerColor: palette.neutralTertiaryAlt,\n };\n var nearIconStyle = {\n color: colors.iconForegroundColor,\n opacity: 1,\n paddingLeft: 8,\n };\n var borderWhileDragging = {\n outline: \"1px solid \".concat(palette.themePrimary),\n };\n var borderAfterDragOrDrop = {\n outlineColor: 'transparent',\n };\n return {\n root: [\n getCellStyles(props),\n fonts.small,\n isActionable && [\n classNames.isActionable,\n {\n selectors: {\n ':hover': {\n color: semanticColors.bodyText,\n background: semanticColors.listHeaderBackgroundHovered,\n },\n ':active': {\n background: semanticColors.listHeaderBackgroundPressed,\n },\n },\n },\n ],\n isEmpty && [\n classNames.isEmpty,\n {\n textOverflow: 'clip',\n },\n ],\n isIconVisible && classNames.isIconVisible,\n isPadded && {\n paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n },\n {\n selectors: {\n ':hover i[data-icon-name=\"GripperBarVertical\"]': {\n display: 'block',\n },\n },\n },\n headerClassName,\n ],\n gripperBarVerticalStyle: {\n display: 'none',\n position: 'absolute',\n textAlign: 'left',\n color: palette.neutralTertiary,\n left: 1,\n },\n nearIcon: [classNames.nearIcon, nearIconStyle],\n sortIcon: [\n nearIconStyle,\n {\n paddingLeft: 4,\n position: 'relative',\n top: 1,\n },\n ],\n iconClassName: [\n {\n color: colors.iconForegroundColor,\n opacity: 1,\n },\n iconClassName,\n ],\n filterChevron: [\n classNames.filterChevron,\n {\n color: colors.dropdownChevronForegroundColor,\n paddingLeft: 6,\n verticalAlign: 'middle',\n fontSize: fonts.small.fontSize,\n },\n ],\n cellTitle: [\n classNames.cellTitle,\n getFocusStyle(theme),\n __assign({ display: 'flex', flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'stretch', boxSizing: 'border-box', overflow: 'hidden', padding: \"0 \".concat(cellStyleProps.cellRightPadding, \"px 0 \").concat(cellStyleProps.cellLeftPadding, \"px\") }, (isIconOnly\n ? {\n alignContent: 'flex-end',\n maxHeight: '100%',\n flexWrap: 'wrap-reverse',\n }\n : {})),\n ],\n cellName: [\n classNames.cellName,\n {\n flex: '0 1 auto',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontWeight: FontWeights.semibold,\n fontSize: fonts.medium.fontSize,\n },\n isIconOnly && {\n selectors: (_a = {},\n _a[\".\".concat(classNames.nearIcon)] = {\n paddingLeft: 0,\n },\n _a),\n },\n ],\n cellTooltip: {\n display: 'block',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n accessibleLabel: hiddenContentStyle,\n borderWhileDragging: borderWhileDragging,\n noBorderWhileDragging: [borderAfterDragOrDrop, { transition: \"outline \".concat(transitionDurationDrag, \"ms ease\") }],\n borderAfterDropping: borderWhileDragging,\n noBorderAfterDropping: [borderAfterDragOrDrop, { transition: \"outline \".concat(transitionDurationDrop, \"ms ease\") }],\n };\n};\n//# sourceMappingURL=DetailsColumn.styles.js.map","import { styled } from '../../Utilities';\nimport { DetailsColumnBase } from './DetailsColumn.base';\nimport { getDetailsColumnStyles } from './DetailsColumn.styles';\nexport var DetailsColumn = styled(DetailsColumnBase, getDetailsColumnStyles, undefined, { scope: 'DetailsColumn' });\n//# sourceMappingURL=DetailsColumn.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, getRTL, getId, KeyCodes, classNamesFunction } from '../../Utilities';\nimport { ColumnDragEndLocation, CheckboxVisibility } from './DetailsList.types';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon, FontIcon } from '../../Icon';\nimport { Layer } from '../../Layer';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { CollapseAllVisibility } from '../../GroupedList';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { SelectionMode, SELECTION_CHANGE } from '../../Selection';\nimport { DragDropHelper } from '../../DragDrop';\nimport { DetailsColumn } from '../../components/DetailsList/DetailsColumn';\nimport { SelectAllVisibility } from './DetailsHeader.types';\nvar getClassNames = classNamesFunction();\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar NO_COLUMNS = [];\nvar DetailsHeaderBase = /** @class */ (function (_super) {\n __extends(DetailsHeaderBase, _super);\n function DetailsHeaderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootElement = React.createRef();\n _this._rootComponent = React.createRef();\n _this._draggedColumnIndex = -1;\n _this._dropHintDetails = {};\n _this._updateDroppingState = function (newValue, event) {\n if (_this._draggedColumnIndex >= 0 && event.type !== 'drop' && !newValue) {\n _this._resetDropHints();\n }\n };\n _this._onDragOver = function (item, event) {\n if (_this._draggedColumnIndex >= 0) {\n event.stopPropagation();\n _this._computeDropHintToBeShown(event.clientX);\n }\n };\n _this._onDrop = function (item, event) {\n // Safe to assume this is defined since we're handling a drop event\n var columnReorderProps = _this._getColumnReorderProps();\n // Target index will not get changed if draggeditem is after target item.\n if (_this._draggedColumnIndex >= 0 && event) {\n var targetIndex = _this._draggedColumnIndex > _this._currentDropHintIndex\n ? _this._currentDropHintIndex\n : _this._currentDropHintIndex - 1;\n var isValidDrop = _this._isValidCurrentDropHintIndex();\n event.stopPropagation();\n if (isValidDrop) {\n _this._onDropIndexInfo.sourceIndex = _this._draggedColumnIndex;\n _this._onDropIndexInfo.targetIndex = targetIndex;\n if (columnReorderProps.onColumnDrop) {\n var dragDropDetails = {\n draggedIndex: _this._draggedColumnIndex,\n targetIndex: targetIndex,\n };\n columnReorderProps.onColumnDrop(dragDropDetails);\n /* eslint-disable deprecation/deprecation */\n }\n else if (columnReorderProps.handleColumnReorder) {\n columnReorderProps.handleColumnReorder(_this._draggedColumnIndex, targetIndex);\n /* eslint-enable deprecation/deprecation */\n }\n }\n }\n _this._resetDropHints();\n _this._dropHintDetails = {};\n _this._draggedColumnIndex = -1;\n };\n _this._computeColumnIndexOffset = function (showCheckbox) {\n var hasGroupExpander = _this.props.groupNestingDepth && _this.props.groupNestingDepth > 0;\n var offset = 1;\n if (showCheckbox) {\n offset += 1;\n }\n if (hasGroupExpander) {\n offset += 1;\n }\n return offset;\n };\n _this._updateDragInfo = function (props, event) {\n // Safe to assume this is defined since we're handling a drag event\n var columnReorderProps = _this._getColumnReorderProps();\n var itemIndex = props.itemIndex;\n if (itemIndex >= 0) {\n // Column index is set based on the checkbox\n _this._draggedColumnIndex = itemIndex - _this._computeColumnIndexOffset(!_this._isCheckboxColumnHidden());\n _this._getDropHintPositions();\n if (columnReorderProps.onColumnDragStart) {\n columnReorderProps.onColumnDragStart(true);\n }\n }\n else if (event && _this._draggedColumnIndex >= 0) {\n _this._resetDropHints();\n _this._draggedColumnIndex = -1;\n _this._dropHintDetails = {};\n if (columnReorderProps.onColumnDragEnd) {\n var columnDragEndLocation = _this._isEventOnHeader(event);\n columnReorderProps.onColumnDragEnd({ dropLocation: columnDragEndLocation }, event);\n }\n }\n };\n _this._getDropHintPositions = function () {\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n // Safe to assume this is defined since we're handling a drag/drop event\n var columnReorderProps = _this._getColumnReorderProps();\n var prevX = 0;\n var prevMid = 0;\n var prevRef;\n var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n for (var i = frozenColumnCountFromStart; i < columns.length - frozenColumnCountFromEnd + 1; i++) {\n if (_this._rootElement.current) {\n var dropHintElement = _this._rootElement.current.querySelectorAll('#columnDropHint_' + i)[0];\n if (dropHintElement) {\n if (i === frozenColumnCountFromStart) {\n prevX = dropHintElement.offsetLeft;\n prevMid = dropHintElement.offsetLeft;\n prevRef = dropHintElement;\n }\n else {\n var newMid = (dropHintElement.offsetLeft + prevX) / 2;\n _this._dropHintDetails[i - 1] = {\n originX: prevX,\n startX: prevMid,\n endX: newMid,\n dropHintElementRef: prevRef,\n };\n prevMid = newMid;\n prevRef = dropHintElement;\n prevX = dropHintElement.offsetLeft;\n if (i === columns.length - frozenColumnCountFromEnd) {\n _this._dropHintDetails[i] = {\n originX: prevX,\n startX: prevMid,\n endX: dropHintElement.offsetLeft,\n dropHintElementRef: prevRef,\n };\n }\n }\n }\n }\n }\n };\n /**\n * Based on the given cursor position, finds the nearest drop hint and updates the state to make it visible\n */\n _this._computeDropHintToBeShown = function (clientX) {\n var isRtl = getRTL(_this.props.theme);\n if (_this._rootElement.current) {\n var clientRect = _this._rootElement.current.getBoundingClientRect();\n var headerOriginX = clientRect.left;\n var eventXRelativePosition = clientX - headerOriginX;\n var currentDropHintIndex = _this._currentDropHintIndex;\n if (_this._isValidCurrentDropHintIndex()) {\n if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex].startX, _this._dropHintDetails[currentDropHintIndex].endX)) {\n return;\n }\n }\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n // Safe to assume this is defined since we're handling a drag/drop event\n var columnReorderProps = _this._getColumnReorderProps();\n var frozenColumnCountFromStart = columnReorderProps.frozenColumnCountFromStart || 0;\n var frozenColumnCountFromEnd = columnReorderProps.frozenColumnCountFromEnd || 0;\n var currentIndex = frozenColumnCountFromStart;\n var lastValidColumn = columns.length - frozenColumnCountFromEnd;\n var indexToUpdate = -1;\n if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[currentIndex].endX)) {\n indexToUpdate = currentIndex;\n }\n else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[lastValidColumn].startX)) {\n indexToUpdate = lastValidColumn;\n }\n else if (_this._isValidCurrentDropHintIndex()) {\n if (_this._dropHintDetails[currentDropHintIndex + 1] &&\n _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex + 1].startX, _this._dropHintDetails[currentDropHintIndex + 1].endX)) {\n indexToUpdate = currentDropHintIndex + 1;\n }\n else if (_this._dropHintDetails[currentDropHintIndex - 1] &&\n _liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[currentDropHintIndex - 1].startX, _this._dropHintDetails[currentDropHintIndex - 1].endX)) {\n indexToUpdate = currentDropHintIndex - 1;\n }\n }\n if (indexToUpdate === -1) {\n var startIndex = frozenColumnCountFromStart;\n var endIndex = lastValidColumn;\n while (startIndex < endIndex) {\n var middleIndex = Math.ceil((endIndex + startIndex) / 2);\n if (_liesBetween(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].startX, _this._dropHintDetails[middleIndex].endX)) {\n indexToUpdate = middleIndex;\n break;\n }\n else if (_isBefore(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n endIndex = middleIndex;\n }\n else if (_isAfter(isRtl, eventXRelativePosition, _this._dropHintDetails[middleIndex].originX)) {\n startIndex = middleIndex;\n }\n }\n }\n if (indexToUpdate === _this._draggedColumnIndex || indexToUpdate === _this._draggedColumnIndex + 1) {\n if (_this._isValidCurrentDropHintIndex()) {\n _this._resetDropHints();\n }\n }\n else if (currentDropHintIndex !== indexToUpdate && indexToUpdate >= 0) {\n _this._resetDropHints();\n _this._updateDropHintElement(_this._dropHintDetails[indexToUpdate].dropHintElementRef, 'inline-block');\n _this._currentDropHintIndex = indexToUpdate;\n }\n }\n };\n _this._renderColumnSizer = function (_a) {\n var _b;\n var columnIndex = _a.columnIndex;\n var _c = _this.props.columns, columns = _c === void 0 ? NO_COLUMNS : _c;\n var column = columns[columnIndex];\n var columnResizeDetails = _this.state.columnResizeDetails;\n var classNames = _this._classNames;\n return column.isResizable ? (React.createElement(\"div\", { key: \"\".concat(column.key, \"_sizer\"), \"aria-hidden\": true, role: \"button\", \"data-is-focusable\": false, onClick: _stopPropagation, \"data-sizer-index\": columnIndex, onBlur: _this._onSizerBlur, className: css(classNames.cellSizer, columnIndex < columns.length - 1 ? classNames.cellSizerStart : classNames.cellSizerEnd, (_b = {},\n _b[classNames.cellIsResizing] = columnResizeDetails && columnResizeDetails.columnIndex === columnIndex,\n _b)), onDoubleClick: _this._onSizerDoubleClick.bind(_this, columnIndex) })) : null;\n };\n _this._onRenderColumnHeaderTooltip = function (tooltipHostProps) {\n return React.createElement(\"span\", { className: tooltipHostProps.hostClassName }, tooltipHostProps.children);\n };\n /**\n * Called when the select all toggle is clicked.\n */\n _this._onSelectAllClicked = function () {\n var selection = _this.props.selection;\n if (selection) {\n selection.toggleAllSelected();\n }\n };\n _this._onRootMouseDown = function (ev) {\n var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n var columnIndex = Number(columnIndexAttr);\n var _a = _this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n if (columnIndexAttr === null || ev.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n // Ignore anything except the primary button.\n return;\n }\n _this.setState({\n columnResizeDetails: {\n columnIndex: columnIndex,\n columnMinWidth: columns[columnIndex].calculatedWidth,\n originX: ev.clientX,\n },\n });\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._onRootMouseMove = function (ev) {\n var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n if (columnResizeDetails && !isSizing && ev.clientX !== columnResizeDetails.originX) {\n _this.setState({ isSizing: true });\n }\n };\n _this._onRootKeyDown = function (ev) {\n var _a = _this.state, columnResizeDetails = _a.columnResizeDetails, isSizing = _a.isSizing;\n var _b = _this.props, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, onColumnResized = _b.onColumnResized;\n var columnIndexAttr = ev.target.getAttribute('data-sizer-index');\n if (!columnIndexAttr || isSizing) {\n return;\n }\n var columnIndex = Number(columnIndexAttr);\n if (!columnResizeDetails) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this.setState({\n columnResizeDetails: {\n columnIndex: columnIndex,\n columnMinWidth: columns[columnIndex].calculatedWidth,\n },\n });\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n var increment = void 0;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this.setState({\n columnResizeDetails: undefined,\n });\n ev.preventDefault();\n ev.stopPropagation();\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.left) {\n increment = getRTL(_this.props.theme) ? 1 : -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.right) {\n increment = getRTL(_this.props.theme) ? -1 : 1;\n }\n if (increment) {\n if (!ev.shiftKey) {\n increment *= 10;\n }\n _this.setState({\n columnResizeDetails: __assign(__assign({}, columnResizeDetails), { columnMinWidth: columnResizeDetails.columnMinWidth + increment }),\n });\n if (onColumnResized) {\n onColumnResized(columns[columnIndex], columnResizeDetails.columnMinWidth + increment, columnIndex);\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n /**\n * mouse move event handler in the header\n * it will set isSizing state to true when user clicked on the sizer and move the mouse.\n *\n * @param ev - mouse move event\n */\n _this._onSizerMouseMove = function (ev) {\n var \n // use buttons property here since ev.button in some edge case is not upding well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n buttons = ev.buttons;\n var _a = _this.props, onColumnIsSizingChanged = _a.onColumnIsSizingChanged, onColumnResized = _a.onColumnResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n var columnResizeDetails = _this.state.columnResizeDetails;\n if (buttons !== undefined && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n // cancel mouse down event and return early when the primary button is not pressed\n _this._onSizerMouseUp(ev);\n return;\n }\n if (ev.clientX !== columnResizeDetails.originX) {\n if (onColumnIsSizingChanged) {\n onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], true);\n }\n }\n if (onColumnResized) {\n var movement = ev.clientX - columnResizeDetails.originX;\n if (getRTL(_this.props.theme)) {\n movement = -movement;\n }\n onColumnResized(columns[columnResizeDetails.columnIndex], columnResizeDetails.columnMinWidth + movement, columnResizeDetails.columnIndex);\n }\n };\n _this._onSizerBlur = function (ev) {\n var columnResizeDetails = _this.state.columnResizeDetails;\n if (columnResizeDetails) {\n _this.setState({\n columnResizeDetails: undefined,\n isSizing: false,\n });\n }\n };\n /**\n * mouse up event handler in the header\n * clear the resize related state.\n * This is to ensure we can catch double click event\n *\n * @param ev - mouse up event\n */\n _this._onSizerMouseUp = function (ev) {\n var _a = _this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, onColumnIsSizingChanged = _a.onColumnIsSizingChanged;\n var columnResizeDetails = _this.state.columnResizeDetails;\n _this.setState({\n columnResizeDetails: undefined,\n isSizing: false,\n });\n if (onColumnIsSizingChanged) {\n onColumnIsSizingChanged(columns[columnResizeDetails.columnIndex], false);\n }\n };\n _this._onToggleCollapseAll = function () {\n var onToggleCollapseAll = _this.props.onToggleCollapseAll;\n var newCollapsed = !_this.state.isAllCollapsed;\n _this.setState({\n isAllCollapsed: newCollapsed,\n });\n if (onToggleCollapseAll) {\n onToggleCollapseAll(newCollapsed);\n }\n };\n initializeComponentRef(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n columnResizeDetails: undefined,\n isAllCollapsed: _this.props.isAllCollapsed,\n isAllSelected: !!_this.props.selection && _this.props.selection.isAllSelected(),\n };\n _this._onDropIndexInfo = {\n sourceIndex: -1,\n targetIndex: -1,\n };\n _this._id = getId('header');\n _this._currentDropHintIndex = -1;\n // The drag drop handler won't do any work until subscribe() is called,\n // so always set it up for convenience\n _this._dragDropHelper = new DragDropHelper({\n selection: {\n getSelection: function () {\n return;\n },\n },\n minimumPixelsForDrag: _this.props.minimumPixelsForDrag,\n });\n return _this;\n }\n DetailsHeaderBase.prototype.componentDidMount = function () {\n var selection = this.props.selection;\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n // this._rootElement.current will be null in tests using react-test-renderer\n if (this._rootElement.current) {\n // We need to use native on this to prevent MarqueeSelection from handling the event before us.\n this._events.on(this._rootElement.current, 'mousedown', this._onRootMouseDown);\n this._events.on(this._rootElement.current, 'keydown', this._onRootKeyDown);\n if (this._getColumnReorderProps()) {\n this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n }\n }\n };\n DetailsHeaderBase.prototype.componentDidUpdate = function (prevProps) {\n if (this._getColumnReorderProps()) {\n if (!this._subscriptionObject && this._rootElement.current) {\n this._subscriptionObject = this._dragDropHelper.subscribe(this._rootElement.current, this._events, this._getHeaderDragDropOptions());\n }\n }\n else if (this._subscriptionObject) {\n this._subscriptionObject.dispose();\n delete this._subscriptionObject;\n }\n if (this.props !== prevProps && this._onDropIndexInfo.sourceIndex >= 0 && this._onDropIndexInfo.targetIndex >= 0) {\n var _a = prevProps.columns, previousColumns = _a === void 0 ? NO_COLUMNS : _a;\n var _b = this.props.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n if (previousColumns[this._onDropIndexInfo.sourceIndex].key === columns[this._onDropIndexInfo.targetIndex].key) {\n this._onDropIndexInfo = {\n sourceIndex: -1,\n targetIndex: -1,\n };\n }\n }\n if (this.props.isAllCollapsed !== prevProps.isAllCollapsed) {\n this.setState({ isAllCollapsed: this.props.isAllCollapsed });\n }\n };\n DetailsHeaderBase.prototype.componentWillUnmount = function () {\n if (this._subscriptionObject) {\n this._subscriptionObject.dispose();\n delete this._subscriptionObject;\n }\n this._dragDropHelper.dispose();\n this._events.dispose();\n };\n DetailsHeaderBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b, ariaLabel = _a.ariaLabel, ariaLabelForToggleAllGroupsButton = _a.ariaLabelForToggleAllGroupsButton, ariaLabelForSelectAllCheckbox = _a.ariaLabelForSelectAllCheckbox, selectAllVisibility = _a.selectAllVisibility, ariaLabelForSelectionColumn = _a.ariaLabelForSelectionColumn, indentWidth = _a.indentWidth, onColumnClick = _a.onColumnClick, onColumnContextMenu = _a.onColumnContextMenu, _c = _a.onRenderColumnHeaderTooltip, onRenderColumnHeaderTooltip = _c === void 0 ? this._onRenderColumnHeaderTooltip : _c, styles = _a.styles, selectionMode = _a.selectionMode, theme = _a.theme, onRenderDetailsCheckbox = _a.onRenderDetailsCheckbox, groupNestingDepth = _a.groupNestingDepth, useFastIcons = _a.useFastIcons, checkboxVisibility = _a.checkboxVisibility, className = _a.className;\n var _d = this.state, isAllSelected = _d.isAllSelected, columnResizeDetails = _d.columnResizeDetails, isSizing = _d.isSizing, isAllCollapsed = _d.isAllCollapsed;\n var showCheckbox = selectAllVisibility !== SelectAllVisibility.none;\n var isCheckboxHidden = selectAllVisibility === SelectAllVisibility.hidden;\n var isCheckboxAlwaysVisible = checkboxVisibility === CheckboxVisibility.always;\n var columnReorderProps = this._getColumnReorderProps();\n var frozenColumnCountFromStart = columnReorderProps && columnReorderProps.frozenColumnCountFromStart\n ? columnReorderProps.frozenColumnCountFromStart\n : 0;\n var frozenColumnCountFromEnd = columnReorderProps && columnReorderProps.frozenColumnCountFromEnd\n ? columnReorderProps.frozenColumnCountFromEnd\n : 0;\n this._classNames = getClassNames(styles, {\n theme: theme,\n isAllSelected: isAllSelected,\n isSelectAllHidden: selectAllVisibility === SelectAllVisibility.hidden,\n isResizingColumn: !!columnResizeDetails && isSizing,\n isSizing: isSizing,\n isAllCollapsed: isAllCollapsed,\n isCheckboxHidden: isCheckboxHidden,\n className: className,\n });\n var classNames = this._classNames;\n var IconComponent = useFastIcons ? FontIcon : Icon;\n var hasGroupExpander = groupNestingDepth > 0;\n var showGroupExpander = hasGroupExpander && this.props.collapseAllVisibility === CollapseAllVisibility.visible;\n var columnIndexOffset = this._computeColumnIndexOffset(showCheckbox);\n var isRTL = getRTL(theme);\n return (React.createElement(FocusZone, { role: \"row\", \"aria-label\": ariaLabel, className: classNames.root, componentRef: this._rootComponent, elementRef: this._rootElement, onMouseMove: this._onRootMouseMove, \"data-automationid\": \"DetailsHeader\", direction: FocusZoneDirection.horizontal },\n showCheckbox\n ? [\n React.createElement(\"div\", { key: \"__checkbox\", className: classNames.cellIsCheck, \"aria-labelledby\": \"\".concat(this._id, \"-checkTooltip\"), onClick: !isCheckboxHidden ? this._onSelectAllClicked : undefined, role: 'columnheader' }, onRenderColumnHeaderTooltip({\n hostClassName: classNames.checkTooltip,\n id: \"\".concat(this._id, \"-checkTooltip\"),\n setAriaDescribedBy: false,\n content: ariaLabelForSelectAllCheckbox,\n children: (React.createElement(DetailsRowCheck, { id: \"\".concat(this._id, \"-check\"), \"aria-label\": selectionMode === SelectionMode.multiple\n ? ariaLabelForSelectAllCheckbox\n : ariaLabelForSelectionColumn, \"data-is-focusable\": !isCheckboxHidden || undefined, isHeader: true, selected: isAllSelected, anySelected: false, canSelect: !isCheckboxHidden, className: classNames.check, onRenderDetailsCheckbox: onRenderDetailsCheckbox, useFastIcons: useFastIcons, isVisible: isCheckboxAlwaysVisible })),\n }, this._onRenderColumnHeaderTooltip)),\n !this.props.onRenderColumnHeaderTooltip ? (ariaLabelForSelectAllCheckbox && !isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: \"\".concat(this._id, \"-checkTooltip\"), className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectAllCheckbox)) : ariaLabelForSelectionColumn && isCheckboxHidden ? (React.createElement(\"label\", { key: \"__checkboxLabel\", id: \"\".concat(this._id, \"-checkTooltip\"), className: classNames.accessibleLabel, \"aria-hidden\": true }, ariaLabelForSelectionColumn)) : null) : null,\n ]\n : null,\n showGroupExpander ? (React.createElement(\"div\", { className: classNames.cellIsGroupExpander, onClick: this._onToggleCollapseAll, \"data-is-focusable\": true, \"aria-label\": ariaLabelForToggleAllGroupsButton, \"aria-expanded\": !isAllCollapsed, role: \"columnheader\" },\n React.createElement(IconComponent, { className: classNames.collapseButton, iconName: isRTL ? 'ChevronLeftMed' : 'ChevronRightMed' }),\n React.createElement(\"span\", { className: classNames.accessibleLabel }, ariaLabelForToggleAllGroupsButton))) : hasGroupExpander ? (React.createElement(\"div\", { className: classNames.cellIsGroupExpander, \"data-is-focusable\": false, role: \"columnheader\" })) : null,\n React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth - 1 }),\n columns.map(function (column, columnIndex) {\n var _isDraggable = columnReorderProps\n ? columnIndex >= frozenColumnCountFromStart && columnIndex < columns.length - frozenColumnCountFromEnd\n : false;\n return [\n columnReorderProps &&\n (_isDraggable || columnIndex === columns.length - frozenColumnCountFromEnd) &&\n _this._renderDropHint(columnIndex),\n React.createElement(DetailsColumn, { column: column, styles: column.styles, key: column.key, columnIndex: columnIndexOffset + columnIndex, parentId: _this._id, isDraggable: _isDraggable, updateDragInfo: _this._updateDragInfo, dragDropHelper: _this._dragDropHelper, onColumnClick: onColumnClick, onColumnContextMenu: onColumnContextMenu, \n // Do not render tooltips by default, but allow for override via props.\n onRenderColumnHeaderTooltip: _this.props.onRenderColumnHeaderTooltip, isDropped: _this._onDropIndexInfo.targetIndex === columnIndex, cellStyleProps: _this.props.cellStyleProps, useFastIcons: useFastIcons }),\n _this._renderColumnDivider(columnIndex),\n ];\n }),\n columnReorderProps && frozenColumnCountFromEnd === 0 && this._renderDropHint(columns.length),\n isSizing && (React.createElement(Layer, null,\n React.createElement(\"div\", { className: classNames.sizingOverlay, onMouseMove: this._onSizerMouseMove, onMouseUp: this._onSizerMouseUp })))));\n };\n /** Set focus to the active thing in the focus area. */\n DetailsHeaderBase.prototype.focus = function () {\n var _a;\n return !!((_a = this._rootComponent.current) === null || _a === void 0 ? void 0 : _a.focus());\n };\n /**\n * Gets column reorder props from this.props. If the calling code is part of setting up or\n * handling drag/drop events, it's safe to assume that this method's return value is defined\n * (because drag/drop handling will only be set up if reorder props are given).\n */\n DetailsHeaderBase.prototype._getColumnReorderProps = function () {\n var _a = this.props, columnReorderOptions = _a.columnReorderOptions, columnReorderProps = _a.columnReorderProps;\n return columnReorderProps || (columnReorderOptions && __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: undefined }));\n };\n DetailsHeaderBase.prototype._getHeaderDragDropOptions = function () {\n var options = {\n selectionIndex: 1,\n context: { data: this, index: 0 },\n canDrag: function () { return false; },\n canDrop: function () { return true; },\n onDragStart: function () { return undefined; },\n updateDropState: this._updateDroppingState,\n onDrop: this._onDrop,\n onDragEnd: function () { return undefined; },\n onDragOver: this._onDragOver,\n };\n return options;\n };\n DetailsHeaderBase.prototype._isValidCurrentDropHintIndex = function () {\n return this._currentDropHintIndex >= 0;\n };\n /**\n * @returns whether or not the \"Select All\" checkbox column is hidden.\n */\n DetailsHeaderBase.prototype._isCheckboxColumnHidden = function () {\n var _a = this.props, selectionMode = _a.selectionMode, checkboxVisibility = _a.checkboxVisibility;\n return selectionMode === SelectionMode.none || checkboxVisibility === CheckboxVisibility.hidden;\n };\n DetailsHeaderBase.prototype._resetDropHints = function () {\n if (this._currentDropHintIndex >= 0) {\n this._updateDropHintElement(this._dropHintDetails[this._currentDropHintIndex].dropHintElementRef, 'none');\n this._currentDropHintIndex = -1;\n }\n };\n DetailsHeaderBase.prototype._updateDropHintElement = function (element, displayProperty) {\n element.childNodes[1].style.display = displayProperty;\n element.childNodes[0].style.display = displayProperty;\n };\n DetailsHeaderBase.prototype._isEventOnHeader = function (event) {\n if (this._rootElement.current) {\n var clientRect = this._rootElement.current.getBoundingClientRect();\n if (event.clientX > clientRect.left &&\n event.clientX < clientRect.right &&\n event.clientY > clientRect.top &&\n event.clientY < clientRect.bottom) {\n return ColumnDragEndLocation.header;\n }\n }\n };\n DetailsHeaderBase.prototype._renderColumnDivider = function (columnIndex) {\n var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n var column = columns[columnIndex];\n var onRenderDivider = column.onRenderDivider;\n return onRenderDivider\n ? onRenderDivider({ column: column, columnIndex: columnIndex }, this._renderColumnSizer)\n : this._renderColumnSizer({ column: column, columnIndex: columnIndex });\n };\n DetailsHeaderBase.prototype._renderDropHint = function (dropHintIndex) {\n var classNames = this._classNames;\n var IconComponent = this.props.useFastIcons ? FontIcon : Icon;\n return (React.createElement(\"div\", { key: 'dropHintKey', className: classNames.dropHintStyle, id: \"columnDropHint_\".concat(dropHintIndex) },\n React.createElement(\"div\", { role: \"presentation\", key: \"dropHintCircleKey\", className: classNames.dropHintCaretStyle, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, \"aria-hidden\": true },\n React.createElement(IconComponent, { iconName: 'CircleShapeSolid' })),\n React.createElement(\"div\", { key: \"dropHintLineKey\", \"aria-hidden\": true, \"data-is-focusable\": false, \"data-sizer-index\": dropHintIndex, className: classNames.dropHintLineStyle })));\n };\n /**\n * double click on the column sizer will auto ajust column width\n * to fit the longest content among current rendered rows.\n *\n * @param columnIndex - index of the column user double clicked\n * @param ev - mouse double click event\n */\n DetailsHeaderBase.prototype._onSizerDoubleClick = function (columnIndex, ev) {\n var _a = this.props, onColumnAutoResized = _a.onColumnAutoResized, _b = _a.columns, columns = _b === void 0 ? NO_COLUMNS : _b;\n if (onColumnAutoResized) {\n onColumnAutoResized(columns[columnIndex], columnIndex);\n }\n };\n DetailsHeaderBase.prototype._onSelectionChanged = function () {\n var isAllSelected = !!this.props.selection && this.props.selection.isAllSelected();\n if (this.state.isAllSelected !== isAllSelected) {\n this.setState({\n isAllSelected: isAllSelected,\n });\n }\n };\n DetailsHeaderBase.defaultProps = {\n selectAllVisibility: SelectAllVisibility.visible,\n collapseAllVisibility: CollapseAllVisibility.visible,\n useFastIcons: true,\n };\n return DetailsHeaderBase;\n}(React.Component));\nexport { DetailsHeaderBase };\nfunction _liesBetween(rtl, target, left, right) {\n return rtl ? target <= left && target >= right : target >= left && target <= right;\n}\nfunction _isBefore(rtl, a, b) {\n return rtl ? a >= b : a <= b;\n}\nfunction _isAfter(rtl, a, b) {\n return rtl ? a <= b : a >= b;\n}\nfunction _stopPropagation(ev) {\n ev.stopPropagation();\n}\n//# sourceMappingURL=DetailsHeader.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsHeaderBase } from './DetailsHeader.base';\nimport { getDetailsHeaderStyles } from './DetailsHeader.styles';\nexport var DetailsHeader = styled(DetailsHeaderBase, getDetailsHeaderStyles, undefined, { scope: 'DetailsHeader' });\n//# sourceMappingURL=DetailsHeader.js.map","import { __assign } from \"tslib\";\nimport { getFocusStyle, focusClear, getGlobalClassNames, HighContrastSelector, hiddenContentStyle, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPANDER_WIDTH } from '../GroupedList/GroupSpacer';\nvar GlobalClassNames = {\n tooltipHost: 'ms-TooltipHost',\n root: 'ms-DetailsHeader',\n cell: 'ms-DetailsHeader-cell',\n cellIsCheck: 'ms-DetailsHeader-cellIsCheck',\n collapseButton: 'ms-DetailsHeader-collapseButton',\n isCollapsed: 'is-collapsed',\n isAllSelected: 'is-allSelected',\n isSelectAllHidden: 'is-selectAllHidden',\n isResizingColumn: 'is-resizingColumn',\n cellSizer: 'ms-DetailsHeader-cellSizer',\n isResizing: 'is-resizing',\n dropHintCircleStyle: 'ms-DetailsHeader-dropHintCircleStyle',\n dropHintCaretStyle: 'ms-DetailsHeader-dropHintCaretStyle',\n dropHintLineStyle: 'ms-DetailsHeader-dropHintLineStyle',\n cellTitle: 'ms-DetailsHeader-cellTitle',\n cellName: 'ms-DetailsHeader-cellName',\n filterChevron: 'ms-DetailsHeader-filterChevron',\n gripperBarVertical: 'ms-DetailsColumn-gripperBarVertical',\n checkTooltip: 'ms-DetailsHeader-checkTooltip',\n check: 'ms-DetailsHeader-check',\n};\nexport var HEADER_HEIGHT = 42;\nexport var getCellStyles = function (props) {\n var theme = props.theme, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return [\n classNames.cell,\n getFocusStyle(theme),\n {\n color: semanticColors.bodyText,\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n padding: \"0 \".concat(cellStyleProps.cellRightPadding, \"px 0 \").concat(cellStyleProps.cellLeftPadding, \"px\"),\n lineHeight: 'inherit',\n margin: '0',\n height: HEADER_HEIGHT,\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'left',\n },\n ];\n};\nexport var getDetailsHeaderStyles = function (props) {\n var _a, _b, _c, _d;\n var theme = props.theme, className = props.className, isAllSelected = props.isAllSelected, isResizingColumn = props.isResizingColumn, isSizing = props.isSizing, isAllCollapsed = props.isAllCollapsed, _e = props.cellStyleProps, cellStyleProps = _e === void 0 ? DEFAULT_CELL_STYLE_PROPS : _e;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var colors = {\n iconForegroundColor: semanticColors.bodySubtext,\n headerForegroundColor: semanticColors.bodyText,\n headerBackgroundColor: semanticColors.bodyBackground,\n resizerColor: palette.neutralTertiaryAlt,\n };\n var cellSizerFadeInStyles = {\n opacity: 1,\n transition: 'opacity 0.3s linear',\n };\n var cellStyles = getCellStyles(props);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n display: 'inline-block',\n background: colors.headerBackgroundColor,\n position: 'relative',\n minWidth: '100%',\n verticalAlign: 'top',\n height: HEADER_HEIGHT,\n lineHeight: HEADER_HEIGHT,\n whiteSpace: 'nowrap',\n boxSizing: 'content-box',\n paddingBottom: '1px',\n paddingTop: '16px',\n borderBottom: \"1px solid \".concat(semanticColors.bodyDivider),\n cursor: 'default',\n userSelect: 'none',\n selectors: (_a = {},\n _a[\"&:hover .\".concat(classNames.check)] = {\n opacity: 1,\n },\n _a[\"& .\".concat(classNames.tooltipHost, \" .\").concat(classNames.checkTooltip)] = {\n display: 'block',\n },\n _a),\n },\n isAllSelected && classNames.isAllSelected,\n isResizingColumn && classNames.isResizingColumn,\n className,\n ],\n check: [\n classNames.check,\n {\n height: HEADER_HEIGHT,\n },\n {\n selectors: (_b = {},\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n opacity: 1,\n },\n _b),\n },\n ],\n cellWrapperPadded: {\n paddingRight: cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding,\n },\n cellIsCheck: [\n cellStyles,\n classNames.cellIsCheck,\n {\n position: 'relative',\n padding: 0,\n margin: 0,\n display: 'inline-flex',\n alignItems: 'center',\n border: 'none',\n },\n isAllSelected && {\n opacity: 1,\n },\n ],\n cellIsGroupExpander: [\n cellStyles,\n {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: fonts.small.fontSize,\n padding: 0,\n border: 'none',\n width: GROUP_EXPANDER_WIDTH,\n color: palette.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: palette.neutralLighter,\n },\n ':active': {\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n cellIsActionable: {\n selectors: {\n ':hover': {\n color: semanticColors.bodyText,\n background: semanticColors.listHeaderBackgroundHovered,\n },\n ':active': {\n background: semanticColors.listHeaderBackgroundPressed,\n },\n },\n },\n cellIsEmpty: {\n textOverflow: 'clip',\n },\n cellSizer: [\n classNames.cellSizer,\n focusClear(),\n {\n display: 'inline-block',\n position: 'relative',\n cursor: 'ew-resize',\n bottom: 0,\n top: 0,\n overflow: 'hidden',\n height: 'inherit',\n background: 'transparent',\n zIndex: 1,\n width: 16,\n selectors: (_c = {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: 1,\n background: colors.resizerColor,\n opacity: 0,\n left: '50%',\n },\n ':focus:after': cellSizerFadeInStyles,\n ':hover:after': cellSizerFadeInStyles\n },\n _c[\"&.\".concat(classNames.isResizing, \":after\")] = [\n cellSizerFadeInStyles,\n {\n boxShadow: '0 0 5px 0 rgba(0, 0, 0, 0.4)',\n },\n ],\n _c),\n },\n ],\n cellIsResizing: classNames.isResizing,\n cellSizerStart: {\n margin: '0 -8px',\n },\n cellSizerEnd: {\n margin: 0,\n marginLeft: -16,\n },\n collapseButton: [\n classNames.collapseButton,\n {\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n isAllCollapsed\n ? [\n classNames.isCollapsed,\n {\n transform: 'rotate(0deg)',\n },\n ]\n : {\n transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n },\n ],\n checkTooltip: classNames.checkTooltip,\n sizingOverlay: isSizing && {\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n cursor: 'ew-resize',\n background: 'rgba(255, 255, 255, 0)',\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ background: 'transparent' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n accessibleLabel: hiddenContentStyle,\n dropHintCircleStyle: [\n classNames.dropHintCircleStyle,\n {\n display: 'inline-block',\n visibility: 'hidden',\n position: 'absolute',\n bottom: 0,\n height: 9,\n width: 9,\n borderRadius: '50%',\n marginLeft: -5,\n top: 34,\n overflow: 'visible',\n zIndex: 10,\n border: \"1px solid \".concat(palette.themePrimary),\n background: palette.white,\n },\n ],\n dropHintCaretStyle: [\n classNames.dropHintCaretStyle,\n {\n display: 'none',\n position: 'absolute',\n top: -28,\n left: -6.5,\n fontSize: fonts.medium.fontSize,\n color: palette.themePrimary,\n overflow: 'visible',\n zIndex: 10,\n },\n ],\n dropHintLineStyle: [\n classNames.dropHintLineStyle,\n {\n display: 'none',\n position: 'absolute',\n bottom: 0,\n top: 0,\n overflow: 'hidden',\n height: 42,\n width: 1,\n background: palette.themePrimary,\n zIndex: 10,\n },\n ],\n dropHintStyle: {\n display: 'inline-block',\n position: 'absolute',\n },\n };\n};\n//# sourceMappingURL=DetailsHeader.styles.js.map","/**\n * {@docCategory DetailsList}\n */\nexport var SelectAllVisibility;\n(function (SelectAllVisibility) {\n SelectAllVisibility[SelectAllVisibility[\"none\"] = 0] = \"none\";\n SelectAllVisibility[SelectAllVisibility[\"hidden\"] = 1] = \"hidden\";\n SelectAllVisibility[SelectAllVisibility[\"visible\"] = 2] = \"visible\";\n})(SelectAllVisibility || (SelectAllVisibility = {}));\n//# sourceMappingURL=DetailsHeader.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { findScrollableParent, getRect, getWindow, Async, EventGroup } from '../../Utilities';\nvar RESIZE_DELAY = 500;\nvar MAX_RESIZE_ATTEMPTS = 3;\n/**\n * A decorator to update decorated component on viewport or window resize events.\n *\n * @param ComposedComponent - decorated React component reference.\n */\nexport function withViewport(ComposedComponent) {\n return /** @class */ (function (_super) {\n __extends(WithViewportComponent, _super);\n function WithViewportComponent(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._registerResizeObserver = function () {\n var win = getWindow(_this._root.current);\n _this._viewportResizeObserver = new win.ResizeObserver(_this._onAsyncResize);\n _this._viewportResizeObserver.observe(_this._root.current);\n };\n _this._unregisterResizeObserver = function () {\n if (_this._viewportResizeObserver) {\n _this._viewportResizeObserver.disconnect();\n delete _this._viewportResizeObserver;\n }\n };\n /* Note: using lambda here because decorators don't seem to work in decorators. */\n _this._updateViewport = function (withForceUpdate) {\n var viewport = _this.state.viewport;\n var viewportElement = _this._root.current;\n var scrollElement = findScrollableParent(viewportElement);\n var scrollRect = getRect(scrollElement);\n var clientRect = getRect(viewportElement);\n var updateComponent = function () {\n if (withForceUpdate && _this._composedComponentInstance) {\n _this._composedComponentInstance.forceUpdate();\n }\n };\n var isSizeChanged = (clientRect && clientRect.width) !== viewport.width || (scrollRect && scrollRect.height) !== viewport.height;\n if (isSizeChanged && _this._resizeAttempts < MAX_RESIZE_ATTEMPTS && clientRect && scrollRect) {\n _this._resizeAttempts++;\n _this.setState({\n viewport: {\n width: clientRect.width,\n height: scrollRect.height,\n },\n }, function () {\n _this._updateViewport(withForceUpdate);\n });\n }\n else {\n _this._resizeAttempts = 0;\n updateComponent();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._resizeAttempts = 0;\n _this.state = {\n viewport: {\n width: 0,\n height: 0,\n },\n };\n return _this;\n }\n WithViewportComponent.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, delayFirstMeasure = _a.delayFirstMeasure, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n var win = getWindow(this._root.current);\n this._onAsyncResize = this._async.debounce(this._onAsyncResize, RESIZE_DELAY, {\n leading: false,\n });\n if (!skipViewportMeasures) {\n if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n this._registerResizeObserver();\n }\n else {\n this._events.on(win, 'resize', this._onAsyncResize);\n }\n if (delayFirstMeasure) {\n this._async.setTimeout(function () {\n _this._updateViewport();\n }, RESIZE_DELAY);\n }\n else {\n this._updateViewport();\n }\n }\n };\n WithViewportComponent.prototype.componentDidUpdate = function (previousProps) {\n var previousSkipViewportMeasures = previousProps.skipViewportMeasures;\n var _a = this.props, disableResizeObserver = _a.disableResizeObserver, skipViewportMeasures = _a.skipViewportMeasures;\n var win = getWindow(this._root.current);\n if (skipViewportMeasures !== previousSkipViewportMeasures) {\n if (!skipViewportMeasures) {\n if (!disableResizeObserver && this._isResizeObserverAvailable()) {\n if (!this._viewportResizeObserver) {\n this._registerResizeObserver();\n }\n }\n else {\n this._events.on(win, 'resize', this._onAsyncResize);\n }\n this._updateViewport();\n }\n else {\n this._unregisterResizeObserver();\n this._events.off(win, 'resize', this._onAsyncResize);\n }\n }\n };\n WithViewportComponent.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n this._unregisterResizeObserver();\n };\n WithViewportComponent.prototype.render = function () {\n var viewport = this.state.viewport;\n var newViewport = viewport.width > 0 && viewport.height > 0 ? viewport : undefined;\n return (React.createElement(\"div\", { className: \"ms-Viewport\", ref: this._root, style: { minWidth: 1, minHeight: 1 } },\n React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, viewport: newViewport }, this.props))));\n };\n WithViewportComponent.prototype.forceUpdate = function () {\n this._updateViewport(true);\n };\n WithViewportComponent.prototype._onAsyncResize = function () {\n this._updateViewport();\n };\n WithViewportComponent.prototype._isResizeObserverAvailable = function () {\n var win = getWindow(this._root.current);\n return win && win.ResizeObserver;\n };\n return WithViewportComponent;\n }(BaseDecorator));\n}\n//# sourceMappingURL=withViewport.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Takes an array of groups and returns a count of the groups and all descendant groups.\n * @param groups - The array of groups to count.\n */\nexport var GetGroupCount = function (groups) {\n var total = 0;\n if (groups) {\n var remainingGroups = __spreadArray([], groups, true);\n var currentGroup = void 0;\n while (remainingGroups && remainingGroups.length > 0) {\n ++total;\n currentGroup = remainingGroups.pop();\n if (currentGroup && currentGroup.children) {\n remainingGroups.push.apply(remainingGroups, currentGroup.children);\n }\n }\n }\n return total;\n};\n//# sourceMappingURL=GroupedListUtility.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, FocusRects, Async, KeyCodes, elementContains, getRTLSafeKeyCode, classNamesFunction, css, memoizeFunction, warnMutuallyExclusive, } from '../../Utilities';\nimport { CheckboxVisibility, ColumnActionsMode, ConstrainMode, DetailsListLayoutMode, ColumnDragEndLocation, } from '../DetailsList/DetailsList.types';\nimport { DetailsHeader } from '../DetailsList/DetailsHeader';\nimport { SelectAllVisibility } from '../DetailsList/DetailsHeader.types';\nimport { DetailsRow } from '../DetailsList/DetailsRow';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Selection, SelectionMode, SelectionZone } from '../../Selection';\nimport { DragDropHelper } from '../../DragDrop';\nimport { GroupedList } from '../../GroupedList';\nimport { List } from '../../List';\nimport { withViewport } from '../../utilities/decorators/withViewport';\nimport { GetGroupCount } from '../../utilities/groupedList/GroupedListUtility';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nimport { CHECK_CELL_WIDTH as CHECKBOX_WIDTH } from './DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as GROUP_EXPAND_WIDTH } from '../GroupedList/GroupSpacer';\nimport { composeComponentAs, composeRenderFunction, getId } from '@fluentui/utilities';\nimport { useConst } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'DetailsList';\nvar MIN_COLUMN_WIDTH = 100; // this is the global min width\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\nvar rowFocusZoneAddTabIndexProps = { tabIndex: 0 };\nvar rowFocusZoneNoTabIndexProps = {};\n/**\n * Hooks-based implementation of DetailsList.\n * Since many existing consumers of DetailsList expect `ref` to return a `DetailsList`,\n * this inner component handles rendering while the outer maintains compatibility.\n */\nvar DetailsListInner = function (props) {\n var selection = props.selection;\n var ariaLabelForListHeader = props.ariaLabelForListHeader, ariaLabelForSelectAllCheckbox = props.ariaLabelForSelectAllCheckbox, ariaLabelForSelectionColumn = props.ariaLabelForSelectionColumn, className = props.className, checkboxVisibility = props.checkboxVisibility, compact = props.compact, constrainMode = props.constrainMode, dragDropEvents = props.dragDropEvents, groups = props.groups, groupProps = props.groupProps, indentWidth = props.indentWidth, items = props.items, isPlaceholderData = props.isPlaceholderData, isHeaderVisible = props.isHeaderVisible, layoutMode = props.layoutMode, onItemInvoked = props.onItemInvoked, onItemContextMenu = props.onItemContextMenu, onColumnHeaderClick = props.onColumnHeaderClick, onColumnHeaderContextMenu = props.onColumnHeaderContextMenu, _a = props.selectionMode, selectionMode = _a === void 0 ? selection.mode : _a, selectionPreservedOnEmptyClick = props.selectionPreservedOnEmptyClick, selectionZoneProps = props.selectionZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n ariaLabel = props.ariaLabel, ariaLabelForGrid = props.ariaLabelForGrid, rowElementEventMap = props.rowElementEventMap, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldApplyApplicationRole, \n // eslint-disable-next-line deprecation/deprecation\n shouldApplyApplicationRole = _b === void 0 ? false : _b, getKey = props.getKey, listProps = props.listProps, usePageCache = props.usePageCache, onShouldVirtualize = props.onShouldVirtualize, viewport = props.viewport, minimumPixelsForDrag = props.minimumPixelsForDrag, getGroupHeight = props.getGroupHeight, styles = props.styles, theme = props.theme, _c = props.cellStyleProps, cellStyleProps = _c === void 0 ? DEFAULT_CELL_STYLE_PROPS : _c, onRenderCheckbox = props.onRenderCheckbox, useFastIcons = props.useFastIcons, dragDropHelper = props.dragDropHelper, adjustedColumns = props.adjustedColumns, isCollapsed = props.isCollapsed, isSizing = props.isSizing, isSomeGroupExpanded = props.isSomeGroupExpanded, version = props.version, rootRef = props.rootRef, listRef = props.listRef, focusZoneRef = props.focusZoneRef, columnReorderOptions = props.columnReorderOptions, groupedListRef = props.groupedListRef, headerRef = props.headerRef, onGroupExpandStateChanged = props.onGroupExpandStateChanged, onColumnIsSizingChanged = props.onColumnIsSizingChanged, onRowDidMount = props.onRowDidMount, onRowWillUnmount = props.onRowWillUnmount, disableSelectionZone = props.disableSelectionZone, _d = props.isSelectedOnFocus, isSelectedOnFocus = _d === void 0 ? true : _d, onColumnResized = props.onColumnResized, onColumnAutoResized = props.onColumnAutoResized, onToggleCollapse = props.onToggleCollapse, onActiveRowChanged = props.onActiveRowChanged, onBlur = props.onBlur, eventsToRegister = props.rowElementEventMap, onRenderMissingItem = props.onRenderMissingItem, onRenderItemColumn = props.onRenderItemColumn, onRenderField = props.onRenderField, getCellValueKey = props.getCellValueKey, getRowAriaLabel = props.getRowAriaLabel, getRowAriaDescribedBy = props.getRowAriaDescribedBy, checkButtonAriaLabel = props.checkButtonAriaLabel, checkButtonGroupAriaLabel = props.checkButtonGroupAriaLabel, checkboxCellClassName = props.checkboxCellClassName, useReducedRowRenderer = props.useReducedRowRenderer, enableUpdateAnimations = props.enableUpdateAnimations, enterModalSelectionOnTouch = props.enterModalSelectionOnTouch, onRenderDefaultRow = props.onRenderDefaultRow, selectionZoneRef = props.selectionZoneRef, focusZoneProps = props.focusZoneProps;\n var defaultRole = 'grid';\n var role = props.role ? props.role : defaultRole;\n var rowId = getId('row');\n var groupNestingDepth = getGroupNestingDepth(groups);\n var groupedDetailsListIndexMap = useGroupedDetailsListIndexMap(groups);\n var additionalListProps = React.useMemo(function () {\n return __assign({ renderedWindowsAhead: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_AHEAD, renderedWindowsBehind: isSizing ? 0 : DEFAULT_RENDERED_WINDOWS_BEHIND, getKey: getKey, version: version }, listProps);\n }, [isSizing, getKey, version, listProps]);\n var selectAllVisibility = SelectAllVisibility.none; // for SelectionMode.none\n if (selectionMode === SelectionMode.single) {\n selectAllVisibility = SelectAllVisibility.hidden;\n }\n if (selectionMode === SelectionMode.multiple) {\n // if isCollapsedGroupSelectVisible is false, disable select all when the list has all collapsed groups\n var isCollapsedGroupSelectVisible = groupProps && groupProps.headerProps && groupProps.headerProps.isCollapsedGroupSelectVisible;\n if (isCollapsedGroupSelectVisible === undefined) {\n isCollapsedGroupSelectVisible = true;\n }\n var isSelectAllVisible = isCollapsedGroupSelectVisible || !groups || isSomeGroupExpanded;\n selectAllVisibility = isSelectAllVisible ? SelectAllVisibility.visible : SelectAllVisibility.hidden;\n }\n if (checkboxVisibility === CheckboxVisibility.hidden) {\n selectAllVisibility = SelectAllVisibility.none;\n }\n var defaultOnRenderDetailsHeader = React.useCallback(function (detailsHeaderProps) {\n return React.createElement(DetailsHeader, __assign({}, detailsHeaderProps));\n }, []);\n var defaultOnRenderDetailsFooter = React.useCallback(function () {\n return null;\n }, []);\n var propsOnRenderDetailsHeader = props.onRenderDetailsHeader;\n var onRenderDetailsHeader = React.useMemo(function () {\n return propsOnRenderDetailsHeader\n ? composeRenderFunction(propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader)\n : defaultOnRenderDetailsHeader;\n }, [propsOnRenderDetailsHeader, defaultOnRenderDetailsHeader]);\n var propsOnRenderDetailsFooter = props.onRenderDetailsFooter;\n var onRenderDetailsFooter = React.useMemo(function () {\n return propsOnRenderDetailsFooter\n ? composeRenderFunction(propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter)\n : defaultOnRenderDetailsFooter;\n }, [propsOnRenderDetailsFooter, defaultOnRenderDetailsFooter]);\n var detailsFooterProps = React.useMemo(function () {\n return {\n columns: adjustedColumns,\n groupNestingDepth: groupNestingDepth,\n selection: selection,\n selectionMode: selectionMode,\n viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n indentWidth: indentWidth,\n cellStyleProps: cellStyleProps,\n };\n }, [\n adjustedColumns,\n groupNestingDepth,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n indentWidth,\n cellStyleProps,\n ]);\n var columnReorderOnDragEnd = columnReorderOptions && columnReorderOptions.onDragEnd;\n var onColumnDragEnd = React.useCallback(function (_a, event) {\n var dropLocation = _a.dropLocation;\n var finalDropLocation = ColumnDragEndLocation.outside;\n if (columnReorderOnDragEnd) {\n if (dropLocation && dropLocation !== ColumnDragEndLocation.header) {\n finalDropLocation = dropLocation;\n }\n else if (rootRef.current) {\n var clientRect = rootRef.current.getBoundingClientRect();\n if (event.clientX > clientRect.left &&\n event.clientX < clientRect.right &&\n event.clientY > clientRect.top &&\n event.clientY < clientRect.bottom) {\n finalDropLocation = ColumnDragEndLocation.surface;\n }\n }\n columnReorderOnDragEnd(finalDropLocation);\n }\n }, [columnReorderOnDragEnd, rootRef]);\n var columnReorderProps = React.useMemo(function () {\n if (columnReorderOptions) {\n return __assign(__assign({}, columnReorderOptions), { onColumnDragEnd: onColumnDragEnd });\n }\n }, [columnReorderOptions, onColumnDragEnd]);\n var rowCount = (isHeaderVisible ? 1 : 0) +\n (props.onRenderDetailsFooter ? 1 : 0) +\n GetGroupCount(groups) +\n (items ? items.length : 0);\n var colCount = (selectAllVisibility !== SelectAllVisibility.none ? 1 : 0) +\n (adjustedColumns ? adjustedColumns.length : 0) +\n (groups ? 1 : 0);\n var classNames = React.useMemo(function () {\n return getClassNames(styles, {\n theme: theme,\n compact: compact,\n isFixed: layoutMode === DetailsListLayoutMode.fixedColumns,\n isHorizontalConstrained: constrainMode === ConstrainMode.horizontalConstrained,\n className: className,\n });\n }, [styles, theme, compact, layoutMode, constrainMode, className]);\n var onRenderDetailsGroupFooter = groupProps && groupProps.onRenderFooter;\n var finalOnRenderDetailsGroupFooter = React.useMemo(function () {\n return onRenderDetailsGroupFooter\n ? function (groupFooterProps, defaultRender) {\n return onRenderDetailsGroupFooter(__assign(__assign({}, groupFooterProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: selection, selectionMode: selectionMode, viewport: viewport, checkboxVisibility: checkboxVisibility, cellStyleProps: cellStyleProps }), defaultRender);\n }\n : undefined;\n }, [\n onRenderDetailsGroupFooter,\n adjustedColumns,\n groupNestingDepth,\n indentWidth,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n cellStyleProps,\n ]);\n var onRenderDetailsGroupHeader = groupProps && groupProps.onRenderHeader;\n var finalOnRenderDetailsGroupHeader = React.useMemo(function () {\n return onRenderDetailsGroupHeader\n ? function (groupHeaderProps, defaultRender) {\n var _a, _b;\n var groupIndex = groupHeaderProps.groupIndex;\n var groupKey = groupIndex !== undefined ? (_b = (_a = groupHeaderProps.groups) === null || _a === void 0 ? void 0 : _a[groupIndex]) === null || _b === void 0 ? void 0 : _b.key : undefined;\n var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].totalRowCount\n : 0;\n return onRenderDetailsGroupHeader(__assign(__assign({}, groupHeaderProps), { columns: adjustedColumns, groupNestingDepth: groupNestingDepth, indentWidth: indentWidth, selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, viewport: viewport, checkboxVisibility: checkboxVisibility, cellStyleProps: cellStyleProps, ariaColSpan: adjustedColumns.length, ariaLevel: undefined, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }), defaultRender);\n }\n : function (groupHeaderProps, defaultRender) {\n var _a, _b;\n var groupIndex = groupHeaderProps.groupIndex;\n var groupKey = groupIndex !== undefined ? (_b = (_a = groupHeaderProps.groups) === null || _a === void 0 ? void 0 : _a[groupIndex]) === null || _b === void 0 ? void 0 : _b.key : undefined;\n var totalRowCount = groupKey !== undefined && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].totalRowCount\n : 0;\n return defaultRender(__assign(__assign({}, groupHeaderProps), { ariaColSpan: adjustedColumns.length, ariaLevel: undefined, ariaPosInSet: undefined, ariaSetSize: undefined, ariaRowCount: undefined, ariaRowIndex: groupIndex !== undefined ? totalRowCount + (isHeaderVisible ? 1 : 0) : undefined }));\n };\n }, [\n onRenderDetailsGroupHeader,\n adjustedColumns,\n groupNestingDepth,\n indentWidth,\n isHeaderVisible,\n selection,\n selectionMode,\n viewport,\n checkboxVisibility,\n cellStyleProps,\n groupedDetailsListIndexMap,\n ]);\n var finalGroupProps = React.useMemo(function () {\n var _a;\n return __assign(__assign({}, groupProps), { role: role === defaultRole ? 'rowgroup' : 'presentation', onRenderFooter: finalOnRenderDetailsGroupFooter, onRenderHeader: finalOnRenderDetailsGroupHeader, \n // pass through custom group header checkbox label\n headerProps: __assign(__assign({}, groupProps === null || groupProps === void 0 ? void 0 : groupProps.headerProps), { selectAllButtonProps: __assign({ 'aria-label': checkButtonGroupAriaLabel }, (_a = groupProps === null || groupProps === void 0 ? void 0 : groupProps.headerProps) === null || _a === void 0 ? void 0 : _a.selectAllButtonProps) }) });\n }, [groupProps, finalOnRenderDetailsGroupFooter, finalOnRenderDetailsGroupHeader, checkButtonGroupAriaLabel, role]);\n var sumColumnWidths = useConst(function () {\n return memoizeFunction(function (columns) {\n var totalWidth = 0;\n columns.forEach(function (column) { return (totalWidth += column.calculatedWidth || column.minWidth); });\n return totalWidth;\n });\n });\n var collapseAllVisibility = groupProps && groupProps.collapseAllVisibility;\n var rowWidth = React.useMemo(function () {\n return sumColumnWidths(adjustedColumns);\n }, [adjustedColumns, sumColumnWidths]);\n var onRenderCell = React.useCallback(function (nestingDepth, item, index, group) {\n var finalOnRenderRow = props.onRenderRow\n ? composeRenderFunction(props.onRenderRow, onRenderDefaultRow)\n : onRenderDefaultRow;\n var groupKey = group ? group.key : undefined;\n var numOfGroupHeadersBeforeItem = groupKey && groupedDetailsListIndexMap[groupKey]\n ? groupedDetailsListIndexMap[groupKey].numOfGroupHeadersBeforeItem\n : 0;\n var rowRole = role === defaultRole ? undefined : 'presentation';\n // add tabindex=\"0\" to first row if no header exists, to ensure the focuszone is in the tab order\n var rowFocusZoneProps = isHeaderVisible || index > 0 ? rowFocusZoneNoTabIndexProps : rowFocusZoneAddTabIndexProps;\n var rowProps = {\n item: item,\n itemIndex: index,\n flatIndexOffset: (isHeaderVisible ? 2 : 1) + numOfGroupHeadersBeforeItem,\n compact: compact,\n columns: adjustedColumns,\n groupNestingDepth: nestingDepth,\n id: \"\".concat(rowId, \"-\").concat(index),\n selectionMode: selectionMode,\n selection: selection,\n onDidMount: onRowDidMount,\n onWillUnmount: onRowWillUnmount,\n onRenderItemColumn: onRenderItemColumn,\n onRenderField: onRenderField,\n getCellValueKey: getCellValueKey,\n eventsToRegister: eventsToRegister,\n dragDropEvents: dragDropEvents,\n dragDropHelper: dragDropHelper,\n viewport: viewport,\n checkboxVisibility: checkboxVisibility,\n collapseAllVisibility: collapseAllVisibility,\n getRowAriaLabel: getRowAriaLabel,\n getRowAriaDescribedBy: getRowAriaDescribedBy,\n checkButtonAriaLabel: checkButtonAriaLabel,\n checkboxCellClassName: checkboxCellClassName,\n useReducedRowRenderer: useReducedRowRenderer,\n indentWidth: indentWidth,\n cellStyleProps: cellStyleProps,\n onRenderDetailsCheckbox: onRenderCheckbox,\n enableUpdateAnimations: enableUpdateAnimations,\n rowWidth: rowWidth,\n useFastIcons: useFastIcons,\n role: rowRole,\n isGridRow: true,\n focusZoneProps: rowFocusZoneProps,\n };\n if (!item) {\n if (onRenderMissingItem) {\n return onRenderMissingItem(index, rowProps);\n }\n return null;\n }\n return finalOnRenderRow(rowProps);\n }, [\n compact,\n adjustedColumns,\n selectionMode,\n selection,\n rowId,\n onRowDidMount,\n onRowWillUnmount,\n onRenderItemColumn,\n onRenderField,\n getCellValueKey,\n eventsToRegister,\n dragDropEvents,\n dragDropHelper,\n viewport,\n checkboxVisibility,\n collapseAllVisibility,\n getRowAriaLabel,\n getRowAriaDescribedBy,\n isHeaderVisible,\n checkButtonAriaLabel,\n checkboxCellClassName,\n useReducedRowRenderer,\n indentWidth,\n cellStyleProps,\n onRenderCheckbox,\n enableUpdateAnimations,\n useFastIcons,\n onRenderDefaultRow,\n onRenderMissingItem,\n props.onRenderRow,\n rowWidth,\n role,\n groupedDetailsListIndexMap,\n ]);\n var onRenderListCell = React.useCallback(function (nestingDepth) {\n return function (item, itemIndex) {\n return onRenderCell(nestingDepth, item, itemIndex);\n };\n }, [onRenderCell]);\n var isRightArrow = React.useCallback(function (event) {\n // eslint-disable-next-line deprecation/deprecation\n return event.which === getRTLSafeKeyCode(KeyCodes.right, theme);\n }, [theme]);\n var focusZoneInnerProps = __assign(__assign({}, focusZoneProps), { componentRef: focusZoneProps && focusZoneProps.componentRef ? focusZoneProps.componentRef : focusZoneRef, className: focusZoneProps && focusZoneProps.className\n ? css(classNames.focusZone, focusZoneProps.className)\n : classNames.focusZone, direction: focusZoneProps ? focusZoneProps.direction : FocusZoneDirection.vertical, shouldEnterInnerZone: focusZoneProps && focusZoneProps.shouldEnterInnerZone ? focusZoneProps.shouldEnterInnerZone : isRightArrow, onActiveElementChanged: focusZoneProps && focusZoneProps.onActiveElementChanged\n ? focusZoneProps.onActiveElementChanged\n : onActiveRowChanged, shouldRaiseClicksOnEnter: false, onBlur: focusZoneProps && focusZoneProps.onBlur ? focusZoneProps.onBlur : onBlur });\n var FinalGroupedList = groups && (groupProps === null || groupProps === void 0 ? void 0 : groupProps.groupedListAs) ? composeComponentAs(groupProps.groupedListAs, GroupedList) : GroupedList;\n var list = groups ? (React.createElement(FinalGroupedList, { focusZoneProps: focusZoneInnerProps, componentRef: groupedListRef, groups: groups, groupProps: finalGroupProps, items: items, onRenderCell: onRenderCell, role: \"presentation\", selection: selection, selectionMode: checkboxVisibility !== CheckboxVisibility.hidden ? selectionMode : SelectionMode.none, dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: rowElementEventMap, listProps: additionalListProps, onGroupExpandStateChanged: onGroupExpandStateChanged, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, getGroupHeight: getGroupHeight, compact: compact })) : (React.createElement(FocusZone, __assign({}, focusZoneInnerProps),\n React.createElement(List, __assign({ ref: listRef, role: \"presentation\", items: items, onRenderCell: onRenderListCell(0), usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize }, additionalListProps))));\n var onHeaderKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.down) {\n if (focusZoneRef.current && focusZoneRef.current.focus()) {\n // select the first item in list after down arrow key event\n // only if nothing was selected; otherwise start with the already-selected item\n if (isSelectedOnFocus && selection.getSelectedIndices().length === 0) {\n selection.setIndexSelected(0, true, false);\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n }, [selection, focusZoneRef, isSelectedOnFocus]);\n var onContentKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.up && !ev.altKey) {\n if (headerRef.current && headerRef.current.focus()) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n }, [headerRef]);\n return (React.createElement(\"div\", __assign({ ref: rootRef, className: classNames.root, \"data-automationid\": \"DetailsList\", \"data-is-scrollable\": \"false\" }, (shouldApplyApplicationRole ? { role: 'application' } : {})),\n React.createElement(FocusRects, null),\n React.createElement(\"div\", { role: role, \"aria-label\": ariaLabelForGrid || ariaLabel, \"aria-rowcount\": isPlaceholderData ? 0 : rowCount, \"aria-colcount\": colCount, \"aria-busy\": isPlaceholderData },\n React.createElement(\"div\", { onKeyDown: onHeaderKeyDown, role: \"presentation\", className: classNames.headerWrapper }, isHeaderVisible &&\n onRenderDetailsHeader({\n componentRef: headerRef,\n selectionMode: selectionMode,\n layoutMode: layoutMode,\n selection: selection,\n columns: adjustedColumns,\n onColumnClick: onColumnHeaderClick,\n onColumnContextMenu: onColumnHeaderContextMenu,\n onColumnResized: onColumnResized,\n onColumnIsSizingChanged: onColumnIsSizingChanged,\n onColumnAutoResized: onColumnAutoResized,\n groupNestingDepth: groupNestingDepth,\n isAllCollapsed: isCollapsed,\n onToggleCollapseAll: onToggleCollapse,\n ariaLabel: ariaLabelForListHeader,\n ariaLabelForSelectAllCheckbox: ariaLabelForSelectAllCheckbox,\n ariaLabelForSelectionColumn: ariaLabelForSelectionColumn,\n selectAllVisibility: selectAllVisibility,\n collapseAllVisibility: groupProps && groupProps.collapseAllVisibility,\n viewport: viewport,\n columnReorderProps: columnReorderProps,\n minimumPixelsForDrag: minimumPixelsForDrag,\n cellStyleProps: cellStyleProps,\n checkboxVisibility: checkboxVisibility,\n indentWidth: indentWidth,\n onRenderDetailsCheckbox: onRenderCheckbox,\n rowWidth: sumColumnWidths(adjustedColumns),\n useFastIcons: useFastIcons,\n }, onRenderDetailsHeader)),\n React.createElement(\"div\", { onKeyDown: onContentKeyDown, role: \"presentation\", className: classNames.contentWrapper }, !disableSelectionZone ? (React.createElement(SelectionZone, __assign({ ref: selectionZoneRef, selection: selection, selectionPreservedOnEmptyClick: selectionPreservedOnEmptyClick, selectionMode: selectionMode, isSelectedOnFocus: isSelectedOnFocus, selectionClearedOnEscapePress: isSelectedOnFocus, toggleWithoutModifierPressed: !isSelectedOnFocus, onItemInvoked: onItemInvoked, onItemContextMenu: onItemContextMenu, enterModalOnTouch: enterModalSelectionOnTouch }, (selectionZoneProps || {})), list)) : (list)),\n onRenderDetailsFooter(__assign({}, detailsFooterProps)))));\n};\nvar DetailsListBase = /** @class */ (function (_super) {\n __extends(DetailsListBase, _super);\n function DetailsListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._header = React.createRef();\n _this._groupedList = React.createRef();\n _this._list = React.createRef();\n _this._focusZone = React.createRef();\n _this._selectionZone = React.createRef();\n _this._onRenderRow = function (props, defaultRender) {\n return React.createElement(DetailsRow, __assign({}, props));\n };\n _this._getDerivedStateFromProps = function (nextProps, previousState) {\n var _a = _this.props, checkboxVisibility = _a.checkboxVisibility, items = _a.items, setKey = _a.setKey, _b = _a.selectionMode, selectionMode = _b === void 0 ? _this._selection.mode : _b, columns = _a.columns, viewport = _a.viewport, compact = _a.compact, dragDropEvents = _a.dragDropEvents;\n var _c = (_this.props.groupProps || {}).isAllGroupsCollapsed, isAllGroupsCollapsed = _c === void 0 ? undefined : _c;\n var newViewportWidth = (nextProps.viewport && nextProps.viewport.width) || 0;\n var oldViewportWidth = (viewport && viewport.width) || 0;\n var shouldResetSelection = nextProps.setKey !== setKey || nextProps.setKey === undefined;\n var shouldForceUpdates = false;\n if (nextProps.layoutMode !== _this.props.layoutMode) {\n shouldForceUpdates = true;\n }\n var nextState = previousState;\n if (shouldResetSelection) {\n _this._initialFocusedIndex = nextProps.initialFocusedIndex;\n // reset focusedItemIndex when setKey changes\n nextState = __assign(__assign({}, nextState), { focusedItemIndex: _this._initialFocusedIndex !== undefined ? _this._initialFocusedIndex : -1 });\n }\n if (!_this.props.disableSelectionZone && nextProps.items !== items) {\n _this._selection.setItems(nextProps.items, shouldResetSelection);\n }\n if (nextProps.checkboxVisibility !== checkboxVisibility ||\n nextProps.columns !== columns ||\n newViewportWidth !== oldViewportWidth ||\n nextProps.compact !== compact) {\n shouldForceUpdates = true;\n }\n nextState = __assign(__assign({}, nextState), _this._adjustColumns(nextProps, nextState, true));\n if (nextProps.selectionMode !== selectionMode) {\n shouldForceUpdates = true;\n }\n if (isAllGroupsCollapsed === undefined &&\n nextProps.groupProps &&\n nextProps.groupProps.isAllGroupsCollapsed !== undefined) {\n nextState = __assign(__assign({}, nextState), { isCollapsed: nextProps.groupProps.isAllGroupsCollapsed, isSomeGroupExpanded: !nextProps.groupProps.isAllGroupsCollapsed });\n }\n if (nextProps.dragDropEvents !== dragDropEvents) {\n _this._dragDropHelper && _this._dragDropHelper.dispose();\n _this._dragDropHelper = nextProps.dragDropEvents\n ? new DragDropHelper({\n selection: _this._selection,\n minimumPixelsForDrag: nextProps.minimumPixelsForDrag,\n })\n : undefined;\n shouldForceUpdates = true;\n }\n if (shouldForceUpdates) {\n nextState = __assign(__assign({}, nextState), { version: {} });\n }\n return nextState;\n };\n _this._onGroupExpandStateChanged = function (isSomeGroupExpanded) {\n _this.setState({ isSomeGroupExpanded: isSomeGroupExpanded });\n };\n _this._onColumnIsSizingChanged = function (column, isSizing) {\n _this.setState({ isSizing: isSizing });\n };\n _this._onRowDidMount = function (row) {\n var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n var itemKey = _this._getItemKey(item, itemIndex);\n _this._activeRows[itemKey] = row; // this is used for column auto resize\n _this._setFocusToRowIfPending(row);\n var onRowDidMount = _this.props.onRowDidMount;\n if (onRowDidMount) {\n onRowDidMount(item, itemIndex);\n }\n };\n _this._onRowWillUnmount = function (row) {\n var onRowWillUnmount = _this.props.onRowWillUnmount;\n var _a = row.props, item = _a.item, itemIndex = _a.itemIndex;\n var itemKey = _this._getItemKey(item, itemIndex);\n delete _this._activeRows[itemKey];\n if (onRowWillUnmount) {\n onRowWillUnmount(item, itemIndex);\n }\n };\n _this._onToggleCollapse = function (collapsed) {\n _this.setState({\n isCollapsed: collapsed,\n });\n if (_this._groupedList.current) {\n _this._groupedList.current.toggleCollapseAll(collapsed);\n }\n };\n _this._onColumnResized = function (resizingColumn, newWidth, resizingColumnIndex) {\n var newCalculatedWidth = Math.max(resizingColumn.minWidth || MIN_COLUMN_WIDTH, newWidth);\n if (_this.props.onColumnResize) {\n _this.props.onColumnResize(resizingColumn, newCalculatedWidth, resizingColumnIndex);\n }\n _this._rememberCalculatedWidth(resizingColumn, newCalculatedWidth);\n _this.setState(__assign(__assign({}, _this._adjustColumns(_this.props, _this.state, true, resizingColumnIndex)), { version: {} }));\n };\n /**\n * Callback function when double clicked on the details header column resizer\n * which will measure the column cells of all the active rows and resize the\n * column to the max cell width.\n *\n * @param column - double clicked column definition\n * @param columnIndex - double clicked column index\n * TODO: min width 100 should be changed to const value and should be consistent with the\n * value used on _onSizerMove method in DetailsHeader\n */\n _this._onColumnAutoResized = function (column, columnIndex) {\n var max = 0;\n var count = 0;\n var totalCount = Object.keys(_this._activeRows).length;\n for (var key in _this._activeRows) {\n if (_this._activeRows.hasOwnProperty(key)) {\n var currentRow = _this._activeRows[key];\n currentRow.measureCell(columnIndex, function (width) {\n max = Math.max(max, width);\n count++;\n if (count === totalCount) {\n _this._onColumnResized(column, max, columnIndex);\n }\n });\n }\n }\n };\n /**\n * Call back function when an element in FocusZone becomes active. It will translate it into item\n * and call onActiveItemChanged callback if specified.\n *\n * @param row - element that became active in Focus Zone\n * @param focus - event from Focus Zone\n */\n _this._onActiveRowChanged = function (el, ev) {\n var _a = _this.props, items = _a.items, onActiveItemChanged = _a.onActiveItemChanged;\n if (!el) {\n return;\n }\n // Check and assign index only if the event was raised from any DetailsRow element\n if (el.getAttribute('data-item-index')) {\n var index = Number(el.getAttribute('data-item-index'));\n if (index >= 0) {\n if (onActiveItemChanged) {\n onActiveItemChanged(items[index], index, ev);\n }\n _this.setState({\n focusedItemIndex: index,\n });\n }\n }\n };\n _this._onBlur = function (event) {\n _this.setState({\n focusedItemIndex: -1,\n });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._activeRows = {};\n _this._columnOverrides = {};\n _this.state = {\n focusedItemIndex: -1,\n lastWidth: 0,\n adjustedColumns: _this._getAdjustedColumns(props, undefined),\n isSizing: false,\n isCollapsed: props.groupProps && props.groupProps.isAllGroupsCollapsed,\n isSomeGroupExpanded: props.groupProps && !props.groupProps.isAllGroupsCollapsed,\n version: {},\n getDerivedStateFromProps: _this._getDerivedStateFromProps,\n };\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n selection: 'getKey',\n });\n _this._selection =\n props.selection ||\n new Selection({\n onSelectionChanged: undefined,\n getKey: props.getKey,\n selectionMode: props.selectionMode,\n });\n if (!_this.props.disableSelectionZone) {\n _this._selection.setItems(props.items, false);\n }\n _this._dragDropHelper = props.dragDropEvents\n ? new DragDropHelper({\n selection: _this._selection,\n minimumPixelsForDrag: props.minimumPixelsForDrag,\n })\n : undefined;\n _this._initialFocusedIndex = props.initialFocusedIndex;\n return _this;\n }\n DetailsListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n return previousState.getDerivedStateFromProps(nextProps, previousState);\n };\n DetailsListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n this._list.current && this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n this._groupedList.current && this._groupedList.current.scrollToIndex(index, measureItem, scrollToMode);\n };\n DetailsListBase.prototype.focusIndex = function (index, forceIntoFirstElement, measureItem, scrollToMode) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n var item = this.props.items[index];\n if (item) {\n this.scrollToIndex(index, measureItem, scrollToMode);\n var itemKey = this._getItemKey(item, index);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRow(row, forceIntoFirstElement);\n }\n }\n };\n DetailsListBase.prototype.getStartItemIndexInView = function () {\n if (this._list && this._list.current) {\n return this._list.current.getStartItemIndexInView();\n }\n else if (this._groupedList && this._groupedList.current) {\n return this._groupedList.current.getStartItemIndexInView();\n }\n return 0;\n };\n DetailsListBase.prototype.updateColumn = function (column, options) {\n var _a, _b;\n var NO_COLUMNS = [];\n var _c = this.props, _d = _c.columns, columns = _d === void 0 ? NO_COLUMNS : _d, selectionMode = _c.selectionMode, checkboxVisibility = _c.checkboxVisibility, columnReorderOptions = _c.columnReorderOptions;\n var width = options.width, newColumnIndex = options.newColumnIndex;\n var index = columns.findIndex(function (col) { return col.key === column.key; });\n if (width) {\n this._onColumnResized(column, width, index);\n }\n if (newColumnIndex !== undefined && columnReorderOptions) {\n var isCheckboxColumnHidden = selectionMode === SelectionMode.none || checkboxVisibility === CheckboxVisibility.hidden;\n var showCheckbox = checkboxVisibility !== CheckboxVisibility.hidden;\n var columnIndex = (showCheckbox ? 2 : 1) + index;\n var draggedIndex = isCheckboxColumnHidden ? columnIndex - 1 : columnIndex - 2;\n var targetIndex = isCheckboxColumnHidden ? newColumnIndex - 1 : newColumnIndex - 2;\n var frozenColumnCountFromStart = (_a = columnReorderOptions.frozenColumnCountFromStart) !== null && _a !== void 0 ? _a : 0;\n var frozenColumnCountFromEnd = (_b = columnReorderOptions.frozenColumnCountFromEnd) !== null && _b !== void 0 ? _b : 0;\n var isValidTargetIndex = targetIndex >= frozenColumnCountFromStart && targetIndex < columns.length - frozenColumnCountFromEnd;\n if (isValidTargetIndex) {\n if (columnReorderOptions.onColumnDrop) {\n var dragDropDetails = {\n draggedIndex: draggedIndex,\n targetIndex: targetIndex,\n };\n columnReorderOptions.onColumnDrop(dragDropDetails);\n /* eslint-disable deprecation/deprecation */\n }\n else if (columnReorderOptions.handleColumnReorder) {\n columnReorderOptions.handleColumnReorder(draggedIndex, targetIndex);\n /* eslint-enable deprecation/deprecation */\n }\n }\n }\n };\n DetailsListBase.prototype.componentWillUnmount = function () {\n if (this._dragDropHelper) {\n // TODO If the DragDropHelper was passed via props, this will dispose it, which is incorrect behavior.\n this._dragDropHelper.dispose();\n }\n this._async.dispose();\n };\n DetailsListBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._notifyColumnsResized();\n if (this._initialFocusedIndex !== undefined) {\n var item = this.props.items[this._initialFocusedIndex];\n if (item) {\n var itemKey = this._getItemKey(item, this._initialFocusedIndex);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRowIfPending(row);\n }\n }\n }\n if (this.props.items !== prevProps.items &&\n this.props.items.length > 0 &&\n this.state.focusedItemIndex !== -1 &&\n !elementContains(this._root.current, document.activeElement, false)) {\n // Item set has changed and previously-focused item is gone.\n // Set focus to item at index of previously-focused item if it is in range,\n // else set focus to the last item.\n var index = this.state.focusedItemIndex < this.props.items.length\n ? this.state.focusedItemIndex\n : this.props.items.length - 1;\n var item = this.props.items[index];\n var itemKey = this._getItemKey(item, this.state.focusedItemIndex);\n var row = this._activeRows[itemKey];\n if (row) {\n this._setFocusToRow(row);\n }\n else {\n this._initialFocusedIndex = index;\n }\n }\n if (this.props.onDidUpdate) {\n this.props.onDidUpdate(this);\n }\n };\n DetailsListBase.prototype.render = function () {\n return (React.createElement(DetailsListInner, __assign({}, this.props, this.state, { selection: this._selection, dragDropHelper: this._dragDropHelper, rootRef: this._root, listRef: this._list, groupedListRef: this._groupedList, focusZoneRef: this._focusZone, headerRef: this._header, selectionZoneRef: this._selectionZone, onGroupExpandStateChanged: this._onGroupExpandStateChanged, onColumnIsSizingChanged: this._onColumnIsSizingChanged, onRowDidMount: this._onRowDidMount, onRowWillUnmount: this._onRowWillUnmount, onColumnResized: this._onColumnResized, onColumnAutoResized: this._onColumnAutoResized, onToggleCollapse: this._onToggleCollapse, onActiveRowChanged: this._onActiveRowChanged, onBlur: this._onBlur, onRenderDefaultRow: this._onRenderRow })));\n };\n DetailsListBase.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this._forceListUpdates();\n };\n DetailsListBase.prototype._getGroupNestingDepth = function () {\n var groups = this.props.groups;\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n };\n DetailsListBase.prototype._setFocusToRowIfPending = function (row) {\n var itemIndex = row.props.itemIndex;\n if (this._initialFocusedIndex !== undefined && itemIndex === this._initialFocusedIndex) {\n this._setFocusToRow(row);\n delete this._initialFocusedIndex;\n }\n };\n DetailsListBase.prototype._setFocusToRow = function (row, forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._selectionZone.current) {\n this._selectionZone.current.ignoreNextFocus();\n }\n this._async.setTimeout(function () {\n row.focus(forceIntoFirstElement);\n }, 0);\n };\n DetailsListBase.prototype._forceListUpdates = function () {\n if (this._groupedList.current) {\n this._groupedList.current.forceUpdate();\n }\n if (this._list.current) {\n this._list.current.forceUpdate();\n }\n };\n DetailsListBase.prototype._notifyColumnsResized = function () {\n this.state.adjustedColumns.forEach(function (column) {\n if (column.onColumnResize) {\n column.onColumnResize(column.currentWidth);\n }\n });\n };\n DetailsListBase.prototype._adjustColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n var adjustedColumns = this._getAdjustedColumns(newProps, previousState, forceUpdate, resizingColumnIndex);\n var viewport = this.props.viewport;\n var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n return __assign(__assign({}, previousState), { adjustedColumns: adjustedColumns, lastWidth: viewportWidth });\n };\n /** Returns adjusted columns, given the viewport size and layout mode. */\n DetailsListBase.prototype._getAdjustedColumns = function (newProps, previousState, forceUpdate, resizingColumnIndex) {\n var _this = this;\n var newItems = newProps.items, layoutMode = newProps.layoutMode, selectionMode = newProps.selectionMode, viewport = newProps.viewport;\n var viewportWidth = viewport && viewport.width ? viewport.width : 0;\n var newColumns = newProps.columns;\n var columns = this.props ? this.props.columns : [];\n var lastWidth = previousState ? previousState.lastWidth : -1;\n var lastSelectionMode = previousState ? previousState.lastSelectionMode : undefined;\n if (!forceUpdate &&\n lastWidth === viewportWidth &&\n lastSelectionMode === selectionMode &&\n (!columns || newColumns === columns)) {\n return newColumns || [];\n }\n newColumns = newColumns || buildColumns(newItems, true);\n var adjustedColumns;\n if (layoutMode === DetailsListLayoutMode.fixedColumns) {\n adjustedColumns = this._getFixedColumns(newColumns, viewportWidth, newProps);\n // Preserve adjusted column calculated widths.\n adjustedColumns.forEach(function (column) {\n _this._rememberCalculatedWidth(column, column.calculatedWidth);\n });\n }\n else {\n adjustedColumns = this._getJustifiedColumns(newColumns, viewportWidth, newProps);\n adjustedColumns.forEach(function (column) {\n _this._getColumnOverride(column.key).currentWidth = column.calculatedWidth;\n });\n }\n return adjustedColumns;\n };\n /** Builds a set of columns based on the given columns mixed with the current overrides. */\n DetailsListBase.prototype._getFixedColumns = function (newColumns, viewportWidth, props) {\n var _this = this;\n var _a = this.props, _b = _a.selectionMode, selectionMode = _b === void 0 ? this._selection.mode : _b, checkboxVisibility = _a.checkboxVisibility, flexMargin = _a.flexMargin, skipViewportMeasures = _a.skipViewportMeasures;\n var remainingWidth = viewportWidth - (flexMargin || 0);\n var sumProportionalWidth = 0;\n newColumns.forEach(function (col) {\n if (skipViewportMeasures || !col.flexGrow) {\n remainingWidth -= col.maxWidth || col.minWidth || MIN_COLUMN_WIDTH;\n }\n else {\n remainingWidth -= col.minWidth || MIN_COLUMN_WIDTH;\n sumProportionalWidth += col.flexGrow;\n }\n remainingWidth -= getPaddedWidth(col, props, true);\n });\n var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n remainingWidth -= rowCheckWidth + groupExpandWidth;\n var widthFraction = remainingWidth / sumProportionalWidth;\n // Shrinks proportional columns to their max width and adds the remaining width to distribute to other columns.\n if (!skipViewportMeasures) {\n newColumns.forEach(function (column) {\n var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n if (newColumn.flexGrow && newColumn.maxWidth) {\n var fullWidth = newColumn.flexGrow * widthFraction + newColumn.minWidth;\n var shrinkWidth = fullWidth - newColumn.maxWidth;\n if (shrinkWidth > 0) {\n remainingWidth += shrinkWidth;\n sumProportionalWidth -= (shrinkWidth / (fullWidth - newColumn.minWidth)) * newColumn.flexGrow;\n }\n }\n });\n }\n widthFraction = remainingWidth > 0 ? remainingWidth / sumProportionalWidth : 0;\n return newColumns.map(function (column) {\n var newColumn = __assign(__assign({}, column), _this._columnOverrides[column.key]);\n // Delay computation until viewport width is available.\n if (!skipViewportMeasures && newColumn.flexGrow && remainingWidth <= 0) {\n return newColumn;\n }\n if (!newColumn.calculatedWidth) {\n if (!skipViewportMeasures && newColumn.flexGrow) {\n // Assigns the proportion of the remaining extra width after all columns have met minimum widths.\n newColumn.calculatedWidth = newColumn.minWidth + newColumn.flexGrow * widthFraction;\n newColumn.calculatedWidth = Math.min(newColumn.calculatedWidth, newColumn.maxWidth || Number.MAX_VALUE);\n }\n else {\n newColumn.calculatedWidth = newColumn.maxWidth || newColumn.minWidth || MIN_COLUMN_WIDTH;\n }\n }\n return newColumn;\n });\n };\n /** Builds a set of columns to fix within the viewport width. */\n DetailsListBase.prototype._getJustifiedColumns = function (newColumns, viewportWidth, props) {\n var _this = this;\n var _a = props.selectionMode, selectionMode = _a === void 0 ? this._selection.mode : _a, checkboxVisibility = props.checkboxVisibility, skipViewportMeasures = props.skipViewportMeasures;\n var rowCheckWidth = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden ? CHECKBOX_WIDTH : 0;\n var groupExpandWidth = this._getGroupNestingDepth() * GROUP_EXPAND_WIDTH;\n var totalWidth = 0; // offset because we have one less inner padding.\n var minimumWidth = 0;\n var availableWidth = viewportWidth - (rowCheckWidth + groupExpandWidth);\n var adjustedColumns = newColumns.map(function (column, i) {\n var baseColumn = __assign(__assign({}, column), { calculatedWidth: column.minWidth || MIN_COLUMN_WIDTH });\n var newColumn = __assign(__assign({}, baseColumn), _this._columnOverrides[column.key]);\n // eslint-disable-next-line deprecation/deprecation\n if (!(baseColumn.isCollapsible || baseColumn.isCollapsable)) {\n minimumWidth += getPaddedWidth(baseColumn, props);\n }\n totalWidth += getPaddedWidth(newColumn, props);\n return newColumn;\n });\n if (skipViewportMeasures) {\n return adjustedColumns;\n }\n var lastIndex = adjustedColumns.length - 1;\n // Shrink or remove collapsable columns.\n while (lastIndex >= 0 && totalWidth > availableWidth) {\n var column = adjustedColumns[lastIndex];\n var minWidth = column.minWidth || MIN_COLUMN_WIDTH;\n var overflowWidth = totalWidth - availableWidth;\n // eslint-disable-next-line deprecation/deprecation\n if (column.calculatedWidth - minWidth >= overflowWidth || !(column.isCollapsible || column.isCollapsable)) {\n var originalWidth = column.calculatedWidth;\n if (minimumWidth < availableWidth) {\n // Only adjust in cases where all the columns fit within the viewport\n column.calculatedWidth = Math.max(column.calculatedWidth - overflowWidth, minWidth);\n }\n totalWidth -= originalWidth - column.calculatedWidth;\n }\n else {\n totalWidth -= getPaddedWidth(column, props);\n adjustedColumns.splice(lastIndex, 1);\n }\n lastIndex--;\n }\n // Then expand columns starting at the beginning, until we've filled the width.\n for (var i = 0; i < adjustedColumns.length && totalWidth < availableWidth; i++) {\n var column = adjustedColumns[i];\n var isLast = i === adjustedColumns.length - 1;\n var overrides = this._columnOverrides[column.key];\n if (overrides && overrides.calculatedWidth && !isLast) {\n continue;\n }\n var spaceLeft = availableWidth - totalWidth;\n var increment = void 0;\n if (isLast) {\n increment = spaceLeft;\n }\n else {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth || maxWidth || MIN_COLUMN_WIDTH;\n increment = maxWidth ? Math.min(spaceLeft, maxWidth - minWidth) : spaceLeft;\n }\n column.calculatedWidth = column.calculatedWidth + increment;\n totalWidth += increment;\n }\n return adjustedColumns;\n };\n DetailsListBase.prototype._rememberCalculatedWidth = function (column, newCalculatedWidth) {\n var overrides = this._getColumnOverride(column.key);\n overrides.calculatedWidth = newCalculatedWidth;\n overrides.currentWidth = newCalculatedWidth;\n };\n DetailsListBase.prototype._getColumnOverride = function (key) {\n return (this._columnOverrides[key] = this._columnOverrides[key] || {});\n };\n DetailsListBase.prototype._getItemKey = function (item, itemIndex) {\n var getKey = this.props.getKey;\n var itemKey = undefined;\n if (item) {\n itemKey = item.key;\n }\n if (getKey) {\n itemKey = getKey(item, itemIndex);\n }\n if (!itemKey) {\n itemKey = itemIndex;\n }\n return itemKey;\n };\n DetailsListBase.defaultProps = {\n layoutMode: DetailsListLayoutMode.justified,\n selectionMode: SelectionMode.multiple,\n constrainMode: ConstrainMode.horizontalConstrained,\n checkboxVisibility: CheckboxVisibility.onHover,\n isHeaderVisible: true,\n compact: false,\n useFastIcons: true,\n };\n DetailsListBase = __decorate([\n withViewport\n ], DetailsListBase);\n return DetailsListBase;\n}(React.Component));\nexport { DetailsListBase };\nexport function buildColumns(items, canResizeColumns, onColumnClick, sortedColumnKey, isSortedDescending, groupedColumnKey, isMultiline, columnActionsMode) {\n var columns = [];\n if (items && items.length) {\n var firstItem = items[0];\n for (var propName in firstItem) {\n if (firstItem.hasOwnProperty(propName)) {\n columns.push({\n key: propName,\n name: propName,\n fieldName: propName,\n minWidth: MIN_COLUMN_WIDTH,\n maxWidth: 300,\n isCollapsible: !!columns.length,\n isMultiline: isMultiline === undefined ? false : isMultiline,\n isSorted: sortedColumnKey === propName,\n isSortedDescending: !!isSortedDescending,\n isRowHeader: false,\n columnActionsMode: columnActionsMode !== null && columnActionsMode !== void 0 ? columnActionsMode : ColumnActionsMode.clickable,\n isResizable: canResizeColumns,\n onColumnClick: onColumnClick,\n isGrouped: groupedColumnKey === propName,\n });\n }\n }\n }\n return columns;\n}\nfunction getPaddedWidth(column, props, paddingOnly) {\n var _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n return ((paddingOnly ? 0 : column.calculatedWidth) +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0));\n}\nfunction getGroupNestingDepth(groups) {\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n}\nfunction useGroupedDetailsListIndexMap(groups) {\n return React.useMemo(function () {\n var indexMap = {};\n if (groups) {\n var rowCount = 1;\n var numGroupHeaders = 1;\n for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) {\n var group = groups_1[_i];\n var key = group.key;\n indexMap[key] = { numOfGroupHeadersBeforeItem: numGroupHeaders, totalRowCount: rowCount };\n numGroupHeaders++;\n rowCount += group.count + 1;\n }\n }\n return indexMap;\n }, [groups]);\n}\n//# sourceMappingURL=DetailsList.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DetailsList',\n compact: 'ms-DetailsList--Compact',\n contentWrapper: 'ms-DetailsList-contentWrapper',\n headerWrapper: 'ms-DetailsList-headerWrapper',\n isFixed: 'is-fixed',\n isHorizontalConstrained: 'is-horizontalConstrained',\n listCell: 'ms-List-cell',\n};\nexport var getDetailsListStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, isHorizontalConstrained = props.isHorizontalConstrained, compact = props.compact, isFixed = props.isFixed;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.small,\n {\n position: 'relative',\n color: semanticColors.listText,\n selectors: (_a = {},\n _a[\"& .\".concat(classNames.listCell)] = {\n minHeight: 38,\n wordBreak: 'break-word',\n },\n _a),\n },\n isFixed && classNames.isFixed,\n compact && [\n classNames.compact,\n {\n selectors: (_b = {},\n _b[\".\".concat(classNames.listCell)] = {\n minHeight: 32,\n },\n _b),\n },\n ],\n isHorizontalConstrained && [\n classNames.isHorizontalConstrained,\n {\n overflowX: 'auto',\n overflowY: 'visible',\n WebkitOverflowScrolling: 'touch',\n },\n ],\n className,\n ],\n focusZone: [\n {\n display: 'inline-block',\n minWidth: '100%',\n minHeight: 1,\n },\n ],\n headerWrapper: classNames.headerWrapper,\n contentWrapper: classNames.contentWrapper,\n };\n};\n//# sourceMappingURL=DetailsList.styles.js.map","import { styled } from '../../Utilities';\nimport { DetailsListBase } from './DetailsList.base';\nimport { getDetailsListStyles } from './DetailsList.styles';\nexport var DetailsList = styled(DetailsListBase, getDetailsListStyles, undefined, {\n scope: 'DetailsList',\n});\n//# sourceMappingURL=DetailsList.js.map","/**\n * Enum to describe how a particular column header behaves.\n * This is used to to specify the property `IColumn.columnActionsMode`.\n * If `IColumn.columnActionsMode` is undefined, it's equivalent to `ColumnActionsMode.clickable`.\n * {@docCategory DetailsList}\n */\nexport var ColumnActionsMode;\n(function (ColumnActionsMode) {\n /** Renders the column header as disabled. */\n ColumnActionsMode[ColumnActionsMode[\"disabled\"] = 0] = \"disabled\";\n /** Renders the column header as clickable. Default value. */\n ColumnActionsMode[ColumnActionsMode[\"clickable\"] = 1] = \"clickable\";\n /** Renders the column header as clickable and displays the dropdown chevron. */\n ColumnActionsMode[ColumnActionsMode[\"hasDropdown\"] = 2] = \"hasDropdown\";\n})(ColumnActionsMode || (ColumnActionsMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var ConstrainMode;\n(function (ConstrainMode) {\n /** Lets the content grow which allows the page to manage scrolling. */\n ConstrainMode[ConstrainMode[\"unconstrained\"] = 0] = \"unconstrained\";\n /** Constrains the list to the given layout space. */\n ConstrainMode[ConstrainMode[\"horizontalConstrained\"] = 1] = \"horizontalConstrained\";\n})(ConstrainMode || (ConstrainMode = {}));\n/**\n * Enum to describe where the column has been dropped, after starting the drag\n * {@docCategory DetailsList}\n */\nexport var ColumnDragEndLocation;\n(function (ColumnDragEndLocation) {\n /** Drag ended outside of current list */\n ColumnDragEndLocation[ColumnDragEndLocation[\"outside\"] = 0] = \"outside\";\n /** Drag ended within current list */\n ColumnDragEndLocation[ColumnDragEndLocation[\"surface\"] = 1] = \"surface\";\n /** Drag ended on header */\n ColumnDragEndLocation[ColumnDragEndLocation[\"header\"] = 2] = \"header\";\n})(ColumnDragEndLocation || (ColumnDragEndLocation = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var DetailsListLayoutMode;\n(function (DetailsListLayoutMode) {\n /**\n * Lets the user resize columns and makes not attempt to fit them.\n */\n DetailsListLayoutMode[DetailsListLayoutMode[\"fixedColumns\"] = 0] = \"fixedColumns\";\n /**\n * Manages which columns are visible, tries to size them according to their min/max rules and drops\n * off columns that can't fit and have isCollapsible set.\n */\n DetailsListLayoutMode[DetailsListLayoutMode[\"justified\"] = 1] = \"justified\";\n})(DetailsListLayoutMode || (DetailsListLayoutMode = {}));\n/**\n * {@docCategory DetailsList}\n */\nexport var CheckboxVisibility;\n(function (CheckboxVisibility) {\n /** Visible on hover. */\n CheckboxVisibility[CheckboxVisibility[\"onHover\"] = 0] = \"onHover\";\n /** Visible always. */\n CheckboxVisibility[CheckboxVisibility[\"always\"] = 1] = \"always\";\n /** Hide checkboxes. */\n CheckboxVisibility[CheckboxVisibility[\"hidden\"] = 2] = \"hidden\";\n})(CheckboxVisibility || (CheckboxVisibility = {}));\n//# sourceMappingURL=DetailsList.types.js.map","import * as React from 'react';\nimport { composeRenderFunction, css } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from './DetailsRow.styles';\nvar getCellText = function (item, column) {\n var value = item && column && column.fieldName ? item[column.fieldName] : '';\n if (value === null || value === undefined) {\n value = '';\n }\n if (typeof value === 'boolean') {\n return value.toString();\n }\n return value;\n};\n/**\n * Component for rendering a row's cells in a `DetailsList`.\n *\n * {@docCategory DetailsList}\n */\nexport var DetailsRowFields = function (props) {\n var columns = props.columns, rowClassNames = props.rowClassNames, _a = props.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a, item = props.item, itemIndex = props.itemIndex, isSelected = props.isSelected, onRenderItemColumn = props.onRenderItemColumn, getCellValueKey = props.getCellValueKey, propsOnRenderField = props.onRenderField, cellsByColumn = props.cellsByColumn, enableUpdateAnimations = props.enableUpdateAnimations, rowHeaderId = props.rowHeaderId;\n var cellValueKeysRef = React.useRef();\n var cellValueKeys = cellValueKeysRef.current || (cellValueKeysRef.current = {});\n var defaultOnRenderField = React.useCallback(function (fieldProps) {\n var column = fieldProps.column, cellValueKey = fieldProps.cellValueKey, className = fieldProps.className, onRender = fieldProps.onRender, fieldItem = fieldProps.item, fieldItemIndex = fieldProps.itemIndex;\n var width = typeof column.calculatedWidth === 'undefined'\n ? 'auto'\n : column.calculatedWidth +\n cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n var key = \"\".concat(column.key).concat(cellValueKey !== undefined ? \"-\".concat(cellValueKey) : '');\n return (React.createElement(\"div\", { key: key, id: column.isRowHeader ? rowHeaderId : undefined, role: column.isRowHeader ? 'rowheader' : 'gridcell', className: css(column.className, column.isMultiline && rowClassNames.isMultiline, column.isRowHeader && rowClassNames.isRowHeader, rowClassNames.cell, column.isPadded ? rowClassNames.cellPadded : rowClassNames.cellUnpadded, className), style: { width: width }, \"data-automationid\": \"DetailsRowCell\", \"data-automation-key\": column.key }, onRender(fieldItem, fieldItemIndex, column)));\n }, [rowClassNames, cellStyleProps, rowHeaderId]);\n return (React.createElement(\"div\", { className: rowClassNames.fields, \"data-automationid\": \"DetailsRowFields\", role: \"presentation\" }, columns.map(function (column) {\n var _a = column.getValueKey, getValueKey = _a === void 0 ? getCellValueKey : _a;\n var onRender = (cellsByColumn && column.key in cellsByColumn && (function () { return cellsByColumn[column.key]; })) ||\n column.onRender ||\n onRenderItemColumn ||\n defaultOnRender;\n var onRenderField = defaultOnRenderField;\n if (column.onRenderField) {\n onRenderField = composeRenderFunction(column.onRenderField, onRenderField);\n }\n if (propsOnRenderField) {\n onRenderField = composeRenderFunction(propsOnRenderField, onRenderField);\n }\n var previousValueKey = cellValueKeys[column.key];\n var cellValueKey = enableUpdateAnimations && getValueKey ? getValueKey(item, itemIndex, column) : undefined;\n var showAnimation = false;\n if (cellValueKey !== undefined && previousValueKey !== undefined && cellValueKey !== previousValueKey) {\n showAnimation = true;\n }\n cellValueKeys[column.key] = cellValueKey;\n return onRenderField({\n item: item,\n itemIndex: itemIndex,\n isSelected: isSelected,\n column: column,\n cellValueKey: cellValueKey,\n className: showAnimation ? rowClassNames.cellAnimation : undefined,\n onRender: onRender,\n });\n })));\n};\nfunction defaultOnRender(item, index, column) {\n if (!item || !column) {\n return null;\n }\n return getCellText(item, column);\n}\n//# sourceMappingURL=DetailsRowFields.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, EventGroup, css, shallowCompare, getNativeProps, divProperties, composeComponentAs, } from '../../Utilities';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DetailsRowCheck } from './DetailsRowCheck';\nimport { GroupSpacer } from '../GroupedList/GroupSpacer';\nimport { DetailsRowFields } from './DetailsRowFields';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { SelectionMode, SELECTION_CHANGE } from '../../Selection';\nimport { classNamesFunction } from '../../Utilities';\nimport { getId } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar NO_COLUMNS = [];\nvar DetailsRowBase = /** @class */ (function (_super) {\n __extends(DetailsRowBase, _super);\n function DetailsRowBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._cellMeasurer = React.createRef();\n _this._focusZone = React.createRef();\n _this._onSelectionChanged = function () {\n var selectionState = getSelectionState(_this.props);\n if (!shallowCompare(selectionState, _this.state.selectionState)) {\n _this.setState({ selectionState: selectionState });\n }\n };\n /**\n * update isDropping state based on the input value, which is used to change style during drag and drop\n *\n * when change to true, that means drag enter. we will add default dropping class name\n * or the custom dropping class name (return result from onDragEnter) to the root elemet.\n *\n * when change to false, that means drag leave. we will remove the dropping class name from root element.\n *\n * @param newValue - New isDropping state value\n * @param event - The event trigger dropping state change which can be dragenter, dragleave etc\n */\n _this._updateDroppingState = function (newValue, event) {\n var isDropping = _this.state.isDropping;\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, item = _a.item;\n if (!newValue) {\n if (dragDropEvents.onDragLeave) {\n dragDropEvents.onDragLeave(item, event);\n }\n }\n else if (dragDropEvents.onDragEnter) {\n _this._droppingClassNames = dragDropEvents.onDragEnter(item, event);\n }\n if (isDropping !== newValue) {\n _this.setState({ isDropping: newValue });\n }\n };\n initializeComponentRef(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n selectionState: getSelectionState(props),\n columnMeasureInfo: undefined,\n isDropping: false,\n };\n _this._droppingClassNames = '';\n return _this;\n }\n DetailsRowBase.getDerivedStateFromProps = function (nextProps, previousState) {\n return __assign(__assign({}, previousState), { selectionState: getSelectionState(nextProps) });\n };\n DetailsRowBase.prototype.componentDidMount = function () {\n var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection, item = _a.item, onDidMount = _a.onDidMount;\n if (dragDropHelper && this._root.current) {\n this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n }\n if (selection) {\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChanged);\n }\n if (onDidMount && item) {\n // If the item appears later, we should wait for it before calling this method.\n this._onDidMountCalled = true;\n onDidMount(this);\n }\n };\n DetailsRowBase.prototype.componentDidUpdate = function (previousProps) {\n var state = this.state;\n var _a = this.props, item = _a.item, onDidMount = _a.onDidMount;\n var columnMeasureInfo = state.columnMeasureInfo;\n if (this.props.itemIndex !== previousProps.itemIndex ||\n this.props.item !== previousProps.item ||\n this.props.dragDropHelper !== previousProps.dragDropHelper) {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n if (this.props.dragDropHelper && this._root.current) {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getRowDragDropOptions());\n }\n }\n if (columnMeasureInfo && columnMeasureInfo.index >= 0 && this._cellMeasurer.current) {\n var newWidth = this._cellMeasurer.current.getBoundingClientRect().width;\n columnMeasureInfo.onMeasureDone(newWidth);\n this.setState({\n columnMeasureInfo: undefined,\n });\n }\n if (item && onDidMount && !this._onDidMountCalled) {\n this._onDidMountCalled = true;\n onDidMount(this);\n }\n };\n DetailsRowBase.prototype.componentWillUnmount = function () {\n var _a = this.props, item = _a.item, onWillUnmount = _a.onWillUnmount;\n // Only call the onWillUnmount callback if we have an item.\n if (onWillUnmount && item) {\n onWillUnmount(this);\n }\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n this._events.dispose();\n };\n DetailsRowBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n if (this.props.useReducedRowRenderer) {\n var newSelectionState = getSelectionState(nextProps);\n if (this.state.selectionState.isSelected !== newSelectionState.isSelected) {\n return true;\n }\n return !shallowCompare(this.props, nextProps);\n }\n else {\n return true;\n }\n };\n DetailsRowBase.prototype.render = function () {\n var _a;\n var _b = this.props, className = _b.className, _c = _b.columns, columns = _c === void 0 ? NO_COLUMNS : _c, dragDropEvents = _b.dragDropEvents, item = _b.item, itemIndex = _b.itemIndex, id = _b.id, _d = _b.flatIndexOffset, flatIndexOffset = _d === void 0 ? 2 : _d, _e = _b.onRenderCheck, onRenderCheck = _e === void 0 ? this._onRenderCheck : _e, onRenderDetailsCheckbox = _b.onRenderDetailsCheckbox, onRenderItemColumn = _b.onRenderItemColumn, onRenderField = _b.onRenderField, getCellValueKey = _b.getCellValueKey, selectionMode = _b.selectionMode, checkboxVisibility = _b.checkboxVisibility, getRowAriaLabel = _b.getRowAriaLabel, getRowAriaDescription = _b.getRowAriaDescription, getRowAriaDescribedBy = _b.getRowAriaDescribedBy, isGridRow = _b.isGridRow, checkButtonAriaLabel = _b.checkButtonAriaLabel, checkboxCellClassName = _b.checkboxCellClassName, \n /** Alias rowFieldsAs as RowFields and default to DetailsRowFields if rowFieldsAs does not exist */\n rowFieldsAs = _b.rowFieldsAs, selection = _b.selection, indentWidth = _b.indentWidth, enableUpdateAnimations = _b.enableUpdateAnimations, compact = _b.compact, theme = _b.theme, styles = _b.styles, cellsByColumn = _b.cellsByColumn, groupNestingDepth = _b.groupNestingDepth, _f = _b.useFastIcons, useFastIcons = _f === void 0 ? true : _f, cellStyleProps = _b.cellStyleProps, group = _b.group, focusZoneProps = _b.focusZoneProps, _g = _b.disabled, disabled = _g === void 0 ? false : _g;\n var _h = this.state, columnMeasureInfo = _h.columnMeasureInfo, isDropping = _h.isDropping;\n var _j = this.state.selectionState, _k = _j.isSelected, isSelected = _k === void 0 ? false : _k, _l = _j.isSelectionModal, isSelectionModal = _l === void 0 ? false : _l;\n var isDraggable = dragDropEvents ? !!(dragDropEvents.canDrag && dragDropEvents.canDrag(item)) : undefined;\n var droppingClassName = isDropping ? this._droppingClassNames || DEFAULT_DROPPING_CSS_CLASS : '';\n var ariaLabel = getRowAriaLabel ? getRowAriaLabel(item) : undefined;\n var ariaRowDescription = getRowAriaDescription ? getRowAriaDescription(item) : undefined;\n var ariaDescribedBy = getRowAriaDescribedBy ? getRowAriaDescribedBy(item) : undefined;\n var canSelect = !!selection && selection.canSelectItem(item, itemIndex) && !disabled;\n var isContentUnselectable = selectionMode === SelectionMode.multiple;\n var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n var ariaSelected = selectionMode === SelectionMode.none ? undefined : isSelected;\n var ariaPositionInSet = group ? itemIndex - group.startIndex + 1 : undefined;\n var ariaSetSize = group ? group.count : undefined;\n var focusZoneDirection = focusZoneProps ? focusZoneProps.direction : FocusZoneDirection.horizontal;\n this._classNames = __assign(__assign({}, this._classNames), getClassNames(styles, {\n theme: theme,\n isSelected: isSelected,\n canSelect: !isContentUnselectable,\n anySelected: isSelectionModal,\n checkboxCellClassName: checkboxCellClassName,\n droppingClassName: droppingClassName,\n className: className,\n compact: compact,\n enableUpdateAnimations: enableUpdateAnimations,\n cellStyleProps: cellStyleProps,\n disabled: disabled,\n }));\n var rowClassNames = {\n isMultiline: this._classNames.isMultiline,\n isRowHeader: this._classNames.isRowHeader,\n cell: this._classNames.cell,\n cellAnimation: this._classNames.cellAnimation,\n cellPadded: this._classNames.cellPadded,\n cellUnpadded: this._classNames.cellUnpadded,\n fields: this._classNames.fields,\n };\n // Only re-assign rowClassNames when classNames have changed.\n // Otherwise, they will cause DetailsRowFields to unnecessarily\n // re-render, see https://github.com/microsoft/fluentui/pull/8799.\n // Refactor DetailsRowFields to generate own styles to remove need for this.\n if (!shallowCompare(this._rowClassNames || {}, rowClassNames)) {\n this._rowClassNames = rowClassNames;\n }\n var RowFields = rowFieldsAs ? composeComponentAs(rowFieldsAs, DetailsRowFields) : DetailsRowFields;\n var rowFields = (React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: \"\".concat(id, \"-header\"), cellsByColumn: cellsByColumn, columns: columns, item: item, itemIndex: itemIndex, isSelected: isSelected, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0), onRenderItemColumn: onRenderItemColumn, onRenderField: onRenderField, getCellValueKey: getCellValueKey, enableUpdateAnimations: enableUpdateAnimations, cellStyleProps: cellStyleProps }));\n var defaultRole = 'row';\n var role = this.props.role ? this.props.role : defaultRole;\n this._ariaRowDescriptionId = getId('DetailsRow-description');\n // When the user does not specify any column is a row-header in the columns props,\n // The aria-labelledby of the checkbox does not specify {id}-header.\n var hasRowHeader = columns.some(function (column) {\n return !!column.isRowHeader;\n });\n var ariaLabelledby = \"\".concat(id, \"-checkbox\") + (hasRowHeader ? \" \".concat(id, \"-header\") : '');\n // additional props for rows within a GroupedList\n // these are needed for treegrid row semantics, but not grid row semantics\n var groupedListRowProps = isGridRow\n ? {}\n : {\n 'aria-level': (groupNestingDepth && groupNestingDepth + 1) || undefined,\n 'aria-posinset': ariaPositionInSet,\n 'aria-setsize': ariaSetSize,\n };\n return (React.createElement(FocusZone, __assign({ \"data-is-focusable\": true }, getNativeProps(this.props, divProperties), (typeof isDraggable === 'boolean'\n ? {\n 'data-is-draggable': isDraggable,\n draggable: isDraggable,\n }\n : {}), focusZoneProps, groupedListRowProps, { direction: focusZoneDirection, elementRef: this._root, componentRef: this._focusZone, role: role, \"aria-label\": ariaLabel, \"aria-disabled\": disabled || undefined, \"aria-describedby\": ariaRowDescription ? this._ariaRowDescriptionId : ariaDescribedBy, className: this._classNames.root, \"data-selection-index\": itemIndex, \"data-selection-touch-invoke\": true, \"data-selection-disabled\": (_a = this.props['data-selection-disabled']) !== null && _a !== void 0 ? _a : (disabled || undefined), \"data-item-index\": itemIndex, \"aria-rowindex\": ariaPositionInSet === undefined ? itemIndex + flatIndexOffset : undefined, \"data-automationid\": \"DetailsRow\", \"aria-selected\": ariaSelected, allowFocusRoot: true }),\n ariaRowDescription ? (React.createElement(\"span\", { key: \"description\", role: \"presentation\", hidden: true, id: this._ariaRowDescriptionId }, ariaRowDescription)) : null,\n showCheckbox && (React.createElement(\"div\", { role: \"gridcell\", \"data-selection-toggle\": true, className: this._classNames.checkCell }, onRenderCheck({\n id: id ? \"\".concat(id, \"-checkbox\") : undefined,\n selected: isSelected,\n selectionMode: selectionMode,\n anySelected: isSelectionModal,\n 'aria-label': checkButtonAriaLabel,\n 'aria-labelledby': id ? ariaLabelledby : undefined,\n canSelect: canSelect,\n compact: compact,\n className: this._classNames.check,\n theme: theme,\n isVisible: checkboxVisibility === CheckboxVisibility.always,\n onRenderDetailsCheckbox: onRenderDetailsCheckbox,\n useFastIcons: useFastIcons,\n }))),\n React.createElement(GroupSpacer, { indentWidth: indentWidth, role: \"gridcell\", count: groupNestingDepth === 0 ? -1 : groupNestingDepth }),\n item && rowFields,\n columnMeasureInfo && (React.createElement(\"span\", { role: \"presentation\", className: css(this._classNames.cellMeasurer, this._classNames.cell), ref: this._cellMeasurer },\n React.createElement(RowFields, { rowClassNames: this._rowClassNames, rowHeaderId: \"\".concat(id, \"-header\"), columns: [columnMeasureInfo.column], item: item, itemIndex: itemIndex, columnStartIndex: (showCheckbox ? 1 : 0) + (groupNestingDepth ? 1 : 0) + columns.length, onRenderItemColumn: onRenderItemColumn, getCellValueKey: getCellValueKey })))));\n };\n /**\n * measure cell at index. and call the call back with the measured cell width when finish measure\n *\n * @param index - The cell index\n * @param onMeasureDone - The call back function when finish measure\n */\n DetailsRowBase.prototype.measureCell = function (index, onMeasureDone) {\n var _a = this.props.columns, columns = _a === void 0 ? NO_COLUMNS : _a;\n var column = __assign({}, columns[index]);\n column.minWidth = 0;\n column.maxWidth = 999999;\n delete column.calculatedWidth;\n this.setState({\n columnMeasureInfo: {\n index: index,\n column: column,\n onMeasureDone: onMeasureDone,\n },\n });\n };\n DetailsRowBase.prototype.focus = function (forceIntoFirstElement) {\n var _a;\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n return !!((_a = this._focusZone.current) === null || _a === void 0 ? void 0 : _a.focus(forceIntoFirstElement));\n };\n DetailsRowBase.prototype._onRenderCheck = function (props) {\n return React.createElement(DetailsRowCheck, __assign({}, props));\n };\n DetailsRowBase.prototype._getRowDragDropOptions = function () {\n var _a = this.props, item = _a.item, itemIndex = _a.itemIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n var options = {\n eventMap: eventsToRegister,\n selectionIndex: itemIndex,\n context: { data: item, index: itemIndex },\n canDrag: dragDropEvents.canDrag,\n canDrop: dragDropEvents.canDrop,\n onDragStart: dragDropEvents.onDragStart,\n updateDropState: this._updateDroppingState,\n onDrop: dragDropEvents.onDrop,\n onDragEnd: dragDropEvents.onDragEnd,\n onDragOver: dragDropEvents.onDragOver,\n };\n return options;\n };\n return DetailsRowBase;\n}(React.Component));\nexport { DetailsRowBase };\nfunction getSelectionState(props) {\n var _a;\n var itemIndex = props.itemIndex, selection = props.selection;\n return {\n isSelected: !!(selection === null || selection === void 0 ? void 0 : selection.isIndexSelected(itemIndex)),\n isSelectionModal: !!((_a = selection === null || selection === void 0 ? void 0 : selection.isModal) === null || _a === void 0 ? void 0 : _a.call(selection)),\n };\n}\n//# sourceMappingURL=DetailsRow.base.js.map","import { styled } from '../../Utilities';\nimport { DetailsRowBase } from './DetailsRow.base';\nimport { getDetailsRowStyles } from './DetailsRow.styles';\nexport var DetailsRow = styled(DetailsRowBase, getDetailsRowStyles, undefined, {\n scope: 'DetailsRow',\n});\n//# sourceMappingURL=DetailsRow.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, AnimationStyles, HighContrastSelector, getFocusStyle, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { GlobalClassNames as LinkGlobalClassNames } from '../../components/Link/Link.styles';\nexport var DetailsRowGlobalClassNames = {\n root: 'ms-DetailsRow',\n // TODO: in Fabric 7.0 lowercase the 'Compact' for consistency across other components.\n compact: 'ms-DetailsList--Compact',\n cell: 'ms-DetailsRow-cell',\n cellAnimation: 'ms-DetailsRow-cellAnimation',\n cellCheck: 'ms-DetailsRow-cellCheck',\n check: 'ms-DetailsRow-check',\n cellMeasurer: 'ms-DetailsRow-cellMeasurer',\n listCellFirstChild: 'ms-List-cell:first-child',\n isContentUnselectable: 'is-contentUnselectable',\n isSelected: 'is-selected',\n isCheckVisible: 'is-check-visible',\n isRowHeader: 'is-row-header',\n fields: 'ms-DetailsRow-fields',\n};\nvar IsFocusableSelector = \"[data-is-focusable='true']\";\nexport var DEFAULT_CELL_STYLE_PROPS = {\n cellLeftPadding: 12,\n cellRightPadding: 8,\n cellExtraRightPadding: 24,\n};\n// Source of default row heights to share.\nexport var DEFAULT_ROW_HEIGHTS = {\n rowHeight: 42,\n compactRowHeight: 32,\n};\n// Constant values\nvar values = __assign(__assign({}, DEFAULT_ROW_HEIGHTS), { rowVerticalPadding: 11, compactRowVerticalPadding: 6 });\nexport var getDetailsRowStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var theme = props.theme, isSelected = props.isSelected, canSelect = props.canSelect, droppingClassName = props.droppingClassName, isCheckVisible = props.isCheckVisible, checkboxCellClassName = props.checkboxCellClassName, compact = props.compact, className = props.className, _q = props.cellStyleProps, cellStyleProps = _q === void 0 ? DEFAULT_CELL_STYLE_PROPS : _q, enableUpdateAnimations = props.enableUpdateAnimations, disabled = props.disabled;\n var palette = theme.palette, fonts = theme.fonts;\n var neutralPrimary = palette.neutralPrimary, white = palette.white, neutralSecondary = palette.neutralSecondary, neutralLighter = palette.neutralLighter, neutralLight = palette.neutralLight, neutralDark = palette.neutralDark, neutralQuaternaryAlt = palette.neutralQuaternaryAlt;\n var _r = theme.semanticColors, focusBorder = _r.focusBorder, focusedLinkColor = _r.linkHovered;\n var classNames = getGlobalClassNames(DetailsRowGlobalClassNames, theme);\n var colors = {\n // Default\n defaultHeaderText: neutralPrimary,\n defaultMetaText: neutralSecondary,\n defaultBackground: white,\n // Default Hover\n defaultHoverHeaderText: neutralDark,\n defaultHoverMetaText: neutralPrimary,\n defaultHoverBackground: neutralLighter,\n // Selected\n selectedHeaderText: neutralDark,\n selectedMetaText: neutralPrimary,\n selectedBackground: neutralLight,\n // Selected Hover\n selectedHoverHeaderText: neutralDark,\n selectedHoverMetaText: neutralPrimary,\n selectedHoverBackground: neutralQuaternaryAlt,\n // Focus\n focusHeaderText: neutralDark,\n focusMetaText: neutralPrimary,\n focusBackground: neutralLight,\n focusHoverBackground: neutralQuaternaryAlt,\n };\n var rowHighContrastFocus = {\n top: 2,\n right: 2,\n bottom: 2,\n left: 2,\n };\n // Selected row styles\n var selectedStyles = [\n getFocusStyle(theme, {\n inset: -1,\n borderColor: focusBorder,\n outlineColor: white,\n highContrastStyle: rowHighContrastFocus,\n pointerEvents: 'none',\n }),\n classNames.isSelected,\n {\n color: colors.selectedMetaText,\n background: colors.selectedBackground,\n borderBottom: \"1px solid \".concat(white),\n selectors: (_a = {\n '&:before': {\n position: 'absolute',\n display: 'block',\n top: -1,\n height: 1,\n bottom: 0,\n left: 0,\n right: 0,\n content: '',\n borderTop: \"1px solid \".concat(white),\n }\n },\n _a[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n color: focusedLinkColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _b),\n },\n // Selected State hover\n _a['&:hover'] = {\n background: colors.selectedHoverBackground,\n color: colors.selectedHoverMetaText,\n selectors: (_c = {},\n // Selected State hover meta cell\n _c[HighContrastSelector] = {\n background: 'Highlight',\n selectors: (_d = {},\n _d[\".\".concat(classNames.cell)] = {\n color: 'HighlightText',\n },\n _d[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n forcedColorAdjust: 'none',\n color: 'HighlightText',\n },\n _d),\n },\n // Selected State hover Header cell\n _c[\".\".concat(classNames.isRowHeader)] = {\n color: colors.selectedHoverHeaderText,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _e),\n },\n _c),\n },\n // Focus state\n _a['&:focus'] = {\n background: colors.focusBackground,\n selectors: (_f = {},\n // Selected State hover meta cell\n _f[\".\".concat(classNames.cell)] = {\n color: colors.focusMetaText,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n color: 'HighlightText',\n selectors: {\n '> a': {\n color: 'HighlightText',\n },\n },\n },\n _g),\n },\n // Row header cell\n _f[\".\".concat(classNames.isRowHeader)] = {\n color: colors.focusHeaderText,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _h),\n },\n // Ensure high-contrast mode overrides default focus background\n _f[HighContrastSelector] = {\n background: 'Highlight',\n },\n _f),\n },\n _a[HighContrastSelector] = __assign(__assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { selectors: {\n a: {\n color: 'HighlightText',\n },\n } }),\n // Focus and hover state\n _a['&:focus:hover'] = {\n background: colors.focusHoverBackground,\n },\n _a),\n },\n ];\n var cannotSelectStyles = [\n classNames.isContentUnselectable,\n {\n userSelect: 'none',\n cursor: 'default',\n },\n ];\n var rootCompactStyles = {\n minHeight: values.compactRowHeight,\n border: 0,\n };\n var cellCompactStyles = {\n minHeight: values.compactRowHeight,\n paddingTop: values.compactRowVerticalPadding,\n paddingBottom: values.compactRowVerticalPadding,\n paddingLeft: \"\".concat(cellStyleProps.cellLeftPadding, \"px\"),\n };\n var defaultCellStyles = [\n getFocusStyle(theme, { inset: -1 }),\n classNames.cell,\n {\n display: 'inline-block',\n position: 'relative',\n boxSizing: 'border-box',\n minHeight: values.rowHeight,\n verticalAlign: 'top',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingTop: values.rowVerticalPadding,\n paddingBottom: values.rowVerticalPadding,\n paddingLeft: \"\".concat(cellStyleProps.cellLeftPadding, \"px\"),\n selectors: (_j = {\n '& > button': {\n maxWidth: '100%',\n }\n },\n _j[IsFocusableSelector] = getFocusStyle(theme, { inset: -1, borderColor: neutralSecondary, outlineColor: white }),\n _j),\n },\n isSelected && {\n selectors: (_k = {},\n _k[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _k),\n },\n compact && cellCompactStyles,\n disabled && { opacity: 0.5 },\n ];\n return {\n root: [\n classNames.root,\n AnimationClassNames.fadeIn400,\n droppingClassName,\n theme.fonts.small,\n isCheckVisible && classNames.isCheckVisible,\n getFocusStyle(theme, { borderColor: focusBorder, outlineColor: white }),\n {\n borderBottom: \"1px solid \".concat(neutralLighter),\n background: colors.defaultBackground,\n color: colors.defaultMetaText,\n // This ensures that the row always tries to consume is minimum width and does not compress.\n display: 'inline-flex',\n minWidth: '100%',\n minHeight: values.rowHeight,\n whiteSpace: 'nowrap',\n padding: 0,\n boxSizing: 'border-box',\n verticalAlign: 'top',\n textAlign: 'left',\n selectors: (_l = {},\n _l[\".\".concat(classNames.listCellFirstChild, \" &:before\")] = {\n display: 'none',\n },\n _l['&:hover'] = {\n background: colors.defaultHoverBackground,\n color: colors.defaultHoverMetaText,\n selectors: (_m = {},\n _m[\".\".concat(classNames.isRowHeader)] = {\n color: colors.defaultHoverHeaderText,\n },\n _m[\".\".concat(classNames.cell, \" > .\").concat(LinkGlobalClassNames.root)] = {\n color: focusedLinkColor,\n },\n _m),\n },\n _l[\"&:hover .\".concat(classNames.check)] = {\n opacity: 1,\n },\n _l[\".\".concat(IsFocusVisibleClassName, \" &:focus .\").concat(classNames.check)] = {\n opacity: 1,\n },\n _l['.ms-GroupSpacer'] = {\n flexShrink: 0,\n flexGrow: 0,\n },\n _l),\n },\n isSelected && selectedStyles,\n !canSelect && cannotSelectStyles,\n compact && rootCompactStyles,\n className,\n ],\n cellUnpadded: {\n paddingRight: \"\".concat(cellStyleProps.cellRightPadding, \"px\"),\n },\n cellPadded: {\n paddingRight: \"\".concat(cellStyleProps.cellExtraRightPadding + cellStyleProps.cellRightPadding, \"px\"),\n selectors: (_o = {},\n _o[\"&.\".concat(classNames.cellCheck)] = {\n paddingRight: 0,\n },\n _o),\n },\n cell: defaultCellStyles,\n cellAnimation: enableUpdateAnimations && AnimationStyles.slideLeftIn40,\n cellMeasurer: [\n classNames.cellMeasurer,\n {\n overflow: 'visible',\n whiteSpace: 'nowrap',\n },\n ],\n checkCell: [\n defaultCellStyles,\n classNames.cellCheck,\n checkboxCellClassName,\n {\n padding: 0,\n // Ensure that the check cell covers the top border of the cell.\n // This ensures the click target does not leave a spot which would\n // cause other items to be deselected.\n paddingTop: 1,\n marginTop: -1,\n flexShrink: 0,\n },\n ],\n fields: [\n classNames.fields,\n {\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n isRowHeader: [\n classNames.isRowHeader,\n {\n color: colors.defaultHeaderText,\n fontSize: fonts.medium.fontSize,\n },\n isSelected && {\n color: colors.selectedHeaderText,\n fontWeight: FontWeights.semibold,\n selectors: (_p = {},\n _p[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _p),\n },\n ],\n isMultiline: [\n defaultCellStyles,\n {\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n textOverflow: 'clip',\n },\n ],\n check: [classNames.check],\n };\n};\n//# sourceMappingURL=DetailsRow.styles.js.map","import { labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, htmlElementProperties, getNativeProps, } from './properties';\nvar nativeElementMap = {\n label: labelProperties,\n audio: audioProperties,\n video: videoProperties,\n ol: olProperties,\n li: liProperties,\n a: anchorProperties,\n button: buttonProperties,\n input: inputProperties,\n textarea: textAreaProperties,\n select: selectProperties,\n option: optionProperties,\n table: tableProperties,\n tr: trProperties,\n th: thProperties,\n td: tdProperties,\n colGroup: colGroupProperties,\n col: colProperties,\n form: formProperties,\n iframe: iframeProperties,\n img: imgProperties,\n};\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n * @param tagName - Tag name (e.g. \"div\")\n * @param props - Props object\n * @param excludedPropNames - List of props to disallow\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps(tagName, props, excludedPropNames) {\n var allowedPropNames = (tagName && nativeElementMap[tagName]) || htmlElementProperties;\n return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n//# sourceMappingURL=getNativeElementProps.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { css, styled, classNamesFunction, composeRenderFunction, getNativeElementProps } from '../../Utilities';\nimport { Check } from '../../Check';\nimport { getDetailsRowCheckStyles } from './DetailsRowCheck.styles';\nimport { SelectionMode } from '../../Selection';\nvar getClassNames = classNamesFunction();\nvar DetailsRowCheckBase = function (props) {\n var _a = props.isVisible, isVisible = _a === void 0 ? false : _a, _b = props.canSelect, canSelect = _b === void 0 ? false : _b, _c = props.anySelected, anySelected = _c === void 0 ? false : _c, _d = props.selected, selected = _d === void 0 ? false : _d, selectionMode = props.selectionMode, _e = props.isHeader, isHeader = _e === void 0 ? false : _e, className = props.className, checkClassName = props.checkClassName, styles = props.styles, theme = props.theme, compact = props.compact, onRenderDetailsCheckbox = props.onRenderDetailsCheckbox, _f = props.useFastIcons, useFastIcons = _f === void 0 ? true : _f, // must be removed from buttonProps\n buttonProps = __rest(props, [\"isVisible\", \"canSelect\", \"anySelected\", \"selected\", \"selectionMode\", \"isHeader\", \"className\", \"checkClassName\", \"styles\", \"theme\", \"compact\", \"onRenderDetailsCheckbox\", \"useFastIcons\"]);\n var defaultCheckboxRender = useFastIcons ? _fastDefaultCheckboxRender : _defaultCheckboxRender;\n var onRenderCheckbox = onRenderDetailsCheckbox\n ? composeRenderFunction(onRenderDetailsCheckbox, defaultCheckboxRender)\n : defaultCheckboxRender;\n var classNames = getClassNames(styles, {\n theme: theme,\n canSelect: canSelect,\n selected: selected,\n anySelected: anySelected,\n className: className,\n isHeader: isHeader,\n isVisible: isVisible,\n compact: compact,\n });\n var detailsCheckboxProps = {\n checked: selected,\n theme: theme,\n };\n var divProps = getNativeElementProps('div', buttonProps, ['aria-label', 'aria-labelledby', 'aria-describedby']);\n var checkRole = selectionMode === SelectionMode.single ? 'radio' : 'checkbox';\n return canSelect ? (React.createElement(\"div\", __assign({}, buttonProps, { role: checkRole, \n // eslint-disable-next-line deprecation/deprecation\n className: css(classNames.root, classNames.check), \"aria-checked\": selected, \"data-selection-toggle\": true, \"data-automationid\": \"DetailsRowCheck\", tabIndex: -1 }), onRenderCheckbox(detailsCheckboxProps))) : (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({}, divProps, { className: css(classNames.root, classNames.check) })));\n};\nvar FastCheck = React.memo(function (props) {\n return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\nfunction _defaultCheckboxRender(checkboxProps) {\n return React.createElement(Check, { checked: checkboxProps.checked });\n}\nfunction _fastDefaultCheckboxRender(checkboxProps) {\n return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n}\nexport var DetailsRowCheck = styled(DetailsRowCheckBase, getDetailsRowCheckStyles, undefined, { scope: 'DetailsRowCheck' }, true);\n//# sourceMappingURL=DetailsRowCheck.js.map","import { getGlobalClassNames, getFocusStyle } from '../../Styling';\nimport { DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nimport { HEADER_HEIGHT } from './DetailsHeader.styles';\nimport { CheckGlobalClassNames } from '../../components/Check/Check.styles';\nvar GlobalClassNames = {\n root: 'ms-DetailsRow-check',\n isDisabled: 'ms-DetailsRow-check--isDisabled',\n isHeader: 'ms-DetailsRow-check--isHeader',\n};\nexport var CHECK_CELL_WIDTH = 48;\nexport var getDetailsRowCheckStyles = function (props) {\n var theme = props.theme, className = props.className, isHeader = props.isHeader, selected = props.selected, anySelected = props.anySelected, canSelect = props.canSelect, compact = props.compact, isVisible = props.isVisible;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n var height = isHeader ? HEADER_HEIGHT : compact ? compactRowHeight : rowHeight;\n var isCheckVisible = isVisible || selected || anySelected;\n return {\n root: [classNames.root, className],\n check: [\n !canSelect && classNames.isDisabled,\n isHeader && classNames.isHeader,\n getFocusStyle(theme),\n theme.fonts.small,\n CheckGlobalClassNames.checkHost,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'default',\n boxSizing: 'border-box',\n verticalAlign: 'top',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n opacity: isCheckVisible ? 1 : 0,\n height: height,\n width: CHECK_CELL_WIDTH,\n padding: 0,\n margin: 0,\n },\n ],\n isDisabled: [],\n };\n};\n//# sourceMappingURL=DetailsRowCheck.styles.js.map","/**\n * Describes the possible types for shimmer elements used.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementType;\n(function (ShimmerElementType) {\n /**\n * Line element type\n */\n ShimmerElementType[ShimmerElementType[\"line\"] = 1] = \"line\";\n /**\n * Circle element type\n */\n ShimmerElementType[ShimmerElementType[\"circle\"] = 2] = \"circle\";\n /**\n * Gap element type\n */\n ShimmerElementType[ShimmerElementType[\"gap\"] = 3] = \"gap\";\n})(ShimmerElementType || (ShimmerElementType = {}));\n/**\n * Describes the default heights for shimmer elements when omitted in implementation.\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsDefaultHeights;\n(function (ShimmerElementsDefaultHeights) {\n /**\n * Default height of the line element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"line\"] = 16] = \"line\";\n /**\n * Default height of the gap element when not provided by user: 16px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"gap\"] = 16] = \"gap\";\n /**\n * Default height of the circle element when not provided by user: 24px\n */\n ShimmerElementsDefaultHeights[ShimmerElementsDefaultHeights[\"circle\"] = 24] = \"circle\";\n})(ShimmerElementsDefaultHeights || (ShimmerElementsDefaultHeights = {}));\n//# sourceMappingURL=Shimmer.types.js.map","import { __assign } from \"tslib\";\nimport { keyframes, getGlobalClassNames, hiddenContentStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { getRTL, memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Shimmer-container',\n shimmerWrapper: 'ms-Shimmer-shimmerWrapper',\n shimmerGradient: 'ms-Shimmer-shimmerGradient',\n dataWrapper: 'ms-Shimmer-dataWrapper',\n};\nvar BACKGROUND_OFF_SCREEN_POSITION = '100%';\nvar shimmerAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n '100%': {\n transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n });\n});\nvar shimmerAnimationRTL = memoizeFunction(function () {\n return keyframes({\n '100%': {\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n '0%': {\n transform: \"translateX(\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n },\n });\n});\nexport function getStyles(props) {\n var _a;\n var isDataLoaded = props.isDataLoaded, className = props.className, theme = props.theme, transitionAnimationInterval = props.transitionAnimationInterval, shimmerColor = props.shimmerColor, shimmerWaveColor = props.shimmerWaveColor, improveCSSPerformance = props.improveCSSPerformance;\n var semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isRTL = getRTL(theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'relative',\n height: 'auto',\n },\n className,\n ],\n shimmerWrapper: [\n classNames.shimmerWrapper,\n {\n position: 'relative',\n overflow: 'hidden',\n transform: 'translateZ(0)',\n backgroundColor: shimmerColor || semanticColors.disabledBackground,\n transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ background: \"WindowText\\n linear-gradient(\\n to right,\\n transparent 0%,\\n Window 50%,\\n transparent 100%)\\n 0 0 / 90% 100%\\n no-repeat\" }, getHighContrastNoAdjustStyle()),\n _a),\n },\n isDataLoaded && {\n opacity: '0',\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n },\n improveCSSPerformance\n ? {\n selectors: {\n '> div:last-child': {\n transform: 'translateZ(0)',\n },\n },\n }\n : {\n selectors: {\n '> *': {\n transform: 'translateZ(0)',\n },\n },\n },\n ],\n shimmerGradient: [\n classNames.shimmerGradient,\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: \"\".concat(shimmerColor || semanticColors.disabledBackground, \"\\n linear-gradient(\\n to right,\\n \").concat(shimmerColor || semanticColors.disabledBackground, \" 0%,\\n \").concat(shimmerWaveColor || semanticColors.bodyDivider, \" 50%,\\n \").concat(shimmerColor || semanticColors.disabledBackground, \" 100%)\\n 0 0 / 90% 100%\\n no-repeat\"),\n transform: \"translateX(-\".concat(BACKGROUND_OFF_SCREEN_POSITION, \")\"),\n animationDuration: '2s',\n animationTimingFunction: 'ease-in-out',\n animationDirection: 'normal',\n animationIterationCount: 'infinite',\n animationName: isRTL ? shimmerAnimationRTL() : shimmerAnimation(),\n },\n ],\n dataWrapper: [\n classNames.dataWrapper,\n {\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n opacity: '0',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n transition: \"opacity \".concat(transitionAnimationInterval, \"ms\"),\n },\n isDataLoaded && {\n opacity: '1',\n position: 'static',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=Shimmer.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerLineBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '100%' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root },\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topLeftCorner },\n React.createElement(\"path\", { d: \"M0 2 A 2 2, 0, 0, 1, 2 0 L 0 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.topRightCorner },\n React.createElement(\"path\", { d: \"M0 0 A 2 2, 0, 0, 1, 2 2 L 2 0 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomRightCorner },\n React.createElement(\"path\", { d: \"M2 0 A 2 2, 0, 0, 1, 0 2 L 2 2 Z\" })),\n React.createElement(\"svg\", { width: \"2\", height: \"2\", className: classNames.bottomLeftCorner },\n React.createElement(\"path\", { d: \"M2 2 A 2 2, 0, 0, 1, 0 0 L 0 2 Z\" }))));\n};\n//# sourceMappingURL=ShimmerLine.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerLine-root',\n topLeftCorner: 'ms-ShimmerLine-topLeftCorner',\n topRightCorner: 'ms-ShimmerLine-topRightCorner',\n bottomLeftCorner: 'ms-ShimmerLine-bottomLeftCorner',\n bottomRightCorner: 'ms-ShimmerLine-bottomRightCorner',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n var sharedCornerStyles = {\n position: 'absolute',\n fill: semanticColors.bodyBackground,\n };\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n height: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n position: 'relative',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n borderWidth: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n selectors: {\n '> *': {\n fill: 'Window',\n },\n },\n },\n _a),\n },\n borderStyles,\n ],\n topLeftCorner: [\n globalClassNames.topLeftCorner,\n {\n top: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n topRightCorner: [\n globalClassNames.topRightCorner,\n {\n top: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomRightCorner: [\n globalClassNames.bottomRightCorner,\n {\n bottom: '0',\n right: '0',\n },\n sharedCornerStyles,\n ],\n bottomLeftCorner: [\n globalClassNames.bottomLeftCorner,\n {\n bottom: '0',\n left: '0',\n },\n sharedCornerStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerLine.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerLineBase } from './ShimmerLine.base';\nimport { getStyles } from './ShimmerLine.styles';\nexport var ShimmerLine = styled(ShimmerLineBase, getStyles, undefined, {\n scope: 'ShimmerLine',\n});\n//# sourceMappingURL=ShimmerLine.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerGapBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, _a = props.width, width = _a === void 0 ? '10px' : _a, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { style: { width: width, minWidth: typeof width === 'number' ? \"\".concat(width, \"px\") : 'auto' }, className: classNames.root }));\n};\n//# sourceMappingURL=ShimmerGap.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerGap-root',\n};\nexport function getStyles(props) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n backgroundColor: semanticColors.bodyBackground,\n height: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Window',\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n };\n}\n//# sourceMappingURL=ShimmerGap.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerGapBase } from './ShimmerGap.base';\nimport { getStyles } from './ShimmerGap.styles';\nexport var ShimmerGap = styled(ShimmerGapBase, getStyles, undefined, {\n scope: 'ShimmerGap',\n});\n//# sourceMappingURL=ShimmerGap.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerCircle-root',\n svg: 'ms-ShimmerCircle-svg',\n};\nexport function getStyles(props) {\n var _a, _b;\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, borderStyle = props.borderStyle, theme = props.theme;\n var semanticColors = theme.semanticColors;\n var globalClassNames = getGlobalClassNames(GlobalClassNames, theme);\n var borderStyles = borderStyle || {};\n return {\n root: [\n globalClassNames.root,\n theme.fonts.medium,\n {\n width: \"\".concat(height, \"px\"),\n height: \"\".concat(height, \"px\"),\n minWidth: \"\".concat(height, \"px\"),\n boxSizing: 'content-box',\n borderTopStyle: 'solid',\n borderBottomStyle: 'solid',\n borderColor: semanticColors.bodyBackground,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n borderStyles,\n ],\n svg: [\n globalClassNames.svg,\n {\n display: 'block',\n fill: semanticColors.bodyBackground,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n fill: 'Window',\n },\n _b),\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerCircle.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var ShimmerCircleBase = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var height = props.height, styles = props.styles, borderStyle = props.borderStyle, theme = props.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n height: height,\n borderStyle: borderStyle,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"svg\", { viewBox: \"0 0 10 10\", width: height, height: height, className: classNames.svg },\n React.createElement(\"path\", { d: \"M0,0 L10,0 L10,10 L0,10 L0,0 Z M0,5 C0,7.76142375 2.23857625,10 5,10 C7.76142375,10 10,7.76142375 10,5 C10,2.23857625 7.76142375,2.22044605e-16 5,0 C2.23857625,-2.22044605e-16 0,2.23857625 0,5 L0,5 Z\" }))));\n};\n//# sourceMappingURL=ShimmerCircle.base.js.map","import { styled } from '../../../Utilities';\nimport { getStyles } from './ShimmerCircle.styles';\nimport { ShimmerCircleBase } from './ShimmerCircle.base';\nexport var ShimmerCircle = styled(ShimmerCircleBase, getStyles, undefined, { scope: 'ShimmerCircle' });\n//# sourceMappingURL=ShimmerCircle.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, memoizeFunction } from '../../../Utilities';\nimport { ShimmerElementType, ShimmerElementsDefaultHeights } from '../Shimmer.types';\nimport { ShimmerLine } from '../ShimmerLine/ShimmerLine';\nimport { ShimmerGap } from '../ShimmerGap/ShimmerGap';\nimport { ShimmerCircle } from '../ShimmerCircle/ShimmerCircle';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerElementsGroupBase = function (props) {\n var styles = props.styles, _a = props.width, width = _a === void 0 ? 'auto' : _a, shimmerElements = props.shimmerElements, _b = props.rowHeight, rowHeight = _b === void 0 ? findMaxElementHeight(shimmerElements || []) : _b, _c = props.flexWrap, flexWrap = _c === void 0 ? false : _c, theme = props.theme, backgroundColor = props.backgroundColor;\n var classNames = getClassNames(styles, {\n theme: theme,\n flexWrap: flexWrap,\n });\n return (React.createElement(\"div\", { style: { width: width }, className: classNames.root }, getRenderedElements(shimmerElements, backgroundColor, rowHeight)));\n};\nfunction getRenderedElements(shimmerElements, backgroundColor, rowHeight) {\n var renderedElements = shimmerElements ? (shimmerElements.map(\n // false positive\n // eslint-disable-next-line array-callback-return\n function (element, index) {\n var type = element.type, filteredElem = __rest(element, [\"type\"]);\n var verticalAlign = filteredElem.verticalAlign, height = filteredElem.height;\n var styles = getElementStyles(verticalAlign, type, height, backgroundColor, rowHeight);\n switch (element.type) {\n case ShimmerElementType.circle:\n return React.createElement(ShimmerCircle, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.gap:\n return React.createElement(ShimmerGap, __assign({ key: index }, filteredElem, { styles: styles }));\n case ShimmerElementType.line:\n return React.createElement(ShimmerLine, __assign({ key: index }, filteredElem, { styles: styles }));\n }\n })) : (React.createElement(ShimmerLine, { height: ShimmerElementsDefaultHeights.line }));\n return renderedElements;\n}\nvar getElementStyles = memoizeFunction(function (verticalAlign, elementType, elementHeight, backgroundColor, rowHeight) {\n var dif = rowHeight && elementHeight ? rowHeight - elementHeight : 0;\n var borderStyle;\n if (!verticalAlign || verticalAlign === 'center') {\n borderStyle = {\n borderBottomWidth: \"\".concat(dif ? Math.floor(dif / 2) : 0, \"px\"),\n borderTopWidth: \"\".concat(dif ? Math.ceil(dif / 2) : 0, \"px\"),\n };\n }\n else if (verticalAlign && verticalAlign === 'top') {\n borderStyle = {\n borderBottomWidth: \"\".concat(dif, \"px\"),\n borderTopWidth: \"0px\",\n };\n }\n else if (verticalAlign && verticalAlign === 'bottom') {\n borderStyle = {\n borderBottomWidth: \"0px\",\n borderTopWidth: \"\".concat(dif, \"px\"),\n };\n }\n if (backgroundColor) {\n switch (elementType) {\n case ShimmerElementType.circle:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n svg: { fill: backgroundColor },\n };\n case ShimmerElementType.gap:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor, backgroundColor: backgroundColor }),\n };\n case ShimmerElementType.line:\n return {\n root: __assign(__assign({}, borderStyle), { borderColor: backgroundColor }),\n topLeftCorner: { fill: backgroundColor },\n topRightCorner: { fill: backgroundColor },\n bottomLeftCorner: { fill: backgroundColor },\n bottomRightCorner: { fill: backgroundColor },\n };\n }\n }\n return {\n root: borderStyle,\n };\n});\n/**\n * User should not worry to provide which of the elements is the highest so we do the calculation for him.\n * Plus if user forgot to specify the height we assign their defaults.\n */\nfunction findMaxElementHeight(shimmerElements) {\n var shimmerElementsDefaulted = shimmerElements.map(function (element) {\n switch (element.type) {\n case ShimmerElementType.circle:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.circle;\n }\n break;\n case ShimmerElementType.line:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.line;\n }\n break;\n case ShimmerElementType.gap:\n if (!element.height) {\n element.height = ShimmerElementsDefaultHeights.gap;\n }\n break;\n }\n return element;\n });\n var rowHeight = shimmerElementsDefaulted.reduce(function (acc, next) {\n return next.height ? (next.height > acc ? next.height : acc) : acc;\n }, 0);\n return rowHeight;\n}\n//# sourceMappingURL=ShimmerElementsGroup.base.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ShimmerElementsGroup-root',\n};\nexport function getStyles(props) {\n var flexWrap = props.flexWrap, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: 'center',\n flexWrap: flexWrap ? 'wrap' : 'nowrap',\n position: 'relative',\n },\n ],\n };\n}\n//# sourceMappingURL=ShimmerElementsGroup.styles.js.map","import { styled } from '../../../Utilities';\nimport { ShimmerElementsGroupBase } from './ShimmerElementsGroup.base';\nimport { getStyles } from './ShimmerElementsGroup.styles';\nexport var ShimmerElementsGroup = styled(ShimmerElementsGroupBase, getStyles, undefined, { scope: 'ShimmerElementsGroup' });\n//# sourceMappingURL=ShimmerElementsGroup.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nimport { ShimmerElementsGroup } from './ShimmerElementsGroup/ShimmerElementsGroup';\nimport { useSetTimeout, useConst } from '@fluentui/react-hooks';\nvar TRANSITION_ANIMATION_INTERVAL = 200; /* ms */\nvar COMPONENT_NAME = 'Shimmer';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Shimmer}\n */\nexport var ShimmerBase = React.forwardRef(function (props, ref) {\n var styles = props.styles, shimmerElements = props.shimmerElements, children = props.children, width = props.width, className = props.className, customElementsGroup = props.customElementsGroup, theme = props.theme, ariaLabel = props.ariaLabel, shimmerColors = props.shimmerColors, _a = props.isDataLoaded, isDataLoaded = _a === void 0 ? false : _a, improveCSSPerformance = props.improveCSSPerformance;\n var divProps = getNativeProps(props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n isDataLoaded: isDataLoaded,\n className: className,\n transitionAnimationInterval: TRANSITION_ANIMATION_INTERVAL,\n shimmerColor: shimmerColors && shimmerColors.shimmer,\n shimmerWaveColor: shimmerColors && shimmerColors.shimmerWave,\n improveCSSPerformance: improveCSSPerformance || !customElementsGroup,\n });\n var internalState = useConst({\n lastTimeoutId: 0,\n });\n var _b = useSetTimeout(), setTimeout = _b.setTimeout, clearTimeout = _b.clearTimeout;\n /**\n * Flag for knowing when to remove the shimmerWrapper from the DOM.\n */\n var _c = React.useState(isDataLoaded), contentLoaded = _c[0], setContentLoaded = _c[1];\n var divStyleProp = { width: width ? width : '100%' };\n React.useEffect(function () {\n if (isDataLoaded !== contentLoaded) {\n if (isDataLoaded) {\n internalState.lastTimeoutId = setTimeout(function () {\n setContentLoaded(true);\n }, TRANSITION_ANIMATION_INTERVAL);\n return function () { return clearTimeout(internalState.lastTimeoutId); };\n }\n else {\n setContentLoaded(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only run when isDataLoaded changes.\n }, [isDataLoaded]);\n return (React.createElement(\"div\", __assign({}, divProps, { className: classNames.root, ref: ref }),\n !contentLoaded && (React.createElement(\"div\", { style: divStyleProp, className: classNames.shimmerWrapper },\n React.createElement(\"div\", { className: classNames.shimmerGradient }),\n customElementsGroup ? (customElementsGroup) : (React.createElement(ShimmerElementsGroup, { shimmerElements: shimmerElements, backgroundColor: shimmerColors && shimmerColors.background })))),\n children && React.createElement(\"div\", { className: classNames.dataWrapper }, children),\n ariaLabel && !isDataLoaded && (React.createElement(\"div\", { role: \"status\", \"aria-live\": \"polite\" },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, ariaLabel))))));\n});\nShimmerBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Shimmer.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Shimmer.styles';\nimport { ShimmerBase } from './Shimmer.base';\nexport var Shimmer = styled(ShimmerBase, getStyles, undefined, {\n scope: 'Shimmer',\n});\n//# sourceMappingURL=Shimmer.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css } from '../../Utilities';\nimport { SelectionMode } from '../../Selection';\nimport { DetailsList } from './DetailsList';\nimport { Shimmer, ShimmerElementsGroup, ShimmerElementType } from '../../Shimmer';\nimport { CheckboxVisibility } from './DetailsList.types';\nimport { DEFAULT_CELL_STYLE_PROPS, DEFAULT_ROW_HEIGHTS } from './DetailsRow.styles';\nvar getClassNames = classNamesFunction();\nvar SHIMMER_INITIAL_ITEMS = 10;\nvar DEFAULT_SHIMMER_HEIGHT = 7;\nvar SHIMMER_LINE_VS_CELL_WIDTH_RATIO = 0.95;\nvar ShimmeredDetailsListBase = /** @class */ (function (_super) {\n __extends(ShimmeredDetailsListBase, _super);\n function ShimmeredDetailsListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderShimmerPlaceholder = function (index, rowProps) {\n var onRenderCustomPlaceholder = _this.props.onRenderCustomPlaceholder;\n var placeholderElements = onRenderCustomPlaceholder\n ? onRenderCustomPlaceholder(rowProps, index, _this._renderDefaultShimmerPlaceholder)\n : _this._renderDefaultShimmerPlaceholder(rowProps);\n return React.createElement(Shimmer, { customElementsGroup: placeholderElements });\n };\n _this._renderDefaultShimmerPlaceholder = function (rowProps) {\n var columns = rowProps.columns, compact = rowProps.compact, selectionMode = rowProps.selectionMode, checkboxVisibility = rowProps.checkboxVisibility, _a = rowProps.cellStyleProps, cellStyleProps = _a === void 0 ? DEFAULT_CELL_STYLE_PROPS : _a;\n var rowHeight = DEFAULT_ROW_HEIGHTS.rowHeight, compactRowHeight = DEFAULT_ROW_HEIGHTS.compactRowHeight;\n // 1px to take into account the border-bottom of DetailsRow.\n var gapHeight = compact ? compactRowHeight : rowHeight + 1;\n var shimmerElementsRow = [];\n var showCheckbox = selectionMode !== SelectionMode.none && checkboxVisibility !== CheckboxVisibility.hidden;\n if (showCheckbox) {\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'checkboxGap', shimmerElements: [{ type: ShimmerElementType.gap, width: '40px', height: gapHeight }] }));\n }\n columns.forEach(function (column, columnIdx) {\n var shimmerElements = [];\n var groupWidth = cellStyleProps.cellLeftPadding +\n cellStyleProps.cellRightPadding +\n column.calculatedWidth +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0);\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellLeftPadding,\n height: gapHeight,\n });\n if (column.isIconOnly) {\n shimmerElements.push({\n type: ShimmerElementType.line,\n width: column.calculatedWidth,\n height: column.calculatedWidth,\n });\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellRightPadding,\n height: gapHeight,\n });\n }\n else {\n shimmerElements.push({\n type: ShimmerElementType.line,\n width: column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO,\n height: DEFAULT_SHIMMER_HEIGHT,\n });\n shimmerElements.push({\n type: ShimmerElementType.gap,\n width: cellStyleProps.cellRightPadding +\n (column.calculatedWidth - column.calculatedWidth * SHIMMER_LINE_VS_CELL_WIDTH_RATIO) +\n (column.isPadded ? cellStyleProps.cellExtraRightPadding : 0),\n height: gapHeight,\n });\n }\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: columnIdx, width: \"\".concat(groupWidth, \"px\"), shimmerElements: shimmerElements }));\n });\n // When resizing the window from narrow to wider, we need to cover the exposed Shimmer wave\n // until the column resizing logic is done.\n shimmerElementsRow.push(React.createElement(ShimmerElementsGroup, { key: 'endGap', width: '100%', shimmerElements: [{ type: ShimmerElementType.gap, width: '100%', height: gapHeight }] }));\n return React.createElement(\"div\", { style: { display: 'flex' } }, shimmerElementsRow);\n };\n _this._shimmerItems = props.shimmerLines ? new Array(props.shimmerLines) : new Array(SHIMMER_INITIAL_ITEMS);\n return _this;\n }\n ShimmeredDetailsListBase.prototype.render = function () {\n var _a = this.props, detailsListStyles = _a.detailsListStyles, enableShimmer = _a.enableShimmer, items = _a.items, listProps = _a.listProps, onRenderCustomPlaceholder = _a.onRenderCustomPlaceholder, removeFadingOverlay = _a.removeFadingOverlay, shimmerLines = _a.shimmerLines, styles = _a.styles, theme = _a.theme, ariaLabelForGrid = _a.ariaLabelForGrid, ariaLabelForShimmer = _a.ariaLabelForShimmer, restProps = __rest(_a, [\"detailsListStyles\", \"enableShimmer\", \"items\", \"listProps\", \"onRenderCustomPlaceholder\", \"removeFadingOverlay\", \"shimmerLines\", \"styles\", \"theme\", \"ariaLabelForGrid\", \"ariaLabelForShimmer\"]);\n var listClassName = listProps && listProps.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n });\n var newListProps = __assign(__assign({}, listProps), { \n // Adds to the optional listProp className a fading out overlay className only when `enableShimmer` toggled on\n // and the overlay is not disabled by `removeFadingOverlay` prop.\n className: enableShimmer && !removeFadingOverlay ? css(this._classNames.root, listClassName) : listClassName });\n return (React.createElement(DetailsList, __assign({}, restProps, { styles: detailsListStyles, items: enableShimmer ? this._shimmerItems : items, isPlaceholderData: enableShimmer, ariaLabelForGrid: (enableShimmer && ariaLabelForShimmer) || ariaLabelForGrid, onRenderMissingItem: this._onRenderShimmerPlaceholder, listProps: newListProps })));\n };\n return ShimmeredDetailsListBase;\n}(React.Component));\nexport { ShimmeredDetailsListBase };\n//# sourceMappingURL=ShimmeredDetailsList.base.js.map","import { styled } from '../../Utilities';\nimport { ShimmeredDetailsListBase } from './ShimmeredDetailsList.base';\nimport { getShimmeredDetailsListStyles } from './ShimmeredDetailsList.styles';\nexport var ShimmeredDetailsList = styled(ShimmeredDetailsListBase, getShimmeredDetailsListStyles, undefined, { scope: 'ShimmeredDetailsList' });\n//# sourceMappingURL=ShimmeredDetailsList.js.map","export var getShimmeredDetailsListStyles = function (props) {\n var theme = props.theme;\n var palette = theme.palette;\n return {\n root: {\n position: 'relative',\n selectors: {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n // eslint-disable-next-line @fluentui/max-len\n backgroundImage: \"linear-gradient(to bottom, transparent 30%, \".concat(palette.whiteTranslucent40, \" 65%,\").concat(palette.white, \" 100%)\"),\n },\n },\n },\n };\n};\n//# sourceMappingURL=ShimmeredDetailsList.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, getId } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { Modal } from '../../Modal';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nimport { DialogContent } from './DialogContent';\nvar DefaultModalProps = {\n isDarkOverlay: false,\n isBlocking: false,\n className: '',\n containerClassName: '',\n topOffsetFixed: false,\n enableAriaHiddenSiblings: true,\n};\nvar DefaultDialogContentProps = {\n type: DialogType.normal,\n className: '',\n topButtonsProps: [],\n};\n// eslint-disable-next-line deprecation/deprecation\nvar DialogBase = /** @class */ (function (_super) {\n __extends(DialogBase, _super);\n function DialogBase(props) {\n var _this = _super.call(this, props) || this;\n _this._getSubTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;\n var id = (modalProps && modalProps.subtitleAriaId) || ariaDescribedById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.subText) || subText) && _this._defaultSubTextId;\n }\n return id;\n };\n _this._getTitleTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;\n var id = (modalProps && modalProps.titleAriaId) || ariaLabelledById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.title) || title) && _this._defaultTitleTextId;\n }\n return id;\n };\n _this._id = getId('Dialog');\n _this._defaultTitleTextId = _this._id + '-title';\n _this._defaultSubTextId = _this._id + '-subText';\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Dialog', props, {\n isOpen: 'hidden',\n type: 'dialogContentProps.type',\n subText: 'dialogContentProps.subText',\n contentClassName: 'dialogContentProps.className',\n topButtonsProps: 'dialogContentProps.topButtonsProps',\n className: 'modalProps.className',\n isDarkOverlay: 'modalProps.isDarkOverlay',\n isBlocking: 'modalProps.isBlocking',\n containerClassName: 'modalProps.containerClassName',\n onDismissed: 'modalProps.onDismissed',\n onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',\n ariaDescribedById: 'modalProps.subtitleAriaId',\n ariaLabelledById: 'modalProps.titleAriaId',\n });\n }\n return _this;\n }\n DialogBase.prototype.render = function () {\n var _a, _b, _c;\n var props = this.props;\n var \n /* eslint-disable deprecation/deprecation */\n className = props.className, containerClassName = props.containerClassName, contentClassName = props.contentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, forceFocusInsideTrap = props.forceFocusInsideTrap, styles = props.styles, hidden = props.hidden, _d = props.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? props.ignoreExternalFocusing : _d, isBlocking = props.isBlocking, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, _e = props.isOpen, isOpen = _e === void 0 ? !hidden : _e, onDismiss = props.onDismiss, onDismissed = props.onDismissed, onLayerDidMount = props.onLayerDidMount, responsiveMode = props.responsiveMode, subText = props.subText, theme = props.theme, title = props.title, topButtonsProps = props.topButtonsProps, type = props.type, \n /* eslint-enable deprecation/deprecation */\n minWidth = props.minWidth, maxWidth = props.maxWidth, modalProps = props.modalProps;\n var mergedLayerProps = __assign({ onLayerDidMount: onLayerDidMount }, modalProps === null || modalProps === void 0 ? void 0 : modalProps.layerProps);\n var dialogDraggableClassName;\n var dragOptions;\n // If dragOptions are provided, but no drag handle is specified, we supply a drag handle,\n // and inform dialog contents to add class to draggable class to the header\n if ((modalProps === null || modalProps === void 0 ? void 0 : modalProps.dragOptions) && !((_a = modalProps.dragOptions) === null || _a === void 0 ? void 0 : _a.dragHandleSelector)) {\n // spread options to avoid mutating props\n dragOptions = __assign({}, modalProps.dragOptions);\n dialogDraggableClassName = 'ms-Dialog-draggable-header';\n dragOptions.dragHandleSelector = \".\".concat(dialogDraggableClassName);\n }\n var mergedModalProps = __assign(__assign(__assign(__assign({}, DefaultModalProps), { elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, disableRestoreFocus: disableRestoreFocus, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, responsiveMode: responsiveMode, className: className, containerClassName: containerClassName, isBlocking: isBlocking, isDarkOverlay: isDarkOverlay, onDismissed: onDismissed }), modalProps), { dragOptions: dragOptions, layerProps: mergedLayerProps, isOpen: isOpen });\n var dialogContentProps = __assign(__assign(__assign({ className: contentClassName, subText: subText, title: title, topButtonsProps: topButtonsProps, type: type }, DefaultDialogContentProps), props.dialogContentProps), { draggableHeaderClassName: dialogDraggableClassName, titleProps: __assign({ \n // eslint-disable-next-line deprecation/deprecation\n id: ((_b = props.dialogContentProps) === null || _b === void 0 ? void 0 : _b.titleId) || this._defaultTitleTextId }, (_c = props.dialogContentProps) === null || _c === void 0 ? void 0 : _c.titleProps) });\n var classNames = getClassNames(styles, {\n theme: theme,\n className: mergedModalProps.className,\n containerClassName: mergedModalProps.containerClassName,\n hidden: hidden,\n dialogDefaultMinWidth: minWidth,\n dialogDefaultMaxWidth: maxWidth,\n });\n return (React.createElement(Modal, __assign({}, mergedModalProps, { className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss || mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),\n React.createElement(DialogContent, __assign({ subTextId: this._defaultSubTextId, showCloseButton: mergedModalProps.isBlocking, onDismiss: onDismiss }, dialogContentProps), props.children)));\n };\n DialogBase.defaultProps = {\n hidden: true,\n };\n DialogBase = __decorate([\n withResponsiveMode\n ], DialogBase);\n return DialogBase;\n}(React.Component));\nexport { DialogBase };\n//# sourceMappingURL=Dialog.base.js.map","import { ScreenWidthMinMedium, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dialog',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, // eslint-disable-line deprecation/deprecation\n _b = props.dialogDefaultMinWidth, // eslint-disable-line deprecation/deprecation\n dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [classNames.root, theme.fonts.medium, className],\n main: [\n {\n width: dialogDefaultMinWidth,\n outline: '3px solid transparent',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n width: 'auto',\n maxWidth: dialogDefaultMaxWidth,\n minWidth: dialogDefaultMinWidth,\n },\n _a),\n },\n !hidden && { display: 'flex' },\n containerClassName,\n ],\n };\n};\n//# sourceMappingURL=Dialog.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogBase } from './Dialog.base';\nimport { getStyles } from './Dialog.styles';\nexport var Dialog = styled(DialogBase, getStyles, undefined, { scope: 'Dialog' });\nDialog.displayName = 'Dialog';\n//# sourceMappingURL=Dialog.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, warnDeprecations, initializeComponentRef } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { IconButton } from '../../Button';\nimport { DialogFooter } from './DialogFooter';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nvar DialogFooterType = (React.createElement(DialogFooter, null)).type;\nvar COMPONENT_NAME = 'DialogContent';\n// eslint-disable-next-line deprecation/deprecation\nvar DialogContentBase = /** @class */ (function (_super) {\n __extends(DialogContentBase, _super);\n function DialogContentBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n titleId: 'titleProps.id',\n });\n return _this;\n }\n DialogContentBase.prototype.render = function () {\n var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, _b = _a.titleProps, titleProps = _b === void 0 ? {} : _b, \n // eslint-disable-next-line deprecation/deprecation\n titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isLargeHeader: type === DialogType.largeHeader,\n isClose: type === DialogType.close,\n draggableHeaderClassName: draggableHeaderClassName,\n });\n var groupings = this._groupChildren();\n var subTextContent;\n if (subText) {\n subTextContent = (React.createElement(\"p\", { className: classNames.subText, id: subTextId }, subText));\n }\n return (React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(\"div\", __assign({ id: titleId, role: \"heading\", \"aria-level\": 1 }, titleProps, { className: css(classNames.title, titleProps.className) }), title),\n React.createElement(\"div\", { className: classNames.topButton },\n this.props.topButtonsProps.map(function (props, index) { return (React.createElement(IconButton, __assign({ key: props.uniqueId || index }, props))); }),\n (type === DialogType.close || (showCloseButton && type !== DialogType.largeHeader)) && (React.createElement(IconButton, { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),\n React.createElement(\"div\", { className: classNames.inner },\n React.createElement(\"div\", { className: classNames.innerContent },\n subTextContent,\n groupings.contents),\n groupings.footers)));\n };\n // @TODO - typing the footers as an array of DialogFooter is difficult because\n // casing \"child as DialogFooter\" causes a problem because\n // \"Neither type 'ReactElement<any>' nor type 'DialogFooter' is assignable to the other.\"\n DialogContentBase.prototype._groupChildren = function () {\n var groupings = {\n footers: [],\n contents: [],\n };\n React.Children.map(this.props.children, function (child) {\n if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {\n groupings.footers.push(child);\n }\n else {\n groupings.contents.push(child);\n }\n });\n return groupings;\n };\n DialogContentBase.defaultProps = {\n showCloseButton: false,\n className: '',\n topButtonsProps: [],\n closeButtonAriaLabel: 'Close',\n };\n DialogContentBase = __decorate([\n withResponsiveMode\n ], DialogContentBase);\n return DialogContentBase;\n}(React.Component));\nexport { DialogContentBase };\n//# sourceMappingURL=DialogContent.base.js.map","import { FontWeights, getGlobalClassNames, IconFontSizes, ScreenWidthMinSmall, ScreenWidthMaxSmall, } from '../../Styling';\nvar GlobalClassNames = {\n contentLgHeader: 'ms-Dialog-lgHeader',\n close: 'ms-Dialog--close',\n subText: 'ms-Dialog-subText',\n header: 'ms-Dialog-header',\n headerLg: 'ms-Dialog--lgHeader',\n button: 'ms-Dialog-button ms-Dialog-button--close',\n inner: 'ms-Dialog-inner',\n content: 'ms-Dialog-content',\n title: 'ms-Dialog-title',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n content: [\n isLargeHeader && [\n classNames.contentLgHeader,\n {\n borderTop: \"4px solid \".concat(palette.themePrimary),\n },\n ],\n isClose && classNames.close,\n {\n flexGrow: 1,\n overflowY: 'hidden', // required for allowScrollOnElement\n },\n className,\n ],\n subText: [\n classNames.subText,\n fonts.medium,\n {\n margin: '0 0 24px 0',\n color: semanticColors.bodySubtext,\n lineHeight: '1.5',\n wordWrap: 'break-word',\n fontWeight: FontWeights.regular,\n },\n ],\n header: [\n classNames.header,\n {\n position: 'relative',\n width: '100%',\n boxSizing: 'border-box',\n },\n isClose && classNames.close,\n draggableHeaderClassName && [\n draggableHeaderClassName,\n {\n cursor: 'move',\n },\n ],\n ],\n button: [\n classNames.button,\n hidden && {\n selectors: {\n '.ms-Icon.ms-Icon--Cancel': {\n color: semanticColors.buttonText,\n fontSize: IconFontSizes.medium,\n },\n },\n },\n ],\n inner: [\n classNames.inner,\n {\n padding: '0 24px 24px',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '0 16px 16px',\n },\n _a),\n },\n ],\n innerContent: [\n classNames.content,\n {\n position: 'relative',\n width: '100%',\n },\n ],\n title: [\n classNames.title,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n margin: '0',\n minHeight: fonts.xLarge.fontSize,\n padding: '16px 46px 20px 24px',\n lineHeight: 'normal',\n selectors: (_b = {},\n _b[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '16px 46px 16px 16px',\n },\n _b),\n },\n isLargeHeader && {\n color: semanticColors.menuHeader,\n },\n isMultiline && { fontSize: fonts.xxLarge.fontSize },\n ],\n topButton: [\n {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n position: 'absolute',\n top: '0',\n right: '0',\n padding: '15px 15px 0 0',\n selectors: (_c = {\n '> *': {\n flex: '0 0 auto',\n },\n '.ms-Dialog-button': {\n color: semanticColors.buttonText,\n },\n '.ms-Dialog-button:hover': {\n color: semanticColors.buttonTextHovered,\n borderRadius: effects.roundedCorner2,\n }\n },\n _c[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '15px 8px 0 0',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=DialogContent.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogContentBase } from './DialogContent.base';\nimport { getStyles } from './DialogContent.styles';\nexport var DialogContent = styled(DialogContentBase, getStyles, undefined, { scope: 'DialogContent' });\nDialogContent.displayName = 'DialogContent';\n//# sourceMappingURL=DialogContent.js.map","/**\n * {@docCategory Dialog}\n */\nexport var DialogType;\n(function (DialogType) {\n /** Standard dialog */\n DialogType[DialogType[\"normal\"] = 0] = \"normal\";\n /** Dialog with large header banner */\n DialogType[DialogType[\"largeHeader\"] = 1] = \"largeHeader\";\n /** Dialog with an 'x' close button in the upper-right corner */\n DialogType[DialogType[\"close\"] = 2] = \"close\";\n})(DialogType || (DialogType = {}));\n//# sourceMappingURL=DialogContent.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DialogFooterBase = /** @class */ (function (_super) {\n __extends(DialogFooterBase, _super);\n function DialogFooterBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DialogFooterBase.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.actions },\n React.createElement(\"div\", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));\n };\n DialogFooterBase.prototype._renderChildrenAsActions = function () {\n var _this = this;\n return React.Children.map(this.props.children, function (child) {\n return child ? React.createElement(\"span\", { className: _this._classNames.action }, child) : null;\n });\n };\n return DialogFooterBase;\n}(React.Component));\nexport { DialogFooterBase };\n//# sourceMappingURL=DialogFooter.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n actions: 'ms-Dialog-actions',\n action: 'ms-Dialog-action',\n actionsRight: 'ms-Dialog-actionsRight',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n actions: [\n classNames.actions,\n {\n position: 'relative',\n width: '100%',\n minHeight: '24px',\n lineHeight: '24px',\n margin: '16px 0 0',\n fontSize: '0',\n selectors: {\n '.ms-Button': {\n lineHeight: 'normal',\n verticalAlign: 'middle',\n },\n },\n },\n className,\n ],\n action: [\n classNames.action,\n {\n margin: '0 4px',\n },\n ],\n actionsRight: [\n classNames.actionsRight,\n {\n alignItems: 'center',\n display: 'flex',\n fontSize: '0',\n justifyContent: 'flex-end',\n marginRight: '-4px',\n },\n ],\n };\n};\n//# sourceMappingURL=DialogFooter.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nexport var DialogFooter = styled(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\nDialogFooter.displayName = 'DialogFooter';\n//# sourceMappingURL=DialogFooter.js.map","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n // eslint-disable-next-line deprecation/deprecation\n var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes, getNativeProps, divProperties, warnDeprecations, initializeComponentRef, } from '../../Utilities';\nimport { DocumentCardType } from './DocumentCard.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'DocumentCard';\nexport var DocumentCardContext = React.createContext({});\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardBase = /** @class */ (function (_super) {\n __extends(DocumentCardBase, _super);\n function DocumentCardBase(props) {\n var _this = _super.call(this, props) || this;\n _this._rootElement = React.createRef();\n _this._onClick = function (ev) {\n _this._onAction(ev);\n };\n _this._onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n _this._onAction(ev);\n }\n };\n _this._onAction = function (ev) {\n var _a = _this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, onClickTarget = _a.onClickTarget;\n if (onClick) {\n onClick(ev);\n }\n else if (!onClick && onClickHref) {\n // If no onClick Function was provided and we do have an onClickHref, redirect to the onClickHref\n if (onClickTarget) {\n window.open(onClickHref, onClickTarget, 'noreferrer noopener nofollow');\n }\n else {\n window.location.href = onClickHref;\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n accentColor: undefined,\n });\n return _this;\n }\n DocumentCardBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onClick = _a.onClick, onClickHref = _a.onClickHref, children = _a.children, type = _a.type, accentColor = _a.accentColor, styles = _a.styles, theme = _a.theme, className = _a.className;\n var nativeProps = getNativeProps(this.props, divProperties, [\n 'className',\n 'onClick',\n 'type',\n 'role',\n ]);\n var actionable = onClick || onClickHref ? true : false;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n actionable: actionable,\n compact: type === DocumentCardType.compact ? true : false,\n });\n // Override the border color if an accent color was provided (compact card only)\n var style;\n if (type === DocumentCardType.compact && accentColor) {\n style = {\n borderBottomColor: accentColor,\n };\n }\n // if this element is actionable it should have an aria role\n var role = this.props.role || (actionable ? (onClick ? 'button' : 'link') : undefined);\n var tabIndex = actionable ? 0 : undefined;\n var documentCardContextValue = { role: role, tabIndex: tabIndex };\n return (React.createElement(\"div\", __assign({ ref: this._rootElement, role: 'group', className: this._classNames.root, onKeyDown: actionable ? this._onKeyDown : undefined, onClick: actionable ? this._onClick : undefined, style: style }, nativeProps),\n React.createElement(DocumentCardContext.Provider, { value: documentCardContextValue }, children)));\n };\n DocumentCardBase.prototype.focus = function () {\n if (this._rootElement.current) {\n this._rootElement.current.focus();\n }\n };\n DocumentCardBase.defaultProps = {\n type: DocumentCardType.normal,\n };\n return DocumentCardBase;\n}(React.Component));\nexport { DocumentCardBase };\n//# sourceMappingURL=DocumentCard.base.js.map","import { getFocusStyle, getGlobalClassNames, HighContrastSelector } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DocumentCardPreviewGlobalClassNames = {\n root: 'ms-DocumentCardPreview',\n icon: 'ms-DocumentCardPreview-icon',\n iconContainer: 'ms-DocumentCardPreview-iconContainer',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, isFileList = props.isFileList;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardPreviewGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n backgroundColor: isFileList ? palette.white : palette.neutralLighterAlt,\n borderBottom: \"1px solid \".concat(palette.neutralLight),\n overflow: \"hidden\",\n position: 'relative',\n },\n className,\n ],\n previewIcon: [\n classNames.iconContainer,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n },\n ],\n icon: [\n classNames.icon,\n {\n left: '10px',\n bottom: '10px',\n position: 'absolute',\n },\n ],\n fileList: {\n padding: '16px 16px 0 16px',\n listStyleType: 'none',\n margin: 0,\n selectors: {\n li: {\n height: '16px',\n lineHeight: '16px',\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n marginBottom: '8px',\n overflow: 'hidden',\n },\n },\n },\n fileListIcon: {\n display: 'inline-block',\n flexShrink: 0,\n marginRight: '8px',\n },\n fileListLink: [\n getFocusStyle(theme, {\n highContrastStyle: {\n border: '1px solid WindowText',\n outline: 'none',\n },\n }),\n {\n boxSizing: 'border-box',\n color: palette.neutralDark,\n flexGrow: 1,\n overflow: 'hidden',\n display: 'inline-block',\n textDecoration: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n selectors: (_a = {\n ':hover': {\n color: palette.themePrimary,\n }\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: 'none',\n },\n _b),\n },\n _a),\n },\n ],\n fileListOverflowText: {\n padding: '0px 16px 8px 16px',\n display: 'block',\n },\n };\n};\n//# sourceMappingURL=DocumentCardPreview.styles.js.map","import { getGlobalClassNames, getInputFocusStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { DocumentCardPreviewGlobalClassNames as previewClassNames } from './DocumentCardPreview.styles';\nimport { DocumentCardActivityGlobalClassNames as activityClassNames } from './DocumentCardActivity.styles';\nimport { DocumentCardTitleGlobalClassNames as titleClassNames } from './DocumentCardTitle.styles';\nimport { DocumentCardLocationGlobalClassNames as locationClassNames } from './DocumentCardLocation.styles';\nvar GlobalClassNames = {\n root: 'ms-DocumentCard',\n rootActionable: 'ms-DocumentCard--actionable',\n rootCompact: 'ms-DocumentCard--compact',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, actionable = props.actionable, compact = props.compact;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n WebkitFontSmoothing: 'antialiased',\n backgroundColor: palette.white,\n border: \"1px solid \".concat(palette.neutralLight),\n maxWidth: '320px',\n minWidth: '206px',\n userSelect: 'none',\n position: 'relative',\n selectors: (_a = {\n ':focus': {\n outline: '0px solid',\n }\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = getInputFocusStyle(palette.neutralSecondary, effects.roundedCorner2),\n _a[\".\".concat(locationClassNames.root, \" + .\").concat(titleClassNames.root)] = {\n paddingTop: '4px',\n },\n _a),\n },\n actionable && [\n classNames.rootActionable,\n {\n selectors: {\n ':hover': {\n cursor: 'pointer',\n borderColor: palette.neutralTertiaryAlt,\n },\n ':hover:after': {\n content: '\" \"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n border: \"1px solid \".concat(palette.neutralTertiaryAlt),\n pointerEvents: 'none',\n },\n },\n },\n ],\n compact && [\n classNames.rootCompact,\n {\n display: 'flex',\n maxWidth: '480px',\n height: '108px',\n selectors: (_b = {},\n _b[\".\".concat(previewClassNames.root)] = {\n borderRight: \"1px solid \".concat(palette.neutralLight),\n borderBottom: 0,\n maxHeight: '106px',\n maxWidth: '144px',\n },\n _b[\".\".concat(previewClassNames.icon)] = {\n maxHeight: '32px',\n maxWidth: '32px',\n },\n _b[\".\".concat(activityClassNames.root)] = {\n paddingBottom: '12px',\n },\n _b[\".\".concat(titleClassNames.root)] = {\n paddingBottom: '12px 16px 8px 16px',\n fontSize: fonts.mediumPlus.fontSize,\n lineHeight: '16px',\n },\n _b),\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCard.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardBase } from './DocumentCard.base';\nimport { getStyles } from './DocumentCard.styles';\nexport var DocumentCard = styled(DocumentCardBase, getStyles, undefined, { scope: 'DocumentCard' });\n//# sourceMappingURL=DocumentCard.js.map","/**\n * {@docCategory DocumentCard}\n */\nexport var DocumentCardType;\n(function (DocumentCardType) {\n /**\n * Standard DocumentCard.\n */\n DocumentCardType[DocumentCardType[\"normal\"] = 0] = \"normal\";\n /**\n * Compact layout. Displays the preview beside the details, rather than above.\n */\n DocumentCardType[DocumentCardType[\"compact\"] = 1] = \"compact\";\n})(DocumentCardType || (DocumentCardType = {}));\n//# sourceMappingURL=DocumentCard.types.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nimport { PersonaSize } from '../../Persona';\nimport { PersonaCoin } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardActivityBase = /** @class */ (function (_super) {\n __extends(DocumentCardActivityBase, _super);\n function DocumentCardActivityBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardActivityBase.prototype.render = function () {\n var _a = this.props, activity = _a.activity, people = _a.people, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n multiplePeople: people.length > 1,\n });\n if (!people || people.length === 0) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.root },\n this._renderAvatars(people),\n React.createElement(\"div\", { className: this._classNames.details },\n React.createElement(\"span\", { className: this._classNames.name }, this._getNameString(people)),\n React.createElement(\"span\", { className: this._classNames.activity }, activity))));\n };\n DocumentCardActivityBase.prototype._renderAvatars = function (people) {\n return (React.createElement(\"div\", { className: this._classNames.avatars },\n people.length > 1 ? this._renderAvatar(people[1]) : null,\n this._renderAvatar(people[0])));\n };\n DocumentCardActivityBase.prototype._renderAvatar = function (person) {\n return (React.createElement(\"div\", { className: this._classNames.avatar },\n React.createElement(PersonaCoin, { imageInitials: person.initials, text: person.name, imageUrl: person.profileImageSrc, initialsColor: person.initialsColor, allowPhoneInitials: person.allowPhoneInitials, role: \"presentation\", size: PersonaSize.size32 })));\n };\n DocumentCardActivityBase.prototype._getNameString = function (people) {\n var nameString = people[0].name;\n if (people.length >= 2) {\n nameString += ' +' + (people.length - 1);\n }\n return nameString;\n };\n return DocumentCardActivityBase;\n}(React.Component));\nexport { DocumentCardActivityBase };\n//# sourceMappingURL=DocumentCardActivity.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardActivityBase } from './DocumentCardActivity.base';\nimport { getStyles } from './DocumentCardActivity.styles';\nexport var DocumentCardActivity = styled(DocumentCardActivityBase, getStyles, undefined, { scope: 'DocumentCardActivity' });\n//# sourceMappingURL=DocumentCardActivity.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nvar VERTICAL_PADDING = 8;\nvar HORIZONTAL_PADDING = 16;\nvar IMAGE_SIZE = 32;\nvar PERSONA_TEXT_GUTTER = 8;\nexport var DocumentCardActivityGlobalClassNames = {\n root: 'ms-DocumentCardActivity',\n multiplePeople: 'ms-DocumentCardActivity--multiplePeople',\n details: 'ms-DocumentCardActivity-details',\n name: 'ms-DocumentCardActivity-name',\n activity: 'ms-DocumentCardActivity-activity',\n avatars: 'ms-DocumentCardActivity-avatars',\n avatar: 'ms-DocumentCardActivity-avatar',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, multiplePeople = props.multiplePeople;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardActivityGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n multiplePeople && classNames.multiplePeople,\n {\n padding: \"\".concat(VERTICAL_PADDING, \"px \").concat(HORIZONTAL_PADDING, \"px\"),\n position: 'relative',\n },\n className,\n ],\n avatars: [\n classNames.avatars,\n {\n marginLeft: '-2px',\n height: '32px',\n },\n ],\n avatar: [\n classNames.avatar,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n position: 'relative',\n textAlign: 'center',\n width: IMAGE_SIZE,\n height: IMAGE_SIZE,\n selectors: {\n '&:after': {\n content: '\" \"',\n position: 'absolute',\n left: '-1px',\n top: '-1px',\n right: '-1px',\n bottom: '-1px',\n border: \"2px solid \".concat(palette.white),\n borderRadius: '50%',\n },\n ':nth-of-type(2)': multiplePeople && {\n marginLeft: '-16px',\n },\n },\n },\n ],\n details: [\n classNames.details,\n {\n left: multiplePeople\n ? \"\".concat(HORIZONTAL_PADDING + IMAGE_SIZE * 1.5 + PERSONA_TEXT_GUTTER, \"px\")\n : \"\".concat(HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER, \"px\"),\n height: IMAGE_SIZE,\n position: 'absolute',\n top: VERTICAL_PADDING,\n width: \"calc(100% - \".concat(HORIZONTAL_PADDING + IMAGE_SIZE + PERSONA_TEXT_GUTTER + HORIZONTAL_PADDING, \"px)\"),\n },\n ],\n name: [\n classNames.name,\n {\n display: 'block',\n fontSize: fonts.small.fontSize,\n lineHeight: '15px',\n height: '15px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: palette.neutralPrimary,\n fontWeight: FontWeights.semibold,\n },\n ],\n activity: [\n classNames.activity,\n {\n display: 'block',\n fontSize: fonts.small.fontSize,\n lineHeight: '15px',\n height: '15px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: palette.neutralSecondary,\n },\n ],\n };\n};\n//# sourceMappingURL=DocumentCardActivity.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardDetailsBase = /** @class */ (function (_super) {\n __extends(DocumentCardDetailsBase, _super);\n function DocumentCardDetailsBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardDetailsBase.prototype.render = function () {\n var _a = this.props, children = _a.children, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return React.createElement(\"div\", { className: this._classNames.root }, children);\n };\n return DocumentCardDetailsBase;\n}(React.Component));\nexport { DocumentCardDetailsBase };\n//# sourceMappingURL=DocumentCardDetails.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-DocumentCardDetails',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n justifyContent: 'space-between',\n overflow: 'hidden',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardDetails.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardDetailsBase } from './DocumentCardDetails.base';\nimport { getStyles } from './DocumentCardDetails.styles';\nexport var DocumentCardDetails = styled(DocumentCardDetailsBase, getStyles, undefined, { scope: 'DocumentCardDetails' });\n//# sourceMappingURL=DocumentCardDetails.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Icon } from '../../Icon';\nimport { Image } from '../../Image';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardImageBase = /** @class */ (function (_super) {\n __extends(DocumentCardImageBase, _super);\n function DocumentCardImageBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoad = function () {\n _this.setState({ imageHasLoaded: true });\n };\n initializeComponentRef(_this);\n _this.state = { imageHasLoaded: false };\n return _this;\n }\n DocumentCardImageBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, width = _a.width, height = _a.height, imageFit = _a.imageFit, imageSrc = _a.imageSrc;\n this._classNames = getClassNames(styles, this.props);\n return (React.createElement(\"div\", { className: this._classNames.root },\n imageSrc && (React.createElement(Image, { width: width, height: height, imageFit: imageFit, src: imageSrc, role: \"presentation\", alt: \"\", onLoad: this._onImageLoad })),\n this.state.imageHasLoaded ? this._renderCornerIcon() : this._renderCenterIcon()));\n };\n DocumentCardImageBase.prototype._renderCenterIcon = function () {\n var iconProps = this.props.iconProps;\n return (React.createElement(\"div\", { className: this._classNames.centeredIconWrapper },\n React.createElement(Icon, __assign({ className: this._classNames.centeredIcon }, iconProps))));\n };\n DocumentCardImageBase.prototype._renderCornerIcon = function () {\n var iconProps = this.props.iconProps;\n return React.createElement(Icon, __assign({ className: this._classNames.cornerIcon }, iconProps));\n };\n return DocumentCardImageBase;\n}(React.Component));\nexport { DocumentCardImageBase };\n//# sourceMappingURL=DocumentCardImage.base.js.map","var centeredIconSize = '42px';\nvar cornerIconSize = '32px';\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className, height = props.height, width = props.width;\n var palette = theme.palette;\n return {\n root: [\n {\n borderBottom: \"1px solid \".concat(palette.neutralLight),\n position: 'relative',\n backgroundColor: palette.neutralLighterAlt,\n overflow: \"hidden\",\n height: height && \"\".concat(height, \"px\"),\n width: width && \"\".concat(width, \"px\"),\n },\n className,\n ],\n centeredIcon: [\n {\n height: centeredIconSize,\n width: centeredIconSize,\n fontSize: centeredIconSize,\n },\n ],\n centeredIconWrapper: [\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n },\n ],\n cornerIcon: [\n {\n left: '10px',\n bottom: '10px',\n height: cornerIconSize,\n width: cornerIconSize,\n fontSize: cornerIconSize,\n position: 'absolute',\n overflow: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=DocumentCardImage.styles.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardImageBase } from './DocumentCardImage.base';\nimport { getStyles } from './DocumentCardImage.styles';\nexport var DocumentCardImage = styled(DocumentCardImageBase, getStyles, undefined, { scope: 'DocumentCardImage' });\n//# sourceMappingURL=DocumentCardImage.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardLocationBase = /** @class */ (function (_super) {\n __extends(DocumentCardLocationBase, _super);\n function DocumentCardLocationBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DocumentCardLocationBase.prototype.render = function () {\n var _a = this.props, location = _a.location, locationHref = _a.locationHref, ariaLabel = _a.ariaLabel, onClick = _a.onClick, styles = _a.styles, theme = _a.theme, className = _a.className;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"a\", { className: this._classNames.root, href: locationHref, onClick: onClick, \"aria-label\": ariaLabel }, location));\n };\n return DocumentCardLocationBase;\n}(React.Component));\nexport { DocumentCardLocationBase };\n//# sourceMappingURL=DocumentCardLocation.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardLocationBase } from './DocumentCardLocation.base';\nimport { getStyles } from './DocumentCardLocation.styles';\nexport var DocumentCardLocation = styled(DocumentCardLocationBase, getStyles, undefined, { scope: 'DocumentCardLocation' });\n//# sourceMappingURL=DocumentCardLocation.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nexport var DocumentCardLocationGlobalClassNames = {\n root: 'ms-DocumentCardLocation',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(DocumentCardLocationGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.small,\n {\n color: palette.themePrimary,\n display: 'block',\n fontWeight: FontWeights.semibold,\n overflow: 'hidden',\n padding: '8px 16px',\n position: 'relative',\n textDecoration: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n selectors: {\n ':hover': {\n color: palette.themePrimary,\n cursor: 'pointer',\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardLocation.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction } from '../../Utilities';\nimport { initializeComponentRef } from '@fluentui/utilities';\nimport { DocumentCardContext } from './DocumentCard.base';\nvar getClassNames = classNamesFunction();\nvar TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD = 5;\n/**\n * {@docCategory DocumentCard}\n */\nvar DocumentCardTitleBase = /** @class */ (function (_super) {\n __extends(DocumentCardTitleBase, _super);\n function DocumentCardTitleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._titleElement = React.createRef();\n // Truncate logic here way can't handle the case that chars with different widths are mixed very well.\n // Let _shrinkTitle take care of that.\n _this._truncateTitle = function () {\n if (!_this._needMeasurement) {\n return;\n }\n _this._async.requestAnimationFrame(_this._truncateWhenInAnimation);\n };\n _this._truncateWhenInAnimation = function () {\n var originalTitle = _this.props.title;\n var element = _this._titleElement.current;\n if (element) {\n var style = getComputedStyle(element);\n if (style.width && style.lineHeight && style.height) {\n var clientWidth = element.clientWidth, scrollWidth = element.scrollWidth;\n _this._clientWidth = clientWidth;\n var lines = Math.floor((parseInt(style.height, 10) + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD) / parseInt(style.lineHeight, 10));\n element.style.whiteSpace = '';\n // Use overflow to predict truncated length.\n // Take an example.The text is: A text with A very long text that need to be truncated.ppt\n // if container is like\n // |A text with A very| long text that need to be truncated.ppt\n // The scroll width is 58, (take two | out of length)\n // The client width is 18\n // the overflow rate is scrollWidth/clientWidth which should be close to length(overflowText)/length(visualText)\n // And the length of remaining text should be truncated is (original Length)/(58/18) -3 = 15.\n // So that the logic can predict truncated text well.\n // first piece will be `A text `, * second piece will be `ated.ppt`\n // |A text ...ated.ppt|\n var overFlowRate = scrollWidth / (parseInt(style.width, 10) * lines);\n if (overFlowRate > 1) {\n var truncatedLength = originalTitle.length / overFlowRate - 3; /** Saved for separator */\n return _this.setState({\n truncatedTitleFirstPiece: originalTitle.slice(0, truncatedLength / 2),\n truncatedTitleSecondPiece: originalTitle.slice(originalTitle.length - truncatedLength / 2),\n });\n }\n }\n }\n };\n _this._shrinkTitle = function () {\n var _a = _this.state, truncatedTitleFirstPiece = _a.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _a.truncatedTitleSecondPiece;\n if (truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n var titleElement = _this._titleElement.current;\n if (!titleElement) {\n return;\n }\n if (titleElement.scrollHeight > titleElement.clientHeight + TRUNCATION_VERTICAL_OVERFLOW_THRESHOLD ||\n titleElement.scrollWidth > titleElement.clientWidth) {\n _this.setState({\n truncatedTitleFirstPiece: truncatedTitleFirstPiece.slice(0, truncatedTitleFirstPiece.length - 1),\n truncatedTitleSecondPiece: truncatedTitleSecondPiece.slice(1),\n });\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._clientWidth = undefined;\n _this.state = {\n truncatedTitleFirstPiece: undefined,\n truncatedTitleSecondPiece: undefined,\n };\n return _this;\n }\n DocumentCardTitleBase.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n if (this.props.title !== prevProps.title) {\n this.setState({\n truncatedTitleFirstPiece: undefined,\n truncatedTitleSecondPiece: undefined,\n });\n }\n if (prevProps.shouldTruncate !== this.props.shouldTruncate) {\n if (this.props.shouldTruncate) {\n this._truncateTitle();\n this._async.requestAnimationFrame(this._shrinkTitle);\n this._events.on(window, 'resize', this._updateTruncation);\n }\n else {\n this._events.off(window, 'resize', this._updateTruncation);\n }\n }\n else if (this._needMeasurement) {\n this._async.requestAnimationFrame(function () {\n _this._truncateWhenInAnimation();\n _this._shrinkTitle();\n });\n }\n };\n DocumentCardTitleBase.prototype.componentDidMount = function () {\n if (this.props.shouldTruncate) {\n this._truncateTitle();\n this._events.on(window, 'resize', this._updateTruncation);\n }\n };\n DocumentCardTitleBase.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n DocumentCardTitleBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, title = _a.title, shouldTruncate = _a.shouldTruncate, showAsSecondaryTitle = _a.showAsSecondaryTitle, styles = _a.styles, theme = _a.theme, className = _a.className;\n var _b = this.state, truncatedTitleFirstPiece = _b.truncatedTitleFirstPiece, truncatedTitleSecondPiece = _b.truncatedTitleSecondPiece;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showAsSecondaryTitle: showAsSecondaryTitle,\n });\n if (shouldTruncate && truncatedTitleFirstPiece && truncatedTitleSecondPiece) {\n return (React.createElement(DocumentCardContext.Consumer, null, function (_a) {\n var role = _a.role, tabIndex = _a.tabIndex;\n return (React.createElement(\"div\", { className: _this._classNames.root, ref: _this._titleElement, title: title, tabIndex: tabIndex, role: role },\n truncatedTitleFirstPiece,\n \"\\u2026\",\n truncatedTitleSecondPiece));\n }));\n }\n else {\n return (React.createElement(DocumentCardContext.Consumer, null, function (_a) {\n var role = _a.role, tabIndex = _a.tabIndex;\n return (React.createElement(\"div\", { className: _this._classNames.root, ref: _this._titleElement, title: title, tabIndex: tabIndex, role: role, style: _this._needMeasurement ? { whiteSpace: 'nowrap' } : undefined }, title));\n }));\n }\n };\n Object.defineProperty(DocumentCardTitleBase.prototype, \"_needMeasurement\", {\n /**\n * In measuring, it will render a same style text with whiteSpace: 'nowrap', to get overflow rate.\n * So that the logic can predict truncated text well.\n */\n get: function () {\n return !!this.props.shouldTruncate && this._clientWidth === undefined;\n },\n enumerable: false,\n configurable: true\n });\n DocumentCardTitleBase.prototype._updateTruncation = function () {\n var _this = this;\n if (this._timerId) {\n return;\n }\n this._timerId = this._async.setTimeout(function () {\n delete _this._timerId;\n _this._clientWidth = undefined;\n _this.setState({\n truncatedTitleFirstPiece: undefined,\n truncatedTitleSecondPiece: undefined,\n });\n }, 250);\n };\n return DocumentCardTitleBase;\n}(React.Component));\nexport { DocumentCardTitleBase };\n//# sourceMappingURL=DocumentCardTitle.base.js.map","import { styled } from '../../Utilities';\nimport { DocumentCardTitleBase } from './DocumentCardTitle.base';\nimport { getStyles } from './DocumentCardTitle.styles';\nexport var DocumentCardTitle = styled(DocumentCardTitleBase, getStyles, undefined, { scope: 'DocumentCardTitle' });\n//# sourceMappingURL=DocumentCardTitle.js.map","import { getGlobalClassNames, getInputFocusStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nexport var DocumentCardTitleGlobalClassNames = {\n root: 'ms-DocumentCardTitle',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, showAsSecondaryTitle = props.showAsSecondaryTitle;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects;\n var classNames = getGlobalClassNames(DocumentCardTitleGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n showAsSecondaryTitle ? fonts.medium : fonts.large,\n {\n padding: '8px 16px',\n display: 'block',\n overflow: 'hidden',\n position: 'relative',\n wordWrap: 'break-word',\n height: showAsSecondaryTitle ? '45px' : '38px',\n lineHeight: showAsSecondaryTitle ? '18px' : '21px',\n color: showAsSecondaryTitle ? palette.neutralSecondary : palette.neutralPrimary,\n selectors: (_a = {\n ':focus': {\n outline: '0px solid',\n }\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = getInputFocusStyle(palette.neutralSecondary, effects.roundedCorner2),\n _a),\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=DocumentCardTitle.styles.js.map","import { __spreadArray } from \"tslib\";\nimport { DropdownMenuItemType } from '../Dropdown.types';\n/**\n * A utility class to cache size and position in cache.\n *\n * Dropdown options has non-selectable display types. It is therefore not cheap to determine\n * the total number of actual selectable options as well as the position an option is in the\n * list of options - O(n) cost for each lookup.\n *\n * Given that we potentially have to make this determination on every single render pass, this\n * cache should provide a little bit of relief.\n */\nvar DropdownSizePosCache = /** @class */ (function () {\n function DropdownSizePosCache() {\n this._size = 0;\n }\n /**\n * Invalidates the cache and recalculate the size of selectable options.\n */\n DropdownSizePosCache.prototype.updateOptions = function (options) {\n var displayOnlyOptionsCache = [];\n var notSelectableOptionsCache = [];\n var size = 0;\n for (var i = 0; i < options.length; i++) {\n var _a = options[i], itemType = _a.itemType, hidden = _a.hidden;\n if (itemType === DropdownMenuItemType.Divider || itemType === DropdownMenuItemType.Header) {\n displayOnlyOptionsCache.push(i);\n notSelectableOptionsCache.push(i);\n }\n else if (hidden) {\n notSelectableOptionsCache.push(i);\n }\n else {\n size++;\n }\n }\n this._size = size;\n this._displayOnlyOptionsCache = displayOnlyOptionsCache;\n this._notSelectableOptionsCache = notSelectableOptionsCache;\n this._cachedOptions = __spreadArray([], options, true);\n };\n Object.defineProperty(DropdownSizePosCache.prototype, \"optionSetSize\", {\n /**\n * The size of all the selectable options.\n */\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropdownSizePosCache.prototype, \"cachedOptions\", {\n /**\n * The chached options array.\n */\n get: function () {\n return this._cachedOptions;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the position of this option element relative to the full set of selectable option elements.\n * Note: the first selectable element is position 1 in the set.\n * @param index The raw index of the option element.\n */\n DropdownSizePosCache.prototype.positionInSet = function (index) {\n if (index === undefined) {\n return undefined;\n }\n // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that\n // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.\n var offset = 0;\n while (index > this._notSelectableOptionsCache[offset]) {\n offset++;\n }\n if (this._displayOnlyOptionsCache[offset] === index) {\n throw new Error(\"Unexpected: Option at index \".concat(index, \" is not a selectable element.\"));\n }\n if (this._notSelectableOptionsCache[offset] === index) {\n return undefined;\n }\n return index - offset + 1;\n };\n return DropdownSizePosCache;\n}());\nexport { DropdownSizePosCache };\n//# sourceMappingURL=DropdownSizePosCache.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { css, KeyCodes, classNamesFunction, divProperties, findIndex, getDocument, getFirstFocusable, getId, getLastFocusable, getNativeProps, initializeComponentRef, isIOS, isMac, mergeAriaAttributeValues, safeRequestAnimationFrame, warn, warnDeprecations, warnMutuallyExclusive, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { CommandButton } from '../../Button';\nimport { DropdownMenuItemType } from './Dropdown.types';\nimport { DropdownSizePosCache } from './utilities/DropdownSizePosCache';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { Label } from '../../Label';\nimport { Panel } from '../../Panel';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\n// import and use V7 Checkbox to ensure no breaking changes.\nimport { Checkbox } from '../../Checkbox';\nimport { getNextElement, getPreviousElement, getPropsWithDefaults } from '@fluentui/utilities';\nimport { useMergedRefs, usePrevious } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'Dropdown';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n options: [],\n};\nfunction useSelectedItemsState(_a) {\n var defaultSelectedKeys = _a.defaultSelectedKeys, selectedKeys = _a.selectedKeys, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey, options = _a.options, multiSelect = _a.multiSelect;\n var oldOptions = usePrevious(options);\n var _b = React.useState([]), selectedIndices = _b[0], setSelectedIndices = _b[1];\n // In controlled component usage where selectedKey is provided, update the selectedIndex\n // state if the key or options change.\n var selectedKeyPropToUse;\n // this does a shallow compare (assumes options are pure), for the purposes of determining whether\n // defaultSelectedKey/defaultSelectedKeys are respected.\n var didOptionsChange = options !== oldOptions;\n if (multiSelect) {\n if (didOptionsChange && defaultSelectedKeys !== undefined) {\n selectedKeyPropToUse = defaultSelectedKeys;\n }\n else {\n selectedKeyPropToUse = selectedKeys;\n }\n }\n else {\n if (didOptionsChange && defaultSelectedKey !== undefined) {\n selectedKeyPropToUse = defaultSelectedKey;\n }\n else {\n selectedKeyPropToUse = selectedKey;\n }\n }\n var oldSelectedKeyProp = usePrevious(selectedKeyPropToUse);\n React.useEffect(function () {\n /** Get all selected indexes for multi-select mode */\n var getSelectedIndexes = function () {\n if (selectedKeyPropToUse === undefined) {\n if (multiSelect) {\n return getAllSelectedIndices();\n }\n var selectedIndex = getSelectedIndex(null);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n else if (!Array.isArray(selectedKeyPropToUse)) {\n var selectedIndex = getSelectedIndex(selectedKeyPropToUse);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n var returnValue = [];\n for (var _i = 0, selectedKeyPropToUse_1 = selectedKeyPropToUse; _i < selectedKeyPropToUse_1.length; _i++) {\n var key = selectedKeyPropToUse_1[_i];\n var selectedIndex = getSelectedIndex(key);\n selectedIndex !== -1 && returnValue.push(selectedIndex);\n }\n return returnValue;\n };\n var getAllSelectedIndices = function () {\n return options\n .map(function (option, index) { return (option.selected ? index : -1); })\n .filter(function (index) { return index !== -1; });\n };\n var getSelectedIndex = function (searchKey) {\n return findIndex(options, function (option) {\n // eslint-disable-next-line eqeqeq\n if (searchKey != null) {\n return option.key === searchKey;\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n return !!option.selected || !!option.isSelected;\n }\n });\n };\n if ((selectedKeyPropToUse !== undefined || !oldOptions) &&\n (selectedKeyPropToUse !== oldSelectedKeyProp || didOptionsChange)) {\n setSelectedIndices(getSelectedIndexes());\n }\n }, [didOptionsChange, multiSelect, oldOptions, oldSelectedKeyProp, options, selectedKeyPropToUse]);\n return [selectedIndices, setSelectedIndices];\n}\nexport var DropdownBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var responsiveMode = useResponsiveMode(rootRef, props.responsiveMode);\n var _a = useSelectedItemsState(props), selectedIndices = _a[0], setSelectedIndices = _a[1];\n return (React.createElement(DropdownInternal, __assign({}, props, { responsiveMode: responsiveMode, hoisted: { rootRef: mergedRootRef, selectedIndices: selectedIndices, setSelectedIndices: setSelectedIndices } })));\n});\nDropdownBase.displayName = 'DropdownBase';\nvar DropdownInternal = /** @class */ (function (_super) {\n __extends(DropdownInternal, _super);\n function DropdownInternal(props) {\n var _this = _super.call(this, props) || this;\n _this._host = React.createRef();\n _this._focusZone = React.createRef();\n _this._dropDown = React.createRef();\n _this._scrollIdleDelay = 250 /* ms */;\n _this._sizePosCache = new DropdownSizePosCache();\n _this._requestAnimationFrame = safeRequestAnimationFrame(_this);\n /**\n * Close menu callout if it is open\n */\n _this.dismissMenu = function () {\n var isOpen = _this.state.isOpen;\n isOpen && _this.setState({ isOpen: false });\n };\n _this._onChange = function (event, options, index, checked, multiSelect) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n if (onChange || onChanged) {\n // for single-select, option passed in will always be selected.\n // for multi-select, flip the checked value\n var changedOpt = multiSelect ? __assign(__assign({}, options[index]), { selected: !checked }) : options[index];\n onChange && onChange(__assign(__assign({}, event), { target: _this._dropDown.current }), changedOpt, index);\n onChanged && onChanged(changedOpt, index);\n }\n };\n /** Get either props.placeholder (new name) or props.placeHolder (old name) */\n _this._getPlaceholder = function () {\n // eslint-disable-next-line deprecation/deprecation\n return _this.props.placeholder || _this.props.placeHolder;\n };\n /** Get text in dropdown input as a string */\n _this._getTitle = function (items, _unused) {\n var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n return items.map(function (i) { return i.text; }).join(multiSelectDelimiter);\n };\n /** Render text in dropdown input */\n _this._onRenderTitle = function (items) {\n return React.createElement(React.Fragment, null, _this._getTitle(items));\n };\n /** Render placeholder text in dropdown input */\n _this._onRenderPlaceholder = function (props) {\n if (!_this._getPlaceholder()) {\n return null;\n }\n return React.createElement(React.Fragment, null, _this._getPlaceholder());\n };\n /** Render Callout or Panel container and pass in list */\n _this._onRenderContainer = function (props) {\n var calloutProps = props.calloutProps, panelProps = props.panelProps;\n var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;\n var isSmall = responsiveMode <= ResponsiveMode.medium;\n var focusTrapZoneProps = { firstFocusableTarget: \"#\".concat(_this._listId, \"1\") };\n var panelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.panel\n : undefined;\n var calloutWidth = undefined;\n var calloutMinWidth = undefined;\n if (dropdownWidth === 'auto') {\n calloutMinWidth = _this._dropDown.current ? _this._dropDown.current.clientWidth : 0;\n }\n else {\n calloutWidth = dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0);\n }\n return isSmall ? (React.createElement(Panel, __assign({ closeButtonAriaLabel: \"Close\", focusTrapZoneProps: focusTrapZoneProps, hasCloseButton: true, isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: DirectionalHint.bottomLeftEdge, calloutWidth: calloutWidth, calloutMinWidth: calloutMinWidth }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned }), _this._renderFocusableList(props)));\n };\n /** Render Caret Down Icon */\n _this._onRenderCaretDown = function (props) {\n return React.createElement(Icon, { className: _this._classNames.caretDown, iconName: \"ChevronDown\", \"aria-hidden\": true });\n };\n /** Render List of items */\n _this._onRenderList = function (props) {\n var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;\n var queue = { items: [] };\n var renderedList = [];\n var emptyQueue = function () {\n var newGroup = queue.id\n ? [\n React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n ]\n : queue.items;\n renderedList = __spreadArray(__spreadArray([], renderedList, true), newGroup, true);\n // Flush items and id\n queue = { items: [] };\n };\n var placeRenderedOptionIntoQueue = function (item, index) {\n /*\n Case Header\n empty queue if it's not already empty\n ensure unique ID for header and set queue ID\n push header into queue\n Case Divider\n push divider into queue if not first item\n empty queue if not already empty\n Default\n push item into queue\n */\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Header:\n queue.items.length > 0 && emptyQueue();\n var id = _this._id + item.key;\n queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n queue.id = id;\n break;\n case SelectableOptionMenuItemType.Divider:\n index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n queue.items.length > 0 && emptyQueue();\n break;\n default:\n queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n }\n };\n // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n props.options.forEach(function (item, index) {\n placeRenderedOptionIntoQueue(item, index);\n });\n // Push remaining items into all renderedList\n queue.items.length > 0 && emptyQueue();\n return React.createElement(React.Fragment, null, renderedList);\n };\n _this._onRenderItem = function (item) {\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Divider:\n return _this._renderSeparator(item);\n case SelectableOptionMenuItemType.Header:\n return _this._renderHeader(item);\n default:\n return _this._renderOption(item);\n }\n };\n _this._renderOption = function (item) {\n var _a;\n var _b = _this.props, _c = _b.onRenderOption, onRenderOption = _c === void 0 ? _this._onRenderOption : _c, _d = _b.hoisted.selectedIndices, selectedIndices = _d === void 0 ? [] : _d;\n var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;\n // select the right className based on the combination of selected/disabled\n var itemClassName = item.hidden // predicate: item hidden\n ? _this._classNames.dropdownItemHidden\n : isItemSelected && item.disabled === true // predicate: both selected and disabled\n ? _this._classNames.dropdownItemSelectedAndDisabled\n : isItemSelected // predicate: selected only\n ? _this._classNames.dropdownItemSelected\n : item.disabled === true // predicate: disabled only\n ? _this._classNames.dropdownItemDisabled\n : _this._classNames.dropdownItem;\n var title = item.title;\n // define the id and label id (for multiselect checkboxes)\n var id = _this._listId + item.index;\n var labelId = (_a = item.id) !== null && _a !== void 0 ? _a : id + '-label';\n var multiSelectItemStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.multiSelectItem\n : undefined;\n return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id, key: item.key, \"data-index\": item.index, \"data-is-focusable\": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseEnter: _this._onItemMouseEnter.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseLeave: _this._onMouseItemLeave.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseMove: _this._onItemMouseMove.bind(_this, item), role: \"option\", \"aria-selected\": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title, \"aria-posinset\": _this._sizePosCache.positionInSet(item.index), \"aria-setsize\": _this._sizePosCache.optionSetSize }, onRenderOption(item, _this._onRenderOption))) : (React.createElement(Checkbox, { id: id, key: item.key, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: __assign({ 'aria-selected': isItemSelected, onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: 'option' }, {\n 'data-index': item.index,\n 'data-is-focusable': !(item.disabled || item.hidden),\n }), label: item.text, title: title, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderLabel: _this._onRenderItemLabel.bind(_this, __assign(__assign({}, item), { id: labelId })), className: css(itemClassName, 'is-multi-select'), checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: !item.hidden ? _this._sizePosCache.positionInSet(item.index) : undefined, ariaSetSize: !item.hidden ? _this._sizePosCache.optionSetSize : undefined, ariaLabel: item.ariaLabel, ariaLabelledBy: item.ariaLabel ? undefined : labelId }));\n };\n /** Render content of item (i.e. text/icon inside of button) */\n _this._onRenderOption = function (item) {\n return React.createElement(\"span\", { className: _this._classNames.dropdownOptionText }, item.text);\n };\n /*\n * Render content of a multiselect item label.\n * Text within the label is aria-hidden, to prevent duplicate input/label exposure\n */\n _this._onRenderMultiselectOption = function (item) {\n return (React.createElement(\"span\", { id: item.id, \"aria-hidden\": \"true\", className: _this._classNames.dropdownOptionText }, item.text));\n };\n /** Render custom label for multiselect checkbox items */\n _this._onRenderItemLabel = function (item) {\n var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderMultiselectOption : _a;\n return onRenderOption(item, _this._onRenderMultiselectOption);\n };\n _this._onPositioned = function (positions) {\n if (_this._focusZone.current) {\n // Focusing an element can trigger a reflow. Making this wait until there is an animation\n // frame can improve perf significantly.\n _this._requestAnimationFrame(function () {\n var selectedIndices = _this.props.hoisted.selectedIndices;\n if (_this._focusZone.current) {\n if (!_this._hasBeenPositioned &&\n selectedIndices &&\n selectedIndices[0] &&\n !_this.props.options[selectedIndices[0]].disabled) {\n var element = getDocument().getElementById(\"\".concat(_this._id, \"-list\").concat(selectedIndices[0]));\n if (element) {\n _this._focusZone.current.focusElement(element);\n }\n _this._hasBeenPositioned = true;\n }\n else {\n _this._focusZone.current.focus();\n }\n }\n });\n }\n if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {\n _this.setState({\n calloutRenderEdge: positions.targetEdge,\n });\n }\n };\n _this._onItemClick = function (item) {\n return function (event) {\n if (!item.disabled) {\n _this.setSelectedIndex(event, item.index);\n if (!_this.props.multiSelect) {\n // only close the callout when it's in single-select mode\n _this.setState({\n isOpen: false,\n });\n }\n }\n };\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = window.setTimeout(function () {\n _this._isScrollIdle = true;\n }, _this._scrollIdleDelay);\n };\n _this._onMouseItemLeave = function (item, ev) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (_this._host.current) {\n if (_this._host.current.setActive) {\n try {\n _this._host.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n _this._host.current.focus();\n }\n }\n };\n _this._onDismiss = function () {\n _this.setState({ isOpen: false });\n };\n _this._onDropdownBlur = function (ev) {\n // If Dropdown disabled do not proceed with this logic.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n if (_this.state.isOpen) {\n // Do not call onBlur or update focus state when the callout is opened\n return;\n }\n _this.setState({ hasFocus: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n };\n _this._onDropdownKeyDown = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var newIndex;\n var selectedIndex = _this.props.hoisted.selectedIndices.length ? _this.props.hoisted.selectedIndices[0] : -1;\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n var isOpen = _this.state.isOpen;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n case KeyCodes.escape:\n if (!isOpen) {\n return;\n }\n _this.setState({\n isOpen: false,\n });\n break;\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n if (isOpen) {\n _this.setState({ isOpen: false });\n break;\n }\n return;\n }\n if (_this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);\n }\n break;\n case KeyCodes.down:\n if (containsExpandCollapseModifier) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);\n }\n break;\n case KeyCodes.home:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);\n }\n break;\n case KeyCodes.end:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);\n }\n break;\n case KeyCodes.space:\n // event handled in _onDropdownKeyUp\n break;\n default:\n return;\n }\n if (newIndex !== selectedIndex) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n _this._onDropdownKeyUp = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n var isOpen = _this.state.isOpen;\n if (_this.props.onKeyUp) {\n _this.props.onKeyUp(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n default:\n if (shouldHandleKey && isOpen) {\n _this.setState({ isOpen: false });\n }\n return;\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyDown = function (ev) {\n var _a, _b;\n var elementToFocus;\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n _this.setState({ isOpen: false });\n }\n else {\n if (_this._host.current) {\n elementToFocus = getLastFocusable(_this._host.current, _this._host.current.lastChild, true);\n }\n }\n break;\n // All directional keystrokes should be canceled when the zone is rendered.\n // This avoids the body scroll from reacting and thus dismissing the dropdown.\n case KeyCodes.home:\n case KeyCodes.end:\n case KeyCodes.pageUp:\n case KeyCodes.pageDown:\n break;\n case KeyCodes.down:\n if (!containsExpandCollapseModifier && _this._host.current) {\n elementToFocus = getFirstFocusable(_this._host.current, _this._host.current.firstChild, true);\n }\n break;\n case KeyCodes.escape:\n _this.setState({ isOpen: false });\n break;\n case KeyCodes.tab:\n _this.setState({ isOpen: false });\n var document_1 = getDocument();\n if (document_1) {\n if (ev.shiftKey) {\n (_a = getPreviousElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = getNextElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }\n break;\n default:\n return;\n }\n if (elementToFocus) {\n elementToFocus.focus();\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyUp = function (ev) {\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n if (shouldHandleKey && _this.state.isOpen) {\n _this.setState({ isOpen: false });\n ev.preventDefault();\n }\n };\n _this._onDropdownClick = function (ev) {\n if (_this.props.onClick) {\n _this.props.onClick(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var isOpen = _this.state.isOpen;\n var disabled = _this._isDisabled();\n if (!disabled && !_this._shouldOpenOnFocus()) {\n _this.setState({\n isOpen: !isOpen,\n });\n }\n _this._isFocusedByClick = false; // reset\n };\n _this._onDropdownMouseDown = function () {\n _this._isFocusedByClick = true;\n };\n _this._onFocus = function (ev) {\n var disabled = _this._isDisabled();\n if (!disabled) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n var state = { hasFocus: true };\n if (_this._shouldOpenOnFocus()) {\n state.isOpen = true;\n }\n _this.setState(state);\n }\n };\n /**\n * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.\n * This helper method avoids all the repetition.\n */\n _this._isDisabled = function () {\n var disabled = _this.props.disabled;\n // eslint-disable-next-line deprecation/deprecation\n var isDisabled = _this.props.isDisabled;\n // Remove this deprecation workaround at 1.0.0\n if (disabled === undefined) {\n disabled = isDisabled;\n }\n return disabled;\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required, disabled = props.disabled;\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n return label ? (React.createElement(Label, { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;\n };\n initializeComponentRef(_this);\n var multiSelect = props.multiSelect, selectedKey = props.selectedKey, selectedKeys = props.selectedKeys, defaultSelectedKey = props.defaultSelectedKey, defaultSelectedKeys = props.defaultSelectedKeys, options = props.options;\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations(COMPONENT_NAME, props, {\n isDisabled: 'disabled',\n onChanged: 'onChange',\n placeHolder: 'placeholder',\n onRenderPlaceHolder: 'onRenderPlaceholder',\n });\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n defaultSelectedKey: 'selectedKey',\n defaultSelectedKeys: 'selectedKeys',\n selectedKeys: 'selectedKey',\n });\n if (multiSelect) {\n var warnMultiSelect = function (prop) {\n return warn(\"Dropdown property '\".concat(prop, \"' cannot be used when 'multiSelect' is true. Use '\").concat(prop, \"s' instead.\"));\n };\n if (selectedKey !== undefined) {\n warnMultiSelect('selectedKey');\n }\n if (defaultSelectedKey !== undefined) {\n warnMultiSelect('defaultSelectedKey');\n }\n }\n else {\n var warnNotMultiSelect = function (prop) {\n return warn(\"Dropdown property '\".concat(prop, \"s' cannot be used when 'multiSelect' is false/unset. Use '\").concat(prop, \"' instead.\"));\n };\n if (selectedKeys !== undefined) {\n warnNotMultiSelect('selectedKey');\n }\n if (defaultSelectedKeys !== undefined) {\n warnNotMultiSelect('defaultSelectedKey');\n }\n }\n }\n _this._id = props.id || getId('Dropdown');\n _this._labelId = _this._id + '-label';\n _this._listId = _this._id + '-list';\n _this._optionId = _this._id + '-option';\n _this._isScrollIdle = true;\n _this._hasBeenPositioned = false;\n _this._sizePosCache.updateOptions(options);\n _this.state = {\n isOpen: false,\n hasFocus: false,\n calloutRenderEdge: undefined,\n };\n return _this;\n }\n Object.defineProperty(DropdownInternal.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n var _a = this.props, options = _a.options, selectedIndices = _a.hoisted.selectedIndices;\n return getAllSelectedOptions(options, selectedIndices);\n },\n enumerable: false,\n configurable: true\n });\n DropdownInternal.prototype.componentWillUnmount = function () {\n clearTimeout(this._scrollIdleTimeoutId);\n };\n DropdownInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (prevState.isOpen === true && this.state.isOpen === false) {\n this._gotMouseMove = false;\n this._hasBeenPositioned = false;\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }\n };\n DropdownInternal.prototype.render = function () {\n var id = this._id;\n var props = this.props;\n var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, _a = props.onRenderTitle, onRenderTitle = _a === void 0 ? this._getTitle : _a, _b = props.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = props.onRenderCaretDown, onRenderCaretDown = _c === void 0 ? this._onRenderCaretDown : _c, _d = props.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = props.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, selectedIndices = props.hoisted.selectedIndices;\n var _f = this.state, isOpen = _f.isOpen, calloutRenderEdge = _f.calloutRenderEdge, hasFocus = _f.hasFocus;\n // eslint-disable-next-line deprecation/deprecation\n var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._getPlaceholder;\n // If our cached options are out of date update our cache\n if (options !== this._sizePosCache.cachedOptions) {\n this._sizePosCache.updateOptions(options);\n }\n var selectedOptions = getAllSelectedOptions(options, selectedIndices);\n var divProps = getNativeProps(props, divProperties);\n var disabled = this._isDisabled();\n var errorMessageId = id + '-errorMessage';\n this._classNames = getClassNames(propStyles, {\n theme: theme,\n className: className,\n hasError: !!(errorMessage && errorMessage.length > 0),\n hasLabel: !!label,\n isOpen: isOpen,\n required: required,\n disabled: disabled,\n isRenderingPlaceholder: !selectedOptions.length,\n panelClassName: panelProps ? panelProps.className : undefined,\n calloutClassName: calloutProps ? calloutProps.className : undefined,\n calloutRenderEdge: calloutRenderEdge,\n });\n var hasErrorMessage = !!errorMessage && errorMessage.length > 0;\n return (React.createElement(\"div\", { className: this._classNames.root, ref: this.props.hoisted.rootRef, \"aria-owns\": isOpen ? this._listId : undefined },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", __assign({ \"data-is-focusable\": !disabled, \"data-ktp-target\": true, ref: this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-expanded\": isOpen ? 'true' : 'false', \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? mergeAriaAttributeValues(this._labelId, this._optionId) : undefined, \"aria-describedby\": hasErrorMessage ? this._id + '-errorMessage' : undefined, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? this._listId : undefined }, divProps, { className: this._classNames.dropdown, onBlur: this._onDropdownBlur, onKeyDown: this._onDropdownKeyDown, onKeyUp: this._onDropdownKeyUp, onClick: this._onDropdownClick, onMouseDown: this._onDropdownMouseDown, onFocus: this._onFocus }),\n React.createElement(\"span\", { id: this._optionId, className: this._classNames.title, \"aria-live\": hasFocus ? 'polite' : undefined, \"aria-atomic\": hasFocus ? true : undefined, \"aria-invalid\": hasErrorMessage }, \n // If option is selected render title, otherwise render the placeholder text\n selectedOptions.length\n ? onRenderTitle(selectedOptions, this._onRenderTitle)\n : onRenderPlaceholder(props, this._onRenderPlaceholder)),\n React.createElement(\"span\", { className: this._classNames.caretDownWrapper }, onRenderCaretDown(props, this._onRenderCaretDown))),\n isOpen &&\n onRenderContainer(__assign(__assign({}, props), { onDismiss: this._onDismiss, onRenderItem: onRenderItem }), this._onRenderContainer),\n hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n };\n DropdownInternal.prototype.focus = function (shouldOpenOnFocus) {\n if (this._dropDown.current) {\n this._dropDown.current.focus();\n if (shouldOpenOnFocus) {\n this.setState({\n isOpen: true,\n });\n }\n }\n };\n DropdownInternal.prototype.setSelectedIndex = function (event, index) {\n var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect, _b = _a.hoisted.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;\n var newIndexes = [];\n index = Math.max(0, Math.min(options.length - 1, index));\n // If this is a controlled component then no state change should take place.\n if (selectedKey !== undefined || selectedKeys !== undefined) {\n this._onChange(event, options, index, checked, multiSelect);\n return;\n }\n if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {\n return;\n }\n else if (multiSelect) {\n newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];\n if (checked) {\n var position = newIndexes.indexOf(index);\n if (position > -1) {\n // unchecked the current one\n newIndexes.splice(position, 1);\n }\n }\n else {\n // add the new selected index into the existing one\n newIndexes.push(index);\n }\n }\n else {\n // Set the selected option if this is an uncontrolled component\n newIndexes = [index];\n }\n event.persist();\n // Call onChange after state is updated\n this.props.hoisted.setSelectedIndices(newIndexes);\n this._onChange(event, options, index, checked, multiSelect);\n };\n DropdownInternal.prototype._copyArray = function (array) {\n var newArray = [];\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n var element = array_1[_i];\n newArray.push(element);\n }\n return newArray;\n };\n /**\n * Finds the next valid Dropdown option and sets the selected index to it.\n * @param stepValue - Value of how many items the function should traverse. Should be -1 or 1.\n * @param index - Index of where the search should start\n * @param selectedIndex - The selectedIndex Dropdown's state\n * @returns The next valid dropdown option's index\n */\n DropdownInternal.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {\n var options = this.props.options;\n // Return selectedIndex if nothing has changed or options is empty\n if (selectedIndex === index || options.length === 0) {\n return selectedIndex;\n }\n // If the user is pressing the up or down key we want to make\n // sure that the dropdown cycles through the options without\n // causing the screen to scroll. In _onDropdownKeyDown\n // at the very end is a check to see if newIndex !== selectedIndex.\n // If the index is less than 0 and we set it back to 0, then\n // newIndex will equal selectedIndex and not stop the action\n // of the key press happening and vice versa for indexes greater\n // than or equal to the options length.\n if (index >= options.length) {\n index = 0;\n }\n else if (index < 0) {\n index = options.length - 1;\n }\n var stepCounter = 0;\n // If current index is a header or divider, or disabled, increment by step\n while (options[index].itemType === DropdownMenuItemType.Header ||\n options[index].itemType === DropdownMenuItemType.Divider ||\n options[index].disabled) {\n // If stepCounter exceeds length of options, then return selectedIndex (-1)\n if (stepCounter >= options.length) {\n return selectedIndex;\n }\n // If index + stepValue is out of bounds, wrap around\n if (index + stepValue < 0) {\n index = options.length;\n }\n else if (index + stepValue >= options.length) {\n index = -1;\n }\n index = index + stepValue;\n stepCounter++;\n }\n this.setSelectedIndex(event, index);\n return index;\n };\n /** Wrap item list in a FocusZone */\n DropdownInternal.prototype._renderFocusableList = function (props) {\n var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n return (React.createElement(\"div\", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },\n React.createElement(FocusZone, { ref: this._focusZone, direction: FocusZoneDirection.vertical, id: this._listId, className: this._classNames.dropdownItems, role: \"listbox\", \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? this._labelId : undefined, \"aria-multiselectable\": multiSelect }, onRenderList(props, this._onRenderList))));\n };\n DropdownInternal.prototype._renderSeparator = function (item) {\n var index = item.index, key = item.key;\n var separatorClassName = item.hidden ? this._classNames.dropdownDividerHidden : this._classNames.dropdownDivider;\n if (index > 0) {\n return React.createElement(\"div\", { role: \"presentation\", key: key, className: separatorClassName });\n }\n return null;\n };\n DropdownInternal.prototype._renderHeader = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;\n var key = item.key, id = item.id;\n var headerClassName = item.hidden\n ? this._classNames.dropdownItemHeaderHidden\n : this._classNames.dropdownItemHeader;\n return (React.createElement(\"div\", { id: id, key: key, className: headerClassName }, onRenderOption(item, this._onRenderOption)));\n };\n DropdownInternal.prototype._onItemMouseEnter = function (item, ev) {\n if (this._shouldIgnoreMouseEvent()) {\n return;\n }\n var targetElement = ev.currentTarget;\n targetElement.focus();\n };\n DropdownInternal.prototype._onItemMouseMove = function (item, ev) {\n var targetElement = ev.currentTarget;\n this._gotMouseMove = true;\n if (!this._isScrollIdle || document.activeElement === targetElement) {\n return;\n }\n targetElement.focus();\n };\n DropdownInternal.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n DropdownInternal.prototype._isAltOrMeta = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n DropdownInternal.prototype._shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);\n this._lastKeyDownWasAltOrMeta = false;\n return !!keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n };\n /**\n * Returns true if dropdown should set to open on focus.\n * Otherwise, isOpen state should be toggled on click\n */\n DropdownInternal.prototype._shouldOpenOnFocus = function () {\n var hasFocus = this.state.hasFocus;\n var openOnKeyboardFocus = this.props.openOnKeyboardFocus;\n return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;\n };\n DropdownInternal.defaultProps = {\n options: [],\n };\n return DropdownInternal;\n}(React.Component));\n//# sourceMappingURL=Dropdown.base.js.map","var _a, _b, _c, _d;\nimport { __assign, __spreadArray } from \"tslib\";\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { RectangleEdge } from '../../Positioning';\nimport { FontWeights, HighContrastSelector, getGlobalClassNames, normalize, HighContrastSelectorWhite, getScreenSelector, ScreenWidthMinMedium, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dropdown-container',\n label: 'ms-Dropdown-label',\n dropdown: 'ms-Dropdown',\n title: 'ms-Dropdown-title',\n caretDownWrapper: 'ms-Dropdown-caretDownWrapper',\n caretDown: 'ms-Dropdown-caretDown',\n callout: 'ms-Dropdown-callout',\n panel: 'ms-Dropdown-panel',\n dropdownItems: 'ms-Dropdown-items',\n dropdownItem: 'ms-Dropdown-item',\n dropdownDivider: 'ms-Dropdown-divider',\n dropdownOptionText: 'ms-Dropdown-optionText',\n dropdownItemHeader: 'ms-Dropdown-header',\n titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',\n titleHasError: 'ms-Dropdown-title--hasError',\n};\nvar DROPDOWN_HEIGHT = 32;\nvar DROPDOWN_ITEM_HEIGHT = 36;\nvar highContrastAdjustMixin = (_a = {},\n _a[\"\".concat(HighContrastSelector, \", \").concat(HighContrastSelectorWhite.replace('@media ', ''))] = __assign({}, getHighContrastNoAdjustStyle()),\n _a);\nvar highContrastItemAndTitleStateMixin = {\n selectors: __assign((_b = {}, _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n }, _b['.ms-Checkbox-checkbox'] = (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'HighlightText',\n },\n _c), _b), highContrastAdjustMixin),\n};\nvar highContrastBorderState = {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _d),\n};\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMinMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;\n if (!theme) {\n throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n }\n var globalClassnames = getGlobalClassNames(GlobalClassNames, theme);\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var rootHoverFocusActiveSelectorNeutralDarkMixin = {\n color: semanticColors.menuItemTextHovered,\n };\n var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {\n color: semanticColors.menuItemText,\n };\n var borderColorError = {\n borderColor: semanticColors.errorText,\n };\n var dropdownItemStyle = [\n globalClassnames.dropdownItem,\n {\n backgroundColor: 'transparent',\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '0 8px',\n width: '100%',\n minHeight: DROPDOWN_ITEM_HEIGHT,\n lineHeight: 20,\n height: 0,\n position: 'relative',\n border: '1px solid transparent',\n borderRadius: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n textAlign: 'left',\n '.ms-Button-flexContainer': {\n width: '100%',\n },\n },\n ];\n var dropdownHeaderStyle = [\n globalClassnames.dropdownItemHeader,\n __assign(__assign({}, fonts.medium), { fontWeight: FontWeights.semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left', selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a) }),\n ];\n var selectedItemBackgroundColor = semanticColors.menuItemBackgroundPressed;\n var itemSelectors = function (isSelected) {\n var _a, _b;\n if (isSelected === void 0) { isSelected = false; }\n return {\n selectors: (_a = {\n '&:hover': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor,\n },\n highContrastItemAndTitleStateMixin,\n ],\n '&.is-multi-select:hover': [\n { backgroundColor: !isSelected ? 'transparent' : selectedItemBackgroundColor },\n highContrastItemAndTitleStateMixin,\n ],\n '&:active:hover': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected\n ? semanticColors.menuItemBackgroundPressed\n : semanticColors.menuItemBackgroundHovered,\n },\n highContrastItemAndTitleStateMixin,\n ]\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus:after\")] = (_b = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n },\n _b[HighContrastSelector] = {\n inset: '2px',\n },\n _b),\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n };\n };\n var dropdownItemSelected = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n {\n backgroundColor: selectedItemBackgroundColor,\n color: semanticColors.menuItemTextHovered,\n },\n itemSelectors(true),\n highContrastItemAndTitleStateMixin,\n ], false);\n var dropdownItemDisabled = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n {\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n border: 'none',\n },\n _b),\n },\n ], false);\n var titleOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\")\n : \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2);\n var calloutOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2)\n : \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\");\n return {\n root: [globalClassnames.root, className],\n label: globalClassnames.label,\n dropdown: [\n globalClassnames.dropdown,\n normalize,\n fonts.medium,\n {\n color: semanticColors.menuItemText,\n borderColor: semanticColors.focusBorder,\n position: 'relative',\n outline: 0,\n userSelect: 'none',\n selectors: (_c = {},\n _c['&:hover .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: isOpen ? palette.neutralSecondary : palette.neutralPrimary },\n highContrastBorderState,\n ],\n _c['&:focus .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { selectors: (_d = {}, _d[HighContrastSelector] = { color: 'Highlight' }, _d) },\n ],\n _c['&:focus:after'] = [\n {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n boxSizing: 'border-box',\n top: '0px',\n left: '0px',\n width: '100%',\n height: '100%',\n // see https://github.com/microsoft/fluentui/pull/9182 for semantic color disc\n border: !disabled ? \"2px solid \".concat(palette.themePrimary) : 'none',\n borderRadius: '2px',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'Highlight',\n },\n _e),\n },\n ],\n _c['&:active .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: palette.themePrimary },\n highContrastBorderState,\n ],\n _c['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:focus .' + globalClassnames.caretDown] = [\n !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n { selectors: (_f = {}, _f[HighContrastSelector] = { color: 'Highlight' }, _f) },\n ],\n _c['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:hover .' + globalClassnames.titleHasError] = borderColorError,\n _c['&:active .' + globalClassnames.titleHasError] = borderColorError,\n _c),\n },\n isOpen && 'is-open',\n disabled && 'is-disabled',\n required && 'is-required',\n required &&\n !hasLabel && {\n selectors: (_g = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _g[HighContrastSelector] = {\n selectors: {\n ':after': {\n right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n },\n },\n },\n _g),\n },\n ],\n title: [\n globalClassnames.title,\n normalize,\n {\n backgroundColor: semanticColors.inputBackground,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: semanticColors.inputBorder,\n borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,\n cursor: 'pointer',\n display: 'block',\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n padding: \"0 28px 0 8px\",\n position: 'relative',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],\n hasError && [globalClassnames.titleHasError, borderColorError],\n disabled && {\n backgroundColor: semanticColors.disabledBackground,\n border: 'none',\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign({ border: '1px solid GrayText', color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n ],\n caretDownWrapper: [\n globalClassnames.caretDownWrapper,\n {\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n paddingTop: 1,\n position: 'absolute',\n right: 8,\n top: 0,\n },\n !disabled && {\n cursor: 'pointer',\n },\n ],\n caretDown: [\n globalClassnames.caretDown,\n { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },\n disabled && {\n color: semanticColors.disabledText,\n selectors: (_j = {},\n _j[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _j),\n },\n ],\n errorMessage: __assign(__assign({ color: semanticColors.errorText }, theme.fonts.small), { paddingTop: 5 }),\n callout: [\n globalClassnames.callout,\n {\n boxShadow: effects.elevation8,\n borderRadius: calloutOpenBorderRadius,\n selectors: (_k = {},\n _k['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },\n _k),\n },\n calloutClassName,\n ],\n dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },\n dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],\n dropdownItem: __spreadArray(__spreadArray([], dropdownItemStyle, true), [itemSelectors()], false),\n dropdownItemSelected: dropdownItemSelected,\n dropdownItemDisabled: dropdownItemDisabled,\n dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],\n dropdownItemHidden: __spreadArray(__spreadArray([], dropdownItemStyle, true), [{ display: 'none' }], false),\n dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],\n dropdownDividerHidden: [globalClassnames.dropdownDivider, { display: 'none' }],\n dropdownOptionText: [\n globalClassnames.dropdownOptionText,\n {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n minWidth: 0,\n maxWidth: '100%',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n margin: '1px',\n },\n ],\n dropdownItemHeader: dropdownHeaderStyle,\n dropdownItemHeaderHidden: __spreadArray(__spreadArray([], dropdownHeaderStyle, true), [{ display: 'none' }], false),\n subComponentStyles: {\n label: { root: { display: 'inline-block' } },\n multiSelectItem: {\n root: {\n padding: 0,\n },\n label: {\n alignSelf: 'stretch',\n padding: '0 8px',\n width: '100%',\n },\n input: {\n selectors: (_l = {},\n _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before\")] = {\n outlineOffset: '0px',\n },\n _l),\n },\n },\n panel: {\n root: [panelClassName],\n main: {\n selectors: (_m = {},\n // In case of extra small screen sizes\n _m[MinimumScreenSelector] = {\n // panelWidth xs\n width: 272,\n },\n _m),\n },\n contentInner: { padding: '0 0 20px' },\n },\n },\n };\n};\n//# sourceMappingURL=Dropdown.styles.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n var activeTimeouts;\n return function (cb) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function () {\n activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n },\n });\n }\n var timeoutId = requestAnimationFrame(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n });\n activeTimeouts.add(timeoutId);\n };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","import { styled } from '../../Utilities';\nimport { DropdownBase } from './Dropdown.base';\nimport { getStyles } from './Dropdown.styles';\nexport var Dropdown = styled(DropdownBase, getStyles, undefined, {\n scope: 'Dropdown',\n});\nDropdown.displayName = 'Dropdown';\n//# sourceMappingURL=Dropdown.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../Button/BaseButton.styles';\nexport var getStyles = memoizeFunction(function (theme, className, customStyles) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var customButtonStyles = concatStyleSets(baseButtonStyles, customStyles);\n return __assign(__assign({}, customButtonStyles), { root: [baseButtonStyles.root, className, theme.fonts.medium, customStyles && customStyles.root] });\n});\n//# sourceMappingURL=FacepileButton.styles.js.map","import { __assign, __decorate, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../../Button';\nimport { customizable, nullRender } from '../../Utilities';\nimport { getStyles } from './FacepileButton.styles';\nvar FacepileButton = /** @class */ (function (_super) {\n __extends(FacepileButton, _super);\n function FacepileButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FacepileButton.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, rest = __rest(_a, [\"className\", \"styles\"]);\n var customStyles = getStyles(this.props.theme, className, styles);\n return (React.createElement(BaseButton, __assign({}, rest, { variantClassName: \"ms-Button--facepile\", styles: customStyles, onRenderDescription: nullRender })));\n };\n FacepileButton = __decorate([\n customizable('FacepileButton', ['theme', 'styles'], true)\n ], FacepileButton);\n return FacepileButton;\n}(React.Component));\nexport { FacepileButton };\n//# sourceMappingURL=FacepileButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, classNamesFunction, getId, getNativeProps, initializeComponentRef } from '../../Utilities';\nimport { OverflowButtonType } from './Facepile.types';\nimport { FacepileButton } from './FacepileButton';\nimport { Icon } from '../../Icon';\nimport { Persona } from '../../Persona';\nimport { PersonaCoin, PersonaSize, PersonaInitialsColor } from '../../PersonaCoin';\nvar getClassNames = classNamesFunction();\n/**\n * FacePile with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Component-Styling)\n */\nvar FacepileBase = /** @class */ (function (_super) {\n __extends(FacepileBase, _super);\n function FacepileBase(props) {\n var _this = _super.call(this, props) || this;\n _this._classNames = getClassNames(_this.props.styles, {\n theme: _this.props.theme,\n className: _this.props.className,\n });\n _this._getPersonaControl = function (persona) {\n var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n var personaStyles = {\n details: {\n flex: '1 0 auto',\n },\n };\n return (React.createElement(Persona, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null), { styles: personaStyles })));\n };\n _this._getPersonaCoinControl = function (persona) {\n var _a = _this.props, getPersonaProps = _a.getPersonaProps, personaSize = _a.personaSize;\n return (React.createElement(PersonaCoin, __assign({ imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, allowPhoneInitials: persona.allowPhoneInitials, text: persona.personaName, size: personaSize }, (getPersonaProps ? getPersonaProps(persona) : null))));\n };\n initializeComponentRef(_this);\n _this._ariaDescriptionId = getId();\n return _this;\n }\n FacepileBase.prototype.render = function () {\n var overflowButtonProps = this.props.overflowButtonProps;\n var _a = this.props, chevronButtonProps = _a.chevronButtonProps, // eslint-disable-line deprecation/deprecation\n maxDisplayablePersonas = _a.maxDisplayablePersonas, personas = _a.personas, overflowPersonas = _a.overflowPersonas, showAddButton = _a.showAddButton, ariaLabel = _a.ariaLabel, _b = _a.showTooltip, showTooltip = _b === void 0 ? true : _b;\n var _classNames = this._classNames;\n // Add a check to make sure maxDisplayalePersonas is defined to cover the edge case of it being 0.\n var numPersonasToShow = typeof maxDisplayablePersonas === 'number' ? Math.min(personas.length, maxDisplayablePersonas) : personas.length;\n // Added for deprecating chevronButtonProps. Can remove after v1.0\n if (chevronButtonProps && !overflowButtonProps) {\n overflowButtonProps = chevronButtonProps;\n }\n var hasOverflowPersonas = overflowPersonas && overflowPersonas.length > 0;\n var personasPrimary = hasOverflowPersonas ? personas : personas.slice(0, numPersonasToShow);\n var personasOverflow = (hasOverflowPersonas ? overflowPersonas : personas.slice(numPersonasToShow)) || [];\n return (React.createElement(\"div\", { className: _classNames.root },\n this.onRenderAriaDescription(),\n React.createElement(\"div\", { className: _classNames.itemContainer },\n showAddButton ? this._getAddNewElement() : null,\n React.createElement(\"ul\", { className: _classNames.members, \"aria-label\": ariaLabel }, this._onRenderVisiblePersonas(personasPrimary, personasOverflow.length === 0 && personas.length === 1, showTooltip)),\n overflowButtonProps ? this._getOverflowElement(personasOverflow) : null)));\n };\n FacepileBase.prototype.onRenderAriaDescription = function () {\n var ariaDescription = this.props.ariaDescription;\n var _classNames = this._classNames;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return (ariaDescription && (React.createElement(\"span\", { className: _classNames.screenReaderOnly, id: this._ariaDescriptionId }, ariaDescription)));\n };\n FacepileBase.prototype._onRenderVisiblePersonas = function (personas, singlePersona, showTooltip) {\n var _this = this;\n var _a = this.props, _b = _a.onRenderPersona, onRenderPersona = _b === void 0 ? this._getPersonaControl : _b, _c = _a.onRenderPersonaCoin, onRenderPersonaCoin = _c === void 0 ? this._getPersonaCoinControl : _c, onRenderPersonaWrapper = _a.onRenderPersonaWrapper;\n return personas.map(function (persona, index) {\n var personaControl = singlePersona\n ? onRenderPersona(persona, _this._getPersonaControl)\n : onRenderPersonaCoin(persona, _this._getPersonaCoinControl);\n var defaultPersonaRender = persona.onClick\n ? function () { return _this._getElementWithOnClickEvent(personaControl, persona, showTooltip, index); }\n : function () { return _this._getElementWithoutOnClickEvent(personaControl, persona, showTooltip, index); };\n return (React.createElement(\"li\", { key: \"\".concat(singlePersona ? 'persona' : 'personaCoin', \"-\").concat(index), className: _this._classNames.member }, onRenderPersonaWrapper ? onRenderPersonaWrapper(persona, defaultPersonaRender) : defaultPersonaRender()));\n });\n };\n FacepileBase.prototype._getElementWithOnClickEvent = function (personaControl, persona, showTooltip, index) {\n var keytipProps = persona.keytipProps;\n return (React.createElement(FacepileButton, __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index), { keytipProps: keytipProps, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: this._onPersonaClick.bind(this, persona) }), personaControl));\n };\n FacepileBase.prototype._getElementWithoutOnClickEvent = function (personaControl, persona, showTooltip, index) {\n return (React.createElement(\"div\", __assign({}, getNativeProps(persona, buttonProperties), this._getElementProps(persona, showTooltip, index)), personaControl));\n };\n FacepileBase.prototype._getElementProps = function (persona, showTooltip, index) {\n var _classNames = this._classNames;\n return {\n key: (persona.imageUrl ? 'i' : '') + index,\n 'data-is-focusable': true,\n className: _classNames.itemButton,\n title: showTooltip ? persona.personaName : undefined,\n onMouseMove: this._onPersonaMouseMove.bind(this, persona),\n onMouseOut: this._onPersonaMouseOut.bind(this, persona),\n };\n };\n FacepileBase.prototype._getOverflowElement = function (personasOverflow) {\n switch (this.props.overflowButtonType) {\n case OverflowButtonType.descriptive:\n return this._getDescriptiveOverflowElement(personasOverflow);\n case OverflowButtonType.downArrow:\n return this._getIconElement('ChevronDown');\n case OverflowButtonType.more:\n return this._getIconElement('More');\n default:\n return null;\n }\n };\n FacepileBase.prototype._getDescriptiveOverflowElement = function (personasOverflow) {\n var personaSize = this.props.personaSize;\n if (!personasOverflow || personasOverflow.length < 1) {\n return null;\n }\n var personaNames = personasOverflow.map(function (p) { return p.personaName; }).join(', ');\n var overflowButtonProps = __assign({ title: personaNames }, this.props.overflowButtonProps);\n var numPersonasNotPictured = Math.max(personasOverflow.length, 0);\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { ariaDescription: overflowButtonProps.title, className: _classNames.descriptiveOverflowButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitialsNotPictured(numPersonasNotPictured), initialsColor: PersonaInitialsColor.transparent })));\n };\n FacepileBase.prototype._getIconElement = function (icon) {\n var _a = this.props, overflowButtonProps = _a.overflowButtonProps, personaSize = _a.personaSize;\n var overflowInitialsIcon = true;\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, overflowButtonProps, { className: _classNames.overflowButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials(icon, overflowInitialsIcon), initialsColor: PersonaInitialsColor.transparent })));\n };\n FacepileBase.prototype._getAddNewElement = function () {\n var _a = this.props, addButtonProps = _a.addButtonProps, personaSize = _a.personaSize;\n var _classNames = this._classNames;\n return (React.createElement(FacepileButton, __assign({}, addButtonProps, { className: _classNames.addButton }),\n React.createElement(PersonaCoin, { size: personaSize, onRenderInitials: this._renderInitials('AddFriend') })));\n };\n FacepileBase.prototype._onPersonaClick = function (persona, ev) {\n persona.onClick(ev, persona);\n ev.preventDefault();\n ev.stopPropagation();\n };\n FacepileBase.prototype._onPersonaMouseMove = function (persona, ev) {\n if (persona.onMouseMove) {\n persona.onMouseMove(ev, persona);\n }\n };\n FacepileBase.prototype._onPersonaMouseOut = function (persona, ev) {\n if (persona.onMouseOut) {\n persona.onMouseOut(ev, persona);\n }\n };\n FacepileBase.prototype._renderInitials = function (iconName, overflowButton) {\n var _classNames = this._classNames;\n return function () {\n return React.createElement(Icon, { iconName: iconName, className: overflowButton ? _classNames.overflowInitialsIcon : '' });\n };\n };\n FacepileBase.prototype._renderInitialsNotPictured = function (numPersonasNotPictured) {\n var _classNames = this._classNames;\n return function () {\n return (React.createElement(\"span\", { className: _classNames.overflowInitialsIcon }, numPersonasNotPictured < 100 ? '+' + numPersonasNotPictured : '99+'));\n };\n };\n FacepileBase.defaultProps = {\n maxDisplayablePersonas: 5,\n personas: [],\n overflowPersonas: [],\n personaSize: PersonaSize.size32,\n };\n return FacepileBase;\n}(React.Component));\nexport { FacepileBase };\n//# sourceMappingURL=Facepile.base.js.map","import { hiddenContentStyle, HighContrastSelector, getFocusStyle, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Facepile',\n addButton: 'ms-Facepile-addButton ms-Facepile-itemButton',\n descriptiveOverflowButton: 'ms-Facepile-descriptiveOverflowButton ms-Facepile-itemButton',\n itemButton: 'ms-Facepile-itemButton ms-Facepile-person',\n itemContainer: 'ms-Facepile-itemContainer',\n members: 'ms-Facepile-members',\n member: 'ms-Facepile-member',\n overflowButton: 'ms-Facepile-overflowButton ms-Facepile-itemButton',\n};\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, _b = props.spacingAroundItemButton, spacingAroundItemButton = _b === void 0 ? 2 : _b;\n var palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ItemButtonStyles = {\n textAlign: 'center',\n padding: 0,\n borderRadius: '50%',\n verticalAlign: 'top',\n display: 'inline',\n backgroundColor: 'transparent',\n border: 'none',\n selectors: {\n '&::-moz-focus-inner': {\n padding: 0,\n border: 0,\n },\n },\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n width: 'auto',\n },\n className,\n ],\n addButton: [\n classNames.addButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.medium.fontSize,\n color: palette.white,\n backgroundColor: palette.themePrimary,\n marginRight: spacingAroundItemButton * 2 + 'px',\n selectors: {\n '&:hover': {\n backgroundColor: palette.themeDark,\n },\n '&:focus': {\n backgroundColor: palette.themeDark,\n },\n '&:active': {\n backgroundColor: palette.themeDarker,\n },\n '&:disabled': {\n backgroundColor: palette.neutralTertiaryAlt,\n },\n },\n },\n ],\n descriptiveOverflowButton: [\n classNames.descriptiveOverflowButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.small.fontSize,\n color: palette.neutralSecondary,\n backgroundColor: palette.neutralLighter,\n marginLeft: \"\".concat(spacingAroundItemButton * 2, \"px\"),\n },\n ],\n itemButton: [classNames.itemButton, ItemButtonStyles],\n itemContainer: [\n classNames.itemContainer,\n {\n display: 'flex',\n },\n ],\n members: [\n classNames.members,\n {\n display: 'flex',\n overflow: 'hidden',\n listStyleType: 'none',\n padding: 0,\n margin: \"-\".concat(spacingAroundItemButton, \"px\"),\n },\n ],\n member: [\n classNames.member,\n {\n display: 'inline-flex',\n flex: '0 0 auto',\n margin: \"\".concat(spacingAroundItemButton, \"px\"),\n },\n ],\n overflowButton: [\n classNames.overflowButton,\n getFocusStyle(theme, { inset: -1 }),\n ItemButtonStyles,\n {\n fontSize: fonts.medium.fontSize,\n color: palette.neutralSecondary,\n backgroundColor: palette.neutralLighter,\n marginLeft: \"\".concat(spacingAroundItemButton * 2, \"px\"),\n },\n ],\n overflowInitialsIcon: [\n {\n color: palette.neutralPrimary,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'WindowText',\n },\n _a),\n },\n ],\n screenReaderOnly: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Facepile.styles.js.map","import { styled } from '../../Utilities';\nimport { FacepileBase } from './Facepile.base';\nimport { styles } from './Facepile.styles';\n/**\n * The Facepile shows a list of faces or initials in a horizontal lockup. Each circle represents a person.\n */\nexport var Facepile = styled(FacepileBase, styles, undefined, {\n scope: 'Facepile',\n});\n//# sourceMappingURL=Facepile.js.map","/**\n * {@docCategory Facepile}\n */\nexport var OverflowButtonType;\n(function (OverflowButtonType) {\n /** No overflow */\n OverflowButtonType[OverflowButtonType[\"none\"] = 0] = \"none\";\n /** +1 overflow icon */\n OverflowButtonType[OverflowButtonType[\"descriptive\"] = 1] = \"descriptive\";\n /** More overflow icon */\n OverflowButtonType[OverflowButtonType[\"more\"] = 2] = \"more\";\n /** Chevron overflow icon */\n OverflowButtonType[OverflowButtonType[\"downArrow\"] = 3] = \"downArrow\";\n})(OverflowButtonType || (OverflowButtonType = {}));\n//# sourceMappingURL=Facepile.types.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n disabled: false,\n disableFirstFocus: false,\n forceFocusInsideTrap: true,\n isClickableOutsideFocusTrap: false,\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n React.useImperativeHandle(componentRef, function () { return ({\n get previouslyFocusedElement() {\n return previouslyFocusedElement;\n },\n focus: focusFTZ,\n }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a;\n var root = React.useRef(null);\n var firstBumper = React.useRef(null);\n var lastBumper = React.useRef(null);\n var mergedRootRef = useMergedRefs(root, ref);\n var doc = useDocument();\n var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var internalState = useConst({\n hasFocus: false,\n focusStackId: useId('ftz-', props.id),\n });\n var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n 'data-is-focus-trap-zone-bumper': true,\n };\n var focusElementAsync = React.useCallback(function (element) {\n if (element !== firstBumper.current && element !== lastBumper.current) {\n focusAsync(element);\n }\n }, []);\n /**\n * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n * useEventCallback always returns the same callback reference but updates the implementation\n * every render to avoid stale captured values.\n */\n var focusFTZ = useEventCallback(function () {\n if (!root.current) {\n return; // not done mounting\n }\n var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n if (focusPreviouslyFocusedInnerElement &&\n previouslyFocusedElementInTrapZone &&\n elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n focusElementAsync(previouslyFocusedElementInTrapZone);\n return;\n }\n var firstFocusableChild = null;\n if (typeof firstFocusableTarget === 'string') {\n firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n firstFocusableChild = firstFocusableTarget(root.current);\n }\n else if (firstFocusableSelector) {\n var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n firstFocusableChild = root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!firstFocusableChild) {\n firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true);\n }\n if (firstFocusableChild) {\n focusElementAsync(firstFocusableChild);\n }\n });\n /** Used in root div focus/blur handlers */\n var focusBumper = function (isFirstBumper) {\n if (disabled || !root.current) {\n return;\n }\n var nextFocusable = isFirstBumper === internalState.hasFocus\n ? getLastTabbable(root.current, lastBumper.current, true, false)\n : getFirstTabbable(root.current, firstBumper.current, true, false);\n if (nextFocusable) {\n if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n // This can happen when FTZ contains no tabbable elements.\n // focusFTZ() will take care of finding a focusable element in FTZ.\n focusFTZ();\n }\n else {\n nextFocusable.focus();\n }\n }\n };\n /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n var onRootBlurCapture = function (ev) {\n var _a;\n (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the root\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = doc.activeElement;\n }\n if (!elementContains(root.current, relatedTarget)) {\n internalState.hasFocus = false;\n }\n };\n /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n var onRootFocusCapture = function (ev) {\n var _a;\n (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n if (ev.target === firstBumper.current) {\n focusBumper(true);\n }\n else if (ev.target === lastBumper.current) {\n focusBumper(false);\n }\n internalState.hasFocus = true;\n if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n internalState.previouslyFocusedElementInTrapZone = ev.target;\n }\n };\n /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n if (!doc) {\n return;\n }\n var activeElement = doc.activeElement;\n if (!disableRestoreFocus &&\n typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n (elementContains(root.current, activeElement) || activeElement === doc.body)) {\n focusElementAsync(elementToFocusOnDismiss);\n }\n });\n /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n // be sure to use the latest values here\n if (disabled) {\n return;\n }\n if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n var targetElement = ev.target;\n if (targetElement && !elementContains(root.current, targetElement)) {\n if (doc && doc.activeElement === doc.body) {\n setTimeout(function () {\n if (doc && doc.activeElement === doc.body) {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n }, 0);\n }\n else {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n });\n // Update window event handlers when relevant props change\n React.useEffect(function () {\n var disposables = [];\n if (forceFocusInsideTrap) {\n disposables.push(on(window, 'focus', forceFocusOrClickInTrap, true));\n }\n if (!isClickableOutsideFocusTrap) {\n disposables.push(on(window, 'click', forceFocusOrClickInTrap, true));\n }\n return function () {\n disposables.forEach(function (dispose) { return dispose(); });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, isClickableOutsideFocusTrap]);\n // On prop change or first render, focus the FTZ and update focusStack if appropriate\n React.useEffect(function () {\n // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n // is false, though it's debatable whether it should do this)\n if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n return;\n }\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n FocusTrapZone.focusStack.push(internalState.focusStackId);\n var elementToFocusOnDismiss = props.elementToFocusOnDismiss || doc.activeElement;\n if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n focusFTZ();\n }\n // To match existing behavior, always return focus on cleanup (even if we didn't handle\n // initial focus), but it's debatable whether that's correct\n return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, disabled]);\n // Handle modalization separately from first focus\n React.useEffect(function () {\n if (!disabled && enableAriaHiddenSiblings) {\n var unmodalize = modalize(root.current);\n return unmodalize;\n }\n }, [disabled, enableAriaHiddenSiblings, root]);\n // Cleanup lifecyle method for internalState.\n useUnmount(function () {\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete internalState.previouslyFocusedElementInTrapZone;\n });\n useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { getGlobalClassNames, getFocusStyle, AnimationVariables, FontWeights, IconFontSizes } from '../../Styling';\nimport { getRTL, IsFocusVisibleClassName } from '../../Utilities';\nimport { DEFAULT_CELL_STYLE_PROPS } from '../DetailsList/DetailsRow.styles';\nimport { CHECK_CELL_WIDTH } from '../DetailsList/DetailsRowCheck.styles';\n// For every group level there is a GroupSpacer added. Importing this const to have the source value in one place.\nimport { SPACER_WIDTH as EXPAND_BUTTON_WIDTH } from './GroupSpacer';\nvar GlobalClassNames = {\n root: 'ms-GroupHeader',\n compact: 'ms-GroupHeader--compact',\n check: 'ms-GroupHeader-check',\n dropIcon: 'ms-GroupHeader-dropIcon',\n expand: 'ms-GroupHeader-expand',\n isCollapsed: 'is-collapsed',\n title: 'ms-GroupHeader-title',\n isSelected: 'is-selected',\n iconTag: 'ms-Icon--Tag',\n group: 'ms-GroupedList-group',\n isDropping: 'is-dropping',\n};\nvar beziers = {\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n};\nvar DEFAULT_GROUP_HEADER_HEIGHT = 48;\nvar COMPACT_GROUP_HEADER_HEIGHT = 40;\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, className = props.className, selected = props.selected, isCollapsed = props.isCollapsed, compact = props.compact;\n // padding from the source to align GroupHeader title with DetailsRow's first cell.\n var cellLeftPadding = DEFAULT_CELL_STYLE_PROPS.cellLeftPadding;\n var finalRowHeight = compact ? COMPACT_GROUP_HEADER_HEIGHT : DEFAULT_GROUP_HEADER_HEIGHT;\n var semanticColors = theme.semanticColors, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var checkExpandResetStyles = [\n getFocusStyle(theme),\n {\n cursor: 'default',\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0, // cancel default <button> padding\n },\n ];\n return {\n root: [\n classNames.root,\n getFocusStyle(theme),\n theme.fonts.medium,\n {\n // keep the border for height but color it so it's invisible.\n borderBottom: \"1px solid \".concat(semanticColors.listBackground),\n cursor: 'default',\n userSelect: 'none',\n selectors: (_a = {\n ':hover': {\n background: semanticColors.listItemBackgroundHovered,\n color: semanticColors.actionLinkHovered,\n }\n },\n _a[\"&:hover .\".concat(classNames.check)] = {\n opacity: 1,\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus .\").concat(classNames.check)] = {\n opacity: 1,\n },\n _a[\":global(.\".concat(classNames.group, \".\").concat(classNames.isDropping, \")\")] = {\n selectors: (_b = {},\n _b[\"& > .\".concat(classNames.root, \" .\").concat(classNames.dropIcon)] = {\n transition: \"transform \".concat(AnimationVariables.durationValue4, \" \").concat(beziers.easeOutCirc, \" \") +\n \"opacity \".concat(AnimationVariables.durationValue1, \" \").concat(beziers.easeOutSine),\n transitionDelay: AnimationVariables.durationValue3,\n opacity: 1,\n transform: \"rotate(0.2deg) scale(1);\", // rotation prevents jittery motion in IE\n },\n _b[\".\".concat(classNames.check)] = {\n opacity: 0,\n },\n _b),\n },\n _a),\n },\n selected && [\n classNames.isSelected,\n {\n background: semanticColors.listItemBackgroundChecked,\n selectors: (_c = {\n ':hover': {\n background: semanticColors.listItemBackgroundCheckedHovered,\n }\n },\n _c[\"\".concat(classNames.check)] = {\n opacity: 1,\n },\n _c),\n },\n ],\n compact && [classNames.compact, { border: 'none' }],\n className,\n ],\n groupHeaderContainer: [\n {\n display: 'flex',\n alignItems: 'center',\n height: finalRowHeight,\n },\n ],\n headerCount: [\n {\n padding: '0px 4px',\n },\n ],\n check: [\n classNames.check,\n checkExpandResetStyles,\n {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n // paddingTop and marginTop brought from the DetailsRow.styles.ts with explanation below.\n // Ensure that the check cell covers the top border of the cell.\n // This ensures the click target does not leave a spot which would\n // cause other items to be deselected.\n paddingTop: 1,\n marginTop: -1,\n opacity: 0,\n width: CHECK_CELL_WIDTH,\n height: finalRowHeight,\n selectors: (_d = {},\n _d[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n opacity: 1,\n },\n _d),\n },\n ],\n expand: [\n classNames.expand,\n checkExpandResetStyles,\n {\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: fonts.small.fontSize,\n width: EXPAND_BUTTON_WIDTH,\n height: finalRowHeight,\n color: selected ? palette.neutralPrimary : palette.neutralSecondary,\n selectors: {\n ':hover': {\n backgroundColor: selected ? palette.neutralQuaternary : palette.neutralLight,\n },\n ':active': {\n backgroundColor: selected ? palette.neutralTertiaryAlt : palette.neutralQuaternaryAlt,\n },\n },\n },\n ],\n expandIsCollapsed: [\n isCollapsed\n ? [\n classNames.isCollapsed,\n {\n transform: 'rotate(0deg)',\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n ]\n : {\n transform: getRTL(theme) ? 'rotate(-90deg)' : 'rotate(90deg)',\n transformOrigin: '50% 50%',\n transition: 'transform .1s linear',\n },\n ],\n title: [\n classNames.title,\n {\n paddingLeft: cellLeftPadding,\n fontSize: compact ? fonts.medium.fontSize : fonts.mediumPlus.fontSize,\n fontWeight: isCollapsed ? FontWeights.regular : FontWeights.semibold,\n cursor: 'pointer',\n outline: 0,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n ],\n dropIcon: [\n classNames.dropIcon,\n {\n position: 'absolute',\n left: -26,\n fontSize: IconFontSizes.large,\n color: palette.neutralSecondary,\n transition: \"transform \".concat(AnimationVariables.durationValue2, \" \").concat(beziers.easeInBack, \", \") +\n \"opacity \".concat(AnimationVariables.durationValue4, \" \").concat(beziers.easeOutSine),\n opacity: 0,\n transform: 'rotate(0.2deg) scale(0.65)',\n transformOrigin: '10px 10px',\n selectors: (_e = {},\n _e[\":global(.\".concat(classNames.iconTag, \")\")] = {\n position: 'absolute',\n },\n _e),\n },\n ],\n };\n};\n//# sourceMappingURL=GroupHeader.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { composeRenderFunction, classNamesFunction, getId, getRTL, getRTLSafeKeyCode, KeyCodes } from '../../Utilities';\nimport { SelectionMode } from '../../Selection';\nimport { Check } from '../../Check';\nimport { Icon } from '../../Icon';\nimport { GroupSpacer } from './GroupSpacer';\nimport { Spinner } from '../../Spinner';\nimport { CHECK_CELL_WIDTH } from '../DetailsList/DetailsRowCheck.styles';\nvar getClassNames = classNamesFunction();\nvar GroupHeaderBase = /** @class */ (function (_super) {\n __extends(GroupHeaderBase, _super);\n function GroupHeaderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._toggleCollapse = function () {\n var _a = _this.props, group = _a.group, onToggleCollapse = _a.onToggleCollapse, isGroupLoading = _a.isGroupLoading;\n var isCollapsed = _this.state.isCollapsed;\n var newCollapsed = !isCollapsed;\n var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(group);\n _this.setState({\n isCollapsed: newCollapsed,\n isLoadingVisible: newLoadingVisible,\n });\n if (onToggleCollapse) {\n onToggleCollapse(group);\n }\n };\n _this._onKeyUp = function (ev) {\n var _a = _this.props, group = _a.group, onGroupHeaderKeyUp = _a.onGroupHeaderKeyUp;\n if (onGroupHeaderKeyUp) {\n onGroupHeaderKeyUp(ev, group);\n }\n if (!ev.defaultPrevented) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldOpen = _this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.right, _this.props.theme);\n // eslint-disable-next-line deprecation/deprecation\n var shouldClose = !_this.state.isCollapsed && ev.which === getRTLSafeKeyCode(KeyCodes.left, _this.props.theme);\n if (shouldClose || shouldOpen) {\n _this._toggleCollapse();\n ev.stopPropagation();\n ev.preventDefault();\n }\n }\n };\n _this._onToggleClick = function (ev) {\n _this._toggleCollapse();\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onHeaderClick = function () {\n var _a = _this.props, group = _a.group, onGroupHeaderClick = _a.onGroupHeaderClick;\n if (onGroupHeaderClick) {\n onGroupHeaderClick(group);\n }\n };\n _this._onRenderTitle = function (props) {\n var group = props.group;\n if (!group) {\n return null;\n }\n var onRenderName = props.onRenderName\n ? composeRenderFunction(props.onRenderName, _this._onRenderName)\n : _this._onRenderName;\n return (React.createElement(\"div\", { className: _this._classNames.title, id: _this._id, onClick: _this._onHeaderClick, role: \"gridcell\", \"aria-colspan\": _this.props.ariaColSpan, \"data-selection-invoke\": true }, onRenderName(props)));\n };\n _this._onRenderName = function (props) {\n var group = props.group;\n if (!group) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", null, group.name),\n React.createElement(\"span\", { className: _this._classNames.headerCount },\n \"(\",\n group.count,\n group.hasMoreData && '+',\n \")\")));\n };\n _this._id = getId('GroupHeader');\n _this.state = {\n isCollapsed: (_this.props.group && _this.props.group.isCollapsed),\n isLoadingVisible: false,\n };\n return _this;\n }\n GroupHeaderBase.getDerivedStateFromProps = function (nextProps, previousState) {\n if (nextProps.group) {\n var newCollapsed = nextProps.group.isCollapsed;\n var isGroupLoading = nextProps.isGroupLoading;\n var newLoadingVisible = !newCollapsed && isGroupLoading && isGroupLoading(nextProps.group);\n return __assign(__assign({}, previousState), { isCollapsed: newCollapsed || false, isLoadingVisible: newLoadingVisible || false });\n }\n return previousState;\n };\n GroupHeaderBase.prototype.render = function () {\n var _a = this.props, group = _a.group, _b = _a.groupLevel, groupLevel = _b === void 0 ? 0 : _b, viewport = _a.viewport, selectionMode = _a.selectionMode, loadingText = _a.loadingText, \n // eslint-disable-next-line deprecation/deprecation\n _c = _a.isSelected, \n // eslint-disable-next-line deprecation/deprecation\n isSelected = _c === void 0 ? false : _c, _d = _a.selected, selected = _d === void 0 ? false : _d, indentWidth = _a.indentWidth, onRenderGroupHeaderCheckbox = _a.onRenderGroupHeaderCheckbox, _e = _a.isCollapsedGroupSelectVisible, isCollapsedGroupSelectVisible = _e === void 0 ? true : _e, expandButtonProps = _a.expandButtonProps, expandButtonIcon = _a.expandButtonIcon, selectAllButtonProps = _a.selectAllButtonProps, theme = _a.theme, styles = _a.styles, className = _a.className, compact = _a.compact, ariaLevel = _a.ariaLevel, ariaPosInSet = _a.ariaPosInSet, ariaSetSize = _a.ariaSetSize, ariaRowIndex = _a.ariaRowIndex, useFastIcons = _a.useFastIcons;\n var onRenderTitle = this.props.onRenderTitle\n ? composeRenderFunction(this.props.onRenderTitle, this._onRenderTitle)\n : this._onRenderTitle;\n var defaultCheckboxRender = useFastIcons ? this._fastDefaultCheckboxRender : this._defaultCheckboxRender;\n var onRenderCheckbox = onRenderGroupHeaderCheckbox\n ? composeRenderFunction(onRenderGroupHeaderCheckbox, defaultCheckboxRender)\n : defaultCheckboxRender;\n var _f = this.state, isCollapsed = _f.isCollapsed, isLoadingVisible = _f.isLoadingVisible;\n var canSelectGroup = selectionMode === SelectionMode.multiple;\n var isSelectionCheckVisible = canSelectGroup && (isCollapsedGroupSelectVisible || !(group && group.isCollapsed));\n var currentlySelected = selected || isSelected;\n var isRTL = getRTL(theme);\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: currentlySelected,\n isCollapsed: isCollapsed,\n compact: compact,\n });\n if (!group) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.root, style: viewport ? { minWidth: viewport.width } : {}, role: \"row\", \"aria-level\": ariaLevel, \"aria-setsize\": ariaSetSize, \"aria-posinset\": ariaPosInSet, \"aria-rowindex\": ariaRowIndex, \"data-is-focusable\": true, onKeyUp: this._onKeyUp, \"aria-label\": group.ariaLabel, \"aria-labelledby\": group.ariaLabel ? undefined : this._id, \"aria-expanded\": !this.state.isCollapsed, \"aria-selected\": canSelectGroup ? currentlySelected : undefined, \"data-selection-index\": group.startIndex, \"data-selection-span\": group.count },\n React.createElement(\"div\", { className: this._classNames.groupHeaderContainer, role: \"presentation\" },\n isSelectionCheckVisible ? (React.createElement(\"div\", { role: \"gridcell\" },\n React.createElement(\"button\", __assign({ \"data-is-focusable\": false, type: \"button\", className: this._classNames.check, role: \"checkbox\", id: \"\".concat(this._id, \"-check\"), \"aria-checked\": currentlySelected, \"aria-labelledby\": \"\".concat(this._id, \"-check \").concat(this._id), \"data-selection-toggle\": true }, selectAllButtonProps), onRenderCheckbox({ checked: currentlySelected, theme: theme }, onRenderCheckbox)))) : (\n // To make the group header align properly with the column headers, this spacer\n // needs to be the same width as the check cell in the column header.\n selectionMode !== SelectionMode.none && React.createElement(GroupSpacer, { indentWidth: CHECK_CELL_WIDTH, count: 1 })),\n React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n React.createElement(\"div\", { className: this._classNames.dropIcon, role: \"presentation\" },\n React.createElement(Icon, { iconName: \"Tag\" })),\n React.createElement(\"div\", { role: \"gridcell\" },\n React.createElement(\"button\", __assign({ \"data-is-focusable\": false, \"data-selection-disabled\": true, type: \"button\", className: this._classNames.expand, onClick: this._onToggleClick, \"aria-expanded\": !this.state.isCollapsed }, expandButtonProps),\n React.createElement(Icon, { className: this._classNames.expandIsCollapsed, iconName: expandButtonIcon || (isRTL ? 'ChevronLeftMed' : 'ChevronRightMed') }))),\n onRenderTitle(this.props),\n isLoadingVisible && React.createElement(Spinner, { label: loadingText }))));\n };\n GroupHeaderBase.prototype._defaultCheckboxRender = function (checkboxProps) {\n return React.createElement(Check, { checked: checkboxProps.checked });\n };\n GroupHeaderBase.prototype._fastDefaultCheckboxRender = function (checkboxProps) {\n return React.createElement(FastCheck, { theme: checkboxProps.theme, checked: checkboxProps.checked });\n };\n GroupHeaderBase.defaultProps = {\n expandButtonProps: { 'aria-label': 'expand collapse group' },\n };\n return GroupHeaderBase;\n}(React.Component));\nexport { GroupHeaderBase };\nvar FastCheck = React.memo(function (props) {\n return React.createElement(Check, { theme: props.theme, checked: props.checked, className: props.className, useFastIcons: true });\n});\n//# sourceMappingURL=GroupHeader.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupHeader.styles';\nimport { GroupHeaderBase } from './GroupHeader.base';\nexport var GroupHeader = styled(GroupHeaderBase, getStyles, undefined, {\n scope: 'GroupHeader',\n});\n//# sourceMappingURL=GroupHeader.js.map","import * as React from 'react';\nexport var SPACER_WIDTH = 36;\nexport var GroupSpacer = function (props) {\n var count = props.count, _a = props.indentWidth, indentWidth = _a === void 0 ? SPACER_WIDTH : _a, _b = props.role, role = _b === void 0 ? 'presentation' : _b;\n var width = count * indentWidth;\n return count > 0 ? (React.createElement(\"span\", { className: 'ms-GroupSpacer', style: { display: 'inline-block', width: width }, role: role })) : null;\n};\n//# sourceMappingURL=GroupSpacer.js.map","import { getGlobalClassNames, AnimationVariables } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-GroupedList',\n compact: 'ms-GroupedList--Compact',\n group: 'ms-GroupedList-group',\n link: 'ms-Link',\n listCell: 'ms-List-cell',\n};\nvar beziers = {\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, className = props.className, compact = props.compact;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.small,\n {\n position: 'relative',\n selectors: (_a = {},\n _a[\".\".concat(classNames.listCell)] = {\n minHeight: 38, // be consistent with DetailsList styles\n },\n _a),\n },\n compact && [\n classNames.compact,\n {\n selectors: (_b = {},\n _b[\".\".concat(classNames.listCell)] = {\n minHeight: 32, // be consistent with DetailsList styles\n },\n _b),\n },\n ],\n className,\n ],\n group: [\n classNames.group,\n {\n transition: \"background-color \".concat(AnimationVariables.durationValue2, \" \").concat(beziers.easeInOutSine),\n },\n ],\n groupIsDropping: {\n backgroundColor: palette.neutralLight,\n },\n };\n};\n//# sourceMappingURL=GroupedList.styles.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-GroupShowAll',\n link: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme;\n var fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n position: 'relative',\n padding: '10px 84px',\n cursor: 'pointer',\n selectors: (_a = {},\n _a[\".\".concat(classNames.link)] = {\n fontSize: fonts.small.fontSize,\n },\n _a),\n },\n ],\n };\n};\n//# sourceMappingURL=GroupShowAll.styles.js.map","import * as React from 'react';\nimport { useCallback } from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { Link } from '../../Link';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupShowAllBase = function (props) {\n var group = props.group, groupLevel = props.groupLevel, _a = props.showAllLinkText, showAllLinkText = _a === void 0 ? 'Show All' : _a, styles = props.styles, theme = props.theme, onToggleSummarize = props.onToggleSummarize;\n var classNames = getClassNames(styles, { theme: theme });\n var memoizedOnClick = useCallback(function (ev) {\n onToggleSummarize(group);\n ev.stopPropagation();\n ev.preventDefault();\n }, [onToggleSummarize, group]);\n if (group) {\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(GroupSpacer, { count: groupLevel }),\n React.createElement(Link, { onClick: memoizedOnClick }, showAllLinkText)));\n }\n return null;\n};\n//# sourceMappingURL=GroupShowAll.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupShowAll.styles';\nimport { GroupShowAllBase } from './GroupShowAll.base';\nexport var GroupShowAll = styled(GroupShowAllBase, getStyles, undefined, { scope: 'GroupShowAll' });\n//# sourceMappingURL=GroupShowAll.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-groupFooter',\n};\nexport var getStyles = function (props) {\n var theme = props.theme, className = props.className;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n {\n position: 'relative',\n padding: '5px 38px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=GroupFooter.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { GroupSpacer } from './GroupSpacer';\nvar getClassNames = classNamesFunction();\nexport var GroupFooterBase = function (props) {\n var group = props.group, groupLevel = props.groupLevel, footerText = props.footerText, indentWidth = props.indentWidth, styles = props.styles, theme = props.theme;\n var classNames = getClassNames(styles, { theme: theme });\n if (group && footerText) {\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(GroupSpacer, { indentWidth: indentWidth, count: groupLevel }),\n footerText));\n }\n return null;\n};\n//# sourceMappingURL=GroupFooter.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupFooter.styles';\nimport { GroupFooterBase } from './GroupFooter.base';\nexport var GroupFooter = styled(GroupFooterBase, getStyles, undefined, {\n scope: 'GroupFooter',\n});\n//# sourceMappingURL=GroupFooter.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, css, getId, EventGroup } from '../../Utilities';\nimport { SELECTION_CHANGE } from '../../Selection';\nimport { GroupHeader } from './GroupHeader';\nimport { GroupShowAll } from './GroupShowAll';\nimport { GroupFooter } from './GroupFooter';\nimport { List } from '../../List';\nvar DEFAULT_DROPPING_CSS_CLASS = 'is-dropping';\nvar GroupedListSection = /** @class */ (function (_super) {\n __extends(GroupedListSection, _super);\n function GroupedListSection(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._list = React.createRef();\n _this._subGroupRefs = {};\n _this._droppingClassName = '';\n _this._onRenderGroupHeader = function (props) {\n return React.createElement(GroupHeader, __assign({}, props));\n };\n _this._onRenderGroupShowAll = function (props) {\n return React.createElement(GroupShowAll, __assign({}, props));\n };\n _this._onRenderGroupFooter = function (props) {\n return React.createElement(GroupFooter, __assign({}, props));\n };\n _this._renderSubGroup = function (subGroup, subGroupIndex) {\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, getGroupItemLimit = _a.getGroupItemLimit, groupNestingDepth = _a.groupNestingDepth, groupProps = _a.groupProps, items = _a.items, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selection = _a.selection, selectionMode = _a.selectionMode, viewport = _a.viewport, onRenderGroupHeader = _a.onRenderGroupHeader, onRenderGroupShowAll = _a.onRenderGroupShowAll, onRenderGroupFooter = _a.onRenderGroupFooter, onShouldVirtualize = _a.onShouldVirtualize, group = _a.group, compact = _a.compact;\n var nestingDepth = subGroup.level ? subGroup.level + 1 : groupNestingDepth;\n return !subGroup || subGroup.count > 0 || (groupProps && groupProps.showEmptyGroups) ? (React.createElement(GroupedListSection, { ref: function (ref) { return (_this._subGroupRefs['subGroup_' + subGroupIndex] = ref); }, key: _this._getGroupKey(subGroup, subGroupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: getGroupItemLimit, group: subGroup, groupIndex: subGroupIndex, groupNestingDepth: nestingDepth, groupProps: groupProps, headerProps: headerProps, items: items, listProps: listProps, onRenderCell: onRenderCell, selection: selection, selectionMode: selectionMode, showAllProps: showAllProps, viewport: viewport, onRenderGroupHeader: onRenderGroupHeader, onRenderGroupShowAll: onRenderGroupShowAll, onRenderGroupFooter: onRenderGroupFooter, onShouldVirtualize: onShouldVirtualize, groups: group ? group.children : [], compact: compact })) : null;\n };\n /**\n * collect all the data we need to enable drag/drop for a group\n */\n _this._getGroupDragDropOptions = function () {\n var _a = _this.props, group = _a.group, groupIndex = _a.groupIndex, dragDropEvents = _a.dragDropEvents, eventsToRegister = _a.eventsToRegister;\n var options = {\n eventMap: eventsToRegister,\n selectionIndex: -1,\n context: { data: group, index: groupIndex, isGroup: true },\n updateDropState: _this._updateDroppingState,\n canDrag: dragDropEvents.canDrag,\n canDrop: dragDropEvents.canDrop,\n onDrop: dragDropEvents.onDrop,\n onDragStart: dragDropEvents.onDragStart,\n onDragEnter: dragDropEvents.onDragEnter,\n onDragLeave: dragDropEvents.onDragLeave,\n onDragEnd: dragDropEvents.onDragEnd,\n onDragOver: dragDropEvents.onDragOver,\n };\n return options;\n };\n /**\n * update groupIsDropping state based on the input value, which is used to change style during drag and drop\n *\n * @param newValue - new isDropping state value\n * @param event - the event trigger dropping state change which can be dragenter, dragleave etc\n */\n _this._updateDroppingState = function (newIsDropping, event) {\n var isDropping = _this.state.isDropping;\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, group = _a.group;\n if (isDropping !== newIsDropping) {\n if (isDropping) {\n if (dragDropEvents && dragDropEvents.onDragLeave) {\n dragDropEvents.onDragLeave(group, event);\n }\n }\n else {\n if (dragDropEvents && dragDropEvents.onDragEnter) {\n _this._droppingClassName = dragDropEvents.onDragEnter(group, event);\n }\n }\n _this.setState({ isDropping: newIsDropping });\n }\n };\n var selection = props.selection, group = props.group;\n initializeComponentRef(_this);\n _this._id = getId('GroupedListSection');\n _this.state = {\n isDropping: false,\n isSelected: selection && group ? selection.isRangeSelected(group.startIndex, group.count) : false,\n };\n _this._events = new EventGroup(_this);\n return _this;\n }\n GroupedListSection.prototype.componentDidMount = function () {\n var _a = this.props, dragDropHelper = _a.dragDropHelper, selection = _a.selection;\n if (dragDropHelper && this._root.current) {\n this._dragDropSubscription = dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n }\n if (selection) {\n this._events.on(selection, SELECTION_CHANGE, this._onSelectionChange);\n }\n };\n GroupedListSection.prototype.componentWillUnmount = function () {\n this._events.dispose();\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n }\n };\n GroupedListSection.prototype.componentDidUpdate = function (previousProps) {\n if (this.props.group !== previousProps.group ||\n this.props.groupIndex !== previousProps.groupIndex ||\n this.props.dragDropHelper !== previousProps.dragDropHelper) {\n if (this._dragDropSubscription) {\n this._dragDropSubscription.dispose();\n delete this._dragDropSubscription;\n }\n if (this.props.dragDropHelper && this._root.current) {\n this._dragDropSubscription = this.props.dragDropHelper.subscribe(this._root.current, this._events, this._getGroupDragDropOptions());\n }\n }\n };\n GroupedListSection.prototype.render = function () {\n var _a = this.props, getGroupItemLimit = _a.getGroupItemLimit, group = _a.group, groupIndex = _a.groupIndex, headerProps = _a.headerProps, showAllProps = _a.showAllProps, footerProps = _a.footerProps, viewport = _a.viewport, selectionMode = _a.selectionMode, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? this._onRenderGroupHeader : _b, _c = _a.onRenderGroupShowAll, onRenderGroupShowAll = _c === void 0 ? this._onRenderGroupShowAll : _c, _d = _a.onRenderGroupFooter, onRenderGroupFooter = _d === void 0 ? this._onRenderGroupFooter : _d, onShouldVirtualize = _a.onShouldVirtualize, groupedListClassNames = _a.groupedListClassNames, groups = _a.groups, compact = _a.compact, _e = _a.listProps, listProps = _e === void 0 ? {} : _e;\n var isSelected = this.state.isSelected;\n var renderCount = group && getGroupItemLimit ? getGroupItemLimit(group) : Infinity;\n var isShowAllVisible = group &&\n !group.children &&\n !group.isCollapsed &&\n !group.isShowingAll &&\n (group.count > renderCount || group.hasMoreData);\n var hasNestedGroups = group && group.children && group.children.length > 0;\n var version = listProps.version;\n var dividerProps = {\n group: group,\n groupIndex: groupIndex,\n groupLevel: group ? group.level : 0,\n isSelected: isSelected,\n selected: isSelected,\n viewport: viewport,\n selectionMode: selectionMode,\n groups: groups,\n compact: compact,\n };\n var ariaControlsProps = {\n groupedListId: this._id,\n ariaLevel: (group === null || group === void 0 ? void 0 : group.level) ? group.level + 1 : 1,\n ariaSetSize: groups ? groups.length : undefined,\n ariaPosInSet: groupIndex !== undefined ? groupIndex + 1 : undefined,\n };\n var groupHeaderProps = __assign(__assign(__assign({}, headerProps), dividerProps), ariaControlsProps);\n var groupShowAllProps = __assign(__assign({}, showAllProps), dividerProps);\n var groupFooterProps = __assign(__assign({}, footerProps), dividerProps);\n var isDraggable = !!this.props.dragDropHelper &&\n this._getGroupDragDropOptions().canDrag(group) &&\n !!this.props.dragDropEvents.canDragGroups;\n return (React.createElement(\"div\", __assign({ ref: this._root }, (isDraggable && { draggable: true }), { className: css(groupedListClassNames && groupedListClassNames.group, this._getDroppingClassName()), role: \"presentation\" }),\n onRenderGroupHeader(groupHeaderProps, this._onRenderGroupHeader),\n group && group.isCollapsed ? null : hasNestedGroups ? (React.createElement(List, { role: \"presentation\", ref: this._list, items: group ? group.children : [], onRenderCell: this._renderSubGroup, getItemCountForPage: this._returnOne, onShouldVirtualize: onShouldVirtualize, version: version, id: this._id })) : (this._onRenderGroup(renderCount)),\n group && group.isCollapsed\n ? null\n : isShowAllVisible && onRenderGroupShowAll(groupShowAllProps, this._onRenderGroupShowAll),\n onRenderGroupFooter(groupFooterProps, this._onRenderGroupFooter)));\n };\n GroupedListSection.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this.forceListUpdate();\n };\n GroupedListSection.prototype.forceListUpdate = function () {\n var group = this.props.group;\n if (this._list.current) {\n this._list.current.forceUpdate();\n if (group && group.children && group.children.length > 0) {\n var subGroupCount = group.children.length;\n for (var i = 0; i < subGroupCount; i++) {\n var subGroup = this._list.current.pageRefs['subGroup_' + String(i)];\n if (subGroup) {\n subGroup.forceListUpdate();\n }\n }\n }\n }\n else {\n var subGroup = this._subGroupRefs['subGroup_' + String(0)];\n if (subGroup) {\n subGroup.forceListUpdate();\n }\n }\n };\n GroupedListSection.prototype._onSelectionChange = function () {\n var _a = this.props, group = _a.group, selection = _a.selection;\n if (selection && group) {\n var isSelected = selection.isRangeSelected(group.startIndex, group.count);\n if (isSelected !== this.state.isSelected) {\n this.setState({ isSelected: isSelected });\n }\n }\n };\n GroupedListSection.prototype._onRenderGroupCell = function (onRenderCell, groupNestingDepth, group) {\n return function (item, itemIndex) {\n return onRenderCell(groupNestingDepth, item, itemIndex, group);\n };\n };\n GroupedListSection.prototype._onRenderGroup = function (renderCount) {\n var _a = this.props, group = _a.group, items = _a.items, onRenderCell = _a.onRenderCell, listProps = _a.listProps, groupNestingDepth = _a.groupNestingDepth, onShouldVirtualize = _a.onShouldVirtualize, groupProps = _a.groupProps;\n var count = group && !group.isShowingAll ? group.count : items.length;\n var startIndex = group ? group.startIndex : 0;\n return (React.createElement(List, __assign({ role: groupProps && groupProps.role ? groupProps.role : 'rowgroup', \"aria-label\": group === null || group === void 0 ? void 0 : group.name, items: items, onRenderCell: this._onRenderGroupCell(onRenderCell, groupNestingDepth, group), ref: this._list, renderCount: Math.min(count, renderCount), startIndex: startIndex, onShouldVirtualize: onShouldVirtualize, id: this._id }, listProps)));\n };\n GroupedListSection.prototype._returnOne = function () {\n return 1;\n };\n GroupedListSection.prototype._getGroupKey = function (group, index) {\n return 'group-' + (group && group.key ? group.key : String(group.level) + String(index));\n };\n /**\n * get the correct css class to reflect the dropping state for a given group\n *\n * If the group is the current drop target, return the default dropping class name\n * Otherwise, return '';\n *\n */\n GroupedListSection.prototype._getDroppingClassName = function () {\n var isDropping = this.state.isDropping;\n var _a = this.props, group = _a.group, groupedListClassNames = _a.groupedListClassNames;\n isDropping = !!(group && isDropping);\n return css(isDropping && this._droppingClassName, isDropping && DEFAULT_DROPPING_CSS_CLASS, isDropping && groupedListClassNames && groupedListClassNames.groupIsDropping);\n };\n return GroupedListSection;\n}(React.Component));\nexport { GroupedListSection };\n//# sourceMappingURL=GroupedListSection.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, classNamesFunction, KeyCodes, getRTLSafeKeyCode, css } from '../../Utilities';\nimport { GroupedListSection } from './GroupedListSection';\nimport { List } from '../../List';\nimport { SelectionMode } from '../../Selection';\nimport { DEFAULT_ROW_HEIGHTS } from '../DetailsList/DetailsRow.styles';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nvar getClassNames = classNamesFunction();\nvar ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.rowHeight, COMPACT_ROW_HEIGHT = DEFAULT_ROW_HEIGHTS.compactRowHeight;\nvar GroupedListBase = /** @class */ (function (_super) {\n __extends(GroupedListBase, _super);\n function GroupedListBase(props) {\n var _this = _super.call(this, props) || this;\n _this._list = React.createRef();\n _this._renderGroup = function (group, groupIndex) {\n var _a = _this.props, dragDropEvents = _a.dragDropEvents, dragDropHelper = _a.dragDropHelper, eventsToRegister = _a.eventsToRegister, groupProps = _a.groupProps, items = _a.items, listProps = _a.listProps, onRenderCell = _a.onRenderCell, selectionMode = _a.selectionMode, selection = _a.selection, viewport = _a.viewport, onShouldVirtualize = _a.onShouldVirtualize, groups = _a.groups, compact = _a.compact;\n // override group header/footer props as needed\n var dividerProps = {\n onToggleSelectGroup: _this._onToggleSelectGroup,\n onToggleCollapse: _this._onToggleCollapse,\n onToggleSummarize: _this._onToggleSummarize,\n };\n var headerProps = __assign(__assign({}, groupProps.headerProps), dividerProps);\n var showAllProps = __assign(__assign({}, groupProps.showAllProps), dividerProps);\n var footerProps = __assign(__assign({}, groupProps.footerProps), dividerProps);\n var groupNestingDepth = _this._getGroupNestingDepth();\n if (!groupProps.showEmptyGroups && group && group.count === 0) {\n return null;\n }\n var finalListProps = __assign(__assign({}, (listProps || {})), { version: _this.state.version });\n return (React.createElement(GroupedListSection, { key: _this._getGroupKey(group, groupIndex), dragDropEvents: dragDropEvents, dragDropHelper: dragDropHelper, eventsToRegister: eventsToRegister, footerProps: footerProps, getGroupItemLimit: groupProps && groupProps.getGroupItemLimit, group: group, groupIndex: groupIndex, groupNestingDepth: groupNestingDepth, groupProps: groupProps, headerProps: headerProps, listProps: finalListProps, items: items, onRenderCell: onRenderCell, onRenderGroupHeader: groupProps.onRenderHeader, onRenderGroupShowAll: groupProps.onRenderShowAll, onRenderGroupFooter: groupProps.onRenderFooter, selectionMode: selectionMode, selection: selection, showAllProps: showAllProps, viewport: viewport, onShouldVirtualize: onShouldVirtualize, groupedListClassNames: _this._classNames, groups: groups, compact: compact }));\n };\n _this._getDefaultGroupItemLimit = function (group) {\n return group.children && group.children.length > 0 ? group.children.length : group.count;\n };\n _this._getGroupItemLimit = function (group) {\n var groupProps = _this.props.groupProps;\n var getGroupItemLimit = groupProps && groupProps.getGroupItemLimit ? groupProps.getGroupItemLimit : _this._getDefaultGroupItemLimit;\n return getGroupItemLimit(group);\n };\n _this._getGroupHeight = function (group) {\n var rowHeight = _this.props.compact ? COMPACT_ROW_HEIGHT : ROW_HEIGHT;\n return rowHeight + (group.isCollapsed ? 0 : rowHeight * _this._getGroupItemLimit(group));\n };\n _this._getPageHeight = function (itemIndex) {\n var groups = _this.state.groups;\n var _a = _this.props.getGroupHeight, getGroupHeight = _a === void 0 ? _this._getGroupHeight : _a;\n var pageGroup = groups && groups[itemIndex];\n if (pageGroup) {\n return getGroupHeight(pageGroup, itemIndex);\n }\n else {\n return 0;\n }\n };\n _this._onToggleCollapse = function (group) {\n var groupProps = _this.props.groupProps;\n var onToggleCollapse = groupProps && groupProps.headerProps && groupProps.headerProps.onToggleCollapse;\n if (group) {\n if (onToggleCollapse) {\n onToggleCollapse(group);\n }\n group.isCollapsed = !group.isCollapsed;\n _this._updateIsSomeGroupExpanded();\n _this.forceUpdate();\n }\n };\n _this._onToggleSelectGroup = function (group) {\n var _a = _this.props, selection = _a.selection, selectionMode = _a.selectionMode;\n if (group && selection && selectionMode === SelectionMode.multiple) {\n selection.toggleRangeSelected(group.startIndex, group.count);\n }\n };\n _this._isInnerZoneKeystroke = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === getRTLSafeKeyCode(KeyCodes.right);\n };\n _this._onToggleSummarize = function (group) {\n var groupProps = _this.props.groupProps;\n var onToggleSummarize = groupProps && groupProps.showAllProps && groupProps.showAllProps.onToggleSummarize;\n if (onToggleSummarize) {\n onToggleSummarize(group);\n }\n else {\n if (group) {\n group.isShowingAll = !group.isShowingAll;\n }\n _this.forceUpdate();\n }\n };\n _this._getPageSpecification = function (itemIndex) {\n var groups = _this.state.groups;\n var pageGroup = groups && groups[itemIndex];\n return {\n key: pageGroup && pageGroup.key,\n };\n };\n initializeComponentRef(_this);\n _this._isSomeGroupExpanded = _this._computeIsSomeGroupExpanded(props.groups);\n var _a = props.listProps, _b = _a === void 0 ? {} : _a, _c = _b.version, version = _c === void 0 ? {} : _c;\n _this.state = {\n groups: props.groups,\n items: props.items,\n listProps: props.listProps,\n version: version,\n };\n return _this;\n }\n GroupedListBase.getDerivedStateFromProps = function (nextProps, previousState) {\n var groups = nextProps.groups, selectionMode = nextProps.selectionMode, compact = nextProps.compact, items = nextProps.items, listProps = nextProps.listProps;\n var listVersion = listProps && listProps.version;\n var nextState = __assign(__assign({}, previousState), { selectionMode: selectionMode, compact: compact, groups: groups, listProps: listProps, items: items });\n var shouldForceUpdates = false;\n var previousListVersion = previousState.listProps && previousState.listProps.version;\n if (listVersion !== previousListVersion ||\n items !== previousState.items ||\n groups !== previousState.groups ||\n selectionMode !== previousState.selectionMode ||\n compact !== previousState.compact) {\n // If there are any props not passed explicitly to `List` which have an impact on the behavior of `onRenderCell`,\n // these need to 'force-update' this component by revving the version. Otherwise, the List might render with stale\n // data.\n shouldForceUpdates = true;\n }\n if (shouldForceUpdates) {\n nextState = __assign(__assign({}, nextState), { version: {} });\n }\n return nextState;\n };\n GroupedListBase.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n if (this._list.current) {\n this._list.current.scrollToIndex(index, measureItem, scrollToMode);\n }\n };\n GroupedListBase.prototype.getStartItemIndexInView = function () {\n return this._list.current.getStartItemIndexInView() || 0;\n };\n GroupedListBase.prototype.componentDidMount = function () {\n var _a = this.props, groupProps = _a.groupProps, _b = _a.groups, groups = _b === void 0 ? [] : _b;\n if (groupProps && groupProps.isAllGroupsCollapsed) {\n this._setGroupsCollapsedState(groups, groupProps.isAllGroupsCollapsed);\n }\n };\n GroupedListBase.prototype.render = function () {\n var _a = this.props, className = _a.className, usePageCache = _a.usePageCache, onShouldVirtualize = _a.onShouldVirtualize, theme = _a.theme, _b = _a.role, role = _b === void 0 ? 'treegrid' : _b, styles = _a.styles, compact = _a.compact, _c = _a.focusZoneProps, focusZoneProps = _c === void 0 ? {} : _c, _d = _a.rootListProps, rootListProps = _d === void 0 ? {} : _d;\n var _e = this.state, groups = _e.groups, version = _e.version;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n compact: compact,\n });\n var _f = focusZoneProps.shouldEnterInnerZone, shouldEnterInnerZone = _f === void 0 ? this._isInnerZoneKeystroke : _f;\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, \"data-automationid\": \"GroupedList\", \"data-is-scrollable\": \"false\", role: \"presentation\" }, focusZoneProps, { shouldEnterInnerZone: shouldEnterInnerZone, className: css(this._classNames.root, focusZoneProps.className) }), !groups ? (this._renderGroup(undefined, 0)) : (React.createElement(List, __assign({ ref: this._list, role: role, items: groups, onRenderCell: this._renderGroup, getItemCountForPage: this._returnOne, getPageHeight: this._getPageHeight, getPageSpecification: this._getPageSpecification, usePageCache: usePageCache, onShouldVirtualize: onShouldVirtualize, version: version }, rootListProps)))));\n };\n GroupedListBase.prototype.forceUpdate = function () {\n _super.prototype.forceUpdate.call(this);\n this._forceListUpdates();\n };\n GroupedListBase.prototype.toggleCollapseAll = function (allCollapsed) {\n var _a = this.state.groups, groups = _a === void 0 ? [] : _a;\n var groupProps = this.props.groupProps;\n var onToggleCollapseAll = groupProps && groupProps.onToggleCollapseAll;\n if (groups.length > 0) {\n if (onToggleCollapseAll) {\n onToggleCollapseAll(allCollapsed);\n }\n this._setGroupsCollapsedState(groups, allCollapsed);\n this._updateIsSomeGroupExpanded();\n this.forceUpdate();\n }\n };\n GroupedListBase.prototype._setGroupsCollapsedState = function (groups, isCollapsed) {\n for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) {\n groups[groupIndex].isCollapsed = isCollapsed;\n }\n };\n GroupedListBase.prototype._returnOne = function () {\n return 1;\n };\n GroupedListBase.prototype._getGroupKey = function (group, index) {\n return 'group-' + (group && group.key ? group.key : String(index));\n };\n GroupedListBase.prototype._getGroupNestingDepth = function () {\n var groups = this.state.groups;\n var level = 0;\n var groupsInLevel = groups;\n while (groupsInLevel && groupsInLevel.length > 0) {\n level++;\n groupsInLevel = groupsInLevel[0].children;\n }\n return level;\n };\n GroupedListBase.prototype._forceListUpdates = function (groups) {\n this.setState({\n version: {},\n });\n };\n GroupedListBase.prototype._computeIsSomeGroupExpanded = function (groups) {\n var _this = this;\n return !!(groups &&\n groups.some(function (group) { return (group.children ? _this._computeIsSomeGroupExpanded(group.children) : !group.isCollapsed); }));\n };\n GroupedListBase.prototype._updateIsSomeGroupExpanded = function () {\n var groups = this.state.groups;\n var onGroupExpandStateChanged = this.props.onGroupExpandStateChanged;\n var newIsSomeGroupExpanded = this._computeIsSomeGroupExpanded(groups);\n if (this._isSomeGroupExpanded !== newIsSomeGroupExpanded) {\n if (onGroupExpandStateChanged) {\n onGroupExpandStateChanged(newIsSomeGroupExpanded);\n }\n this._isSomeGroupExpanded = newIsSomeGroupExpanded;\n }\n };\n GroupedListBase.defaultProps = {\n selectionMode: SelectionMode.multiple,\n isHeaderVisible: true,\n groupProps: {},\n compact: false,\n };\n return GroupedListBase;\n}(React.Component));\nexport { GroupedListBase };\n//# sourceMappingURL=GroupedList.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './GroupedList.styles';\nimport { GroupedListBase } from './GroupedList.base';\nexport var GroupedList = styled(GroupedListBase, getStyles, undefined, {\n scope: 'GroupedList',\n});\n//# sourceMappingURL=GroupedList.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n useIsomorphicLayoutEffect(function () {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(function () {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src))\n : false;\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n React.useEffect(function () {\n onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n var onImageLoaded = React.useCallback(function (ev) {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n }, [src, onLoad]);\n var onImageError = React.useCallback(function (ev) {\n onError === null || onError === void 0 ? void 0 : onError(ev);\n setLoadState(ImageLoadState.error);\n }, [onError]);\n return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n var frameElement = React.useRef();\n var imageElement = React.useRef();\n var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n var imageProps = getNativeProps(props, imgProperties, [\n 'width',\n 'height',\n ]);\n var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n var previousLoadState = React.useRef(loadState);\n var coverStyle = React.useRef();\n if (coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n previousLoadState.current = loadState;\n return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n }\n else if (loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined &&\n // eslint-disable-next-line @fluentui/max-len\n // cast needed as vendor prefixed `msMaxTouchPoints` api is no longer part of TS lib declaration - introduced with TS 4.4\n window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArray([], overflowKeySequences, true).pop();\n var newKeySequences = __spreadArray([], keySequences, true);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(function () {\n if (uniqueId.current &&\n keytipProps &&\n ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArray([], newKeytipProps.keySequences, true);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n // Label is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Label.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n __extends(LabelBase, _super);\n function LabelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LabelBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n required: required,\n theme: theme,\n });\n return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n };\n return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n var semanticColors = theme.semanticColors;\n // Tokens\n var labelFontWeight = FontWeights.semibold;\n var labelColor = semanticColors.bodyText;\n var labelDisabledColor = semanticColors.disabledBodyText;\n var labelRequiredStarColor = semanticColors.errorText;\n return {\n root: [\n 'ms-Label',\n theme.fonts.medium,\n {\n fontWeight: labelFontWeight,\n color: labelColor,\n boxSizing: 'border-box',\n boxShadow: 'none',\n margin: 0,\n display: 'block',\n padding: '5px 0',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n disabled && {\n color: labelDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n required && {\n selectors: {\n '::after': {\n content: \"' *'\",\n color: labelRequiredStarColor,\n paddingRight: 12,\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Label.styles.js.map","import * as React from 'react';\nconst PortalCompatContext = React.createContext(undefined);\nconst portalCompatContextDefaultValue = ()=>()=>undefined;\nexport const PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n var _React_useContext;\n return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n var providerRef = props.providerRef, layerRoot = props.layerRoot;\n var registeredProviders = React.useState([])[0];\n var parentContext = React.useContext(FocusRectsContext);\n // Inherit the parent context if it exists, unless this is a layer root.\n // This allows the topmost provider element in the DOM tree to handle the focus events.\n // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n var inheritParentContext = parentContext !== undefined && !layerRoot;\n var context = React.useMemo(function () {\n return inheritParentContext\n ? undefined\n : {\n providerRef: providerRef,\n registeredProviders: registeredProviders,\n registerProvider: function (ref) {\n // Register this child provider with the current context, and any parent contexts\n registeredProviders.push(ref);\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n },\n unregisterProvider: function (ref) {\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n var i = registeredProviders.indexOf(ref);\n if (i >= 0) {\n registeredProviders.splice(i, 1);\n }\n },\n };\n }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n React.useEffect(function () {\n if (context) {\n context.registerProvider(context.providerRef);\n return function () { return context.unregisterProvider(context.providerRef); };\n }\n }, [context]);\n // Create a new context provider if this is not inheriting from the parent.\n if (context) {\n return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n }\n else {\n return React.createElement(React.Fragment, null, props.children);\n }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n var theme = _a.theme, dir = _a.dir;\n var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n var pageDir = getRTL() ? 'rtl' : 'ltr';\n var componentDir = dir ? dir : contextDir;\n return {\n // If Fabric dir !== contextDir\n // Or If contextDir !== pageDir\n // Then we need to set dir of the Fabric root\n rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n // If dir !== contextDir || pageDir\n // then set contextual theme around content\n needsTheme: componentDir !== contextDir,\n };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n var rootElement = React.useRef(null);\n useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n var root = _a.root;\n var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n var divProps = getNativeProps(props, divProperties, ['dir']);\n var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n // Create the contextual theme if component direction does not match parent direction.\n if (needsTheme) {\n // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n renderedContent = (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n var bodyThemed = _a.bodyThemed;\n React.useEffect(function () {\n if (applyThemeToBody) {\n var currentDoc_1 = getDocument(rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(bodyThemed);\n return function () {\n currentDoc_1.body.classList.remove(bodyThemed);\n };\n }\n }\n }, [bodyThemed, applyThemeToBody, rootElement]);\n return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, FocusRectsContext, IsFocusVisibleClassName, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFocusVisibility = function (providerRef) {\n if (providerRef === null || providerRef === void 0 ? void 0 : providerRef.current) {\n return providerRef.current.classList.contains(IsFocusVisibleClassName);\n }\n return false;\n};\nexport var LayerBase = React.forwardRef(function (props, ref) {\n var registerPortalEl = usePortalCompat();\n var rootRef = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var layerRef = React.useRef();\n var fabricElementRef = React.useRef(null);\n var focusContext = React.useContext(FocusRectsContext);\n // Tracks if the layer mount events need to be raised.\n // Required to allow the DOM to render after the layer element is added.\n var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n // Sets the focus visible className when the FocusRectsProvider for the layer is rendered\n // This allows the current focus visibility style to be carried over to the layer content\n var focusRectsRef = React.useCallback(function (el) {\n var isFocusVisible = getFocusVisibility(focusContext === null || focusContext === void 0 ? void 0 : focusContext.providerRef);\n if (el && isFocusVisible) {\n el.classList.add(IsFocusVisibleClassName);\n }\n }, [focusContext]);\n var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onLayerMounted, \n // eslint-disable-next-line deprecation/deprecation\n onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref, focusRectsRef);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !hostId,\n });\n // Returns the user provided hostId props element, the default target selector,\n // or undefined if document doesn't exist.\n var getHost = function (doc) {\n var _a, _b;\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n }\n return (_b = doc.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n // Find the host.\n var host = defaultHostSelector ? doc.querySelector(defaultHostSelector) : null;\n // If no host is available, create a container for injecting layers in.\n // Having a container scopes layout computation.\n if (!host) {\n host = createDefaultLayerHost(doc);\n }\n return host;\n }\n };\n // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n var removeLayerElement = function () {\n onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n var elem = layerRef.current;\n // Clear ref before removing from the DOM\n layerRef.current = undefined;\n if (elem && elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n };\n // If a doc or host exists, it will remove and update layer parentNodes.\n var createLayerElement = function () {\n var _a;\n var doc = getDocument(rootRef.current);\n if (!doc) {\n return;\n }\n var host = getHost(doc);\n if (!host) {\n return;\n }\n // Remove and re-create any previous existing layer elements.\n removeLayerElement();\n var el = ((_a = host.ownerDocument) !== null && _a !== void 0 ? _a : doc).createElement('div');\n el.className = classNames.root;\n setPortalAttribute(el);\n setVirtualParent(el, rootRef.current);\n insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n layerRef.current = el;\n setNeedRaiseLayerMount(true);\n };\n useIsomorphicLayoutEffect(function () {\n createLayerElement();\n // Check if the user provided a hostId prop and register the layer with the ID.\n if (hostId) {\n registerLayer(hostId, createLayerElement);\n }\n var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n return function () {\n if (unregisterPortalEl) {\n unregisterPortalEl();\n }\n removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, createLayerElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n }, [hostId]);\n React.useEffect(function () {\n if (layerRef.current && needRaiseLayerMount) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n setNeedRaiseLayerMount(false);\n }\n }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n useDebugWarnings(props);\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nfunction getFilteredEvents() {\n if (!filteredEventProps) {\n filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n }\n return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Layer',\n props: props,\n deprecations: { onLayerMounted: 'onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Layer.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n },\n !preventBlanketFontInheritance && {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\n // apply theme to only if applyTheme is true\n applyTheme && {\n color: theme.semanticColors.bodyText,\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n className,\n ],\n bodyThemed: [\n {\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n ],\n };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\".concat(defaultHostId);\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc) {\n var host = doc.createElement('div');\n host.setAttribute('id', defaultHostId);\n host.style.cssText = 'position:fixed;z-index:1000000';\n doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc) {\n var host = doc.querySelector(\"#\".concat(defaultHostId));\n if (host) {\n doc.removeChild(host);\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, useFocusRects } from '@fluentui/utilities';\nvar getClassNames = classNamesFunction();\n/**\n * The useLink hook processes the Link component props and returns\n * state, slots and slotProps for consumption by the component.\n */\nexport var useLink = function (props, forwardedRef) {\n var as = props.as, className = props.className, disabled = props.disabled, href = props.href, onClick = props.onClick, styles = props.styles, theme = props.theme, underline = props.underline;\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n useComponentRef(props, rootRef);\n useFocusRects(rootRef);\n var classNames = getClassNames(styles, {\n className: className,\n isButton: !href,\n isDisabled: disabled,\n isUnderlined: underline,\n theme: theme,\n });\n var _onClick = function (ev) {\n if (disabled) {\n ev.preventDefault();\n }\n else if (onClick) {\n onClick(ev);\n }\n };\n var rootType = as ? as : href ? 'a' : 'button';\n var state = {};\n var slots = { root: rootType };\n var slotProps = {\n root: __assign(__assign({}, adjustPropsForRootType(rootType, props)), { 'aria-disabled': disabled, className: classNames.root, onClick: _onClick, ref: mergedRootRefs }),\n };\n return { state: state, slots: slots, slotProps: slotProps };\n};\nvar useComponentRef = function (props, link) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (link.current) {\n link.current.focus();\n }\n },\n }); }, [link]);\n};\nvar adjustPropsForRootType = function (RootType, props) {\n // Deconstruct the props so we remove props like `as`, `theme` and `styles`\n // as those will always be removed. We also take some props that are optional\n // based on the RootType.\n var as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, underline = props.underline, restProps = __rest(props, [\"as\", \"disabled\", \"target\", \"href\", \"theme\", \"getStyles\", \"styles\", \"componentRef\", \"underline\"]);\n // RootType will be a string if we're dealing with an html component\n if (typeof RootType === 'string') {\n // Remove the disabled prop for anchor elements\n if (RootType === 'a') {\n return __assign({ target: target, href: disabled ? undefined : href }, restProps);\n }\n // Add the type='button' prop for button elements\n if (RootType === 'button') {\n return __assign({ type: 'button', disabled: disabled }, restProps);\n }\n // Remove the target and href props for all other non anchor elements\n return __assign(__assign({}, restProps), { disabled: disabled });\n }\n // Retain all props except 'as' for ReactComponents\n return __assign({ target: target, href: href, disabled: disabled }, restProps);\n};\n//# sourceMappingURL=useLink.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useLink } from './useLink';\nexport var LinkBase = React.forwardRef(function (props, ref) {\n var _a = useLink(props, ref), slots = _a.slots, slotProps = _a.slotProps;\n return React.createElement(slots.root, __assign({}, slotProps.root));\n});\nLinkBase.displayName = 'LinkBase';\n//# sourceMappingURL=Link.base.js.map","import { styled } from '@fluentui/utilities';\nimport { LinkBase } from './Link.base';\nimport { getStyles } from './Link.styles';\nexport var Link = styled(LinkBase, getStyles, undefined, {\n scope: 'Link',\n});\n//# sourceMappingURL=Link.js.map","import { getGlobalClassNames, HighContrastSelector } from '@fluentui/style-utilities';\nexport var GlobalClassNames = {\n root: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, isUnderlined = props.isUnderlined, theme = props.theme;\n var semanticColors = theme.semanticColors;\n // Tokens\n var linkColor = semanticColors.link;\n var linkInteractedColor = semanticColors.linkHovered;\n var linkDisabledColor = semanticColors.disabledText;\n var focusBorderColor = semanticColors.focusBorder;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: linkColor,\n outline: 'none',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n textDecoration: isUnderlined ? 'underline' : 'none',\n selectors: (_a = {\n '.ms-Fabric--isFocusVisible &:focus': {\n // Can't use getFocusStyle because it doesn't support wrapping links\n // https://github.com/microsoft/fluentui/issues/4883#issuecomment-406743543\n // Using box-shadow and outline allows the focus rect to wrap links that span multiple lines\n // and helps the focus rect avoid getting clipped.\n boxShadow: \"0 0 0 1px \".concat(focusBorderColor, \" inset\"),\n outline: \"1px auto \".concat(focusBorderColor),\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _b),\n }\n },\n _a[HighContrastSelector] = {\n // For IE high contrast mode\n borderBottom: 'none',\n },\n _a),\n },\n isButton && {\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n display: 'inline',\n margin: 0,\n overflow: 'inherit',\n padding: 0,\n textAlign: 'left',\n textOverflow: 'inherit',\n userSelect: 'text',\n borderBottom: '1px solid transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'LinkText',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n !isButton && {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n // This is mainly for MessageBar, which sets MsHighContrastAdjust: none by default\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n },\n _d),\n },\n isDisabled && [\n 'is-disabled',\n {\n color: linkDisabledColor,\n cursor: 'default',\n },\n {\n selectors: (_e = {\n '&:link, &:visited': {\n pointerEvents: 'none',\n }\n },\n _e[HighContrastSelector] = {\n // We need to specify the color in High Contrast because of the case of Links rendering as buttons.\n color: 'GrayText',\n },\n _e),\n },\n ],\n !isDisabled && {\n selectors: {\n '&:active, &:hover, &:active:hover': {\n color: linkInteractedColor,\n textDecoration: 'underline',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'LinkText',\n },\n _f),\n },\n '&:focus': {\n color: linkColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n color: 'LinkText',\n },\n _g),\n },\n },\n },\n classNames.root,\n className,\n ],\n };\n};\n//# sourceMappingURL=Link.styles.js.map","export var getScrollHeight = function (el) {\n if (el === undefined) {\n return 0;\n }\n var scrollHeight = 0;\n if ('scrollHeight' in el) {\n scrollHeight = el.scrollHeight;\n }\n else if ('document' in el) {\n scrollHeight = el.document.documentElement.scrollHeight;\n }\n // No need to round as scrollHeight is already rounded for us.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n return scrollHeight;\n};\nexport var getScrollYPosition = function (el) {\n if (el === undefined) {\n return 0;\n }\n var scrollPos = 0;\n if ('scrollTop' in el) {\n scrollPos = el.scrollTop;\n }\n else if ('scrollY' in el) {\n scrollPos = el.scrollY;\n }\n // Round this value to an integer as it may be fractional.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop\n // See: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY\n return Math.ceil(scrollPos);\n};\nexport var setScrollYPosition = function (el, pos) {\n if ('scrollTop' in el) {\n el.scrollTop = pos;\n }\n else if ('scrollY' in el) {\n el.scrollTo(el.scrollX, pos);\n }\n};\n//# sourceMappingURL=scroll.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, canUseDOM, css, divProperties, findIndex, findScrollableParent, getNativeProps, getParent, getWindow, initializeComponentRef, } from '../../Utilities';\nimport { ScrollToMode } from './List.types';\nimport { composeRenderFunction } from '../../Utilities';\nimport { getScrollHeight, getScrollYPosition, setScrollYPosition } from './utils/scroll';\nvar RESIZE_DELAY = 16;\nvar MIN_SCROLL_UPDATE_DELAY = 100;\nvar MAX_SCROLL_UPDATE_DELAY = 500;\nvar IDLE_DEBOUNCE_DELAY = 200;\n// The amount of time to wait before declaring that the list isn't scrolling\nvar DONE_SCROLLING_WAIT = 500;\nvar DEFAULT_ITEMS_PER_PAGE = 10;\nvar DEFAULT_PAGE_HEIGHT = 30;\nvar DEFAULT_RENDERED_WINDOWS_BEHIND = 2;\nvar DEFAULT_RENDERED_WINDOWS_AHEAD = 2;\nvar PAGE_KEY_PREFIX = 'page-';\nvar SPACER_KEY_PREFIX = 'spacer-';\nvar EMPTY_RECT = {\n top: -1,\n bottom: -1,\n left: -1,\n right: -1,\n width: 0,\n height: 0,\n};\n// Naming expensive measures so that they're named in profiles.\nvar _measurePageRect = function (element) { return element.getBoundingClientRect(); };\nvar _measureSurfaceRect = _measurePageRect;\nvar _measureScrollRect = _measurePageRect;\n/**\n * The List renders virtualized pages of items. Each page's item count is determined by the getItemCountForPage callback\n * if provided by the caller, or 10 as default. Each page's height is determined by the getPageHeight callback if\n * provided by the caller, or by cached measurements if available, or by a running average, or a default fallback.\n *\n * The algorithm for rendering pages works like this:\n *\n * 1. Predict visible pages based on \"current measure data\" (page heights, surface position, visible window)\n * 2. If changes are necessary, apply changes (add/remove pages)\n * 3. For pages that are added, measure the page heights if we need to using getBoundingClientRect\n * 4. If measurements don't match predictions, update measure data and goto step 1 asynchronously\n *\n * Measuring too frequently can pull performance down significantly. To compensate, we cache measured values so that\n * we can avoid re-measuring during operations that should not alter heights, like scrolling.\n *\n * To optimize glass rendering performance, onShouldVirtualize can be set. When onShouldVirtualize return false,\n * List will run in fast mode (not virtualized) to render all items without any measurements to improve page load time.\n * And we start doing measurements and rendering in virtualized mode when items grows larger than this threshold.\n *\n * However, certain operations can make measure data stale. For example, resizing the list, or passing in new props,\n * or forcing an update change cause pages to shrink/grow. When these operations occur, we increment a measureVersion\n * number, which we associate with cached measurements and use to determine if a remeasure should occur.\n */\nvar List = /** @class */ (function (_super) {\n __extends(List, _super);\n function List(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._surface = React.createRef();\n _this._pageRefs = {};\n _this._getDerivedStateFromProps = function (nextProps, previousState) {\n if (nextProps.items !== _this.props.items ||\n nextProps.renderCount !== _this.props.renderCount ||\n nextProps.startIndex !== _this.props.startIndex ||\n nextProps.version !== _this.props.version ||\n (!previousState.hasMounted && _this.props.renderEarly && canUseDOM())) {\n // We have received new items so we want to make sure that initially we only render a single window to\n // fill the currently visible rect, and then later render additional windows.\n _this._resetRequiredWindows();\n _this._requiredRect = null;\n _this._measureVersion++;\n _this._invalidatePageCache();\n return _this._updatePages(nextProps, previousState);\n }\n return previousState;\n };\n _this._onRenderRoot = function (props) {\n var rootRef = props.rootRef, surfaceElement = props.surfaceElement, divProps = props.divProps;\n return (React.createElement(\"div\", __assign({ ref: rootRef }, divProps), surfaceElement));\n };\n _this._onRenderSurface = function (props) {\n var surfaceRef = props.surfaceRef, pageElements = props.pageElements, divProps = props.divProps;\n return (React.createElement(\"div\", __assign({ ref: surfaceRef }, divProps), pageElements));\n };\n _this._onRenderPage = function (pageProps, defaultRender) {\n var _a;\n var _b = _this.props, onRenderCell = _b.onRenderCell, onRenderCellConditional = _b.onRenderCellConditional, role = _b.role;\n var _c = pageProps.page, _d = _c.items, items = _d === void 0 ? [] : _d, startIndex = _c.startIndex, divProps = __rest(pageProps, [\"page\"]);\n // only assign list item role if no role is assigned\n var cellRole = role === undefined ? 'listitem' : 'presentation';\n var cells = [];\n for (var i = 0; i < items.length; i++) {\n var index = startIndex + i;\n var item = items[i];\n var itemKey = _this.props.getKey ? _this.props.getKey(item, index) : item && item.key;\n if (itemKey === null || itemKey === undefined) {\n itemKey = index;\n }\n var renderCell = onRenderCellConditional !== null && onRenderCellConditional !== void 0 ? onRenderCellConditional : onRenderCell;\n var cell = (_a = renderCell === null || renderCell === void 0 ? void 0 : renderCell(item, index, !_this.props.ignoreScrollingState ? _this.state.isScrolling : undefined)) !== null && _a !== void 0 ? _a : null;\n if (!onRenderCellConditional || cell) {\n cells.push(React.createElement(\"div\", { role: cellRole, className: 'ms-List-cell', key: itemKey, \"data-list-index\": index, \"data-automationid\": \"ListCell\" }, cell));\n }\n }\n return React.createElement(\"div\", __assign({}, divProps), cells);\n };\n initializeComponentRef(_this);\n _this.state = {\n pages: [],\n isScrolling: false,\n getDerivedStateFromProps: _this._getDerivedStateFromProps,\n hasMounted: false,\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._estimatedPageHeight = 0;\n _this._totalEstimates = 0;\n _this._requiredWindowsAhead = 0;\n _this._requiredWindowsBehind = 0;\n // Track the measure version for everything.\n _this._measureVersion = 0;\n // Ensure that scrolls are lazy updated.\n _this._onAsyncScroll = _this._async.debounce(_this._onAsyncScroll, MIN_SCROLL_UPDATE_DELAY, {\n leading: false,\n maxWait: MAX_SCROLL_UPDATE_DELAY,\n });\n _this._onAsyncIdle = _this._async.debounce(_this._onAsyncIdle, IDLE_DEBOUNCE_DELAY, {\n leading: false,\n });\n _this._onAsyncResize = _this._async.debounce(_this._onAsyncResize, RESIZE_DELAY, {\n leading: false,\n });\n _this._onScrollingDone = _this._async.debounce(_this._onScrollingDone, DONE_SCROLLING_WAIT, {\n leading: false,\n });\n _this._cachedPageHeights = {};\n _this._estimatedPageHeight = 0;\n _this._focusedIndex = -1;\n _this._pageCache = {};\n return _this;\n }\n List.getDerivedStateFromProps = function (nextProps, previousState) {\n return previousState.getDerivedStateFromProps(nextProps, previousState);\n };\n Object.defineProperty(List.prototype, \"pageRefs\", {\n get: function () {\n return this._pageRefs;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Scroll to the given index. By default will bring the page the specified item is on into the view. If a callback\n * to measure the height of an individual item is specified, will only scroll to bring the specific item into view.\n *\n * Note: with items of variable height and no passed in `getPageHeight` method, the list might jump after scrolling\n * when windows before/ahead are being rendered, and the estimated height is replaced using actual elements.\n *\n * @param index - Index of item to scroll to\n * @param measureItem - Optional callback to measure the height of an individual item\n * @param scrollToMode - Optional defines where in the window the item should be positioned to when scrolling\n */\n List.prototype.scrollToIndex = function (index, measureItem, scrollToMode) {\n if (scrollToMode === void 0) { scrollToMode = ScrollToMode.auto; }\n var startIndex = this.props.startIndex;\n var renderCount = this._getRenderCount();\n var endIndex = startIndex + renderCount;\n var allowedRect = this._allowedRect;\n var scrollTop = 0;\n var itemsPerPage = 1;\n for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n var pageSpecification = this._getPageSpecification(this.props, itemIndex, allowedRect);\n var pageHeight = pageSpecification.height;\n itemsPerPage = pageSpecification.itemCount;\n var requestedIndexIsInPage = itemIndex <= index && itemIndex + itemsPerPage > index;\n if (requestedIndexIsInPage) {\n // We have found the page. If the user provided a way to measure an individual item, we will try to scroll in\n // just the given item, otherwise we'll only bring the page into view\n if (measureItem && this._scrollElement) {\n var scrollRect = _measureScrollRect(this._scrollElement);\n var scrollPosition = getScrollYPosition(this._scrollElement);\n var scrollWindow = {\n top: scrollPosition,\n bottom: scrollPosition + scrollRect.height,\n };\n // Adjust for actual item position within page\n var itemPositionWithinPage = index - itemIndex;\n for (var itemIndexInPage = 0; itemIndexInPage < itemPositionWithinPage; ++itemIndexInPage) {\n scrollTop += measureItem(itemIndex + itemIndexInPage);\n }\n var scrollBottom = scrollTop + measureItem(index);\n // If scrollToMode is set to something other than auto, we always want to\n // scroll the item into a specific position on the page.\n switch (scrollToMode) {\n case ScrollToMode.top:\n setScrollYPosition(this._scrollElement, scrollTop);\n return;\n case ScrollToMode.bottom:\n setScrollYPosition(this._scrollElement, scrollBottom - scrollRect.height);\n return;\n case ScrollToMode.center:\n setScrollYPosition(this._scrollElement, (scrollTop + scrollBottom - scrollRect.height) / 2);\n return;\n case ScrollToMode.auto:\n default:\n break;\n }\n var itemIsFullyVisible = scrollTop >= scrollWindow.top && scrollBottom <= scrollWindow.bottom;\n if (itemIsFullyVisible) {\n // Item is already visible, do nothing.\n return;\n }\n var itemIsPartiallyAbove = scrollTop < scrollWindow.top;\n var itemIsPartiallyBelow = scrollBottom > scrollWindow.bottom;\n if (itemIsPartiallyAbove) {\n // We will just scroll to 'scrollTop'\n // .------. - scrollTop\n // |Item |\n // | .----|-. - scrollWindow.top\n // '------' |\n // | |\n // '------'\n }\n else if (itemIsPartiallyBelow) {\n // Adjust scrollTop position to just bring in the element\n // .------. - scrollTop\n // | |\n // | .------.\n // '-|----' | - scrollWindow.bottom\n // | Item |\n // '------' - scrollBottom\n scrollTop = scrollBottom - scrollRect.height;\n }\n }\n if (this._scrollElement) {\n setScrollYPosition(this._scrollElement, scrollTop);\n }\n return;\n }\n scrollTop += pageHeight;\n }\n };\n List.prototype.getStartItemIndexInView = function (measureItem) {\n var pages = this.state.pages || [];\n for (var _i = 0, pages_1 = pages; _i < pages_1.length; _i++) {\n var page = pages_1[_i];\n var isPageVisible = !page.isSpacer && (this._scrollTop || 0) >= page.top && (this._scrollTop || 0) <= page.top + page.height;\n if (isPageVisible) {\n if (!measureItem) {\n var rowHeight = Math.floor(page.height / page.itemCount);\n return page.startIndex + Math.floor((this._scrollTop - page.top) / rowHeight);\n }\n else {\n var totalRowHeight = 0;\n for (var itemIndex = page.startIndex; itemIndex < page.startIndex + page.itemCount; itemIndex++) {\n var rowHeight = measureItem(itemIndex);\n if (page.top + totalRowHeight <= this._scrollTop &&\n this._scrollTop < page.top + totalRowHeight + rowHeight) {\n return itemIndex;\n }\n else {\n totalRowHeight += rowHeight;\n }\n }\n }\n }\n }\n return 0;\n };\n List.prototype.componentDidMount = function () {\n this._scrollElement = findScrollableParent(this._root.current);\n this._scrollTop = 0;\n this.setState(__assign(__assign({}, this._updatePages(this.props, this.state)), { hasMounted: true }));\n this._measureVersion++;\n this._events.on(window, 'resize', this._onAsyncResize);\n if (this._root.current) {\n this._events.on(this._root.current, 'focus', this._onFocus, true);\n }\n if (this._scrollElement) {\n this._events.on(this._scrollElement, 'scroll', this._onScroll);\n this._events.on(this._scrollElement, 'scroll', this._onAsyncScroll);\n }\n };\n List.prototype.componentDidUpdate = function (previousProps, previousState) {\n // Multiple updates may have been queued, so the callback will reflect all of them.\n // Re-fetch the current props and states to avoid using a stale props or state captured in the closure.\n var finalProps = this.props;\n var finalState = this.state;\n if (this.state.pagesVersion !== previousState.pagesVersion) {\n // If we weren't provided with the page height, measure the pages\n if (!finalProps.getPageHeight) {\n // If measured version is invalid since we've updated the DOM\n var heightsChanged = this._updatePageMeasurements(finalState.pages);\n // On first render, we should re-measure so that we don't get a visual glitch.\n if (heightsChanged) {\n this._materializedRect = null;\n if (!this._hasCompletedFirstRender) {\n this._hasCompletedFirstRender = true;\n this.setState(this._updatePages(finalProps, finalState));\n }\n else {\n this._onAsyncScroll();\n }\n }\n else {\n // Enqueue an idle bump.\n this._onAsyncIdle();\n }\n }\n else {\n // Enqueue an idle bump\n this._onAsyncIdle();\n }\n // Notify the caller that rendering the new pages has completed\n if (finalProps.onPagesUpdated) {\n finalProps.onPagesUpdated(finalState.pages);\n }\n }\n };\n List.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n delete this._scrollElement;\n };\n List.prototype.shouldComponentUpdate = function (newProps, newState) {\n var oldPages = this.state.pages;\n var newPages = newState.pages;\n var shouldComponentUpdate = false;\n // Update if the page stops scrolling\n if (!newState.isScrolling && this.state.isScrolling) {\n return true;\n }\n if (newProps.version !== this.props.version) {\n return true;\n }\n if (newProps.className !== this.props.className) {\n return true;\n }\n if (newProps.items === this.props.items && oldPages.length === newPages.length) {\n for (var i = 0; i < oldPages.length; i++) {\n var oldPage = oldPages[i];\n var newPage = newPages[i];\n if (oldPage.key !== newPage.key || oldPage.itemCount !== newPage.itemCount) {\n shouldComponentUpdate = true;\n break;\n }\n }\n }\n else {\n shouldComponentUpdate = true;\n }\n return shouldComponentUpdate;\n };\n List.prototype.forceUpdate = function () {\n this._invalidatePageCache();\n // Ensure that when the list is force updated we update the pages first before render.\n this._updateRenderRects(this.props, this.state, true);\n this.setState(this._updatePages(this.props, this.state));\n this._measureVersion++;\n _super.prototype.forceUpdate.call(this);\n };\n /**\n * Get the current height the list and it's pages.\n */\n List.prototype.getTotalListHeight = function () {\n return this._surfaceRect.height;\n };\n List.prototype.render = function () {\n var _a = this.props, className = _a.className, _b = _a.role, role = _b === void 0 ? 'list' : _b, onRenderSurface = _a.onRenderSurface, onRenderRoot = _a.onRenderRoot;\n var _c = this.state.pages, pages = _c === void 0 ? [] : _c;\n var pageElements = [];\n var divProps = getNativeProps(this.props, divProperties);\n for (var _i = 0, pages_2 = pages; _i < pages_2.length; _i++) {\n var page = pages_2[_i];\n pageElements.push(this._renderPage(page));\n }\n var finalOnRenderSurface = onRenderSurface\n ? composeRenderFunction(onRenderSurface, this._onRenderSurface)\n : this._onRenderSurface;\n var finalOnRenderRoot = onRenderRoot\n ? composeRenderFunction(onRenderRoot, this._onRenderRoot)\n : this._onRenderRoot;\n return finalOnRenderRoot({\n rootRef: this._root,\n pages: pages,\n surfaceElement: finalOnRenderSurface({\n surfaceRef: this._surface,\n pages: pages,\n pageElements: pageElements,\n divProps: {\n role: 'presentation',\n className: 'ms-List-surface',\n },\n }),\n divProps: __assign(__assign({}, divProps), { className: css('ms-List', className), role: pageElements.length > 0 ? role : undefined, 'aria-label': pageElements.length > 0 ? divProps['aria-label'] : undefined }),\n });\n };\n List.prototype._shouldVirtualize = function (props) {\n if (props === void 0) { props = this.props; }\n var onShouldVirtualize = props.onShouldVirtualize;\n return !onShouldVirtualize || onShouldVirtualize(props);\n };\n /**\n * when props.items change or forceUpdate called, throw away cached pages\n */\n List.prototype._invalidatePageCache = function () {\n this._pageCache = {};\n };\n List.prototype._renderPage = function (page) {\n var _this = this;\n var usePageCache = this.props.usePageCache;\n var cachedPage;\n // if usePageCache is set and cached page element can be found, just return cached page\n if (usePageCache) {\n cachedPage = this._pageCache[page.key];\n if (cachedPage && cachedPage.pageElement) {\n return cachedPage.pageElement;\n }\n }\n var pageStyle = this._getPageStyle(page);\n var _a = this.props.onRenderPage, onRenderPage = _a === void 0 ? this._onRenderPage : _a;\n var pageElement = onRenderPage({\n page: page,\n className: 'ms-List-page',\n key: page.key,\n ref: function (newRef) {\n _this._pageRefs[page.key] = newRef;\n },\n style: pageStyle,\n role: 'presentation',\n }, this._onRenderPage);\n // cache the first page for now since it is re-rendered a lot times unnecessarily.\n // todo: a more aggresive caching mechanism is to cache pages constaining the items not changed.\n // now we re-render pages too frequently, for example, props.items increased from 30 to 60, although the\n // first 30 items did not change, we still re-rendered all of them in this props.items change.\n if (usePageCache && page.startIndex === 0) {\n this._pageCache[page.key] = {\n page: page,\n pageElement: pageElement,\n };\n }\n return pageElement;\n };\n /** Generate the style object for the page. */\n List.prototype._getPageStyle = function (page) {\n var getPageStyle = this.props.getPageStyle;\n return __assign(__assign({}, (getPageStyle ? getPageStyle(page) : {})), (!page.items\n ? {\n height: page.height,\n }\n : {}));\n };\n /** Track the last item index focused so that we ensure we keep it rendered. */\n List.prototype._onFocus = function (ev) {\n var target = ev.target;\n while (target !== this._surface.current) {\n var indexString = target.getAttribute('data-list-index');\n if (indexString) {\n this._focusedIndex = Number(indexString);\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * Called synchronously to reset the required render range to 0 on scrolling. After async scroll has executed,\n * we will call onAsyncIdle which will reset it back to it's correct value.\n */\n List.prototype._onScroll = function () {\n if (!this.state.isScrolling && !this.props.ignoreScrollingState) {\n this.setState({ isScrolling: true });\n }\n this._resetRequiredWindows();\n this._onScrollingDone();\n };\n List.prototype._resetRequiredWindows = function () {\n this._requiredWindowsAhead = 0;\n this._requiredWindowsBehind = 0;\n };\n /**\n * Debounced method to asynchronously update the visible region on a scroll event.\n */\n List.prototype._onAsyncScroll = function () {\n this._updateRenderRects(this.props, this.state);\n // Only update pages when the visible rect falls outside of the materialized rect.\n if (!this._materializedRect || !_isContainedWithin(this._requiredRect, this._materializedRect)) {\n this.setState(this._updatePages(this.props, this.state));\n }\n else {\n // console.log('requiredRect contained in materialized', this._requiredRect, this._materializedRect);\n }\n };\n /**\n * This is an async debounced method that will try and increment the windows we render. If we can increment\n * either, we increase the amount we render and re-evaluate.\n */\n List.prototype._onAsyncIdle = function () {\n var _a = this.props, renderedWindowsAhead = _a.renderedWindowsAhead, renderedWindowsBehind = _a.renderedWindowsBehind;\n var _b = this, requiredWindowsAhead = _b._requiredWindowsAhead, requiredWindowsBehind = _b._requiredWindowsBehind;\n var windowsAhead = Math.min(renderedWindowsAhead, requiredWindowsAhead + 1);\n var windowsBehind = Math.min(renderedWindowsBehind, requiredWindowsBehind + 1);\n if (windowsAhead !== requiredWindowsAhead || windowsBehind !== requiredWindowsBehind) {\n // console.log('idling', windowsBehind, windowsAhead);\n this._requiredWindowsAhead = windowsAhead;\n this._requiredWindowsBehind = windowsBehind;\n this._updateRenderRects(this.props, this.state);\n this.setState(this._updatePages(this.props, this.state));\n }\n if (renderedWindowsAhead > windowsAhead || renderedWindowsBehind > windowsBehind) {\n // Async increment on next tick.\n this._onAsyncIdle();\n }\n };\n /**\n * Function to call when the list is done scrolling.\n * This function is debounced.\n */\n List.prototype._onScrollingDone = function () {\n if (!this.props.ignoreScrollingState) {\n this.setState({ isScrolling: false });\n }\n };\n List.prototype._onAsyncResize = function () {\n this.forceUpdate();\n };\n List.prototype._updatePages = function (nextProps, previousState) {\n // console.log('updating pages');\n if (!this._requiredRect) {\n this._updateRenderRects(nextProps, previousState);\n }\n var newListState = this._buildPages(nextProps, previousState);\n var oldListPages = previousState.pages;\n this._notifyPageChanges(oldListPages, newListState.pages, this.props);\n return __assign(__assign(__assign({}, previousState), newListState), { pagesVersion: {} });\n };\n /**\n * Notify consumers that the rendered pages have changed\n * @param oldPages - The old pages\n * @param newPages - The new pages\n * @param props - The props to use\n */\n List.prototype._notifyPageChanges = function (oldPages, newPages, props) {\n var onPageAdded = props.onPageAdded, onPageRemoved = props.onPageRemoved;\n if (onPageAdded || onPageRemoved) {\n var renderedIndexes = {};\n for (var _i = 0, oldPages_1 = oldPages; _i < oldPages_1.length; _i++) {\n var page = oldPages_1[_i];\n if (page.items) {\n renderedIndexes[page.startIndex] = page;\n }\n }\n for (var _a = 0, newPages_1 = newPages; _a < newPages_1.length; _a++) {\n var page = newPages_1[_a];\n if (page.items) {\n if (!renderedIndexes[page.startIndex]) {\n this._onPageAdded(page);\n }\n else {\n delete renderedIndexes[page.startIndex];\n }\n }\n }\n for (var index in renderedIndexes) {\n if (renderedIndexes.hasOwnProperty(index)) {\n this._onPageRemoved(renderedIndexes[index]);\n }\n }\n }\n };\n List.prototype._updatePageMeasurements = function (pages) {\n var heightChanged = false;\n // when not in virtualize mode, we render all the items without page measurement\n if (!this._shouldVirtualize()) {\n return heightChanged;\n }\n for (var i = 0; i < pages.length; i++) {\n var page = pages[i];\n if (page.items) {\n heightChanged = this._measurePage(page) || heightChanged;\n }\n }\n return heightChanged;\n };\n /**\n * Given a page, measure its dimensions, update cache.\n * @returns True if the height has changed.\n */\n List.prototype._measurePage = function (page) {\n var hasChangedHeight = false;\n var pageElement = this._pageRefs[page.key];\n var cachedHeight = this._cachedPageHeights[page.startIndex];\n // console.log(' * measure attempt', page.startIndex, cachedHeight);\n if (pageElement &&\n this._shouldVirtualize() &&\n (!cachedHeight || cachedHeight.measureVersion !== this._measureVersion)) {\n var newClientRect = {\n width: pageElement.clientWidth,\n height: pageElement.clientHeight,\n };\n if (newClientRect.height || newClientRect.width) {\n hasChangedHeight = page.height !== newClientRect.height;\n // console.warn(' *** expensive page measure', page.startIndex, page.height, newClientRect.height);\n page.height = newClientRect.height;\n this._cachedPageHeights[page.startIndex] = {\n height: newClientRect.height,\n measureVersion: this._measureVersion,\n };\n this._estimatedPageHeight = Math.round((this._estimatedPageHeight * this._totalEstimates + newClientRect.height) / (this._totalEstimates + 1));\n this._totalEstimates++;\n }\n }\n return hasChangedHeight;\n };\n /** Called when a page has been added to the DOM. */\n List.prototype._onPageAdded = function (page) {\n var onPageAdded = this.props.onPageAdded;\n // console.log('page added', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n if (onPageAdded) {\n onPageAdded(page);\n }\n };\n /** Called when a page has been removed from the DOM. */\n List.prototype._onPageRemoved = function (page) {\n var onPageRemoved = this.props.onPageRemoved;\n // console.log(' --- page removed', page.startIndex, this.state.pages.map(page => page.key).join(', '));\n if (onPageRemoved) {\n onPageRemoved(page);\n }\n };\n /** Build up the pages that should be rendered. */\n List.prototype._buildPages = function (props, state) {\n var renderCount = props.renderCount;\n var items = props.items, startIndex = props.startIndex, getPageHeight = props.getPageHeight;\n renderCount = this._getRenderCount(props);\n var materializedRect = __assign({}, EMPTY_RECT);\n var pages = [];\n var itemsPerPage = 1;\n var pageTop = 0;\n var currentSpacer = null;\n var focusedIndex = this._focusedIndex;\n var endIndex = startIndex + renderCount;\n var shouldVirtualize = this._shouldVirtualize(props);\n // First render is very important to track; when we render cells, we have no idea of estimated page height.\n // So we should default to rendering only the first page so that we can get information.\n // However if the user provides a measure function, let's just assume they know the right heights.\n var isFirstRender = this._estimatedPageHeight === 0 && !getPageHeight;\n var allowedRect = this._allowedRect;\n var _loop_1 = function (itemIndex) {\n var pageSpecification = this_1._getPageSpecification(props, itemIndex, allowedRect);\n var pageHeight = pageSpecification.height;\n var pageData = pageSpecification.data;\n var key = pageSpecification.key;\n itemsPerPage = pageSpecification.itemCount;\n var pageBottom = pageTop + pageHeight - 1;\n var isPageRendered = findIndex(state.pages, function (page) { return !!page.items && page.startIndex === itemIndex; }) > -1;\n var isPageInAllowedRange = !allowedRect || (pageBottom >= allowedRect.top && pageTop <= allowedRect.bottom);\n var isPageInRequiredRange = !this_1._requiredRect || (pageBottom >= this_1._requiredRect.top && pageTop <= this_1._requiredRect.bottom);\n var isPageVisible = (!isFirstRender && (isPageInRequiredRange || (isPageInAllowedRange && isPageRendered))) || !shouldVirtualize;\n var isPageFocused = focusedIndex >= itemIndex && focusedIndex < itemIndex + itemsPerPage;\n var isFirstPage = itemIndex === startIndex;\n // console.log('building page', itemIndex, 'pageTop: ' + pageTop, 'inAllowed: ' +\n // isPageInAllowedRange, 'inRequired: ' + isPageInRequiredRange);\n // Only render whats visible, focused, or first page,\n // or when running in fast rendering mode (not in virtualized mode), we render all current items in pages\n if (isPageVisible || isPageFocused || isFirstPage) {\n if (currentSpacer) {\n pages.push(currentSpacer);\n currentSpacer = null;\n }\n var itemsInPage = Math.min(itemsPerPage, endIndex - itemIndex);\n var newPage = this_1._createPage(key, items.slice(itemIndex, itemIndex + itemsInPage), itemIndex, undefined, undefined, pageData);\n newPage.top = pageTop;\n newPage.height = pageHeight;\n if (this_1._visibleRect && this_1._visibleRect.bottom) {\n newPage.isVisible = pageBottom >= this_1._visibleRect.top && pageTop <= this_1._visibleRect.bottom;\n }\n pages.push(newPage);\n if (isPageInRequiredRange && this_1._allowedRect) {\n _mergeRect(materializedRect, {\n top: pageTop,\n bottom: pageBottom,\n height: pageHeight,\n left: allowedRect.left,\n right: allowedRect.right,\n width: allowedRect.width,\n });\n }\n }\n else {\n if (!currentSpacer) {\n currentSpacer = this_1._createPage(SPACER_KEY_PREFIX + itemIndex, undefined, itemIndex, 0, undefined, pageData, true /*isSpacer*/);\n }\n currentSpacer.height = (currentSpacer.height || 0) + (pageBottom - pageTop) + 1;\n currentSpacer.itemCount += itemsPerPage;\n }\n pageTop += pageBottom - pageTop + 1;\n // in virtualized mode, we render need to render first page then break and measure,\n // otherwise, we render all items without measurement to make rendering fast\n if (isFirstRender && shouldVirtualize) {\n return \"break\";\n }\n };\n var this_1 = this;\n for (var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage) {\n var state_1 = _loop_1(itemIndex);\n if (state_1 === \"break\")\n break;\n }\n if (currentSpacer) {\n currentSpacer.key = SPACER_KEY_PREFIX + 'end';\n pages.push(currentSpacer);\n }\n this._materializedRect = materializedRect;\n // console.log('materialized: ', materializedRect);\n return __assign(__assign({}, state), { pages: pages, measureVersion: this._measureVersion });\n };\n List.prototype._getPageSpecification = function (props, itemIndex, visibleRect) {\n var getPageSpecification = props.getPageSpecification;\n if (getPageSpecification) {\n var pageData = getPageSpecification(itemIndex, visibleRect, props.items);\n var _a = pageData.itemCount, itemCount = _a === void 0 ? this._getItemCountForPage(itemIndex, visibleRect) : _a;\n var _b = pageData.height, height = _b === void 0 ? this._getPageHeight(itemIndex, visibleRect, itemCount) : _b;\n return {\n itemCount: itemCount,\n height: height,\n data: pageData.data,\n key: pageData.key,\n };\n }\n else {\n var itemCount = this._getItemCountForPage(itemIndex, visibleRect);\n return {\n itemCount: itemCount,\n height: this._getPageHeight(itemIndex, visibleRect, itemCount),\n };\n }\n };\n /**\n * Get the pixel height of a give page. Will use the props getPageHeight first, and if not provided, fallback to\n * cached height, or estimated page height, or default page height.\n */\n List.prototype._getPageHeight = function (itemIndex, visibleRect, itemsPerPage) {\n if (this.props.getPageHeight) {\n return this.props.getPageHeight(itemIndex, visibleRect, itemsPerPage, this.props.items);\n }\n else {\n var cachedHeight = this._cachedPageHeights[itemIndex];\n return cachedHeight ? cachedHeight.height : this._estimatedPageHeight || DEFAULT_PAGE_HEIGHT;\n }\n };\n List.prototype._getItemCountForPage = function (itemIndex, visibileRect) {\n var itemsPerPage = this.props.getItemCountForPage\n ? this.props.getItemCountForPage(itemIndex, visibileRect)\n : DEFAULT_ITEMS_PER_PAGE;\n return itemsPerPage ? itemsPerPage : DEFAULT_ITEMS_PER_PAGE;\n };\n List.prototype._createPage = function (pageKey, items, startIndex, count, style, data, isSpacer) {\n if (startIndex === void 0) { startIndex = -1; }\n if (count === void 0) { count = items ? items.length : 0; }\n if (style === void 0) { style = {}; }\n pageKey = pageKey || PAGE_KEY_PREFIX + startIndex;\n var cachedPage = this._pageCache[pageKey];\n if (cachedPage && cachedPage.page) {\n return cachedPage.page;\n }\n return {\n key: pageKey,\n startIndex: startIndex,\n itemCount: count,\n items: items,\n style: style,\n top: 0,\n height: 0,\n data: data,\n isSpacer: isSpacer || false,\n };\n };\n List.prototype._getRenderCount = function (props) {\n var _a = props || this.props, items = _a.items, startIndex = _a.startIndex, renderCount = _a.renderCount;\n return renderCount === undefined ? (items ? items.length - startIndex : 0) : renderCount;\n };\n /** Calculate the visible rect within the list where top: 0 and left: 0 is the top/left of the list. */\n List.prototype._updateRenderRects = function (props, state, forceUpdate) {\n var renderedWindowsAhead = props.renderedWindowsAhead, renderedWindowsBehind = props.renderedWindowsBehind;\n var pages = state.pages;\n // when not in virtualize mode, we render all items without measurement to optimize page rendering perf\n if (!this._shouldVirtualize(props)) {\n return;\n }\n var surfaceRect = this._surfaceRect || __assign({}, EMPTY_RECT);\n var scrollHeight = getScrollHeight(this._scrollElement);\n var scrollTop = getScrollYPosition(this._scrollElement);\n // WARNING: EXPENSIVE CALL! We need to know the surface top relative to the window.\n // This needs to be called to recalculate when new pages should be loaded.\n // We check to see how far we've scrolled and if it's further than a third of a page we run it again.\n if (this._surface.current &&\n (forceUpdate ||\n !pages ||\n !this._surfaceRect ||\n !scrollHeight ||\n scrollHeight !== this._scrollHeight ||\n Math.abs(this._scrollTop - scrollTop) > this._estimatedPageHeight / 3)) {\n surfaceRect = this._surfaceRect = _measureSurfaceRect(this._surface.current);\n this._scrollTop = scrollTop;\n }\n // If the scroll height has changed, something in the container likely resized and\n // we should redo the page heights incase their content resized.\n if (forceUpdate || !scrollHeight || scrollHeight !== this._scrollHeight) {\n this._measureVersion++;\n }\n this._scrollHeight = scrollHeight || 0;\n // If the surface is above the container top or below the container bottom, or if this is not the first\n // render return empty rect.\n // The first time the list gets rendered we need to calculate the rectangle. The width of the list is\n // used to calculate the width of the list items.\n var visibleTop = Math.max(0, -surfaceRect.top);\n var win = getWindow(this._root.current);\n var visibleRect = {\n top: visibleTop,\n left: surfaceRect.left,\n bottom: visibleTop + win.innerHeight,\n right: surfaceRect.right,\n width: surfaceRect.width,\n height: win.innerHeight,\n };\n // The required/allowed rects are adjusted versions of the visible rect.\n this._requiredRect = _expandRect(visibleRect, this._requiredWindowsBehind, this._requiredWindowsAhead);\n this._allowedRect = _expandRect(visibleRect, renderedWindowsBehind, renderedWindowsAhead);\n // store the visible rect for later use.\n this._visibleRect = visibleRect;\n };\n List.defaultProps = {\n startIndex: 0,\n onRenderCell: function (item, index, containsFocus) { return React.createElement(React.Fragment, null, (item && item.name) || ''); },\n onRenderCellConditional: undefined,\n renderedWindowsAhead: DEFAULT_RENDERED_WINDOWS_AHEAD,\n renderedWindowsBehind: DEFAULT_RENDERED_WINDOWS_BEHIND,\n };\n return List;\n}(React.Component));\nexport { List };\nfunction _expandRect(rect, pagesBefore, pagesAfter) {\n var top = rect.top - pagesBefore * rect.height;\n var height = rect.height + (pagesBefore + pagesAfter) * rect.height;\n return {\n top: top,\n bottom: top + height,\n height: height,\n left: rect.left,\n right: rect.right,\n width: rect.width,\n };\n}\nfunction _isContainedWithin(innerRect, outerRect) {\n return (innerRect.top >= outerRect.top &&\n innerRect.left >= outerRect.left &&\n innerRect.bottom <= outerRect.bottom &&\n innerRect.right <= outerRect.right);\n}\nfunction _mergeRect(targetRect, newRect) {\n targetRect.top = newRect.top < targetRect.top || targetRect.top === -1 ? newRect.top : targetRect.top;\n targetRect.left = newRect.left < targetRect.left || targetRect.left === -1 ? newRect.left : targetRect.left;\n targetRect.bottom =\n newRect.bottom > targetRect.bottom || targetRect.bottom === -1 ? newRect.bottom : targetRect.bottom;\n targetRect.right = newRect.right > targetRect.right || targetRect.right === -1 ? newRect.right : targetRect.right;\n targetRect.width = targetRect.right - targetRect.left + 1;\n targetRect.height = targetRect.bottom - targetRect.top + 1;\n return targetRect;\n}\n//# sourceMappingURL=List.js.map","/**\n * {@docCategory List}\n */\nexport var ScrollToMode = {\n /**\n * Does not make any consideration to where in the viewport the item should align to.\n */\n auto: 0,\n /**\n * Attempts to scroll the list so the top of the desired item is aligned with the top of the viewport.\n */\n top: 1,\n /**\n * Attempts to scroll the list so the bottom of the desired item is aligned with the bottom of the viewport.\n */\n bottom: 2,\n /**\n * Attempts to scroll the list so the desired item is in the exact center of the viewport.\n */\n center: 3,\n};\n//# sourceMappingURL=List.types.js.map","import { EventGroup } from './EventGroup';\nimport { findScrollableParent } from './scroll';\nimport { getRect } from './dom/getRect';\nvar SCROLL_ITERATION_DELAY = 16;\nvar SCROLL_GUTTER = 100;\nvar MAX_SCROLL_VELOCITY = 15;\n/**\n * AutoScroll simply hooks up mouse events given a parent element, and scrolls the container\n * up/down depending on how close the mouse is to the top/bottom of the container.\n *\n * Once you don't want autoscroll any more, just dispose the helper and it will unhook events.\n *\n * @public\n * {@docCategory AutoScroll}\n */\nvar AutoScroll = /** @class */ (function () {\n function AutoScroll(element) {\n this._events = new EventGroup(this);\n this._scrollableParent = findScrollableParent(element);\n this._incrementScroll = this._incrementScroll.bind(this);\n this._scrollRect = getRect(this._scrollableParent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this._scrollableParent === window) {\n this._scrollableParent = document.body;\n }\n if (this._scrollableParent) {\n this._events.on(window, 'mousemove', this._onMouseMove, true);\n this._events.on(window, 'touchmove', this._onTouchMove, true);\n }\n }\n AutoScroll.prototype.dispose = function () {\n this._events.dispose();\n this._stopScroll();\n };\n AutoScroll.prototype._onMouseMove = function (ev) {\n this._computeScrollVelocity(ev);\n };\n AutoScroll.prototype._onTouchMove = function (ev) {\n if (ev.touches.length > 0) {\n this._computeScrollVelocity(ev);\n }\n };\n AutoScroll.prototype._computeScrollVelocity = function (ev) {\n if (!this._scrollRect) {\n return;\n }\n var clientX;\n var clientY;\n if ('clientX' in ev) {\n clientX = ev.clientX;\n clientY = ev.clientY;\n }\n else {\n clientX = ev.touches[0].clientX;\n clientY = ev.touches[0].clientY;\n }\n var scrollRectTop = this._scrollRect.top;\n var scrollRectLeft = this._scrollRect.left;\n var scrollClientBottom = scrollRectTop + this._scrollRect.height - SCROLL_GUTTER;\n var scrollClientRight = scrollRectLeft + this._scrollRect.width - SCROLL_GUTTER;\n // variables to use for alternating scroll direction\n var scrollRect;\n var clientDirection;\n var scrollClient;\n // if either of these conditions are met we are scrolling vertically else horizontally\n if (clientY < scrollRectTop + SCROLL_GUTTER || clientY > scrollClientBottom) {\n clientDirection = clientY;\n scrollRect = scrollRectTop;\n scrollClient = scrollClientBottom;\n this._isVerticalScroll = true;\n }\n else {\n clientDirection = clientX;\n scrollRect = scrollRectLeft;\n scrollClient = scrollClientRight;\n this._isVerticalScroll = false;\n }\n // calculate scroll velocity and direction\n if (clientDirection < scrollRect + SCROLL_GUTTER) {\n this._scrollVelocity = Math.max(-MAX_SCROLL_VELOCITY, -MAX_SCROLL_VELOCITY * ((SCROLL_GUTTER - (clientDirection - scrollRect)) / SCROLL_GUTTER));\n }\n else if (clientDirection > scrollClient) {\n this._scrollVelocity = Math.min(MAX_SCROLL_VELOCITY, MAX_SCROLL_VELOCITY * ((clientDirection - scrollClient) / SCROLL_GUTTER));\n }\n else {\n this._scrollVelocity = 0;\n }\n if (this._scrollVelocity) {\n this._startScroll();\n }\n else {\n this._stopScroll();\n }\n };\n AutoScroll.prototype._startScroll = function () {\n if (!this._timeoutId) {\n this._incrementScroll();\n }\n };\n AutoScroll.prototype._incrementScroll = function () {\n if (this._scrollableParent) {\n if (this._isVerticalScroll) {\n this._scrollableParent.scrollTop += Math.round(this._scrollVelocity);\n }\n else {\n this._scrollableParent.scrollLeft += Math.round(this._scrollVelocity);\n }\n }\n this._timeoutId = setTimeout(this._incrementScroll, SCROLL_ITERATION_DELAY);\n };\n AutoScroll.prototype._stopScroll = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n delete this._timeoutId;\n }\n };\n return AutoScroll;\n}());\nexport { AutoScroll };\n//# sourceMappingURL=AutoScroll.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, AutoScroll, classNamesFunction, findScrollableParent, getDistanceBetweenPoints, getRTL, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n// We want to make the marquee selection start when the user drags a minimum distance. Otherwise we'd start\n// the drag even if they just click an item without moving.\nvar MIN_DRAG_DISTANCE = 5;\n/**\n * MarqueeSelection component abstracts managing a draggable rectangle which sets items selected/not selected.\n * Elements which have data-selectable-index attributes are queried and measured once to determine if they\n * fall within the bounds of the rectangle. The measure is memoized during the drag as a performance optimization\n * so if the items change sizes while dragging, that could cause incorrect results.\n */\nvar MarqueeSelectionBase = /** @class */ (function (_super) {\n __extends(MarqueeSelectionBase, _super);\n function MarqueeSelectionBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._onMouseDown = function (ev) {\n var _a = _this.props, isEnabled = _a.isEnabled, onShouldStartSelection = _a.onShouldStartSelection;\n // Ensure the mousedown is within the boundaries of the target. If not, it may have been a click on a scrollbar.\n if (_this._isMouseEventOnScrollbar(ev)) {\n return;\n }\n if (_this._isInSelectionToggle(ev)) {\n return;\n }\n if (!_this._isTouch &&\n isEnabled &&\n !_this._isDragStartInSelection(ev) &&\n (!onShouldStartSelection || onShouldStartSelection(ev))) {\n if (_this._scrollableSurface && ev.button === 0 && _this._root.current) {\n _this._selectedIndicies = {};\n _this._preservedIndicies = undefined;\n _this._events.on(window, 'mousemove', _this._onAsyncMouseMove, true);\n _this._events.on(_this._scrollableParent, 'scroll', _this._onAsyncMouseMove);\n _this._events.on(window, 'click', _this._onMouseUp, true);\n _this._autoScroll = new AutoScroll(_this._root.current);\n _this._scrollTop = _this._scrollableSurface.scrollTop;\n _this._scrollLeft = _this._scrollableSurface.scrollLeft;\n _this._rootRect = _this._root.current.getBoundingClientRect();\n _this._onMouseMove(ev);\n }\n }\n };\n _this._onTouchStart = function (ev) {\n _this._isTouch = true;\n _this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 0);\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._isTouch = true;\n _this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 0);\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n dragRect: undefined,\n };\n return _this;\n }\n MarqueeSelectionBase.prototype.componentDidMount = function () {\n this._scrollableParent = findScrollableParent(this._root.current);\n this._scrollableSurface = this._scrollableParent === window ? document.body : this._scrollableParent;\n // When scroll events come from window, we need to read scrollTop values from the body.\n var hitTarget = this.props.isDraggingConstrainedToRoot ? this._root.current : this._scrollableSurface;\n this._events.on(hitTarget, 'mousedown', this._onMouseDown);\n this._events.on(hitTarget, 'touchstart', this._onTouchStart, true);\n this._events.on(hitTarget, 'pointerdown', this._onPointerDown, true);\n };\n MarqueeSelectionBase.prototype.componentWillUnmount = function () {\n if (this._autoScroll) {\n this._autoScroll.dispose();\n }\n delete this._scrollableParent;\n delete this._scrollableSurface;\n this._events.dispose();\n this._async.dispose();\n };\n MarqueeSelectionBase.prototype.render = function () {\n var _a = this.props, rootProps = _a.rootProps, children = _a.children, theme = _a.theme, className = _a.className, styles = _a.styles;\n var dragRect = this.state.dragRect;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", __assign({}, rootProps, { className: classNames.root, ref: this._root }),\n children,\n dragRect && React.createElement(\"div\", { className: classNames.dragMask }),\n dragRect && (React.createElement(\"div\", { className: classNames.box, style: dragRect },\n React.createElement(\"div\", { className: classNames.boxFill })))));\n };\n /** Determine if the mouse event occured on a scrollbar of the target element. */\n MarqueeSelectionBase.prototype._isMouseEventOnScrollbar = function (ev) {\n var targetElement = ev.target;\n var targetScrollbarWidth = targetElement.offsetWidth - targetElement.clientWidth;\n var targetScrollbarHeight = targetElement.offsetHeight - targetElement.clientHeight;\n if (targetScrollbarWidth || targetScrollbarHeight) {\n var targetRect = targetElement.getBoundingClientRect();\n // Check vertical scroll\n if (getRTL(this.props.theme)) {\n if (ev.clientX < targetRect.left + targetScrollbarWidth) {\n return true;\n }\n }\n else {\n if (ev.clientX > targetRect.left + targetElement.clientWidth) {\n return true;\n }\n }\n // Check horizontal scroll\n if (ev.clientY > targetRect.top + targetElement.clientHeight) {\n return true;\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._getRootRect = function () {\n return {\n left: this._rootRect.left +\n (this._scrollableSurface ? this._scrollLeft - this._scrollableSurface.scrollLeft : this._scrollLeft),\n top: this._rootRect.top +\n (this._scrollableSurface ? this._scrollTop - this._scrollableSurface.scrollTop : this._scrollTop),\n width: this._rootRect.width,\n height: this._rootRect.height,\n };\n };\n MarqueeSelectionBase.prototype._onAsyncMouseMove = function (ev) {\n var _this = this;\n this._async.requestAnimationFrame(function () {\n _this._onMouseMove(ev);\n });\n ev.stopPropagation();\n ev.preventDefault();\n };\n MarqueeSelectionBase.prototype._onMouseMove = function (ev) {\n if (!this._autoScroll) {\n return;\n }\n if (ev.clientX !== undefined) {\n this._lastMouseEvent = ev;\n }\n var rootRect = this._getRootRect();\n var currentPoint = { left: ev.clientX - rootRect.left, top: ev.clientY - rootRect.top };\n if (!this._dragOrigin) {\n this._dragOrigin = currentPoint;\n }\n if (ev.buttons !== undefined && ev.buttons === 0) {\n this._onMouseUp(ev);\n }\n else {\n if (this.state.dragRect || getDistanceBetweenPoints(this._dragOrigin, currentPoint) > MIN_DRAG_DISTANCE) {\n if (!this.state.dragRect) {\n var selection = this.props.selection;\n if (!ev.shiftKey) {\n selection.setAllSelected(false);\n }\n this._preservedIndicies = selection && selection.getSelectedIndices && selection.getSelectedIndices();\n }\n // We need to constrain the current point to the rootRect boundaries.\n var constrainedPoint = this.props.isDraggingConstrainedToRoot\n ? {\n left: Math.max(0, Math.min(rootRect.width, this._lastMouseEvent.clientX - rootRect.left)),\n top: Math.max(0, Math.min(rootRect.height, this._lastMouseEvent.clientY - rootRect.top)),\n }\n : {\n left: this._lastMouseEvent.clientX - rootRect.left,\n top: this._lastMouseEvent.clientY - rootRect.top,\n };\n var dragRect = {\n left: Math.min(this._dragOrigin.left || 0, constrainedPoint.left),\n top: Math.min(this._dragOrigin.top || 0, constrainedPoint.top),\n width: Math.abs(constrainedPoint.left - (this._dragOrigin.left || 0)),\n height: Math.abs(constrainedPoint.top - (this._dragOrigin.top || 0)),\n };\n this._evaluateSelection(dragRect, rootRect);\n this.setState({ dragRect: dragRect });\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._onMouseUp = function (ev) {\n this._events.off(window);\n this._events.off(this._scrollableParent, 'scroll');\n if (this._autoScroll) {\n this._autoScroll.dispose();\n }\n this._autoScroll = this._dragOrigin = this._lastMouseEvent = undefined;\n this._selectedIndicies = this._itemRectCache = undefined;\n if (this.state.dragRect) {\n this.setState({\n dragRect: undefined,\n });\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n MarqueeSelectionBase.prototype._isPointInRectangle = function (rectangle, point) {\n return (!!point.top &&\n rectangle.top < point.top &&\n rectangle.bottom > point.top &&\n !!point.left &&\n rectangle.left < point.left &&\n rectangle.right > point.left);\n };\n /**\n * We do not want to start the marquee if we're trying to marquee\n * from within an existing marquee selection.\n */\n MarqueeSelectionBase.prototype._isDragStartInSelection = function (ev) {\n var selection = this.props.selection;\n if (!this._root.current || (selection && selection.getSelectedCount() === 0)) {\n return false;\n }\n var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n for (var i = 0; i < allElements.length; i++) {\n var element = allElements[i];\n var index = Number(element.getAttribute('data-selection-index'));\n if (selection.isIndexSelected(index)) {\n var itemRect = element.getBoundingClientRect();\n if (this._isPointInRectangle(itemRect, { left: ev.clientX, top: ev.clientY })) {\n return true;\n }\n }\n }\n return false;\n };\n MarqueeSelectionBase.prototype._isInSelectionToggle = function (ev) {\n var element = ev.target;\n while (element && element !== this._root.current) {\n if (element.getAttribute('data-selection-toggle') === 'true') {\n return true;\n }\n element = element.parentElement;\n }\n return false;\n };\n MarqueeSelectionBase.prototype._evaluateSelection = function (dragRect, rootRect) {\n // Break early if we don't need to evaluate.\n if (!dragRect || !this._root.current) {\n return;\n }\n var selection = this.props.selection;\n var allElements = this._root.current.querySelectorAll('[data-selection-index]');\n if (!this._itemRectCache) {\n this._itemRectCache = {};\n }\n for (var i = 0; i < allElements.length; i++) {\n var element = allElements[i];\n var index = element.getAttribute('data-selection-index');\n // Pull the memoized rectangle for the item, or the get the rect and memoize.\n var itemRect = this._itemRectCache[index];\n if (!itemRect) {\n itemRect = element.getBoundingClientRect();\n // Normalize the item rect to the dragRect coordinates.\n itemRect = {\n left: itemRect.left - rootRect.left,\n top: itemRect.top - rootRect.top,\n width: itemRect.width,\n height: itemRect.height,\n right: itemRect.left - rootRect.left + itemRect.width,\n bottom: itemRect.top - rootRect.top + itemRect.height,\n };\n if (itemRect.width > 0 && itemRect.height > 0) {\n this._itemRectCache[index] = itemRect;\n }\n }\n if (itemRect.top < dragRect.top + dragRect.height &&\n itemRect.bottom > dragRect.top &&\n itemRect.left < dragRect.left + dragRect.width &&\n itemRect.right > dragRect.left) {\n this._selectedIndicies[index] = true;\n }\n else {\n delete this._selectedIndicies[index];\n }\n }\n // set previousSelectedIndices to be all of the selected indices from last time\n var previousSelectedIndices = this._allSelectedIndices || {};\n this._allSelectedIndices = {};\n // set all indices that are supposed to be selected in _allSelectedIndices\n for (var index in this._selectedIndicies) {\n if (this._selectedIndicies.hasOwnProperty(index)) {\n this._allSelectedIndices[index] = true;\n }\n }\n if (this._preservedIndicies) {\n for (var _i = 0, _a = this._preservedIndicies; _i < _a.length; _i++) {\n var index = _a[_i];\n this._allSelectedIndices[index] = true;\n }\n }\n // check if needs to update selection, only when current _allSelectedIndices\n // is different than previousSelectedIndices\n var needToUpdate = false;\n for (var index in this._allSelectedIndices) {\n if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n needToUpdate = true;\n break;\n }\n }\n if (!needToUpdate) {\n for (var index in previousSelectedIndices) {\n if (this._allSelectedIndices[index] !== previousSelectedIndices[index]) {\n needToUpdate = true;\n break;\n }\n }\n }\n // only update selection when needed\n if (needToUpdate) {\n // Stop change events, clear selection to re-populate.\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n for (var _b = 0, _c = Object.keys(this._allSelectedIndices); _b < _c.length; _b++) {\n var index = _c[_b];\n selection.setIndexSelected(Number(index), true, false);\n }\n selection.setChangeEvents(true);\n }\n };\n MarqueeSelectionBase.defaultProps = {\n rootTagName: 'div',\n rootProps: {},\n isEnabled: true,\n };\n return MarqueeSelectionBase;\n}(React.Component));\nexport { MarqueeSelectionBase };\n//# sourceMappingURL=MarqueeSelection.base.js.map","import { styled } from '../../Utilities';\nimport { MarqueeSelectionBase } from './MarqueeSelection.base';\nimport { getStyles } from './MarqueeSelection.styles';\nexport var MarqueeSelection = \n// TODO: MarqueeSelectionBase defaultProps are not lining up with IMarqueeSelectionProps, so we have to be explicit\n// with styled here. defaultProps.rootTagName doesn't appear to be used anywhere and defaultProps.rootProps is not\n// in IMarqueeSelectionProps.\nstyled(MarqueeSelectionBase, getStyles, undefined, {\n scope: 'MarqueeSelection',\n});\n//# sourceMappingURL=MarqueeSelection.js.map","import { HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var theme = props.theme, className = props.className;\n var palette = theme.palette;\n return {\n root: [\n className,\n {\n position: 'relative',\n cursor: 'default',\n },\n ],\n dragMask: [\n {\n position: 'absolute',\n background: 'rgba(255, 0, 0, 0)',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'none',\n backgroundColor: 'transparent',\n },\n _a),\n },\n ],\n box: [\n {\n position: 'absolute',\n boxSizing: 'border-box',\n border: \"1px solid \".concat(palette.themePrimary),\n pointerEvents: 'none',\n zIndex: 10,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n ],\n boxFill: [\n {\n position: 'absolute',\n boxSizing: 'border-box',\n backgroundColor: palette.themePrimary,\n opacity: 0.1,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n background: 'none',\n backgroundColor: 'transparent',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=MarqueeSelection.styles.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, htmlElementProperties, css } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nimport { MessageBarType } from './MessageBar.types';\nimport { useId, useBoolean } from '@fluentui/react-hooks';\nvar ICON_MAP = (_a = {},\n _a[MessageBarType.info] = 'Info',\n _a[MessageBarType.warning] = 'Info',\n _a[MessageBarType.error] = 'ErrorBadge',\n _a[MessageBarType.blocked] = 'Blocked2',\n _a[MessageBarType.severeWarning] = 'Warning',\n _a[MessageBarType.success] = 'Completed',\n _a);\nvar COMPONENT_NAME = 'MessageBar';\nvar getClassNames = classNamesFunction();\nvar getAnnouncementPriority = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'assertive';\n }\n return 'polite';\n};\nvar getRole = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'alert';\n }\n return 'status';\n};\nexport var MessageBarBase = React.forwardRef(function (props, ref) {\n var _a = useBoolean(false), expandSingleLine = _a[0], toggleExpandSingleLine = _a[1].toggle;\n var labelId = useId('MessageBar');\n var actions = props.actions, className = props.className, children = props.children, \n // eslint-disable-next-line deprecation/deprecation\n overflowButtonAriaLabel = props.overflowButtonAriaLabel, dismissIconProps = props.dismissIconProps, styles = props.styles, theme = props.theme, _b = props.messageBarType, messageBarType = _b === void 0 ? MessageBarType.info : _b, _c = props.onDismiss, onDismiss = _c === void 0 ? undefined : _c, _d = props.isMultiline, isMultiline = _d === void 0 ? true : _d, truncated = props.truncated, dismissButtonAriaLabel = props.dismissButtonAriaLabel, messageBarIconProps = props.messageBarIconProps, role = props.role, _e = props.delayedRender, delayedRender = _e === void 0 ? true : _e, expandButtonProps = props.expandButtonProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'className',\n 'role',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n messageBarType: messageBarType || MessageBarType.info,\n onDismiss: onDismiss !== undefined,\n actions: actions !== undefined,\n truncated: truncated,\n isMultiline: isMultiline,\n expandSingleLine: expandSingleLine,\n className: className,\n });\n var expandIconProps = { iconName: expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' };\n var regionProps = actions || onDismiss ? { 'aria-describedby': labelId, role: 'region' } : {};\n var actionsDiv = actions ? React.createElement(\"div\", { className: classNames.actions }, actions) : null;\n var dismissButton = onDismiss ? (React.createElement(IconButton, { disabled: false, className: classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: dismissButtonAriaLabel, ariaLabel: dismissButtonAriaLabel })) : null;\n return (React.createElement(\"div\", __assign({ ref: ref, className: classNames.root }, regionProps),\n React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.iconContainer, \"aria-hidden\": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: ICON_MAP[messageBarType], className: classNames.icon }))),\n React.createElement(\"div\", { className: classNames.text, id: labelId, role: role || getRole(messageBarType), \"aria-live\": getAnnouncementPriority(messageBarType) },\n React.createElement(\"span\", __assign({ className: classNames.innerText }, nativeProps), delayedRender ? (React.createElement(DelayedRender, null,\n React.createElement(\"span\", null, children))) : (\n // this span is probably not necessary, but preserving it for now in case anyone\n // has styling that expects it to be present\n React.createElement(\"span\", null, children)))),\n /* singleline expand/collapse button */ !isMultiline && !actionsDiv && truncated && (React.createElement(\"div\", { className: classNames.expandSingleLine },\n React.createElement(IconButton, __assign({ disabled: false, className: classNames.expand, onClick: toggleExpandSingleLine, iconProps: expandIconProps, ariaLabel: overflowButtonAriaLabel, \"aria-expanded\": expandSingleLine }, expandButtonProps)))),\n !isMultiline && actionsDiv,\n /* singleline dismiss */ !isMultiline && dismissButton && (React.createElement(\"div\", { className: classNames.dismissSingleLine }, dismissButton)),\n isMultiline && dismissButton),\n isMultiline && actionsDiv));\n});\nMessageBarBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MessageBar.base.js.map","var _a, _b, _c, _d;\nimport { __assign } from \"tslib\";\nimport { HighContrastSelector, HighContrastSelectorWhite, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { MessageBarType } from './MessageBar.types';\nvar GlobalClassNames = {\n root: 'ms-MessageBar',\n error: 'ms-MessageBar--error',\n blocked: 'ms-MessageBar--blocked',\n severeWarning: 'ms-MessageBar--severeWarning',\n success: 'ms-MessageBar--success',\n warning: 'ms-MessageBar--warning',\n multiline: 'ms-MessageBar-multiline',\n singleline: 'ms-MessageBar-singleline',\n dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',\n expandingSingleLine: 'ms-MessageBar-expandingSingleLine',\n content: 'ms-MessageBar-content',\n iconContainer: 'ms-MessageBar-icon',\n text: 'ms-MessageBar-text',\n innerText: 'ms-MessageBar-innerText',\n dismissSingleLine: 'ms-MessageBar-dismissSingleLine',\n expandSingleLine: 'ms-MessageBar-expandSingleLine',\n dismissal: 'ms-MessageBar-dismissal',\n expand: 'ms-MessageBar-expand',\n actions: 'ms-MessageBar-actions',\n actionsSingleline: 'ms-MessageBar-actionsSingleLine',\n};\nvar backgroundColor = (_a = {},\n _a[MessageBarType.error] = 'errorBackground',\n _a[MessageBarType.blocked] = 'errorBackground',\n _a[MessageBarType.success] = 'successBackground',\n _a[MessageBarType.warning] = 'warningBackground',\n _a[MessageBarType.severeWarning] = 'severeWarningBackground',\n _a[MessageBarType.info] = 'infoBackground',\n _a);\nvar iconColor = (_b = {},\n _b[MessageBarType.error] = 'errorIcon',\n _b[MessageBarType.blocked] = 'errorIcon',\n _b[MessageBarType.success] = 'successIcon',\n _b[MessageBarType.warning] = 'warningIcon',\n _b[MessageBarType.severeWarning] = 'severeWarningIcon',\n _b[MessageBarType.info] = 'infoIcon',\n _b);\nvar highContrastBorderColor = (_c = {},\n _c[MessageBarType.error] = '#ff0000',\n _c[MessageBarType.blocked] = '#ff0000',\n _c[MessageBarType.success] = '#bad80a',\n _c[MessageBarType.warning] = '#fff100',\n _c[MessageBarType.severeWarning] = '#ff0000',\n _c[MessageBarType.info] = 'WindowText',\n _c);\nvar highContrastWhiteBorderColor = (_d = {},\n _d[MessageBarType.error] = '#e81123',\n _d[MessageBarType.blocked] = '#e81123',\n _d[MessageBarType.success] = '#107c10',\n _d[MessageBarType.warning] = '#966400',\n _d[MessageBarType.severeWarning] = '#d83b01',\n _d[MessageBarType.info] = 'WindowText',\n _d);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _m = props.messageBarType, messageBarType = _m === void 0 ? MessageBarType.info : _m;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var dismissalAndExpandIconStyle = {\n fontSize: IconFontSizes.xSmall,\n height: 10,\n lineHeight: '10px',\n color: semanticColors.messageText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _a),\n };\n var dismissalAndExpandStyle = [\n getFocusStyle(theme, {\n inset: 1,\n highContrastStyle: {\n outlineOffset: '-6px',\n outline: '1px solid Highlight',\n },\n borderColor: 'transparent',\n }),\n {\n flexShrink: 0,\n width: 32,\n height: 32,\n padding: '8px 12px',\n selectors: {\n '& .ms-Button-icon': dismissalAndExpandIconStyle,\n ':hover': {\n backgroundColor: 'transparent',\n },\n ':active': {\n backgroundColor: 'transparent',\n },\n },\n },\n ];\n return {\n root: [\n classNames.root,\n fonts.medium,\n messageBarType === MessageBarType.error && classNames.error,\n messageBarType === MessageBarType.blocked && classNames.blocked,\n messageBarType === MessageBarType.severeWarning && classNames.severeWarning,\n messageBarType === MessageBarType.success && classNames.success,\n messageBarType === MessageBarType.warning && classNames.warning,\n isMultiline ? classNames.multiline : classNames.singleline,\n !isMultiline && onDismiss && classNames.dismissalSingleLine,\n !isMultiline && truncated && classNames.expandingSingleLine,\n {\n background: semanticColors[backgroundColor[messageBarType]],\n boxSizing: 'border-box',\n color: semanticColors.messageText,\n minHeight: 32,\n width: '100%',\n display: 'flex',\n wordBreak: 'break-word',\n selectors: (_b = {\n '.ms-Link': {\n color: semanticColors.messageLink,\n selectors: {\n ':hover': {\n color: semanticColors.messageLinkHovered,\n },\n },\n }\n },\n _b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: 'transparent', border: \"1px solid \".concat(highContrastBorderColor[messageBarType]), color: 'WindowText' }),\n _b[HighContrastSelectorWhite] = {\n border: \"1px solid \".concat(highContrastWhiteBorderColor[messageBarType]),\n },\n _b),\n },\n isMultiline && {\n flexDirection: 'column',\n },\n className,\n ],\n content: [\n classNames.content,\n (_c = {\n display: 'flex',\n width: '100%',\n lineHeight: 'normal'\n },\n _c[SmallScreenSelector] = {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr auto',\n gridTemplateRows: '1fr auto',\n gridTemplateAreas: \"\\n \\\"icon text close\\\"\\n \\\"action action action\\\"\\n \",\n },\n _c),\n ],\n iconContainer: [\n classNames.iconContainer,\n (_d = {\n fontSize: IconFontSizes.medium,\n minWidth: 16,\n minHeight: 16,\n display: 'flex',\n flexShrink: 0,\n margin: '8px 0 8px 12px'\n },\n _d[SmallScreenSelector] = {\n gridArea: 'icon',\n },\n _d),\n ],\n icon: {\n color: semanticColors[iconColor[messageBarType]],\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _e),\n },\n text: [\n classNames.text,\n __assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), (_f = {}, _f[SmallScreenSelector] = {\n gridArea: 'text',\n }, _f.selectors = (_g = {},\n _g[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _g), _f)),\n !onDismiss && {\n marginRight: 12,\n },\n ],\n innerText: [\n classNames.innerText,\n {\n lineHeight: 16,\n selectors: {\n '& span a:last-child': {\n paddingLeft: 4,\n },\n },\n },\n truncated && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n !isMultiline && {\n // In high contrast this causes the top and bottom of links' focus outline to be clipped\n // (not sure of a good way around that while still maintaining text clipping)\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n !isMultiline &&\n !truncated && {\n selectors: (_h = {},\n _h[SmallScreenSelector] = {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n _h),\n },\n expandSingleLine && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n ],\n dismissSingleLine: [\n classNames.dismissSingleLine,\n (_j = {},\n _j[SmallScreenSelector] = {\n gridArea: 'close',\n },\n _j),\n ],\n expandSingleLine: classNames.expandSingleLine,\n dismissal: [classNames.dismissal, dismissalAndExpandStyle],\n expand: [classNames.expand, dismissalAndExpandStyle],\n actions: [\n isMultiline ? classNames.actions : classNames.actionsSingleline,\n (_k = {\n display: 'flex',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n margin: '0 12px 0 8px',\n // reset forced colors to browser control for inner actions\n forcedColorAdjust: 'auto',\n MsHighContrastAdjust: 'auto'\n },\n _k[SmallScreenSelector] = {\n gridArea: 'action',\n marginRight: 8,\n marginBottom: 8,\n },\n _k.selectors = {\n '& button:nth-child(n+2)': (_l = {\n marginLeft: 8\n },\n _l[SmallScreenSelector] = {\n marginBottom: 0,\n },\n _l),\n },\n _k),\n isMultiline && {\n marginBottom: 8,\n },\n onDismiss &&\n !isMultiline && {\n marginRight: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=MessageBar.styles.js.map","import { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nexport var MessageBar = styled(MessageBarBase, getStyles, undefined, {\n scope: 'MessageBar',\n});\n//# sourceMappingURL=MessageBar.js.map","/**\n * {@docCategory MessageBar}\n */\nexport var MessageBarType;\n(function (MessageBarType) {\n /** Info styled MessageBar */\n MessageBarType[MessageBarType[\"info\"] = 0] = \"info\";\n /** Error styled MessageBar */\n MessageBarType[MessageBarType[\"error\"] = 1] = \"error\";\n /** Blocked styled MessageBar */\n MessageBarType[MessageBarType[\"blocked\"] = 2] = \"blocked\";\n /** SevereWarning styled MessageBar */\n MessageBarType[MessageBarType[\"severeWarning\"] = 3] = \"severeWarning\";\n /** Success styled MessageBar */\n MessageBarType[MessageBarType[\"success\"] = 4] = \"success\";\n /** Warning styled MessageBar */\n MessageBarType[MessageBarType[\"warning\"] = 5] = \"warning\";\n})(MessageBarType || (MessageBarType = {}));\n//# sourceMappingURL=MessageBar.types.js.map","import { AnimationVariables, getGlobalClassNames, ZIndexes } from '../../Styling';\nexport var animationDuration = AnimationVariables.durationValue2;\nvar globalClassNames = {\n root: 'ms-Modal',\n main: 'ms-Dialog-main',\n scrollableContent: 'ms-Modal-scrollableContent',\n isOpen: 'is-open',\n layer: 'ms-Modal-Layer',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle, windowInnerHeight = props.windowInnerHeight;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n backgroundColor: 'transparent',\n position: 'fixed',\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n opacity: 0,\n pointerEvents: 'none',\n transition: \"opacity \".concat(animationDuration),\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n alignItems: 'flex-start',\n },\n isOpen && classNames.isOpen,\n isVisible && {\n opacity: 1,\n },\n isVisible &&\n !isModeless && {\n pointerEvents: 'auto',\n },\n className,\n ],\n main: [\n classNames.main,\n {\n boxShadow: effects.elevation64,\n borderRadius: effects.roundedCorner2,\n backgroundColor: palette.white,\n boxSizing: 'border-box',\n position: 'relative',\n textAlign: 'left',\n outline: '3px solid transparent',\n maxHeight: 'calc(100% - 32px)',\n maxWidth: 'calc(100% - 32px)',\n minHeight: '176px',\n minWidth: '288px',\n overflowY: 'auto',\n zIndex: isModeless ? ZIndexes.Layer : undefined,\n },\n isModeless && {\n pointerEvents: 'auto',\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n top: modalRectangleTop,\n },\n isDefaultDragHandle && {\n cursor: 'move',\n },\n containerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n flexGrow: 1,\n maxHeight: '100vh',\n selectors: (_a = {},\n _a['@supports (-webkit-overflow-scrolling: touch)'] = {\n maxHeight: windowInnerHeight,\n },\n _a),\n },\n scrollableContentClassName,\n ],\n layer: isModeless && [layerClassName, classNames.layer, { pointerEvents: 'none' }],\n keyboardMoveIconContainer: {\n position: 'absolute',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n padding: '3px 0px',\n },\n keyboardMoveIcon: {\n // eslint-disable-next-line deprecation/deprecation\n fontSize: fonts.xLargePlus.fontSize,\n width: '24px',\n },\n };\n};\n//# sourceMappingURL=Modal.styles.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (className, isDragging) {\n return {\n root: mergeStyles(className, isDragging && {\n touchAction: 'none',\n selectors: {\n '& *': {\n userSelect: 'none',\n },\n },\n }),\n };\n});\n//# sourceMappingURL=DraggableZone.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './DraggableZone.styles';\nimport { on } from '../../Utilities';\nvar eventMapping = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend',\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup',\n },\n};\nvar DraggableZone = /** @class */ (function (_super) {\n __extends(DraggableZone, _super);\n function DraggableZone(props) {\n var _this = _super.call(this, props) || this;\n _this._currentEventType = eventMapping.mouse;\n _this._events = [];\n _this._onMouseDown = function (event) {\n var onMouseDown = React.Children.only(_this.props.children).props.onMouseDown;\n if (onMouseDown) {\n onMouseDown(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStart(event);\n };\n _this._onMouseUp = function (event) {\n var onMouseUp = React.Children.only(_this.props.children).props.onMouseUp;\n if (onMouseUp) {\n onMouseUp(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStop(event);\n };\n _this._onTouchStart = function (event) {\n var onTouchStart = React.Children.only(_this.props.children).props.onTouchStart;\n if (onTouchStart) {\n onTouchStart(event);\n }\n _this._currentEventType = eventMapping.touch;\n return _this._onDragStart(event);\n };\n _this._onTouchEnd = function (event) {\n var onTouchEnd = React.Children.only(_this.props.children).props.onTouchEnd;\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n _this._currentEventType = eventMapping.touch;\n _this._onDragStop(event);\n };\n _this._onDragStart = function (event) {\n // Only handle left click for dragging\n if (typeof event.button === 'number' && event.button !== 0) {\n return false;\n }\n // If the target doesn't match the handleSelector OR\n // if the target does match the preventDragSelector, bail out\n if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||\n (_this.props.preventDragSelector &&\n _this._matchesSelector(event.target, _this.props.preventDragSelector))) {\n return;\n }\n // Remember the touch identifier if this is a touch event so we can\n // distinguish between individual touches in multitouch scenarios\n // by remembering which touch point we were given\n _this._touchId = _this._getTouchId(event);\n var position = _this._getControlPosition(event);\n if (position === undefined) {\n return;\n }\n var dragData = _this._createDragDataFromPosition(position);\n _this.props.onStart && _this.props.onStart(event, dragData);\n _this.setState({\n isDragging: true,\n lastPosition: position,\n });\n // hook up the appropriate mouse/touch events to the body to ensure\n // smooth dragging\n _this._events = [\n on(document.body, _this._currentEventType.move, _this._onDrag, true /* use capture phase */),\n on(document.body, _this._currentEventType.stop, _this._onDragStop, true /* use capture phase */),\n ];\n };\n _this._onDrag = function (event) {\n // Prevent scrolling on mobile devices\n if (event.type === 'touchmove') {\n event.preventDefault();\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n // create the updated drag data from the position data\n var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));\n var updatedPosition = updatedData.position;\n _this.props.onDragChange && _this.props.onDragChange(event, updatedData);\n _this.setState({\n position: updatedPosition,\n lastPosition: position,\n });\n };\n _this._onDragStop = function (event) {\n if (!_this.state.isDragging) {\n return;\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n var baseDragData = _this._createDragDataFromPosition(position);\n // Set dragging to false and reset the lastPosition\n _this.setState({\n isDragging: false,\n lastPosition: undefined,\n });\n _this.props.onStop && _this.props.onStop(event, baseDragData);\n if (_this.props.position) {\n _this.setState({\n position: _this.props.position,\n });\n }\n // Remove event handlers\n _this._events.forEach(function (dispose) { return dispose(); });\n };\n _this.state = {\n isDragging: false,\n position: _this.props.position || { x: 0, y: 0 },\n lastPosition: undefined,\n };\n return _this;\n }\n DraggableZone.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {\n this.setState({ position: this.props.position });\n }\n };\n DraggableZone.prototype.componentWillUnmount = function () {\n this._events.forEach(function (dispose) { return dispose(); });\n };\n DraggableZone.prototype.render = function () {\n var child = React.Children.only(this.props.children);\n var props = child.props;\n var position = this.props.position;\n var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;\n var x = statePosition.x;\n var y = statePosition.y;\n if (position && !isDragging) {\n x = position.x;\n y = position.y;\n }\n return React.cloneElement(child, {\n style: __assign(__assign({}, props.style), { transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\") }),\n className: getClassNames(props.className, this.state.isDragging).root,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onTouchStart: this._onTouchStart,\n onTouchEnd: this._onTouchEnd,\n });\n };\n /**\n * Get the control position based off the event that fired\n * @param event - The event to get offsets from\n */\n DraggableZone.prototype._getControlPosition = function (event) {\n var touchObj = this._getActiveTouch(event);\n // did we get the right touch?\n if (this._touchId !== undefined && !touchObj) {\n return undefined;\n }\n var eventToGetOffset = touchObj || event;\n return {\n x: eventToGetOffset.clientX,\n y: eventToGetOffset.clientY,\n };\n };\n /**\n * Get the active touch point that we have saved from the event's TouchList\n * @param event - The event used to get the TouchList for the active touch point\n */\n DraggableZone.prototype._getActiveTouch = function (event) {\n return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||\n (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));\n };\n /**\n * Get the initial touch identifier associated with the given event\n * @param event - The event that contains the TouchList\n */\n DraggableZone.prototype._getTouchId = function (event) {\n var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);\n if (touch) {\n return touch.identifier;\n }\n };\n /**\n * Returns if an element (or any of the element's parents) match the given selector\n */\n DraggableZone.prototype._matchesSelector = function (element, selector) {\n if (!element || element === document.body) {\n return false;\n }\n var matchesSelectorFn = \n // eslint-disable-next-line deprecation/deprecation\n element.matches || element.webkitMatchesSelector || element.msMatchesSelector; /* for IE */\n if (!matchesSelectorFn) {\n return false;\n }\n return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);\n };\n /**\n * Attempts to find the Touch that matches the identifier we stored in dragStart\n * @param touchList The TouchList to look for the stored identifier from dragStart\n */\n DraggableZone.prototype._findTouchInTouchList = function (touchList) {\n if (this._touchId === undefined) {\n return;\n }\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this._touchId) {\n return touchList[i];\n }\n }\n return undefined;\n };\n /**\n * Create DragData based off of the last known position and the new position passed in\n * @param position The new position as part of the drag\n */\n DraggableZone.prototype._createDragDataFromPosition = function (position) {\n var lastPosition = this.state.lastPosition;\n // If we have no lastPosition, use the given position\n // for last position\n if (lastPosition === undefined) {\n return {\n delta: { x: 0, y: 0 },\n lastPosition: position,\n position: position,\n };\n }\n return {\n delta: {\n x: position.x - lastPosition.x,\n y: position.y - lastPosition.y,\n },\n lastPosition: lastPosition,\n position: position,\n };\n };\n /**\n * Creates an updated DragData based off the current position and given baseDragData\n * @param baseDragData The base DragData (from _createDragDataFromPosition) used to calculate the updated positions\n */\n DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {\n var position = this.state.position;\n return {\n position: {\n x: position.x + baseDragData.delta.x,\n y: position.y + baseDragData.delta.y,\n },\n delta: baseDragData.delta,\n lastPosition: position,\n };\n };\n return DraggableZone;\n}(React.Component));\nexport { DraggableZone };\n//# sourceMappingURL=DraggableZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, allowScrollOnElement, allowOverscrollOnElement, getPropsWithDefaults, KeyCodes, elementContains, EventGroup, } from '../../Utilities';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { animationDuration } from './Modal.styles';\nimport { Overlay } from '../../Overlay';\nimport { Layer } from '../../Layer';\nimport { Popup } from '../../Popup';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Icon } from '../../Icon';\nimport { DraggableZone } from '../../utilities/DraggableZone/index';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport { useBoolean, useMergedRefs, useWarnings, useConst, useSetTimeout, useId, useUnmount, } from '@fluentui/react-hooks';\nvar ZERO = { x: 0, y: 0 };\nvar DEFAULT_PROPS = {\n isOpen: false,\n isDarkOverlay: true,\n className: '',\n containerClassName: '',\n enableAriaHiddenSiblings: true,\n};\nvar getClassNames = classNamesFunction();\nvar getMoveDelta = function (ev) {\n var delta = 10;\n if (ev.shiftKey) {\n if (!ev.ctrlKey) {\n delta = 50;\n }\n }\n else if (ev.ctrlKey) {\n delta = 1;\n }\n return delta;\n};\nvar useComponentRef = function (props, focusTrapZone) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n },\n }); }, [focusTrapZone]);\n};\nexport var ModalBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a, _b, _c, _d, _e;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var allowTouchBodyScroll = props.allowTouchBodyScroll, className = props.className, children = props.children, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, focusTrapZoneProps = props.focusTrapZoneProps, forceFocusInsideTrap = props.forceFocusInsideTrap, \n // eslint-disable-next-line deprecation/deprecation\n _f = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _f === void 0 ? props.ignoreExternalFocusing : _f, isBlocking = props.isBlocking, isAlert = props.isAlert, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, onDismiss = props.onDismiss, layerProps = props.layerProps, overlay = props.overlay, isOpen = props.isOpen, titleAriaId = props.titleAriaId, styles = props.styles, subtitleAriaId = props.subtitleAriaId, theme = props.theme, topOffsetFixed = props.topOffsetFixed, responsiveMode = props.responsiveMode, \n // eslint-disable-next-line deprecation/deprecation\n onLayerDidMount = props.onLayerDidMount, isModeless = props.isModeless, dragOptions = props.dragOptions, onDismissed = props.onDismissed, \n // eslint-disable-next-line deprecation/deprecation\n enableAriaHiddenSiblings = props.enableAriaHiddenSiblings, popupProps = props.popupProps;\n var rootRef = React.useRef(null);\n var focusTrapZone = React.useRef(null);\n var focusTrapZoneRef = useMergedRefs(focusTrapZone, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.componentRef);\n var focusTrapZoneElm = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var modalResponsiveMode = useResponsiveMode(mergedRef);\n var focusTrapZoneId = useId('ModalFocusTrapZone', focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.id);\n var win = useWindow();\n var _g = useSetTimeout(), setTimeout = _g.setTimeout, clearTimeout = _g.clearTimeout;\n var _h = React.useState(isOpen), isModalOpen = _h[0], setIsModalOpen = _h[1];\n var _j = React.useState(isOpen), isVisible = _j[0], setIsVisible = _j[1];\n var _k = React.useState(ZERO), coordinates = _k[0], setCoordinates = _k[1];\n var _l = React.useState(), modalRectangleTop = _l[0], setModalRectangleTop = _l[1];\n var _m = useBoolean(false), isModalMenuOpen = _m[0], _o = _m[1], toggleModalMenuOpen = _o.toggle, setModalMenuClose = _o.setFalse;\n var internalState = useConst(function () { return ({\n onModalCloseTimer: 0,\n allowTouchBodyScroll: allowTouchBodyScroll,\n scrollableContent: null,\n lastSetCoordinates: ZERO,\n events: new EventGroup({}),\n }); });\n var keepInBounds = (dragOptions || {}).keepInBounds;\n var isAlertRole = isAlert !== null && isAlert !== void 0 ? isAlert : (isBlocking && !isModeless);\n var layerClassName = layerProps === undefined ? '' : layerProps.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n containerClassName: containerClassName,\n scrollableContentClassName: scrollableContentClassName,\n isOpen: isOpen,\n isVisible: isVisible,\n hasBeenOpened: internalState.hasBeenOpened,\n modalRectangleTop: modalRectangleTop,\n topOffsetFixed: topOffsetFixed,\n isModeless: isModeless,\n layerClassName: layerClassName,\n windowInnerHeight: win === null || win === void 0 ? void 0 : win.innerHeight,\n isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector,\n });\n var mergedLayerProps = __assign(__assign({ eventBubblingEnabled: false }, layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: (layerProps === null || layerProps === void 0 ? void 0 : layerProps.insertFirst) || isModeless, className: classNames.layer });\n // Allow the user to scroll within the modal but not on the body\n var allowScrollOnModal = React.useCallback(function (elt) {\n if (elt) {\n if (internalState.allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, internalState.events);\n }\n else {\n allowScrollOnElement(elt, internalState.events);\n }\n }\n else {\n internalState.events.off(internalState.scrollableContent);\n }\n internalState.scrollableContent = elt;\n }, [internalState]);\n var registerInitialModalPosition = function () {\n var dialogMain = focusTrapZoneElm.current;\n var modalRectangle = dialogMain === null || dialogMain === void 0 ? void 0 : dialogMain.getBoundingClientRect();\n if (modalRectangle) {\n if (topOffsetFixed) {\n setModalRectangleTop(modalRectangle.top);\n }\n if (keepInBounds) {\n // x/y are unavailable in IE, so use the equivalent left/top\n internalState.minPosition = { x: -modalRectangle.left, y: -modalRectangle.top };\n internalState.maxPosition = { x: modalRectangle.left, y: modalRectangle.top };\n }\n }\n };\n /**\n * Clamps an axis to a specified min and max position.\n *\n * @param axis A string that represents the axis (x/y).\n * @param position The position on the axis.\n */\n var getClampedAxis = React.useCallback(function (axis, position) {\n var minPosition = internalState.minPosition, maxPosition = internalState.maxPosition;\n if (keepInBounds && minPosition && maxPosition) {\n position = Math.max(minPosition[axis], position);\n position = Math.min(maxPosition[axis], position);\n }\n return position;\n }, [keepInBounds, internalState]);\n var handleModalClose = function () {\n var _a;\n internalState.lastSetCoordinates = ZERO;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n setIsModalOpen(false);\n setCoordinates(ZERO);\n (_a = internalState.disposeOnKeyUp) === null || _a === void 0 ? void 0 : _a.call(internalState);\n onDismissed === null || onDismissed === void 0 ? void 0 : onDismissed();\n };\n var handleDragStart = React.useCallback(function () {\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n }, [internalState, setModalMenuClose]);\n var handleDrag = React.useCallback(function (ev, dragData) {\n setCoordinates(function (prevValue) { return ({\n x: getClampedAxis('x', prevValue.x + dragData.delta.x),\n y: getClampedAxis('y', prevValue.y + dragData.delta.y),\n }); });\n }, [getClampedAxis]);\n var handleDragStop = React.useCallback(function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n }, []);\n var handleEnterKeyboardMoveMode = function () {\n // We need a global handleKeyDown event when we are in the move mode so that we can\n // handle the key presses and the components inside the modal do not get the events\n var handleKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n // CTRL + ALT + SPACE is handled during keyUp\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var newLocal = ev.altKey || ev.keyCode === KeyCodes.escape;\n if (isModalMenuOpen && newLocal) {\n setModalMenuClose();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (internalState.isInKeyboardMoveMode && (ev.keyCode === KeyCodes.escape || ev.keyCode === KeyCodes.enter)) {\n internalState.isInKeyboardMoveMode = false;\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (internalState.isInKeyboardMoveMode) {\n var handledEvent = true;\n var delta_1 = getMoveDelta(ev);\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.keyCode) {\n /* eslint-disable no-fallthrough */\n case KeyCodes.escape:\n setCoordinates(internalState.lastSetCoordinates);\n case KeyCodes.enter: {\n // TODO: determine if fallthrough was intentional\n /* eslint-enable no-fallthrough */\n internalState.lastSetCoordinates = ZERO;\n // setIsInKeyboardMoveMode(false);\n break;\n }\n case KeyCodes.up: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y - delta_1) }); });\n break;\n }\n case KeyCodes.down: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y + delta_1) }); });\n break;\n }\n case KeyCodes.left: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x - delta_1), y: prevValue.y }); });\n break;\n }\n case KeyCodes.right: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x + delta_1), y: prevValue.y }); });\n break;\n }\n default: {\n handledEvent = false;\n }\n }\n if (handledEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n internalState.lastSetCoordinates = coordinates;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = true;\n internalState.events.on(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = function () {\n internalState.events.off(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = undefined;\n };\n };\n var handleExitKeyboardMoveMode = function (ev) {\n var _a, _b;\n (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(focusTrapZoneProps, ev);\n internalState.lastSetCoordinates = ZERO;\n internalState.isInKeyboardMoveMode = false;\n (_b = internalState.disposeOnKeyDown) === null || _b === void 0 ? void 0 : _b.call(internalState);\n };\n var registerForKeyUp = function () {\n var handleKeyUp = function (ev) {\n // Needs to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n if (elementContains(internalState.scrollableContent, ev.target)) {\n toggleModalMenuOpen();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n if (!internalState.disposeOnKeyUp) {\n internalState.events.on(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = function () {\n internalState.events.off(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = undefined;\n };\n }\n };\n React.useEffect(function () {\n clearTimeout(internalState.onModalCloseTimer);\n // Opening the dialog\n if (isOpen) {\n // This must be done after the modal content has rendered\n requestAnimationFrame(function () { return setTimeout(registerInitialModalPosition, 0); });\n setIsModalOpen(true);\n // Add a keyUp handler for all key up events once the dialog is open.\n if (dragOptions) {\n registerForKeyUp();\n }\n internalState.hasBeenOpened = true;\n setIsVisible(true);\n }\n // Closing the dialog\n if (!isOpen && isModalOpen) {\n internalState.onModalCloseTimer = setTimeout(handleModalClose, parseFloat(animationDuration) * 1000);\n setIsVisible(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if isModalOpen or isOpen mutates.\n }, [isModalOpen, isOpen]);\n useUnmount(function () {\n internalState.events.dispose();\n });\n useComponentRef(props, focusTrapZone);\n useDebugWarnings(props);\n var modalContent = (React.createElement(FocusTrapZone, __assign({}, focusTrapZoneProps, { id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZoneRef, className: css(classNames.main, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.className), elementToFocusOnDismiss: (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.elementToFocusOnDismiss) !== null && _a !== void 0 ? _a : elementToFocusOnDismiss, isClickableOutsideFocusTrap: (_b = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.isClickableOutsideFocusTrap) !== null && _b !== void 0 ? _b : (isModeless || isClickableOutsideFocusTrap || !isBlocking), disableRestoreFocus: (_c = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.disableRestoreFocus) !== null && _c !== void 0 ? _c : disableRestoreFocus, forceFocusInsideTrap: ((_d = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.forceFocusInsideTrap) !== null && _d !== void 0 ? _d : forceFocusInsideTrap) && !isModeless, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector: (focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.firstFocusableSelector) || firstFocusableSelector, focusPreviouslyFocusedInnerElement: (_e = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.focusPreviouslyFocusedInnerElement) !== null && _e !== void 0 ? _e : true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined }),\n dragOptions && internalState.isInKeyboardMoveMode && (React.createElement(\"div\", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React.createElement(Icon, __assign({}, dragOptions.keyboardMoveIconProps))) : (React.createElement(Icon, { iconName: \"move\", className: classNames.keyboardMoveIcon })))),\n React.createElement(\"div\", { ref: allowScrollOnModal, className: classNames.scrollableContent, \"data-is-scrollable\": true },\n dragOptions && isModalMenuOpen && (React.createElement(dragOptions.menu, { items: [\n { key: 'move', text: dragOptions.moveMenuItemText, onClick: handleEnterKeyboardMoveMode },\n { key: 'close', text: dragOptions.closeMenuItemText, onClick: handleModalClose },\n ], onDismiss: setModalMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: DirectionalHint.topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: internalState.scrollableContent })),\n children)));\n return ((isModalOpen && modalResponsiveMode >= (responsiveMode || ResponsiveMode.small) && (React.createElement(Layer, __assign({ ref: mergedRef }, mergedLayerProps),\n React.createElement(Popup, __assign({ role: isAlertRole ? 'alertdialog' : 'dialog', ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss, shouldRestoreFocus: !disableRestoreFocus, \n // Modeless modals shouldn't hide siblings.\n // Popup will automatically handle this based on the aria-modal setting.\n enableAriaHiddenSiblings: enableAriaHiddenSiblings, \"aria-modal\": !isModeless }, popupProps),\n React.createElement(\"div\", { className: classNames.root, role: !isModeless ? 'document' : undefined },\n !isModeless && (React.createElement(Overlay, __assign({ \"aria-hidden\": true, isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss, allowTouchBodyScroll: allowTouchBodyScroll }, overlay))),\n dragOptions ? (React.createElement(DraggableZone, { handleSelector: dragOptions.dragHandleSelector || \"#\".concat(focusTrapZoneId), preventDragSelector: \"button\", onStart: handleDragStart, onDragChange: handleDrag, onStop: handleDragStop, position: coordinates }, modalContent)) : (modalContent)))))) ||\n null);\n});\nModalBase.displayName = 'Modal';\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Modal',\n props: props,\n deprecations: { onLayerDidMount: 'layerProps.onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Modal.base.js.map","import { styled } from '../../Utilities';\nimport { ModalBase } from './Modal.base';\nimport { getStyles } from './Modal.styles';\nexport var Modal = styled(ModalBase, getStyles, undefined, {\n scope: 'Modal',\n fields: ['theme', 'styles', 'enableAriaHiddenSiblings'],\n});\nModal.displayName = 'Modal';\n//# sourceMappingURL=Modal.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { ActionButton } from '../../Button';\nimport { buttonStyles } from './Nav.styles';\nimport { classNamesFunction, divProperties, getNativeProps, getWindow, initializeComponentRef } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { composeComponentAs, composeRenderFunction } from '@fluentui/utilities';\n// The number pixels per indentation level for Nav links.\nvar _indentationSize = 14;\n// The number of pixels of left margin\nvar _baseIndent = 3;\n// global var used in _isLinkSelectedKey\nvar _urlResolver;\nexport function isRelativeUrl(url) {\n // A URL is relative if it has no protocol.\n return !!url && !/^[a-z0-9+-.]+:\\/\\//i.test(url);\n}\nvar getClassNames = classNamesFunction();\nvar NavBase = /** @class */ (function (_super) {\n __extends(NavBase, _super);\n function NavBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n _this._onRenderLink = function (link) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return React.createElement(\"div\", { className: classNames.linkText }, link.name);\n };\n _this._renderGroup = function (group, groupIndex) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? _this._renderGroupHeader : _b;\n var isExpanded = _this._isGroupExpanded(group);\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n var finalOnHeaderClick = function (ev, isCollapsing) {\n _this._onGroupHeaderClicked(group, ev);\n };\n var groupProps = __assign(__assign({}, group), { isExpanded: isExpanded, onHeaderClick: finalOnHeaderClick });\n return (React.createElement(\"div\", { key: groupIndex, className: classNames.group },\n groupProps.name ? onRenderGroupHeader(groupProps, _this._renderGroupHeader) : null,\n React.createElement(\"div\", { className: classNames.groupContent }, _this._renderLinks(groupProps.links, 0 /* nestingLevel */))));\n };\n _this._renderGroupHeader = function (group) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var _b = _this.props, styles = _b.styles, groups = _b.groups, theme = _b.theme, expandButtonAriaLabel = _b.expandButtonAriaLabel;\n var isExpanded = group.isExpanded;\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n // respect deprecated collapseAriaLabel, but default to expandAriaLabel for both states\n // eslint-disable-next-line deprecation/deprecation\n var collapseAriaLabel = (_a = group.collapseAriaLabel) !== null && _a !== void 0 ? _a : group.expandAriaLabel;\n var label = (isExpanded ? collapseAriaLabel : group.expandAriaLabel) || expandButtonAriaLabel;\n var onHeaderClick = group.onHeaderClick;\n var onClick = onHeaderClick\n ? function (ev) {\n onHeaderClick(ev, isExpanded);\n }\n : undefined;\n return (React.createElement(\"button\", { className: classNames.chevronButton, onClick: onClick, \"aria-label\": label, \"aria-expanded\": isExpanded },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }),\n group.name));\n };\n initializeComponentRef(_this);\n _this.state = {\n isGroupCollapsed: {},\n isLinkExpandStateChanged: false,\n selectedKey: props.initialSelectedKey || props.selectedKey,\n };\n return _this;\n }\n NavBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, groups = _a.groups, className = _a.className, isOnTop = _a.isOnTop, _b = _a.role, role = _b === void 0 ? 'navigation' : _b, theme = _a.theme;\n if (!groups) {\n return null;\n }\n var groupElements = groups.map(this._renderGroup);\n var classNames = getClassNames(styles, { theme: theme, className: className, isOnTop: isOnTop, groups: groups });\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, componentRef: this._focusZone }, this.props.focusZoneProps),\n React.createElement(\"nav\", { role: role, className: classNames.root, \"aria-label\": this.props.ariaLabel }, groupElements)));\n };\n Object.defineProperty(NavBase.prototype, \"selectedKey\", {\n get: function () {\n return this.state.selectedKey;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n NavBase.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._focusZone && this._focusZone.current) {\n return this._focusZone.current.focus(forceIntoFirstElement);\n }\n return false;\n };\n NavBase.prototype._renderNavLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var isLinkWithIcon = link.icon || link.iconProps;\n var isSelectedLink = this._isLinkSelected(link);\n var _b = link.ariaCurrent, ariaCurrent = _b === void 0 ? 'page' : _b;\n var classNames = getClassNames(styles, {\n theme: theme,\n isSelected: isSelectedLink,\n isDisabled: link.disabled,\n isButtonEntry: link.onClick && !link.forceAnchor,\n leftPadding: _indentationSize * nestingLevel + _baseIndent + (isLinkWithIcon ? 0 : 24),\n groups: groups,\n });\n // Prevent hijacking of the parent window if link.target is defined\n var rel = link.url && link.target && !isRelativeUrl(link.url) ? 'noopener noreferrer' : undefined;\n var LinkAs = this.props.linkAs ? composeComponentAs(this.props.linkAs, ActionButton) : ActionButton;\n var onRenderLink = this.props.onRenderLink\n ? composeRenderFunction(this.props.onRenderLink, this._onRenderLink)\n : this._onRenderLink;\n return (React.createElement(LinkAs, { className: classNames.link, styles: buttonStyles, href: link.url || (link.forceAnchor ? '#' : undefined), iconProps: link.iconProps || { iconName: link.icon }, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: link.onClick ? this._onNavButtonLinkClicked.bind(this, link) : this._onNavAnchorLinkClicked.bind(this, link), title: link.title !== undefined ? link.title : link.name, target: link.target, rel: rel, disabled: link.disabled, \"aria-current\": isSelectedLink ? ariaCurrent : undefined, \"aria-label\": link.ariaLabel ? link.ariaLabel : undefined, link: link }, onRenderLink(link)));\n };\n NavBase.prototype._renderCompositeLink = function (link, linkIndex, nestingLevel) {\n var _a;\n var divProps = __assign({}, getNativeProps(link, divProperties, ['onClick']));\n // eslint-disable-next-line deprecation/deprecation\n var _b = this.props, expandButtonAriaLabel = _b.expandButtonAriaLabel, styles = _b.styles, groups = _b.groups, theme = _b.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n isExpanded: !!link.isExpanded,\n isSelected: this._isLinkSelected(link),\n isLink: true,\n isDisabled: link.disabled,\n position: _indentationSize * nestingLevel + 1,\n groups: groups,\n });\n var finalExpandBtnAriaLabel = '';\n if (link.links && link.links.length > 0) {\n if (link.collapseAriaLabel || link.expandAriaLabel) {\n // still respect link.collapseAriaLabel, even though it's deprecated in favor of expandAriaLabel\n var collapseAriaLabel = (_a = link.collapseAriaLabel) !== null && _a !== void 0 ? _a : link.expandAriaLabel;\n finalExpandBtnAriaLabel = link.isExpanded ? collapseAriaLabel : link.expandAriaLabel;\n }\n else {\n // TODO remove when `expandButtonAriaLabel` is removed. This is not an ideal concatenation for localization.\n finalExpandBtnAriaLabel = expandButtonAriaLabel ? \"\".concat(link.name, \" \").concat(expandButtonAriaLabel) : link.name;\n }\n }\n return (React.createElement(\"div\", __assign({}, divProps, { key: link.key || linkIndex, className: classNames.compositeLink }),\n link.links && link.links.length > 0 ? (React.createElement(\"button\", { className: classNames.chevronButton, onClick: this._onLinkExpandClicked.bind(this, link), \"aria-label\": finalExpandBtnAriaLabel, \"aria-expanded\": link.isExpanded ? 'true' : 'false' },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }))) : null,\n this._renderNavLink(link, linkIndex, nestingLevel)));\n };\n NavBase.prototype._renderLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"li\", { key: link.key || linkIndex, role: \"listitem\", className: classNames.navItem },\n this._renderCompositeLink(link, linkIndex, nestingLevel),\n link.isExpanded ? this._renderLinks(link.links, ++nestingLevel) : null));\n };\n NavBase.prototype._renderLinks = function (links, nestingLevel) {\n var _this = this;\n if (!links || !links.length) {\n return null;\n }\n var linkElements = links.map(function (link, linkIndex) {\n return _this._renderLink(link, linkIndex, nestingLevel);\n });\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"ul\", { role: \"list\", className: classNames.navItems }, linkElements));\n };\n NavBase.prototype._onGroupHeaderClicked = function (group, ev) {\n if (group.onHeaderClick) {\n group.onHeaderClick(ev, this._isGroupExpanded(group));\n }\n if (group.isExpanded === undefined) {\n this._toggleCollapsed(group);\n }\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n NavBase.prototype._onLinkExpandClicked = function (link, ev) {\n var onLinkExpandClick = this.props.onLinkExpandClick;\n if (onLinkExpandClick) {\n onLinkExpandClick(ev, link);\n }\n if (!ev.defaultPrevented) {\n link.isExpanded = !link.isExpanded;\n this.setState({ isLinkExpandStateChanged: true });\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n NavBase.prototype._preventBounce = function (link, ev) {\n if (!link.url && link.forceAnchor) {\n ev.preventDefault();\n }\n };\n NavBase.prototype._onNavAnchorLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (this.props.onLinkClick) {\n this.props.onLinkClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._onNavButtonLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (link.onClick) {\n link.onClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._isLinkSelected = function (link) {\n // if caller passes in selectedKey, use it as first choice or\n // if current state.selectedKey (from addressbar) is match to the link or\n // check if URL is matching location.href (if link.url exists)\n if (this.props.selectedKey !== undefined) {\n return link.key === this.props.selectedKey;\n }\n else if (this.state.selectedKey !== undefined) {\n return link.key === this.state.selectedKey;\n }\n else if (typeof getWindow() === 'undefined' || !link.url) {\n // resolve is not supported for ssr\n return false;\n }\n else {\n // If selectedKey is undefined in props and state, then check URL\n _urlResolver = _urlResolver || document.createElement('a');\n _urlResolver.href = link.url || '';\n var target = _urlResolver.href;\n if (location.href === target) {\n return true;\n }\n // If selectedKey is not defined in state, then check URL to determine link selected status\n if (location.protocol + '//' + location.host + location.pathname === target) {\n return true;\n }\n if (location.hash) {\n // Match the hash to the url.\n if (location.hash === link.url) {\n return true;\n }\n // Match a rebased url. (e.g. #foo becomes http://hostname/foo)\n _urlResolver.href = location.hash.substring(1);\n return _urlResolver.href === target;\n }\n }\n return false;\n };\n NavBase.prototype._isGroupExpanded = function (group) {\n if (group.isExpanded !== undefined) {\n return group.isExpanded;\n }\n if (group.name && this.state.isGroupCollapsed.hasOwnProperty(group.name)) {\n return !this.state.isGroupCollapsed[group.name];\n }\n if (group.collapseByDefault !== undefined) {\n return !group.collapseByDefault;\n }\n return true;\n };\n NavBase.prototype._toggleCollapsed = function (group) {\n var _a;\n if (group.name) {\n var newGroupCollapsed = __assign(__assign({}, this.state.isGroupCollapsed), (_a = {}, _a[group.name] = this._isGroupExpanded(group), _a));\n this.setState({ isGroupCollapsed: newGroupCollapsed });\n }\n };\n NavBase.defaultProps = {\n groups: null,\n };\n return NavBase;\n}(React.Component));\nexport { NavBase };\n//# sourceMappingURL=Nav.base.js.map","import { AnimationClassNames, getFocusStyle, ZIndexes, getGlobalClassNames, HighContrastSelector, FontWeights, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Nav',\n linkText: 'ms-Nav-linkText',\n compositeLink: 'ms-Nav-compositeLink',\n link: 'ms-Nav-link',\n chevronButton: 'ms-Nav-chevronButton',\n chevronIcon: 'ms-Nav-chevron',\n navItem: 'ms-Nav-navItem',\n navItems: 'ms-Nav-navItems',\n group: 'ms-Nav-group',\n groupContent: 'ms-Nav-groupContent',\n};\nexport var buttonStyles = {\n textContainer: {\n overflow: 'hidden',\n },\n label: {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isOnTop = props.isOnTop, isExpanded = props.isExpanded, isGroup = props.isGroup, isLink = props.isLink, isSelected = props.isSelected, isDisabled = props.isDisabled, isButtonEntry = props.isButtonEntry, _b = props.navHeight, navHeight = _b === void 0 ? 44 : _b, position = props.position, _c = props.leftPadding, leftPadding = _c === void 0 ? 20 : _c, _d = props.leftPaddingExpanded, leftPaddingExpanded = _d === void 0 ? 28 : _d, _e = props.rightPadding, rightPadding = _e === void 0 ? 20 : _e;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n className,\n fonts.medium,\n {\n overflowY: 'auto',\n userSelect: 'none',\n WebkitOverflowScrolling: 'touch',\n },\n isOnTop && [\n {\n position: 'absolute',\n },\n AnimationClassNames.slideRightIn40,\n ],\n ],\n linkText: [\n classNames.linkText,\n {\n margin: '0 4px',\n overflow: 'hidden',\n verticalAlign: 'middle',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n },\n ],\n compositeLink: [\n classNames.compositeLink,\n {\n display: 'block',\n position: 'relative',\n color: semanticColors.bodyText,\n },\n isExpanded && 'is-expanded',\n isSelected && 'is-selected',\n isDisabled && 'is-disabled',\n isDisabled && {\n color: semanticColors.disabledText,\n },\n ],\n link: [\n classNames.link,\n getFocusStyle(theme),\n {\n display: 'block',\n position: 'relative',\n height: navHeight,\n width: '100%',\n lineHeight: \"\".concat(navHeight, \"px\"),\n textDecoration: 'none',\n cursor: 'pointer',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingLeft: leftPadding,\n paddingRight: rightPadding,\n color: semanticColors.bodyText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 0,\n selectors: {\n ':focus': {\n border: '1px solid WindowText',\n },\n },\n },\n _a),\n },\n !isDisabled && {\n selectors: {\n '.ms-Nav-compositeLink:hover &': {\n backgroundColor: semanticColors.bodyBackgroundHovered,\n },\n },\n },\n isSelected && {\n color: semanticColors.bodyTextChecked,\n fontWeight: FontWeights.semibold,\n backgroundColor: semanticColors.bodyBackgroundChecked,\n selectors: {\n '&:after': {\n borderLeft: \"2px solid \".concat(palette.themePrimary),\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'none',\n },\n },\n },\n isDisabled && {\n color: semanticColors.disabledText,\n },\n isButtonEntry && {\n color: palette.themePrimary,\n },\n ],\n chevronButton: [\n classNames.chevronButton,\n getFocusStyle(theme),\n fonts.small,\n {\n display: 'block',\n textAlign: 'left',\n lineHeight: \"\".concat(navHeight, \"px\"),\n margin: '5px 0',\n padding: \"0px, \".concat(rightPadding, \"px, 0px, \").concat(leftPaddingExpanded, \"px\"),\n border: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n cursor: 'pointer',\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n selectors: {\n '&:visited': {\n color: semanticColors.bodyText,\n },\n },\n },\n isGroup && {\n fontSize: fonts.large.fontSize,\n width: '100%',\n height: navHeight,\n borderBottom: \"1px solid \".concat(semanticColors.bodyDivider),\n },\n isLink && {\n display: 'block',\n width: leftPaddingExpanded - 2,\n height: navHeight - 2,\n position: 'absolute',\n top: '1px',\n left: \"\".concat(position, \"px\"),\n zIndex: ZIndexes.Nav,\n padding: 0,\n margin: 0,\n },\n ],\n chevronIcon: [\n classNames.chevronIcon,\n {\n position: 'absolute',\n left: '8px',\n height: navHeight,\n // inline-flex prevents the chevron from shifting with custom line height styles\n display: 'inline-flex',\n alignItems: 'center',\n lineHeight: \"\".concat(navHeight, \"px\"),\n fontSize: fonts.small.fontSize,\n transition: 'transform .1s linear',\n },\n isExpanded && {\n transform: 'rotate(-180deg)',\n },\n isLink && {\n top: 0,\n },\n ],\n navItem: [\n classNames.navItem,\n {\n padding: 0,\n },\n ],\n navItems: [\n classNames.navItems,\n {\n listStyleType: 'none',\n padding: 0,\n margin: 0, // remove default <UL> styles\n },\n ],\n group: [classNames.group, isExpanded && 'is-expanded'],\n groupContent: [\n classNames.groupContent,\n {\n display: 'none',\n marginBottom: '40px',\n },\n AnimationClassNames.slideDownIn20,\n isExpanded && {\n display: 'block',\n },\n ],\n };\n};\n//# sourceMappingURL=Nav.styles.js.map","import { styled } from '../../Utilities';\nimport { NavBase } from './Nav.base';\nimport { getStyles } from './Nav.styles';\nexport var Nav = styled(NavBase, getStyles, undefined, {\n scope: 'Nav',\n});\n//# sourceMappingURL=Nav.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeytipManager } from '../../utilities/keytips/KeytipManager';\nimport { useConst, usePrevious } from '@fluentui/react-hooks';\nvar registerPersistedKeytips = function (keytipsToRegister, keytipManager, registeredPersistedKeytips) {\n for (var _i = 0, keytipsToRegister_1 = keytipsToRegister; _i < keytipsToRegister_1.length; _i++) {\n var keytip = keytipsToRegister_1[_i];\n var uniqueID = keytipManager.register(keytip, true);\n // Update map\n registeredPersistedKeytips[uniqueID] = keytip;\n }\n};\nvar unregisterPersistedKeytips = function (keytipManager, registeredPersistedKeytips) {\n for (var _i = 0, _a = Object.keys(registeredPersistedKeytips); _i < _a.length; _i++) {\n var uniqueID = _a[_i];\n keytipManager.unregister(registeredPersistedKeytips[uniqueID], uniqueID, true);\n delete registeredPersistedKeytips[uniqueID];\n }\n};\nvar useKeytipRegistrations = function (registeredPersistedKeytips, keytipsToRegister, keytipManager) {\n var prevPersistedKeytips = usePrevious(registeredPersistedKeytips);\n // Update\n React.useEffect(function () {\n if (prevPersistedKeytips) {\n // Unregister old keytips\n unregisterPersistedKeytips(keytipManager, prevPersistedKeytips);\n // Register new keytips\n registerPersistedKeytips(keytipsToRegister, keytipManager, registeredPersistedKeytips);\n }\n });\n // Mount/Unmount\n React.useEffect(function () {\n // Register on mount\n registerPersistedKeytips(keytipsToRegister, keytipManager, registeredPersistedKeytips);\n return function () {\n // Unregister on unmount\n unregisterPersistedKeytips(keytipManager, registeredPersistedKeytips);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n};\nexport var OverflowButton = function (props) {\n var keytipManager = KeytipManager.getInstance();\n var className = props.className, overflowItems = props.overflowItems, keytipSequences = props.keytipSequences, itemSubMenuProvider = props.itemSubMenuProvider, onRenderOverflowButton = props.onRenderOverflowButton;\n var persistedKeytips = useConst({});\n // Gets the subMenu for an overflow item\n var getSubMenuForItem = React.useCallback(function (item) {\n // Checks if itemSubMenuProvider has been defined, if not defaults to subMenuProps\n if (itemSubMenuProvider) {\n return itemSubMenuProvider(item);\n }\n if (item.subMenuProps) {\n return item.subMenuProps.items;\n }\n return undefined;\n }, [itemSubMenuProvider]);\n var _a = React.useMemo(function () {\n var newKeytipsToRegister = [];\n var newOverflowItems = [];\n if (keytipSequences) {\n overflowItems === null || overflowItems === void 0 ? void 0 : overflowItems.forEach(function (overflowItem) {\n var _a;\n var keytip = overflowItem.keytipProps;\n if (keytip) {\n // Create persisted keytip\n var persistedKeytip = {\n content: keytip.content,\n keySequences: keytip.keySequences,\n disabled: keytip.disabled || !!(overflowItem.disabled || overflowItem.isDisabled),\n hasDynamicChildren: keytip.hasDynamicChildren,\n hasMenu: keytip.hasMenu,\n };\n if (keytip.hasDynamicChildren || getSubMenuForItem(overflowItem)) {\n // If the keytip has a submenu or children nodes, change onExecute to persistedKeytipExecute\n persistedKeytip.onExecute = keytipManager.menuExecute.bind(keytipManager, keytipSequences, (_a = overflowItem === null || overflowItem === void 0 ? void 0 : overflowItem.keytipProps) === null || _a === void 0 ? void 0 : _a.keySequences);\n persistedKeytip.hasOverflowSubMenu = true;\n }\n else {\n // If the keytip doesn't have a submenu, just execute the original function\n persistedKeytip.onExecute = keytip.onExecute;\n }\n newKeytipsToRegister.push(persistedKeytip);\n // Add the overflow sequence to this item\n var newOverflowItem = __assign(__assign({}, overflowItem), { keytipProps: __assign(__assign({}, keytip), { overflowSetSequence: keytipSequences }) });\n newOverflowItems === null || newOverflowItems === void 0 ? void 0 : newOverflowItems.push(newOverflowItem);\n }\n else {\n // Nothing to change, add overflowItem to list\n newOverflowItems === null || newOverflowItems === void 0 ? void 0 : newOverflowItems.push(overflowItem);\n }\n });\n }\n else {\n newOverflowItems = overflowItems;\n }\n return { modifiedOverflowItems: newOverflowItems, keytipsToRegister: newKeytipsToRegister };\n }, [overflowItems, getSubMenuForItem, keytipManager, keytipSequences]), modifiedOverflowItems = _a.modifiedOverflowItems, keytipsToRegister = _a.keytipsToRegister;\n useKeytipRegistrations(persistedKeytips, keytipsToRegister, keytipManager);\n return React.createElement(\"div\", { className: className }, onRenderOverflowButton(modifiedOverflowItems));\n};\n//# sourceMappingURL=OverflowButton.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, divProperties, elementContains, getNativeProps, focusFirstChild } from '../../Utilities';\nimport { OverflowButton } from './OverflowButton';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'OverflowSet';\nvar useComponentRef = function (props, divContainer) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function (_forceIntoFirstElement, bypassHiddenElements) {\n var focusSucceeded = false;\n if (divContainer.current) {\n focusSucceeded = focusFirstChild(divContainer.current, bypassHiddenElements);\n }\n return focusSucceeded;\n },\n focusElement: function (childElement) {\n var focusSucceeded = false;\n if (!childElement) {\n return false;\n }\n if (divContainer.current && elementContains(divContainer.current, childElement)) {\n childElement.focus();\n focusSucceeded = document.activeElement === childElement;\n }\n return focusSucceeded;\n },\n }); }, [divContainer]);\n};\nexport var OverflowSetBase = React.forwardRef(function (props, forwardedRef) {\n var divContainer = React.useRef(null);\n var mergedRef = useMergedRefs(divContainer, forwardedRef);\n useComponentRef(props, divContainer);\n var items = props.items, overflowItems = props.overflowItems, className = props.className, styles = props.styles, vertical = props.vertical, role = props.role, _a = props.overflowSide, overflowSide = _a === void 0 ? 'end' : _a, onRenderItem = props.onRenderItem;\n var classNames = getClassNames(styles, { className: className, vertical: vertical });\n var showOverflow = !!overflowItems && overflowItems.length > 0;\n return (React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties), { role: role || 'group', \"aria-orientation\": role === 'menubar' ? (vertical === true ? 'vertical' : 'horizontal') : undefined, className: classNames.root, ref: mergedRef }),\n overflowSide === 'start' && showOverflow && React.createElement(OverflowButton, __assign({}, props, { className: classNames.overflowButton })),\n items &&\n items.map(function (item, i) { return (React.createElement(\"div\", { className: classNames.item, key: item.key, role: \"none\" }, onRenderItem(item))); }),\n overflowSide === 'end' && showOverflow && React.createElement(OverflowButton, __assign({}, props, { className: classNames.overflowButton }))));\n});\nOverflowSetBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=OverflowSet.base.js.map","var overflowItemStyle = {\n flexShrink: 0,\n display: 'inherit',\n};\nexport var getStyles = function (props) {\n var className = props.className, vertical = props.vertical;\n return {\n root: [\n 'ms-OverflowSet',\n {\n position: 'relative',\n display: 'flex',\n flexWrap: 'nowrap',\n },\n vertical && { flexDirection: 'column' },\n className,\n ],\n item: ['ms-OverflowSet-item', overflowItemStyle],\n overflowButton: ['ms-OverflowSet-overflowButton', overflowItemStyle],\n };\n};\n//# sourceMappingURL=OverflowSet.styles.js.map","import { styled } from '../../Utilities';\nimport { OverflowSetBase } from './OverflowSet.base';\nimport { getStyles } from './OverflowSet.styles';\nexport var OverflowSet = styled(OverflowSetBase, getStyles, undefined, {\n scope: 'OverflowSet',\n});\n//# sourceMappingURL=OverflowSet.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n __extends(PanelBase, _super);\n function PanelBase(props) {\n var _this = _super.call(this, props) || this;\n _this._panel = React.createRef();\n _this._animationCallback = null;\n _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n _this.dismiss = function (ev) {\n if (_this.props.onDismiss && _this.isActive) {\n _this.props.onDismiss(ev);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n _this.close();\n }\n };\n // Allow the user to scroll within the panel but not on the body\n _this._allowScrollOnPanel = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onRenderNavigation = function (props) {\n if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n return null;\n }\n var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n };\n _this._onRenderNavigationContent = function (props) {\n var _a;\n var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n if (hasCloseButton) {\n var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n return (React.createElement(React.Fragment, null,\n !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n React.createElement(IconButton, { styles: iconButtonStyles, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n }\n return null;\n };\n _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n if (headerText) {\n return (React.createElement(\"div\", { className: _this._classNames.header },\n React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n }\n return null;\n };\n _this._onRenderBody = function (props) {\n return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n };\n _this._onRenderFooter = function (props) {\n var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n if (onRenderFooterContent) {\n return (React.createElement(\"div\", { className: _this._classNames.footer },\n React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n }\n return null;\n };\n _this._animateTo = function (newVisibilityState) {\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this._animationCallback = _this._async.setTimeout(function () {\n _this.setState({ visibility: newVisibilityState });\n _this._onTransitionComplete(newVisibilityState);\n }, 200);\n };\n _this._clearExistingAnimationTimer = function () {\n if (_this._animationCallback !== null) {\n _this._async.clearTimeout(_this._animationCallback);\n }\n };\n _this._onPanelClick = function (ev) {\n _this.dismiss(ev);\n };\n _this._onTransitionComplete = function (newVisibilityState) {\n _this._updateFooterPosition();\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpened) {\n _this.props.onOpened();\n }\n if (newVisibilityState === PanelVisibilityState.closed && _this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n ignoreExternalFocusing: 'focusTrapZoneProps',\n forceFocusInsideTrap: 'focusTrapZoneProps',\n firstFocusableSelector: 'focusTrapZoneProps',\n });\n _this.state = {\n isFooterSticky: false,\n // intentionally ignore props so animation takes place during componentDidMount\n visibility: PanelVisibilityState.closed,\n id: getId('Panel'),\n };\n return _this;\n }\n PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.isOpen === undefined) {\n return null; // no state update\n }\n if (nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.closed ||\n prevState.visibility === PanelVisibilityState.animatingClosed)) {\n return { visibility: PanelVisibilityState.animatingOpen };\n }\n if (!nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.open ||\n prevState.visibility === PanelVisibilityState.animatingOpen)) {\n return { visibility: PanelVisibilityState.animatingClosed };\n }\n return null;\n };\n PanelBase.prototype.componentDidMount = function () {\n this._async = new Async(this);\n this._events = new EventGroup(this);\n this._events.on(window, 'resize', this._updateFooterPosition);\n if (this._shouldListenForOuterClick(this.props)) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n if (this.props.isOpen) {\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n }\n };\n PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n if (this.state.visibility !== previousState.visibility) {\n this._clearExistingAnimationTimer();\n if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n this._animateTo(PanelVisibilityState.open);\n }\n else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n this._animateTo(PanelVisibilityState.closed);\n }\n }\n if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n };\n PanelBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PanelBase.prototype.render = function () {\n var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n /* eslint-disable deprecation/deprecation */\n firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n var isRTL = getRTL(theme);\n var isOnRightSide = isRTL ? isLeft : !isLeft;\n var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n var nativeProps = getNativeProps(this.props, divProperties);\n var isOpen = this.isActive;\n var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n this._headerTextId = headerText && id + '-headerText';\n if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n return null;\n }\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n hasCloseButton: hasCloseButton,\n headerClassName: headerClassName,\n isAnimating: isAnimating,\n isFooterSticky: isFooterSticky,\n isFooterAtBottom: isFooterAtBottom,\n isOnRightSide: isOnRightSide,\n isOpen: isOpen,\n isHiddenOnDismiss: isHiddenOnDismiss,\n type: type,\n hasCustomNavigation: this._hasCustomNavigation,\n });\n var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n var overlay;\n if (isBlocking && isOpen) {\n overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n }\n return (React.createElement(Layer, __assign({}, layerProps),\n React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": isBlocking ? 'true' : undefined, ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel, enableAriaHiddenSiblings: isOpen ? true : false }, popupProps),\n React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n overlay,\n React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n React.createElement(\"div\", { className: _classNames.contentInner },\n React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true },\n React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n (this._hasCustomNavigation || !hasCloseButton) &&\n onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n onRenderBody(this.props, this._onRenderBody),\n onRenderFooter(this.props, this._onRenderFooter))))))));\n };\n PanelBase.prototype.open = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n };\n PanelBase.prototype.close = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (!this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingClosed });\n };\n Object.defineProperty(PanelBase.prototype, \"isActive\", {\n /** isActive is true when panel is open or opening. */\n get: function () {\n return (this.state.visibility === PanelVisibilityState.open ||\n this.state.visibility === PanelVisibilityState.animatingOpen);\n },\n enumerable: false,\n configurable: true\n });\n PanelBase.prototype._shouldListenForOuterClick = function (props) {\n return !!props.isBlocking && !!props.isOpen;\n };\n PanelBase.prototype._updateFooterPosition = function () {\n var scrollableContent = this._scrollableContent;\n if (scrollableContent) {\n var height = scrollableContent.clientHeight;\n var innerHeight_1 = scrollableContent.scrollHeight;\n this.setState({\n isFooterSticky: height < innerHeight_1 ? true : false,\n });\n }\n };\n PanelBase.prototype._dismissOnOuterClick = function (ev) {\n var panel = this._panel.current;\n if (this.isActive && panel && !ev.defaultPrevented) {\n if (!elementContains(panel, ev.target)) {\n if (this.props.onOuterClick) {\n this.props.onOuterClick(ev);\n }\n else {\n this.dismiss(ev);\n }\n }\n }\n };\n PanelBase.defaultProps = {\n isHiddenOnDismiss: false,\n isOpen: undefined,\n isBlocking: true,\n hasCloseButton: true,\n type: PanelType.smallFixedFar,\n };\n return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Panel',\n main: 'ms-Panel-main',\n commands: 'ms-Panel-commands',\n contentInner: 'ms-Panel-contentInner',\n scrollableContent: 'ms-Panel-scrollableContent',\n navigation: 'ms-Panel-navigation',\n closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n header: 'ms-Panel-header',\n headerText: 'ms-Panel-headerText',\n content: 'ms-Panel-content',\n footer: 'ms-Panel-footer',\n footerInner: 'ms-Panel-footerInner',\n isOpen: 'is-open',\n hasCloseButton: 'ms-Panel--hasCloseButton',\n smallFluid: 'ms-Panel--smFluid',\n smallFixedNear: 'ms-Panel--smLeft',\n smallFixedFar: 'ms-Panel--sm',\n medium: 'ms-Panel--md',\n large: 'ms-Panel--lg',\n largeFixed: 'ms-Panel--fixed',\n extraLarge: 'ms-Panel--xl',\n custom: 'ms-Panel--custom',\n customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n full: '100%',\n auto: 'auto',\n xs: 272,\n sm: 340,\n md1: 592,\n md2: 644,\n lg: 940,\n};\nvar panelMargin = {\n auto: 'auto',\n none: 0,\n md: 48,\n lg: 428,\n xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n width: panelWidth.sm,\n },\n _a);\nvar mediumPanelSelectors = (_b = {},\n _b[\"@media (min-width: \".concat(ScreenWidthMinLarge, \"px)\")] = {\n width: panelWidth.md1,\n },\n _b[\"@media (min-width: \".concat(ScreenWidthMinXLarge, \"px)\")] = {\n width: panelWidth.md2,\n },\n _b);\nvar largePanelSelectors = (_c = {},\n _c[\"@media (min-width: \".concat(ScreenWidthMinUhfMobile, \"px)\")] = {\n left: panelMargin.md,\n width: panelWidth.auto,\n },\n _c[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.lg,\n },\n _c);\nvar largeFixedPanelSelectors = (_d = {},\n _d[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.auto,\n width: panelWidth.lg,\n },\n _d);\nvar extraLargePanelSelectors = (_e = {},\n _e[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.xl,\n },\n _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n var selectors;\n // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n // are not checked in here because they render the same in all the breakpoints\n // and have the checks done separately in the `getStyles` function below.\n switch (type) {\n case PanelType.smallFixedFar:\n selectors = __assign({}, smallPanelSelectors);\n break;\n case PanelType.medium:\n selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n break;\n case PanelType.large:\n selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n break;\n case PanelType.largeFixed:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n break;\n case PanelType.extraLarge:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n break;\n default:\n break;\n }\n return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n paddingLeft: '24px',\n paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _e = props.type, type = _e === void 0 ? PanelType.smallFixedFar : _e;\n var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isOpen && classNames.isOpen,\n hasCloseButton && classNames.hasCloseButton,\n {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n isCustomPanel && isOnRightSide && classNames.custom,\n isCustomPanel && !isOnRightSide && classNames.customNear,\n className,\n ],\n overlay: [\n {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n isOpen && isAnimating && AnimationClassNames.fadeIn100,\n !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n ],\n hiddenPanel: [\n !isOpen &&\n !isAnimating &&\n isHiddenOnDismiss && {\n visibility: 'hidden',\n },\n ],\n main: [\n classNames.main,\n {\n backgroundColor: semanticColors.bodyBackground,\n boxShadow: effects.elevation64,\n pointerEvents: 'auto',\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n bottom: 0,\n top: 0,\n // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n left: panelMargin.auto,\n right: panelMargin.none,\n width: panelWidth.full,\n selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n borderLeft: \"3px solid \".concat(semanticColors.variantBorder),\n borderRight: \"3px solid \".concat(semanticColors.variantBorder),\n }, _a), getPanelBreakpoints(type)),\n },\n type === PanelType.smallFluid && {\n left: panelMargin.none,\n },\n type === PanelType.smallFixedNear && {\n left: panelMargin.none,\n right: panelMargin.auto,\n width: panelWidth.xs,\n },\n type === PanelType.customNear && {\n right: 'auto',\n left: 0,\n },\n isCustomPanel && {\n maxWidth: '100vw',\n },\n isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n focusTrapZoneClassName,\n ],\n commands: [\n classNames.commands,\n {\n // Ensures that the sticky header always has a background to prevent overlaps on scroll.\n backgroundColor: semanticColors.bodyBackground,\n paddingTop: 18,\n selectors: (_b = {},\n _b[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n },\n _b),\n },\n hasCustomNavigation && {\n paddingTop: 'inherit',\n },\n ],\n navigation: [\n classNames.navigation,\n {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n hasCustomNavigation && {\n height: commandBarHeight,\n },\n ],\n contentInner: [\n classNames.contentInner,\n {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n overflowY: 'hidden',\n },\n ],\n header: [\n classNames.header,\n sharedPaddingStyles,\n {\n alignSelf: 'flex-start',\n },\n hasCloseButton &&\n !hasCustomNavigation && {\n flexGrow: 1,\n },\n hasCustomNavigation && {\n // Ensure that title doesn't shrink if screen is too small\n flexShrink: 0,\n },\n ],\n headerText: [\n classNames.headerText,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n lineHeight: '27px',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n wordBreak: 'break-word',\n hyphens: 'auto',\n },\n headerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n },\n isFooterAtBottom && {\n flexGrow: 1,\n display: 'inherit',\n flexDirection: 'inherit',\n },\n ],\n content: [\n classNames.content,\n sharedPaddingStyles,\n {\n paddingBottom: 20,\n },\n isFooterAtBottom && {\n selectors: (_c = {},\n _c[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n flexGrow: 1,\n },\n _c),\n },\n ],\n footer: [\n classNames.footer,\n {\n // Ensure that footer doesn't shrink if screen is too small\n flexShrink: 0,\n borderTop: '1px solid transparent',\n transition: \"opacity \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction2),\n selectors: (_d = {},\n _d[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n position: 'sticky',\n bottom: 0,\n },\n _d),\n },\n isFooterSticky && {\n backgroundColor: semanticColors.bodyBackground,\n borderTopColor: semanticColors.variantBorder,\n },\n ],\n footerInner: [\n classNames.footerInner,\n sharedPaddingStyles,\n {\n paddingBottom: 16,\n paddingTop: 16,\n },\n ],\n subComponentStyles: {\n closeButton: {\n root: [\n classNames.closeButton,\n {\n marginRight: 14,\n color: theme.palette.neutralSecondary,\n fontSize: IconFontSizes.large,\n },\n hasCustomNavigation && {\n marginRight: 0,\n height: 'auto',\n width: '44px',\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n },\n },\n },\n };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"large\"] = 4] = \"large\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Persona',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n /**\n * Deprecation helper for getting text.\n */\n var getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return props.text || props.primaryText || '';\n };\n /**\n * Renders various types of Text (primaryText, secondaryText, etc)\n * based on the classNames passed\n * @param elementClassNames - element className\n * @param renderFunction - render function\n * @param defaultRenderFunction - default render function\n */\n var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n var content = renderFunction && renderFunction(props, defaultRenderFunction);\n return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n };\n /**\n * using closure to wrap the default render behavior\n * to make it independent of the type of text passed\n * @param text - text to render\n */\n var onRenderText = function (text, tooltip) {\n if (tooltip === void 0) { tooltip = true; }\n // return default render behavior for valid text or undefined\n return text\n ? tooltip\n ? function () {\n // default onRender behavior\n return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n }\n : function () { return React.createElement(React.Fragment, null, text); }\n : undefined;\n };\n var onInternalRenderPersonaCoin = function (providedCoinProps) {\n return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n };\n // wrapping default render behavior based on various props properties\n var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n var size = props.size;\n // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showSecondaryText: showSecondaryText,\n presence: presence,\n size: size,\n });\n var divProps = getNativeProps(props, divProperties);\n var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n props.children));\n return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n /* eslint-disable deprecation/deprecation */\n (!hidePersonaDetails ||\n size === PersonaSize.size8 ||\n size === PersonaSize.size10 ||\n size === PersonaSize.tiny) &&\n personaDetails\n /* eslint-enable deprecation/deprecation */\n ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n root: 'ms-Persona',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n available: 'ms-Persona--online',\n away: 'ms-Persona--away',\n blocked: 'ms-Persona--blocked',\n busy: 'ms-Persona--busy',\n doNotDisturb: 'ms-Persona--donotdisturb',\n offline: 'ms-Persona--offline',\n details: 'ms-Persona-details',\n primaryText: 'ms-Persona-primaryText',\n secondaryText: 'ms-Persona-secondaryText',\n tertiaryText: 'ms-Persona-tertiaryText',\n optionalText: 'ms-Persona-optionalText',\n textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n var showSecondaryTextDefaultHeight = '16px';\n var sharedTextStyles = {\n color: semanticColors.bodySubtext,\n fontWeight: FontWeights.regular,\n fontSize: fonts.small.fontSize,\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n normalize,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n height: personaSize.size48,\n minWidth: personaSize.size48,\n display: 'flex',\n alignItems: 'center',\n selectors: {\n '.contextualHost': {\n display: 'none',\n },\n },\n },\n size.isSize8 && [\n classNames.size8,\n {\n height: personaSize.size8,\n minWidth: personaSize.size8,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize10 && [\n classNames.size10,\n {\n height: personaSize.size10,\n minWidth: personaSize.size10,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize16 && [\n classNames.size16,\n {\n height: personaSize.size16,\n minWidth: personaSize.size16,\n },\n ],\n size.isSize24 && [\n classNames.size24,\n {\n height: personaSize.size24,\n minWidth: personaSize.size24,\n },\n ],\n size.isSize24 &&\n showSecondaryText && {\n height: '36px',\n },\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize28 && [\n classNames.size28,\n {\n height: personaSize.size28,\n minWidth: personaSize.size28,\n },\n ],\n size.isSize28 &&\n showSecondaryText && {\n height: '32px',\n },\n size.isSize32 && [\n classNames.size32,\n {\n height: personaSize.size32,\n minWidth: personaSize.size32,\n },\n ],\n size.isSize40 && [\n classNames.size40,\n {\n height: personaSize.size40,\n minWidth: personaSize.size40,\n },\n ],\n size.isSize48 && classNames.size48,\n size.isSize56 && [\n classNames.size56,\n {\n height: personaSize.size56,\n minWidth: personaSize.size56,\n },\n ],\n size.isSize72 && [\n classNames.size72,\n {\n height: personaSize.size72,\n minWidth: personaSize.size72,\n },\n ],\n size.isSize100 && [\n classNames.size100,\n {\n height: personaSize.size100,\n minWidth: personaSize.size100,\n },\n ],\n size.isSize120 && [\n classNames.size120,\n {\n height: personaSize.size120,\n minWidth: personaSize.size120,\n },\n ],\n /**\n * Modifiers: presence\n */\n presence.isAvailable && classNames.available,\n presence.isAway && classNames.away,\n presence.isBlocked && classNames.blocked,\n presence.isBusy && classNames.busy,\n presence.isDoNotDisturb && classNames.doNotDisturb,\n presence.isOffline && classNames.offline,\n className,\n ],\n details: [\n classNames.details,\n {\n padding: '0 24px 0 16px',\n minWidth: 0,\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n },\n (size.isSize8 || size.isSize10) && {\n paddingLeft: 17, // increased padding because we don't render a coin at this size\n },\n (size.isSize24 || size.isSize28 || size.isSize32) && {\n padding: '0 8px',\n },\n (size.isSize40 || size.isSize48) && {\n padding: '0 12px',\n },\n ],\n primaryText: [\n classNames.primaryText,\n noWrap,\n {\n color: semanticColors.bodyText,\n fontWeight: FontWeights.regular,\n fontSize: fonts.medium.fontSize,\n selectors: {\n ':hover': {\n color: semanticColors.inputTextHovered,\n },\n },\n },\n showSecondaryText && {\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n (size.isSize8 || size.isSize10) && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaSize.size8,\n },\n size.isSize16 && {\n lineHeight: personaSize.size28,\n },\n (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.xLarge.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 22,\n },\n ],\n secondaryText: [\n classNames.secondaryText,\n noWrap,\n sharedTextStyles,\n (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n display: 'none',\n },\n showSecondaryText && {\n display: 'block',\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n size.isSize24 &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 18,\n },\n ],\n tertiaryText: [\n classNames.tertiaryText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize72 || size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n optionalText: [\n classNames.optionalText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n textContent: [classNames.textContent, noWrap],\n };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size24` instead.\n */\n PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size32` instead.\n */\n PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size40` instead.\n */\n PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size48` instead.\n */\n PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size72` instead.\n */\n PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size100` instead.\n */\n PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * No `PersonaCoin` is rendered.\n */\n PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n /**\n * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n /**\n * Renders a 16px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n /**\n * Renders a 24px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n /**\n * Renders a 28px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n /**\n * Renders a 32px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n /**\n * Renders a 40px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n /**\n * Renders a 48px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n /**\n * Renders a 56px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n /**\n * Renders a 72px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n /**\n * Renders a 100px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n /**\n * Renders a 120px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n /**\n * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n /**\n * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n * can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n /**\n * `gray` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n // There can be many PersonaPresence rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var size = sizeBoolean(props.size);\n // Render Presence Icon if Persona is above size 32.\n var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n (coinSize ? coinSize > 32 : true);\n var presenceHeightWidth = coinSize\n ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n ? coinSize / coinSizePresenceScaleFactor + 'px'\n : presenceMaxSize + 'px'\n : '';\n var presenceFontSize = coinSize\n ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n ? coinSize / coinSizeFontScaleFactor + 'px'\n : presenceFontMaxSize + 'px'\n : '';\n var coinSizeWithPresenceIconStyle = coinSize\n ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n : undefined;\n var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n presence: presence,\n size: props.size,\n isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors,\n });\n if (presence === PersonaPresenceEnum.none) {\n return null;\n }\n return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n if (!presence) {\n return undefined;\n }\n var oofIcon = 'SkypeArrow';\n switch (PersonaPresenceEnum[presence]) {\n case 'online':\n return 'SkypeCheck';\n case 'away':\n return isOutOfOffice ? oofIcon : 'SkypeClock';\n case 'dnd':\n return 'SkypeMinus';\n case 'offline':\n return isOutOfOffice ? oofIcon : '';\n }\n return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n presence: 'ms-Persona-presence',\n presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var theme = props.theme, presenceColors = props.presenceColors;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n // Presence colors\n var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n var isOpenCirclePresence = presence.isOffline ||\n (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n var borderSizeForSmallPersonas = '1px';\n var borderSizeForLargePersonas = '2px';\n var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n return {\n presence: [\n classNames.presence,\n __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \".concat(presenceColorBackground), textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n backgroundColor: 'WindowText',\n },\n _a) }),\n (size.isSize8 || size.isSize10) && {\n right: 'auto',\n top: '7px',\n left: 0,\n border: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n top: '9px',\n border: '1px solid WindowText',\n },\n _b),\n },\n (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n makeSizeStyle(personaPresenceSize.size8),\n (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n size.isSize16 && {\n height: personaPresenceSize.size6,\n width: personaPresenceSize.size6,\n borderWidth: '1.5px',\n },\n size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n presence.isAvailable && {\n backgroundColor: presenceColorAvailable,\n selectors: (_c = {},\n _c[HighContrastSelector] = backgroundColor('Highlight'),\n _c),\n },\n presence.isAway && backgroundColor(presenceColorAway),\n presence.isBlocked && [\n {\n selectors: (_d = {\n // Only show :after at larger sizes\n ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n ? {\n content: '\"\"',\n width: '100%',\n height: borderSize,\n backgroundColor: presenceColorBusy,\n transform: 'translateY(-50%) rotate(-45deg)',\n position: 'absolute',\n top: '50%',\n left: 0,\n }\n : undefined\n },\n _d[HighContrastSelector] = {\n selectors: {\n ':after': {\n width: \"calc(100% - 4px)\",\n left: '2px',\n backgroundColor: 'Window',\n },\n },\n },\n _d),\n },\n ],\n presence.isBusy && backgroundColor(presenceColorBusy),\n presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n presence.isOffline && backgroundColor(presenceColorOffline),\n (isOpenCirclePresence || presence.isBlocked) && [\n {\n backgroundColor: presenceColorBackground,\n selectors: (_e = {\n ':before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n border: \"\".concat(borderSize, \" solid \").concat(presenceColorBusy),\n borderRadius: '50%',\n boxSizing: 'border-box',\n }\n },\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n selectors: {\n ':before': {\n width: \"calc(100% - 2px)\",\n height: \"calc(100% - 2px)\",\n top: '1px',\n left: '1px',\n borderColor: 'Window',\n },\n },\n },\n _e),\n },\n ],\n isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n isOpenCirclePresence &&\n presence.isOffline &&\n props.isOutOfOffice &&\n makeBeforeBorderStyle(borderSize, presenceColorOof),\n ],\n presenceIcon: [\n classNames.presenceIcon,\n {\n color: presenceColorBackground,\n fontSize: '6px',\n lineHeight: personaPresenceSize.size12,\n verticalAlign: 'top',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'Window',\n },\n _f),\n },\n size.isSize56 && {\n fontSize: '8px',\n lineHeight: personaPresenceSize.size16,\n },\n size.isSize72 && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaPresenceSize.size20,\n },\n size.isSize100 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size28,\n },\n size.isSize120 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size32,\n },\n presence.isAway && {\n position: 'relative',\n left: isOpenCirclePresence ? undefined : '1px',\n },\n isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n ],\n };\n};\nfunction makeOpenCircleIconStyle(color) {\n return {\n color: color,\n borderColor: color,\n };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n return {\n selectors: {\n ':before': {\n border: \"\".concat(borderSize, \" solid \").concat(color),\n },\n },\n };\n}\nfunction makeSizeStyle(size) {\n return {\n height: size,\n width: size,\n };\n}\nfunction backgroundColor(color) {\n return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n * its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n PersonaInitialsColor.lightBlue,\n PersonaInitialsColor.blue,\n PersonaInitialsColor.darkBlue,\n PersonaInitialsColor.teal,\n PersonaInitialsColor.green,\n PersonaInitialsColor.darkGreen,\n PersonaInitialsColor.lightPink,\n PersonaInitialsColor.pink,\n PersonaInitialsColor.magenta,\n PersonaInitialsColor.purple,\n PersonaInitialsColor.orange,\n PersonaInitialsColor.lightRed,\n PersonaInitialsColor.darkRed,\n PersonaInitialsColor.violet,\n PersonaInitialsColor.gold,\n PersonaInitialsColor.burgundy,\n PersonaInitialsColor.warmGray,\n PersonaInitialsColor.cyan,\n PersonaInitialsColor.rust,\n PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n var color = PersonaInitialsColor.blue;\n if (!displayName) {\n return color;\n }\n var hashCode = 0;\n for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n var ch = displayName.charCodeAt(iLen);\n var shift = iLen % 8;\n // eslint-disable-next-line no-bitwise\n hashCode ^= (ch << shift) + (ch >> (8 - shift));\n }\n color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n switch (personaInitialsColor) {\n case PersonaInitialsColor.lightBlue:\n return '#4F6BED';\n case PersonaInitialsColor.blue:\n return '#0078D4';\n case PersonaInitialsColor.darkBlue:\n return '#004E8C';\n case PersonaInitialsColor.teal:\n return '#038387';\n case PersonaInitialsColor.lightGreen:\n case PersonaInitialsColor.green:\n return '#498205';\n case PersonaInitialsColor.darkGreen:\n return '#0B6A0B';\n case PersonaInitialsColor.lightPink:\n return '#C239B3';\n case PersonaInitialsColor.pink:\n return '#E3008C';\n case PersonaInitialsColor.magenta:\n return '#881798';\n case PersonaInitialsColor.purple:\n return '#5C2E91';\n case PersonaInitialsColor.orange:\n return '#CA5010';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.red:\n return '#EE1111';\n case PersonaInitialsColor.lightRed:\n return '#D13438';\n case PersonaInitialsColor.darkRed:\n return '#A4262C';\n case PersonaInitialsColor.transparent:\n return 'transparent';\n case PersonaInitialsColor.violet:\n return '#8764B8';\n case PersonaInitialsColor.gold:\n return '#986F0B';\n case PersonaInitialsColor.burgundy:\n return '#750B1C';\n case PersonaInitialsColor.warmGray:\n return '#7A7574';\n case PersonaInitialsColor.cyan:\n return '#005B70';\n case PersonaInitialsColor.rust:\n return '#8E562E';\n case PersonaInitialsColor.coolGray:\n return '#69797E';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.black:\n return '#1D1D1D';\n case PersonaInitialsColor.gray:\n return '#393939';\n }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n // eslint-disable-next-line deprecation/deprecation\n var primaryText = props.primaryText, text = props.text;\n var initialsColor = props.initialsColor;\n var initialsColorCode;\n if (typeof initialsColor === 'string') {\n initialsColorCode = initialsColor;\n }\n else {\n initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n }\n return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n // There can be many PersonaCoin rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n return mergeStyles(className, !showUnknownPersonaCoin && {\n backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n color: initialsTextColor,\n });\n});\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'PersonaCoin',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\nfunction useImageLoadState(_a) {\n var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n React.useEffect(function () {\n setImageLoadstate(ImageLoadState.notLoaded);\n }, [imageUrl]);\n var onLoadingStateChange = function (loadState) {\n setImageLoadstate(loadState);\n onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n };\n return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n var renderCoin = getCoinRenderer(onLoadingStateChange);\n var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.onRenderCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = _b === void 0 ? renderCoin : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onRenderPersonaCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n var divProps = getNativeProps(props, divProperties);\n var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n var hideImage = showUnknownPersonaCoin;\n var personaPresenceProps = {\n coinSize: coinSize,\n isOutOfOffice: isOutOfOffice,\n presence: presence,\n presenceTitle: presenceTitle,\n presenceColors: presenceColors,\n size: size,\n theme: theme,\n };\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n className: coinProps && coinProps.className ? coinProps.className : className,\n size: size,\n coinSize: coinSize,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n // eslint-disable-next-line deprecation/deprecation\n size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n !hideImage && onRenderPersonaCoin(props, renderCoin),\n React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n // Just render Contact Icon if there isn't a Presence prop.\n React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) {\n return function (_a) {\n var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n // Render the Image component only if an image URL is provided\n if (!imageUrl) {\n return null;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: size,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var dimension = coinSize || sizeToPixels[size];\n return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n };\n};\nvar renderPersonaCoinInitials = function (_a) {\n var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = _a.primaryText, theme = _a.theme;\n if (showUnknownPersonaCoin) {\n return React.createElement(Icon, { iconName: \"Help\" });\n }\n var isRTL = getRTL(theme);\n imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n coin: 'ms-Persona-coin',\n imageArea: 'ms-Persona-imageArea',\n image: 'ms-Persona-image',\n initials: 'ms-Persona-initials',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, coinSize = props.coinSize;\n var palette = theme.palette, fonts = theme.fonts;\n var size = sizeBoolean(props.size);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Static colors used when displaying 'unknown persona' coin\n var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n return {\n coin: [\n classNames.coin,\n fonts.medium,\n size.isSize8 && classNames.size8,\n size.isSize10 && classNames.size10,\n size.isSize16 && classNames.size16,\n size.isSize24 && classNames.size24,\n size.isSize28 && classNames.size28,\n size.isSize32 && classNames.size32,\n size.isSize40 && classNames.size40,\n size.isSize48 && classNames.size48,\n size.isSize56 && classNames.size56,\n size.isSize72 && classNames.size72,\n size.isSize100 && classNames.size100,\n size.isSize120 && classNames.size120,\n className,\n ],\n size10WithoutPresenceIcon: {\n fontSize: fonts.xSmall.fontSize,\n position: 'absolute',\n top: '5px',\n right: 'auto',\n left: 0,\n },\n imageArea: [\n classNames.imageArea,\n {\n position: 'relative',\n textAlign: 'center',\n flex: '0 0 auto',\n height: dimension,\n width: dimension,\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n ],\n image: [\n classNames.image,\n {\n marginRight: '10px',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n borderRadius: '50%',\n perspective: '1px',\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n dimension > 10 && {\n height: dimension,\n width: dimension,\n },\n ],\n initials: [\n classNames.initials,\n {\n borderRadius: '50%',\n color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n fontSize: fonts.large.fontSize,\n fontWeight: FontWeights.semibold,\n // copying the logic for the dimensions; defaulted to 46 for size48\n lineHeight: dimension === 48 ? 46 : dimension,\n height: dimension,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n _a.i = {\n fontWeight: FontWeights.semibold,\n },\n _a),\n },\n props.showUnknownPersonaCoin && {\n backgroundColor: unknownPersonaBackgroundColor,\n },\n dimension < 32 && {\n fontSize: fonts.xSmall.fontSize,\n },\n dimension >= 32 &&\n dimension < 40 && {\n fontSize: fonts.medium.fontSize,\n },\n dimension >= 40 &&\n dimension < 56 && {\n fontSize: fonts.mediumPlus.fontSize,\n },\n dimension >= 56 &&\n dimension < 72 && {\n fontSize: fonts.xLarge.fontSize,\n },\n dimension >= 72 &&\n dimension < 100 && {\n fontSize: fonts.xxLarge.fontSize,\n },\n dimension >= 100 && {\n fontSize: fonts.superLarge.fontSize,\n },\n ],\n };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n personaSize.size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size16 = '16px';\n personaSize.size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size28 = '28px';\n personaSize.size32 = '32px';\n personaSize.size40 = '40px';\n personaSize.size48 = '48px';\n personaSize.size56 = '56px';\n personaSize.size72 = '72px';\n personaSize.size100 = '100px';\n personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n personaPresenceSize.size6 = '6px';\n personaPresenceSize.size8 = '8px';\n personaPresenceSize.size12 = '12px';\n personaPresenceSize.size16 = '16px';\n personaPresenceSize.size20 = '20px';\n personaPresenceSize.size28 = '28px';\n personaPresenceSize.size32 = '32px';\n /**\n * @deprecated This is now unused\n */\n personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n // Old deprecated sizes\n _a[PersonaSize.tiny] = 10,\n _a[PersonaSize.extraExtraSmall] = 24,\n _a[PersonaSize.extraSmall] = 28,\n _a[PersonaSize.small] = 40,\n _a[PersonaSize.regular] = 48,\n _a[PersonaSize.large] = 72,\n _a[PersonaSize.extraLarge] = 100,\n // New sizes\n _a[PersonaSize.size8] = 8,\n _a[PersonaSize.size10] = 10,\n _a[PersonaSize.size16] = 16,\n _a[PersonaSize.size24] = 24,\n _a[PersonaSize.size28] = 28,\n /* eslint-enable deprecation/deprecation */\n _a[PersonaSize.size32] = 32,\n _a[PersonaSize.size40] = 40,\n _a[PersonaSize.size48] = 48,\n _a[PersonaSize.size56] = 56,\n _a[PersonaSize.size72] = 72,\n _a[PersonaSize.size100] = 100,\n _a[PersonaSize.size120] = 120,\n _a);\nexport var presenceBoolean = function (presence) { return ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\n/**\n * Creates a ref, and calls a callback whenever the ref changes to a non-null value. The callback can optionally return\n * a cleanup function that'll be called before the value changes, and when the ref is unmounted.\n *\n * This can be used to work around a limitation that useEffect cannot depend on `ref.current` (see\n * https://github.com/facebook/react/issues/14387#issuecomment-503616820).\n *\n * Usage example:\n * ```ts\n * const myRef = useRefEffect<HTMLElement>(element => {\n * ...\n * return () => { ... cleanup ... };\n * });\n * ```\n * ```jsx\n * <div ref={myRef} />\n * ```\n *\n * @param callback - Called whenever the ref's value changes to non-null. Can optionally return a cleanup function.\n * @param initial - (Optional) The initial value for the ref.\n *\n * @returns A function that should be called to set the ref's value. The object also has a `.current` member that can be\n * used to access the ref's value (like a normal RefObject). It can be hooked up to an element's `ref` property.\n */\nexport function useRefEffect(callback, initial) {\n if (initial === void 0) { initial = null; }\n var createRefCallback = function () {\n var refCallback = function (value) {\n if (data.ref.current !== value) {\n if (data.cleanup) {\n data.cleanup();\n data.cleanup = undefined;\n }\n data.ref.current = value;\n if (value !== null) {\n data.cleanup = data.callback(value);\n }\n }\n };\n refCallback.current = initial;\n return refCallback;\n };\n var data = React.useRef({\n ref: createRefCallback(),\n callback: callback,\n }).current;\n data.callback = callback;\n return data.ref;\n}\n//# sourceMappingURL=useRefEffect.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId } from '@fluentui/react-hooks';\nimport { classNamesFunction, css, divProperties, getNativeProps, getRTL, KeyCodes, warn } from '@fluentui/utilities';\nimport { CommandButton } from '../../Button';\nimport { useOverflow } from '../../utilities/useOverflow';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { DirectionalHint } from '../ContextualMenu/ContextualMenu.types';\nimport { Icon } from '../Icon/Icon';\nimport { PivotItem } from './PivotItem';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Pivot';\nvar getTabId = function (props, pivotId, itemKey, index) {\n if (props.getTabId) {\n return props.getTabId(itemKey, index);\n }\n return pivotId + \"-Tab\".concat(index);\n};\n// Gets the set of PivotLinks as array of IPivotItemProps\n// The set of Links is determined by child components of type PivotItem\nvar getLinkItems = function (props, pivotId) {\n var result = {\n links: [],\n keyToIndexMapping: {},\n keyToTabIdMapping: {},\n };\n React.Children.forEach(React.Children.toArray(props.children), function (child, index) {\n if (isPivotItem(child)) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = child.props, linkText = _a.linkText, pivotItemProps = __rest(_a, [\"linkText\"]);\n var itemKey = child.props.itemKey || index.toString();\n result.links.push(__assign(__assign({ headerText: linkText }, pivotItemProps), { itemKey: itemKey }));\n result.keyToIndexMapping[itemKey] = index;\n result.keyToTabIdMapping[itemKey] = getTabId(props, pivotId, itemKey, index);\n }\n else if (child) {\n warn('The children of a Pivot component must be of type PivotItem to be rendered.');\n }\n });\n return result;\n};\nvar isPivotItem = function (item) {\n var _a;\n return React.isValidElement(item) && ((_a = item.type) === null || _a === void 0 ? void 0 : _a.name) === PivotItem.name;\n};\nexport var PivotBase = React.forwardRef(function (props, ref) {\n var focusZoneRef = React.useRef(null);\n var overflowMenuButtonComponentRef = React.useRef(null);\n var pivotId = useId('Pivot');\n var _a = useControllableValue(props.selectedKey, props.defaultSelectedKey), selectedKey = _a[0], setSelectedKey = _a[1];\n var componentRef = props.componentRef, theme = props.theme, linkSize = props.linkSize, linkFormat = props.linkFormat, overflowBehavior = props.overflowBehavior, overflowAriaLabel = props.overflowAriaLabel, focusZoneProps = props.focusZoneProps, overflowButtonAs = props.overflowButtonAs;\n var classNames;\n var nameProps = {\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby'],\n };\n var divProps = getNativeProps(props, divProperties, [\n 'aria-label',\n 'aria-labelledby',\n ]);\n var linkCollection = getLinkItems(props, pivotId);\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () {\n var _a;\n (_a = focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n }); });\n var renderLinkContent = function (link) {\n if (!link) {\n return null;\n }\n var itemCount = link.itemCount, itemIcon = link.itemIcon, headerText = link.headerText;\n return (React.createElement(\"span\", { className: classNames.linkContent },\n itemIcon !== undefined && (React.createElement(\"span\", { className: classNames.icon },\n React.createElement(Icon, { iconName: itemIcon }))),\n headerText !== undefined && React.createElement(\"span\", { className: classNames.text },\n \" \",\n link.headerText),\n itemCount !== undefined && React.createElement(\"span\", { className: classNames.count },\n \" (\",\n itemCount,\n \")\")));\n };\n var renderPivotLink = function (renderLinkCollection, link, renderPivotLinkSelectedKey, className) {\n var itemKey = link.itemKey, headerButtonProps = link.headerButtonProps, onRenderItemLink = link.onRenderItemLink;\n var tabId = renderLinkCollection.keyToTabIdMapping[itemKey];\n var linkContent;\n var isSelected = renderPivotLinkSelectedKey === itemKey;\n if (onRenderItemLink) {\n linkContent = onRenderItemLink(link, renderLinkContent);\n }\n else {\n linkContent = renderLinkContent(link);\n }\n var contentString = link.headerText || '';\n contentString += link.itemCount ? ' (' + link.itemCount + ')' : '';\n // Adding space supplementary for icon\n contentString += link.itemIcon ? ' xx' : '';\n var itemSemantics = link.role && link.role !== 'tab'\n ? {\n role: link.role,\n }\n : {\n role: 'tab',\n 'aria-selected': isSelected,\n };\n return (React.createElement(CommandButton, __assign({}, headerButtonProps, itemSemantics, { id: tabId, key: itemKey, className: css(className, isSelected && classNames.linkIsSelected), \n // eslint-disable-next-line react/jsx-no-bind\n onClick: function (ev) { return onLinkClick(itemKey, ev); }, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return onKeyDown(itemKey, ev); }, \"aria-label\": link.ariaLabel, name: link.headerText, keytipProps: link.keytipProps, \"data-content\": contentString }), linkContent));\n };\n var onLinkClick = function (itemKey, ev) {\n ev.preventDefault();\n updateSelectedItem(itemKey, ev);\n };\n var onKeyDown = function (itemKey, ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n ev.preventDefault();\n updateSelectedItem(itemKey);\n }\n };\n var updateSelectedItem = function (itemKey, ev) {\n var _a;\n setSelectedKey(itemKey);\n linkCollection = getLinkItems(props, pivotId);\n if (props.onLinkClick && linkCollection.keyToIndexMapping[itemKey] >= 0) {\n var selectedIndex = linkCollection.keyToIndexMapping[itemKey];\n var item = React.Children.toArray(props.children)[selectedIndex];\n if (isPivotItem(item)) {\n props.onLinkClick(item, ev);\n }\n }\n (_a = overflowMenuButtonComponentRef.current) === null || _a === void 0 ? void 0 : _a.dismissMenu();\n };\n var renderPivotItem = function (itemKey, isActive) {\n if (props.headersOnly || !itemKey) {\n return null;\n }\n var index = linkCollection.keyToIndexMapping[itemKey];\n var selectedTabId = linkCollection.keyToTabIdMapping[itemKey];\n return (React.createElement(\"div\", { role: \"tabpanel\", hidden: !isActive, key: itemKey, \"aria-hidden\": !isActive, \"aria-labelledby\": selectedTabId, className: classNames.itemContainer }, React.Children.toArray(props.children)[index]));\n };\n var isKeyValid = function (itemKey) {\n return itemKey === null || (itemKey !== undefined && linkCollection.keyToIndexMapping[itemKey] !== undefined);\n };\n var getSelectedKey = function () {\n if (isKeyValid(selectedKey)) {\n return selectedKey;\n }\n if (linkCollection.links.length) {\n return linkCollection.links[0].itemKey;\n }\n return undefined;\n };\n classNames = getClassNames(props.styles, {\n theme: theme,\n linkSize: linkSize,\n linkFormat: linkFormat,\n });\n var renderedSelectedKey = getSelectedKey();\n var renderedSelectedIndex = renderedSelectedKey ? linkCollection.keyToIndexMapping[renderedSelectedKey] : 0;\n var items = linkCollection.links.map(function (l) {\n return renderPivotLink(linkCollection, l, renderedSelectedKey, classNames.link);\n });\n // The overflow menu starts empty and items[] is updated as the overflow items change\n var overflowMenuProps = React.useMemo(function () { return ({\n items: [],\n alignTargetEdge: true,\n directionalHint: DirectionalHint.bottomRightEdge,\n }); }, []);\n var overflowMenuButtonRef = useOverflow({\n onOverflowItemsChanged: function (overflowIndex, elements) {\n // Set data-is-overflowing on each item\n elements.forEach(function (_a) {\n var ele = _a.ele, isOverflowing = _a.isOverflowing;\n return (ele.dataset.isOverflowing = \"\".concat(isOverflowing));\n });\n // Update the menu items\n overflowMenuProps.items = linkCollection.links\n .slice(overflowIndex)\n .filter(function (link) { return link.itemKey !== renderedSelectedKey; })\n .map(function (link, index) {\n link.role = 'menuitem';\n return {\n key: link.itemKey || \"\".concat(overflowIndex + index),\n onRender: function () { return renderPivotLink(linkCollection, link, renderedSelectedKey, classNames.linkInMenu); },\n };\n });\n },\n rtl: getRTL(theme),\n pinnedIndex: renderedSelectedIndex,\n }).menuButtonRef;\n var OverflowButton = overflowButtonAs ? overflowButtonAs : CommandButton;\n return (React.createElement(\"div\", __assign({ ref: ref }, divProps),\n React.createElement(FocusZone, __assign({ componentRef: focusZoneRef, role: \"tablist\" }, nameProps, { direction: FocusZoneDirection.horizontal }, focusZoneProps, { className: css(classNames.root, focusZoneProps === null || focusZoneProps === void 0 ? void 0 : focusZoneProps.className) }),\n items,\n overflowBehavior === 'menu' && (React.createElement(OverflowButton, { className: css(classNames.link, classNames.overflowMenuButton), elementRef: overflowMenuButtonRef, componentRef: overflowMenuButtonComponentRef, menuProps: overflowMenuProps, menuIconProps: { iconName: 'More', style: { color: 'inherit' } }, ariaLabel: overflowAriaLabel, role: \"tab\" }))),\n renderedSelectedKey &&\n linkCollection.links.map(function (link) {\n return (link.alwaysRender === true || renderedSelectedKey === link.itemKey) &&\n renderPivotItem(link.itemKey, renderedSelectedKey === link.itemKey);\n })));\n});\nPivotBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Pivot.base.js.map","import * as React from 'react';\nimport { useIsomorphicLayoutEffect, useRefEffect } from '@fluentui/react-hooks';\nimport { getWindow } from '@fluentui/utilities';\nimport { observeResize } from './observeResize';\n/**\n * Track whether any items don't fit within their container, and move them to the overflow menu.\n * Items are moved into the overflow menu from back to front, excluding pinned items.\n *\n * The overflow menu button must be the last sibling of all of the items that can be put into the overflow, and it\n * must be hooked up to the `setMenuButtonRef` setter function that's returned by `useOverflow`:\n * ```ts\n * const overflow = useOverflow(...);\n * ```\n * ```jsx\n * <Container>\n * <Item /> // Index 0\n * <Item /> // Index 1\n * ...\n * <Button ref={overflow.setMenuButtonRef} /> // Can be any React.Component or HTMLElement\n * </Container>\n * ```\n */\nexport var useOverflow = function (_a) {\n var onOverflowItemsChanged = _a.onOverflowItemsChanged, rtl = _a.rtl, pinnedIndex = _a.pinnedIndex;\n var updateOverflowRef = React.useRef();\n var containerWidthRef = React.useRef();\n // Attach a resize observer to the container\n var containerRef = useRefEffect(function (container) {\n var cleanupObserver = observeResize(container, function (entries) {\n containerWidthRef.current = entries ? entries[0].contentRect.width : container.clientWidth;\n if (updateOverflowRef.current) {\n updateOverflowRef.current();\n }\n });\n return function () {\n cleanupObserver();\n containerWidthRef.current = undefined;\n };\n });\n var menuButtonRef = useRefEffect(function (menuButton) {\n containerRef(menuButton.parentElement);\n return function () { return containerRef(null); };\n });\n useIsomorphicLayoutEffect(function () {\n var container = containerRef.current;\n var menuButton = menuButtonRef.current;\n if (!container || !menuButton) {\n return;\n }\n // items contains the container's children, excluding the overflow menu button itself\n var items = [];\n for (var i = 0; i < container.children.length; i++) {\n var item = container.children[i];\n if (item instanceof HTMLElement && item !== menuButton) {\n items.push(item);\n }\n }\n // Keep track of the minimum width of the container to fit each child index.\n // This cache is an integral part of the algorithm and not just a performance optimization: it allows us to\n // recalculate the overflowIndex on subsequent resizes even if some items are already inside the overflow.\n var minContainerWidth = [];\n var extraWidth = 0; // The accumulated width of items that don't move into the overflow\n updateOverflowRef.current = function () {\n var containerWidth = containerWidthRef.current;\n if (containerWidth === undefined) {\n return;\n }\n // Iterate the items in reverse order until we find one that fits within the bounds of the container\n for (var i = items.length - 1; i >= 0; i--) {\n // Calculate the min container width for this item if we haven't done so yet\n if (minContainerWidth[i] === undefined) {\n var itemOffsetEnd = rtl ? containerWidth - items[i].offsetLeft : items[i].offsetLeft + items[i].offsetWidth;\n // If the item after this one is pinned, reserve space for it\n if (i + 1 < items.length && i + 1 === pinnedIndex) {\n // Use distance between the end of the previous item and this one (rather than the\n // pinned item's offsetWidth), to account for any margin between the items.\n extraWidth = minContainerWidth[i + 1] - itemOffsetEnd;\n }\n // Reserve space for the menu button after the first item was added to the overflow\n if (i === items.length - 2) {\n extraWidth += menuButton.offsetWidth;\n }\n minContainerWidth[i] = itemOffsetEnd + extraWidth;\n }\n if (containerWidth > minContainerWidth[i]) {\n setOverflowIndex(i + 1);\n return;\n }\n }\n // If we got here, nothing fits outside the overflow\n setOverflowIndex(0);\n };\n var prevOverflowIndex = items.length;\n var setOverflowIndex = function (overflowIndex) {\n if (prevOverflowIndex !== overflowIndex) {\n prevOverflowIndex = overflowIndex;\n onOverflowItemsChanged(overflowIndex, items.map(function (ele, index) { return ({\n ele: ele,\n isOverflowing: index >= overflowIndex && index !== pinnedIndex,\n }); }));\n }\n };\n var cancelAnimationFrame = undefined;\n // If the container width is already known from a previous render, update the overflow with its width.\n // Do this in an animation frame to avoid forcing layout to happen early.\n if (containerWidthRef.current !== undefined) {\n var win_1 = getWindow(container);\n if (win_1) {\n var animationFrameId_1 = win_1.requestAnimationFrame(updateOverflowRef.current);\n cancelAnimationFrame = function () { return win_1.cancelAnimationFrame(animationFrameId_1); };\n }\n }\n return function () {\n if (cancelAnimationFrame) {\n cancelAnimationFrame();\n }\n // On cleanup, need to remove all items from the overflow\n // so they don't have stale properties on the next render\n setOverflowIndex(items.length);\n updateOverflowRef.current = undefined;\n };\n });\n return { menuButtonRef: menuButtonRef };\n};\n//# sourceMappingURL=useOverflow.js.map","import { getWindow } from '@fluentui/utilities';\n/**\n * Wrapper for ResizeObserver, with fallback for browsers that don't support ResizeObserver.\n *\n * Calls the onResize callback once layout is complete, and again whenever any of the target(s) change size.\n * Or if ResizeObserver isn't supported, calls the callback whenever the window changes size.\n *\n * @param target - Either a single element, or array of elements to watch for size changes.\n * @param onResize - Callback to be notified when layout is complete, and when the target(s) change size.\n * If this browser supports ResizeObserver, the callback will be passed the ResizeObserverEntry[] array.\n * Otherwise, the entries array will be undefined, and you'll need to find another way to get the element's size,\n * (e.g. clientWidth/clientHeight or getBoundingClientRect).\n *\n * @returns A function to clean up the observer/listener.\n */\nexport var observeResize = function (target, onResize) {\n if (typeof ResizeObserver !== 'undefined') {\n var observer_1 = new ResizeObserver(onResize);\n if (Array.isArray(target)) {\n target.forEach(function (t) { return observer_1.observe(t); });\n }\n else {\n observer_1.observe(target);\n }\n return function () { return observer_1.disconnect(); };\n }\n else {\n // Fallback for browsers that don't support ResizeObserver\n var onResizeWrapper_1 = function () { return onResize(undefined); };\n var win_1 = getWindow(Array.isArray(target) ? target[0] : target);\n if (!win_1) {\n // Can't listen for resize if we can't get the window object\n return function () {\n // Nothing to clean up\n };\n }\n // Listen for the first animation frame, which will happen after layout is complete\n var animationFrameId_1 = win_1.requestAnimationFrame(onResizeWrapper_1);\n win_1.addEventListener('resize', onResizeWrapper_1, false);\n return function () {\n win_1.cancelAnimationFrame(animationFrameId_1);\n win_1.removeEventListener('resize', onResizeWrapper_1, false);\n };\n }\n};\n//# sourceMappingURL=observeResize.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { AnimationVariables, getGlobalClassNames, HighContrastSelector, normalize, FontWeights, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar globalClassNames = {\n count: 'ms-Pivot-count',\n icon: 'ms-Pivot-icon',\n linkIsSelected: 'is-selected',\n link: 'ms-Pivot-link',\n linkContent: 'ms-Pivot-linkContent',\n root: 'ms-Pivot',\n rootIsLarge: 'ms-Pivot--large',\n rootIsTabs: 'ms-Pivot--tabs',\n text: 'ms-Pivot-text',\n linkInMenu: 'ms-Pivot-linkInMenu',\n overflowMenuButton: 'ms-Pivot-overflowMenuButton',\n};\nvar getLinkStyles = function (props, classNames, isLinkInOverflowMenu) {\n var _a, _b, _c;\n if (isLinkInOverflowMenu === void 0) { isLinkInOverflowMenu = false; }\n var linkSize = props.linkSize, linkFormat = props.linkFormat;\n var _d = props.theme, semanticColors = _d.semanticColors, fonts = _d.fonts;\n var rootIsLarge = linkSize === 'large';\n var rootIsTabs = linkFormat === 'tabs';\n return [\n fonts.medium,\n {\n color: semanticColors.actionLink,\n padding: '0 8px',\n position: 'relative',\n backgroundColor: 'transparent',\n border: 0,\n borderRadius: 0,\n selectors: {\n ':hover': {\n backgroundColor: semanticColors.buttonBackgroundHovered,\n color: semanticColors.buttonTextHovered,\n cursor: 'pointer',\n },\n ':active': {\n backgroundColor: semanticColors.buttonBackgroundPressed,\n color: semanticColors.buttonTextHovered,\n },\n ':focus': {\n outline: 'none',\n },\n },\n },\n !isLinkInOverflowMenu && [\n {\n display: 'inline-block',\n lineHeight: 44,\n height: 44,\n marginRight: 8,\n textAlign: 'center',\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = {\n outline: \"1px solid \".concat(semanticColors.focusBorder),\n },\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus:after\")] = {\n content: 'attr(data-content)',\n position: 'relative',\n border: 0,\n },\n _a[':before'] = {\n backgroundColor: 'transparent',\n bottom: 0,\n content: '\"\"',\n height: 2,\n left: 8,\n position: 'absolute',\n right: 8,\n transition: \"left \".concat(AnimationVariables.durationValue2, \" \").concat(AnimationVariables.easeFunction2, \",\\n right \").concat(AnimationVariables.durationValue2, \" \").concat(AnimationVariables.easeFunction2),\n },\n _a[':after'] = {\n color: 'transparent',\n content: 'attr(data-content)',\n display: 'block',\n fontWeight: FontWeights.bold,\n height: 1,\n overflow: 'hidden',\n visibility: 'hidden',\n },\n _a),\n },\n rootIsLarge && {\n fontSize: fonts.large.fontSize,\n },\n rootIsTabs && [\n {\n marginRight: 0,\n height: 44,\n lineHeight: 44,\n backgroundColor: semanticColors.buttonBackground,\n padding: '0 10px',\n verticalAlign: 'top',\n selectors: (_b = {\n ':focus': {\n outlineOffset: '-2px',\n }\n },\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus::before\")] = {\n height: 'auto',\n background: 'transparent',\n transition: 'none',\n },\n _b['&:hover, &:focus'] = {\n color: semanticColors.buttonTextCheckedHovered,\n },\n _b['&:active, &:hover'] = {\n color: semanticColors.primaryButtonText,\n backgroundColor: semanticColors.primaryButtonBackground,\n },\n _b[\"&.\".concat(classNames.linkIsSelected)] = {\n backgroundColor: semanticColors.primaryButtonBackground,\n color: semanticColors.primaryButtonText,\n fontWeight: FontWeights.regular,\n selectors: (_c = {\n ':before': {\n backgroundColor: 'transparent',\n transition: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n content: '\"\"',\n height: 0,\n },\n ':hover': {\n backgroundColor: semanticColors.primaryButtonBackgroundHovered,\n color: semanticColors.primaryButtonText,\n },\n ':active': {\n backgroundColor: semanticColors.primaryButtonBackgroundPressed,\n color: semanticColors.primaryButtonText,\n }\n },\n _c[HighContrastSelector] = __assign({ fontWeight: FontWeights.semibold, color: 'HighlightText', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n _b[\".\".concat(IsFocusVisibleClassName, \" &.\").concat(classNames.linkIsSelected, \":focus\")] = {\n outlineColor: semanticColors.primaryButtonText,\n },\n _b),\n },\n ],\n ],\n ];\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var className = props.className, linkSize = props.linkSize, linkFormat = props.linkFormat, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var rootIsLarge = linkSize === 'large';\n var rootIsTabs = linkFormat === 'tabs';\n return {\n root: [\n classNames.root,\n fonts.medium,\n normalize,\n {\n position: 'relative',\n color: semanticColors.link,\n whiteSpace: 'nowrap',\n },\n rootIsLarge && classNames.rootIsLarge,\n rootIsTabs && classNames.rootIsTabs,\n className,\n ],\n itemContainer: {\n selectors: {\n '&[hidden]': {\n display: 'none',\n },\n },\n },\n link: __spreadArray(__spreadArray([\n classNames.link\n ], getLinkStyles(props, classNames), true), [\n (_a = {},\n _a[\"&[data-is-overflowing='true']\"] = {\n display: 'none',\n },\n _a),\n ], false),\n overflowMenuButton: [\n classNames.overflowMenuButton,\n (_b = {\n visibility: 'hidden',\n position: 'absolute',\n right: 0\n },\n _b[\".\".concat(classNames.link, \"[data-is-overflowing='true'] ~ &\")] = {\n visibility: 'visible',\n position: 'relative',\n },\n _b),\n ],\n linkInMenu: __spreadArray(__spreadArray([\n classNames.linkInMenu\n ], getLinkStyles(props, classNames, true), true), [\n {\n textAlign: 'left',\n width: '100%',\n height: 36,\n lineHeight: 36,\n },\n ], false),\n linkIsSelected: [\n classNames.link,\n classNames.linkIsSelected,\n {\n fontWeight: FontWeights.semibold,\n selectors: (_c = {\n ':before': {\n backgroundColor: semanticColors.inputBackgroundChecked,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _d),\n },\n ':hover::before': {\n left: 0,\n right: 0,\n }\n },\n _c[HighContrastSelector] = {\n color: 'Highlight',\n },\n _c),\n },\n ],\n linkContent: [\n classNames.linkContent,\n {\n flex: '0 1 100%',\n selectors: {\n '& > * ': {\n marginLeft: 4,\n },\n '& > *:first-child': {\n marginLeft: 0,\n },\n },\n },\n ],\n text: [\n classNames.text,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n count: [\n classNames.count,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n icon: classNames.icon,\n };\n};\n//# sourceMappingURL=Pivot.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { PivotBase } from './Pivot.base';\nimport { getStyles } from './Pivot.styles';\n/**\n * The Pivot control and related tabs pattern are used for navigating frequently accessed,\n * distinct content categories. Pivots allow for navigation between two or more content\n * views and relies on text headers to articulate the different sections of content.\n */\nexport var Pivot = styled(PivotBase, getStyles, undefined, {\n scope: 'Pivot',\n});\n//# sourceMappingURL=Pivot.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getNativeProps, divProperties, initializeComponentRef, warnDeprecations } from '@fluentui/utilities';\nvar COMPONENT_NAME = 'PivotItem';\nvar PivotItem = /** @class */ (function (_super) {\n __extends(PivotItem, _super);\n function PivotItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n linkText: 'headerText',\n });\n return _this;\n }\n PivotItem.prototype.render = function () {\n return React.createElement(\"div\", __assign({}, getNativeProps(this.props, divProperties)), this.props.children);\n };\n return PivotItem;\n}(React.Component));\nexport { PivotItem };\n//# sourceMappingURL=PivotItem.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n var async = useAsync();\n var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var _a;\n // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n if (props.style && props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = root.current.clientHeight;\n var firstChildHeight = root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n setNeedsVerticalScrollBar(needsVerticalScrollBar);\n }\n });\n return function () { return async.dispose(); };\n });\n return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== getWindow()) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n setTimeout(function () {\n var _a;\n (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n }, 0);\n }\n}\nfunction useRestoreFocus(props, root) {\n var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n var originalFocusedElement = React.useRef();\n var containsFocus = React.useRef(false);\n React.useEffect(function () {\n originalFocusedElement.current = getDocument().activeElement;\n if (doesElementContainFocus(root.current)) {\n containsFocus.current = true;\n }\n return function () {\n var _a;\n onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n originalElement: originalFocusedElement.current,\n containsFocus: containsFocus.current,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n originalFocusedElement.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []);\n useOnEvent(root, 'focus', React.useCallback(function () {\n containsFocus.current = true;\n }, []), true);\n useOnEvent(root, 'blur', React.useCallback(function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occurred and focus didn't change\n */\n if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n containsFocus.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n React.useEffect(function () {\n if (!(shouldHideSiblings && root.current)) {\n return;\n }\n var unmodalize = modalize(root.current);\n return unmodalize;\n }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n var root = React.useRef();\n var mergedRootRef = useMergedRefs(root, forwardedRef);\n useHideSiblingNodes(props, root);\n useRestoreFocus(props, root);\n var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n var needsVerticalScrollBar = useScrollbarAsync(props, root);\n var onKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n if (onDismiss) {\n onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n }, [onDismiss]);\n var win = useWindow();\n useOnEvent(win, 'keydown', onKeyDown);\n return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","/**\n * {@docCategory ResizeGroup}\n */\nexport var ResizeGroupDirection;\n(function (ResizeGroupDirection) {\n ResizeGroupDirection[ResizeGroupDirection[\"horizontal\"] = 0] = \"horizontal\";\n ResizeGroupDirection[ResizeGroupDirection[\"vertical\"] = 1] = \"vertical\";\n})(ResizeGroupDirection || (ResizeGroupDirection = {}));\n//# sourceMappingURL=ResizeGroup.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { ResizeGroupDirection } from './ResizeGroup.types';\nimport { useConst, useMergedRefs, useAsync, useOnEvent, useWarnings } from '@fluentui/react-hooks';\nimport { useWindow } from '../../WindowProvider';\nvar RESIZE_DELAY = 16;\n/**\n * Returns a simple object is able to store measurements with a given key.\n */\nexport var getMeasurementCache = function () {\n var measurementsCache = {};\n return {\n /**\n * Checks if the provided data has a cacheKey. If it has a cacheKey and there is a\n * corresponding entry in the measurementsCache, then it will return that value.\n * Returns undefined otherwise.\n */\n getCachedMeasurement: function (data) {\n if (data && data.cacheKey && measurementsCache.hasOwnProperty(data.cacheKey)) {\n return measurementsCache[data.cacheKey];\n }\n return undefined;\n },\n /**\n * Should be called whenever there is a new measurement associated with a given data object.\n * If the data has a cacheKey, store that measurement in the measurementsCache.\n */\n addMeasurementToCache: function (data, measurement) {\n if (data.cacheKey) {\n measurementsCache[data.cacheKey] = measurement;\n }\n },\n };\n};\n/**\n * Returns a function that is able to compute the next state for the ResizeGroup given the current\n * state and any measurement updates.\n */\nexport var getNextResizeGroupStateProvider = function (measurementCache) {\n if (measurementCache === void 0) { measurementCache = getMeasurementCache(); }\n var _measurementCache = measurementCache;\n var _containerDimension;\n /**\n * Gets the width/height of the data rendered in a hidden div.\n * @param measuredData - The data corresponding to the measurement we wish to take.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _getMeasuredDimension(measuredData, getElementToMeasureDimension) {\n var cachedDimension = _measurementCache.getCachedMeasurement(measuredData);\n if (cachedDimension !== undefined) {\n return cachedDimension;\n }\n var measuredDimension = getElementToMeasureDimension();\n _measurementCache.addMeasurementToCache(measuredData, measuredDimension);\n return measuredDimension;\n }\n /**\n * Will get the next IResizeGroupState based on the current data while trying to shrink contents\n * to fit in the container.\n * @param data - The initial data point to start measuring.\n * @param onReduceData - Function that transforms the data into something that should render with less width/height.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _shrinkContentsUntilTheyFit(data, onReduceData, getElementToMeasureDimension) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension > _containerDimension) {\n var nextMeasuredData = onReduceData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onReduceData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n resizeDirection: 'shrink',\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n /**\n * This function should be called when the state changes in a manner that might allow for more content to fit\n * on the screen, such as the window width/height growing.\n * @param data - The initial data point to start measuring.\n * @param onGrowData - Function that transforms the data into something that may take up more space when rendering.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _growDataUntilItDoesNotFit(data, onGrowData, getElementToMeasureDimension, onReduceData) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension < _containerDimension) {\n var nextMeasuredData = onGrowData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onGrowData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n // Once the loop is done, we should now shrink until the contents fit.\n return __assign({ resizeDirection: 'shrink' }, _shrinkContentsUntilTheyFit(dataToMeasure, onReduceData, getElementToMeasureDimension));\n }\n /**\n * Handles an update to the container width/height.\n * Should only be called when we knew the previous container width/height.\n * @param newDimension - The new width/height of the container.\n * @param fullDimensionData - The initial data passed in as a prop to resizeGroup.\n * @param renderedData - The data that was rendered prior to the container size changing.\n * @param onGrowData - Set to true if the Resize group has an onGrowData function.\n */\n function _updateContainerDimension(newDimension, fullDimensionData, renderedData, onGrowData) {\n var nextState;\n if (newDimension > _containerDimension) {\n if (onGrowData) {\n nextState = {\n resizeDirection: 'grow',\n dataToMeasure: onGrowData(renderedData),\n };\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: fullDimensionData,\n };\n }\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: renderedData,\n };\n }\n _containerDimension = newDimension;\n return __assign(__assign({}, nextState), { measureContainer: false });\n }\n function getNextState(props, currentState, getElementToMeasureDimension, newContainerDimension) {\n // If there is no new container width/height or data to measure, there is no need for a new state update\n if (newContainerDimension === undefined && currentState.dataToMeasure === undefined) {\n return undefined;\n }\n if (newContainerDimension) {\n // If we know the last container size and we rendered data at that width/height, we can do an optimized render\n if (_containerDimension && currentState.renderedData && !currentState.dataToMeasure) {\n return __assign(__assign({}, currentState), _updateContainerDimension(newContainerDimension, props.data, currentState.renderedData, props.onGrowData));\n }\n // If we are just setting the container width/height for the first time, we can't do any optimizations\n _containerDimension = newContainerDimension;\n }\n var nextState = __assign(__assign({}, currentState), { measureContainer: false });\n if (currentState.dataToMeasure) {\n if (currentState.resizeDirection === 'grow' && props.onGrowData) {\n nextState = __assign(__assign({}, nextState), _growDataUntilItDoesNotFit(currentState.dataToMeasure, props.onGrowData, getElementToMeasureDimension, props.onReduceData));\n }\n else {\n nextState = __assign(__assign({}, nextState), _shrinkContentsUntilTheyFit(currentState.dataToMeasure, props.onReduceData, getElementToMeasureDimension));\n }\n }\n return nextState;\n }\n /** Function that determines if we need to render content for measurement based on the measurement cache contents. */\n function shouldRenderDataForMeasurement(dataToMeasure) {\n if (!dataToMeasure || _measurementCache.getCachedMeasurement(dataToMeasure) !== undefined) {\n return false;\n }\n return true;\n }\n function getInitialResizeGroupState(data) {\n return {\n dataToMeasure: __assign({}, data),\n resizeDirection: 'grow',\n measureContainer: true,\n };\n }\n return {\n getNextState: getNextState,\n shouldRenderDataForMeasurement: shouldRenderDataForMeasurement,\n getInitialResizeGroupState: getInitialResizeGroupState,\n };\n};\n// Provides a context property that (if true) tells any child components that\n// they are only being used for measurement purposes and will not be visible.\nexport var MeasuredContext = React.createContext({ isMeasured: false });\n// Styles for the hidden div used for measurement\nvar hiddenDivStyles = { position: 'fixed', visibility: 'hidden' };\nvar hiddenParentStyles = { position: 'relative' };\nvar COMPONENT_NAME = 'ResizeGroup';\n/**\n * Use useReducer instead of userState because React is not batching the state updates\n * when state is set in callbacks of setTimeout or requestAnimationFrame.\n * See issue: https://github.com/facebook/react/issues/14259\n */\nfunction resizeDataReducer(state, action) {\n var _a;\n switch (action.type) {\n case 'resizeData':\n return __assign({}, action.value);\n case 'dataToMeasure':\n return __assign(__assign({}, state), { dataToMeasure: action.value, resizeDirection: 'grow', measureContainer: true });\n default:\n return __assign(__assign({}, state), (_a = {}, _a[action.type] = action.value, _a));\n }\n}\nfunction useResizeState(props, nextResizeGroupStateProvider, rootRef) {\n var initialStateData = useConst(function () { return nextResizeGroupStateProvider.getInitialResizeGroupState(props.data); });\n var _a = React.useReducer(resizeDataReducer, initialStateData), resizeData = _a[0], dispatchResizeDataAction = _a[1];\n // Reset state when new data is provided\n React.useEffect(function () {\n dispatchResizeDataAction({\n type: 'dataToMeasure',\n value: props.data,\n });\n }, [props.data]);\n // Because it's possible that we may force more than one re-render per animation frame, we\n // want to make sure that the RAF request is using the most recent data.\n var stateRef = React.useRef(initialStateData);\n stateRef.current = __assign({}, resizeData);\n var updateResizeState = React.useCallback(function (nextState) {\n if (nextState) {\n dispatchResizeDataAction({\n type: 'resizeData',\n value: nextState,\n });\n }\n }, []);\n var remeasure = React.useCallback(function () {\n if (rootRef.current) {\n dispatchResizeDataAction({\n type: 'measureContainer',\n value: true,\n });\n }\n }, [rootRef]);\n return [stateRef, updateResizeState, remeasure];\n}\nfunction useResizingBehavior(props, rootRef) {\n var nextResizeGroupStateProvider = useConst(getNextResizeGroupStateProvider);\n // A div that can be used for the initial measurement so that we can avoid mounting a second instance\n // of the component being measured for the initial render.\n var initialHiddenDiv = React.useRef(null);\n // A hidden div that is used for mounting a new instance of the component for measurement in a hidden\n // div without unmounting the currently visible content.\n var updateHiddenDiv = React.useRef(null);\n // Tracks if any content has been rendered to the user. This enables us to do some performance optimizations\n // for the initial render.\n var hasRenderedContent = React.useRef(false);\n var async = useAsync();\n var _a = useResizeState(props, nextResizeGroupStateProvider, rootRef), stateRef = _a[0], updateResizeState = _a[1], remeasure = _a[2];\n React.useEffect(function () {\n var _a;\n if (stateRef.current.renderedData) {\n hasRenderedContent.current = true;\n (_a = props.dataDidRender) === null || _a === void 0 ? void 0 : _a.call(props, stateRef.current.renderedData);\n }\n });\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var containerDimension = undefined;\n if (stateRef.current.measureContainer && rootRef.current) {\n var boundingRect = rootRef.current.getBoundingClientRect();\n containerDimension =\n props.direction === ResizeGroupDirection.vertical ? boundingRect.height : boundingRect.width;\n }\n var nextState = nextResizeGroupStateProvider.getNextState(props, stateRef.current, function () {\n var refToMeasure = !hasRenderedContent.current ? initialHiddenDiv : updateHiddenDiv;\n if (!refToMeasure.current) {\n return 0;\n }\n var measuredBoundingRect = refToMeasure.current.getBoundingClientRect();\n return props.direction === ResizeGroupDirection.vertical\n ? measuredBoundingRect.height\n : measuredBoundingRect.width;\n }, containerDimension);\n updateResizeState(nextState);\n }, rootRef.current);\n });\n var win = useWindow();\n useOnEvent(win, 'resize', async.debounce(remeasure, RESIZE_DELAY, { leading: true }));\n var dataNeedsMeasuring = nextResizeGroupStateProvider.shouldRenderDataForMeasurement(stateRef.current.dataToMeasure);\n var isInitialMeasure = !hasRenderedContent.current && dataNeedsMeasuring;\n return [\n stateRef.current.dataToMeasure,\n stateRef.current.renderedData,\n remeasure,\n initialHiddenDiv,\n updateHiddenDiv,\n dataNeedsMeasuring,\n isInitialMeasure,\n ];\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: { styles: 'className' },\n });\n }\n}\nvar measuredContextValue = { isMeasured: true };\nexport var ResizeGroupBase = React.forwardRef(function (props, forwardedRef) {\n var rootRef = React.useRef(null);\n // The root div which is the container inside of which we are trying to fit content.\n var mergedRootRef = useMergedRefs(rootRef, forwardedRef);\n var _a = useResizingBehavior(props, rootRef), dataToMeasure = _a[0], renderedData = _a[1], remeasure = _a[2], initialHiddenDiv = _a[3], updateHiddenDiv = _a[4], dataNeedsMeasuring = _a[5], isInitialMeasure = _a[6];\n React.useImperativeHandle(props.componentRef, function () { return ({ remeasure: remeasure }); }, [remeasure]);\n useDebugWarnings(props);\n var className = props.className, onRenderData = props.onRenderData;\n var divProps = getNativeProps(props, divProperties, ['data']);\n // We only ever render the final content to the user. All measurements are done in a hidden div.\n // For the initial render, we want this to be as fast as possible, so we need to make sure that we only mount one\n // version of the component for measurement and the final render. For renders that update what is on screen, we\n // want to make sure that there are no jarring effects such as the screen flashing as we apply scaling steps for\n // measurement. In the update case, we mount a second version of the component just for measurement purposes and\n // leave the rendered content untouched until we know the next state to show to the user.\n return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: mergedRootRef }),\n React.createElement(\"div\", { style: hiddenParentStyles },\n dataNeedsMeasuring && !isInitialMeasure && (React.createElement(\"div\", { style: hiddenDivStyles, ref: updateHiddenDiv },\n React.createElement(MeasuredContext.Provider, { value: measuredContextValue }, onRenderData(dataToMeasure)))),\n React.createElement(\"div\", { ref: initialHiddenDiv, style: isInitialMeasure ? hiddenDivStyles : undefined, \"data-automation-id\": \"visibleContent\" }, isInitialMeasure ? onRenderData(dataToMeasure) : renderedData && onRenderData(renderedData)))));\n});\nResizeGroupBase.displayName = 'ResizeGroupBase';\n//# sourceMappingURL=ResizeGroup.base.js.map","import { ResizeGroupBase } from './ResizeGroup.base';\nexport var ResizeGroup = ResizeGroupBase;\n//# sourceMappingURL=ResizeGroup.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-ScrollablePane',\n contentContainer: 'ms-ScrollablePane--contentContainer',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var AboveAndBelowStyles = {\n position: 'absolute',\n pointerEvents: 'none',\n };\n var positioningStyle = {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n WebkitOverflowScrolling: 'touch',\n };\n return {\n root: [classNames.root, theme.fonts.medium, positioningStyle, className],\n contentContainer: [\n classNames.contentContainer,\n {\n overflowY: props.scrollbarVisibility === 'always' ? 'scroll' : 'auto',\n },\n positioningStyle,\n ],\n stickyAbove: [\n {\n top: 0,\n zIndex: 1,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderBottom: '1px solid WindowText',\n },\n _a),\n },\n AboveAndBelowStyles,\n ],\n stickyBelow: [\n {\n bottom: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderTop: '1px solid WindowText',\n },\n _b),\n },\n AboveAndBelowStyles,\n ],\n stickyBelowItems: [\n {\n bottom: 0,\n },\n AboveAndBelowStyles,\n {\n width: '100%',\n },\n ],\n };\n};\n//# sourceMappingURL=ScrollablePane.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, classNamesFunction, divProperties, getNativeProps, getRTL, initializeComponentRef, } from '../../Utilities';\nimport { ScrollablePaneContext } from './ScrollablePane.types';\nvar getClassNames = classNamesFunction();\nvar ScrollablePaneBase = /** @class */ (function (_super) {\n __extends(ScrollablePaneBase, _super);\n function ScrollablePaneBase(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._stickyAboveRef = React.createRef();\n _this._stickyBelowRef = React.createRef();\n _this._contentContainer = React.createRef();\n _this.subscribe = function (handler) {\n _this._subscribers.add(handler);\n };\n _this.unsubscribe = function (handler) {\n _this._subscribers.delete(handler);\n };\n _this.addSticky = function (sticky) {\n _this._stickies.add(sticky);\n // If ScrollablePane is mounted, then sort sticky in correct place\n if (_this.contentContainer) {\n sticky.setDistanceFromTop(_this.contentContainer);\n _this.sortSticky(sticky);\n }\n };\n _this.removeSticky = function (sticky) {\n _this._stickies.delete(sticky);\n _this._removeStickyFromContainers(sticky);\n _this.notifySubscribers();\n };\n _this.sortSticky = function (sticky, sortAgain) {\n if (_this.stickyAbove && _this.stickyBelow) {\n if (sortAgain) {\n _this._removeStickyFromContainers(sticky);\n }\n if (sticky.canStickyTop && sticky.stickyContentTop) {\n _this._addToStickyContainer(sticky, _this.stickyAbove, sticky.stickyContentTop);\n }\n if (sticky.canStickyBottom && sticky.stickyContentBottom) {\n _this._addToStickyContainer(sticky, _this.stickyBelow, sticky.stickyContentBottom);\n }\n }\n };\n _this.updateStickyRefHeights = function () {\n var stickyItems = _this._stickies;\n var stickyTopHeight = 0;\n var stickyBottomHeight = 0;\n stickyItems.forEach(function (sticky) {\n var _a = sticky.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n if (sticky.nonStickyContent) {\n if (isStickyTop) {\n stickyTopHeight += sticky.nonStickyContent.offsetHeight;\n }\n if (isStickyBottom) {\n stickyBottomHeight += sticky.nonStickyContent.offsetHeight;\n }\n _this._checkStickyStatus(sticky);\n }\n });\n _this.setState({\n stickyTopHeight: stickyTopHeight,\n stickyBottomHeight: stickyBottomHeight,\n });\n };\n _this.notifySubscribers = function () {\n if (_this.contentContainer) {\n _this._subscribers.forEach(function (handle) {\n // this.stickyBelow is passed in for calculating distance to determine Sticky status\n handle(_this.contentContainer, _this.stickyBelow);\n });\n }\n };\n _this.getScrollPosition = function () {\n if (_this.contentContainer) {\n return _this.contentContainer.scrollTop;\n }\n return 0;\n };\n _this.syncScrollSticky = function (sticky) {\n if (sticky && _this.contentContainer) {\n sticky.syncScroll(_this.contentContainer);\n }\n };\n _this._getScrollablePaneContext = function () {\n return {\n scrollablePane: {\n subscribe: _this.subscribe,\n unsubscribe: _this.unsubscribe,\n addSticky: _this.addSticky,\n removeSticky: _this.removeSticky,\n updateStickyRefHeights: _this.updateStickyRefHeights,\n sortSticky: _this.sortSticky,\n notifySubscribers: _this.notifySubscribers,\n syncScrollSticky: _this.syncScrollSticky,\n },\n };\n };\n _this._addToStickyContainer = function (sticky, stickyContainer, stickyContentToAdd) {\n // If there's no children, append child to list, otherwise, sort though array and append at correct position\n if (!stickyContainer.children.length) {\n stickyContainer.appendChild(stickyContentToAdd);\n }\n else {\n // If stickyContentToAdd isn't a child element of target container, then append\n if (!stickyContainer.contains(stickyContentToAdd)) {\n var stickyChildrenElements_1 = [].slice.call(stickyContainer.children);\n var stickyList_1 = [];\n // Get stickies. Filter by canStickyTop/Bottom, then sort by distance from top, and then\n // filter by elements that are in the stickyContainer already.\n _this._stickies.forEach(function (stickyItem) {\n if (stickyContainer === _this.stickyAbove && sticky.canStickyTop) {\n stickyList_1.push(stickyItem);\n }\n else if (sticky.canStickyBottom) {\n stickyList_1.push(stickyItem);\n }\n });\n var stickyListSorted = stickyList_1\n .sort(function (a, b) {\n return (a.state.distanceFromTop || 0) - (b.state.distanceFromTop || 0);\n })\n .filter(function (item) {\n var stickyContent = stickyContainer === _this.stickyAbove ? item.stickyContentTop : item.stickyContentBottom;\n if (stickyContent) {\n return stickyChildrenElements_1.indexOf(stickyContent) > -1;\n }\n return false;\n });\n // Get first element that has a distance from top that is further than our sticky that is being added\n var targetStickyToAppendBefore = undefined;\n for (var _i = 0, stickyListSorted_1 = stickyListSorted; _i < stickyListSorted_1.length; _i++) {\n var stickyListItem = stickyListSorted_1[_i];\n if ((stickyListItem.state.distanceFromTop || 0) >= (sticky.state.distanceFromTop || 0)) {\n targetStickyToAppendBefore = stickyListItem;\n break;\n }\n }\n // If target element to append before is known, grab respective stickyContentTop/Bottom element\n // and insert before\n var targetContainer = null;\n if (targetStickyToAppendBefore) {\n targetContainer =\n stickyContainer === _this.stickyAbove\n ? targetStickyToAppendBefore.stickyContentTop\n : targetStickyToAppendBefore.stickyContentBottom;\n }\n stickyContainer.insertBefore(stickyContentToAdd, targetContainer);\n }\n }\n };\n _this._removeStickyFromContainers = function (sticky) {\n if (_this.stickyAbove && sticky.stickyContentTop && _this.stickyAbove.contains(sticky.stickyContentTop)) {\n _this.stickyAbove.removeChild(sticky.stickyContentTop);\n }\n if (_this.stickyBelow && sticky.stickyContentBottom && _this.stickyBelow.contains(sticky.stickyContentBottom)) {\n _this.stickyBelow.removeChild(sticky.stickyContentBottom);\n }\n };\n _this._onWindowResize = function () {\n var scrollbarWidth = _this._getScrollbarWidth();\n var scrollbarHeight = _this._getScrollbarHeight();\n _this.setState({\n scrollbarWidth: scrollbarWidth,\n scrollbarHeight: scrollbarHeight,\n });\n _this.notifySubscribers();\n };\n _this._getStickyContainerStyle = function (height, isTop) {\n return __assign(__assign({ height: height }, (getRTL(_this.props.theme)\n ? {\n right: '0',\n left: \"\".concat(_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0, \"px\"),\n }\n : {\n left: '0',\n right: \"\".concat(_this.state.scrollbarWidth || _this._getScrollbarWidth() || 0, \"px\"),\n })), (isTop\n ? {\n top: '0',\n }\n : {\n bottom: \"\".concat(_this.state.scrollbarHeight || _this._getScrollbarHeight() || 0, \"px\"),\n }));\n };\n _this._onScroll = function () {\n var contentContainer = _this.contentContainer;\n if (contentContainer) {\n _this._stickies.forEach(function (sticky) {\n sticky.syncScroll(contentContainer);\n });\n }\n _this._notifyThrottled();\n };\n _this._subscribers = new Set();\n _this._stickies = new Set();\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this.state = {\n stickyTopHeight: 0,\n stickyBottomHeight: 0,\n scrollbarWidth: 0,\n scrollbarHeight: 0,\n };\n _this._notifyThrottled = _this._async.throttle(_this.notifySubscribers, 50);\n return _this;\n }\n Object.defineProperty(ScrollablePaneBase.prototype, \"root\", {\n get: function () {\n return this._root.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"stickyAbove\", {\n get: function () {\n return this._stickyAboveRef.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"stickyBelow\", {\n get: function () {\n return this._stickyBelowRef.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ScrollablePaneBase.prototype, \"contentContainer\", {\n get: function () {\n return this._contentContainer.current;\n },\n enumerable: false,\n configurable: true\n });\n ScrollablePaneBase.prototype.componentDidMount = function () {\n var _this = this;\n var initialScrollPosition = this.props.initialScrollPosition;\n this._events.on(this.contentContainer, 'scroll', this._onScroll);\n this._events.on(window, 'resize', this._onWindowResize);\n if (this.contentContainer && initialScrollPosition) {\n this.contentContainer.scrollTop = initialScrollPosition;\n }\n // Set sticky distances from top property, then sort in correct order and notify subscribers\n this.setStickiesDistanceFromTop();\n this._stickies.forEach(function (sticky) {\n _this.sortSticky(sticky);\n });\n this.notifySubscribers();\n if ('MutationObserver' in window) {\n this._mutationObserver = new MutationObserver(function (mutation) {\n // Function to check if mutation is occuring in stickyAbove or stickyBelow\n function checkIfMutationIsSticky(mutationRecord) {\n if (this.stickyAbove !== null && this.stickyBelow !== null) {\n return this.stickyAbove.contains(mutationRecord.target) || this.stickyBelow.contains(mutationRecord.target);\n }\n return false;\n }\n // Compute the scrollbar height, which might have changed if the content's width changed and caused overflow\n var scrollbarHeight = _this._getScrollbarHeight();\n // If the scrollbar height changed, update state so it's postioned correctly below sticky footer\n if (scrollbarHeight !== _this.state.scrollbarHeight) {\n _this.setState({\n scrollbarHeight: scrollbarHeight,\n });\n }\n // Notify subscribers again to re-check whether Sticky should be Sticky'd or not\n _this.notifySubscribers();\n // If mutation occurs in sticky header or footer, then update sticky top/bottom heights\n if (mutation.some(checkIfMutationIsSticky.bind(_this))) {\n _this.updateStickyRefHeights();\n }\n else {\n // If mutation occurs in scrollable region, then find Sticky it belongs to and force update\n var stickyList_2 = [];\n _this._stickies.forEach(function (sticky) {\n if (sticky.root && sticky.root.contains(mutation[0].target)) {\n stickyList_2.push(sticky);\n }\n });\n if (stickyList_2.length) {\n stickyList_2.forEach(function (sticky) {\n sticky.forceUpdate();\n });\n }\n }\n });\n if (this.root) {\n this._mutationObserver.observe(this.root, {\n childList: true,\n attributes: true,\n subtree: true,\n characterData: true,\n });\n }\n }\n };\n ScrollablePaneBase.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n }\n };\n // Only updates if props/state change, just to prevent excessive setState with updateStickyRefHeights\n ScrollablePaneBase.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (this.props.children !== nextProps.children ||\n this.props.initialScrollPosition !== nextProps.initialScrollPosition ||\n this.props.className !== nextProps.className ||\n this.state.stickyTopHeight !== nextState.stickyTopHeight ||\n this.state.stickyBottomHeight !== nextState.stickyBottomHeight ||\n this.state.scrollbarWidth !== nextState.scrollbarWidth ||\n this.state.scrollbarHeight !== nextState.scrollbarHeight);\n };\n ScrollablePaneBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n var initialScrollPosition = this.props.initialScrollPosition;\n if (this.contentContainer &&\n typeof initialScrollPosition === 'number' &&\n prevProps.initialScrollPosition !== initialScrollPosition) {\n this.contentContainer.scrollTop = initialScrollPosition;\n }\n // Update subscribers when stickyTopHeight/stickyBottomHeight changes\n if (prevState.stickyTopHeight !== this.state.stickyTopHeight ||\n prevState.stickyBottomHeight !== this.state.stickyBottomHeight) {\n this.notifySubscribers();\n }\n this._async.setTimeout(this._onWindowResize, 0);\n };\n ScrollablePaneBase.prototype.render = function () {\n var _a = this.props, className = _a.className, scrollContainerFocus = _a.scrollContainerFocus, scrollContainerAriaLabel = _a.scrollContainerAriaLabel, theme = _a.theme, styles = _a.styles, onScroll = _a.onScroll;\n var _b = this.state, stickyTopHeight = _b.stickyTopHeight, stickyBottomHeight = _b.stickyBottomHeight;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n scrollbarVisibility: this.props.scrollbarVisibility,\n });\n var scrollContainerProps = scrollContainerFocus\n ? {\n role: 'group',\n tabIndex: 0,\n 'aria-label': scrollContainerAriaLabel,\n onScroll: onScroll,\n }\n : {\n onScroll: onScroll,\n };\n return (React.createElement(\"div\", __assign({}, getNativeProps(__assign({}, this.props), divProperties, \n // on React 17 onScroll is not being invoked on root element,\n // as a fix this method will be provided to the container element\n ['onScroll']), { ref: this._root, className: classNames.root }),\n React.createElement(\"div\", { ref: this._stickyAboveRef, className: classNames.stickyAbove, style: this._getStickyContainerStyle(stickyTopHeight, true) }),\n React.createElement(\"div\", __assign({ ref: this._contentContainer }, scrollContainerProps, { className: classNames.contentContainer, \"data-is-scrollable\": true }),\n React.createElement(ScrollablePaneContext.Provider, { value: this._getScrollablePaneContext() }, this.props.children)),\n React.createElement(\"div\", { className: classNames.stickyBelow, style: this._getStickyContainerStyle(stickyBottomHeight, false) },\n React.createElement(\"div\", { ref: this._stickyBelowRef, className: classNames.stickyBelowItems }))));\n };\n ScrollablePaneBase.prototype.setStickiesDistanceFromTop = function () {\n var _this = this;\n if (this.contentContainer) {\n this._stickies.forEach(function (sticky) {\n sticky.setDistanceFromTop(_this.contentContainer);\n });\n }\n };\n ScrollablePaneBase.prototype.forceLayoutUpdate = function () {\n this._onWindowResize();\n };\n ScrollablePaneBase.prototype._checkStickyStatus = function (sticky) {\n if (this.stickyAbove && this.stickyBelow && this.contentContainer && sticky.nonStickyContent) {\n // If sticky is sticky, then append content to appropriate container\n if (sticky.state.isStickyTop || sticky.state.isStickyBottom) {\n if (sticky.state.isStickyTop &&\n !this.stickyAbove.contains(sticky.nonStickyContent) &&\n sticky.stickyContentTop) {\n sticky.addSticky(sticky.stickyContentTop);\n }\n if (sticky.state.isStickyBottom &&\n !this.stickyBelow.contains(sticky.nonStickyContent) &&\n sticky.stickyContentBottom) {\n sticky.addSticky(sticky.stickyContentBottom);\n }\n }\n else if (!this.contentContainer.contains(sticky.nonStickyContent)) {\n // Reset sticky if it's not sticky and not in the contentContainer element\n sticky.resetSticky();\n }\n }\n };\n ScrollablePaneBase.prototype._getScrollbarWidth = function () {\n var contentContainer = this.contentContainer;\n return contentContainer ? contentContainer.offsetWidth - contentContainer.clientWidth : 0;\n };\n ScrollablePaneBase.prototype._getScrollbarHeight = function () {\n var contentContainer = this.contentContainer;\n return contentContainer ? contentContainer.offsetHeight - contentContainer.clientHeight : 0;\n };\n return ScrollablePaneBase;\n}(React.Component));\nexport { ScrollablePaneBase };\n//# sourceMappingURL=ScrollablePane.base.js.map","import { getStyles } from './ScrollablePane.styles';\nimport { ScrollablePaneBase } from './ScrollablePane.base';\nimport { styled } from '../../Utilities';\nexport var ScrollablePane = styled(ScrollablePaneBase, getStyles, undefined, { scope: 'ScrollablePane' });\n//# sourceMappingURL=ScrollablePane.js.map","import * as React from 'react';\n/**\n * {@docCategory ScrollablePane}\n */\nexport var ScrollbarVisibility = {\n auto: 'auto',\n always: 'always',\n};\nexport var ScrollablePaneContext = React.createContext({ scrollablePane: undefined });\n//# sourceMappingURL=ScrollablePane.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, classNamesFunction, getNativeProps, inputProperties } from '../../Utilities';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nvar COMPONENT_NAME = 'SearchBox';\nvar iconButtonStyles = { root: { height: 'auto' }, icon: { fontSize: '12px' } };\nvar iconButtonProps = { iconName: 'Clear' };\nvar defaultClearButtonProps = { ariaLabel: 'Clear text' };\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, inputElementRef, hasFocus) {\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () { var _a; return (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n blur: function () { var _a; return (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.blur(); },\n hasFocus: function () { return hasFocus; },\n }); }, [inputElementRef, hasFocus]);\n};\nexport var SearchBoxBase = React.forwardRef(function (props, forwardedRef) {\n var ariaLabel = props.ariaLabel, className = props.className, _a = props.defaultValue, defaultValue = _a === void 0 ? '' : _a, disabled = props.disabled, underlined = props.underlined, styles = props.styles, \n // eslint-disable-next-line deprecation/deprecation\n labelText = props.labelText, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.placeholder, \n // eslint-disable-next-line deprecation/deprecation\n placeholder = _b === void 0 ? labelText : _b, theme = props.theme, _c = props.clearButtonProps, clearButtonProps = _c === void 0 ? defaultClearButtonProps : _c, _d = props.disableAnimation, disableAnimation = _d === void 0 ? false : _d, _e = props.showIcon, showIcon = _e === void 0 ? false : _e, customOnClear = props.onClear, customOnBlur = props.onBlur, customOnEscape = props.onEscape, customOnSearch = props.onSearch, customOnKeyDown = props.onKeyDown, iconProps = props.iconProps, role = props.role, onChange = props.onChange, \n // eslint-disable-next-line deprecation/deprecation\n onChanged = props.onChanged;\n var _f = React.useState(false), hasFocus = _f[0], setHasFocus = _f[1];\n var prevChangeTimestamp = React.useRef();\n var _g = useControllableValue(props.value, defaultValue, function (ev, newValue) {\n if (ev && ev.timeStamp === prevChangeTimestamp.current) {\n // For historical reasons, SearchBox handles both onInput and onChange (we can't modify this\n // outside a major version due to potential to break partners' tests and possibly apps).\n // Only call props.onChange for one of the events.\n return;\n }\n prevChangeTimestamp.current = ev === null || ev === void 0 ? void 0 : ev.timeStamp;\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, newValue);\n onChanged === null || onChanged === void 0 ? void 0 : onChanged(newValue);\n }), uncastValue = _g[0], setValue = _g[1];\n var value = String(uncastValue);\n var rootElementRef = React.useRef(null);\n var inputElementRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n var id = useId(COMPONENT_NAME, props.id);\n var customOnClearClick = clearButtonProps.onClick;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n underlined: underlined,\n hasFocus: hasFocus,\n disabled: disabled,\n hasInput: value.length > 0,\n disableAnimation: disableAnimation,\n showIcon: showIcon,\n });\n var nativeProps = getNativeProps(props, inputProperties, [\n 'className',\n 'placeholder',\n 'onFocus',\n 'onBlur',\n 'value',\n 'role',\n ]);\n var onClear = React.useCallback(function (ev) {\n var _a;\n customOnClear === null || customOnClear === void 0 ? void 0 : customOnClear(ev);\n if (!ev.defaultPrevented) {\n setValue('');\n (_a = inputElementRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n ev.stopPropagation();\n ev.preventDefault();\n }\n }, [customOnClear, setValue]);\n var onClearClick = React.useCallback(function (ev) {\n customOnClearClick === null || customOnClearClick === void 0 ? void 0 : customOnClearClick(ev);\n if (!ev.defaultPrevented) {\n onClear(ev);\n }\n }, [customOnClearClick, onClear]);\n var onFocusCapture = function (ev) {\n var _a;\n setHasFocus(true);\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n };\n var onClickFocus = function () {\n if (inputElementRef.current) {\n inputElementRef.current.focus();\n inputElementRef.current.selectionStart = inputElementRef.current.selectionEnd = 0;\n }\n };\n var onBlur = React.useCallback(function (ev) {\n setHasFocus(false);\n customOnBlur === null || customOnBlur === void 0 ? void 0 : customOnBlur(ev);\n }, [customOnBlur]);\n var onInputChange = function (ev) {\n setValue(ev.target.value, ev);\n };\n var onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n customOnEscape === null || customOnEscape === void 0 ? void 0 : customOnEscape(ev);\n // Only call onClear if the search box has a value to clear. Otherwise, allow the Esc key\n // to propagate from the empty search box to a parent element such as a dialog, etc.\n if (value && !ev.defaultPrevented) {\n onClear(ev);\n }\n break;\n case KeyCodes.enter:\n if (customOnSearch) {\n customOnSearch(value);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n default:\n // REVIEW: Why aren't we calling customOnKeyDown for Escape or Enter?\n customOnKeyDown === null || customOnKeyDown === void 0 ? void 0 : customOnKeyDown(ev);\n // REVIEW: Why are we calling stopPropagation if customOnKeyDown called preventDefault?\n // customOnKeyDown should call stopPropagation if it needs it.\n if (ev.defaultPrevented) {\n ev.stopPropagation();\n }\n break;\n }\n };\n useDebugWarning(props);\n useComponentRef(props.componentRef, inputElementRef, hasFocus);\n return (React.createElement(\"div\", { role: role, ref: mergedRootRef, className: classNames.root, onFocusCapture: onFocusCapture },\n React.createElement(\"div\", { className: classNames.iconContainer, onClick: onClickFocus, \"aria-hidden\": true },\n React.createElement(Icon, __assign({ iconName: \"Search\" }, iconProps, { className: classNames.icon }))),\n React.createElement(\"input\", __assign({}, nativeProps, { id: id, className: classNames.field, placeholder: placeholder, onChange: onInputChange, onInput: onInputChange, onBlur: onBlur, onKeyDown: onKeyDown, value: value, disabled: disabled, role: \"searchbox\", \"aria-label\": ariaLabel, ref: inputElementRef })),\n value.length > 0 && (React.createElement(\"div\", { className: classNames.clearButton },\n React.createElement(IconButton, __assign({ onBlur: onBlur, styles: iconButtonStyles, iconProps: iconButtonProps }, clearButtonProps, { onClick: onClearClick }))))));\n});\nSearchBoxBase.displayName = COMPONENT_NAME;\nfunction useDebugWarning(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: { labelText: 'placeholder' },\n });\n }\n}\n//# sourceMappingURL=SearchBox.base.js.map","import { HighContrastSelector, AnimationVariables, normalize, getPlaceholderStyles, getGlobalClassNames, getInputFocusStyle, } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-SearchBox',\n iconContainer: 'ms-SearchBox-iconContainer',\n icon: 'ms-SearchBox-icon',\n clearButton: 'ms-SearchBox-clearButton',\n field: 'ms-SearchBox-field',\n};\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, underlined = props.underlined, disabled = props.disabled, hasFocus = props.hasFocus, className = props.className, hasInput = props.hasInput, disableAnimation = props.disableAnimation, showIcon = props.showIcon;\n var palette = theme.palette, fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // placeholder style constants\n var placeholderStyles = {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n };\n var inputIconAlt = palette.neutralSecondary;\n var inputIconAltHovered = palette.neutralPrimary;\n var inputBorderDisabled = palette.neutralLighter;\n var inputBackgroundHovered = palette.neutralLighter;\n var inputBackgroundDisabled = palette.neutralLighter;\n return {\n root: [\n classNames.root,\n fonts.medium,\n normalize,\n {\n color: semanticColors.inputText,\n backgroundColor: semanticColors.inputBackground,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'stretch',\n // The 1px top and bottom padding ensure the input field does not overlap the border\n padding: '1px 0 1px 4px',\n borderRadius: effects.roundedCorner2,\n border: \"1px solid \".concat(semanticColors.inputBorder),\n height: 32,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _a[':hover'] = {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n _a[\":hover .\".concat(classNames.iconContainer)] = {\n color: semanticColors.inputIconHovered,\n },\n _a),\n },\n !hasFocus &&\n hasInput && {\n selectors: (_c = {},\n _c[\":hover .\".concat(classNames.iconContainer)] = {\n width: 4,\n },\n _c[\":hover .\".concat(classNames.icon)] = {\n opacity: 0,\n pointerEvents: 'none',\n },\n _c),\n },\n hasFocus && [\n 'is-active',\n {\n position: 'relative',\n },\n getInputFocusStyle(semanticColors.inputFocusBorderAlt, underlined ? 0 : effects.roundedCorner2, underlined ? 'borderBottom' : 'border'),\n ],\n showIcon && [\n {\n selectors: (_d = {},\n _d[\":hover .\".concat(classNames.iconContainer)] = {\n width: 32,\n },\n _d[\":hover .\".concat(classNames.icon)] = {\n opacity: 1,\n },\n _d),\n },\n ],\n disabled && [\n 'is-disabled',\n {\n borderColor: inputBorderDisabled,\n backgroundColor: inputBackgroundDisabled,\n pointerEvents: 'none',\n cursor: 'default',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _e),\n },\n ],\n underlined && [\n 'is-underlined',\n {\n borderWidth: '0 0 1px 0',\n borderRadius: 0,\n // Underlined SearchBox has a larger padding left to vertically align with the waffle in product\n padding: '1px 0 1px 8px',\n },\n ],\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasInput && 'can-clear',\n className,\n ],\n iconContainer: [\n classNames.iconContainer,\n {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n flexShrink: 0,\n fontSize: 16,\n width: 32,\n textAlign: 'center',\n color: semanticColors.inputIcon,\n cursor: 'text',\n },\n hasFocus && {\n width: 4,\n },\n disabled && {\n color: semanticColors.inputIconDisabled,\n },\n !disableAnimation && {\n transition: \"width \".concat(AnimationVariables.durationValue1),\n },\n showIcon &&\n hasFocus && {\n width: 32,\n },\n ],\n icon: [\n classNames.icon,\n {\n opacity: 1,\n },\n hasFocus && {\n opacity: 0,\n pointerEvents: 'none',\n },\n !disableAnimation && {\n transition: \"opacity \".concat(AnimationVariables.durationValue1, \" 0s\"),\n },\n showIcon &&\n hasFocus && {\n opacity: 1,\n },\n ],\n clearButton: [\n classNames.clearButton,\n {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n cursor: 'pointer',\n flexBasis: '32px',\n flexShrink: 0,\n padding: 0,\n margin: '-1px 0px',\n selectors: {\n '&:hover .ms-Button': {\n backgroundColor: inputBackgroundHovered,\n },\n '&:hover .ms-Button-icon': {\n color: inputIconAltHovered,\n },\n '.ms-Button': {\n borderRadius: getRTL(theme) ? '1px 0 0 1px' : '0 1px 1px 0',\n },\n '.ms-Button-icon': {\n color: inputIconAlt,\n },\n },\n },\n ],\n field: [\n classNames.field,\n normalize,\n getPlaceholderStyles(placeholderStyles),\n {\n backgroundColor: 'transparent',\n border: 'none',\n outline: 'none',\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n color: semanticColors.inputText,\n flex: '1 1 0px',\n // The default implicit value of 'auto' prevents the input from shrinking. Setting min-width to\n // 0px allows the input element to shrink to fit the container.\n minWidth: '0px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // This padding forces the text placement to round up.\n paddingBottom: 0.5,\n // This removes the IE specific clear button in the input since we implemented our own\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n },\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n };\n}\n//# sourceMappingURL=SearchBox.styles.js.map","import { styled } from '../../Utilities';\nimport { SearchBoxBase } from './SearchBox.base';\nimport { getStyles } from './SearchBox.styles';\nexport var SearchBox = styled(SearchBoxBase, getStyles, undefined, { scope: 'SearchBox' });\n//# sourceMappingURL=SearchBox.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var SeparatorBase = React.forwardRef(function (props, ref) {\n var styles = props.styles, theme = props.theme, className = props.className, vertical = props.vertical, alignContent = props.alignContent, children = props.children;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n alignContent: alignContent,\n vertical: vertical,\n });\n return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n React.createElement(\"div\", { className: classNames.content, role: \"separator\", \"aria-orientation\": vertical ? 'vertical' : 'horizontal' }, children)));\n});\n//# sourceMappingURL=Separator.base.js.map","import { styled } from '../../Utilities';\nimport { getStyles } from './Separator.styles';\nimport { SeparatorBase } from './Separator.base';\nexport var Separator = styled(SeparatorBase, getStyles, undefined, {\n scope: 'Separator',\n});\nSeparator.displayName = 'Separator';\n//# sourceMappingURL=Separator.js.map","import { HighContrastSelector } from '../../Styling';\nexport var getStyles = function (props) {\n var _a, _b;\n var theme = props.theme, alignContent = props.alignContent, vertical = props.vertical, className = props.className;\n var alignStart = alignContent === 'start';\n var alignCenter = alignContent === 'center';\n var alignEnd = alignContent === 'end';\n return {\n root: [\n theme.fonts.medium,\n {\n position: 'relative',\n },\n alignContent && {\n textAlign: alignContent,\n },\n !alignContent && {\n textAlign: 'center',\n },\n vertical &&\n (alignCenter || !alignContent) && {\n verticalAlign: 'middle',\n },\n vertical &&\n alignStart && {\n verticalAlign: 'top',\n },\n vertical &&\n alignEnd && {\n verticalAlign: 'bottom',\n },\n vertical && {\n padding: '0 4px',\n height: 'inherit',\n display: 'table-cell',\n zIndex: 1,\n selectors: {\n ':after': (_a = {\n backgroundColor: theme.palette.neutralLighter,\n width: '1px',\n content: '\"\"',\n position: 'absolute',\n top: '0',\n bottom: '0',\n left: '50%',\n right: '0',\n zIndex: -1\n },\n _a[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _a),\n },\n },\n !vertical && {\n padding: '4px 0',\n selectors: {\n ':before': (_b = {\n backgroundColor: theme.palette.neutralLighter,\n height: '1px',\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n top: '50%',\n bottom: '0',\n left: '0',\n right: '0'\n },\n _b[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _b),\n },\n },\n className,\n ],\n content: [\n {\n position: 'relative',\n display: 'inline-block',\n padding: '0 12px',\n color: theme.semanticColors.bodyText,\n background: theme.semanticColors.bodyBackground,\n },\n vertical && {\n padding: '12px 0',\n },\n ],\n };\n};\n//# sourceMappingURL=Separator.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useId, useControllableValue, useConst, useSetTimeout } from '@fluentui/react-hooks';\nimport { KeyCodes, css, getRTL, getRTLSafeKeyCode, on, classNamesFunction, getNativeProps, divProperties, } from '@fluentui/utilities';\nexport var ONKEYDOWN_TIMEOUT_DURATION = 1000;\nvar getClassNames = classNamesFunction();\nvar getSlotStyleFn = function (sty) {\n return function (value) {\n var _a;\n return _a = {},\n _a[sty] = \"\".concat(value, \"%\"),\n _a;\n };\n};\nvar getPercent = function (value, sliderMin, sliderMax) {\n return sliderMax === sliderMin ? 0 : ((value - sliderMin) / (sliderMax - sliderMin)) * 100;\n};\nvar useComponentRef = function (props, sliderBoxRef, value, range) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n get value() {\n return value;\n },\n get range() {\n return range;\n },\n focus: function () {\n var _a;\n (_a = sliderBoxRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n }); }, [range, sliderBoxRef, value]);\n};\nexport var useSlider = function (props, ref) {\n var _a = props.step, step = _a === void 0 ? 1 : _a, className = props.className, _b = props.disabled, disabled = _b === void 0 ? false : _b, label = props.label, _c = props.max, max = _c === void 0 ? 10 : _c, _d = props.min, min = _d === void 0 ? 0 : _d, _e = props.showValue, showValue = _e === void 0 ? true : _e, _f = props.buttonProps, buttonProps = _f === void 0 ? {} : _f, _g = props.vertical, vertical = _g === void 0 ? false : _g, snapToStep = props.snapToStep, valueFormat = props.valueFormat, styles = props.styles, theme = props.theme, originFromZero = props.originFromZero, ariaLabelledBy = props[\"aria-labelledby\"], _h = props.ariaLabel, ariaLabel = _h === void 0 ? props['aria-label'] : _h, ranged = props.ranged, onChange = props.onChange, onChanged = props.onChanged;\n var disposables = React.useRef([]);\n var _j = useSetTimeout(), setTimeout = _j.setTimeout, clearTimeout = _j.clearTimeout;\n var sliderLine = React.useRef(null);\n // Casting here is necessary because useControllableValue expects the event for the change callback\n // to extend React.SyntheticEvent, when in fact for Slider, the event could be either a React event\n // or a native browser event depending on the context.\n var _k = useControllableValue(props.value, props.defaultValue, function (ev, v) {\n return onChange === null || onChange === void 0 ? void 0 : onChange(v, ranged ? [internalState.latestLowerValue, v] : undefined, ev);\n }), unclampedValue = _k[0], setValue = _k[1];\n var _l = useControllableValue(props.lowerValue, props.defaultLowerValue, function (ev, lv) { return onChange === null || onChange === void 0 ? void 0 : onChange(internalState.latestValue, [lv, internalState.latestValue], ev); }), unclampedLowerValue = _l[0], setLowerValue = _l[1];\n // Ensure that value is always a number and is clamped by min/max.\n var value = Math.max(min, Math.min(max, unclampedValue || 0));\n var lowerValue = Math.max(min, Math.min(value, unclampedLowerValue || 0));\n var internalState = useConst({\n onKeyDownTimer: -1,\n isAdjustingLowerValue: false,\n latestValue: value,\n latestLowerValue: lowerValue,\n });\n // On each render, update this saved value used by callbacks. (This should be safe even if render\n // is called multiple times, because an event handler or timeout callback will only run once.)\n internalState.latestValue = value;\n internalState.latestLowerValue = lowerValue;\n var id = useId('Slider', props.id || (buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.id));\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n vertical: vertical,\n showTransitions: !snapToStep && !internalState.isBetweenSteps,\n showValue: showValue,\n ranged: ranged,\n theme: theme,\n });\n var steps = (max - min) / step;\n var clearOnKeyDownTimer = function () {\n clearTimeout(internalState.onKeyDownTimer);\n internalState.onKeyDownTimer = -1;\n };\n var setOnKeyDownTimer = function (event) {\n clearOnKeyDownTimer();\n if (onChanged) {\n internalState.onKeyDownTimer = setTimeout(function () {\n onChanged(event, internalState.latestValue, ranged ? [internalState.latestLowerValue, internalState.latestValue] : undefined);\n }, ONKEYDOWN_TIMEOUT_DURATION);\n }\n };\n var getAriaValueText = function (valueProps) {\n var ariaValueText = props.ariaValueText;\n if (valueProps !== undefined) {\n return ariaValueText ? ariaValueText(valueProps) : valueProps.toString();\n }\n return undefined;\n };\n /**\n * Update `value` or `lowerValue`, including clamping between min/max and rounding to\n * appropriate precision.\n * @param newValue - New current value of the slider, possibly rounded to a whole step.\n * @param newUnroundedValue - Like `newValue` but without the rounding to a step. If this is\n * provided and not equal to `newValue`, `internalState.isBetweenSteps` will be set, which\n * may cause thumb movement animations to be disabled.\n */\n var updateValue = function (ev, newValue, newUnroundedValue) {\n newValue = Math.min(max, Math.max(min, newValue));\n newUnroundedValue = newUnroundedValue !== undefined ? Math.min(max, Math.max(min, newUnroundedValue)) : undefined;\n var numDec = 0;\n if (isFinite(step)) {\n while (Math.round(step * Math.pow(10, numDec)) / Math.pow(10, numDec) !== step) {\n numDec++;\n }\n }\n // Make sure value has correct number of decimal places based on number of decimals in step\n var roundedValue = parseFloat(newValue.toFixed(numDec));\n internalState.isBetweenSteps = newUnroundedValue !== undefined && newUnroundedValue !== roundedValue;\n if (ranged) {\n // decided which thumb value to change\n if (internalState.isAdjustingLowerValue &&\n (originFromZero ? roundedValue <= 0 : roundedValue <= internalState.latestValue)) {\n setLowerValue(roundedValue, ev);\n }\n else if (!internalState.isAdjustingLowerValue &&\n (originFromZero ? roundedValue >= 0 : roundedValue >= internalState.latestLowerValue)) {\n setValue(roundedValue, ev);\n }\n }\n else {\n setValue(roundedValue, ev);\n }\n };\n var onKeyDown = function (event) {\n var newCurrentValue = internalState.isAdjustingLowerValue\n ? internalState.latestLowerValue\n : internalState.latestValue;\n var diff = 0;\n // eslint-disable-next-line deprecation/deprecation\n switch (event.which) {\n case getRTLSafeKeyCode(KeyCodes.left, props.theme):\n case KeyCodes.down:\n diff = -step;\n clearOnKeyDownTimer();\n setOnKeyDownTimer(event);\n break;\n case getRTLSafeKeyCode(KeyCodes.right, props.theme):\n case KeyCodes.up:\n diff = step;\n clearOnKeyDownTimer();\n setOnKeyDownTimer(event);\n break;\n case KeyCodes.home:\n newCurrentValue = min;\n clearOnKeyDownTimer();\n setOnKeyDownTimer(event);\n break;\n case KeyCodes.end:\n newCurrentValue = max;\n clearOnKeyDownTimer();\n setOnKeyDownTimer(event);\n break;\n default:\n return;\n }\n updateValue(event, newCurrentValue + diff);\n event.preventDefault();\n event.stopPropagation();\n };\n var getPosition = function (event, verticalProp) {\n var currentPosition = 0;\n switch (event.type) {\n case 'mousedown':\n case 'mousemove':\n currentPosition = !verticalProp ? event.clientX : event.clientY;\n break;\n case 'touchstart':\n case 'touchmove':\n currentPosition = !verticalProp\n ? event.touches[0].clientX\n : event.touches[0].clientY;\n break;\n }\n return currentPosition;\n };\n var calculateCurrentSteps = function (event) {\n // eslint-disable-next-line deprecation/deprecation\n var sliderPositionRect = sliderLine.current.getBoundingClientRect();\n var sliderLength = !props.vertical ? sliderPositionRect.width : sliderPositionRect.height;\n var stepLength = sliderLength / steps;\n var currentSteps;\n var distance;\n if (!props.vertical) {\n var left = getPosition(event, props.vertical);\n distance = getRTL(props.theme) ? sliderPositionRect.right - left : left - sliderPositionRect.left;\n currentSteps = distance / stepLength;\n }\n else {\n var bottom = getPosition(event, props.vertical);\n distance = sliderPositionRect.bottom - bottom;\n currentSteps = distance / stepLength;\n }\n return currentSteps;\n };\n var onMouseMoveOrTouchMove = function (event, suppressEventCancelation) {\n var currentSteps = calculateCurrentSteps(event);\n var newUnroundedValue = min + step * currentSteps;\n var newCurrentValue = min + step * Math.round(currentSteps);\n updateValue(event, newCurrentValue, newUnroundedValue);\n if (!suppressEventCancelation) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n var onMouseDownOrTouchStart = function (event) {\n if (ranged) {\n var currentSteps = calculateCurrentSteps(event);\n var newValue = min + step * currentSteps;\n internalState.isAdjustingLowerValue =\n newValue <= internalState.latestLowerValue ||\n newValue - internalState.latestLowerValue <= internalState.latestValue - newValue;\n }\n if (event.type === 'mousedown') {\n disposables.current.push(on(window, 'mousemove', onMouseMoveOrTouchMove, true), on(window, 'mouseup', onMouseUpOrTouchEnd, true));\n }\n else if (event.type === 'touchstart') {\n disposables.current.push(on(window, 'touchmove', onMouseMoveOrTouchMove, true), on(window, 'touchend', onMouseUpOrTouchEnd, true));\n }\n onMouseMoveOrTouchMove(event, true);\n };\n var onMouseUpOrTouchEnd = function (event) {\n // Done adjusting, so clear this value\n internalState.isBetweenSteps = undefined;\n onChanged === null || onChanged === void 0 ? void 0 : onChanged(event, internalState.latestValue, ranged ? [internalState.latestLowerValue, internalState.latestValue] : undefined);\n disposeListeners();\n };\n var onThumbFocus = function (event) {\n internalState.isAdjustingLowerValue = event.target === lowerValueThumbRef.current;\n };\n var disposeListeners = React.useCallback(function () {\n disposables.current.forEach(function (dispose) { return dispose(); });\n disposables.current = [];\n }, []);\n React.useEffect(function () { return disposeListeners; }, [disposeListeners]);\n var lowerValueThumbRef = React.useRef(null);\n var thumbRef = React.useRef(null);\n var sliderBoxRef = React.useRef(null);\n useComponentRef(props, sliderBoxRef, value, ranged ? [lowerValue, value] : undefined);\n var getPositionStyles = getSlotStyleFn(vertical ? 'bottom' : getRTL(props.theme) ? 'right' : 'left');\n var getTrackStyles = getSlotStyleFn(vertical ? 'height' : 'width');\n var originValue = originFromZero ? 0 : min;\n var valuePercent = getPercent(value, min, max);\n var lowerValuePercent = getPercent(lowerValue, min, max);\n var originPercentOfLine = getPercent(originValue, min, max);\n var activeSectionWidth = ranged ? valuePercent - lowerValuePercent : Math.abs(originPercentOfLine - valuePercent);\n var topSectionWidth = Math.min(100 - valuePercent, 100 - originPercentOfLine);\n var bottomSectionWidth = ranged ? lowerValuePercent : Math.min(valuePercent, originPercentOfLine);\n var rootProps = {\n className: classNames.root,\n ref: ref,\n };\n var labelProps = {\n className: classNames.titleLabel,\n children: label,\n disabled: disabled,\n htmlFor: ariaLabel ? undefined : id,\n };\n var valueLabelProps = showValue\n ? {\n className: classNames.valueLabel,\n children: valueFormat ? valueFormat(value) : value,\n disabled: disabled,\n htmlFor: disabled ? id : undefined,\n }\n : undefined;\n var lowerValueLabelProps = ranged && showValue\n ? {\n className: classNames.valueLabel,\n children: valueFormat ? valueFormat(lowerValue) : lowerValue,\n disabled: disabled,\n }\n : undefined;\n var zeroTickProps = originFromZero\n ? {\n className: classNames.zeroTick,\n style: getPositionStyles(originPercentOfLine),\n }\n : undefined;\n var trackActiveProps = {\n className: css(classNames.lineContainer, classNames.activeSection),\n style: getTrackStyles(activeSectionWidth),\n };\n var trackTopInactiveProps = {\n className: css(classNames.lineContainer, classNames.inactiveSection),\n style: getTrackStyles(topSectionWidth),\n };\n var trackBottomInactiveProps = {\n className: css(classNames.lineContainer, classNames.inactiveSection),\n style: getTrackStyles(bottomSectionWidth),\n };\n var sliderProps = __assign({ 'aria-disabled': disabled, role: 'slider', tabIndex: disabled ? undefined : 0 }, { 'data-is-focusable': !disabled });\n var sliderBoxProps = __assign(__assign(__assign({ id: id, className: css(classNames.slideBox, buttonProps.className), ref: sliderBoxRef }, (!disabled && {\n onMouseDown: onMouseDownOrTouchStart,\n onTouchStart: onMouseDownOrTouchStart,\n onKeyDown: onKeyDown,\n })), (buttonProps &&\n getNativeProps(buttonProps, divProperties, ['id', 'className']))), (!ranged && __assign(__assign({}, sliderProps), { 'aria-valuemin': min, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': getAriaValueText(value), 'aria-label': ariaLabel || label, 'aria-labelledby': ariaLabelledBy })));\n var onFocusProp = disabled ? {} : { onFocus: onThumbFocus };\n var thumbProps = __assign({ ref: thumbRef, className: classNames.thumb, style: getPositionStyles(valuePercent) }, (ranged && __assign(__assign(__assign({}, sliderProps), onFocusProp), { id: \"max-\".concat(id), 'aria-valuemin': lowerValue, 'aria-valuemax': max, 'aria-valuenow': value, 'aria-valuetext': getAriaValueText(value), 'aria-label': \"max \".concat(ariaLabel || label) })));\n var lowerValueThumbProps = ranged\n ? __assign(__assign(__assign({ ref: lowerValueThumbRef, className: classNames.thumb, style: getPositionStyles(lowerValuePercent) }, sliderProps), onFocusProp), { id: \"min-\".concat(id), 'aria-valuemin': min, 'aria-valuemax': value, 'aria-valuenow': lowerValue, 'aria-valuetext': getAriaValueText(lowerValue), 'aria-label': \"min \".concat(ariaLabel || label) }) : undefined;\n var containerProps = {\n className: classNames.container,\n };\n var sliderLineProps = {\n ref: sliderLine,\n className: classNames.line,\n };\n return {\n root: rootProps,\n label: labelProps,\n sliderBox: sliderBoxProps,\n container: containerProps,\n valueLabel: valueLabelProps,\n lowerValueLabel: lowerValueLabelProps,\n thumb: thumbProps,\n lowerValueThumb: lowerValueThumbProps,\n zeroTick: zeroTickProps,\n activeTrack: trackActiveProps,\n topInactiveTrack: trackTopInactiveProps,\n bottomInactiveTrack: trackBottomInactiveProps,\n sliderLine: sliderLineProps,\n };\n};\n//# sourceMappingURL=useSlider.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useWarnings } from '@fluentui/react-hooks';\nimport { FocusRects } from '@fluentui/utilities';\nimport { Label } from '../Label/Label';\nimport { useSlider } from './useSlider';\nvar COMPONENT_NAME = 'SliderBase';\nexport var SliderBase = React.forwardRef(function (props, ref) {\n var slotProps = useSlider(props, ref);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n mutuallyExclusive: { value: 'defaultValue' },\n });\n }\n return (React.createElement(\"div\", __assign({}, slotProps.root),\n slotProps && React.createElement(Label, __assign({}, slotProps.label)),\n React.createElement(\"div\", __assign({}, slotProps.container),\n props.ranged &&\n (props.vertical\n ? slotProps.valueLabel && React.createElement(Label, __assign({}, slotProps.valueLabel))\n : slotProps.lowerValueLabel && React.createElement(Label, __assign({}, slotProps.lowerValueLabel))),\n React.createElement(\"div\", __assign({}, slotProps.sliderBox),\n React.createElement(\"div\", __assign({}, slotProps.sliderLine),\n props.ranged && React.createElement(\"span\", __assign({}, slotProps.lowerValueThumb)),\n React.createElement(\"span\", __assign({}, slotProps.thumb)),\n slotProps.zeroTick && React.createElement(\"span\", __assign({}, slotProps.zeroTick)),\n React.createElement(\"span\", __assign({}, slotProps.bottomInactiveTrack)),\n React.createElement(\"span\", __assign({}, slotProps.activeTrack)),\n React.createElement(\"span\", __assign({}, slotProps.topInactiveTrack)))),\n props.ranged && props.vertical\n ? slotProps.lowerValueLabel && React.createElement(Label, __assign({}, slotProps.lowerValueLabel))\n : slotProps.valueLabel && React.createElement(Label, __assign({}, slotProps.valueLabel))),\n React.createElement(FocusRects, null)));\n});\nSliderBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=Slider.base.js.map","import { __spreadArray } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, AnimationVariables, getFocusStyle, } from '@fluentui/style-utilities';\nimport { getRTL } from '@fluentui/utilities';\nvar GlobalClassNames = {\n root: 'ms-Slider',\n enabled: 'ms-Slider-enabled',\n disabled: 'ms-Slider-disabled',\n row: 'ms-Slider-row',\n column: 'ms-Slider-column',\n container: 'ms-Slider-container',\n slideBox: 'ms-Slider-slideBox',\n line: 'ms-Slider-line',\n thumb: 'ms-Slider-thumb',\n activeSection: 'ms-Slider-active',\n inactiveSection: 'ms-Slider-inactive',\n valueLabel: 'ms-Slider-value',\n showValue: 'ms-Slider-showValue',\n showTransitions: 'ms-Slider-showTransitions',\n zeroTick: 'ms-Slider-zeroTick',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var className = props.className, titleLabelClassName = props.titleLabelClassName, theme = props.theme, vertical = props.vertical, disabled = props.disabled, showTransitions = props.showTransitions, showValue = props.showValue, ranged = props.ranged;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n /** Tokens:\n * The word \"active\" in the token refers to the selected section of the slider\n * The word \"inactive\" in the token refers to the unselected section of the slider */\n var pressedActiveSectionColor = semanticColors.inputBackgroundCheckedHovered;\n var hoveredActiveSectionColor = semanticColors.inputBackgroundChecked;\n var hoveredPressedinactiveSectionColor = palette.neutralSecondaryAlt;\n var restActiveSectionColor = palette.neutralPrimary;\n var restInactiveSectionColor = palette.neutralSecondaryAlt;\n var disabledActiveSectionColor = semanticColors.disabledText;\n var disabledInactiveSectionColor = semanticColors.disabledBackground;\n var thumbBackgroundColor = semanticColors.inputBackground;\n var thumbBorderColor = semanticColors.smallInputBorder;\n var thumbDisabledBorderColor = semanticColors.disabledBorder;\n var slideBoxActiveSectionStyles = !disabled && {\n backgroundColor: pressedActiveSectionColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _a),\n };\n var slideBoxInactiveSectionStyles = !disabled && {\n backgroundColor: hoveredPressedinactiveSectionColor,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n };\n var slideHoverSectionStyles = !disabled && {\n backgroundColor: hoveredActiveSectionColor,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _c),\n };\n var slideBoxActiveThumbStyles = !disabled && {\n border: \"2px solid \".concat(pressedActiveSectionColor),\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _d),\n };\n var slideBoxActiveZeroTickStyles = !props.disabled && {\n backgroundColor: semanticColors.inputPlaceholderBackgroundChecked,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _e),\n };\n return {\n root: __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([\n classNames.root,\n theme.fonts.medium,\n {\n userSelect: 'none',\n },\n vertical && {\n marginRight: 8,\n }\n ], [!disabled ? classNames.enabled : undefined], false), [disabled ? classNames.disabled : undefined], false), [!vertical ? classNames.row : undefined], false), [vertical ? classNames.column : undefined], false), [\n className,\n ], false),\n titleLabel: [\n {\n padding: 0,\n },\n titleLabelClassName,\n ],\n container: [\n classNames.container,\n {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n vertical && {\n flexDirection: 'column',\n height: '100%',\n textAlign: 'center',\n margin: '8px 0',\n },\n ],\n slideBox: __spreadArray(__spreadArray([\n classNames.slideBox,\n !ranged && getFocusStyle(theme),\n {\n background: 'transparent',\n border: 'none',\n flexGrow: 1,\n lineHeight: 28,\n display: 'flex',\n alignItems: 'center',\n selectors: (_f = {},\n _f[\":active .\".concat(classNames.activeSection)] = slideBoxActiveSectionStyles,\n _f[\":hover .\".concat(classNames.activeSection)] = slideHoverSectionStyles,\n _f[\":active .\".concat(classNames.inactiveSection)] = slideBoxInactiveSectionStyles,\n _f[\":hover .\".concat(classNames.inactiveSection)] = slideBoxInactiveSectionStyles,\n _f[\":active .\".concat(classNames.thumb)] = slideBoxActiveThumbStyles,\n _f[\":hover .\".concat(classNames.thumb)] = slideBoxActiveThumbStyles,\n _f[\":active .\".concat(classNames.zeroTick)] = slideBoxActiveZeroTickStyles,\n _f[\":hover .\".concat(classNames.zeroTick)] = slideBoxActiveZeroTickStyles,\n _f[HighContrastSelector] = {\n forcedColorAdjust: 'none',\n },\n _f),\n },\n vertical\n ? {\n height: '100%',\n width: 28,\n padding: '8px 0', // Make room for thumb at bottom of line\n }\n : {\n height: 28,\n width: 'auto',\n padding: '0 8px', // Make room for thumb at ends of line\n }\n ], [showValue ? classNames.showValue : undefined], false), [showTransitions ? classNames.showTransitions : undefined], false),\n thumb: [\n classNames.thumb,\n ranged && getFocusStyle(theme, { inset: -4 }),\n {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: thumbBorderColor,\n borderRadius: 10,\n boxSizing: 'border-box',\n background: thumbBackgroundColor,\n display: 'block',\n width: 16,\n height: 16,\n position: 'absolute',\n },\n vertical\n ? {\n left: -6,\n margin: '0 auto',\n transform: 'translateY(8px)',\n }\n : {\n top: -6,\n transform: getRTL(theme) ? 'translateX(50%)' : 'translateX(-50%)',\n },\n showTransitions && {\n transition: \"left \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n },\n disabled && {\n borderColor: thumbDisabledBorderColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _g),\n },\n ],\n line: [\n classNames.line,\n {\n display: 'flex',\n position: 'relative',\n },\n vertical\n ? {\n height: '100%',\n width: 4,\n margin: '0 auto',\n flexDirection: 'column-reverse',\n }\n : {\n width: '100%',\n },\n ],\n lineContainer: [\n {\n borderRadius: 4,\n boxSizing: 'border-box',\n },\n vertical\n ? {\n width: 4,\n height: '100%',\n }\n : {\n height: 4,\n width: '100%',\n },\n ],\n activeSection: [\n classNames.activeSection,\n {\n background: restActiveSectionColor,\n selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h),\n },\n showTransitions && {\n transition: \"width \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n },\n disabled && {\n background: disabledActiveSectionColor,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n borderColor: 'GrayText',\n },\n _j),\n },\n ],\n inactiveSection: [\n classNames.inactiveSection,\n {\n background: restInactiveSectionColor,\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n border: '1px solid WindowText',\n },\n _k),\n },\n showTransitions && {\n transition: \"width \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction1),\n },\n disabled && {\n background: disabledInactiveSectionColor,\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _l),\n },\n ],\n zeroTick: [\n classNames.zeroTick,\n {\n position: 'absolute',\n background: semanticColors.disabledBorder,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _m),\n },\n props.disabled && {\n background: semanticColors.disabledBackground,\n selectors: (_o = {},\n _o[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _o),\n },\n props.vertical\n ? {\n width: '16px',\n height: '1px',\n transform: getRTL(theme) ? 'translateX(6px)' : 'translateX(-6px)',\n }\n : {\n width: '1px',\n height: '16px',\n transform: 'translateY(-6px)',\n },\n ],\n valueLabel: [\n classNames.valueLabel,\n {\n flexShrink: 1,\n width: 30,\n lineHeight: '1', // using a string here meaning it's relative to the size of the font\n },\n vertical\n ? {\n margin: '0 auto',\n whiteSpace: 'nowrap',\n width: 40,\n }\n : {\n margin: '0 8px',\n whiteSpace: 'nowrap',\n width: 40,\n },\n ],\n };\n};\n//# sourceMappingURL=Slider.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { SliderBase } from './Slider.base';\nimport { getStyles } from './Slider.styles';\nexport var Slider = styled(SliderBase, getStyles, undefined, {\n scope: 'Slider',\n});\n//# sourceMappingURL=Slider.js.map","/**\n * {@docCategory SpinButton}\n */\nexport var KeyboardSpinDirection;\n(function (KeyboardSpinDirection) {\n KeyboardSpinDirection[KeyboardSpinDirection[\"down\"] = -1] = \"down\";\n KeyboardSpinDirection[KeyboardSpinDirection[\"notSpinning\"] = 0] = \"notSpinning\";\n KeyboardSpinDirection[KeyboardSpinDirection[\"up\"] = 1] = \"up\";\n})(KeyboardSpinDirection || (KeyboardSpinDirection = {}));\n//# sourceMappingURL=SpinButton.types.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, HighContrastSelector, IconFontSizes, getInputFocusStyle } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nimport { Position } from '../../Positioning';\nvar ARROW_BUTTON_WIDTH = 23;\nvar ARROW_BUTTON_ICON_SIZE = 8;\nvar DEFAULT_HEIGHT = 32;\nvar DEFAULT_MIN_WIDTH = 86;\nvar LABEL_MARGIN = 10;\nvar getDisabledStyles = memoizeFunction(function (theme) {\n var _a;\n var semanticColors = theme.semanticColors;\n var SpinButtonTextColorDisabled = semanticColors.disabledText;\n var SpinButtonBackgroundColorDisabled = semanticColors.disabledBackground;\n return {\n backgroundColor: SpinButtonBackgroundColorDisabled,\n pointerEvents: 'none',\n cursor: 'default',\n color: SpinButtonTextColorDisabled,\n selectors: (_a = {\n ':after': {\n borderColor: SpinButtonBackgroundColorDisabled,\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n };\n});\nexport var getArrowButtonStyles = memoizeFunction(function (theme, isUpArrow, customSpecificArrowStyles) {\n var _a, _b, _c;\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects;\n // TODO: after updating the semanticColor slots all this need to be reevaluated.\n var ArrowButtonTextColor = palette.neutralSecondary;\n var ArrowButtonTextColorHovered = semanticColors.buttonText;\n var ArrowButtonTextColorPressed = semanticColors.buttonText;\n var ArrowButtonBackgroundHovered = semanticColors.buttonBackgroundHovered;\n var ArrowButtonBackgroundPressed = semanticColors.buttonBackgroundPressed;\n var defaultArrowButtonStyles = {\n root: {\n outline: 'none',\n display: 'block',\n height: '50%',\n width: ARROW_BUTTON_WIDTH,\n padding: 0,\n backgroundColor: 'transparent',\n textAlign: 'center',\n cursor: 'default',\n color: ArrowButtonTextColor,\n selectors: {\n '&.ms-DownButton': {\n borderRadius: \"0 0 \".concat(effects.roundedCorner2, \" 0\"),\n },\n '&.ms-UpButton': {\n borderRadius: \"0 \".concat(effects.roundedCorner2, \" 0 0\"),\n },\n },\n },\n rootHovered: {\n backgroundColor: ArrowButtonBackgroundHovered,\n color: ArrowButtonTextColorHovered,\n },\n rootChecked: {\n backgroundColor: ArrowButtonBackgroundPressed,\n color: ArrowButtonTextColorPressed,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'HighlightText',\n },\n _a),\n },\n rootPressed: {\n backgroundColor: ArrowButtonBackgroundPressed,\n color: ArrowButtonTextColorPressed,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'HighlightText',\n },\n _b),\n },\n rootDisabled: {\n opacity: 0.5,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n opacity: 1,\n },\n _c),\n },\n icon: {\n fontSize: ARROW_BUTTON_ICON_SIZE,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n },\n };\n // No specific styles needed as of now.\n var defaultUpArrowButtonStyles = {};\n var defaultDownArrowButtonStyles = {};\n return concatStyleSets(defaultArrowButtonStyles, isUpArrow ? defaultUpArrowButtonStyles : defaultDownArrowButtonStyles, customSpecificArrowStyles);\n});\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var theme = props.theme, className = props.className, labelPosition = props.labelPosition, disabled = props.disabled, isFocused = props.isFocused;\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var SpinButtonRootBorderColor = semanticColors.inputBorder;\n var SpinButtonRootBackgroundColor = semanticColors.inputBackground;\n var SpinButtonRootBorderColorHovered = semanticColors.inputBorderHovered;\n var SpinButtonRootBorderColorFocused = semanticColors.inputFocusBorderAlt;\n var SpinButtonInputTextColor = semanticColors.inputText;\n var SpinButtonInputTextColorSelected = palette.white;\n var SpinButtonInputBackgroundColorSelected = semanticColors.inputBackgroundChecked;\n var SpinButtonIconDisabledColor = semanticColors.disabledText;\n return {\n root: [\n fonts.medium,\n {\n outline: 'none',\n width: '100%',\n minWidth: DEFAULT_MIN_WIDTH,\n },\n className,\n ],\n labelWrapper: [\n {\n display: 'inline-flex',\n alignItems: 'center',\n },\n labelPosition === Position.start && {\n height: DEFAULT_HEIGHT,\n float: 'left',\n marginRight: LABEL_MARGIN,\n },\n labelPosition === Position.end && {\n height: DEFAULT_HEIGHT,\n float: 'right',\n marginLeft: LABEL_MARGIN,\n },\n labelPosition === Position.top && {\n // Due to the lineHeight set on the label (below), the height of the wrapper (contains icon+label)\n // ends up 1px taller than a standard label height, causing the vertical alignment to be off when\n // the SpinButton is displayed with the label on top next to other form fields.\n // Decrease the wrapper's effective height slightly to compensate.\n marginBottom: -1,\n },\n ],\n icon: [\n {\n padding: '0 5px',\n fontSize: IconFontSizes.large,\n },\n disabled && {\n color: SpinButtonIconDisabledColor,\n },\n ],\n label: {\n pointerEvents: 'none',\n // centering the label with the icon by forcing the exact same height as the icon.\n lineHeight: IconFontSizes.large,\n },\n spinButtonWrapper: [\n __assign(__assign({ display: 'flex', position: 'relative', boxSizing: 'border-box', height: DEFAULT_HEIGHT, minWidth: DEFAULT_MIN_WIDTH }, getInputFocusStyle(SpinButtonRootBorderColor, effects.roundedCorner2, 'border', 0)), { ':after': (_a = {\n borderWidth: '1px'\n },\n _a[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _a) }),\n (labelPosition === Position.top || labelPosition === Position.bottom) && {\n width: '100%',\n },\n !disabled && [\n {\n ':hover:after': (_b = {\n borderColor: SpinButtonRootBorderColorHovered\n },\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n isFocused && {\n ':hover:after, :after': (_c = {\n borderColor: SpinButtonRootBorderColorFocused,\n borderWidth: '2px'\n },\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n },\n ],\n disabled && getDisabledStyles(theme),\n ],\n input: [\n 'ms-spinButton-input',\n {\n boxSizing: 'border-box',\n boxShadow: 'none',\n borderStyle: 'none',\n flex: 1,\n margin: 0,\n fontSize: fonts.medium.fontSize,\n fontFamily: 'inherit',\n color: SpinButtonInputTextColor,\n backgroundColor: SpinButtonRootBackgroundColor,\n height: '100%',\n padding: '0 8px 0 9px',\n outline: 0,\n display: 'block',\n minWidth: DEFAULT_MIN_WIDTH - ARROW_BUTTON_WIDTH - 2,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n cursor: 'text',\n userSelect: 'text',\n borderRadius: \"\".concat(effects.roundedCorner2, \" 0 0 \").concat(effects.roundedCorner2),\n },\n !disabled && {\n selectors: {\n '::selection': {\n backgroundColor: SpinButtonInputBackgroundColorSelected,\n color: SpinButtonInputTextColorSelected,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n },\n _d),\n },\n },\n },\n disabled && getDisabledStyles(theme),\n ],\n arrowButtonsContainer: [\n {\n display: 'block',\n height: '100%',\n cursor: 'default',\n },\n disabled && getDisabledStyles(theme),\n ],\n };\n};\n//# sourceMappingURL=SpinButton.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { KeyCodes, calculatePrecision, classNamesFunction, precisionRound, getNativeProps, getPropsWithDefaults, divProperties, } from '../../Utilities';\nimport { getArrowButtonStyles } from './SpinButton.styles';\nimport { KeyboardSpinDirection } from './SpinButton.types';\nimport { Position } from '../../Positioning';\nimport { useAsync, useControllableValue, useWarnings, useId, usePrevious } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SpinButton';\nvar DEFAULT_PROPS = {\n disabled: false,\n label: '',\n step: 1,\n labelPosition: Position.start,\n incrementButtonIcon: { iconName: 'ChevronUpSmall' },\n decrementButtonIcon: { iconName: 'ChevronDownSmall' },\n};\nvar INITIAL_STEP_DELAY = 400;\nvar STEP_DELAY = 75;\nvar useComponentRef = function (props, input, value) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n get value() {\n return value;\n },\n focus: function () {\n if (input.current) {\n input.current.focus();\n }\n },\n }); }, [input, value]);\n};\nvar noOp = function () {\n /**\n * A noop input change handler. Using onInput instead of onChange was meant to address an issue\n * which apparently has been resolved in React 16 (https://github.com/facebook/react/issues/7027).\n * The no-op onChange handler was still needed because React gives console errors if an input\n * doesn't have onChange.\n *\n * TODO (Fabric 8?) - switch to just calling onChange (this is a breaking change for any tests,\n * ours or 3rd-party, which simulate entering text in a SpinButton)\n */\n};\n/** Clamp the value to the provided min and/or max */\nvar clampValue = function (value, _a) {\n var min = _a.min, max = _a.max;\n if (typeof max === 'number') {\n value = Math.min(value, max);\n }\n if (typeof min === 'number') {\n value = Math.max(value, min);\n }\n return value;\n};\nexport var SpinButtonBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var disabled = props.disabled, label = props.label, min = props.min, max = props.max, step = props.step, defaultValue = props.defaultValue, valueFromProps = props.value, precisionFromProps = props.precision, labelPosition = props.labelPosition, iconProps = props.iconProps, incrementButtonIcon = props.incrementButtonIcon, incrementButtonAriaLabel = props.incrementButtonAriaLabel, decrementButtonIcon = props.decrementButtonIcon, decrementButtonAriaLabel = props.decrementButtonAriaLabel, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, customUpArrowButtonStyles = props.upArrowButtonStyles, customDownArrowButtonStyles = props.downArrowButtonStyles, theme = props.theme, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, ariaValueNow = props.ariaValueNow, ariaValueText = props.ariaValueText, className = props.className, inputProps = props.inputProps, onDecrement = props.onDecrement, onIncrement = props.onIncrement, iconButtonProps = props.iconButtonProps, onValidate = props.onValidate, onChange = props.onChange, styles = props.styles;\n var input = React.useRef(null);\n var inputId = useId('input');\n var labelId = useId('Label');\n var _a = React.useState(false), isFocused = _a[0], setIsFocused = _a[1];\n var _b = React.useState(KeyboardSpinDirection.notSpinning), keyboardSpinDirection = _b[0], setKeyboardSpinDirection = _b[1];\n var async = useAsync();\n var precision = React.useMemo(function () {\n return precisionFromProps !== null && precisionFromProps !== void 0 ? precisionFromProps : Math.max(calculatePrecision(step), 0);\n }, [precisionFromProps, step]);\n /**\n * Actual current value. If `props.value` is provided (controlled), it will always be used.\n * If not (uncontrolled), this tracks the current value based on user modifications.\n * Note that while the user is editing text in the field, this will not be updated until \"commit\"\n * (blur or press enter).\n */\n var _c = useControllableValue(valueFromProps, defaultValue !== null && defaultValue !== void 0 ? defaultValue : String(min || 0), onChange), value = _c[0], setValue = _c[1];\n /**\n * \"Uncommitted\" internal value while the user is editing text in the field. This lets us wait to\n * call `onChange` (and possibly update the real value) until the user \"commits\" the value by\n * pressing enter or blurring the field.\n */\n var _d = React.useState(), intermediateValue = _d[0], setIntermediateValue = _d[1];\n var internalState = React.useRef({\n stepTimeoutHandle: -1,\n latestValue: undefined,\n latestIntermediateValue: undefined,\n }).current;\n // On each render, update this saved value used by callbacks. (This should be safe even if render\n // is called multiple times, because an event handler or timeout callback will only run once.)\n internalState.latestValue = value;\n internalState.latestIntermediateValue = intermediateValue;\n var previousValueFromProps = usePrevious(valueFromProps);\n React.useEffect(function () {\n // If props.value changes while editing, clear the intermediate value\n if (valueFromProps !== previousValueFromProps && intermediateValue !== undefined) {\n setIntermediateValue(undefined);\n }\n }, [valueFromProps, previousValueFromProps, intermediateValue]);\n var classNames = getClassNames(styles, {\n theme: theme,\n disabled: disabled,\n isFocused: isFocused,\n keyboardSpinDirection: keyboardSpinDirection,\n labelPosition: labelPosition,\n className: className,\n });\n var nativeProps = getNativeProps(props, divProperties, [\n 'onBlur',\n 'onFocus',\n 'className',\n 'onChange',\n ]);\n /** Validate (commit) function called on blur or enter keypress. */\n var validate = React.useCallback(function (ev) {\n // Only run validation if the value changed\n var enteredValue = internalState.latestIntermediateValue;\n if (enteredValue !== undefined && enteredValue !== internalState.latestValue) {\n var newValue = void 0;\n if (onValidate) {\n newValue = onValidate(enteredValue, ev);\n }\n else if (enteredValue && enteredValue.trim().length && !isNaN(Number(enteredValue))) {\n // default validation handling\n newValue = String(clampValue(Number(enteredValue), { min: min, max: max }));\n }\n if (newValue !== undefined && newValue !== internalState.latestValue) {\n // Commit the value if it changed\n setValue(newValue, ev);\n }\n }\n // Done validating, so clear the intermediate typed value (if any)\n setIntermediateValue(undefined);\n }, [internalState, max, min, onValidate, setValue]);\n /**\n * Stop spinning (clear any currently pending update and set spinning to false)\n */\n var stop = React.useCallback(function () {\n if (internalState.stepTimeoutHandle >= 0) {\n async.clearTimeout(internalState.stepTimeoutHandle);\n internalState.stepTimeoutHandle = -1;\n }\n if (internalState.spinningByMouse || keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n internalState.spinningByMouse = false;\n setKeyboardSpinDirection(KeyboardSpinDirection.notSpinning);\n }\n }, [internalState, keyboardSpinDirection, async]);\n /**\n * Update the value with the given stepFunction.\n * Also starts spinning for mousedown events by scheduling another update with setTimeout.\n * @param stepFunction - function to use to step by\n * @param event - The event that triggered the updateValue\n */\n var updateValue = React.useCallback(function (stepFunction, ev) {\n ev.persist();\n if (internalState.latestIntermediateValue !== undefined) {\n // Edge case: if intermediateValue is set, this means that the user was editing the input\n // text and then started spinning (either with mouse or keyboard). We need to validate and\n // call onChange before starting to spin.\n if (ev.type === 'keydown' || ev.type === 'mousedown') {\n // For the arrow keys, we have to manually trigger validation.\n // (For the buttons, validation will happen automatically since the input's onBlur will\n // be triggered after mousedown on the button completes.)\n validate(ev);\n }\n async.requestAnimationFrame(function () {\n // After handling any value updates, do the spinning update\n updateValue(stepFunction, ev);\n });\n return;\n }\n // Call the step function and update the value.\n // (Note: we access the latest value via internalState (not directly) to ensure we don't use\n // a stale captured value. This is mainly important for spinning by mouse, where we trigger\n // additional calls to the original updateValue function via setTimeout. It also lets us\n // avoid useCallback deps on frequently changing values.)\n var newValue = stepFunction(internalState.latestValue || '', ev);\n if (newValue !== undefined && newValue !== internalState.latestValue) {\n setValue(newValue, ev);\n }\n // Schedule the next spin if applicable\n // (will be canceled if there's a mouseup before the timeout runs)\n var wasSpinning = internalState.spinningByMouse;\n internalState.spinningByMouse = ev.type === 'mousedown';\n if (internalState.spinningByMouse) {\n internalState.stepTimeoutHandle = async.setTimeout(function () {\n updateValue(stepFunction, ev);\n }, wasSpinning ? STEP_DELAY : INITIAL_STEP_DELAY);\n }\n }, [internalState, async, validate, setValue]);\n /** Composed increment handler (uses `props.onIncrement` or default) */\n var handleIncrement = React.useCallback(function (newValue) {\n if (onIncrement) {\n return onIncrement(newValue);\n }\n else {\n var numericValue = clampValue(Number(newValue) + Number(step), { max: max });\n numericValue = precisionRound(numericValue, precision);\n return String(numericValue);\n }\n }, [precision, max, onIncrement, step]);\n /** Composed decrement handler (uses `props.onDecrement` or default) */\n var handleDecrement = React.useCallback(function (newValue) {\n if (onDecrement) {\n return onDecrement(newValue);\n }\n else {\n var numericValue = clampValue(Number(newValue) - Number(step), { min: min });\n numericValue = precisionRound(numericValue, precision);\n return String(numericValue);\n }\n }, [precision, min, onDecrement, step]);\n /** Handles when the user types in the input */\n var handleInputChange = function (ev) {\n setIntermediateValue(ev.target.value);\n };\n /** Composed focus handler (does internal stuff and calls `props.onFocus`) */\n var handleFocus = function (ev) {\n var _a;\n // We can't set focus on a non-existing element\n if (!input.current) {\n return;\n }\n if (internalState.spinningByMouse || keyboardSpinDirection !== KeyboardSpinDirection.notSpinning) {\n stop();\n }\n input.current.select();\n setIsFocused(true);\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n };\n /** Composed blur handler (does internal stuff and calls `props.onBlur`) */\n var handleBlur = function (ev) {\n var _a;\n validate(ev);\n setIsFocused(false);\n (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n };\n /** Update value when arrow keys are pressed, commit on enter, or revert on escape */\n var handleKeyDown = function (ev) {\n // eat the up and down arrow keys to keep focus in the spinButton\n // (especially when a spinButton is inside of a FocusZone)\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.up || ev.which === KeyCodes.down || ev.which === KeyCodes.enter) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (disabled) {\n stop();\n return;\n }\n var spinDirection = KeyboardSpinDirection.notSpinning;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up:\n spinDirection = KeyboardSpinDirection.up;\n updateValue(handleIncrement, ev);\n break;\n case KeyCodes.down:\n spinDirection = KeyboardSpinDirection.down;\n updateValue(handleDecrement, ev);\n break;\n case KeyCodes.enter:\n // Commit the edited value\n validate(ev);\n break;\n case KeyCodes.escape:\n // Revert to previous value\n setIntermediateValue(undefined);\n break;\n }\n // style the increment/decrement button to look active\n // when the corresponding up/down arrow keys trigger a step\n if (keyboardSpinDirection !== spinDirection) {\n setKeyboardSpinDirection(spinDirection);\n }\n };\n /** Stop spinning on keyUp if the up or down arrow key fired this event */\n var handleKeyUp = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (disabled || ev.which === KeyCodes.up || ev.which === KeyCodes.down) {\n stop();\n return;\n }\n }, [disabled, stop]);\n var handleIncrementMouseDown = React.useCallback(function (ev) {\n updateValue(handleIncrement, ev);\n }, [handleIncrement, updateValue]);\n var handleDecrementMouseDown = React.useCallback(function (ev) {\n updateValue(handleDecrement, ev);\n }, [handleDecrement, updateValue]);\n useComponentRef(props, input, value);\n useDebugWarnings(props);\n var valueIsNumber = !!value && !isNaN(Number(value)); // Number('') is 0 which may not be desirable\n var labelContent = (iconProps || label) && (React.createElement(\"div\", { className: classNames.labelWrapper },\n iconProps && React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon, \"aria-hidden\": \"true\" })),\n label && (React.createElement(Label, { id: labelId, htmlFor: inputId, className: classNames.label, disabled: disabled }, label))));\n return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n labelPosition !== Position.bottom && labelContent,\n React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.spinButtonWrapper, \"aria-label\": ariaLabel && ariaLabel, \"aria-posinset\": ariaPositionInSet, \"aria-setsize\": ariaSetSize, \"data-ktp-target\": true }),\n React.createElement(\"input\", __assign({ \n // Display intermediateValue while editing the text (before commit)\n value: intermediateValue !== null && intermediateValue !== void 0 ? intermediateValue : value, id: inputId, onChange: noOp, onInput: handleInputChange, className: classNames.input, type: \"text\", autoComplete: \"off\", role: \"spinbutton\", \"aria-labelledby\": label && labelId, \"aria-valuenow\": ariaValueNow !== null && ariaValueNow !== void 0 ? ariaValueNow : (valueIsNumber ? Number(value) : undefined), \"aria-valuetext\": ariaValueText !== null && ariaValueText !== void 0 ? ariaValueText : (valueIsNumber ? undefined : value), \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-describedby\": ariaDescribedBy, onBlur: handleBlur, ref: input, onFocus: handleFocus, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, disabled: disabled, \"aria-disabled\": disabled, \"data-lpignore\": true, \"data-ktp-execute-target\": true }, inputProps)),\n React.createElement(\"span\", { className: classNames.arrowButtonsContainer },\n React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, true, customUpArrowButtonStyles), className: 'ms-UpButton', checked: keyboardSpinDirection === KeyboardSpinDirection.up, disabled: disabled, iconProps: incrementButtonIcon, onMouseDown: handleIncrementMouseDown, onMouseLeave: stop, onMouseUp: stop, tabIndex: -1, ariaLabel: incrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps)),\n React.createElement(IconButton, __assign({ styles: getArrowButtonStyles(theme, false, customDownArrowButtonStyles), className: 'ms-DownButton', checked: keyboardSpinDirection === KeyboardSpinDirection.down, disabled: disabled, iconProps: decrementButtonIcon, onMouseDown: handleDecrementMouseDown, onMouseLeave: stop, onMouseUp: stop, tabIndex: -1, ariaLabel: decrementButtonAriaLabel, \"data-is-focusable\": false }, iconButtonProps)))),\n labelPosition === Position.bottom && labelContent));\n});\nSpinButtonBase.displayName = COMPONENT_NAME;\nvar useDebugWarnings = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n mutuallyExclusive: { value: 'defaultValue' },\n });\n }\n};\n//# sourceMappingURL=SpinButton.base.js.map","import { styled } from '../../Utilities';\nimport { SpinButtonBase } from './SpinButton.base';\nimport { getStyles } from './SpinButton.styles';\n/**\n * The SpinButton control and related tabs pattern are used for navigating frequently accessed,\n * distinct content categories. SpinButtons allow for navigation between two or more content\n * views and relies on text headers to articulate the different sections of content.\n */\nexport var SpinButton = styled(SpinButtonBase, getStyles, undefined, {\n scope: 'SpinButton',\n});\n//# sourceMappingURL=SpinButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n __extends(SpinnerBase, _super);\n function SpinnerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SpinnerBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n var statusMessage = ariaLabel;\n var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n // finally goes away we should delete this.\n var styleSize = size;\n if (styleSize === undefined && type !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: styleSize,\n className: className,\n labelPosition: labelPosition,\n });\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { className: classNames.circle }),\n label && React.createElement(\"div\", { className: classNames.label }, label),\n statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n };\n SpinnerBase.defaultProps = {\n size: SpinnerSize.medium,\n ariaLive: 'polite',\n labelPosition: 'bottom',\n };\n return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Spinner',\n circle: 'ms-Spinner-circle',\n label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n labelPosition === 'top' && {\n flexDirection: 'column-reverse',\n },\n labelPosition === 'right' && {\n flexDirection: 'row',\n },\n labelPosition === 'left' && {\n flexDirection: 'row-reverse',\n },\n className,\n ],\n circle: [\n classNames.circle,\n {\n boxSizing: 'border-box',\n borderRadius: '50%',\n border: '1.5px solid ' + palette.themeLight,\n borderTopColor: palette.themePrimary,\n animationName: spinAnimation(),\n animationDuration: '1.3s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n size === SpinnerSize.xSmall && [\n 'ms-Spinner--xSmall',\n {\n width: 12,\n height: 12,\n },\n ],\n size === SpinnerSize.small && [\n 'ms-Spinner--small',\n {\n width: 16,\n height: 16,\n },\n ],\n size === SpinnerSize.medium && [\n 'ms-Spinner--medium',\n {\n width: 20,\n height: 20,\n },\n ],\n size === SpinnerSize.large && [\n 'ms-Spinner--large',\n {\n width: 28,\n height: 28,\n },\n ],\n ],\n label: [\n classNames.label,\n theme.fonts.small,\n {\n color: palette.themePrimary,\n margin: '8px 0 0',\n textAlign: 'center',\n },\n labelPosition === 'top' && {\n margin: '0 0 8px',\n },\n labelPosition === 'right' && {\n margin: '0 0 0 8px',\n },\n labelPosition === 'left' && {\n margin: '0 8px 0 0',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n /**\n * 12px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n /**\n * 16px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n /**\n * 20px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n /**\n * 28px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","// Helper function that converts a themed spacing key (if given) to the corresponding themed spacing value.\nvar _getThemedSpacing = function (space, theme) {\n if (theme.spacing.hasOwnProperty(space)) {\n return theme.spacing[space];\n }\n return space;\n};\n// Helper function that takes a gap as a string and converts it into a { value, unit } representation.\nvar _getValueUnitGap = function (gap) {\n var numericalPart = parseFloat(gap);\n var numericalValue = isNaN(numericalPart) ? 0 : numericalPart;\n var numericalString = isNaN(numericalPart) ? '' : numericalPart.toString();\n var unitPart = gap.substring(numericalString.toString().length);\n return {\n value: numericalValue,\n unit: unitPart || 'px',\n };\n};\n/**\n * Takes in a gap size in either a CSS-style format (e.g. 10 or \"10px\")\n * or a key of a themed spacing value (e.g. \"s1\").\n * Returns the separate numerical value of the padding (e.g. 10)\n * and the CSS unit (e.g. \"px\").\n */\nexport var parseGap = function (gap, theme) {\n if (gap === undefined || gap === '') {\n return {\n rowGap: {\n value: 0,\n unit: 'px',\n },\n columnGap: {\n value: 0,\n unit: 'px',\n },\n };\n }\n if (typeof gap === 'number') {\n return {\n rowGap: {\n value: gap,\n unit: 'px',\n },\n columnGap: {\n value: gap,\n unit: 'px',\n },\n };\n }\n var splitGap = gap.split(' ');\n // If the array has more than two values, then return 0px.\n if (splitGap.length > 2) {\n return {\n rowGap: {\n value: 0,\n unit: 'px',\n },\n columnGap: {\n value: 0,\n unit: 'px',\n },\n };\n }\n // If the array has two values, then parse each one.\n if (splitGap.length === 2) {\n return {\n rowGap: _getValueUnitGap(_getThemedSpacing(splitGap[0], theme)),\n columnGap: _getValueUnitGap(_getThemedSpacing(splitGap[1], theme)),\n };\n }\n // Else, parse the numerical value and pass it as both the vertical and horizontal gap.\n var calculatedGap = _getValueUnitGap(_getThemedSpacing(gap, theme));\n return {\n rowGap: calculatedGap,\n columnGap: calculatedGap,\n };\n};\n/**\n * Takes in a padding in a CSS-style format (e.g. 10, \"10px\", \"10px 10px\", etc.)\n * where the separate padding values can also be the key of a themed spacing value\n * (e.g. \"s1 m\", \"10px l1 20px l2\", etc.).\n * Returns a CSS-style padding.\n */\nexport var parsePadding = function (padding, theme) {\n if (padding === undefined || typeof padding === 'number' || padding === '') {\n return padding;\n }\n var paddingValues = padding.split(' ');\n if (paddingValues.length < 2) {\n return _getThemedSpacing(padding, theme);\n }\n return paddingValues.reduce(function (padding1, padding2) {\n return _getThemedSpacing(padding1, theme) + ' ' + _getThemedSpacing(padding2, theme);\n });\n};\n//# sourceMappingURL=StackUtils.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames } from '../../Styling';\nimport { GlobalClassNames as StackItemGlobalClassNames } from './StackItem/StackItem.styles';\nimport { parseGap, parsePadding } from './StackUtils';\nvar nameMap = {\n start: 'flex-start',\n end: 'flex-end',\n};\nexport var GlobalClassNames = {\n root: 'ms-Stack',\n inner: 'ms-Stack-inner',\n child: 'ms-Stack-child',\n};\nexport var styles = function (props, theme, tokens) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var className = props.className, disableShrink = props.disableShrink, enableScopedSelectors = props.enableScopedSelectors, grow = props.grow, horizontal = props.horizontal, horizontalAlign = props.horizontalAlign, reversed = props.reversed, verticalAlign = props.verticalAlign, verticalFill = props.verticalFill, wrap = props.wrap;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n /* eslint-disable deprecation/deprecation */\n var childrenGap = tokens && tokens.childrenGap ? tokens.childrenGap : props.gap;\n var maxHeight = tokens && tokens.maxHeight ? tokens.maxHeight : props.maxHeight;\n var maxWidth = tokens && tokens.maxWidth ? tokens.maxWidth : props.maxWidth;\n var padding = tokens && tokens.padding ? tokens.padding : props.padding;\n /* eslint-enable deprecation/deprecation */\n var _p = parseGap(childrenGap, theme), rowGap = _p.rowGap, columnGap = _p.columnGap;\n var horizontalMargin = \"\".concat(-0.5 * columnGap.value).concat(columnGap.unit);\n var verticalMargin = \"\".concat(-0.5 * rowGap.value).concat(rowGap.unit);\n // styles to be applied to all direct children regardless of wrap or direction\n var childStyles = {\n textOverflow: 'ellipsis',\n };\n var childSelector = '> ' + (enableScopedSelectors ? '.' + GlobalClassNames.child : '*');\n var disableShrinkStyles = (_a = {},\n // flexShrink styles are applied by the StackItem\n _a[\"\".concat(childSelector, \":not(.\").concat(StackItemGlobalClassNames.root, \")\")] = {\n flexShrink: 0,\n },\n _a);\n if (wrap) {\n return {\n root: [\n classNames.root,\n {\n flexWrap: 'wrap',\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n width: 'auto',\n overflow: 'visible',\n height: '100%',\n },\n horizontalAlign && (_b = {},\n _b[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _b),\n verticalAlign && (_c = {},\n _c[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _c),\n className,\n {\n // not allowed to be overridden by className\n // since this is necessary in order to prevent collapsing margins\n display: 'flex',\n },\n horizontal && {\n height: verticalFill ? '100%' : 'auto',\n },\n ],\n inner: [\n classNames.inner,\n (_d = {\n display: 'flex',\n flexWrap: 'wrap',\n marginLeft: horizontalMargin,\n marginRight: horizontalMargin,\n marginTop: verticalMargin,\n marginBottom: verticalMargin,\n overflow: 'visible',\n boxSizing: 'border-box',\n padding: parsePadding(padding, theme),\n // avoid unnecessary calc() calls if horizontal gap is 0\n width: columnGap.value === 0 ? '100%' : \"calc(100% + \".concat(columnGap.value).concat(columnGap.unit, \")\"),\n maxWidth: '100vw'\n },\n _d[childSelector] = __assign({ margin: \"\".concat(0.5 * rowGap.value).concat(rowGap.unit, \" \").concat(0.5 * columnGap.value).concat(columnGap.unit) }, childStyles),\n _d),\n disableShrink && disableShrinkStyles,\n horizontalAlign && (_e = {},\n _e[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _e),\n verticalAlign && (_f = {},\n _f[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _f),\n horizontal && (_g = {\n flexDirection: reversed ? 'row-reverse' : 'row',\n // avoid unnecessary calc() calls if vertical gap is 0\n height: rowGap.value === 0 ? '100%' : \"calc(100% + \".concat(rowGap.value).concat(rowGap.unit, \")\")\n },\n _g[childSelector] = {\n maxWidth: columnGap.value === 0 ? '100%' : \"calc(100% - \".concat(columnGap.value).concat(columnGap.unit, \")\"),\n },\n _g),\n !horizontal && (_h = {\n flexDirection: reversed ? 'column-reverse' : 'column',\n height: \"calc(100% + \".concat(rowGap.value).concat(rowGap.unit, \")\")\n },\n _h[childSelector] = {\n maxHeight: rowGap.value === 0 ? '100%' : \"calc(100% - \".concat(rowGap.value).concat(rowGap.unit, \")\"),\n },\n _h),\n ],\n };\n }\n return {\n root: [\n classNames.root,\n (_j = {\n display: 'flex',\n flexDirection: horizontal ? (reversed ? 'row-reverse' : 'row') : reversed ? 'column-reverse' : 'column',\n flexWrap: 'nowrap',\n width: 'auto',\n height: verticalFill ? '100%' : 'auto',\n maxWidth: maxWidth,\n maxHeight: maxHeight,\n padding: parsePadding(padding, theme),\n boxSizing: 'border-box'\n },\n _j[childSelector] = childStyles,\n _j),\n disableShrink && disableShrinkStyles,\n grow && {\n flexGrow: grow === true ? 1 : grow,\n },\n horizontalAlign && (_k = {},\n _k[horizontal ? 'justifyContent' : 'alignItems'] = nameMap[horizontalAlign] || horizontalAlign,\n _k),\n verticalAlign && (_l = {},\n _l[horizontal ? 'alignItems' : 'justifyContent'] = nameMap[verticalAlign] || verticalAlign,\n _l),\n horizontal &&\n columnGap.value > 0 && (_m = {},\n // apply gap margin to every direct child except the first direct child if the direction is not reversed,\n // and the last direct one if it is\n _m[reversed ? \"\".concat(childSelector, \":not(:last-child)\") : \"\".concat(childSelector, \":not(:first-child)\")] = {\n marginLeft: \"\".concat(columnGap.value).concat(columnGap.unit),\n },\n _m),\n !horizontal &&\n rowGap.value > 0 && (_o = {},\n // apply gap margin to every direct child except the first direct child if the direction is not reversed,\n // and the last direct one if it is\n _o[reversed ? \"\".concat(childSelector, \":not(:last-child)\") : \"\".concat(childSelector, \":not(:first-child)\")] = {\n marginTop: \"\".concat(rowGap.value).concat(rowGap.unit),\n },\n _o),\n className,\n ],\n // TODO: this cast may be hiding some potential issues with styling and name\n // lookups and should be removed\n };\n};\n//# sourceMappingURL=Stack.styles.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport * as React from 'react';\nimport { withSlots, createComponent, getSlots } from '@fluentui/foundation-legacy';\nimport { css, getNativeProps, htmlElementProperties, warnDeprecations } from '../../Utilities';\nimport { styles, GlobalClassNames as StackGlobalClassNames } from './Stack.styles';\nimport { StackItem } from './StackItem/StackItem';\nvar StackView = function (props) {\n var _a = props.as, RootType = _a === void 0 ? 'div' : _a, _b = props.disableShrink, disableShrink = _b === void 0 ? false : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.doNotRenderFalsyValues, \n // eslint-disable-next-line deprecation/deprecation\n doNotRenderFalsyValues = _c === void 0 ? false : _c, _d = props.enableScopedSelectors, enableScopedSelectors = _d === void 0 ? false : _d, wrap = props.wrap, rest = __rest(props, [\"as\", \"disableShrink\", \"doNotRenderFalsyValues\", \"enableScopedSelectors\", \"wrap\"]);\n warnDeprecations('Stack', props, {\n gap: 'tokens.childrenGap',\n maxHeight: 'tokens.maxHeight',\n maxWidth: 'tokens.maxWidth',\n padding: 'tokens.padding',\n });\n var stackChildren = _processStackChildren(props.children, {\n disableShrink: disableShrink,\n enableScopedSelectors: enableScopedSelectors,\n doNotRenderFalsyValues: doNotRenderFalsyValues,\n });\n var nativeProps = getNativeProps(rest, htmlElementProperties);\n var Slots = getSlots(props, {\n root: RootType,\n inner: 'div',\n });\n if (wrap) {\n return (withSlots(Slots.root, __assign({}, nativeProps),\n withSlots(Slots.inner, null, stackChildren)));\n }\n return withSlots(Slots.root, __assign({}, nativeProps), stackChildren);\n};\nfunction _processStackChildren(children, _a) {\n var disableShrink = _a.disableShrink, enableScopedSelectors = _a.enableScopedSelectors, doNotRenderFalsyValues = _a.doNotRenderFalsyValues;\n var childrenArray = React.Children.toArray(children);\n childrenArray = React.Children.map(childrenArray, function (child) {\n if (!child) {\n return doNotRenderFalsyValues ? null : child;\n }\n // We need to allow children that aren't falsy values, but not valid elements since they could be\n // a string like <Stack>{'sample string'}</Stack>\n if (!React.isValidElement(child)) {\n return child;\n }\n if (child.type === React.Fragment) {\n return child.props.children\n ? _processStackChildren(child.props.children, { disableShrink: disableShrink, enableScopedSelectors: enableScopedSelectors, doNotRenderFalsyValues: doNotRenderFalsyValues })\n : null;\n }\n var childAsReactElement = child;\n var defaultItemProps = {};\n if (_isStackItem(child)) {\n defaultItemProps = { shrink: !disableShrink };\n }\n var childClassName = childAsReactElement.props.className;\n return React.cloneElement(childAsReactElement, __assign(__assign(__assign(__assign({}, defaultItemProps), childAsReactElement.props), (childClassName && { className: childClassName })), (enableScopedSelectors && { className: css(StackGlobalClassNames.child, childClassName) })));\n });\n return childrenArray;\n}\nfunction _isStackItem(item) {\n // In theory, we should be able to just check item.type === StackItem.\n // However, under certain unclear circumstances (see https://github.com/microsoft/fluentui/issues/10785),\n // the object identity is different despite the function implementation being the same.\n return (!!item &&\n typeof item === 'object' &&\n !!item.type &&\n // StackItem is generated by createComponent, so we need to check its displayName instead of name\n item.type.displayName === StackItem.displayName);\n}\nvar StackStatics = {\n Item: StackItem,\n};\nexport var Stack = createComponent(StackView, {\n displayName: 'Stack',\n styles: styles,\n statics: StackStatics,\n});\nexport default Stack;\n//# sourceMappingURL=Stack.js.map","import { __assign } from \"tslib\";\nimport { withSlots, createComponent, getSlots } from '@fluentui/foundation-legacy';\nimport { getNativeProps, htmlElementProperties } from '../../../Utilities';\nimport { StackItemStyles as styles } from './StackItem.styles';\nvar StackItemView = function (props) {\n var children = props.children;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n // eslint-disable-next-line eqeqeq\n if (children == null) {\n return null;\n }\n var Slots = getSlots(props, {\n root: 'div',\n });\n return withSlots(Slots.root, __assign({}, nativeProps), children);\n};\nexport var StackItem = createComponent(StackItemView, {\n displayName: 'StackItem',\n styles: styles,\n});\nexport default StackItem;\n//# sourceMappingURL=StackItem.js.map","import { getGlobalClassNames } from '../../../Styling';\nexport var GlobalClassNames = {\n root: 'ms-StackItem',\n};\nvar alignMap = {\n start: 'flex-start',\n end: 'flex-end',\n};\nexport var StackItemStyles = function (props, theme, tokens) {\n var grow = props.grow, shrink = props.shrink, disableShrink = props.disableShrink, align = props.align, verticalFill = props.verticalFill, order = props.order, className = props.className, _a = props.basis, basis = _a === void 0 ? 'auto' : _a;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n {\n flexBasis: basis,\n margin: tokens.margin,\n padding: tokens.padding,\n height: verticalFill ? '100%' : 'auto',\n width: 'auto',\n },\n grow && {\n flexGrow: grow === true ? 1 : grow,\n },\n (disableShrink || (!grow && !shrink)) && {\n flexShrink: 0,\n },\n shrink &&\n !disableShrink && {\n flexShrink: 1,\n },\n align && {\n alignSelf: alignMap[align] || align,\n },\n order && {\n order: order,\n },\n className,\n ],\n // TODO: this cast may be hiding some potential issues with styling and name\n // lookups and should be removed\n };\n};\n//# sourceMappingURL=StackItem.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef } from '../../Utilities';\nimport { hiddenContentStyle } from '../../Styling';\nimport { ScrollablePaneContext } from '../ScrollablePane/ScrollablePane.types';\nimport { StickyPositionType } from './Sticky.types';\nvar Sticky = /** @class */ (function (_super) {\n __extends(Sticky, _super);\n function Sticky(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._stickyContentTop = React.createRef();\n _this._stickyContentBottom = React.createRef();\n _this._nonStickyContent = React.createRef();\n _this._placeHolder = React.createRef();\n _this.syncScroll = function (container) {\n var nonStickyContent = _this.nonStickyContent;\n if (nonStickyContent && _this.props.isScrollSynced) {\n nonStickyContent.scrollLeft = container.scrollLeft;\n }\n };\n _this._getContext = function () { return _this.context; };\n _this._onScrollEvent = function (container, footerStickyContainer) {\n if (_this.root && _this.nonStickyContent) {\n var distanceFromTop = _this._getNonStickyDistanceFromTop(container);\n var isStickyTop = false;\n var isStickyBottom = false;\n if (_this.canStickyTop) {\n var distanceToStickTop = distanceFromTop - _this._getStickyDistanceFromTop();\n isStickyTop = distanceToStickTop < container.scrollTop;\n }\n // Can sticky bottom if the scrollablePane - total sticky footer height is smaller than the sticky's distance\n // from the top of the pane\n if (_this.canStickyBottom && container.clientHeight - footerStickyContainer.offsetHeight <= distanceFromTop) {\n isStickyBottom =\n distanceFromTop - Math.floor(container.scrollTop) >=\n _this._getStickyDistanceFromTopForFooter(container, footerStickyContainer);\n }\n if (document.activeElement &&\n _this.nonStickyContent.contains(document.activeElement) &&\n (_this.state.isStickyTop !== isStickyTop || _this.state.isStickyBottom !== isStickyBottom)) {\n _this._activeElement = document.activeElement;\n }\n else {\n _this._activeElement = undefined;\n }\n _this.setState({\n isStickyTop: _this.canStickyTop && isStickyTop,\n isStickyBottom: isStickyBottom,\n distanceFromTop: distanceFromTop,\n });\n }\n };\n _this._getStickyDistanceFromTop = function () {\n var distance = 0;\n if (_this.stickyContentTop) {\n distance = _this.stickyContentTop.offsetTop;\n }\n return distance;\n };\n _this._getStickyDistanceFromTopForFooter = function (container, footerStickyVisibleContainer) {\n var distance = 0;\n if (_this.stickyContentBottom) {\n distance =\n container.clientHeight - footerStickyVisibleContainer.offsetHeight + _this.stickyContentBottom.offsetTop;\n }\n return distance;\n };\n _this._getNonStickyDistanceFromTop = function (container) {\n var distance = 0;\n var currElem = _this.root;\n if (currElem) {\n while (currElem && currElem.offsetParent !== container) {\n distance += currElem.offsetTop;\n currElem = currElem.offsetParent;\n }\n if (currElem && currElem.offsetParent === container) {\n distance += currElem.offsetTop;\n }\n }\n return distance;\n };\n initializeComponentRef(_this);\n _this.state = {\n isStickyTop: false,\n isStickyBottom: false,\n distanceFromTop: undefined,\n };\n _this._activeElement = undefined;\n return _this;\n }\n Object.defineProperty(Sticky.prototype, \"root\", {\n get: function () {\n return this._root.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"placeholder\", {\n get: function () {\n return this._placeHolder.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"stickyContentTop\", {\n get: function () {\n return this._stickyContentTop.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"stickyContentBottom\", {\n get: function () {\n return this._stickyContentBottom.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"nonStickyContent\", {\n get: function () {\n return this._nonStickyContent.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"canStickyTop\", {\n get: function () {\n return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Header);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sticky.prototype, \"canStickyBottom\", {\n get: function () {\n return (this.props.stickyPosition === StickyPositionType.Both || this.props.stickyPosition === StickyPositionType.Footer);\n },\n enumerable: false,\n configurable: true\n });\n Sticky.prototype.componentDidMount = function () {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n scrollablePane.subscribe(this._onScrollEvent);\n scrollablePane.addSticky(this);\n };\n Sticky.prototype.componentWillUnmount = function () {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n scrollablePane.unsubscribe(this._onScrollEvent);\n scrollablePane.removeSticky(this);\n };\n Sticky.prototype.componentDidUpdate = function (prevProps, prevState) {\n var scrollablePane = this._getContext().scrollablePane;\n if (!scrollablePane) {\n return;\n }\n var _a = this.state, isStickyBottom = _a.isStickyBottom, isStickyTop = _a.isStickyTop, distanceFromTop = _a.distanceFromTop;\n var syncScroll = false;\n if (prevState.distanceFromTop !== distanceFromTop) {\n scrollablePane.sortSticky(this, true /*sortAgain*/);\n syncScroll = true;\n }\n if (prevState.isStickyTop !== isStickyTop || prevState.isStickyBottom !== isStickyBottom) {\n if (this._activeElement) {\n this._activeElement.focus();\n }\n scrollablePane.updateStickyRefHeights();\n syncScroll = true;\n }\n if (syncScroll) {\n // Sync Sticky scroll position with content container on each update\n scrollablePane.syncScrollSticky(this);\n }\n };\n Sticky.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n if (!this.context.scrollablePane) {\n return true;\n }\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom, distanceFromTop = _a.distanceFromTop;\n return (isStickyTop !== nextState.isStickyTop ||\n isStickyBottom !== nextState.isStickyBottom ||\n this.props.stickyPosition !== nextProps.stickyPosition ||\n this.props.children !== nextProps.children ||\n distanceFromTop !== nextState.distanceFromTop ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentTop) ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._stickyContentBottom) ||\n _isOffsetHeightDifferent(this._nonStickyContent, this._placeHolder));\n };\n Sticky.prototype.render = function () {\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n var _b = this.props, stickyClassName = _b.stickyClassName, children = _b.children;\n if (!this.context.scrollablePane) {\n return React.createElement(\"div\", null, this.props.children);\n }\n return (React.createElement(\"div\", { ref: this._root },\n this.canStickyTop && (React.createElement(\"div\", { ref: this._stickyContentTop, style: { pointerEvents: isStickyTop ? 'auto' : 'none' } },\n React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyTop) }))),\n this.canStickyBottom && (React.createElement(\"div\", { ref: this._stickyContentBottom, style: { pointerEvents: isStickyBottom ? 'auto' : 'none' } },\n React.createElement(\"div\", { style: this._getStickyPlaceholderHeight(isStickyBottom) }))),\n React.createElement(\"div\", { style: this._getNonStickyPlaceholderHeightAndWidth(), ref: this._placeHolder },\n (isStickyTop || isStickyBottom) && React.createElement(\"span\", { style: hiddenContentStyle }, children),\n React.createElement(\"div\", { ref: this._nonStickyContent, className: isStickyTop || isStickyBottom ? stickyClassName : undefined, style: this._getContentStyles(isStickyTop || isStickyBottom) }, children))));\n };\n Sticky.prototype.addSticky = function (stickyContent) {\n if (this.nonStickyContent) {\n stickyContent.appendChild(this.nonStickyContent);\n }\n };\n Sticky.prototype.resetSticky = function () {\n if (this.nonStickyContent && this.placeholder) {\n this.placeholder.appendChild(this.nonStickyContent);\n }\n };\n Sticky.prototype.setDistanceFromTop = function (container) {\n var distanceFromTop = this._getNonStickyDistanceFromTop(container);\n this.setState({ distanceFromTop: distanceFromTop });\n };\n Sticky.prototype._getContentStyles = function (isSticky) {\n return {\n backgroundColor: this.props.stickyBackgroundColor || this._getBackground(),\n overflow: isSticky ? 'hidden' : '',\n };\n };\n Sticky.prototype._getStickyPlaceholderHeight = function (isSticky) {\n var height = this.nonStickyContent ? this.nonStickyContent.offsetHeight : 0;\n return {\n visibility: isSticky ? 'hidden' : 'visible',\n height: isSticky ? 0 : height,\n };\n };\n Sticky.prototype._getNonStickyPlaceholderHeightAndWidth = function () {\n var _a = this.state, isStickyTop = _a.isStickyTop, isStickyBottom = _a.isStickyBottom;\n if (isStickyTop || isStickyBottom) {\n var height = 0;\n var width = 0;\n // Why is placeholder width needed?\n // ScrollablePane's content container is reponsible for providing scrollbars depending on content overflow.\n // - If the overflow is caused by content of sticky component when it is in non-sticky state, the container will\n // provide horizontal scrollbar.\n // - If the component becomes sticky, i.e., when state.isStickyTop || state.isStickyBottom becomes true,\n // its actual content is no longer inside the container, so the container will see no need for horizontal\n // scrollbar (assuming no other content is causing overflow). The complete content of sticky component will\n // not be viewable. So it is necessary to provide a placeholder of a certain width (height is already being set)\n // in the container, to get a horizontal scrollbar & be able to view the complete content of sticky component.\n if (this.nonStickyContent && this.nonStickyContent.firstElementChild) {\n height = this.nonStickyContent.offsetHeight;\n // What value should be substituted for placeholder width?\n // Assumptions:\n // 1. Content inside <Sticky> should always be wrapped in a single div.\n // <Sticky><div id={'firstElementChild'}>{intended_content}</div><Sticky/>\n // 2. -ve padding, margin, etc. are not be used.\n // 3. scrollWidth of a parent is greater than or equal to max of scrollWidths of its children, and same holds\n // for children.\n // placeholder width should be computed in the best possible way to prevent overscroll/underscroll.\n width =\n this.nonStickyContent.firstElementChild.scrollWidth +\n (this.nonStickyContent.firstElementChild.offsetWidth -\n this.nonStickyContent.firstElementChild.clientWidth);\n }\n return {\n height: height,\n width: width,\n };\n }\n else {\n return {};\n }\n };\n // Gets background of nearest parent element that has a declared background-color attribute\n Sticky.prototype._getBackground = function () {\n if (!this.root) {\n return undefined;\n }\n var curr = this.root;\n while (window.getComputedStyle(curr).getPropertyValue('background-color') === 'rgba(0, 0, 0, 0)' ||\n window.getComputedStyle(curr).getPropertyValue('background-color') === 'transparent') {\n if (curr.tagName === 'HTML') {\n // Fallback color if no element has a declared background-color attribute\n return undefined;\n }\n if (curr.parentElement) {\n curr = curr.parentElement;\n }\n }\n return window.getComputedStyle(curr).getPropertyValue('background-color');\n };\n Sticky.defaultProps = {\n stickyPosition: StickyPositionType.Both,\n isScrollSynced: true,\n };\n Sticky.contextType = ScrollablePaneContext;\n return Sticky;\n}(React.Component));\nexport { Sticky };\nfunction _isOffsetHeightDifferent(a, b) {\n return (a && b && a.current && b.current && a.current.offsetHeight !== b.current.offsetHeight);\n}\n//# sourceMappingURL=Sticky.js.map","export var StickyPositionType;\n(function (StickyPositionType) {\n StickyPositionType[StickyPositionType[\"Both\"] = 0] = \"Both\";\n StickyPositionType[StickyPositionType[\"Header\"] = 1] = \"Header\";\n StickyPositionType[StickyPositionType[\"Footer\"] = 2] = \"Footer\";\n})(StickyPositionType || (StickyPositionType = {}));\n//# sourceMappingURL=Sticky.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { toMatrix, classNamesFunction, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var ButtonGridBase = React.forwardRef(function (props, forwardedRef) {\n var id = useId(undefined, props.id);\n var items = props.items, columnCount = props.columnCount, onRenderItem = props.onRenderItem, isSemanticRadio = props.isSemanticRadio, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.ariaPosInSet, \n // eslint-disable-next-line deprecation/deprecation\n ariaPosInSet = _a === void 0 ? props.positionInSet : _a, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.ariaSetSize, \n // eslint-disable-next-line deprecation/deprecation\n ariaSetSize = _b === void 0 ? props.setSize : _b, styles = props.styles, doNotContainWithinFocusZone = props.doNotContainWithinFocusZone;\n var htmlProps = getNativeProps(props, htmlElementProperties, \n // avoid applying onBlur on the table if it's being used in the FocusZone\n doNotContainWithinFocusZone ? [] : ['onBlur']);\n var classNames = getClassNames(styles, { theme: props.theme });\n // Array to store the cells in the correct row index\n var rowsOfItems = toMatrix(items, columnCount);\n var content = (React.createElement(\"table\", __assign({ \"aria-posinset\": ariaPosInSet, \"aria-setsize\": ariaSetSize, id: id, role: isSemanticRadio ? 'radiogroup' : 'grid' }, htmlProps, { className: classNames.root }),\n React.createElement(\"tbody\", { role: isSemanticRadio ? 'presentation' : 'rowgroup' }, rowsOfItems.map(function (rows, rowIndex) {\n return (React.createElement(\"tr\", { role: isSemanticRadio ? 'presentation' : 'row', key: rowIndex }, rows.map(function (cell, cellIndex) {\n return (React.createElement(\"td\", { role: \"presentation\", key: cellIndex + '-cell', className: classNames.tableCell }, onRenderItem(cell, cellIndex)));\n })));\n }))));\n return doNotContainWithinFocusZone ? (content) : (React.createElement(FocusZone, { elementRef: forwardedRef, isCircularNavigation: props.shouldFocusCircularNavigate, className: classNames.focusedContainer, onBlur: props.onBlur }, content));\n});\n//# sourceMappingURL=ButtonGrid.base.js.map","import { styled } from '../../Utilities';\nimport { ButtonGridBase } from './ButtonGrid.base';\nimport { getStyles } from './ButtonGrid.styles';\nexport var ButtonGrid = styled(ButtonGridBase, getStyles);\nButtonGrid.displayName = 'ButtonGrid';\n//# sourceMappingURL=ButtonGrid.js.map","export var getStyles = function (props) {\n return {\n root: {\n padding: 2,\n outline: 'none',\n },\n tableCell: {\n padding: 0,\n },\n };\n};\n//# sourceMappingURL=ButtonGrid.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { css, getNativeProps, buttonProperties } from '../../Utilities';\nimport { CommandButton } from '../../Button';\nimport { useId } from '@fluentui/react-hooks';\nexport var ButtonGridCell = function (props) {\n var _a;\n var defaultId = useId('gridCell');\n var item = props.item, _b = props.id, id = _b === void 0 ? defaultId : _b, className = props.className, selected = props.selected, _c = props.disabled, disabled = _c === void 0 ? false : _c, onRenderItem = props.onRenderItem, cellDisabledStyle = props.cellDisabledStyle, cellIsSelectedStyle = props.cellIsSelectedStyle, index = props.index, label = props.label, getClassNames = props.getClassNames, onClick = props.onClick, onHover = props.onHover, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseEnter = props.onMouseEnter, onFocus = props.onFocus;\n var buttonProps = getNativeProps(props, buttonProperties);\n var handleClick = React.useCallback(function (event) {\n if (onClick && !disabled) {\n onClick(item, event);\n }\n }, [disabled, item, onClick]);\n var handleMouseEnter = React.useCallback(function (ev) {\n var didUpdateOnEnter = onMouseEnter && onMouseEnter(ev);\n if (!didUpdateOnEnter && onHover && !disabled) {\n onHover(item, ev);\n }\n }, [disabled, item, onHover, onMouseEnter]);\n var handleMouseMove = React.useCallback(function (ev) {\n var didUpdateOnMove = onMouseMove && onMouseMove(ev);\n if (!didUpdateOnMove && onHover && !disabled) {\n onHover(item, ev);\n }\n }, [disabled, item, onHover, onMouseMove]);\n var handleMouseLeave = React.useCallback(function (ev) {\n var didUpdateOnLeave = onMouseLeave && onMouseLeave(ev);\n if (!didUpdateOnLeave && onHover && !disabled) {\n onHover(undefined, ev);\n }\n }, [disabled, onHover, onMouseLeave]);\n var handleFocus = React.useCallback(function (event) {\n if (onFocus && !disabled) {\n onFocus(item, event);\n }\n }, [disabled, item, onFocus]);\n return (React.createElement(CommandButton, __assign({ id: id, \"data-index\": index, \"data-is-focusable\": true, \"aria-selected\": selected, ariaLabel: label, title: label }, buttonProps, { className: css(className, (_a = {},\n _a['' + cellIsSelectedStyle] = selected,\n _a['' + cellDisabledStyle] = disabled,\n _a)), onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, onFocus: handleFocus, getClassNames: getClassNames }), onRenderItem(item)));\n};\n//# sourceMappingURL=ButtonGridCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { mergeStyleSets } from '../../Styling';\nimport { classNamesFunction, memoizeFunction } from '../../Utilities';\nimport { getColorFromString } from '../../Color';\nimport { ButtonGridCell } from '../../utilities/ButtonGrid/ButtonGridCell';\nimport { getStyles as getActionButtonStyles } from '../Button/ActionButton/ActionButton.styles';\nvar getClassNames = classNamesFunction();\n/** Validate if the cell's color is white or not to apply whiteCell style */\nvar isWhiteCell = function (inputColor) {\n var currentColor = getColorFromString(inputColor);\n return (currentColor === null || currentColor === void 0 ? void 0 : currentColor.hex) === 'ffffff';\n};\nvar getColorPickerGridCellButtonClassNames = memoizeFunction(function (theme, className, variantClassName, iconClassName, menuIconClassName, disabled, checked, expanded, isSplit) {\n var styles = getActionButtonStyles(theme);\n return mergeStyleSets({\n root: [\n 'ms-Button',\n styles.root,\n variantClassName,\n className,\n checked && ['is-checked', styles.rootChecked],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !checked && {\n selectors: {\n ':hover': styles.rootHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n },\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n ],\n flexContainer: ['ms-Button-flexContainer', styles.flexContainer],\n });\n});\nexport var ColorPickerGridCellBase = function (props) {\n var item = props.item, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.idPrefix, \n // eslint-disable-next-line deprecation/deprecation\n idPrefix = _a === void 0 ? props.id : _a, isRadio = props.isRadio, _b = props.selected, selected = _b === void 0 ? false : _b, _c = props.disabled, disabled = _c === void 0 ? false : _c, styles = props.styles, _d = props.circle, circle = _d === void 0 ? true : _d, color = props.color, onClick = props.onClick, onHover = props.onHover, onFocus = props.onFocus, onMouseEnter = props.onMouseEnter, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onWheel = props.onWheel, onKeyDown = props.onKeyDown, height = props.height, width = props.width, borderWidth = props.borderWidth;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n disabled: disabled,\n selected: selected,\n circle: circle,\n isWhite: isWhiteCell(color),\n height: height,\n width: width,\n borderWidth: borderWidth,\n });\n // Render the core of a color cell\n var renderColorOption = function (colorOption) {\n var _a;\n var svgClassName = classNames.svg;\n // Build an SVG for the cell with the given shape and color properties\n // Include role=\"img\" and aria-label here for better virtual cursor accessibility,\n // and for a VoiceOver bug where it skips grid cells that lack inner content\n return (React.createElement(\"svg\", { className: svgClassName, role: \"img\", \"aria-label\": colorOption.label, viewBox: \"0 0 20 20\", fill: (_a = getColorFromString(colorOption.color)) === null || _a === void 0 ? void 0 : _a.str }, circle ? React.createElement(\"circle\", { cx: \"50%\", cy: \"50%\", r: \"50%\" }) : React.createElement(\"rect\", { width: \"100%\", height: \"100%\" })));\n };\n var onRenderItem = function (option) {\n var _a = props.onRenderColorCellContent, onRenderColorCellContent = _a === void 0 ? renderColorOption : _a;\n return onRenderColorCellContent(option, renderColorOption);\n };\n var cellSemantics = isRadio\n ? {\n role: 'radio',\n 'aria-checked': selected,\n selected: undefined,\n }\n : {\n role: 'gridcell',\n selected: selected,\n };\n return (React.createElement(ButtonGridCell, __assign({ item: item, id: \"\".concat(idPrefix, \"-\").concat(item.id, \"-\").concat(item.index), key: item.id, disabled: disabled }, cellSemantics, { \n // eslint-disable-next-line react/jsx-no-bind\n onRenderItem: onRenderItem, onClick: onClick, onHover: onHover, onFocus: onFocus, label: item.label, className: classNames.colorCell, getClassNames: getColorPickerGridCellButtonClassNames, index: item.index, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: onWheel, onKeyDown: onKeyDown })));\n};\n//# sourceMappingURL=ColorPickerGridCell.base.js.map","import { IsFocusVisibleClassName } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle } from '../../Styling';\n// Size breakpoint when the default border width changes from 2px to 4px.\nvar CELL_BORDER_BREAKPOINT = 24;\nvar LARGE_BORDER = 4;\nvar SMALL_BORDER = 2;\nvar DIVIDING_PADDING = 2;\nvar DEFAULT_CELL_SIZE = 20;\nvar cellHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n outlineColor: 'ButtonText',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var theme = props.theme, disabled = props.disabled, selected = props.selected, circle = props.circle, isWhite = props.isWhite, _f = props.height, height = _f === void 0 ? DEFAULT_CELL_SIZE : _f, _g = props.width, width = _g === void 0 ? DEFAULT_CELL_SIZE : _g, borderWidth = props.borderWidth;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n var buttonBorderHovered = palette.neutralLighter;\n var buttonBorderChecked = palette.neutralLight;\n var buttonBorderCheckedHovered = palette.neutralSecondary;\n var buttonBorderIsWhite = palette.neutralTertiary;\n // If user provided a value, use it. If not, then we decide depending on the 24px size breakpoint.\n var calculatedBorderWidth = borderWidth\n ? borderWidth\n : width < CELL_BORDER_BREAKPOINT\n ? SMALL_BORDER\n : LARGE_BORDER;\n return {\n // this is a button that wraps the color\n colorCell: [\n getFocusStyle(theme, { inset: -1, position: 'relative', highContrastStyle: cellHighContrastFocus }),\n {\n backgroundColor: semanticColors.bodyBackground,\n padding: 0,\n position: 'relative',\n boxSizing: 'border-box',\n display: 'inline-block',\n cursor: 'pointer',\n userSelect: 'none',\n borderRadius: 0,\n border: 'none',\n height: height,\n width: width,\n verticalAlign: 'top',\n },\n !circle && {\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus::after\")] = {\n // -1px so that we don't increase visually the size of the cell.\n outlineOffset: \"\".concat(calculatedBorderWidth - 1, \"px\"),\n },\n _a),\n },\n // In focus state for circle we want a round border which is not possible with outline.\n circle && {\n borderRadius: '50%',\n selectors: (_b = {},\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus::after\")] = {\n outline: 'none',\n borderColor: semanticColors.focusBorder,\n borderRadius: '50%',\n left: -calculatedBorderWidth,\n right: -calculatedBorderWidth,\n top: -calculatedBorderWidth,\n bottom: -calculatedBorderWidth,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n outline: \"1px solid ButtonText\",\n },\n _c),\n },\n _b),\n },\n selected && {\n padding: DIVIDING_PADDING,\n border: \"\".concat(calculatedBorderWidth, \"px solid \").concat(buttonBorderChecked),\n selectors: (_d = {},\n _d['&:hover::before'] = {\n content: '\"\"',\n height: height,\n width: width,\n position: 'absolute',\n top: -calculatedBorderWidth,\n left: -calculatedBorderWidth,\n borderRadius: circle ? '50%' : 'default',\n boxShadow: \"inset 0 0 0 1px \".concat(buttonBorderCheckedHovered),\n },\n _d),\n },\n !selected && {\n selectors: (_e = {},\n _e['&:hover, &:active, &:focus'] = {\n backgroundColor: semanticColors.bodyBackground,\n padding: DIVIDING_PADDING,\n border: \"\".concat(calculatedBorderWidth, \"px solid \").concat(buttonBorderHovered),\n },\n _e['&:focus'] = {\n borderColor: semanticColors.bodyBackground,\n padding: 0,\n selectors: {\n ':hover': {\n borderColor: theme.palette.neutralLight,\n padding: DIVIDING_PADDING,\n },\n },\n },\n _e),\n },\n disabled && {\n color: semanticColors.disabledBodyText,\n pointerEvents: 'none',\n opacity: 0.3,\n },\n isWhite &&\n !selected && {\n // fake a border for white\n backgroundColor: buttonBorderIsWhite,\n padding: 1,\n },\n ],\n // the <svg> that holds the color\n svg: [\n {\n width: '100%',\n height: '100%',\n },\n circle && {\n borderRadius: '50%',\n },\n ],\n };\n};\n//# sourceMappingURL=ColorPickerGridCell.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerGridCellBase } from './ColorPickerGridCell.base';\nimport { getStyles } from './ColorPickerGridCell.styles';\nexport var ColorPickerGridCell = styled(ColorPickerGridCellBase, getStyles, undefined, { scope: 'ColorPickerGridCell' }, true);\n//# sourceMappingURL=ColorPickerGridCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes } from '../../Utilities';\nimport { ButtonGrid } from '../../utilities/ButtonGrid/ButtonGrid';\nimport { ColorPickerGridCell } from './ColorPickerGridCell';\nimport { useId, useConst, useSetTimeout, useControllableValue, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'SwatchColorPicker';\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n mutuallyExclusive: { focusOnHover: 'onHover', selectedId: 'defaultSelectedId' },\n deprecations: { isControlled: \"selectedId' or 'defaultSelectedId\", onColorChanged: 'onChange' },\n });\n }\n}\nexport var SwatchColorPickerBase = React.forwardRef(function (props, ref) {\n var defaultId = useId('swatchColorPicker');\n var id = props.id || defaultId;\n var internalState = useConst({\n isNavigationIdle: true,\n cellFocused: false,\n navigationIdleTimeoutId: undefined,\n navigationIdleDelay: 250,\n });\n var _a = useSetTimeout(), setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout;\n useDebugWarnings(props);\n var colorCells = props.colorCells, _b = props.cellShape, cellShape = _b === void 0 ? 'circle' : _b, columnCount = props.columnCount, _c = props.shouldFocusCircularNavigate, shouldFocusCircularNavigate = _c === void 0 ? true : _c, className = props.className, _d = props.disabled, disabled = _d === void 0 ? false : _d, doNotContainWithinFocusZone = props.doNotContainWithinFocusZone, styles = props.styles, _e = props.cellMargin, cellMargin = _e === void 0 ? 10 : _e, defaultSelectedId = props.defaultSelectedId, focusOnHover = props.focusOnHover, mouseLeaveParentSelector = props.mouseLeaveParentSelector, onChange = props.onChange, \n // eslint-disable-next-line deprecation/deprecation\n onColorChanged = props.onColorChanged, onCellHovered = props.onCellHovered, onCellFocused = props.onCellFocused, getColorGridCellStyles = props.getColorGridCellStyles, cellHeight = props.cellHeight, cellWidth = props.cellWidth, cellBorderWidth = props.cellBorderWidth, onRenderColorCellContent = props.onRenderColorCellContent;\n /**\n * Add an index to each color cells. Memoizes this so that color cells do not re-render on every update.\n */\n var itemsWithIndex = React.useMemo(function () {\n return colorCells.map(function (item, index) {\n return __assign(__assign({}, item), { index: index });\n });\n }, [colorCells]);\n var mergedOnChange = React.useCallback(function (ev, newSelectedId) {\n var _a;\n // Call both new and old change handlers, and add the extra `color` parameter\n var newColor = (_a = colorCells.filter(function (c) { return c.id === newSelectedId; })[0]) === null || _a === void 0 ? void 0 : _a.color;\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, newSelectedId, newColor);\n onColorChanged === null || onColorChanged === void 0 ? void 0 : onColorChanged(newSelectedId, newColor);\n }, [onChange, onColorChanged, colorCells]);\n var _f = useControllableValue(props.selectedId, defaultSelectedId, mergedOnChange), selectedId = _f[0], setSelectedId = _f[1];\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n cellMargin: cellMargin,\n });\n var gridStyles = {\n root: classNames.root,\n tableCell: classNames.tableCell,\n focusedContainer: classNames.focusedContainer,\n };\n /**\n * If there is only one row of cells, they should use radio semantics,\n * multi-row swatch cells should use grid semantics.\n * There are two reasons for this:\n * 1. Radios are a more simple and understandable control, and a better fit for a single-dimensional picker.\n * 2. Multiple browsers use heuristics to strip table and grid roles from single-row tables with no column headers.\n */\n var isSemanticRadio = colorCells.length <= columnCount;\n /**\n * When the whole swatchColorPicker is blurred,\n * make sure to clear the pending focused stated\n */\n var onSwatchColorPickerBlur = React.useCallback(function (event) {\n if (onCellFocused) {\n internalState.cellFocused = false;\n onCellFocused(undefined, undefined, event);\n }\n }, [internalState, onCellFocused]);\n /**\n * Callback passed to the GridCell that will manage triggering the onCellHovered callback for mouseEnter\n */\n var onMouseEnter = React.useCallback(function (ev) {\n if (!focusOnHover) {\n return !internalState.isNavigationIdle || !!disabled;\n }\n if (internalState.isNavigationIdle && !disabled) {\n ev.currentTarget.focus();\n }\n return true;\n }, [focusOnHover, internalState, disabled]);\n /**\n * Callback passed to the GridCell that will manage Hover/Focus updates\n */\n var onMouseMove = React.useCallback(function (ev) {\n if (!focusOnHover) {\n return !internalState.isNavigationIdle || !!disabled;\n }\n var targetElement = ev.currentTarget;\n // If navigation is idle and the targetElement is the focused element bail out\n if (internalState.isNavigationIdle && !(document && targetElement === document.activeElement)) {\n targetElement.focus();\n }\n return true;\n }, [focusOnHover, internalState, disabled]);\n /**\n * Callback passed to the GridCell that will manage Hover/Focus updates\n */\n var onMouseLeave = React.useCallback(function (ev) {\n var parentSelector = mouseLeaveParentSelector;\n if (!focusOnHover || !parentSelector || !internalState.isNavigationIdle || disabled) {\n return;\n }\n // Get the elements that math the given selector\n var elements = document.querySelectorAll(parentSelector);\n // iterate over the elements return to make sure it is a parent of the target and focus it\n for (var index = 0; index < elements.length; index += 1) {\n if (elements[index].contains(ev.currentTarget)) {\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (elements[index].setActive) {\n try {\n elements[index].setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n elements[index].focus();\n }\n break;\n }\n }\n }, [disabled, focusOnHover, internalState, mouseLeaveParentSelector]);\n /**\n * Callback passed to the GridCell class that will trigger the onCellHovered callback of the SwatchColorPicker\n * NOTE: This will not be triggered if shouldFocusOnHover === true\n */\n var onGridCellHovered = React.useCallback(function (item, event) {\n if (onCellHovered) {\n item ? onCellHovered(item.id, item.color, event) : onCellHovered(undefined, undefined, event);\n }\n }, [onCellHovered]);\n /**\n * Callback passed to the GridCell class that will trigger the onCellFocus callback of the SwatchColorPicker\n */\n var onGridCellFocused = React.useCallback(function (item, event) {\n if (onCellFocused) {\n if (item) {\n internalState.cellFocused = true;\n return onCellFocused(item.id, item.color, event);\n }\n else {\n internalState.cellFocused = false;\n return onCellFocused(undefined, undefined, event);\n }\n }\n }, [internalState, onCellFocused]);\n /**\n * Handle the click on a cell\n */\n var onCellClick = React.useCallback(function (item, event) {\n if (disabled || item.disabled) {\n return;\n }\n if (item.id !== selectedId) {\n if (onCellFocused && internalState.cellFocused) {\n internalState.cellFocused = false;\n onCellFocused(undefined, undefined, event);\n }\n setSelectedId(item.id, event);\n }\n }, [disabled, internalState, onCellFocused, selectedId, setSelectedId]);\n /**\n * Sets a timeout so we won't process any mouse \"hover\" events\n * while navigating (via mouseWheel or arrowKeys)\n */\n var setNavigationTimeout = React.useCallback(function () {\n if (!internalState.isNavigationIdle && internalState.navigationIdleTimeoutId !== undefined) {\n clearTimeout(internalState.navigationIdleTimeoutId);\n internalState.navigationIdleTimeoutId = undefined;\n }\n else {\n internalState.isNavigationIdle = false;\n }\n internalState.navigationIdleTimeoutId = setTimeout(function () {\n internalState.isNavigationIdle = true;\n }, internalState.navigationIdleDelay);\n }, [clearTimeout, internalState, setTimeout]);\n /**\n * Callback used to handle KeyCode events\n */\n var onKeyDown = React.useCallback(function (ev) {\n if (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.up ||\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.down ||\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.left ||\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.right) {\n setNavigationTimeout();\n }\n }, [setNavigationTimeout]);\n /**\n * Render a color cell\n * @param item - The item to render\n * @returns - Element representing the item\n */\n var renderOption = function (item) {\n return (React.createElement(ColorPickerGridCell, { item: item, idPrefix: id, color: item.color, styles: getColorGridCellStyles, disabled: disabled || item.disabled, onClick: onCellClick, onHover: onGridCellHovered, onFocus: onGridCellFocused, selected: selectedId === item.id, circle: cellShape === 'circle', label: item.label, onMouseEnter: onMouseEnter, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onWheel: setNavigationTimeout, onKeyDown: onKeyDown, onRenderColorCellContent: onRenderColorCellContent, height: cellHeight, width: cellWidth, borderWidth: cellBorderWidth, isRadio: isSemanticRadio }));\n };\n if (colorCells.length < 1 || columnCount < 1) {\n return null;\n }\n var onRenderItem = function (item, index) {\n var _a = props.onRenderColorCell, onRenderColorCell = _a === void 0 ? renderOption : _a;\n return onRenderColorCell(item, renderOption);\n };\n return (React.createElement(ButtonGrid, __assign({}, props, { ref: ref, id: id, items: itemsWithIndex, columnCount: columnCount, isSemanticRadio: isSemanticRadio, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderItem: onRenderItem, shouldFocusCircularNavigate: shouldFocusCircularNavigate, doNotContainWithinFocusZone: doNotContainWithinFocusZone, onBlur: onSwatchColorPickerBlur, theme: props.theme, styles: gridStyles })));\n});\nSwatchColorPickerBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=SwatchColorPicker.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n focusedContainer: 'ms-swatchColorPickerBodyContainer',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme, cellMargin = props.cellMargin;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: {\n margin: '8px 0',\n borderCollapse: 'collapse',\n },\n tableCell: {\n padding: cellMargin / 2,\n },\n focusedContainer: [\n classNames.focusedContainer,\n {\n clear: 'both',\n display: 'block',\n minWidth: '180px',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=SwatchColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { SwatchColorPickerBase } from './SwatchColorPicker.base';\nimport { getStyles } from './SwatchColorPicker.styles';\nexport var SwatchColorPicker = styled(SwatchColorPickerBase, getStyles, undefined, { scope: 'SwatchColorPicker' });\n//# sourceMappingURL=SwatchColorPicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, KeyCodes } from '../../Utilities';\nimport { PrimaryButton, DefaultButton, IconButton } from '../../Button';\nimport { Stack } from '../../Stack';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { Image } from '../../Image';\nimport { useOnEvent, useMergedRefs, useId } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, rootElementRef) {\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () { var _a; return (_a = rootElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n }); }, [rootElementRef]);\n};\nexport var TeachingBubbleContentBase = React.forwardRef(function (props, forwardedRef) {\n var _a, _b;\n var rootElementRef = React.useRef(null);\n var documentRef = useDocument();\n var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n var ariaDescribedById = useId('teaching-bubble-content-');\n var ariaLabelledById = useId('teaching-bubble-title-');\n var ariaDescribedBy = (_a = props.ariaDescribedBy) !== null && _a !== void 0 ? _a : ariaDescribedById;\n var ariaLabelledBy = (_b = props.ariaLabelledBy) !== null && _b !== void 0 ? _b : ariaLabelledById;\n var illustrationImage = props.illustrationImage, primaryButtonProps = props.primaryButtonProps, secondaryButtonProps = props.secondaryButtonProps, headline = props.headline, hasCondensedHeadline = props.hasCondensedHeadline, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.hasCloseButton, \n // eslint-disable-next-line deprecation/deprecation\n hasCloseButton = _c === void 0 ? props.hasCloseIcon : _c, onDismiss = props.onDismiss, closeButtonAriaLabel = props.closeButtonAriaLabel, hasSmallHeadline = props.hasSmallHeadline, isWide = props.isWide, styles = props.styles, theme = props.theme, customFooterContent = props.footerContent, focusTrapZoneProps = props.focusTrapZoneProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n hasCondensedHeadline: hasCondensedHeadline,\n hasSmallHeadline: hasSmallHeadline,\n hasCloseButton: hasCloseButton,\n hasHeadline: !!headline,\n isWide: isWide,\n primaryButtonClassName: primaryButtonProps ? primaryButtonProps.className : undefined,\n secondaryButtonClassName: secondaryButtonProps ? secondaryButtonProps.className : undefined,\n });\n var onKeyDown = React.useCallback(function (ev) {\n if (onDismiss) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.escape) {\n onDismiss(ev);\n }\n }\n }, [onDismiss]);\n useOnEvent(documentRef, 'keydown', onKeyDown);\n var imageContent;\n var headerContent;\n var bodyContent;\n var footerContent;\n var closeButton;\n if (illustrationImage && illustrationImage.src) {\n imageContent = (React.createElement(\"div\", { className: classNames.imageContent },\n React.createElement(Image, __assign({}, illustrationImage))));\n }\n if (headline) {\n var HeaderWrapperAs = typeof headline === 'string' ? 'p' : 'div';\n headerContent = (React.createElement(\"div\", { className: classNames.header },\n React.createElement(HeaderWrapperAs, { role: \"heading\", \"aria-level\": 3, className: classNames.headline, id: ariaLabelledBy }, headline)));\n }\n if (props.children) {\n var BodyContentWrapperAs = typeof props.children === 'string' ? 'p' : 'div';\n bodyContent = (React.createElement(\"div\", { className: classNames.body },\n React.createElement(BodyContentWrapperAs, { className: classNames.subText, id: ariaDescribedBy }, props.children)));\n }\n if (primaryButtonProps || secondaryButtonProps || customFooterContent) {\n footerContent = (React.createElement(Stack, { className: classNames.footer, horizontal: true, horizontalAlign: customFooterContent ? 'space-between' : 'end' },\n React.createElement(Stack.Item, { align: \"center\" }, React.createElement(\"span\", null, customFooterContent)),\n React.createElement(Stack.Item, null,\n primaryButtonProps && React.createElement(PrimaryButton, __assign({}, primaryButtonProps, { className: classNames.primaryButton })),\n secondaryButtonProps && React.createElement(DefaultButton, __assign({}, secondaryButtonProps, { className: classNames.secondaryButton })))));\n }\n if (hasCloseButton) {\n closeButton = (React.createElement(IconButton, { className: classNames.closeButton, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss }));\n }\n useComponentRef(props.componentRef, rootElementRef);\n return (React.createElement(\"div\", { className: classNames.content, ref: mergedRootRef, role: 'dialog', tabIndex: -1, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, \"data-is-focusable\": true },\n imageContent,\n React.createElement(FocusTrapZone, __assign({ isClickableOutsideFocusTrap: true }, focusTrapZoneProps),\n React.createElement(\"div\", { className: classNames.bodyContent },\n headerContent,\n bodyContent,\n footerContent,\n closeButton))));\n});\n//# sourceMappingURL=TeachingBubbleContent.base.js.map","import { __spreadArray } from \"tslib\";\nimport { AnimationVariables, FontWeights, getFocusStyle, getGlobalClassNames, keyframes } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar globalClassNames = {\n root: 'ms-TeachingBubble',\n body: 'ms-TeachingBubble-body',\n bodyContent: 'ms-TeachingBubble-bodycontent',\n closeButton: 'ms-TeachingBubble-closebutton',\n content: 'ms-TeachingBubble-content',\n footer: 'ms-TeachingBubble-footer',\n header: 'ms-TeachingBubble-header',\n headerIsCondensed: 'ms-TeachingBubble-header--condensed',\n headerIsSmall: 'ms-TeachingBubble-header--small',\n headerIsLarge: 'ms-TeachingBubble-header--large',\n headline: 'ms-TeachingBubble-headline',\n image: 'ms-TeachingBubble-image',\n primaryButton: 'ms-TeachingBubble-primaryButton',\n secondaryButton: 'ms-TeachingBubble-secondaryButton',\n subText: 'ms-TeachingBubble-subText',\n // TODO: Button global class name usage should be converted to a styles function once\n // Button supports JS styling, which means these button names can be removed.\n button: 'ms-Button',\n buttonLabel: 'ms-Button-label',\n};\nvar opacityFadeIn = memoizeFunction(function () {\n return keyframes({\n '0%': {\n opacity: 0,\n animationTimingFunction: AnimationVariables.easeFunction1,\n transform: 'scale3d(.90,.90,.90)',\n },\n '100%': {\n opacity: 1,\n transform: 'scale3d(1,1,1)',\n },\n });\n});\nvar rootStyle = function (isWide, calloutProps) {\n var _a = calloutProps || {}, calloutWidth = _a.calloutWidth, calloutMaxWidth = _a.calloutMaxWidth;\n return [\n {\n display: 'block',\n maxWidth: 364,\n border: 0,\n outline: 'transparent',\n width: calloutWidth || 'calc(100% + 1px)',\n animationName: \"\".concat(opacityFadeIn()),\n animationDuration: '300ms',\n animationTimingFunction: 'linear',\n animationFillMode: 'both',\n },\n isWide && {\n maxWidth: calloutMaxWidth || 456,\n },\n ];\n};\nvar headerStyle = function (classNames, hasCondensedHeadline, hasSmallHeadline) {\n if (hasCondensedHeadline) {\n return [\n classNames.headerIsCondensed,\n {\n marginBottom: 14,\n },\n ];\n }\n return [\n hasSmallHeadline && classNames.headerIsSmall,\n !hasSmallHeadline && classNames.headerIsLarge,\n {\n selectors: {\n ':not(:last-child)': {\n marginBottom: 14,\n },\n },\n },\n ];\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var hasCondensedHeadline = props.hasCondensedHeadline, hasSmallHeadline = props.hasSmallHeadline, hasCloseButton = props.hasCloseButton, hasHeadline = props.hasHeadline, isWide = props.isWide, primaryButtonClassName = props.primaryButtonClassName, secondaryButtonClassName = props.secondaryButtonClassName, theme = props.theme, _d = props.calloutProps, calloutProps = _d === void 0 ? { className: undefined, theme: theme } : _d;\n var hasLargeHeadline = !hasCondensedHeadline && !hasSmallHeadline;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var hideDefaultFocusRing = getFocusStyle(theme, {\n outlineColor: 'transparent',\n borderColor: 'transparent',\n });\n return {\n root: [classNames.root, fonts.medium, calloutProps.className],\n body: [\n classNames.body,\n hasCloseButton && !hasHeadline && { marginRight: 24 },\n {\n selectors: {\n ':not(:last-child)': {\n marginBottom: 20,\n },\n },\n },\n ],\n bodyContent: [\n classNames.bodyContent,\n {\n padding: '20px 24px 20px 24px',\n },\n ],\n closeButton: [\n classNames.closeButton,\n {\n position: 'absolute',\n right: 0,\n top: 0,\n margin: '15px 15px 0 0',\n borderRadius: 0,\n color: palette.white,\n fontSize: fonts.small.fontSize,\n selectors: {\n ':hover': {\n background: palette.themeDarkAlt,\n color: palette.white,\n },\n ':active': {\n background: palette.themeDark,\n color: palette.white,\n },\n ':focus': {\n border: \"1px solid \".concat(semanticColors.variantBorder),\n },\n },\n },\n ],\n content: __spreadArray(__spreadArray([\n classNames.content\n ], rootStyle(isWide), true), [\n isWide && {\n display: 'flex',\n },\n ], false),\n footer: [\n classNames.footer,\n {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n color: palette.white,\n selectors: (_a = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _a[\".\".concat(classNames.button, \":not(:first-child)\")] = {\n marginLeft: 10,\n },\n _a),\n },\n ],\n header: __spreadArray(__spreadArray([\n classNames.header\n ], headerStyle(classNames, hasCondensedHeadline, hasSmallHeadline), true), [\n hasCloseButton && { marginRight: 24 },\n (hasCondensedHeadline || hasSmallHeadline) && [\n fonts.medium,\n {\n fontWeight: FontWeights.semibold,\n },\n ],\n ], false),\n headline: [\n classNames.headline,\n {\n margin: 0,\n color: palette.white,\n fontWeight: FontWeights.semibold,\n overflowWrap: 'break-word',\n },\n hasLargeHeadline && [\n {\n fontSize: fonts.xLarge.fontSize,\n },\n ],\n ],\n imageContent: [\n classNames.header,\n classNames.image,\n isWide && {\n display: 'flex',\n alignItems: 'center',\n maxWidth: 154,\n },\n ],\n primaryButton: [\n classNames.primaryButton,\n primaryButtonClassName,\n hideDefaultFocusRing,\n {\n backgroundColor: palette.white,\n borderColor: palette.white,\n color: palette.themePrimary,\n whiteSpace: 'nowrap',\n selectors: (_b = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _b[\".\".concat(classNames.buttonLabel)] = fonts.medium,\n _b[':hover'] = {\n backgroundColor: palette.themeLighter,\n borderColor: palette.themeLighter,\n color: palette.themeDark,\n },\n _b[':focus'] = {\n backgroundColor: palette.themeLighter,\n border: \"1px solid \".concat(palette.black),\n color: palette.themeDark,\n outline: \"1px solid \".concat(palette.white),\n outlineOffset: '-2px',\n },\n _b[':active'] = {\n backgroundColor: palette.white,\n borderColor: palette.white,\n color: palette.themePrimary,\n },\n _b),\n },\n ],\n secondaryButton: [\n classNames.secondaryButton,\n secondaryButtonClassName,\n hideDefaultFocusRing,\n {\n backgroundColor: palette.themePrimary,\n borderColor: palette.white,\n whiteSpace: 'nowrap',\n selectors: (_c = {},\n // TODO: global class name usage should be converted to a styles function once Button supports JS styling\n _c[\".\".concat(classNames.buttonLabel)] = [\n fonts.medium,\n {\n color: palette.white,\n },\n ],\n _c[':hover'] = {\n backgroundColor: palette.themeDarkAlt,\n borderColor: palette.white,\n },\n _c[':focus'] = {\n backgroundColor: palette.themeDark,\n border: \"1px solid \".concat(palette.black),\n outline: \"1px solid \".concat(palette.white),\n outlineOffset: '-2px',\n },\n _c[':active'] = {\n backgroundColor: palette.themePrimary,\n borderColor: palette.white,\n },\n _c),\n },\n ],\n subText: [\n classNames.subText,\n {\n margin: 0,\n fontSize: fonts.medium.fontSize,\n color: palette.white,\n fontWeight: FontWeights.regular,\n },\n ],\n subComponentStyles: {\n callout: {\n root: __spreadArray(__spreadArray([], rootStyle(isWide, calloutProps), true), [fonts.medium], false),\n beak: [\n {\n background: palette.themePrimary,\n },\n ],\n calloutMain: [\n {\n background: palette.themePrimary,\n },\n ],\n },\n },\n };\n};\n//# sourceMappingURL=TeachingBubble.styles.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleContentBase } from './TeachingBubbleContent.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubbleContent = styled(TeachingBubbleContentBase, getStyles, undefined, { scope: 'TeachingBubbleContent' });\n//# sourceMappingURL=TeachingBubbleContent.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nimport { TeachingBubbleContent } from './TeachingBubbleContent';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'TeachingBubble';\nvar defaultCalloutProps = {\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n directionalHint: DirectionalHint.rightCenter,\n};\nvar getClassNames = classNamesFunction();\nvar useComponentRef = function (componentRef, rootElementRef) {\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () { var _a; return (_a = rootElementRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },\n }); }, [rootElementRef]);\n};\nexport var TeachingBubbleBase = React.forwardRef(function (props, forwardedRef) {\n var rootElementRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(rootElementRef, forwardedRef);\n var setCalloutProps = props.calloutProps, \n // eslint-disable-next-line deprecation/deprecation\n targetElement = props.targetElement, onDismiss = props.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.hasCloseButton, \n // eslint-disable-next-line deprecation/deprecation\n hasCloseButton = _a === void 0 ? props.hasCloseIcon : _a, isWide = props.isWide, styles = props.styles, theme = props.theme, target = props.target;\n var calloutProps = React.useMemo(function () { return (__assign(__assign(__assign({}, defaultCalloutProps), setCalloutProps), { theme: theme })); }, [setCalloutProps, theme]);\n var stylesProps = {\n theme: theme,\n isWide: isWide,\n calloutProps: calloutProps,\n hasCloseButton: hasCloseButton,\n };\n var classNames = getClassNames(styles, stylesProps);\n var calloutStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n useComponentRef(props.componentRef, rootElementRef);\n return (React.createElement(Callout, __assign({ target: target || targetElement, onDismiss: onDismiss }, calloutProps, { className: classNames.root, styles: calloutStyles, hideOverflow: true }),\n React.createElement(\"div\", { ref: mergedRootRef },\n React.createElement(TeachingBubbleContent, __assign({}, props)))));\n});\nTeachingBubbleBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=TeachingBubble.base.js.map","import { styled } from '../../Utilities';\nimport { TeachingBubbleBase } from './TeachingBubble.base';\nimport { getStyles } from './TeachingBubble.styles';\nexport var TeachingBubble = styled(TeachingBubbleBase, getStyles, undefined, { scope: 'TeachingBubble' });\n//# sourceMappingURL=TeachingBubble.js.map","export var DEFAULT_MASK_FORMAT_CHARS = {\n '9': /[0-9]/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n/**\n * Takes in the mask string and the formatCharacters and returns an array of MaskValues\n * Example:\n * mask = 'Phone Number: (999) - 9999'\n * return = [\n * { value: undefined, displayIndex: 16, format: /[0-9]/ },\n * { value: undefined, displayIndex: 17, format: /[0-9]/ },\n * { value: undefined, displayIndex: 18, format: /[0-9]/ },\n * { value: undefined, displayIndex: 22, format: /[0-9]/ },\n * ]\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param formatChars An object defining how certain characters in the mask should accept input.\n */\nexport function parseMask(mask, formatChars) {\n if (formatChars === void 0) { formatChars = DEFAULT_MASK_FORMAT_CHARS; }\n if (!mask) {\n return [];\n }\n var maskCharData = [];\n // Count the escape characters in the mask string.\n var escapedChars = 0;\n for (var i = 0; i + escapedChars < mask.length; i++) {\n var maskChar = mask.charAt(i + escapedChars);\n if (maskChar === '\\\\') {\n escapedChars++;\n }\n else {\n // Check if the maskChar is a format character.\n var maskFormat = formatChars[maskChar];\n if (maskFormat) {\n maskCharData.push({\n /**\n * Do not add escapedChars to the displayIndex.\n * The index refers to a position in the mask's displayValue.\n * Since the backslashes don't appear in the displayValue,\n * we do not add them to the charData displayIndex.\n */\n displayIndex: i,\n format: maskFormat,\n });\n }\n }\n }\n return maskCharData;\n}\n/**\n * Takes in the mask string, an array of MaskValues, and the maskCharacter\n * returns the mask string formatted with the input values and maskCharacter.\n * If the maskChar is undefined, the maskDisplay is truncated to the last filled format character.\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * maskCharData = '12345'\n * maskChar = '_'\n * return = 'Phone Number: (123) 45_ - ___'\n *\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * value = '12345'\n * maskChar = undefined\n * return = 'Phone Number: (123) 45'\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param maskCharData The input values to insert into the mask string for displaying.\n * @param maskChar? A character to display in place of unfilled mask format characters.\n */\nexport function getMaskDisplay(mask, maskCharData, maskChar) {\n var maskDisplay = mask;\n if (!maskDisplay) {\n return '';\n }\n // Remove all backslashes\n maskDisplay = maskDisplay.replace(/\\\\/g, '');\n // lastDisplayIndex is is used to truncate the string if necessary.\n var lastDisplayIndex = 0;\n if (maskCharData.length > 0) {\n lastDisplayIndex = maskCharData[0].displayIndex - 1;\n }\n /**\n * For each input value, replace the character in the maskDisplay with the value.\n * If there is no value set for the format character, use the maskChar.\n */\n for (var _i = 0, maskCharData_1 = maskCharData; _i < maskCharData_1.length; _i++) {\n var charData = maskCharData_1[_i];\n var nextChar = ' ';\n if (charData.value) {\n nextChar = charData.value;\n if (charData.displayIndex > lastDisplayIndex) {\n lastDisplayIndex = charData.displayIndex;\n }\n }\n else {\n if (maskChar) {\n nextChar = maskChar;\n }\n }\n // Insert the character into the maskdisplay at its corresponding index\n maskDisplay = maskDisplay.slice(0, charData.displayIndex) + nextChar + maskDisplay.slice(charData.displayIndex + 1);\n }\n // Cut off all mask characters after the last filled format value\n if (!maskChar) {\n maskDisplay = maskDisplay.slice(0, lastDisplayIndex + 1);\n }\n return maskDisplay;\n}\n/**\n * Get the next format index right of or at a specified index.\n * If no index exists, returns the rightmost index.\n * @param maskCharData\n * @param index\n */\nexport function getRightFormatIndex(maskCharData, index) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[maskCharData.length - 1].displayIndex;\n}\n/**\n * Get the next format index left of a specified index.\n * If no index exists, returns the leftmost index.\n * @param maskCharData\n * @param index\n */\nexport function getLeftFormatIndex(maskCharData, index) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[0].displayIndex;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n */\nexport function clearRange(maskCharData, selectionStart, selectionCount) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n if (maskCharData[i].displayIndex >= selectionStart + selectionCount) {\n break;\n }\n maskCharData[i].value = undefined;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character at or after a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearNext(maskCharData, selectionStart) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character before a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearPrev(maskCharData, selectionStart) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * Modifies the maskCharData inplace with the passed string and returns the display index of the\n * next format character after the inserted string.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n * @return The displayIndex of the next format character\n */\nexport function insertString(maskCharData, selectionStart, newString) {\n var stringIndex = 0;\n var nextIndex = 0;\n var isStringInserted = false;\n // Iterate through _maskCharData finding values with a displayIndex after the specified range start\n for (var i = 0; i < maskCharData.length && stringIndex < newString.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n isStringInserted = true;\n nextIndex = maskCharData[i].displayIndex;\n // Find the next character in the newString that matches the format\n while (stringIndex < newString.length) {\n // If the character matches the format regexp, set the maskCharData to the new character\n if (maskCharData[i].format.test(newString.charAt(stringIndex))) {\n maskCharData[i].value = newString.charAt(stringIndex++);\n // Set the nextIndex to the display index of the next mask format character.\n if (i + 1 < maskCharData.length) {\n nextIndex = maskCharData[i + 1].displayIndex;\n }\n else {\n nextIndex++;\n }\n break;\n }\n stringIndex++;\n }\n }\n }\n return isStringInserted ? nextIndex : selectionStart;\n}\n//# sourceMappingURL=inputMask.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { TextField } from '../TextField';\nimport { KeyCodes } from '../../../Utilities';\nimport { clearNext, clearPrev, clearRange, DEFAULT_MASK_FORMAT_CHARS, getLeftFormatIndex, getMaskDisplay, getRightFormatIndex, insertString, parseMask, } from './inputMask';\nimport { useConst, useIsomorphicLayoutEffect } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'MaskedTextField';\nvar useComponentRef = function (componentRef, internalState, textField) {\n React.useImperativeHandle(componentRef, function () { return ({\n get value() {\n var value = '';\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n return undefined;\n }\n value += internalState.maskCharData[i].value;\n }\n return value;\n },\n get selectionStart() {\n return textField.current && textField.current.selectionStart !== null ? textField.current.selectionStart : -1;\n },\n get selectionEnd() {\n return textField.current && textField.current.selectionEnd ? textField.current.selectionEnd : -1;\n },\n focus: function () {\n textField.current && textField.current.focus();\n },\n blur: function () {\n textField.current && textField.current.blur();\n },\n select: function () {\n textField.current && textField.current.select();\n },\n setSelectionStart: function (value) {\n textField.current && textField.current.setSelectionStart(value);\n },\n setSelectionEnd: function (value) {\n textField.current && textField.current.setSelectionEnd(value);\n },\n setSelectionRange: function (start, end) {\n textField.current && textField.current.setSelectionRange(start, end);\n },\n }); }, [internalState, textField]);\n};\nexport var DEFAULT_MASK_CHAR = '_';\nexport var MaskedTextField = React.forwardRef(function (props, ref) {\n var textField = React.useRef(null);\n var componentRef = props.componentRef, onFocus = props.onFocus, onBlur = props.onBlur, onMouseDown = props.onMouseDown, onMouseUp = props.onMouseUp, onChange = props.onChange, onPaste = props.onPaste, onKeyDown = props.onKeyDown, mask = props.mask, _a = props.maskChar, maskChar = _a === void 0 ? DEFAULT_MASK_CHAR : _a, _b = props.maskFormat, maskFormat = _b === void 0 ? DEFAULT_MASK_FORMAT_CHARS : _b, value = props.value;\n var internalState = useConst(function () { return ({\n maskCharData: parseMask(mask, maskFormat),\n isFocused: false,\n moveCursorOnMouseUp: false,\n changeSelectionData: null,\n }); });\n /** The index into the rendered value of the first unfilled format character */\n var _c = React.useState(), maskCursorPosition = _c[0], setMaskCursorPosition = _c[1];\n /**\n * The mask string formatted with the input value.\n * This is what is displayed inside the TextField\n * @example\n * `Phone Number: 12_ - 4___`\n */\n var _d = React.useState(function () {\n return getMaskDisplay(mask, internalState.maskCharData, maskChar);\n }), displayValue = _d[0], setDisplayValue = _d[1];\n var setValue = React.useCallback(function (newValue) {\n var valueIndex = 0;\n var charDataIndex = 0;\n while (valueIndex < newValue.length && charDataIndex < internalState.maskCharData.length) {\n // Test if the next character in the new value fits the next format character\n var testVal = newValue[valueIndex];\n if (internalState.maskCharData[charDataIndex].format.test(testVal)) {\n internalState.maskCharData[charDataIndex].value = testVal;\n charDataIndex++;\n }\n valueIndex++;\n }\n }, [internalState]);\n var handleFocus = React.useCallback(function (ev) {\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);\n internalState.isFocused = true;\n // Move the cursor position to the leftmost unfilled position\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n break;\n }\n }\n }, [internalState, onFocus]);\n var handleBlur = React.useCallback(function (ev) {\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(ev);\n internalState.isFocused = false;\n internalState.moveCursorOnMouseUp = true;\n }, [internalState, onBlur]);\n var handleMouseDown = React.useCallback(function (ev) {\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev);\n if (!internalState.isFocused) {\n internalState.moveCursorOnMouseUp = true;\n }\n }, [internalState, onMouseDown]);\n var handleMouseUp = React.useCallback(function (ev) {\n onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev);\n // Move the cursor on mouseUp after focusing the textField\n if (internalState.moveCursorOnMouseUp) {\n internalState.moveCursorOnMouseUp = false;\n // Move the cursor position to the rightmost unfilled position\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n break;\n }\n }\n }\n }, [internalState, onMouseUp]);\n var handleInputChange = React.useCallback(function (ev, inputValue) {\n if (internalState.changeSelectionData === null && textField.current) {\n internalState.changeSelectionData = {\n changeType: 'default',\n selectionStart: textField.current.selectionStart !== null ? textField.current.selectionStart : -1,\n selectionEnd: textField.current.selectionEnd !== null ? textField.current.selectionEnd : -1,\n };\n }\n if (!internalState.changeSelectionData) {\n return;\n }\n // The initial value of cursorPos does not matter\n var cursorPos = 0;\n var _a = internalState.changeSelectionData, changeType = _a.changeType, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n if (changeType === 'textPasted') {\n var charsSelected = selectionEnd - selectionStart;\n var charCount = inputValue.length + charsSelected - displayValue.length;\n var startPos = selectionStart;\n // eslint-disable-next-line deprecation/deprecation\n var pastedString = inputValue.substr(startPos, charCount);\n // Clear any selected characters\n if (charsSelected) {\n internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charsSelected);\n }\n cursorPos = insertString(internalState.maskCharData, startPos, pastedString);\n }\n else if (changeType === 'delete' || changeType === 'backspace') {\n // isDel is true If the characters are removed LTR, otherwise RTL\n var isDel = changeType === 'delete';\n var charCount = selectionEnd - selectionStart;\n if (charCount) {\n // charCount is > 0 if range was deleted\n internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charCount);\n cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n }\n else {\n // If charCount === 0, there was no selection and a single character was deleted\n if (isDel) {\n internalState.maskCharData = clearNext(internalState.maskCharData, selectionStart);\n cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n }\n else {\n internalState.maskCharData = clearPrev(internalState.maskCharData, selectionStart);\n cursorPos = getLeftFormatIndex(internalState.maskCharData, selectionStart);\n }\n }\n }\n else if (inputValue.length > displayValue.length) {\n // This case is if the user added characters\n var charCount = inputValue.length - displayValue.length;\n var startPos = selectionEnd - charCount;\n // eslint-disable-next-line deprecation/deprecation\n var enteredString = inputValue.substr(startPos, charCount);\n cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n }\n else if (inputValue.length <= displayValue.length) {\n /**\n * This case is reached only if the user has selected a block of 1 or more\n * characters and input a character replacing the characters they've selected.\n */\n var charCount = 1;\n var selectCount = displayValue.length + charCount - inputValue.length;\n var startPos = selectionEnd - charCount;\n // eslint-disable-next-line deprecation/deprecation\n var enteredString = inputValue.substr(startPos, charCount);\n // Clear the selected range\n internalState.maskCharData = clearRange(internalState.maskCharData, startPos, selectCount);\n // Insert the printed character\n cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n }\n internalState.changeSelectionData = null;\n var newValue = getMaskDisplay(mask, internalState.maskCharData, maskChar);\n setDisplayValue(newValue);\n setMaskCursorPosition(cursorPos);\n // Perform onChange after input has been processed. Return value is expected to be the displayed text\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, newValue);\n }, [displayValue.length, internalState, mask, maskChar, onChange]);\n var handleKeyDown = React.useCallback(function (ev) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(ev);\n internalState.changeSelectionData = null;\n if (textField.current && textField.current.value) {\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode, ctrlKey = ev.ctrlKey, metaKey = ev.metaKey;\n // Ignore ctrl and meta keydown\n if (ctrlKey || metaKey) {\n return;\n }\n // On backspace or delete, store the selection and the keyCode\n if (keyCode === KeyCodes.backspace || keyCode === KeyCodes.del) {\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n // Check if backspace or delete press is valid.\n if (!(keyCode === KeyCodes.backspace && selectionEnd && selectionEnd > 0) &&\n !(keyCode === KeyCodes.del && selectionStart !== null && selectionStart < textField.current.value.length)) {\n return;\n }\n internalState.changeSelectionData = {\n changeType: keyCode === KeyCodes.backspace ? 'backspace' : 'delete',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n }\n }\n }, [internalState, onKeyDown]);\n var handlePaste = React.useCallback(function (ev) {\n onPaste === null || onPaste === void 0 ? void 0 : onPaste(ev);\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n // Store the paste selection range\n internalState.changeSelectionData = {\n changeType: 'textPasted',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n }, [internalState, onPaste]);\n // Updates the display value if mask or value props change.\n React.useEffect(function () {\n internalState.maskCharData = parseMask(mask, maskFormat);\n value !== undefined && setValue(value);\n setDisplayValue(getMaskDisplay(mask, internalState.maskCharData, maskChar));\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only update when mask or value changes.\n }, [mask, value]);\n // Run before browser paint to avoid flickering from selection reset.\n useIsomorphicLayoutEffect(function () {\n // Move the cursor to position before paint.\n if (maskCursorPosition !== undefined && textField.current) {\n textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n }\n }, [maskCursorPosition]);\n // Run after browser paint.\n React.useEffect(function () {\n // Move the cursor to the start of the mask format after values update.\n if (internalState.isFocused && maskCursorPosition !== undefined && textField.current) {\n textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n }\n });\n useComponentRef(componentRef, internalState, textField);\n return (React.createElement(TextField, __assign({}, props, { elementRef: ref, onFocus: handleFocus, onBlur: handleBlur, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onChange: handleInputChange, onKeyDown: handleKeyDown, onPaste: handlePaste, value: displayValue || '', componentRef: textField })));\n});\nMaskedTextField.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MaskedTextField.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { Async, classNamesFunction, DelayedRender, getId, getNativeProps, getWindow, initializeComponentRef, inputProperties, isControlled, isIE11, textAreaProperties, warn, warnControlledUsage, warnMutuallyExclusive, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STATE_VALUE = '';\nvar COMPONENT_NAME = 'TextField';\nvar REVEAL_ICON_NAME = 'RedEye';\nvar HIDE_ICON_NAME = 'Hide';\nvar TextFieldBase = /** @class */ (function (_super) {\n __extends(TextFieldBase, _super);\n function TextFieldBase(props) {\n var _this = _super.call(this, props) || this;\n _this._textElement = React.createRef();\n _this._onFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this.setState({ isFocused: true }, function () {\n if (_this.props.validateOnFocusIn) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n _this.setState({ isFocused: false }, function () {\n if (_this.props.validateOnFocusOut) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required;\n // IProcessedStyleSet definition requires casting for what Label expects as its styles prop\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n if (label) {\n return (React.createElement(Label, { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));\n }\n return null;\n };\n _this._onRenderDescription = function (props) {\n if (props.description) {\n return React.createElement(\"span\", { className: _this._classNames.description }, props.description);\n }\n return null;\n };\n _this._onRevealButtonClick = function (event) {\n _this.setState(function (prevState) { return ({ isRevealingPassword: !prevState.isRevealingPassword }); });\n };\n _this._onInputChange = function (event) {\n // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,\n // which have *probably* been fixed now:\n // - https://github.com/microsoft/fluentui/issues/744 (likely fixed)\n // - https://github.com/microsoft/fluentui/issues/824 (confirmed fixed)\n var _a, _b;\n // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for\n // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.\n var element = event.target;\n var value = element.value;\n // Ignore this event if any of the following are true:\n // - the value is undefined (in case one of the IE bugs comes back)\n // - it's a duplicate event (important since onInputChange is called twice per actual user event)\n // - it's the same as the previous value\n var previousValue = _getValue(_this.props, _this.state) || '';\n if (value === undefined || value === _this._lastChangeValue || value === previousValue) {\n _this._lastChangeValue = undefined;\n return;\n }\n _this._lastChangeValue = value;\n (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, event, value);\n if (!_this._isControlled) {\n // ONLY if this is an uncontrolled component, update the displayed value.\n // (Controlled components must update the `value` prop from `onChange`.)\n _this.setState({ uncontrolledValue: value });\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n errorMessage: 'onGetErrorMessage',\n });\n }\n _this._fallbackId = getId(COMPONENT_NAME);\n _this._descriptionId = getId(COMPONENT_NAME + 'Description');\n _this._labelId = getId(COMPONENT_NAME + 'Label');\n _this._prefixId = getId(COMPONENT_NAME + 'Prefix');\n _this._suffixId = getId(COMPONENT_NAME + 'Suffix');\n _this._warnControlledUsage();\n var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;\n if (typeof defaultValue === 'number') {\n // This isn't allowed per the props, but happens anyway.\n defaultValue = String(defaultValue);\n }\n _this.state = {\n uncontrolledValue: _this._isControlled ? undefined : defaultValue,\n isFocused: false,\n errorMessage: '',\n };\n _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);\n _this._lastValidation = 0;\n return _this;\n }\n Object.defineProperty(TextFieldBase.prototype, \"value\", {\n /**\n * Gets the current value of the text field.\n */\n get: function () {\n return _getValue(this.props, this.state);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype.componentDidMount = function () {\n this._adjustInputHeight();\n if (this.props.validateOnLoad) {\n this._validate(this.value);\n }\n };\n TextFieldBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {\n return {\n selection: [this.selectionStart, this.selectionEnd],\n };\n };\n TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {\n var props = this.props;\n var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;\n var start = selection[0], end = selection[1];\n if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {\n // The text field has just changed between single- and multi-line, so we need to reset focus\n // and selection/cursor.\n this.focus();\n if (start !== null && end !== null && start >= 0 && end >= 0) {\n this.setSelectionRange(start, end);\n }\n }\n if (prevProps.value !== props.value) {\n // Only if the value in props changed, reset the record of the last value seen by a\n // change/input event (don't do this if the value in state changed, since at least in tests\n // the state update may happen before the second event in a series)\n this._lastChangeValue = undefined;\n }\n var prevValue = _getValue(prevProps, prevState);\n var value = this.value;\n if (prevValue !== value) {\n // Handle controlled/uncontrolled warnings and status\n this._warnControlledUsage(prevProps);\n // Clear error message if needed\n // TODO: is there any way to do this without an extra render?\n if (this.state.errorMessage && !props.errorMessage) {\n this.setState({ errorMessage: '' });\n }\n // Adjust height if needed based on new value\n this._adjustInputHeight();\n // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.\n // This seems a bit odd and hard to integrate with the new approach.\n // (Starting to think we should just put the validation logic in a separate wrapper component...?)\n if (_shouldValidateAllChanges(props)) {\n this._delayedValidate(value);\n }\n }\n };\n TextFieldBase.prototype.render = function () {\n var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, invalid = _a.invalid, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, canRevealPassword = _a.canRevealPassword, revealPasswordAriaLabel = _a.revealPasswordAriaLabel, type = _a.type, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;\n var _f = this.state, isFocused = _f.isFocused, isRevealingPassword = _f.isRevealingPassword;\n var errorMessage = this._errorMessage;\n var isInvalid = typeof invalid === 'boolean' ? invalid : !!errorMessage;\n var hasRevealButton = !!canRevealPassword && type === 'password' && _browserNeedsRevealButton();\n var classNames = (this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n focused: isFocused,\n required: required,\n multiline: multiline,\n hasLabel: !!label,\n hasErrorMessage: isInvalid,\n borderless: borderless,\n resizable: resizable,\n hasIcon: !!iconProps,\n underlined: underlined,\n inputClassName: inputClassName,\n autoAdjustHeight: autoAdjustHeight,\n hasRevealButton: hasRevealButton,\n }));\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", { ref: this.props.elementRef, className: classNames.root },\n React.createElement(\"div\", { className: classNames.wrapper },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", { className: classNames.fieldGroup },\n (prefix !== undefined || this.props.onRenderPrefix) && (React.createElement(\"div\", { className: classNames.prefix, id: this._prefixId }, onRenderPrefix(this.props, this._onRenderPrefix))),\n multiline ? this._renderTextArea() : this._renderInput(),\n iconProps && React.createElement(Icon, __assign({ className: classNames.icon }, iconProps)),\n hasRevealButton && (\n // Explicitly set type=\"button\" since the default button type within a form is \"submit\"\n React.createElement(\"button\", { \"aria-label\": revealPasswordAriaLabel, className: classNames.revealButton, onClick: this._onRevealButtonClick, \"aria-pressed\": !!isRevealingPassword, type: \"button\" },\n React.createElement(\"span\", { className: classNames.revealSpan },\n React.createElement(Icon, { className: classNames.revealIcon, iconName: isRevealingPassword ? HIDE_ICON_NAME : REVEAL_ICON_NAME })))),\n (suffix !== undefined || this.props.onRenderSuffix) && (React.createElement(\"div\", { className: classNames.suffix, id: this._suffixId }, onRenderSuffix(this.props, this._onRenderSuffix))))),\n this._isDescriptionAvailable && (React.createElement(\"span\", { id: this._descriptionId },\n onRenderDescription(this.props, this._onRenderDescription),\n errorMessage && (React.createElement(\"div\", { role: \"alert\" },\n React.createElement(DelayedRender, null, this._renderErrorMessage())))))));\n };\n /**\n * Sets focus on the text field\n */\n TextFieldBase.prototype.focus = function () {\n if (this._textElement.current) {\n this._textElement.current.focus();\n }\n };\n /**\n * Blurs the text field.\n */\n TextFieldBase.prototype.blur = function () {\n if (this._textElement.current) {\n this._textElement.current.blur();\n }\n };\n /**\n * Selects the text field\n */\n TextFieldBase.prototype.select = function () {\n if (this._textElement.current) {\n this._textElement.current.select();\n }\n };\n /**\n * Sets the selection start of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionStart = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionStart = value;\n }\n };\n /**\n * Sets the selection end of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionEnd = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionEnd = value;\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"selectionStart\", {\n /**\n * Gets the selection start of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"selectionEnd\", {\n /**\n * Gets the selection end of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start - Index of the start of the selection.\n * @param end - Index of the end of the selection.\n */\n TextFieldBase.prototype.setSelectionRange = function (start, end) {\n if (this._textElement.current) {\n this._textElement.current.setSelectionRange(start, end);\n }\n };\n TextFieldBase.prototype._warnControlledUsage = function (prevProps) {\n // Show warnings if props are being used in an invalid way\n warnControlledUsage({\n componentId: this._id,\n componentName: COMPONENT_NAME,\n props: this.props,\n oldProps: prevProps,\n valueProp: 'value',\n defaultValueProp: 'defaultValue',\n onChangeProp: 'onChange',\n readOnlyProp: 'readOnly',\n });\n if (this.props.value === null && !this._hasWarnedNullValue) {\n this._hasWarnedNullValue = true;\n warn(\"Warning: 'value' prop on '\".concat(COMPONENT_NAME, \"' should not be null. Consider using an \") +\n 'empty string to clear the component or undefined to indicate an uncontrolled component.');\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"_id\", {\n /** Returns `props.id` if available, or a fallback if not. */\n get: function () {\n return this.props.id || this._fallbackId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"_isControlled\", {\n get: function () {\n return isControlled(this.props, 'value');\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._onRenderPrefix = function (props) {\n var prefix = props.prefix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, prefix);\n };\n TextFieldBase.prototype._onRenderSuffix = function (props) {\n var suffix = props.suffix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, suffix);\n };\n Object.defineProperty(TextFieldBase.prototype, \"_errorMessage\", {\n /**\n * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.\n *\n * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.\n * - If we have done the validation and there is validation error, errorMessage is the validation error message.\n */\n get: function () {\n var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;\n return errorMessage || '';\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Renders error message based on the type of the message.\n *\n * - If error message is string, it will render using the built in styles.\n * - If error message is an element, user has full control over how it's rendered.\n */\n TextFieldBase.prototype._renderErrorMessage = function () {\n var errorMessage = this._errorMessage;\n return errorMessage ? (typeof errorMessage === 'string' ? (React.createElement(\"p\", { className: this._classNames.errorMessage },\n React.createElement(\"span\", { \"data-automation-id\": \"error-message\" }, errorMessage))) : (React.createElement(\"div\", { className: this._classNames.errorMessage, \"data-automation-id\": \"error-message\" }, errorMessage))) : null;\n };\n Object.defineProperty(TextFieldBase.prototype, \"_isDescriptionAvailable\", {\n /**\n * If a custom description render function is supplied then treat description as always available.\n * Otherwise defer to the presence of description or error message text.\n */\n get: function () {\n var props = this.props;\n return !!(props.onRenderDescription || props.description || this._errorMessage);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._renderTextArea = function () {\n var _a = this.props.invalid, invalid = _a === void 0 ? !!this._errorMessage : _a;\n var textAreaProps = getNativeProps(this.props, textAreaProperties, ['defaultValue']);\n var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);\n return (React.createElement(\"textarea\", __assign({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], \"aria-invalid\": invalid, \"aria-label\": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));\n };\n TextFieldBase.prototype._renderInput = function () {\n var _a = this.props, ariaLabel = _a.ariaLabel, _b = _a.invalid, invalid = _b === void 0 ? !!this._errorMessage : _b, onRenderPrefix = _a.onRenderPrefix, onRenderSuffix = _a.onRenderSuffix, prefix = _a.prefix, suffix = _a.suffix, _c = _a.type, type = _c === void 0 ? 'text' : _c, label = _a.label;\n // build aria-labelledby list from label, prefix, and suffix\n var labelIds = [];\n label && labelIds.push(this._labelId);\n (prefix !== undefined || onRenderPrefix) && labelIds.push(this._prefixId);\n (suffix !== undefined || onRenderSuffix) && labelIds.push(this._suffixId);\n var inputProps = __assign(__assign({ type: this.state.isRevealingPassword ? 'text' : type, id: this._id }, getNativeProps(this.props, inputProperties, ['defaultValue', 'type'])), { 'aria-labelledby': this.props['aria-labelledby'] || (labelIds.length > 0 ? labelIds.join(' ') : undefined), ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, 'aria-label': ariaLabel, 'aria-describedby': this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], 'aria-invalid': invalid, onFocus: this._onFocus, onBlur: this._onBlur });\n var defaultRender = function (updatedInputProps) {\n return React.createElement(\"input\", __assign({}, updatedInputProps));\n };\n var onRenderInput = this.props.onRenderInput || defaultRender;\n return onRenderInput(inputProps, defaultRender);\n };\n TextFieldBase.prototype._validate = function (value) {\n var _this = this;\n // In case _validate is called again while validation promise is executing\n if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {\n return;\n }\n this._latestValidateValue = value;\n var onGetErrorMessage = this.props.onGetErrorMessage;\n var result = onGetErrorMessage && onGetErrorMessage(value || '');\n if (result !== undefined) {\n if (typeof result === 'string' || !('then' in result)) {\n this.setState({ errorMessage: result });\n this._notifyAfterValidate(value, result);\n }\n else {\n var currentValidation_1 = ++this._lastValidation;\n result.then(function (errorMessage) {\n if (currentValidation_1 === _this._lastValidation) {\n _this.setState({ errorMessage: errorMessage });\n }\n _this._notifyAfterValidate(value, errorMessage);\n });\n }\n }\n else {\n this._notifyAfterValidate(value, '');\n }\n };\n TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {\n if (value === this.value && this.props.onNotifyValidationResult) {\n this.props.onNotifyValidationResult(errorMessage, value);\n }\n };\n TextFieldBase.prototype._adjustInputHeight = function () {\n if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {\n var textField = this._textElement.current;\n textField.style.height = '';\n textField.style.height = textField.scrollHeight + 'px';\n }\n };\n TextFieldBase.defaultProps = {\n resizable: true,\n deferredValidationTime: 200,\n validateOnLoad: true,\n };\n return TextFieldBase;\n}(React.Component));\nexport { TextFieldBase };\n/** Get the value from the given state and props (converting from number to string if needed) */\nfunction _getValue(props, state) {\n var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;\n if (typeof value === 'number') {\n // not allowed per typings, but happens anyway\n return String(value);\n }\n return value;\n}\n/**\n * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.\n * Otherwise, validation should run on every change.\n */\nfunction _shouldValidateAllChanges(props) {\n return !(props.validateOnFocusIn || props.validateOnFocusOut);\n}\n// Only calculate this once across all TextFields, since will stay the same\nvar __browserNeedsRevealButton;\nfunction _browserNeedsRevealButton() {\n if (typeof __browserNeedsRevealButton !== 'boolean') {\n var win = getWindow();\n if (win === null || win === void 0 ? void 0 : win.navigator) {\n // Edge, Chromium Edge\n var isEdge = /Edg/.test(win.navigator.userAgent || '');\n __browserNeedsRevealButton = !(isIE11() || isEdge);\n }\n else {\n __browserNeedsRevealButton = true;\n }\n }\n return __browserNeedsRevealButton;\n}\n//# sourceMappingURL=TextField.base.js.map","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n // React's built-in <input> considers a prop to be provided if its value is non-null/undefined.\n // Mirror that behavior here (rather than checking for just undefined).\n return props[valueProp] !== undefined && props[valueProp] !== null;\n}\n//# sourceMappingURL=controlled.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, getFocusStyle, getGlobalClassNames, getInputFocusStyle, HighContrastSelector, normalize, getPlaceholderStyles, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar globalClassNames = {\n root: 'ms-TextField',\n description: 'ms-TextField-description',\n errorMessage: 'ms-TextField-errorMessage',\n field: 'ms-TextField-field',\n fieldGroup: 'ms-TextField-fieldGroup',\n prefix: 'ms-TextField-prefix',\n suffix: 'ms-TextField-suffix',\n wrapper: 'ms-TextField-wrapper',\n revealButton: 'ms-TextField-reveal',\n multiline: 'ms-TextField--multiline',\n borderless: 'ms-TextField--borderless',\n underlined: 'ms-TextField--underlined',\n unresizable: 'ms-TextField--unresizable',\n required: 'is-required',\n disabled: 'is-disabled',\n active: 'is-active',\n};\nfunction getLabelStyles(props) {\n var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n return function () {\n var _a;\n return ({\n root: [\n underlined &&\n disabled && {\n color: palette.neutralTertiary,\n },\n underlined && {\n fontSize: fonts.medium.fontSize,\n marginRight: 8,\n paddingLeft: 12,\n paddingRight: 0,\n lineHeight: '22px',\n height: 32,\n },\n underlined &&\n focused && {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n height: 31, // -1px to prevent jumpiness in HC with the increased border-width to 2px\n },\n _a),\n },\n ],\n });\n };\n}\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight, hasRevealButton = props.hasRevealButton;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var fieldPrefixSuffix = {\n // Suffix/Prefix are not editable so the disabled slot perfectly fits.\n background: semanticColors.disabledBackground,\n color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n lineHeight: 1,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _a),\n };\n // placeholder style constants\n var placeholderStyles = [\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n required && classNames.required,\n disabled && classNames.disabled,\n focused && classNames.active,\n multiline && classNames.multiline,\n borderless && classNames.borderless,\n underlined && classNames.underlined,\n normalize,\n {\n position: 'relative',\n },\n className,\n ],\n wrapper: [\n classNames.wrapper,\n underlined && [\n {\n display: 'flex',\n borderBottom: \"1px solid \".concat(!hasErrorMessage ? semanticColors.inputBorder : semanticColors.errorText),\n width: '100%',\n },\n disabled && {\n borderBottomColor: semanticColors.disabledBackground,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n !disabled && {\n selectors: {\n ':hover': {\n borderBottomColor: !hasErrorMessage ? semanticColors.inputBorderHovered : semanticColors.errorText,\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ borderBottomColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n focused && [\n {\n position: 'relative',\n },\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, 0, 'borderBottom'),\n ],\n ],\n ],\n fieldGroup: [\n classNames.fieldGroup,\n normalize,\n {\n border: \"1px solid \".concat(semanticColors.inputBorder),\n borderRadius: effects.roundedCorner2,\n background: semanticColors.inputBackground,\n cursor: 'text',\n height: 32,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n },\n multiline && {\n minHeight: '60px',\n height: 'auto',\n display: 'flex',\n },\n !focused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n focused &&\n !underlined &&\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, effects.roundedCorner2),\n disabled && {\n borderColor: semanticColors.disabledBackground,\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _g),\n cursor: 'default',\n },\n borderless && {\n border: 'none',\n },\n borderless &&\n focused && {\n border: 'none',\n selectors: {\n ':after': {\n border: 'none',\n },\n },\n },\n underlined && {\n flex: '1 1 0px',\n border: 'none',\n textAlign: 'left',\n },\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasErrorMessage &&\n !underlined && {\n borderColor: semanticColors.errorText,\n selectors: {\n '&:hover': {\n borderColor: semanticColors.errorText,\n },\n },\n },\n !hasLabel &&\n required && {\n selectors: (_h = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _h[HighContrastSelector] = {\n selectors: {\n ':before': {\n color: 'WindowText',\n right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n },\n },\n },\n _h),\n },\n ],\n field: [\n fonts.medium,\n classNames.field,\n normalize,\n {\n borderRadius: 0,\n border: 'none',\n background: 'none',\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n padding: '0 8px',\n width: '100%',\n minWidth: 0,\n textOverflow: 'ellipsis',\n outline: 0,\n selectors: (_j = {\n '&:active, &:focus, &:hover': { outline: 0 },\n '::-ms-clear': {\n display: 'none',\n }\n },\n _j[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _j),\n },\n getPlaceholderStyles(placeholderStyles),\n multiline &&\n !resizable && [\n classNames.unresizable,\n {\n resize: 'none',\n },\n ],\n multiline && {\n minHeight: 'inherit',\n lineHeight: 17,\n flexGrow: 1,\n paddingTop: 6,\n paddingBottom: 6,\n overflow: 'auto',\n width: '100%',\n },\n multiline &&\n autoAdjustHeight && {\n overflow: 'hidden',\n },\n hasIcon &&\n !hasRevealButton && {\n paddingRight: 24,\n },\n multiline &&\n hasIcon && {\n paddingRight: 40,\n },\n disabled && [\n {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n borderColor: semanticColors.disabledBackground,\n },\n getPlaceholderStyles(disabledPlaceholderStyles),\n ],\n underlined && {\n textAlign: 'left',\n },\n focused &&\n !borderless && {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n paddingLeft: 11,\n paddingRight: 11,\n },\n _k),\n },\n focused &&\n multiline &&\n !borderless && {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n paddingTop: 4, // take into consideration the 2px increased border-width (not when borderless).\n },\n _l),\n },\n inputClassName,\n ],\n icon: [\n multiline && {\n paddingRight: 24,\n alignItems: 'flex-end',\n },\n {\n pointerEvents: 'none',\n position: 'absolute',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n description: [\n classNames.description,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.xSmall.fontSize,\n },\n ],\n errorMessage: [\n classNames.errorMessage,\n AnimationClassNames.slideDownIn20,\n fonts.small,\n {\n color: semanticColors.errorText,\n margin: 0,\n paddingTop: 5,\n display: 'flex',\n alignItems: 'center',\n },\n ],\n prefix: [classNames.prefix, fieldPrefixSuffix],\n suffix: [classNames.suffix, fieldPrefixSuffix],\n revealButton: [\n classNames.revealButton,\n 'ms-Button',\n 'ms-Button--icon',\n getFocusStyle(theme, { inset: 1 }),\n {\n height: 30,\n width: 32,\n border: 'none',\n padding: '0px 4px',\n backgroundColor: 'transparent',\n color: semanticColors.link,\n selectors: {\n ':hover': {\n outline: 0,\n color: semanticColors.primaryButtonBackgroundHovered,\n backgroundColor: semanticColors.buttonBackgroundHovered,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _m),\n },\n ':focus': { outline: 0 },\n },\n },\n hasIcon && {\n marginRight: 28,\n },\n ],\n revealSpan: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n revealIcon: {\n margin: '0px 4px',\n pointerEvents: 'none',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n subComponentStyles: {\n label: getLabelStyles(props),\n },\n };\n}\n//# sourceMappingURL=TextField.styles.js.map","import { styled } from '../../Utilities';\nimport { TextFieldBase } from './TextField.base';\nimport { getStyles } from './TextField.styles';\nexport var TextField = styled(TextFieldBase, getStyles, undefined, {\n scope: 'TextField',\n});\n//# sourceMappingURL=TextField.js.map","import { createComponent } from '@fluentui/foundation-legacy';\nimport { TextView } from './Text.view';\nimport { TextStyles as styles } from './Text.styles';\nexport var Text = createComponent(TextView, {\n displayName: 'Text',\n styles: styles,\n});\nexport default Text;\n//# sourceMappingURL=Text.js.map","import { __assign, __rest } from \"tslib\";\n/** @jsxRuntime classic */\n/** @jsx withSlots */\nimport { withSlots, getSlots } from '@fluentui/foundation-legacy';\nimport { getNativeProps, htmlElementProperties } from '../../Utilities';\nexport var TextView = function (props) {\n // eslint-disable-next-line eqeqeq\n if (props.children == null) {\n return null;\n }\n var block = props.block, className = props.className, _a = props.as, RootType = _a === void 0 ? 'span' : _a, variant = props.variant, nowrap = props.nowrap, rest = __rest(props, [\"block\", \"className\", \"as\", \"variant\", \"nowrap\"]);\n var Slots = getSlots(props, {\n root: RootType,\n });\n return withSlots(Slots.root, __assign({}, getNativeProps(rest, htmlElementProperties)));\n};\n//# sourceMappingURL=Text.view.js.map","export var TextStyles = function (props, theme) {\n var as = props.as, className = props.className, block = props.block, nowrap = props.nowrap, variant = props.variant;\n var fonts = theme.fonts, semanticColors = theme.semanticColors;\n var variantObject = fonts[variant || 'medium'];\n return {\n root: [\n variantObject,\n {\n color: variantObject.color || semanticColors.bodyText,\n display: block ? (as === 'td' ? 'table-cell' : 'block') : 'inline',\n mozOsxFontSmoothing: variantObject.MozOsxFontSmoothing,\n webkitFontSmoothing: variantObject.WebkitFontSmoothing,\n },\n nowrap && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Text.styles.js.map","import { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of minutes.\n * @param date - The origin date\n * @param minutes - The number of minutes to offset. 'minutes' can be negative.\n * @returns A new Date object offset from the origin date by the given number of minutes\n */\nexport var addMinutes = function (date, minutes) {\n var result = new Date(date.getTime());\n result.setTime(result.getTime() + minutes * TimeConstants.MinutesInOneHour * TimeConstants.MillisecondsIn1Sec);\n return result;\n};\n/**\n * Rounds the date's minute up to the next available increment. For example, if `date` has time 1:21\n * and `increments` is 5, the resulting time will be 1:25.\n * @param date - Date to ceil minutes\n * @param increments - Time increments\n * @returns Date with ceiled minute\n */\nexport var ceilMinuteToIncrement = function (date, increments) {\n var result = new Date(date.getTime());\n var minute = result.getMinutes();\n if (TimeConstants.MinutesInOneHour % increments) {\n result.setMinutes(0);\n }\n else {\n var times = TimeConstants.MinutesInOneHour / increments;\n for (var i = 1; i <= times; i++) {\n if (minute > increments * (i - 1) && minute <= increments * i) {\n minute = increments * i;\n break;\n }\n }\n result.setMinutes(minute);\n }\n return result;\n};\n/**\n * Returns a date object from the selected time.\n * @param useHour12 - If the time picker uses 12 or 24 hour formatting\n * @param dateStartAnchor - The baseline date to calculate the offset of the selected time\n * @param selectedTime - A string representing the user selected time\n * @returns A new date object offset from the baseDate using the selected time.\n */\nexport var getDateFromTimeSelection = function (useHour12, dateStartAnchor, selectedTime) {\n var _a = TimeConstants.TimeFormatRegex.exec(selectedTime) || [], selectedHours = _a[1], selectedMinutes = _a[2], selectedSeconds = _a[3], selectedAp = _a[4];\n var hours = +selectedHours;\n var minutes = +selectedMinutes;\n var seconds = selectedSeconds ? +selectedSeconds : 0;\n if (useHour12 && selectedAp) {\n if (selectedAp.toLowerCase() === 'pm' && hours !== TimeConstants.OffsetTo24HourFormat) {\n hours += TimeConstants.OffsetTo24HourFormat;\n }\n else if (selectedAp.toLowerCase() === 'am' && hours === TimeConstants.OffsetTo24HourFormat) {\n hours -= TimeConstants.OffsetTo24HourFormat;\n }\n }\n var hoursOffset;\n if (dateStartAnchor.getHours() > hours ||\n (dateStartAnchor.getHours() === hours && dateStartAnchor.getMinutes() > minutes)) {\n hoursOffset = TimeConstants.HoursInOneDay - dateStartAnchor.getHours() + hours;\n }\n else {\n hoursOffset = Math.abs(dateStartAnchor.getHours() - hours);\n }\n var offset = TimeConstants.MillisecondsIn1Sec * TimeConstants.MinutesInOneHour * hoursOffset * TimeConstants.SecondsInOneMinute +\n seconds * TimeConstants.MillisecondsIn1Sec;\n var date = new Date(dateStartAnchor.getTime() + offset);\n date.setMinutes(minutes);\n date.setSeconds(seconds);\n return date;\n};\n//# sourceMappingURL=timeMath.js.map","/**\n * Format a date object to a localized time string using the browser's default locale\n * @param date - Input date to format\n * @param showSeconds - Whether to show seconds in the formatted string\n * @param useHour12 - Whether to use 12-hour time\n */\nexport var formatTimeString = function (date, showSeconds, useHour12) {\n var localeTimeString = date.toLocaleTimeString([], {\n hour: 'numeric',\n minute: '2-digit',\n second: showSeconds ? '2-digit' : undefined,\n hour12: useHour12,\n });\n if (!useHour12 && localeTimeString.slice(0, 2) === '24') {\n localeTimeString = '00' + localeTimeString.slice(2);\n }\n return localeTimeString;\n};\n//# sourceMappingURL=index.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes } from '../../Utilities';\nimport { TimeConstants, addMinutes, formatTimeString, ceilMinuteToIncrement, getDateFromTimeSelection, } from '@fluentui/date-time-utilities';\nimport { ComboBox } from '../../ComboBox';\nimport { format } from '../../Utilities';\nimport { useControllableValue, useConst } from '@fluentui/react-hooks';\nvar REGEX_SHOW_SECONDS_HOUR_12 = /^((1[0-2]|0?[1-9]):([0-5][0-9]):([0-5][0-9])\\s([AaPp][Mm]))$/;\nvar REGEX_HIDE_SECONDS_HOUR_12 = /^((1[0-2]|0?[1-9]):[0-5][0-9]\\s([AaPp][Mm]))$/;\nvar REGEX_SHOW_SECONDS_HOUR_24 = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;\nvar REGEX_HIDE_SECONDS_HOUR_24 = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/;\nvar TIME_LOWER_BOUND = 0;\nvar TIME_UPPER_BOUND = 23;\nvar getDefaultStrings = function (useHour12, showSeconds) {\n var hourUnits = useHour12 ? '12-hour' : '24-hour';\n var timeFormat = \"hh:mm\".concat(showSeconds ? ':ss' : '').concat(useHour12 ? ' AP' : '');\n var invalidInputErrorMessage = \"Enter a valid time in the \".concat(hourUnits, \" format: \").concat(timeFormat);\n var timeOutOfBoundsErrorMessage = \"Please enter a time within the range of {0} and {1}\";\n return {\n invalidInputErrorMessage: invalidInputErrorMessage,\n timeOutOfBoundsErrorMessage: timeOutOfBoundsErrorMessage,\n };\n};\n/**\n * {@docCategory TimePicker}\n */\nexport var TimePicker = function (_a) {\n var label = _a.label, _b = _a.increments, increments = _b === void 0 ? 30 : _b, _c = _a.showSeconds, showSeconds = _c === void 0 ? false : _c, _d = _a.allowFreeform, allowFreeform = _d === void 0 ? true : _d, _e = _a.useHour12, useHour12 = _e === void 0 ? false : _e, timeRange = _a.timeRange, _f = _a.strings, strings = _f === void 0 ? getDefaultStrings(useHour12, showSeconds) : _f, defaultValue = _a.defaultValue, value = _a.value, dateAnchor = _a.dateAnchor, onChange = _a.onChange, onFormatDate = _a.onFormatDate, onValidateUserInput = _a.onValidateUserInput, onValidationResult = _a.onValidationResult, rest = __rest(_a, [\"label\", \"increments\", \"showSeconds\", \"allowFreeform\", \"useHour12\", \"timeRange\", \"strings\", \"defaultValue\", \"value\", \"dateAnchor\", \"onChange\", \"onFormatDate\", \"onValidateUserInput\", \"onValidationResult\"]);\n var _g = React.useState(''), comboBoxText = _g[0], setComboBoxText = _g[1];\n var _h = React.useState(), selectedKey = _h[0], setSelectedKey = _h[1];\n var _j = React.useState(''), errorMessage = _j[0], setErrorMessage = _j[1];\n var fallbackDateAnchor = useConst(new Date());\n var _k = useControllableValue(value, defaultValue), selectedTime = _k[0], setSelectedTime = _k[1];\n var optionsCount = getDropdownOptionsCount(increments, timeRange);\n var internalDateAnchor = dateAnchor || value || defaultValue || fallbackDateAnchor;\n var dateStartAnchor = React.useMemo(function () { return getDateAnchor(internalDateAnchor, 'start', increments, timeRange); }, [internalDateAnchor, increments, timeRange]);\n var dateEndAnchor = React.useMemo(function () { return getDateAnchor(internalDateAnchor, 'end', increments, timeRange); }, [internalDateAnchor, increments, timeRange]);\n var timePickerOptions = React.useMemo(function () {\n var optionsList = Array(optionsCount);\n for (var i = 0; i < optionsCount; i++) {\n optionsList[i] = 0;\n }\n return optionsList.map(function (_, index) {\n var option = addMinutes(dateStartAnchor, increments * index);\n option.setSeconds(0);\n var formattedTimeString = formatTimeString(option, showSeconds, useHour12);\n var optionText = onFormatDate ? onFormatDate(option) : formattedTimeString;\n return {\n key: formattedTimeString,\n text: optionText,\n data: option,\n };\n });\n }, [dateStartAnchor, increments, optionsCount, showSeconds, onFormatDate, useHour12]);\n React.useEffect(function () {\n if (selectedTime && !isNaN(selectedTime.valueOf())) {\n var formattedTimeString_1 = formatTimeString(selectedTime, showSeconds, useHour12);\n var comboboxOption = timePickerOptions.find(function (option) { return option.key === formattedTimeString_1; });\n setSelectedKey(comboboxOption === null || comboboxOption === void 0 ? void 0 : comboboxOption.key);\n setComboBoxText(comboboxOption ? comboboxOption.text : formattedTimeString_1);\n }\n else {\n setSelectedKey(null);\n }\n }, [selectedTime, timePickerOptions, onFormatDate, showSeconds, useHour12]);\n var onInputChange = React.useCallback(function (ev, option, _index, input) {\n var validateUserInput = function (userInput) {\n var errorMessageToDisplay = '';\n var regex;\n if (useHour12) {\n regex = showSeconds ? REGEX_SHOW_SECONDS_HOUR_12 : REGEX_HIDE_SECONDS_HOUR_12;\n }\n else {\n regex = showSeconds ? REGEX_SHOW_SECONDS_HOUR_24 : REGEX_HIDE_SECONDS_HOUR_24;\n }\n if (!regex.test(userInput)) {\n errorMessageToDisplay = strings.invalidInputErrorMessage;\n }\n else if (timeRange && strings.timeOutOfBoundsErrorMessage) {\n var optionDate = getDateFromTimeSelection(useHour12, dateStartAnchor, userInput);\n if (optionDate < dateStartAnchor || optionDate > dateEndAnchor) {\n errorMessageToDisplay = format(strings.timeOutOfBoundsErrorMessage, dateStartAnchor.toString(), dateEndAnchor.toString());\n }\n }\n return errorMessageToDisplay;\n };\n var errorMessageToDisplay = '';\n if (input) {\n if (allowFreeform && !option) {\n if (!onFormatDate) {\n // Validate only if user did not add onFormatDate\n errorMessageToDisplay = validateUserInput(input);\n }\n else {\n // Use user provided validation if onFormatDate is provided\n if (onValidateUserInput) {\n errorMessageToDisplay = onValidateUserInput(input);\n }\n }\n }\n }\n if (onValidationResult && errorMessage !== errorMessageToDisplay) {\n // only call onValidationResult if stored errorMessage state value is different from latest error message\n onValidationResult(ev, { errorMessage: errorMessageToDisplay });\n }\n var changedTime;\n if (errorMessageToDisplay || (input !== undefined && !input.length)) {\n var timeSelection = input || (option === null || option === void 0 ? void 0 : option.text) || '';\n setComboBoxText(timeSelection);\n setSelectedTime(errorMessageToDisplay ? new Date('invalid') : undefined);\n changedTime = new Date('invalid');\n }\n else {\n var updatedTime = void 0;\n if ((option === null || option === void 0 ? void 0 : option.data) instanceof Date) {\n updatedTime = option.data;\n }\n else {\n var timeSelection = (option === null || option === void 0 ? void 0 : option.key) || input || '';\n updatedTime = getDateFromTimeSelection(useHour12, dateStartAnchor, timeSelection);\n }\n setSelectedTime(updatedTime);\n changedTime = updatedTime;\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, changedTime);\n setErrorMessage(errorMessageToDisplay);\n }, [\n timeRange,\n dateStartAnchor,\n dateEndAnchor,\n allowFreeform,\n onFormatDate,\n onValidateUserInput,\n showSeconds,\n useHour12,\n strings.invalidInputErrorMessage,\n strings.timeOutOfBoundsErrorMessage,\n setSelectedTime,\n onValidationResult,\n onChange,\n errorMessage,\n ]);\n var evaluatePressedKey = function (event) {\n // eslint-disable-next-line deprecation/deprecation\n var charCode = event.charCode;\n if (!onFormatDate &&\n // Only permit input of digits, space, colon, A/P/M characters\n !((charCode >= KeyCodes.zero && charCode <= KeyCodes.colon) ||\n charCode === KeyCodes.space ||\n charCode === KeyCodes.a ||\n charCode === KeyCodes.m ||\n charCode === KeyCodes.p)) {\n event.preventDefault();\n }\n };\n return (React.createElement(ComboBox, __assign({}, rest, { allowFreeform: allowFreeform, selectedKey: selectedKey, label: label, errorMessage: errorMessage, options: timePickerOptions, onChange: onInputChange, text: comboBoxText, \n //eslint-disable-next-line\n onKeyPress: evaluatePressedKey, useComboBoxAsMenuWidth: true })));\n};\nTimePicker.displayName = 'TimePicker';\nvar getDateAnchor = function (internalDateAnchor, startEnd, increments, timeRange) {\n var clampedDateAnchor = new Date(internalDateAnchor.getTime());\n if (timeRange) {\n var clampedTimeRange = clampTimeRange(timeRange);\n var timeRangeHours = startEnd === 'start' ? clampedTimeRange.start : clampedTimeRange.end;\n if (clampedDateAnchor.getHours() !== timeRangeHours) {\n clampedDateAnchor.setHours(timeRangeHours);\n }\n }\n else if (startEnd === 'end') {\n clampedDateAnchor.setDate(clampedDateAnchor.getDate() + 1);\n }\n clampedDateAnchor.setMinutes(0);\n clampedDateAnchor.setSeconds(0);\n clampedDateAnchor.setMilliseconds(0);\n return ceilMinuteToIncrement(clampedDateAnchor, increments);\n};\nvar clampTimeRange = function (timeRange) {\n return {\n start: Math.min(Math.max(timeRange.start, TIME_LOWER_BOUND), TIME_UPPER_BOUND),\n end: Math.min(Math.max(timeRange.end, TIME_LOWER_BOUND), TIME_UPPER_BOUND),\n };\n};\nvar getHoursInRange = function (timeRange) {\n var hoursInRange = TimeConstants.HoursInOneDay;\n if (timeRange) {\n var clampedTimeRange = clampTimeRange(timeRange);\n if (clampedTimeRange.start > clampedTimeRange.end) {\n hoursInRange = TimeConstants.HoursInOneDay - timeRange.start - timeRange.end;\n }\n else if (timeRange.end > timeRange.start) {\n hoursInRange = timeRange.end - timeRange.start;\n }\n }\n return hoursInRange;\n};\nvar getDropdownOptionsCount = function (increments, timeRange) {\n var hoursInRange = getHoursInRange(timeRange);\n return Math.floor((TimeConstants.MinutesInOneHour * hoursInRange) / increments);\n};\n//# sourceMappingURL=TimePicker.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useWarnings } from '@fluentui/react-hooks';\nimport { classNamesFunction, getNativeProps, inputProperties, useFocusRects } from '@fluentui/utilities';\nimport { Label } from '../Label/Label';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Toggle';\nexport var ToggleBase = React.forwardRef(function (props, forwardedRef) {\n var _a = props.as, RootType = _a === void 0 ? 'div' : _a, ariaLabel = props.ariaLabel, controlledChecked = props.checked, className = props.className, _b = props.defaultChecked, defaultChecked = _b === void 0 ? false : _b, disabled = props.disabled, inlineLabel = props.inlineLabel, label = props.label, \n // eslint-disable-next-line deprecation/deprecation\n offAriaLabel = props.offAriaLabel, offText = props.offText, \n // eslint-disable-next-line deprecation/deprecation\n onAriaLabel = props.onAriaLabel, onChange = props.onChange, \n // eslint-disable-next-line deprecation/deprecation\n onChanged = props.onChanged, onToggleClick = props.onClick, onText = props.onText, role = props.role, styles = props.styles, theme = props.theme;\n var _c = useControllableValue(controlledChecked, defaultChecked, React.useCallback(function (ev, isChecked) {\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, isChecked);\n onChanged === null || onChanged === void 0 ? void 0 : onChanged(isChecked);\n }, [onChange, onChanged])), checked = _c[0], setChecked = _c[1];\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n checked: checked,\n inlineLabel: inlineLabel,\n onOffMissing: !onText && !offText,\n });\n var badAriaLabel = checked ? onAriaLabel : offAriaLabel;\n var id = useId(COMPONENT_NAME, props.id);\n var labelId = \"\".concat(id, \"-label\");\n var stateTextId = \"\".concat(id, \"-stateText\");\n var stateText = checked ? onText : offText;\n var toggleNativeProps = getNativeProps(props, inputProperties, [\n 'defaultChecked',\n ]);\n // The following properties take priority for what Narrator should read:\n // 1. ariaLabel\n // 2. onAriaLabel (if checked) or offAriaLabel (if not checked)\n // 3. label, if existent\n var labelledById = undefined;\n if (!ariaLabel && !badAriaLabel) {\n if (label) {\n labelledById = labelId;\n }\n if (stateText && !labelledById) {\n labelledById = stateTextId;\n }\n }\n var toggleButton = React.useRef(null);\n useFocusRects(toggleButton);\n useComponentRef(props, checked, toggleButton);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: {\n offAriaLabel: undefined,\n onAriaLabel: 'ariaLabel',\n onChanged: 'onChange',\n },\n mutuallyExclusive: { checked: 'defaultChecked' },\n });\n }\n var onClick = function (ev) {\n if (!disabled) {\n setChecked(!checked, ev);\n if (onToggleClick) {\n onToggleClick(ev);\n }\n }\n };\n var slotProps = {\n root: {\n className: classNames.root,\n hidden: toggleNativeProps.hidden,\n },\n label: {\n children: label,\n className: classNames.label,\n htmlFor: id,\n id: labelId,\n },\n container: {\n className: classNames.container,\n },\n pill: __assign(__assign({}, toggleNativeProps), { 'aria-disabled': disabled, 'aria-checked': checked, 'aria-label': ariaLabel ? ariaLabel : badAriaLabel, 'aria-labelledby': labelledById, className: classNames.pill, 'data-is-focusable': true, 'data-ktp-target': true, disabled: disabled, id: id, onClick: onClick, ref: toggleButton, role: role ? role : 'switch', type: 'button' }),\n thumb: {\n className: classNames.thumb,\n },\n stateText: {\n children: stateText,\n className: classNames.text,\n htmlFor: id,\n id: stateTextId,\n },\n };\n return (React.createElement(RootType, __assign({ ref: forwardedRef }, slotProps.root),\n label && React.createElement(Label, __assign({}, slotProps.label)),\n React.createElement(\"div\", __assign({}, slotProps.container),\n React.createElement(\"button\", __assign({}, slotProps.pill),\n React.createElement(\"span\", __assign({}, slotProps.thumb))),\n ((checked && onText) || offText) && React.createElement(Label, __assign({}, slotProps.stateText)))));\n});\nToggleBase.displayName = COMPONENT_NAME + 'Base';\nvar useComponentRef = function (props, isChecked, toggleButtonRef) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n get checked() {\n return !!isChecked;\n },\n focus: function () {\n if (toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n },\n }); }, [isChecked, toggleButtonRef]);\n};\n//# sourceMappingURL=Toggle.base.js.map","import { styled } from '@fluentui/utilities';\nimport { ToggleBase } from './Toggle.base';\nimport { getStyles } from './Toggle.styles';\nexport var Toggle = styled(ToggleBase, getStyles, undefined, {\n scope: 'Toggle',\n});\n//# sourceMappingURL=Toggle.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getFocusStyle, FontWeights, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nvar DEFAULT_PILL_WIDTH = 40;\nvar DEFAULT_PILL_HEIGHT = 20;\nvar DEFAULT_THUMB_SIZE = 12;\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var theme = props.theme, className = props.className, disabled = props.disabled, checked = props.checked, inlineLabel = props.inlineLabel, onOffMissing = props.onOffMissing;\n var semanticColors = theme.semanticColors, palette = theme.palette;\n // Tokens\n var pillUncheckedBackground = semanticColors.bodyBackground;\n var pillCheckedBackground = semanticColors.inputBackgroundChecked;\n var pillCheckedHoveredBackground = semanticColors.inputBackgroundCheckedHovered;\n var thumbUncheckedHoveredBackground = palette.neutralDark;\n var pillCheckedDisabledBackground = semanticColors.disabledBodySubtext;\n var thumbBackground = semanticColors.smallInputBorder;\n var thumbCheckedBackground = semanticColors.inputForegroundChecked;\n var thumbDisabledBackground = semanticColors.disabledBodySubtext;\n var thumbCheckedDisabledBackground = semanticColors.disabledBackground;\n var pillBorderColor = semanticColors.smallInputBorder;\n var pillBorderHoveredColor = semanticColors.inputBorderHovered;\n var pillBorderDisabledColor = semanticColors.disabledBodySubtext;\n var textDisabledColor = semanticColors.disabledText;\n return {\n root: [\n 'ms-Toggle',\n checked && 'is-checked',\n !disabled && 'is-enabled',\n disabled && 'is-disabled',\n theme.fonts.medium,\n {\n marginBottom: '8px',\n },\n inlineLabel && {\n display: 'flex',\n alignItems: 'center',\n },\n className,\n ],\n label: [\n 'ms-Toggle-label',\n { display: 'inline-block' },\n disabled && {\n color: textDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n inlineLabel &&\n !onOffMissing && {\n marginRight: 16,\n },\n onOffMissing &&\n inlineLabel && {\n order: 1,\n marginLeft: 16,\n },\n inlineLabel && { wordBreak: 'break-word' },\n ],\n container: [\n 'ms-Toggle-innerContainer',\n {\n display: 'flex',\n position: 'relative',\n },\n ],\n pill: [\n 'ms-Toggle-background',\n getFocusStyle(theme, { inset: -3 }),\n {\n fontSize: '20px',\n boxSizing: 'border-box',\n width: DEFAULT_PILL_WIDTH,\n height: DEFAULT_PILL_HEIGHT,\n borderRadius: DEFAULT_PILL_HEIGHT / 2,\n transition: 'all 0.1s ease',\n border: \"1px solid \".concat(pillBorderColor),\n background: pillUncheckedBackground,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '0 3px',\n overflow: 'visible',\n },\n !disabled && [\n !checked && {\n selectors: {\n ':hover': [\n {\n borderColor: pillBorderHoveredColor,\n },\n ],\n ':hover .ms-Toggle-thumb': [\n {\n backgroundColor: thumbUncheckedHoveredBackground,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _b),\n },\n ],\n },\n },\n checked && [\n {\n background: pillCheckedBackground,\n borderColor: 'transparent',\n justifyContent: 'flex-end',\n },\n {\n selectors: (_c = {\n ':hover': [\n {\n backgroundColor: pillCheckedHoveredBackground,\n borderColor: 'transparent',\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n },\n _d),\n },\n ]\n },\n _c[HighContrastSelector] = __assign({ backgroundColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _c),\n },\n ],\n ],\n disabled && [\n {\n cursor: 'default',\n },\n !checked && [\n {\n borderColor: pillBorderDisabledColor,\n },\n ],\n checked && [\n {\n backgroundColor: pillCheckedDisabledBackground,\n borderColor: 'transparent',\n justifyContent: 'flex-end',\n },\n ],\n ],\n !disabled && {\n selectors: {\n '&:hover': {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _e),\n },\n },\n },\n ],\n thumb: [\n 'ms-Toggle-thumb',\n {\n display: 'block',\n width: DEFAULT_THUMB_SIZE,\n height: DEFAULT_THUMB_SIZE,\n borderRadius: '50%',\n transition: 'all 0.1s ease',\n backgroundColor: thumbBackground,\n /* Border is added to handle high contrast mode for Firefox */\n borderColor: 'transparent',\n borderWidth: DEFAULT_THUMB_SIZE / 2,\n borderStyle: 'solid',\n boxSizing: 'border-box',\n },\n !disabled &&\n checked && [\n {\n backgroundColor: thumbCheckedBackground,\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n borderColor: 'Window',\n },\n _f),\n },\n ],\n disabled && [\n !checked && [\n {\n backgroundColor: thumbDisabledBackground,\n },\n ],\n checked && [\n {\n backgroundColor: thumbCheckedDisabledBackground,\n },\n ],\n ],\n ],\n text: [\n 'ms-Toggle-stateText',\n {\n selectors: {\n // Workaround: make rules more specific than Label rules.\n '&&': {\n padding: '0',\n margin: '0 8px',\n userSelect: 'none',\n fontWeight: FontWeights.regular,\n },\n },\n },\n disabled && {\n selectors: {\n '&&': {\n color: textDisabledColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n color: 'GrayText',\n },\n _g),\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=Toggle.styles.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n if (typeof props.content === 'string') {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n }\n else {\n return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n }\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.isBeakVisible ? calloutProps.beakWidth : 0,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the <p> tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n _this._onTooltipFocus = function (ev) {\n if (_this._ignoreNextFocusEvent) {\n _this._ignoreNextFocusEvent = false;\n return;\n }\n _this._onTooltipMouseEnter(ev);\n };\n _this._onTooltipContentFocus = function (ev) {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n };\n _this._onTooltipBlur = function (ev) {\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement,\n // and ignoring when it next gets focus back.\n // See https://github.com/microsoft/fluentui/issues/13541\n _this._ignoreNextFocusEvent = (document === null || document === void 0 ? void 0 : document.activeElement) === ev.target;\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._hideTooltip();\n }, 0);\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n _this._async = new Async(_this);\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.setAriaDescribedBy, \n // eslint-disable-next-line deprecation/deprecation\n setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var tooltipRenderProps = __assign(__assign({ id: \"\".concat(tooltipId, \"--tooltip\"), content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onFocus: this._onTooltipContentFocus,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n // Get the content of the tooltip for use in the hidden div used for screen readers\n var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n : content;\n var showTooltip = isTooltipVisible && !!tooltipContent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipFocus }, { onBlurCapture: this._onTooltipBlur }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy }),\n children,\n showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","/**\n * Enum to help identify which suggestions action button is selected.\n * {@docCategory Pickers}\n */\nexport var SuggestionActionType;\n(function (SuggestionActionType) {\n /** None of the actions is selected. */\n SuggestionActionType[SuggestionActionType[\"none\"] = 0] = \"none\";\n /** ForceResolve action is selected. */\n SuggestionActionType[SuggestionActionType[\"forceResolve\"] = 1] = \"forceResolve\";\n /** SearchMore action is selected. */\n SuggestionActionType[SuggestionActionType[\"searchMore\"] = 2] = \"searchMore\";\n})(SuggestionActionType || (SuggestionActionType = {}));\n//# sourceMappingURL=Suggestions.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Announced}\n */\nvar AnnouncedBase = /** @class */ (function (_super) {\n __extends(AnnouncedBase, _super);\n function AnnouncedBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnouncedBase.prototype.render = function () {\n var _a = this.props, message = _a.message, styles = _a.styles, _b = _a.as, Root = _b === void 0 ? 'div' : _b, className = _a.className;\n var classNames = getClassNames(styles, { className: className });\n return (React.createElement(Root, __assign({ role: \"status\", className: classNames.root }, getNativeProps(this.props, divProperties, ['className'])),\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, message))));\n };\n AnnouncedBase.defaultProps = {\n 'aria-live': 'polite',\n };\n return AnnouncedBase;\n}(React.Component));\nexport { AnnouncedBase };\n//# sourceMappingURL=Announced.base.js.map","import { styled } from '../../Utilities';\nimport { AnnouncedBase } from './Announced.base';\nimport { getStyles } from './Announced.styles';\nexport var Announced = styled(AnnouncedBase, getStyles);\n//# sourceMappingURL=Announced.js.map","import { hiddenContentStyle } from '../../Styling';\nexport var getStyles = function (props) {\n return {\n root: props.className,\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Announced.styles.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_8c91000a{min-width:260px}.suggestionsItem_8c91000a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.suggestionsItem_8c91000a:hover{background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.suggestionsItem_8c91000a:hover .closeButton_8c91000a{display:block}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .itemButton_8c91000a{color:HighlightText}}.suggestionsItem_8c91000a .closeButton_8c91000a{display:none;color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.suggestionsItem_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.actionButton_8c91000a{background-color:transparent;border:0;cursor:pointer;margin:0;position:relative;border-top:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";height:40px;width:100%;font-size:12px}[dir=ltr] .actionButton_8c91000a{padding-left:8px}[dir=rtl] .actionButton_8c91000a{padding-right:8px}html[dir=ltr] .actionButton_8c91000a{text-align:left}html[dir=rtl] .actionButton_8c91000a{text-align:right}.actionButton_8c91000a:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";cursor:pointer}.actionButton_8c91000a:active,.actionButton_8c91000a:focus{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.actionButton_8c91000a .ms-Button-icon{font-size:16px;width:25px}.actionButton_8c91000a .ms-Button-label{margin:0 4px 0 9px}html[dir=rtl] .actionButton_8c91000a .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_8c91000a{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.suggestionsTitle_8c91000a{padding:0 12px;color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";font-size:12px;line-height:40px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsContainer_8c91000a{overflow-y:auto;overflow-x:hidden;max-height:300px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsNone_8c91000a{text-align:center;color:#797775;font-size:12px;line-height:30px}.suggestionsSpinner_8c91000a{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir=ltr] .suggestionsSpinner_8c91000a{padding-left:14px}html[dir=rtl] .suggestionsSpinner_8c91000a{padding-right:14px}html[dir=ltr] .suggestionsSpinner_8c91000a{text-align:left}html[dir=rtl] .suggestionsSpinner_8c91000a{text-align:right}.suggestionsSpinner_8c91000a .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_8c91000a .ms-Spinner-label{display:inline-block;margin:0 10px 0 16px;vertical-align:middle}html[dir=rtl] .suggestionsSpinner_8c91000a .ms-Spinner-label{margin:0 16px 0 10px}.itemButton_8c91000a.itemButton_8c91000a{width:100%;padding:0;min-width:0;height:100%}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.itemButton_8c91000a.itemButton_8c91000a{color:WindowText}}.itemButton_8c91000a.itemButton_8c91000a:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.closeButton_8c91000a.closeButton_8c91000a{padding:0 4px;height:auto;width:32px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_8c91000a.closeButton_8c91000a{color:WindowText}}.closeButton_8c91000a.closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.suggestionsAvailable_8c91000a{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var root = \"root_8c91000a\";\nexport var suggestionsItem = \"suggestionsItem_8c91000a\";\nexport var closeButton = \"closeButton_8c91000a\";\nexport var suggestionsItemIsSuggested = \"suggestionsItemIsSuggested_8c91000a\";\nexport var itemButton = \"itemButton_8c91000a\";\nexport var actionButton = \"actionButton_8c91000a\";\nexport var buttonSelected = \"buttonSelected_8c91000a\";\nexport var suggestionsTitle = \"suggestionsTitle_8c91000a\";\nexport var suggestionsContainer = \"suggestionsContainer_8c91000a\";\nexport var suggestionsNone = \"suggestionsNone_8c91000a\";\nexport var suggestionsSpinner = \"suggestionsSpinner_8c91000a\";\nexport var suggestionsAvailable = \"suggestionsAvailable_8c91000a\";\n//# sourceMappingURL=Suggestions.scss.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, initializeComponentRef } from '../../../Utilities';\nimport { CommandButton, IconButton } from '../../../Button';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Pickers}\n */\nvar SuggestionsItem = /** @class */ (function (_super) {\n __extends(SuggestionsItem, _super);\n function SuggestionsItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n SuggestionsItem.prototype.render = function () {\n var _a;\n var _b = this.props, suggestionModel = _b.suggestionModel, RenderSuggestion = _b.RenderSuggestion, onClick = _b.onClick, className = _b.className, id = _b.id, onRemoveItem = _b.onRemoveItem, isSelectedOverride = _b.isSelectedOverride, removeButtonAriaLabel = _b.removeButtonAriaLabel, styles = _b.styles, theme = _b.theme, removeButtonIconProps = _b.removeButtonIconProps;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from SuggestionsItem class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in Suggestions when the typed SuggestionsItem class is ready to be rendered. If the\n // check passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggested: suggestionModel.selected || isSelectedOverride,\n })\n : {\n root: css('ms-Suggestions-item', legacyStyles.suggestionsItem, (_a = {},\n _a['is-suggested ' + legacyStyles.suggestionsItemIsSuggested] = suggestionModel.selected || isSelectedOverride,\n _a), className),\n itemButton: css('ms-Suggestions-itemButton', legacyStyles.itemButton),\n closeButton: css('ms-Suggestions-closeButton', legacyStyles.closeButton),\n };\n return (React.createElement(\"div\", { className: classNames.root, role: \"presentation\" },\n React.createElement(CommandButton, { onClick: onClick, className: classNames.itemButton, id: id, \"aria-selected\": suggestionModel.selected, role: \"option\", \"aria-label\": suggestionModel.ariaLabel }, RenderSuggestion(suggestionModel.item, this.props)),\n this.props.showRemoveButton ? (React.createElement(IconButton, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, title: removeButtonAriaLabel, ariaLabel: removeButtonAriaLabel, onClick: onRemoveItem, className: classNames.closeButton })) : null));\n };\n return SuggestionsItem;\n}(React.Component));\nexport { SuggestionsItem };\n//# sourceMappingURL=SuggestionsItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, KeyCodes, classNamesFunction, css, styled } from '../../../Utilities';\nimport { CommandButton } from '../../../Button';\nimport { Spinner } from '../../../Spinner';\nimport { Announced } from '../../../Announced';\nimport { SuggestionActionType } from './Suggestions.types';\nimport { SuggestionsItem } from './SuggestionsItem';\nimport { getStyles as suggestionsItemStyles } from './SuggestionsItem.styles';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\nvar StyledSuggestionsItem = styled(SuggestionsItem, suggestionsItemStyles, undefined, {\n scope: 'SuggestionItem',\n});\n/**\n * {@docCategory Pickers}\n */\nvar Suggestions = /** @class */ (function (_super) {\n __extends(Suggestions, _super);\n function Suggestions(suggestionsProps) {\n var _this = _super.call(this, suggestionsProps) || this;\n _this._forceResolveButton = React.createRef();\n _this._searchForMoreButton = React.createRef();\n _this._selectedElement = React.createRef();\n _this._scrollContainer = React.createRef();\n /**\n * Returns true if the event was handled, false otherwise\n */\n _this.tryHandleKeyDown = function (keyCode, currentSuggestionIndex) {\n var isEventHandled = false;\n var newSelectedActionType = null;\n var currentSelectedAction = _this.state.selectedActionType;\n var suggestionLength = _this.props.suggestions.length;\n if (keyCode === KeyCodes.down) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.searchMore:\n if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n }\n }\n else if (keyCode === KeyCodes.up) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n break;\n case SuggestionActionType.searchMore:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n }\n }\n if (newSelectedActionType !== null) {\n _this.setState({ selectedActionType: newSelectedActionType });\n isEventHandled = true;\n }\n return isEventHandled;\n };\n _this._getAlertText = function () {\n var _a = _this.props, isLoading = _a.isLoading, isSearching = _a.isSearching, suggestions = _a.suggestions, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText, noResultsFoundText = _a.noResultsFoundText, isExtendedLoading = _a.isExtendedLoading, loadingText = _a.loadingText;\n if (!isLoading && !isSearching) {\n if (suggestions.length > 0) {\n return suggestionsAvailableAlertText || '';\n }\n if (noResultsFoundText) {\n return noResultsFoundText;\n }\n }\n else if (isLoading && isExtendedLoading) {\n return loadingText || '';\n }\n return '';\n };\n _this._getMoreResults = function () {\n if (_this.props.onGetMoreResults) {\n _this.props.onGetMoreResults();\n // Reset selected action type as it will be of type SuggestionActionType.none after more results are gotten\n _this.setState({ selectedActionType: SuggestionActionType.none });\n }\n };\n _this._forceResolve = function () {\n if (_this.props.createGenericItem) {\n _this.props.createGenericItem();\n }\n };\n _this._shouldShowForceResolve = function () {\n return _this.props.showForceResolve ? _this.props.showForceResolve() : false;\n };\n _this._onClickTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n _this.props.onSuggestionClick(ev, item, index);\n };\n };\n _this._refocusOnSuggestions = function (keyCode) {\n if (typeof _this.props.refocusSuggestions === 'function') {\n _this.props.refocusSuggestions(keyCode);\n }\n };\n _this._onRemoveTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n var onSuggestionRemove = _this.props.onSuggestionRemove;\n onSuggestionRemove(ev, item, index);\n ev.stopPropagation();\n };\n };\n initializeComponentRef(_this);\n _this.state = {\n selectedActionType: SuggestionActionType.none,\n };\n return _this;\n }\n Suggestions.prototype.componentDidMount = function () {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement ? this._selectedElement.current : null;\n };\n Suggestions.prototype.componentDidUpdate = function () {\n // Only scroll to selected element if the selected element has changed. Otherwise do nothing.\n // This prevents some odd behavior where scrolling the active element out of view and clicking on a selected element\n // will trigger a focus event and not give the clicked element the click.\n if (this._selectedElement.current && this.activeSelectedElement !== this._selectedElement.current) {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement.current;\n }\n };\n Suggestions.prototype.render = function () {\n var _a, _b;\n var _this = this;\n var _c = this.props, forceResolveText = _c.forceResolveText, mostRecentlyUsedHeaderText = _c.mostRecentlyUsedHeaderText, searchForMoreIcon = _c.searchForMoreIcon, searchForMoreText = _c.searchForMoreText, className = _c.className, moreSuggestionsAvailable = _c.moreSuggestionsAvailable, noResultsFoundText = _c.noResultsFoundText, suggestions = _c.suggestions, isLoading = _c.isLoading, isSearching = _c.isSearching, loadingText = _c.loadingText, onRenderNoResultFound = _c.onRenderNoResultFound, searchingText = _c.searchingText, isMostRecentlyUsedVisible = _c.isMostRecentlyUsedVisible, resultsMaximumNumber = _c.resultsMaximumNumber, resultsFooterFull = _c.resultsFooterFull, resultsFooter = _c.resultsFooter, _d = _c.isResultsFooterVisible, isResultsFooterVisible = _d === void 0 ? true : _d, suggestionsHeaderText = _c.suggestionsHeaderText, suggestionsClassName = _c.suggestionsClassName, theme = _c.theme, styles = _c.styles, suggestionsListId = _c.suggestionsListId, suggestionsContainerAriaLabel = _c.suggestionsContainerAriaLabel;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from Suggestions class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in BasePicker when the typed Suggestions class is ready to be rendered. If the check\n // passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n this._classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggestionsClassName: suggestionsClassName,\n forceResolveButtonSelected: this.state.selectedActionType === SuggestionActionType.forceResolve,\n searchForMoreButtonSelected: this.state.selectedActionType === SuggestionActionType.searchMore,\n })\n : {\n root: css('ms-Suggestions', className, legacyStyles.root),\n title: css('ms-Suggestions-title', legacyStyles.suggestionsTitle),\n searchForMoreButton: css('ms-SearchMore-button', legacyStyles.actionButton, (_a = {},\n _a['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.searchMore,\n _a)),\n forceResolveButton: css('ms-forceResolve-button', legacyStyles.actionButton, (_b = {},\n _b['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.forceResolve,\n _b)),\n suggestionsAvailable: css('ms-Suggestions-suggestionsAvailable', legacyStyles.suggestionsAvailable),\n suggestionsContainer: css('ms-Suggestions-container', legacyStyles.suggestionsContainer, suggestionsClassName),\n noSuggestions: css('ms-Suggestions-none', legacyStyles.suggestionsNone),\n };\n var spinnerStyles = this._classNames.subComponentStyles\n ? this._classNames.subComponentStyles.spinner\n : undefined;\n // TODO: cleanup after refactor of pickers to composition pattern and remove SASS support.\n var spinnerClassNameOrStyles = styles\n ? { styles: spinnerStyles }\n : {\n className: css('ms-Suggestions-spinner', legacyStyles.suggestionsSpinner),\n };\n var noResults = function () {\n var defaultRender = function () {\n return React.createElement(\"div\", { className: _this._classNames.noSuggestions }, noResultsFoundText);\n };\n return (\n // This ID can be used by the parent to set aria-activedescendant to this\n React.createElement(\"div\", { id: \"sug-noResultsFound\", role: \"option\" }, onRenderNoResultFound ? onRenderNoResultFound(undefined, defaultRender) : defaultRender()));\n };\n // MostRecently Used text should supercede the header text if it's there and available.\n var headerText = suggestionsHeaderText;\n if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {\n headerText = mostRecentlyUsedHeaderText;\n }\n var footerTitle = undefined;\n if (isResultsFooterVisible) {\n footerTitle = suggestions.length >= resultsMaximumNumber ? resultsFooterFull : resultsFooter;\n }\n var hasNoSuggestions = (!suggestions || !suggestions.length) && !isLoading;\n var forceResolveId = this.state.selectedActionType === SuggestionActionType.forceResolve ? 'sug-selectedAction' : undefined;\n var searchForMoreId = this.state.selectedActionType === SuggestionActionType.searchMore ? 'sug-selectedAction' : undefined;\n return (React.createElement(\"div\", { className: this._classNames.root, \"aria-label\": suggestionsContainerAriaLabel || headerText, id: suggestionsListId, role: \"listbox\" },\n React.createElement(Announced, { message: this._getAlertText(), \"aria-live\": \"polite\" }),\n headerText ? React.createElement(\"div\", { className: this._classNames.title }, headerText) : null,\n forceResolveText && this._shouldShowForceResolve() && (React.createElement(CommandButton, { componentRef: this._forceResolveButton, className: this._classNames.forceResolveButton, id: forceResolveId, onClick: this._forceResolve, \"data-automationid\": 'sug-forceResolve' }, forceResolveText)),\n isLoading && React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: loadingText, label: loadingText })),\n hasNoSuggestions ? noResults() : this._renderSuggestions(),\n searchForMoreText && moreSuggestionsAvailable && (React.createElement(CommandButton, { componentRef: this._searchForMoreButton, className: this._classNames.searchForMoreButton, iconProps: searchForMoreIcon || { iconName: 'Search' }, id: searchForMoreId, onClick: this._getMoreResults, \"data-automationid\": 'sug-searchForMore', role: 'option' }, searchForMoreText)),\n isSearching ? React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: searchingText, label: searchingText })) : null,\n footerTitle && !moreSuggestionsAvailable && !isMostRecentlyUsedVisible && !isSearching ? (React.createElement(\"div\", { className: this._classNames.title }, footerTitle(this.props))) : null));\n };\n Suggestions.prototype.hasSuggestedAction = function () {\n return !!this._searchForMoreButton.current || !!this._forceResolveButton.current;\n };\n Suggestions.prototype.hasSuggestedActionSelected = function () {\n return this.state.selectedActionType !== SuggestionActionType.none;\n };\n Suggestions.prototype.executeSelectedAction = function () {\n switch (this.state.selectedActionType) {\n case SuggestionActionType.forceResolve:\n this._forceResolve();\n break;\n case SuggestionActionType.searchMore:\n this._getMoreResults();\n break;\n }\n };\n Suggestions.prototype.focusAboveSuggestions = function () {\n if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n else if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n };\n Suggestions.prototype.focusBelowSuggestions = function () {\n if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n else if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n };\n Suggestions.prototype.focusSearchForMoreButton = function () {\n if (this._searchForMoreButton.current) {\n this._searchForMoreButton.current.focus();\n }\n };\n Suggestions.prototype.scrollSelected = function () {\n if (this._selectedElement.current &&\n this._scrollContainer.current &&\n this._scrollContainer.current.scrollTo !== undefined) {\n var _a = this._selectedElement.current, offsetHeight = _a.offsetHeight, offsetTop = _a.offsetTop;\n var _b = this._scrollContainer.current, parentOffsetHeight = _b.offsetHeight, scrollTop = _b.scrollTop;\n var isAbove = offsetTop < scrollTop;\n var isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n if (isAbove) {\n this._scrollContainer.current.scrollTo(0, offsetTop);\n }\n else if (isBelow) {\n this._scrollContainer.current.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n }\n }\n };\n Suggestions.prototype._renderSuggestions = function () {\n var _this = this;\n var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, removeSuggestionAriaLabel = _a.removeSuggestionAriaLabel, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, removeButtonIconProps = _a.removeButtonIconProps;\n var suggestions = this.props.suggestions;\n var StyledTypedSuggestionsItem = StyledSuggestionsItem;\n var selectedIndex = -1;\n suggestions.some(function (element, index) {\n if (element.selected) {\n selectedIndex = index;\n return true;\n }\n return false;\n });\n if (resultsMaximumNumber) {\n suggestions =\n selectedIndex >= resultsMaximumNumber\n ? suggestions.slice(selectedIndex - resultsMaximumNumber + 1, selectedIndex + 1)\n : suggestions.slice(0, resultsMaximumNumber);\n }\n if (suggestions.length === 0) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.suggestionsContainer, ref: this._scrollContainer, role: \"presentation\" }, suggestions.map(function (suggestion, index) { return (React.createElement(\"div\", { ref: suggestion.selected ? _this._selectedElement : undefined, key: suggestion.item.key ? suggestion.item.key : index, role: \"presentation\" },\n React.createElement(StyledTypedSuggestionsItem, { suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, removeButtonAriaLabel: removeSuggestionAriaLabel, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), id: 'sug-' + index, removeButtonIconProps: removeButtonIconProps }))); })));\n };\n return Suggestions;\n}(React.Component));\nexport { Suggestions };\n//# sourceMappingURL=Suggestions.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getHighContrastNoAdjustStyle, HighContrastSelector, hiddenContentStyle, } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Suggestions',\n suggestionsContainer: 'ms-Suggestions-container',\n title: 'ms-Suggestions-title',\n forceResolveButton: 'ms-forceResolve-button',\n searchForMoreButton: 'ms-SearchMore-button',\n spinner: 'ms-Suggestions-spinner',\n noSuggestions: 'ms-Suggestions-none',\n suggestionsAvailable: 'ms-Suggestions-suggestionsAvailable',\n isSelected: 'is-selected',\n};\nexport function getStyles(props) {\n var _a;\n var className = props.className, suggestionsClassName = props.suggestionsClassName, theme = props.theme, forceResolveButtonSelected = props.forceResolveButtonSelected, searchForMoreButtonSelected = props.searchForMoreButtonSelected;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var actionButtonStyles = {\n backgroundColor: 'transparent',\n border: 0,\n cursor: 'pointer',\n margin: 0,\n paddingLeft: 8,\n position: 'relative',\n borderTop: \"1px solid \".concat(palette.neutralLight),\n height: 40,\n textAlign: 'left',\n width: '100%',\n fontSize: fonts.small.fontSize,\n selectors: {\n ':hover': {\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n cursor: 'pointer',\n },\n ':focus, :active': {\n backgroundColor: palette.themeLight,\n },\n '.ms-Button-icon': {\n fontSize: fonts.mediumPlus.fontSize,\n width: 25,\n },\n '.ms-Button-label': {\n margin: '0 4px 0 9px',\n },\n },\n };\n var actionButtonSelectedStyles = {\n backgroundColor: palette.themeLight,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n minWidth: 260,\n },\n className,\n ],\n suggestionsContainer: [\n classNames.suggestionsContainer,\n {\n overflowY: 'auto',\n overflowX: 'hidden',\n maxHeight: 300,\n transform: 'translate3d(0,0,0)',\n },\n suggestionsClassName,\n ],\n title: [\n classNames.title,\n {\n padding: '0 12px',\n fontSize: fonts.small.fontSize,\n color: palette.themePrimary,\n lineHeight: 40,\n borderBottom: \"1px solid \".concat(semanticColors.menuItemBackgroundPressed),\n },\n ],\n forceResolveButton: [\n classNames.forceResolveButton,\n actionButtonStyles,\n forceResolveButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n searchForMoreButton: [\n classNames.searchForMoreButton,\n actionButtonStyles,\n searchForMoreButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n noSuggestions: [\n classNames.noSuggestions,\n {\n textAlign: 'center',\n color: palette.neutralSecondary,\n fontSize: fonts.small.fontSize,\n lineHeight: 30,\n },\n ],\n suggestionsAvailable: [classNames.suggestionsAvailable, hiddenContentStyle],\n subComponentStyles: {\n spinner: {\n root: [\n classNames.spinner,\n {\n margin: '5px 0',\n paddingLeft: 14,\n textAlign: 'left',\n whiteSpace: 'nowrap',\n lineHeight: 20,\n fontSize: fonts.small.fontSize,\n },\n ],\n circle: {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n label: {\n display: 'inline-block',\n verticalAlign: 'middle',\n margin: '0 10px 0 16px',\n },\n },\n },\n };\n}\n//# sourceMappingURL=Suggestions.styles.js.map","/**\n * {@docCategory Pickers}\n */\nvar SuggestionsController = /** @class */ (function () {\n function SuggestionsController() {\n var _this = this;\n this._isSuggestionModel = function (value) {\n return value.item !== undefined;\n };\n this._ensureSuggestionModel = function (suggestion) {\n if (_this._isSuggestionModel(suggestion)) {\n return suggestion;\n }\n else {\n return {\n item: suggestion,\n selected: false,\n ariaLabel: suggestion.ariaLabel,\n };\n }\n };\n this.suggestions = [];\n this.currentIndex = -1;\n }\n SuggestionsController.prototype.updateSuggestions = function (newSuggestions, selectedIndex, maxCount) {\n if (newSuggestions && newSuggestions.length > 0) {\n if (maxCount && newSuggestions.length > maxCount) {\n var startIndex = selectedIndex && selectedIndex > maxCount ? selectedIndex + 1 - maxCount : 0;\n newSuggestions = newSuggestions.slice(startIndex, startIndex + maxCount - 1);\n }\n this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);\n this.currentIndex = selectedIndex ? selectedIndex : 0;\n if (selectedIndex === -1) {\n this.currentSuggestion = undefined;\n }\n else if (selectedIndex !== undefined) {\n this.suggestions[selectedIndex].selected = true;\n this.currentSuggestion = this.suggestions[selectedIndex];\n }\n }\n else {\n this.suggestions = [];\n this.currentIndex = -1;\n this.currentSuggestion = undefined;\n }\n };\n /**\n * Increments the suggestion index and gets the next suggestion in the list.\n */\n SuggestionsController.prototype.nextSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex < this.suggestions.length - 1) {\n this.setSelectedSuggestion(this.currentIndex + 1);\n return true;\n }\n else if (this.currentIndex === this.suggestions.length - 1) {\n this.setSelectedSuggestion(0);\n return true;\n }\n }\n return false;\n };\n /**\n * Decrements the suggestion index and gets the previous suggestion in the list.\n */\n SuggestionsController.prototype.previousSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex > 0) {\n this.setSelectedSuggestion(this.currentIndex - 1);\n return true;\n }\n else if (this.currentIndex === 0) {\n this.setSelectedSuggestion(this.suggestions.length - 1);\n return true;\n }\n }\n return false;\n };\n SuggestionsController.prototype.getSuggestions = function () {\n return this.suggestions;\n };\n SuggestionsController.prototype.getCurrentItem = function () {\n return this.currentSuggestion;\n };\n SuggestionsController.prototype.getSuggestionAtIndex = function (index) {\n return this.suggestions[index];\n };\n SuggestionsController.prototype.hasSelectedSuggestion = function () {\n return this.currentSuggestion ? true : false;\n };\n SuggestionsController.prototype.removeSuggestion = function (index) {\n this.suggestions.splice(index, 1);\n };\n SuggestionsController.prototype.createGenericSuggestion = function (itemToConvert) {\n var itemToAdd = this.convertSuggestionsToSuggestionItems([itemToConvert])[0];\n this.currentSuggestion = itemToAdd;\n };\n SuggestionsController.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {\n return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];\n };\n SuggestionsController.prototype.deselectAllSuggestions = function () {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n this.currentIndex = -1;\n }\n };\n SuggestionsController.prototype.setSelectedSuggestion = function (index) {\n if (index > this.suggestions.length - 1 || index < 0) {\n this.currentIndex = 0;\n this.currentSuggestion.selected = false;\n this.currentSuggestion = this.suggestions[0];\n this.currentSuggestion.selected = true;\n }\n else {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n }\n this.suggestions[index].selected = true;\n this.currentIndex = index;\n this.currentSuggestion = this.suggestions[index];\n }\n };\n return SuggestionsController;\n}());\nexport { SuggestionsController };\n//# sourceMappingURL=SuggestionsController.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".picker_94f06b16{position:relative}.pickerText_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid \" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";min-width:180px;min-height:30px}.pickerText_94f06b16:hover{border-color:\" }, { \"theme\": \"inputBorderHovered\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16{position:relative;border-color:\" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;border:2px solid \" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.pickerText_94f06b16.inputDisabled_94f06b16{position:relative;border-color:GrayText}.pickerText_94f06b16.inputDisabled_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:0;top:0;bottom:0;right:0;background-color:Window}}.pickerInput_94f06b16{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:0;padding:0 6px 0;-ms-flex-item-align:end;align-self:flex-end}.pickerItems_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%}.screenReaderOnly_94f06b16{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var picker = \"picker_94f06b16\";\nexport var pickerText = \"pickerText_94f06b16\";\nexport var inputFocused = \"inputFocused_94f06b16\";\nexport var inputDisabled = \"inputDisabled_94f06b16\";\nexport var pickerInput = \"pickerInput_94f06b16\";\nexport var pickerItems = \"pickerItems_94f06b16\";\nexport var screenReaderOnly = \"screenReaderOnly_94f06b16\";\n//# sourceMappingURL=BasePicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, css, elementContains, format, getId, classNamesFunction, styled, initializeComponentRef, } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { Selection, SelectionZone, SelectionMode } from '../../utilities/selection/index';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Suggestions } from './Suggestions/Suggestions';\nimport { getStyles as suggestionsStyles } from './Suggestions/Suggestions.styles';\nimport { SuggestionsController } from './Suggestions/SuggestionsController';\nimport { ValidationState } from './BasePicker.types';\nimport { Autofill } from '../Autofill/index';\nimport * as stylesImport from './BasePicker.scss';\nvar legacyStyles = stylesImport;\nvar EXTENDED_LOAD_TIME = 3000;\nvar getClassNames = classNamesFunction();\n/**\n * Should be removed once new picker without inheritance is created\n */\nfunction getStyledSuggestions(suggestionsType) {\n return styled(suggestionsType, suggestionsStyles, undefined, {\n scope: 'Suggestions',\n });\n}\n/**\n * {@docCategory Pickers}\n */\nvar BasePicker = /** @class */ (function (_super) {\n __extends(BasePicker, _super);\n function BasePicker(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n // Refs\n _this.root = React.createRef();\n _this.input = React.createRef();\n _this.suggestionElement = React.createRef();\n /**\n * @deprecated this is no longer necessary as typescript now supports generic elements\n */\n _this.SuggestionOfProperType = Suggestions;\n // eslint-disable-next-line deprecation/deprecation\n _this._styledSuggestions = getStyledSuggestions(_this.SuggestionOfProperType);\n _this._overrideScrollDismiss = false;\n _this.dismissSuggestions = function (ev) {\n var selectItemFunction = function () {\n var addItemOnDismiss = true;\n if (_this.props.onDismiss) {\n addItemOnDismiss = _this.props.onDismiss(ev, _this.suggestionStore.currentSuggestion ? _this.suggestionStore.currentSuggestion.item : undefined);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n // Select the first suggestion if one is available and permitted by onDismiss when user leaves.\n if (addItemOnDismiss !== false &&\n _this.canAddItems() &&\n _this.suggestionStore.hasSelectedSuggestion() &&\n _this.state.suggestedDisplayValue) {\n _this.addItemByIndex(0);\n }\n }\n };\n if (_this.currentPromise) {\n _this.currentPromise.then(function () { return selectItemFunction(); });\n }\n else {\n selectItemFunction();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.refocusSuggestions = function (keyCode) {\n _this.resetFocus();\n if (_this.suggestionStore.suggestions && _this.suggestionStore.suggestions.length > 0) {\n if (keyCode === KeyCodes.up) {\n _this.suggestionStore.setSelectedSuggestion(_this.suggestionStore.suggestions.length - 1);\n }\n else if (keyCode === KeyCodes.down) {\n _this.suggestionStore.setSelectedSuggestion(0);\n }\n }\n };\n _this.onInputChange = function (value) {\n _this.updateValue(value);\n _this.setState({\n moreSuggestionsAvailable: true,\n isMostRecentlyUsedVisible: false,\n });\n };\n _this.onSuggestionClick = function (ev, item, index) {\n _this.addItemByIndex(index);\n };\n _this.onSuggestionRemove = function (ev, item, index) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(item);\n }\n _this.suggestionStore.removeSuggestion(index);\n };\n _this.onInputFocus = function (ev) {\n _this.selection.setAllSelected(false);\n // Only trigger all of the focus if this component isn't already focused.\n // For example when an item is selected or removed from the selected list it should be treated\n // as though the input is still focused.\n if (!_this.state.isFocused) {\n _this._userTriggeredSuggestions();\n if (_this.props.inputProps && _this.props.inputProps.onFocus) {\n _this.props.inputProps.onFocus(ev);\n }\n }\n };\n _this.onInputBlur = function (ev) {\n if (_this.props.inputProps && _this.props.inputProps.onBlur) {\n _this.props.inputProps.onBlur(ev);\n }\n };\n _this.onBlur = function (ev) {\n if (_this.state.isFocused) {\n // Only blur the entire component if an unrelated element gets focus.\n // Otherwise treat it as though it still has focus.\n // Do nothing if the blur is coming from something\n // inside the comboBox root or the comboBox menu since\n // it we are not really bluring from the whole comboBox\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = document.activeElement;\n }\n if (relatedTarget && !elementContains(_this.root.current, relatedTarget)) {\n _this.setState({ isFocused: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n }\n }\n };\n /**\n * Resets focus to last element in wrapper div if clicking back into Picker that has hit item limit\n */\n _this.onWrapperClick = function (ev) {\n if (_this.state.items.length && !_this.canAddItems()) {\n _this.resetFocus(_this.state.items.length - 1);\n }\n };\n /**\n * Reveals suggestions any time the user clicks on the input element\n * without shifting focus.\n */\n _this.onClick = function (ev) {\n if (_this.props.inputProps !== undefined && _this.props.inputProps.onClick !== undefined) {\n _this.props.inputProps.onClick(ev);\n }\n // Only primary (left) clicks show suggestions.\n if (ev.button === 0) {\n _this._userTriggeredSuggestions();\n }\n };\n _this.onFocus = function () {\n if (!_this.state.isFocused) {\n _this.setState({ isFocused: true });\n }\n };\n _this.onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.which;\n switch (keyCode) {\n case KeyCodes.escape:\n if (_this.state.suggestionsVisible) {\n _this.setState({ suggestionsVisible: false });\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n case KeyCodes.tab:\n case KeyCodes.enter:\n if (_this.suggestionElement.current && _this.suggestionElement.current.hasSuggestedActionSelected()) {\n _this.suggestionElement.current.executeSelectedAction();\n }\n else if (!ev.shiftKey && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestionsVisible) {\n _this.completeSuggestion();\n ev.preventDefault();\n ev.stopPropagation();\n }\n else {\n _this._completeGenericSuggestion();\n }\n break;\n case KeyCodes.backspace:\n if (!_this.props.disabled) {\n _this.onBackspace(ev);\n }\n ev.stopPropagation();\n break;\n case KeyCodes.del:\n if (!_this.props.disabled) {\n if (_this.input.current &&\n ev.target === _this.input.current.inputElement &&\n _this.state.suggestionsVisible &&\n _this.suggestionStore.currentIndex !== -1) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(_this.suggestionStore.currentSuggestion.item);\n }\n _this.suggestionStore.removeSuggestion(_this.suggestionStore.currentIndex);\n _this.forceUpdate();\n }\n else {\n _this.onBackspace(ev);\n }\n }\n ev.stopPropagation();\n break;\n case KeyCodes.up:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex === 0) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusAboveSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.previousSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n case KeyCodes.down:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex + 1 === _this.suggestionStore.suggestions.length) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusBelowSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.nextSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n }\n };\n _this.onItemChange = function (changedItem, index) {\n var items = _this.state.items;\n if (index >= 0) {\n var newItems = items;\n newItems[index] = changedItem;\n _this._updateSelectedItems(newItems);\n }\n };\n _this.onGetMoreResults = function () {\n _this.setState({\n isSearching: true,\n }, function () {\n if (_this.props.onGetMoreResults && _this.input.current) {\n var suggestions = _this.props.onGetMoreResults(_this.input.current.value, _this.state.items);\n var suggestionsArray = suggestions;\n var suggestionsPromiseLike = suggestions;\n if (Array.isArray(suggestionsArray)) {\n _this.updateSuggestions(suggestionsArray);\n _this.setState({ isSearching: false });\n }\n else if (suggestionsPromiseLike.then) {\n suggestionsPromiseLike.then(function (newSuggestions) {\n _this.updateSuggestions(newSuggestions);\n _this.setState({ isSearching: false });\n });\n }\n }\n else {\n _this.setState({ isSearching: false });\n }\n if (_this.input.current) {\n _this.input.current.focus();\n }\n _this.setState({\n moreSuggestionsAvailable: false,\n isResultsFooterVisible: true,\n });\n });\n };\n _this.completeSelection = function (item) {\n _this.addItem(item);\n _this.updateValue('');\n if (_this.input.current) {\n _this.input.current.clear();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.addItemByIndex = function (index) {\n _this.completeSelection(_this.suggestionStore.getSuggestionAtIndex(index).item);\n };\n _this.addItem = function (item) {\n var processedItem = _this.props.onItemSelected\n ? _this.props.onItemSelected(item)\n : item;\n if (processedItem === null) {\n return;\n }\n var processedItemObject = processedItem;\n var processedItemPromiseLike = processedItem;\n if (processedItemPromiseLike && processedItemPromiseLike.then) {\n processedItemPromiseLike.then(function (resolvedProcessedItem) {\n var newItems = _this.state.items.concat([resolvedProcessedItem]);\n _this._updateSelectedItems(newItems);\n });\n }\n else {\n var newItems = _this.state.items.concat([processedItemObject]);\n _this._updateSelectedItems(newItems);\n }\n _this.setState({ suggestedDisplayValue: '', selectionRemoved: undefined });\n };\n _this.removeItem = function (item) {\n var items = _this.state.items;\n var index = items.indexOf(item);\n if (index >= 0) {\n var newItems = items.slice(0, index).concat(items.slice(index + 1));\n _this.setState({ selectionRemoved: item });\n _this._updateSelectedItems(newItems);\n // reset selection removed text after a timeout so it isn't reached by screen reader virtual cursor.\n // the exact timing isn't important, the live region will fully read even if the text is removed.\n _this._async.setTimeout(function () {\n _this.setState({ selectionRemoved: undefined });\n }, 1000);\n }\n };\n _this.removeItems = function (itemsToRemove) {\n var items = _this.state.items;\n var newItems = items.filter(function (item) { return itemsToRemove.indexOf(item) === -1; });\n _this._updateSelectedItems(newItems);\n };\n /**\n * @deprecated this is no longer necessary as focuszone has been removed\n */\n _this._shouldFocusZoneEnterInnerZone = function (ev) {\n // If suggestions are shown const up/down keys control them, otherwise allow them through to control the focusZone.\n if (_this.state.suggestionsVisible) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up:\n case KeyCodes.down:\n return true;\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n return true;\n }\n return false;\n };\n _this._onResolveSuggestions = function (updatedValue) {\n var suggestions = _this.props.onResolveSuggestions(updatedValue, _this.state.items);\n if (suggestions !== null) {\n _this.updateSuggestionsList(suggestions, updatedValue);\n }\n };\n _this._completeGenericSuggestion = function () {\n if (_this.props.onValidateInput &&\n _this.input.current &&\n _this.props.onValidateInput(_this.input.current.value) !== ValidationState.invalid &&\n _this.props.createGenericItem) {\n var itemToConvert = _this.props.createGenericItem(_this.input.current.value, _this.props.onValidateInput(_this.input.current.value));\n _this.suggestionStore.createGenericSuggestion(itemToConvert);\n _this.completeSuggestion();\n }\n };\n /**\n * This should be called when the user does something other than use text entry to trigger suggestions.\n *\n */\n _this._userTriggeredSuggestions = function () {\n if (!_this.state.suggestionsVisible) {\n var input = _this.input.current ? _this.input.current.value : '';\n if (!input) {\n _this.onEmptyInputFocus();\n }\n else {\n if (_this.suggestionStore.suggestions.length === 0) {\n _this._onResolveSuggestions(input);\n }\n else {\n _this.setState({\n isMostRecentlyUsedVisible: false,\n suggestionsVisible: true,\n });\n }\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];\n _this._id = getId();\n _this._ariaMap = {\n selectedItems: \"selected-items-\".concat(_this._id),\n selectedSuggestionAlert: \"selected-suggestion-alert-\".concat(_this._id),\n suggestionList: \"suggestion-list-\".concat(_this._id),\n combobox: \"combobox-\".concat(_this._id),\n };\n _this.suggestionStore = new SuggestionsController();\n _this.selection = new Selection({ onSelectionChanged: function () { return _this.onSelectionChange(); } });\n _this.selection.setItems(items);\n _this.state = {\n items: items,\n suggestedDisplayValue: '',\n isMostRecentlyUsedVisible: false,\n moreSuggestionsAvailable: false,\n isFocused: false,\n isSearching: false,\n selectedIndices: [],\n selectionRemoved: undefined,\n };\n return _this;\n }\n BasePicker.getDerivedStateFromProps = function (newProps) {\n if (newProps.selectedItems) {\n return { items: newProps.selectedItems };\n }\n return null;\n };\n Object.defineProperty(BasePicker.prototype, \"items\", {\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n BasePicker.prototype.componentDidMount = function () {\n this.selection.setItems(this.state.items);\n this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);\n };\n BasePicker.prototype.componentDidUpdate = function (oldProps, oldState) {\n var _this = this;\n if (this.state.items && this.state.items !== oldState.items) {\n var currentSelectedIndex = this.selection.getSelectedIndices()[0];\n this.selection.setItems(this.state.items);\n if (this.state.isFocused) {\n // Reset focus and selection so that selected item stays in sync if something\n // has been removed\n if (this.state.items.length < oldState.items.length) {\n this.selection.setIndexSelected(currentSelectedIndex, false, true);\n this.resetFocus(currentSelectedIndex);\n }\n // Reset focus to last item if the input is removed\n else if (this.state.items.length > oldState.items.length && !this.canAddItems()) {\n this.resetFocus(this.state.items.length - 1);\n }\n }\n }\n // handle dismiss buffer after suggestions are opened\n if (this.state.suggestionsVisible && !oldState.suggestionsVisible) {\n this._overrideScrollDismiss = true;\n this._async.clearTimeout(this._overrideScrollDimissTimeout);\n this._overrideScrollDimissTimeout = this._async.setTimeout(function () {\n _this._overrideScrollDismiss = false;\n }, 100);\n }\n };\n BasePicker.prototype.componentWillUnmount = function () {\n if (this.currentPromise) {\n this.currentPromise = undefined;\n }\n this._async.dispose();\n };\n BasePicker.prototype.focus = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BasePicker.prototype.focusInput = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BasePicker.prototype.completeSuggestion = function (forceComplete) {\n if (this.suggestionStore.hasSelectedSuggestion() && this.input.current) {\n this.completeSelection(this.suggestionStore.currentSuggestion.item);\n }\n else if (forceComplete) {\n this._completeGenericSuggestion();\n }\n };\n BasePicker.prototype.render = function () {\n var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused, items = _a.items;\n var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n var suggestionsVisible = !!this.state.suggestionsVisible;\n var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n disabled: disabled,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),\n itemsWrapper: legacyStyles.pickerItems,\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n // selectionAriaLabel is contained in a separate <span> rather than an aria-label on the items list\n // because if the items list has an aria-label, the aria-describedby on the input will only read\n // that label instead of all the selected items. Using aria-labelledby instead fixes this, since\n // aria-describedby and aria-labelledby will not follow a second aria-labelledby\n return (React.createElement(\"div\", { ref: this.root, className: classNames.root, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onWrapperClick },\n this.renderCustomAlert(classNames.screenReaderText),\n React.createElement(\"span\", { id: \"\".concat(this._ariaMap.selectedItems, \"-label\"), hidden: true }, selectionAriaLabel || comboLabel),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.multiple },\n React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n items.length > 0 && (React.createElement(\"span\", { id: this._ariaMap.selectedItems, className: classNames.itemsWrapper, role: selectionRole, \"aria-labelledby\": \"\".concat(this._ariaMap.selectedItems, \"-label\") }, this.renderItems())),\n this.canAddItems() && (React.createElement(Autofill, __assign({ spellCheck: false }, inputProps, { className: classNames.input, componentRef: this.input, id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, onClick: this.onClick, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-describedby\": items.length > 0 ? this._ariaMap.selectedItems : undefined, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, role: \"combobox\", disabled: disabled, onInputChange: this.props.onInputChange }))))),\n this.renderSuggestions()));\n };\n BasePicker.prototype.canAddItems = function () {\n var items = this.state.items;\n var itemLimit = this.props.itemLimit;\n return itemLimit === undefined || items.length < itemLimit;\n };\n BasePicker.prototype.renderSuggestions = function () {\n var _this = this;\n var StyledTypedSuggestions = this._styledSuggestions;\n return this.state.suggestionsVisible && this.input ? (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 5, target: this.input.current ? this.input.current.inputElement : undefined, onDismiss: this.dismissSuggestions, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintForRTL: DirectionalHint.bottomRightEdge, \n // eslint-disable-next-line react/jsx-no-bind\n preventDismissOnEvent: function (ev) { return _this._preventDismissOnScrollOrResize(ev); } }, this.props.pickerCalloutProps),\n React.createElement(StyledTypedSuggestions\n // Assumed to set in derived component's defaultProps\n , __assign({ \n // Assumed to set in derived component's defaultProps\n onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionElement, onGetMoreResults: this.onGetMoreResults, moreSuggestionsAvailable: this.state.moreSuggestionsAvailable, isLoading: this.state.suggestionsLoading, isExtendedLoading: this.state.suggestionsExtendedLoading, isSearching: this.state.isSearching, isMostRecentlyUsedVisible: this.state.isMostRecentlyUsedVisible, isResultsFooterVisible: this.state.isResultsFooterVisible, refocusSuggestions: this.refocusSuggestions, removeSuggestionAriaLabel: this.props.removeButtonAriaLabel, suggestionsListId: this._ariaMap.suggestionList, createGenericItem: this._completeGenericSuggestion }, this.props.pickerSuggestionsProps)))) : null;\n };\n BasePicker.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, removeButtonAriaLabel = _a.removeButtonAriaLabel, removeButtonIconProps = _a.removeButtonIconProps;\n var onRenderItem = this.props.onRenderItem;\n var _b = this.state, items = _b.items, selectedIndices = _b.selectedIndices;\n return items.map(function (item, index) {\n return onRenderItem({\n item: item,\n index: index,\n key: item.key ? item.key : index,\n selected: selectedIndices.indexOf(index) !== -1,\n onRemoveItem: function () { return _this.removeItem(item); },\n disabled: disabled,\n onItemChange: _this.onItemChange,\n removeButtonAriaLabel: removeButtonAriaLabel,\n removeButtonIconProps: removeButtonIconProps,\n });\n });\n };\n BasePicker.prototype.resetFocus = function (index) {\n var items = this.state.items;\n if (items.length) {\n // default to focusing the last item\n index = index !== null && index !== void 0 ? index : items.length - 1;\n var newEl = this.root.current &&\n this.root.current.querySelectorAll('[data-selection-index] > button')[Math.min(index, items.length - 1)];\n if (newEl) {\n newEl.focus();\n }\n }\n else {\n if (this.input.current) {\n this.input.current.focus();\n }\n }\n };\n BasePicker.prototype.onSuggestionSelect = function () {\n if (this.suggestionStore.currentSuggestion) {\n var currentValue = this.input.current ? this.input.current.value : '';\n var itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, currentValue);\n this.setState({ suggestedDisplayValue: itemValue });\n }\n };\n BasePicker.prototype.onSelectionChange = function () {\n this.setState({\n selectedIndices: this.selection.getSelectedIndices(),\n });\n };\n BasePicker.prototype.updateSuggestions = function (suggestions) {\n var _a;\n var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n this.suggestionStore.updateSuggestions(suggestions, 0, maxSuggestionsCount);\n this.forceUpdate();\n };\n /**\n * Only to be called when there is nothing in the input. Checks to see if the consumer has\n * provided a function to resolve suggestions\n */\n BasePicker.prototype.onEmptyInputFocus = function () {\n var emptyResolveSuggestions = this.props.onEmptyResolveSuggestions\n ? this.props.onEmptyResolveSuggestions\n : // eslint-disable-next-line deprecation/deprecation\n this.props.onEmptyInputFocus;\n // Only attempt to resolve suggestions if it exists\n if (emptyResolveSuggestions) {\n var suggestions = emptyResolveSuggestions(this.state.items);\n this.updateSuggestionsList(suggestions);\n this.setState({\n isMostRecentlyUsedVisible: true,\n suggestionsVisible: true,\n moreSuggestionsAvailable: false,\n });\n }\n };\n BasePicker.prototype.updateValue = function (updatedValue) {\n this._onResolveSuggestions(updatedValue);\n };\n BasePicker.prototype.updateSuggestionsList = function (suggestions, updatedValue) {\n var _this = this;\n // Check to see if the returned value is an array, if it is then just pass it into the next function .\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(suggestions)) {\n this._updateAndResolveValue(updatedValue, suggestions);\n }\n else if (suggestions && suggestions.then) {\n this.setState({\n suggestionsLoading: true,\n });\n this._startLoadTimer();\n // Clear suggestions\n this.suggestionStore.updateSuggestions([]);\n if (updatedValue !== undefined) {\n this.setState({\n suggestionsVisible: this._getShowSuggestions(),\n });\n }\n else {\n this.setState({\n suggestionsVisible: this.input.current && this.input.current.inputElement === document.activeElement,\n });\n }\n // Ensure that the promise will only use the callback if it was the most recent one.\n this.currentPromise = suggestions;\n suggestions.then(function (newSuggestions) {\n if (suggestions === _this.currentPromise) {\n _this._updateAndResolveValue(updatedValue, newSuggestions);\n }\n });\n }\n };\n BasePicker.prototype.resolveNewValue = function (updatedValue, suggestions) {\n var _this = this;\n this.updateSuggestions(suggestions);\n var itemValue = undefined;\n if (this.suggestionStore.currentSuggestion) {\n itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, updatedValue);\n }\n // Only set suggestionloading to false after there has been time for the new suggestions to flow\n // to the suggestions list. This is to ensure that the suggestions are available before aria-activedescendant\n // is set so that screen readers will read out the first selected option.\n this.setState({\n suggestedDisplayValue: itemValue,\n suggestionsVisible: this._getShowSuggestions(),\n }, function () { return _this.setState({ suggestionsLoading: false, suggestionsExtendedLoading: false }); });\n };\n BasePicker.prototype.onChange = function (items) {\n if (this.props.onChange) {\n this.props.onChange(items);\n }\n };\n // This is protected because we may expect the backspace key to work differently in a different kind of picker.\n // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow\n BasePicker.prototype.onBackspace = function (ev) {\n if ((this.state.items.length && !this.input.current) ||\n (this.input.current && !this.input.current.isValueSelected && this.input.current.cursorLocation === 0)) {\n if (this.selection.getSelectedCount() > 0) {\n this.removeItems(this.selection.getSelection());\n }\n else {\n this.removeItem(this.state.items[this.state.items.length - 1]);\n }\n }\n };\n BasePicker.prototype.getActiveDescendant = function () {\n var _a;\n if (this.state.suggestionsLoading) {\n return undefined;\n }\n var currentIndex = this.suggestionStore.currentIndex;\n if (currentIndex < 0) {\n // if the suggestions element has actions and the currentIndex does not point to a suggestion,\n // return the action id\n if ((_a = this.suggestionElement.current) === null || _a === void 0 ? void 0 : _a.hasSuggestedAction()) {\n return 'sug-selectedAction';\n }\n // If there are no suggestions and no action suggested, then return the ID for the no results found.\n if (this.suggestionStore.suggestions.length === 0) {\n return 'sug-noResultsFound';\n }\n return undefined;\n }\n else {\n return \"sug-\".concat(currentIndex);\n }\n };\n /** @deprecated use renderCustomAlert instead */\n BasePicker.prototype.getSuggestionsAlert = function (suggestionAlertClassName) {\n if (suggestionAlertClassName === void 0) { suggestionAlertClassName = legacyStyles.screenReaderOnly; }\n var currentIndex = this.suggestionStore.currentIndex;\n if (this.props.enableSelectedSuggestionAlert) {\n var selectedSuggestion = currentIndex > -1 ? this.suggestionStore.getSuggestionAtIndex(this.suggestionStore.currentIndex) : undefined;\n var selectedSuggestionAlertText = selectedSuggestion ? selectedSuggestion.ariaLabel : undefined;\n // keeping the id/className here for legacy support\n return (React.createElement(\"div\", { id: this._ariaMap.selectedSuggestionAlert, className: suggestionAlertClassName }, \"\".concat(selectedSuggestionAlertText, \" \")));\n }\n };\n BasePicker.prototype.renderCustomAlert = function (alertClassName) {\n if (alertClassName === void 0) { alertClassName = legacyStyles.screenReaderOnly; }\n var _a = this.props.suggestionRemovedText, suggestionRemovedText = _a === void 0 ? 'removed {0}' : _a;\n var removedItemText = '';\n if (this.state.selectionRemoved) {\n var itemName = this._getTextFromItem(this.state.selectionRemoved, '');\n removedItemText = format(suggestionRemovedText, itemName);\n }\n return (React.createElement(\"div\", { className: alertClassName, id: this._ariaMap.selectedSuggestionAlert, \"aria-live\": \"assertive\" },\n // eslint-disable-next-line deprecation/deprecation\n this.getSuggestionsAlert(alertClassName),\n removedItemText));\n };\n // do not dismiss if the window resizes or scrolls within 100ms of opening\n // this prevents the Android issue where pickers immediately dismiss on open, because the keyboard appears\n BasePicker.prototype._preventDismissOnScrollOrResize = function (ev) {\n if (this._overrideScrollDismiss && (ev.type === 'scroll' || ev.type === 'resize')) {\n return true;\n }\n return false;\n };\n /** If suggestions are still loading after a predefined amount of time, set state to show user alert */\n BasePicker.prototype._startLoadTimer = function () {\n var _this = this;\n this._async.setTimeout(function () {\n if (_this.state.suggestionsLoading) {\n _this.setState({ suggestionsExtendedLoading: true });\n }\n }, EXTENDED_LOAD_TIME);\n };\n /**\n * Takes in the current updated value and either resolves it with the new suggestions\n * or if updated value is undefined then it clears out currently suggested items\n */\n BasePicker.prototype._updateAndResolveValue = function (updatedValue, newSuggestions) {\n var _a;\n if (updatedValue !== undefined) {\n this.resolveNewValue(updatedValue, newSuggestions);\n }\n else {\n var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n this.suggestionStore.updateSuggestions(newSuggestions, -1, maxSuggestionsCount);\n if (this.state.suggestionsLoading) {\n this.setState({\n suggestionsLoading: false,\n suggestionsExtendedLoading: false,\n });\n }\n }\n };\n /**\n * Controls what happens whenever there is an action that impacts the selected items.\n * If `selectedItems` is provided, this will act as a controlled component and it will not update its own state.\n */\n BasePicker.prototype._updateSelectedItems = function (items) {\n var _this = this;\n if (this.props.selectedItems) {\n // If the component is a controlled component then the controlling component will need to add or remove the items.\n this.onChange(items);\n }\n else {\n this.setState({ items: items }, function () {\n _this._onSelectedItemsUpdated(items);\n });\n }\n };\n BasePicker.prototype._onSelectedItemsUpdated = function (items) {\n this.onChange(items);\n };\n /**\n * Suggestions are normally shown after the user updates text and the text\n * is non-empty, but also when the user clicks on the input element.\n * @returns True if suggestions should be shown.\n */\n BasePicker.prototype._getShowSuggestions = function () {\n var areSuggestionsVisible = this.input.current !== undefined &&\n this.input.current !== null &&\n this.input.current.inputElement === document.activeElement &&\n this.input.current.value !== '';\n return areSuggestionsVisible;\n };\n BasePicker.prototype._getTextFromItem = function (item, currentValue) {\n if (this.props.getTextFromItem) {\n return this.props.getTextFromItem(item, currentValue);\n }\n else {\n return '';\n }\n };\n return BasePicker;\n}(React.Component));\nexport { BasePicker };\nvar BasePickerListBelow = /** @class */ (function (_super) {\n __extends(BasePickerListBelow, _super);\n function BasePickerListBelow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BasePickerListBelow.prototype.render = function () {\n var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused;\n var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n var suggestionsVisible = !!this.state.suggestionsVisible;\n var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', legacyStyles.picker, className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused, disabled && legacyStyles.inputDisabled),\n itemsWrapper: legacyStyles.pickerItems,\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n return (React.createElement(\"div\", { ref: this.root, onBlur: this.onBlur, onFocus: this.onFocus },\n React.createElement(\"div\", { className: classNames.root, onKeyDown: this.onKeyDown },\n this.renderCustomAlert(classNames.screenReaderText),\n React.createElement(\"span\", { id: \"\".concat(this._ariaMap.selectedItems, \"-label\"), hidden: true }, selectionAriaLabel || comboLabel),\n React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n React.createElement(Autofill, __assign({}, inputProps, { className: classNames.input, componentRef: this.input, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onClick, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, \"aria-describedby\": this.state.items.length > 0 ? this._ariaMap.selectedItems : undefined, role: \"combobox\", id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, disabled: disabled, onInputChange: this.props.onInputChange })))),\n this.renderSuggestions(),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.single },\n React.createElement(\"div\", { id: this._ariaMap.selectedItems, className: \"ms-BasePicker-selectedItems\" // just a className hook without any styles applied to it.\n , role: selectionRole, \"aria-labelledby\": \"\".concat(this._ariaMap.selectedItems, \"-label\") }, this.renderItems()))));\n };\n BasePickerListBelow.prototype.onBackspace = function (ev) {\n // override the existing backspace method to not do anything because the list items appear below.\n };\n return BasePickerListBelow;\n}(BasePicker));\nexport { BasePickerListBelow };\n//# sourceMappingURL=BasePicker.js.map","import { getGlobalClassNames, getInputFocusStyle, getPlaceholderStyles, hiddenContentStyle, HighContrastSelector, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-BasePicker',\n text: 'ms-BasePicker-text',\n itemsWrapper: 'ms-BasePicker-itemsWrapper',\n input: 'ms-BasePicker-input',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isFocused = props.isFocused, inputClassName = props.inputClassName, disabled = props.disabled;\n if (!theme) {\n throw new Error('theme is undefined or null in base BasePicker getStyles function.');\n }\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var inputBorder = semanticColors.inputBorder, inputBorderHovered = semanticColors.inputBorderHovered, inputFocusBorderAlt = semanticColors.inputFocusBorderAlt;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // placeholder style constants\n var placeholderStyles = [\n fonts.medium,\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n };\n // The following lines are to create a semi-transparent color overlay for the disabled state with designer's approval.\n // @todo: investigate the performance cost of the calculation below and apply if negligible.\n // Replacing with a static color for now.\n // const rgbColor: IRGB | undefined = cssColor(palette.neutralQuaternaryAlt);\n // const disabledOverlayColor = rgbColor ? `rgba(${rgbColor.r}, ${rgbColor.g}, ${rgbColor.b}, 0.29)` : 'transparent';\n var disabledOverlayColor = 'rgba(218, 218, 218, 0.29)';\n return {\n root: [classNames.root, className, { position: 'relative' }],\n text: [\n classNames.text,\n {\n display: 'flex',\n position: 'relative',\n flexWrap: 'wrap',\n alignItems: 'center',\n boxSizing: 'border-box',\n minWidth: 180,\n minHeight: 30,\n border: \"1px solid \".concat(inputBorder),\n borderRadius: effects.roundedCorner2,\n },\n !isFocused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: inputBorderHovered,\n },\n },\n },\n isFocused && !disabled && getInputFocusStyle(inputFocusBorderAlt, effects.roundedCorner2),\n disabled && {\n borderColor: disabledOverlayColor,\n selectors: (_c = {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n background: disabledOverlayColor,\n }\n },\n _c[HighContrastSelector] = {\n borderColor: 'GrayText',\n selectors: {\n ':after': {\n background: 'none',\n },\n },\n },\n _c),\n },\n ],\n itemsWrapper: [\n classNames.itemsWrapper,\n {\n display: 'flex',\n flexWrap: 'wrap',\n maxWidth: '100%',\n },\n ],\n input: [\n classNames.input,\n fonts.medium,\n {\n height: 30,\n border: 'none',\n flexGrow: 1,\n outline: 'none',\n padding: '0 6px 0',\n alignSelf: 'flex-end',\n borderRadius: effects.roundedCorner2,\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n '&:placeholder-shown': {\n textOverflow: 'ellipsis',\n },\n },\n },\n getPlaceholderStyles(placeholderStyles),\n disabled && getPlaceholderStyles(disabledPlaceholderStyles),\n inputClassName,\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=BasePicker.styles.js.map","/**\n * Validation state of the user's input.\n * {@docCategory Pickers}\n */\nexport var ValidationState;\n(function (ValidationState) {\n /** User input is valid. */\n ValidationState[ValidationState[\"valid\"] = 0] = \"valid\";\n /** User input could be valid or invalid, its state is not known yet. */\n ValidationState[ValidationState[\"warning\"] = 1] = \"warning\";\n /** User input is invalid. */\n ValidationState[ValidationState[\"invalid\"] = 2] = \"invalid\";\n})(ValidationState || (ValidationState = {}));\n//# sourceMappingURL=BasePicker.types.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../../Styling';\nimport { SuggestionsItemGlobalClassNames as suggested } from '../../Suggestions/SuggestionsItem.styles';\nvar GlobalClassNames = {\n root: 'ms-PeoplePicker-personaContent',\n personaWrapper: 'ms-PeoplePicker-Persona',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var textSelectorsStyles = {\n selectors: (_a = {},\n _a[\".\".concat(suggested.isSuggested, \" &\")] = {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _b),\n },\n _a[\".\".concat(classNames.root, \":hover &\")] = {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _c),\n },\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n width: '100%',\n padding: '4px 12px',\n },\n className,\n ],\n personaWrapper: [\n classNames.personaWrapper,\n {\n width: 180,\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: textSelectorsStyles,\n secondaryText: textSelectorsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItemSuggestion.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { getStyles } from './PeoplePickerItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemSuggestionBase = function (props) {\n var personaProps = props.personaProps, suggestionsProps = props.suggestionsProps, compact = props.compact, styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: (suggestionsProps && suggestionsProps.suggestionsItemClassName) || className,\n });\n var personaStyles = classNames.subComponentStyles && classNames.subComponentStyles.persona\n ? classNames.subComponentStyles.persona\n : undefined;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, className: classNames.personaWrapper, showSecondaryText: !compact, showOverflowTooltip: false }, personaProps))));\n};\nexport var PeoplePickerItemSuggestion = styled(PeoplePickerItemSuggestionBase, getStyles, undefined, { scope: 'PeoplePickerItemSuggestion' });\n//# sourceMappingURL=PeoplePickerItemSuggestion.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, getInitials, styled } from '../../../Utilities';\nimport { BasePicker, BasePickerListBelow } from '../BasePicker';\nimport { ValidationState } from '../BasePicker.types';\nimport { PeoplePickerItem } from './PeoplePickerItems/PeoplePickerItem';\nimport { PeoplePickerItemSuggestion } from './PeoplePickerItems/PeoplePickerItemSuggestion';\nimport { getStyles } from '../BasePicker.styles';\n/**\n * {@docCategory PeoplePicker}\n */\nvar BasePeoplePicker = /** @class */ (function (_super) {\n __extends(BasePeoplePicker, _super);\n function BasePeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BasePeoplePicker;\n}(BasePicker));\nexport { BasePeoplePicker };\n/**\n * {@docCategory PeoplePicker}\n */\nvar MemberListPeoplePicker = /** @class */ (function (_super) {\n __extends(MemberListPeoplePicker, _super);\n function MemberListPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MemberListPeoplePicker;\n}(BasePickerListBelow));\nexport { MemberListPeoplePicker };\n/**\n * Standard People Picker.\n * {@docCategory PeoplePicker}\n */\nvar NormalPeoplePickerBase = /** @class */ (function (_super) {\n __extends(NormalPeoplePickerBase, _super);\n function NormalPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for NormalPeoplePicker. */\n NormalPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return NormalPeoplePickerBase;\n}(BasePeoplePicker));\nexport { NormalPeoplePickerBase };\n/**\n * Compact layout. It uses personas without secondary text when displaying search results.\n * {@docCategory PeoplePicker}\n */\nvar CompactPeoplePickerBase = /** @class */ (function (_super) {\n __extends(CompactPeoplePickerBase, _super);\n function CompactPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for CompactPeoplePicker. */\n CompactPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps, compact: true })); },\n createGenericItem: createGenericItem,\n };\n return CompactPeoplePickerBase;\n}(BasePeoplePicker));\nexport { CompactPeoplePickerBase };\n/**\n * MemberList layout. The selected people show up below the search box.\n * {@docCategory PeoplePicker}\n */\nvar ListPeoplePickerBase = /** @class */ (function (_super) {\n __extends(ListPeoplePickerBase, _super);\n function ListPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for ListPeoplePicker. */\n ListPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return ListPeoplePickerBase;\n}(MemberListPeoplePicker));\nexport { ListPeoplePickerBase };\n/**\n * {@docCategory PeoplePicker}\n */\nexport function createGenericItem(name, currentValidationState) {\n var personaToConvert = {\n key: name,\n primaryText: name,\n imageInitials: '!',\n ValidationState: currentValidationState,\n };\n if (currentValidationState !== ValidationState.warning) {\n personaToConvert.imageInitials = getInitials(name, getRTL());\n }\n return personaToConvert;\n}\nexport var NormalPeoplePicker = styled(NormalPeoplePickerBase, getStyles, undefined, {\n scope: 'NormalPeoplePicker',\n});\nexport var CompactPeoplePicker = styled(CompactPeoplePickerBase, getStyles, undefined, {\n scope: 'CompactPeoplePicker',\n});\nexport var ListPeoplePicker = styled(ListPeoplePickerBase, getStyles, undefined, {\n scope: 'ListPeoplePickerBase',\n});\n//# sourceMappingURL=PeoplePicker.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../../Styling';\nimport { ButtonGlobalClassNames } from '../../../Button/BaseButton.classNames';\nvar GlobalClassNames = {\n root: 'ms-PickerPersona-container',\n itemContent: 'ms-PickerItem-content',\n removeButton: 'ms-PickerItem-removeButton',\n isSelected: 'is-selected',\n isInvalid: 'is-invalid',\n};\nvar REMOVE_BUTTON_SIZE = 24;\nvar PICKER_PERSONA_RADIUS = 15;\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var className = props.className, theme = props.theme, selected = props.selected, invalid = props.invalid, disabled = props.disabled;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var personaPrimaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_a = {\n ':hover': {\n color: palette.white,\n }\n },\n _a[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _a),\n },\n ((invalid && !selected) || (invalid && selected && disabled)) && {\n color: palette.redDark,\n borderBottom: \"2px dotted \".concat(palette.redDark),\n selectors: (_b = {},\n _b[\".\".concat(classNames.root, \":hover &\")] = {\n // override Persona root:hover selector\n color: palette.redDark,\n },\n _b),\n },\n invalid &&\n selected &&\n !disabled && {\n color: palette.white,\n borderBottom: \"2px dotted \".concat(palette.white),\n },\n disabled && {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n ];\n var personaSecondaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_d = {\n ':hover': {\n color: palette.white,\n }\n },\n _d[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _d),\n },\n ];\n var personaCoinInitialsStyles = [\n invalid && {\n fontSize: fonts.xLarge.fontSize,\n },\n ];\n return {\n root: [\n classNames.root,\n getFocusStyle(theme, { inset: -2 }),\n {\n borderRadius: PICKER_PERSONA_RADIUS,\n display: 'inline-flex',\n alignItems: 'center',\n background: palette.neutralLighter,\n margin: '1px 2px',\n cursor: 'default',\n userSelect: 'none',\n maxWidth: 300,\n verticalAlign: 'middle',\n minWidth: 0,\n selectors: (_e = {\n ':hover': {\n background: !selected && !disabled ? palette.neutralLight : '',\n }\n },\n _e[HighContrastSelector] = [{ border: '1px solid WindowText' }, disabled && { borderColor: 'GrayText' }],\n _e),\n },\n selected &&\n !disabled && [\n classNames.isSelected,\n {\n background: palette.themePrimary,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'HighLight', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n ],\n invalid && [classNames.isInvalid],\n invalid &&\n selected &&\n !disabled && {\n background: palette.redDark,\n },\n className,\n ],\n itemContent: [\n classNames.itemContent,\n {\n flex: '0 1 auto',\n minWidth: 0,\n // CSS below is needed for IE 11 to properly truncate long persona names in the picker\n // and to clip the presence indicator (in all browsers)\n maxWidth: '100%',\n overflow: 'hidden',\n },\n ],\n removeButton: [\n classNames.removeButton,\n {\n borderRadius: PICKER_PERSONA_RADIUS,\n color: palette.neutralPrimary,\n flex: '0 0 auto',\n width: REMOVE_BUTTON_SIZE,\n height: REMOVE_BUTTON_SIZE,\n selectors: {\n ':hover': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n },\n },\n },\n selected && [\n getFocusStyle(theme, {\n inset: 2,\n borderColor: 'transparent',\n highContrastStyle: { inset: 2, left: 1, top: 1, bottom: 1, right: 1, outlineColor: 'ButtonText' },\n outlineColor: palette.white,\n borderRadius: PICKER_PERSONA_RADIUS,\n }),\n {\n color: palette.white,\n selectors: (_g = {\n ':hover': {\n color: palette.white,\n background: palette.themeDark,\n },\n ':active': {\n color: palette.white,\n background: palette.themeDarker,\n }\n },\n _g[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _g),\n },\n invalid && {\n selectors: {\n ':hover': {\n background: palette.red,\n },\n ':active': {\n background: palette.redDark,\n },\n },\n },\n ],\n disabled && {\n selectors: (_h = {},\n _h[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: semanticColors.buttonText,\n },\n _h),\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: personaPrimaryTextStyles,\n secondaryText: personaSecondaryTextStyles,\n },\n personaCoin: {\n initials: personaCoinInitialsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getId, classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { IconButton } from '../../../../Button';\nimport { ValidationState } from '../../BasePicker.types';\nimport { getStyles } from './PeoplePickerItem.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemBase = function (props) {\n var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled, removeButtonIconProps = props.removeButtonIconProps;\n var buttonRef = React.createRef();\n var handleClick = function () {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n };\n var itemId = getId();\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: selected,\n disabled: disabled,\n invalid: item.ValidationState === ValidationState.warning,\n });\n var personaStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.persona\n : undefined;\n var personaCoinStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.personaCoin\n : undefined;\n return (React.createElement(\"div\", { \"data-selection-index\": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },\n React.createElement(\"div\", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))),\n React.createElement(IconButton, { componentRef: buttonRef, id: itemId, onClick: onRemoveItem, disabled: disabled, iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel, \"aria-labelledby\": \"\".concat(itemId, \" selectedItemPersona-\").concat(itemId) })));\n};\nexport var PeoplePickerItem = styled(PeoplePickerItemBase, getStyles, undefined, { scope: 'PeoplePickerItem' });\n//# sourceMappingURL=PeoplePickerItem.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nexport var SuggestionsItemGlobalClassNames = {\n root: 'ms-Suggestions-item',\n itemButton: 'ms-Suggestions-itemButton',\n closeButton: 'ms-Suggestions-closeButton',\n isSuggested: 'is-suggested',\n};\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f;\n var className = props.className, theme = props.theme, suggested = props.suggested;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(SuggestionsItemGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n alignItems: 'stretch',\n boxSizing: 'border-box',\n width: '100%',\n position: 'relative',\n selectors: {\n '&:hover': {\n background: semanticColors.menuItemBackgroundHovered,\n },\n '&:hover .ms-Suggestions-closeButton': {\n display: 'block',\n },\n },\n },\n suggested && {\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n selectors: (_b = {},\n _b[\".\".concat(classNames.closeButton)] = {\n display: 'block',\n background: semanticColors.menuItemBackgroundPressed,\n },\n _b),\n },\n _a[':after'] = {\n pointerEvents: 'none',\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n border: \"1px solid \".concat(theme.semanticColors.focusBorder),\n },\n _a),\n },\n className,\n ],\n itemButton: [\n classNames.itemButton,\n {\n width: '100%',\n padding: 0,\n border: 'none',\n height: '100%',\n // Force the item button to be collapsible so it can always shrink\n // to accommodate the close button as a peer in its flex container.\n minWidth: 0,\n // Require for IE11 to truncate the component.\n overflow: 'hidden',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n selectors: {\n ':hover': __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n },\n },\n _c[':hover'] = {\n color: semanticColors.menuItemTextHovered,\n },\n _c),\n },\n suggested && [\n classNames.isSuggested,\n {\n background: semanticColors.menuItemBackgroundPressed,\n selectors: (_d = {\n ':hover': {\n background: semanticColors.menuDivider,\n }\n },\n _d[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n ],\n ],\n closeButton: [\n classNames.closeButton,\n {\n display: 'none',\n color: palette.neutralSecondary,\n padding: '0 4px',\n height: 'auto',\n width: 32,\n selectors: (_e = {\n ':hover, :active': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n }\n },\n _e[HighContrastSelector] = {\n color: 'WindowText',\n },\n _e),\n },\n suggested && (_f = {},\n _f[\".\".concat(IsFocusVisibleClassName, \" &\")] = {\n selectors: {\n ':hover, :active': {\n background: palette.neutralTertiary,\n },\n },\n },\n _f.selectors = {\n ':hover, :active': {\n background: palette.neutralTertiary,\n color: palette.neutralPrimary,\n },\n },\n _f),\n ],\n };\n}\n//# sourceMappingURL=SuggestionsItem.styles.js.map","import { getGlobalClassNames, getFocusStyle, HighContrastSelector } from '../../../Styling';\nimport { ButtonGlobalClassNames } from '../../Button/BaseButton.classNames';\nimport { getRTL } from '../../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-TagItem',\n text: 'ms-TagItem-text',\n close: 'ms-TagItem-close',\n isSelected: 'is-selected',\n};\nvar TAG_HEIGHT = 26;\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e;\n var className = props.className, theme = props.theme, selected = props.selected, disabled = props.disabled;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n getFocusStyle(theme),\n {\n boxSizing: 'content-box',\n flexShrink: '1',\n margin: 2,\n height: TAG_HEIGHT,\n lineHeight: TAG_HEIGHT,\n cursor: 'default',\n userSelect: 'none',\n display: 'flex',\n flexWrap: 'nowrap',\n maxWidth: 300,\n minWidth: 0,\n borderRadius: effects.roundedCorner2,\n color: semanticColors.inputText,\n background: palette.neutralLighter,\n selectors: (_a = {\n ':hover': [\n !disabled &&\n !selected && {\n color: palette.neutralDark,\n background: palette.neutralLight,\n selectors: {\n '.ms-TagItem-close': {\n color: palette.neutralPrimary,\n },\n },\n },\n disabled && { background: palette.neutralLighter },\n ]\n },\n _a[HighContrastSelector] = {\n border: \"1px solid \".concat(!selected ? 'WindowText' : 'WindowFrame'),\n },\n _a),\n },\n disabled && {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _b),\n },\n selected &&\n !disabled && [\n classNames.isSelected,\n {\n background: palette.themePrimary,\n color: palette.white,\n },\n ],\n className,\n ],\n text: [\n classNames.text,\n {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 30,\n margin: '0 8px',\n },\n disabled && {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n ],\n close: [\n classNames.close,\n getFocusStyle(theme, { borderColor: 'transparent', inset: 1, outlineColor: palette.white }),\n {\n color: palette.neutralSecondary,\n width: 30,\n height: '100%',\n flex: '0 0 auto',\n borderRadius: getRTL(theme)\n ? \"\".concat(effects.roundedCorner2, \" 0 0 \").concat(effects.roundedCorner2)\n : \"0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0\"),\n selectors: (_d = {\n ':hover': {\n background: palette.neutralQuaternaryAlt,\n color: palette.neutralPrimary,\n }\n },\n _d[\".\".concat(classNames.isSelected, \" &, :focus\")] = {\n color: palette.white,\n background: palette.themePrimary,\n },\n _d[':focus:hover'] = {\n color: palette.white,\n background: palette.themeDark,\n },\n _d[':active'] = {\n color: palette.white,\n backgroundColor: palette.themeDark,\n },\n _d),\n },\n disabled && {\n selectors: (_e = {},\n _e[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: palette.neutralSecondary,\n },\n _e),\n },\n ],\n };\n}\n//# sourceMappingURL=TagItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, classNamesFunction } from '../../../Utilities';\nimport { IconButton } from '../../../Button';\nimport { getStyles } from './TagItem.styles';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemBase = function (props) {\n var theme = props.theme, styles = props.styles, selected = props.selected, disabled = props.disabled, enableTagFocusInDisabledPicker = props.enableTagFocusInDisabledPicker, children = props.children, className = props.className, index = props.index, onRemoveItem = props.onRemoveItem, removeButtonAriaLabel = props.removeButtonAriaLabel, _a = props.title, title = _a === void 0 ? typeof props.children === 'string' ? props.children : props.item.name : _a, removeButtonIconProps = props.removeButtonIconProps;\n var buttonRef = React.createRef();\n var handleClick = function () {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: selected,\n disabled: disabled,\n });\n var itemId = useId();\n var disabledAttrs = enableTagFocusInDisabledPicker\n ? {\n 'aria-disabled': disabled,\n tabindex: 0,\n }\n : {\n disabled: disabled,\n };\n return (React.createElement(\"div\", { \"data-selection-index\": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },\n React.createElement(\"span\", { className: classNames.text, title: title, id: \"\".concat(itemId, \"-text\") }, children),\n React.createElement(IconButton, __assign({ componentRef: buttonRef, id: itemId, onClick: onRemoveItem }, disabledAttrs, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.close, \"aria-labelledby\": \"\".concat(itemId, \"-removeLabel \").concat(itemId, \"-text\") })),\n React.createElement(\"span\", { id: \"\".concat(itemId, \"-removeLabel\"), hidden: true }, removeButtonAriaLabel)));\n};\nexport var TagItem = styled(TagItemBase, getStyles, undefined, {\n scope: 'TagItem',\n});\n//# sourceMappingURL=TagItem.js.map","import { getGlobalClassNames } from '../../../Styling';\nvar GlobalClassNames = {\n suggestionTextOverflow: 'ms-TagItem-TextOverflow',\n};\nexport function getStyles(props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n suggestionTextOverflow: [\n classNames.suggestionTextOverflow,\n {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '60vw',\n padding: '6px 12px 7px',\n whiteSpace: 'nowrap',\n },\n className,\n ],\n };\n}\n//# sourceMappingURL=TagItemSuggestion.styles.js.map","import * as React from 'react';\nimport { classNamesFunction, styled } from '../../../Utilities';\nimport { getStyles } from './TagItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory TagPicker}\n */\nexport var TagItemSuggestionBase = function (props) {\n var styles = props.styles, theme = props.theme, children = props.children;\n var classNames = getClassNames(styles, {\n theme: theme,\n });\n return React.createElement(\"div\", { className: classNames.suggestionTextOverflow },\n \" \",\n children,\n \" \");\n};\nexport var TagItemSuggestion = styled(TagItemSuggestionBase, getStyles, undefined, { scope: 'TagItemSuggestion' });\n//# sourceMappingURL=TagItemSuggestion.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { styled } from '../../../Utilities';\nimport { BasePicker } from '../BasePicker';\nimport { getStyles } from '../BasePicker.styles';\nimport { TagItem } from './TagItem';\nimport { TagItemSuggestion } from './TagItemSuggestion';\n/**\n * {@docCategory TagPicker}\n */\nvar TagPickerBase = /** @class */ (function (_super) {\n __extends(TagPickerBase, _super);\n function TagPickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TagPickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(TagItem, __assign({}, props), props.item.name); },\n onRenderSuggestionsItem: function (props) { return React.createElement(TagItemSuggestion, null, props.name); },\n };\n return TagPickerBase;\n}(BasePicker));\nexport { TagPickerBase };\nexport var TagPicker = styled(TagPickerBase, getStyles, undefined, {\n scope: 'TagPicker',\n});\n//# sourceMappingURL=TagPicker.js.map","import * as React from 'react';\nexport var ThemeContext = React.createContext(undefined);\n//# sourceMappingURL=ThemeContext.js.map","import { useContext } from 'react';\nimport { useCustomizationSettings } from '@fluentui/utilities';\nimport { createTheme } from '@fluentui/theme';\nimport { ThemeContext } from './ThemeContext';\n/**\n * Get theme from CustomizerContext or Customizations singleton.\n */\nfunction useCompatTheme() {\n return useCustomizationSettings(['theme']).theme;\n}\n/**\n * React hook for programmatically accessing the theme.\n */\nexport var useTheme = function () {\n var theme = useContext(ThemeContext);\n var legacyTheme = useCompatTheme();\n return theme || legacyTheme || createTheme({});\n};\n//# sourceMappingURL=useTheme.js.map","import { MAX_COLOR_ALPHA } from './consts';\n/**\n * @internal\n * Get a CSS color string from some color components.\n * If `a` is specified and not 100, returns an `rgba()` string.\n * Otherwise returns `hex` prefixed with #.\n */\nexport function _rgbaOrHexString(r, g, b, a, hex) {\n return a === MAX_COLOR_ALPHA || typeof a !== 'number' ? \"#\".concat(hex) : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a / MAX_COLOR_ALPHA, \")\");\n}\n//# sourceMappingURL=_rgbaOrHexString.js.map","/** Clamp a value to ensure it falls within a given range. */\nexport function clamp(value, max, min) {\n if (min === void 0) { min = 0; }\n return value < min ? min : value > max ? max : value;\n}\n//# sourceMappingURL=clamp.js.map","export var MAX_COLOR_SATURATION = 100;\nexport var MAX_COLOR_HUE = 359;\nexport var MAX_COLOR_VALUE = 100;\nexport var MAX_COLOR_RGB = 255;\n/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */\nexport var MAX_COLOR_RGBA = MAX_COLOR_RGB;\nexport var MAX_COLOR_ALPHA = 100;\n/** Minimum length for a hexadecimal color string (not including the #) */\nexport var MIN_HEX_LENGTH = 3;\n/** Maximum length for a hexadecimal color string (not including the #) */\nexport var MAX_HEX_LENGTH = 6;\n/** Minimum length for a string of an RGBA color component */\nexport var MIN_RGBA_LENGTH = 1;\n/** Maximum length for a string of an RGBA color component */\nexport var MAX_RGBA_LENGTH = 3;\n/** Regular expression matching only valid hexadecimal chars */\nexport var HEX_REGEX = /^[\\da-f]{0,6}$/i;\n/** Regular expression matching only numbers */\nexport var RGBA_REGEX = /^\\d{0,3}$/;\n//# sourceMappingURL=consts.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { rgb2hsv } from './rgb2hsv';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/** Converts an RGBA color to a color object (alpha defaults to 100). */\nexport function getColorFromRGBA(rgba) {\n var _a = rgba.a, a = _a === void 0 ? MAX_COLOR_ALPHA : _a, b = rgba.b, g = rgba.g, r = rgba.r;\n var _b = rgb2hsv(r, g, b), h = _b.h, s = _b.s, v = _b.v;\n var hex = rgb2hex(r, g, b);\n var str = _rgbaOrHexString(r, g, b, a, hex);\n var t = MAX_COLOR_ALPHA - a;\n return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v, t: t };\n}\n//# sourceMappingURL=getColorFromRGBA.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts RGB components to an HSV color. */\nexport function rgb2hsv(r, g, b) {\n var h = NaN;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n // hue\n if (delta === 0) {\n h = 0;\n }\n else if (r === max) {\n h = ((g - b) / delta) % 6;\n }\n else if (g === max) {\n h = (b - r) / delta + 2;\n }\n else if (b === max) {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n if (h < 0) {\n h += 360;\n }\n // saturation\n var s = Math.round((max === 0 ? 0 : delta / max) * 100);\n // value\n var v = Math.round((max / MAX_COLOR_RGB) * 100);\n return { h: h, s: s, v: v };\n}\n//# sourceMappingURL=rgb2hsv.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { hsl2rgb } from './hsl2rgb';\n/**\n * Converts a valid CSS color string to an RGB color.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n * Alpha in returned color defaults to 100.\n * Four and eight digit hex values (with alpha) are supported if the current browser supports them.\n */\nexport function cssColor(color) {\n if (!color) {\n return undefined;\n }\n // Need to check the following valid color formats: RGB(A), HSL(A), hex, named color\n // First check for well formatted RGB(A), HSL(A), and hex formats at the start.\n // This is for perf (no creating an element) and catches the intentional \"transparent\" color\n // case early on.\n var easyColor = _rgba(color) || _hex6(color) || _hex3(color) || _hsla(color);\n if (easyColor) {\n return easyColor;\n }\n // if the above fails, do the more expensive catch-all\n return _browserCompute(color);\n}\n/**\n * Uses the browser's getComputedStyle() to determine what the passed-in color is.\n * This assumes _rgba, _hex6, _hex3, and _hsla have already been tried and all failed.\n * This works by attaching an element to the DOM, which may fail in server-side rendering\n * or with headless browsers.\n */\nfunction _browserCompute(str) {\n if (typeof document === 'undefined') {\n // don't throw an error when used server-side\n return undefined;\n }\n var elem = document.createElement('div');\n elem.style.backgroundColor = str;\n // This element must be attached to the DOM for getComputedStyle() to have a value\n elem.style.position = 'absolute';\n elem.style.top = '-9999px';\n elem.style.left = '-9999px';\n elem.style.height = '1px';\n elem.style.width = '1px';\n document.body.appendChild(elem);\n var eComputedStyle = getComputedStyle(elem);\n var computedColor = eComputedStyle && eComputedStyle.backgroundColor;\n document.body.removeChild(elem);\n // computedColor is always an RGB(A) string, except for invalid colors in IE/Edge which return 'transparent'\n // browsers return one of these if the color string is invalid,\n // so need to differentiate between an actual error and intentionally passing in this color\n if (computedColor === 'rgba(0, 0, 0, 0)' || computedColor === 'transparent') {\n switch (str.trim()) {\n // RGB and HSL were already checked at the start of the function\n case 'transparent':\n case '#0000':\n case '#00000000':\n return { r: 0, g: 0, b: 0, a: 0 };\n }\n return undefined;\n }\n return _rgba(computedColor);\n}\n/**\n * If `str` is in valid `rgb()` or `rgba()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _rgba(str) {\n if (!str) {\n return undefined;\n }\n var match = str.match(/^rgb(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA,\n };\n }\n }\n}\n/**\n * If `str` is in `hsl()` or `hsla()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _hsla(str) {\n var match = str.match(/^hsl(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n var rgba = hsl2rgb(parts[0], parts[1], parts[2]);\n rgba.a = hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA;\n return rgba;\n }\n }\n}\n/**\n * If `str` is in valid 6-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex6(str) {\n if (str[0] === '#' && str.length === 7 && /^#[\\da-fA-F]{6}$/.test(str)) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n/**\n * If `str` is in valid 3-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex3(str) {\n if (str[0] === '#' && str.length === 4 && /^#[\\da-fA-F]{3}$/.test(str)) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n//# sourceMappingURL=cssColor.js.map","import { __assign } from \"tslib\";\nimport { cssColor } from './cssColor';\nimport { getColorFromRGBA } from './getColorFromRGBA';\n/**\n * Converts a CSS color string to a color object.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n *\n * `inputColor` will be used unmodified as the `str` property of the returned object.\n * Alpha defaults to 100 if not specified in `inputColor`.\n * Returns undefined if the color string is invalid/not recognized.\n */\nexport function getColorFromString(inputColor) {\n var color = cssColor(inputColor);\n if (!color) {\n return;\n }\n return __assign(__assign({}, getColorFromRGBA(color)), { str: inputColor });\n}\n//# sourceMappingURL=getColorFromString.js.map","import { hsl2hsv } from './hsl2hsv';\nimport { hsv2rgb } from './hsv2rgb';\n/** Converts HSL components to an RGB color. Does not set the alpha value. */\nexport function hsl2rgb(h, s, l) {\n var hsv = hsl2hsv(h, s, l);\n return hsv2rgb(hsv.h, hsv.s, hsv.v);\n}\n//# sourceMappingURL=hsl2rgb.js.map","/** Converts HSL components to an HSV color. */\nexport function hsl2hsv(h, s, l) {\n s *= (l < 50 ? l : 100 - l) / 100;\n var v = l + s;\n return {\n h: h,\n s: v === 0 ? 0 : ((2 * s) / v) * 100,\n v: v,\n };\n}\n//# sourceMappingURL=hsl2hsv.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h, s, v) {\n s = s / 100;\n v = v / 100;\n var rgb = [];\n var c = v * s;\n var hh = h / 60;\n var x = c * (1 - Math.abs((hh % 2) - 1));\n var m = v - c;\n switch (Math.floor(hh)) {\n case 0:\n rgb = [c, x, 0];\n break;\n case 1:\n rgb = [x, c, 0];\n break;\n case 2:\n rgb = [0, c, x];\n break;\n case 3:\n rgb = [0, x, c];\n break;\n case 4:\n rgb = [x, 0, c];\n break;\n case 5:\n rgb = [c, 0, x];\n break;\n }\n return {\n r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n };\n}\n//# sourceMappingURL=hsv2rgb.js.map","import { MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Converts RGB components to a hex color string (without # prefix). */\nexport function rgb2hex(r, g, b) {\n return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');\n}\n/** Converts an RGB component to a 0-padded hex component of length 2. */\nfunction _rgbToPaddedHex(num) {\n num = clamp(num, MAX_COLOR_RGB);\n var hex = num.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\n//# sourceMappingURL=rgb2hex.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /** Width \\<= 479px */\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n /** Width \\> 479px and \\<= 639px */\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n /** Width \\> 639px and \\<= 1023px */\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n /** Width \\> 1023px and \\<= 1365px */\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n /** Width \\> 1365px and \\<= 1919px */\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n /** Width \\> 1919px */\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n var currentWindow = getWindow(element);\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import { EventGroup, getDocument } from '../../Utilities';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar DragDropHelper = /** @class */ (function () {\n function DragDropHelper(params) {\n this._selection = params.selection;\n this._dragEnterCounts = {};\n this._activeTargets = {};\n this._lastId = 0;\n // To make this class cheap to create, which allows simplifying some logic elsewhere,\n // only initialize the event group and global event handlers as needed.\n this._initialized = false;\n }\n DragDropHelper.prototype.dispose = function () {\n if (this._events) {\n this._events.dispose();\n }\n };\n DragDropHelper.prototype.subscribe = function (root, events, dragDropOptions) {\n var _this = this;\n if (!this._initialized) {\n this._events = new EventGroup(this);\n var doc = getDocument();\n // clear drag data when mouse up, use capture event to ensure it will be run\n if (doc) {\n this._events.on(doc.body, 'mouseup', this._onMouseUp.bind(this), true);\n this._events.on(doc, 'mouseup', this._onDocumentMouseUp.bind(this), true);\n }\n this._initialized = true;\n }\n var _a = dragDropOptions.key, key = _a === void 0 ? \"\".concat(++this._lastId) : _a;\n var handlers = [];\n var onDragStart;\n var onDragLeave;\n var onDragEnter;\n var onDragEnd;\n var onDrop;\n var onDragOver;\n var onMouseDown;\n var isDraggable;\n var isDroppable;\n var activeTarget;\n if (dragDropOptions && root) {\n var eventMap = dragDropOptions.eventMap, context = dragDropOptions.context, updateDropState_1 = dragDropOptions.updateDropState;\n var dragDropTarget = {\n root: root,\n options: dragDropOptions,\n key: key,\n };\n isDraggable = this._isDraggable(dragDropTarget);\n isDroppable = this._isDroppable(dragDropTarget);\n if (isDraggable || isDroppable) {\n if (eventMap) {\n for (var _i = 0, eventMap_1 = eventMap; _i < eventMap_1.length; _i++) {\n var event_1 = eventMap_1[_i];\n var handler = {\n callback: event_1.callback.bind(null, context),\n eventName: event_1.eventName,\n };\n handlers.push(handler);\n this._events.on(root, handler.eventName, handler.callback);\n }\n }\n }\n if (isDroppable) {\n // If the target is droppable, wire up global event listeners to track drop-related events.\n onDragLeave = function (event) {\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]--;\n if (_this._dragEnterCounts[key] === 0) {\n updateDropState_1(false /* isDropping */, event);\n }\n }\n };\n onDragEnter = function (event) {\n event.preventDefault(); // needed for IE\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]++;\n if (_this._dragEnterCounts[key] === 1) {\n updateDropState_1(true /* isDropping */, event);\n }\n }\n };\n onDragEnd = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n };\n onDrop = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n if (dragDropOptions.onDrop) {\n dragDropOptions.onDrop(dragDropOptions.context.data, event);\n }\n };\n onDragOver = function (event) {\n event.preventDefault();\n if (dragDropOptions.onDragOver) {\n dragDropOptions.onDragOver(dragDropOptions.context.data, event);\n }\n };\n this._dragEnterCounts[key] = 0;\n // dragenter and dragleave will be fired when hover to the child element\n // but we only want to change state when enter or leave the current element\n // use the count to ensure it.\n events.on(root, 'dragenter', onDragEnter);\n events.on(root, 'dragleave', onDragLeave);\n events.on(root, 'dragend', onDragEnd);\n events.on(root, 'drop', onDrop);\n events.on(root, 'dragover', onDragOver);\n }\n if (isDraggable) {\n // If the target is draggable, wire up local event listeners for mouse events.\n onMouseDown = this._onMouseDown.bind(this, dragDropTarget);\n onDragEnd = this._onDragEnd.bind(this, dragDropTarget);\n // We need to add in data so that on Firefox we show the ghost element when dragging\n onDragStart = function (event) {\n var options = dragDropOptions;\n if (options && options.onDragStart) {\n options.onDragStart(options.context.data, options.context.index, _this._selection.getSelection(), event);\n }\n _this._isDragging = true;\n if (event.dataTransfer) {\n event.dataTransfer.setData('id', root.id);\n }\n };\n events.on(root, 'dragstart', onDragStart);\n events.on(root, 'mousedown', onMouseDown);\n events.on(root, 'dragend', onDragEnd);\n }\n activeTarget = {\n target: dragDropTarget,\n dispose: function () {\n if (_this._activeTargets[key] === activeTarget) {\n delete _this._activeTargets[key];\n }\n if (root) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n _this._events.off(root, handler.eventName, handler.callback);\n }\n if (isDroppable) {\n events.off(root, 'dragenter', onDragEnter);\n events.off(root, 'dragleave', onDragLeave);\n events.off(root, 'dragend', onDragEnd);\n events.off(root, 'dragover', onDragOver);\n events.off(root, 'drop', onDrop);\n }\n if (isDraggable) {\n events.off(root, 'dragstart', onDragStart);\n events.off(root, 'mousedown', onMouseDown);\n events.off(root, 'dragend', onDragEnd);\n }\n }\n },\n };\n this._activeTargets[key] = activeTarget;\n }\n return {\n key: key,\n dispose: function () {\n if (activeTarget) {\n activeTarget.dispose();\n }\n },\n };\n };\n DragDropHelper.prototype.unsubscribe = function (root, key) {\n var activeTarget = this._activeTargets[key];\n if (activeTarget) {\n activeTarget.dispose();\n }\n };\n DragDropHelper.prototype._onDragEnd = function (target, event) {\n var options = target.options;\n if (options.onDragEnd) {\n options.onDragEnd(options.context.data, event);\n }\n };\n /**\n * clear drag data when mouse up on body\n */\n DragDropHelper.prototype._onMouseUp = function (event) {\n this._isDragging = false;\n if (this._dragData) {\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.off(activeTarget.target.root, 'mousemove');\n this._events.off(activeTarget.target.root, 'mouseleave');\n }\n }\n if (this._dragData.dropTarget) {\n // raise dragleave event to let dropTarget know it need to remove dropping style\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(this._dragData.dropTarget.root, 'drop');\n }\n }\n this._dragData = null;\n };\n /**\n * clear drag data when mouse up outside of the document\n */\n DragDropHelper.prototype._onDocumentMouseUp = function (event) {\n var doc = getDocument();\n if (doc && event.target === doc.documentElement) {\n this._onMouseUp(event);\n }\n };\n /**\n * when mouse move over a new drop target while dragging some items,\n * fire dragleave on the old target and fire dragenter to the new target\n * The target will handle style change on dragenter and dragleave events.\n */\n DragDropHelper.prototype._onMouseMove = function (target, event) {\n var \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n _a = event.buttons, \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n buttons = _a === void 0 ? MOUSEMOVE_PRIMARY_BUTTON : _a;\n if (this._dragData && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n // cancel mouse down event and return early when the primary button is not pressed\n this._onMouseUp(event);\n return;\n }\n var root = target.root, key = target.key;\n if (this._isDragging) {\n if (this._isDroppable(target)) {\n // we can have nested drop targets in the DOM, like a folder inside a group. In that case, when we drag into\n // the inner target (folder), we first set dropTarget to the inner element. But the same event is bubbled to the\n // outer target too, and we need to prevent the outer one from taking over.\n // So, check if the last dropTarget is not a child of the current.\n if (this._dragData) {\n if (this._dragData.dropTarget &&\n this._dragData.dropTarget.key !== key &&\n !this._isChild(root, this._dragData.dropTarget.root)) {\n if (this._dragEnterCounts[this._dragData.dropTarget.key] > 0) {\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(root, 'dragenter');\n this._dragData.dropTarget = target;\n }\n }\n }\n }\n }\n };\n /**\n * when mouse leave a target while dragging some items, fire dragleave to the target\n */\n DragDropHelper.prototype._onMouseLeave = function (target, event) {\n if (this._isDragging) {\n if (this._dragData && this._dragData.dropTarget && this._dragData.dropTarget.key === target.key) {\n EventGroup.raise(target.root, 'dragleave');\n this._dragData.dropTarget = undefined;\n }\n }\n };\n /**\n * when mouse down on a draggable item, we start to track dragdata.\n */\n DragDropHelper.prototype._onMouseDown = function (target, event) {\n if (event.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n // Ignore anything except the primary button.\n return;\n }\n if (this._isDraggable(target)) {\n this._dragData = {\n clientX: event.clientX,\n clientY: event.clientY,\n eventTarget: event.target,\n dragTarget: target,\n };\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.on(activeTarget.target.root, 'mousemove', this._onMouseMove.bind(this, activeTarget.target));\n this._events.on(activeTarget.target.root, 'mouseleave', this._onMouseLeave.bind(this, activeTarget.target));\n }\n }\n }\n else {\n this._dragData = null;\n }\n };\n /**\n * determine whether the child target is a descendant of the parent\n */\n DragDropHelper.prototype._isChild = function (parentElement, childElement) {\n while (childElement && childElement.parentElement) {\n if (childElement.parentElement === parentElement) {\n return true;\n }\n childElement = childElement.parentElement;\n }\n return false;\n };\n DragDropHelper.prototype._isDraggable = function (target) {\n var options = target.options;\n return !!(options.canDrag && options.canDrag(options.context.data));\n };\n DragDropHelper.prototype._isDroppable = function (target) {\n // TODO: take the drag item into consideration to prevent dragging an item into the same group\n var options = target.options;\n var dragContext = this._dragData && this._dragData.dragTarget ? this._dragData.dragTarget.options.context : undefined;\n return !!(options.canDrop && options.canDrop(options.context, dragContext));\n };\n return DragDropHelper;\n}());\nexport { DragDropHelper };\n//# sourceMappingURL=DragDropHelper.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n // Setting the same value should not cause a re-render.\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n var win = useWindow();\n useOnEvent(win, 'resize', onResize);\n // Call resize function initially on mount, or if the override changes from defined to undefined\n // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n React.useEffect(function () {\n if (overrideResponsiveMode === undefined) {\n onResize();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n }, [overrideResponsiveMode]);\n return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArray([], keytipProps.keySequences, true);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","export function getAllSelectedOptions(options, selectedIndices) {\n var selectedOptions = [];\n for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {\n var index = selectedIndices_1[_i];\n var option = options[index];\n if (option) {\n selectedOptions.push(option);\n }\n }\n return selectedOptions;\n}\n//# sourceMappingURL=SelectableOption.js.map","export var SelectableOptionMenuItemType;\n(function (SelectableOptionMenuItemType) {\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Normal\"] = 0] = \"Normal\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Divider\"] = 1] = \"Divider\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Header\"] = 2] = \"Header\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"SelectAll\"] = 3] = \"SelectAll\";\n})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));\n//# sourceMappingURL=SelectableOption.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n// The focus is 10, the anchor is 5.\n// If you shift click at index 0\n// The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n// The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_SPAN_ATTRIBUTE_NAME = 'data-selection-span';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n __extends(SelectionZone, _super);\n function SelectionZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /**\n * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n * focus event that occurs. This method does that.\n */\n _this.ignoreNextFocus = function () {\n _this._handleNextFocus(false);\n };\n _this._onSelectionChange = function () {\n var selection = _this.props.selection;\n var isModal = selection.isModal && selection.isModal();\n _this.setState({\n isModal: isModal,\n });\n };\n _this._onMouseDownCapture = function (ev) {\n var target = ev.target;\n if (document.activeElement !== target && !elementContains(document.activeElement, target)) {\n _this.ignoreNextFocus();\n return;\n }\n if (!elementContains(target, _this._root.current)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n _this.ignoreNextFocus();\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n * specially.\n */\n _this._onFocus = function (ev) {\n var target = ev.target;\n var selection = _this.props.selection;\n var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n var selectionMode = _this._getSelectionMode();\n if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n var itemRoot = _this._findItemRoot(target);\n if (!isToggle && itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (span === undefined) {\n if (isToggleModifierPressed) {\n // set anchor only.\n selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n selection.setModal(true);\n _this._setIsTouch(false);\n }\n }\n else {\n if (_this.props.isSelectedOnFocus) {\n _this._onItemSurfaceClick('focus', index);\n }\n }\n }\n }\n }\n _this._handleNextFocus(false);\n };\n _this._onMouseDown = function (ev) {\n _this._updateModifiers(ev);\n var toggleWithoutModifierPressed = _this.props.toggleWithoutModifierPressed;\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n // No-op if selection is disabled\n if (_this._isSelectionDisabled(target)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n break;\n }\n else if (itemRoot) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n !_this._isShiftPressed &&\n !_this._isCtrlPressed &&\n !_this._isMetaPressed &&\n !toggleWithoutModifierPressed) {\n _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot), _this._getItemSpan(itemRoot));\n break;\n }\n else if (_this.props.disableAutoSelectOnInputElements &&\n (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onTouchStartCapture = function (ev) {\n _this._setIsTouch(true);\n };\n _this._onClick = function (ev) {\n var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n _this._onToggleAllClick(ev);\n }\n break;\n }\n else if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n if (_this._isShiftPressed) {\n _this._onItemSurfaceClick('click', index, span);\n }\n else {\n _this._onToggleClick(ev, index, span);\n }\n }\n break;\n }\n else if ((_this._isTouch &&\n enableTouchInvocationTarget &&\n _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n }\n break;\n }\n else if (target === itemRoot) {\n if (!isSelectionDisabled) {\n _this._onItemSurfaceClick('click', index, span);\n }\n break;\n }\n else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onContextMenu = function (ev) {\n var target = ev.target;\n var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n if (onItemContextMenu) {\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n _this._onInvokeMouseDown(ev, index);\n var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n // In order to keep back compat, if the value here is undefined, then we should still\n // call preventDefault(). Only in the case where true is explicitly returned should\n // the call be skipped.\n if (!skipPreventDefault) {\n ev.preventDefault();\n }\n }\n }\n };\n /**\n * In multi selection, if you double click within an item's root (but not within the invoke element or\n * input elements), we should execute the invoke handler.\n */\n _this._onDoubleClick = function (ev) {\n var target = ev.target;\n var onItemInvoked = _this.props.onItemInvoked;\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (target === itemRoot) {\n _this._onInvokeClick(ev, index);\n break;\n }\n target = getParent(target);\n }\n target = getParent(target);\n }\n };\n _this._onKeyDownCapture = function (ev) {\n _this._updateModifiers(ev);\n _this._handleNextFocus(true);\n };\n _this._onKeyDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n var _a = _this.props, selection = _a.selection, selectionClearedOnEscapePress = _a.selectionClearedOnEscapePress;\n // eslint-disable-next-line deprecation/deprecation\n var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n // eslint-disable-next-line deprecation/deprecation\n var isClearSelectionKey = ev.which === KeyCodes.escape;\n // Ignore key downs from input elements.\n if (_this._isInputElement(target)) {\n // A key was pressed while an item in this zone was focused.\n return;\n }\n var selectionMode = _this._getSelectionMode();\n // If ctrl-a is pressed, select all (if all are not already selected.)\n if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(true);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n // If escape is pressed and the component is configured to clear on escape press,\n // clear selection (if any are selected.)\n if (selectionClearedOnEscapePress && isClearSelectionKey && selection.getSelectedCount() > 0) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(false);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n var itemRoot = _this._findItemRoot(target);\n // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n // so we can no-op for any keydowns in this case.\n break;\n }\n else if (_this._shouldAutoSelect(target)) {\n if (!isSelectionDisabled && span === undefined) {\n // If the event went to an element which should trigger auto-select, select it and then let\n // the default behavior kick in.\n _this._onInvokeMouseDown(ev, index, span);\n }\n break;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'SUMMARY')) {\n return false;\n }\n else if (target === itemRoot) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n ev.preventDefault();\n }\n return;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.space) {\n if (!isSelectionDisabled) {\n _this._onToggleClick(ev, index, span);\n }\n ev.preventDefault();\n return;\n }\n break;\n }\n target = getParent(target);\n }\n }\n };\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n var selection = _this.props.selection;\n // Reflect the initial modal state of selection into the state.\n var isModal = selection.isModal && selection.isModal();\n _this.state = {\n isModal: isModal,\n };\n return _this;\n }\n SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n return __assign(__assign({}, prevState), { isModal: isModal });\n };\n SelectionZone.prototype.componentDidMount = function () {\n var win = getWindow(this._root.current);\n // Track the latest modifier keys globally.\n this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);\n this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);\n // Subscribe to the selection to keep modal state updated.\n this._events.on(this.props.selection, 'change', this._onSelectionChange);\n };\n SelectionZone.prototype.render = function () {\n var isModal = this.state.isModal;\n return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n 'ms-SelectionZone--modal': !!isModal,\n }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n this.props.children,\n React.createElement(FocusRects, null)));\n };\n SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n var selection = this.props.selection;\n if (selection !== previousProps.selection) {\n // Whenever selection changes, update the subscripton to keep modal state updated.\n this._events.off(previousProps.selection);\n this._events.on(selection, 'change', this._onSelectionChange);\n }\n };\n SelectionZone.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n SelectionZone.prototype._isSelectionDisabled = function (target) {\n if (this._getSelectionMode() === SelectionMode.none) {\n return true;\n }\n while (target !== this._root.current) {\n if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n return true;\n }\n target = getParent(target);\n }\n return false;\n };\n SelectionZone.prototype._onToggleAllClick = function (ev) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleAllSelected();\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n SelectionZone.prototype._onToggleClick = function (ev, index, span) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n selection.setChangeEvents(false);\n if (this.props.enterModalOnTouch &&\n this._isTouch &&\n (span !== undefined ? !selection.isRangeSelected(index, span) : !selection.isIndexSelected(index)) &&\n selection.setModal) {\n selection.setModal(true);\n this._setIsTouch(false);\n }\n if (selectionMode === SelectionMode.multiple) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n if (span === undefined || span === 1) {\n var isSelected = selection.isIndexSelected(index);\n var isModal = selection.isModal && selection.isModal();\n selection.setAllSelected(false);\n selection.setIndexSelected(index, !isSelected, true);\n if (isModal && selection.setModal) {\n // Since the above call to setAllSelected(false) clears modal state,\n // restore it. This occurs because the SelectionMode of the Selection\n // may differ from the SelectionZone.\n selection.setModal(true);\n }\n }\n }\n else {\n selection.setChangeEvents(true);\n return;\n }\n selection.setChangeEvents(true);\n ev.stopPropagation();\n // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n // for checkboxes if you use a checkbox for the toggle.\n };\n SelectionZone.prototype._onInvokeClick = function (ev, index) {\n var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n if (onItemInvoked) {\n onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n SelectionZone.prototype._onItemSurfaceClick = function (type, index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, toggleWithoutModifierPressed = _b.toggleWithoutModifierPressed;\n var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n if (this._isShiftPressed && !this._isTabPressed) {\n if (span !== undefined) {\n (_a = selection.selectToRange) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, !isToggleModifierPressed);\n }\n else {\n selection.selectToIndex(index, !isToggleModifierPressed);\n }\n }\n else if (type === 'click' && (isToggleModifierPressed || toggleWithoutModifierPressed)) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else {\n this._clearAndSelectIndex(index, span);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n this._clearAndSelectIndex(index, span);\n }\n };\n SelectionZone.prototype._onInvokeMouseDown = function (ev, index, span) {\n var selection = this.props.selection;\n if (span !== undefined) {\n if (selection.isRangeSelected(index, span)) {\n return;\n }\n }\n else {\n // Only do work if item is not selected.\n if (selection.isIndexSelected(index)) {\n return;\n }\n }\n this._clearAndSelectIndex(index, span);\n };\n /**\n * To avoid high startup cost of traversing the DOM on component mount,\n * defer finding the scrollable parent until a click interaction.\n *\n * The styles will probably already calculated since we're running in a click handler,\n * so this is less likely to cause layout thrashing then doing it in mount.\n */\n SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n var scrollParent = findScrollableParent(this._root.current);\n // unbind this handler and replace binding with a binding on the actual scrollable parent\n this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n // If we clicked inside the scrollable parent, call through to the handler on this click.\n if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n this._tryClearOnEmptyClick(ev);\n }\n };\n SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n this.props.selection.setAllSelected(false);\n }\n };\n SelectionZone.prototype._clearAndSelectIndex = function (index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, _c = _b.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _c === void 0 ? true : _c;\n var isAlreadySingleSelected = (span === undefined || span === 1) && selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n var isModal = selection.isModal && selection.isModal();\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n if (span !== undefined) {\n (_a = selection.setRangeSelected) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, true, true);\n }\n else {\n selection.setIndexSelected(index, true, true);\n }\n if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n if (selection.setModal) {\n selection.setModal(true);\n }\n if (this._isTouch) {\n this._setIsTouch(false);\n }\n }\n selection.setChangeEvents(true);\n }\n };\n /**\n * We need to track the modifier key states so that when focus events occur, which do not contain\n * modifier states in the Event object, we know how to behave.\n */\n SelectionZone.prototype._updateModifiers = function (ev) {\n this._isShiftPressed = ev.shiftKey;\n this._isCtrlPressed = ev.ctrlKey;\n this._isMetaPressed = ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode;\n this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n };\n SelectionZone.prototype._findItemRoot = function (target) {\n var selection = this.props.selection;\n while (target !== this._root.current) {\n var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n var index = Number(indexValue);\n if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n break;\n }\n target = getParent(target);\n }\n if (target === this._root.current) {\n return undefined;\n }\n return target;\n };\n SelectionZone.prototype._getItemIndex = function (itemRoot) {\n var _a;\n var indexValue = parseInt((_a = itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(indexValue) ? -1 : indexValue;\n };\n SelectionZone.prototype._getItemSpan = function (itemRoot) {\n var _a;\n var spanValue = parseInt((_a = itemRoot.getAttribute(SELECTION_SPAN_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(spanValue) ? undefined : spanValue;\n };\n SelectionZone.prototype._shouldAutoSelect = function (element) {\n return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n };\n SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n var isToggle = false;\n while (!isToggle && element !== this._root.current) {\n var value = element.getAttribute(attributeName);\n if (value === 'false') {\n isToggle = false;\n break;\n }\n isToggle = value === 'true';\n element = getParent(element);\n }\n return isToggle;\n };\n SelectionZone.prototype._isInputElement = function (element) {\n return (element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.getAttribute('contenteditable') === 'true' ||\n element.getAttribute('contenteditable') === '');\n };\n SelectionZone.prototype._isNonHandledClick = function (element) {\n var doc = getDocument();\n if (doc && element) {\n while (element && element !== doc.documentElement) {\n if (isElementTabbable(element) || element.hasAttribute('data-selection-index')) {\n return false;\n }\n element = getParent(element);\n }\n }\n return true;\n };\n SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n var _this = this;\n if (this._shouldHandleFocusTimeoutId) {\n this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n this._shouldHandleFocusTimeoutId = undefined;\n }\n this._shouldHandleFocus = handleFocus;\n if (handleFocus) {\n this._async.setTimeout(function () {\n _this._shouldHandleFocus = false;\n }, 100);\n }\n };\n SelectionZone.prototype._setIsTouch = function (isTouch) {\n var _this = this;\n if (this._isTouchTimeoutId) {\n this._async.clearTimeout(this._isTouchTimeoutId);\n this._isTouchTimeoutId = undefined;\n }\n this._isTouch = true;\n if (isTouch) {\n this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 300);\n }\n };\n SelectionZone.prototype._getSelectionMode = function () {\n var selection = this.props.selection;\n var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n return selectionMode;\n };\n SelectionZone.defaultProps = {\n isSelectedOnFocus: true,\n toggleWithoutModifierPressed: false,\n selectionMode: SelectionMode.multiple,\n selectionClearedOnEscapePress: true,\n };\n return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: getWindow() === undefined,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n var retVal;\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n // eslint-disable-next-line deprecation/deprecation\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof document !== 'undefined' && document.createEventObject) {\n // IE8\n var evObj = document.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) {\n return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n };\n};\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@fluentui/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","/**\n * Helper to get bounding client rect. Passing in window will get the window size.\n *\n * @public\n */\nexport function getRect(element) {\n var rect;\n if (element) {\n if (element === window) {\n rect = {\n left: 0,\n top: 0,\n width: window.innerWidth,\n height: window.innerHeight,\n right: window.innerWidth,\n bottom: window.innerHeight,\n };\n }\n else if (element.getBoundingClientRect) {\n rect = element.getBoundingClientRect();\n }\n }\n return rect;\n}\n//# sourceMappingURL=getRect.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements) {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n var isCurrentElementVisible = checkElementVisibility(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element) {\n return (!!element &&\n isElementVisible(element) &&\n !element.hidden &&\n window.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var document = getDocument(element);\n var currentActiveElement = document && document.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar animationId = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n var win = getWindow(element);\n if (win) {\n // cancel any previous focus queues\n if (animationId !== undefined) {\n win.cancelAnimationFrame(animationId);\n }\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n animationId = win.requestAnimationFrame(function () {\n element && element.focus();\n // We are done focusing for this frame, so reset the queued focus element\n animationId = undefined;\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n var _a;\n var win = getWindow();\n if (!((_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)) {\n return false;\n }\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} <xyz> all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\nvar UNSUPPORTED_TEXT_REGEX = \n// eslint-disable-next-line @fluentui/max-len\n/[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n }\n else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n }\n else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n return initials;\n}\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n displayName = cleanupDisplayName(displayName);\n // For names containing CJK characters, and phone numbers, we don't display initials\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n return '';\n }\n return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","/**\n * Determines the distance between two points.\n *\n * @public\n */\n/* eslint-disable deprecation/deprecation */\nexport function getDistanceBetweenPoints(point1, point2) {\n var left1 = point1.left || point1.x || 0;\n var top1 = point1.top || point1.y || 0;\n var left2 = point2.left || point2.x || 0;\n var top2 = point2.top || point2.y || 0;\n /* eslint-enable deprecation/deprecation */\n var distance = Math.sqrt(Math.pow(left1 - left2, 2) + Math.pow(top1 - top2, 2));\n return distance;\n}\n/**\n * Produces a proportionally-scaled version of an input content size when fit to a bounding size.\n * Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally\n * using either `contain` or `cover` fit behaviors.\n * Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.\n * With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.\n * With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.\n * By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.\n *\n * @param options - the options for the bounds fit operation\n */\nexport function fitContentToBounds(options) {\n var contentSize = options.contentSize, boundsSize = options.boundsSize, _a = options.mode, mode = _a === void 0 ? 'contain' : _a, _b = options.maxScale, maxScale = _b === void 0 ? 1 : _b;\n var contentAspectRatio = contentSize.width / contentSize.height;\n var boundsAspectRatio = boundsSize.width / boundsSize.height;\n var scale;\n if (mode === 'contain' ? contentAspectRatio > boundsAspectRatio : contentAspectRatio < boundsAspectRatio) {\n scale = boundsSize.width / contentSize.width;\n }\n else {\n scale = boundsSize.height / contentSize.height;\n }\n var finalScale = Math.min(maxScale, scale);\n return {\n width: contentSize.width * finalScale,\n height: contentSize.height * finalScale,\n };\n}\n/**\n * Calculates a number's precision based on the number of trailing\n * zeros if the number does not have a decimal indicated by a negative\n * precision. Otherwise, it calculates the number of digits after\n * the decimal point indicated by a positive precision.\n * @param value - the value to determine the precision of\n */\nexport function calculatePrecision(value) {\n /**\n * Group 1:\n * [1-9]([0]+$) matches trailing zeros\n * Group 2:\n * \\.([0-9]*) matches all digits after a decimal point.\n */\n var groups = /[1-9]([0]+$)|\\.([0-9]*)/.exec(String(value));\n if (!groups) {\n return 0;\n }\n if (groups[1]) {\n return -groups[1].length;\n }\n if (groups[2]) {\n return groups[2].length;\n }\n return 0;\n}\n/**\n * Rounds a number to a certain level of precision. Accepts negative precision.\n * @param value - The value that is being rounded.\n * @param precision - The number of decimal places to round the number to\n */\nexport function precisionRound(value, precision, base) {\n if (base === void 0) { base = 10; }\n var exp = Math.pow(base, precision);\n return Math.round(value * exp) / exp;\n}\n//# sourceMappingURL=math.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var targetDocument = getDocument(target);\n if (!targetDocument) {\n // can't do this in SSR\n return function () { return undefined; };\n }\n var affectedNodes = [];\n // start at target, then recurse and do the same for parent, until we reach <body>\n while (target !== targetDocument.body && target.parentElement) {\n // grab all siblings of current element\n for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n var sibling = _a[_i];\n // but ignore elements that are already aria-hidden\n var ariaHidden = sibling.getAttribute('aria-hidden');\n if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n affectedNodes.push([sibling, ariaHidden]);\n }\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (_a) {\n var node = _a[0];\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (_a) {\n var node = _a[0], originalValue = _a[1];\n // Restore the original value (false or unset)\n if (originalValue) {\n node.setAttribute('aria-hidden', originalValue);\n }\n else {\n node.removeAttribute('aria-hidden');\n }\n });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n if (!a || !b) {\n // only return true if both a and b are falsy\n return !a && !b;\n }\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map(function (p) {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p, theEnum[p]);\n }\n return undefined;\n })\n .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n return Object.keys(obj).reduce(function (arr, key) {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n for (var key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=object.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n var _a;\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","var toObjectMap = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var result = {};\n for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n var item = items_1[_a];\n var keys = Array.isArray(item) ? item : Object.keys(item);\n for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n var key = keys_1[_b];\n result[key] = 1;\n }\n }\n return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n 'accessKey',\n 'children',\n 'className',\n 'contentEditable',\n 'dir',\n 'draggable',\n 'hidden',\n 'htmlFor',\n 'id',\n 'lang',\n 'ref',\n 'role',\n 'style',\n 'tabIndex',\n 'title',\n 'translate',\n 'spellCheck',\n 'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n 'height',\n 'loop',\n 'muted',\n 'preload',\n 'src',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus',\n 'disabled',\n 'form',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'type',\n 'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n 'accept',\n 'alt',\n 'autoCapitalize',\n 'autoComplete',\n 'checked',\n 'dirname',\n 'form',\n 'height',\n 'inputMode',\n 'list',\n 'max',\n 'maxLength',\n 'min',\n 'minLength',\n 'multiple',\n 'pattern',\n 'placeholder',\n 'readOnly',\n 'required',\n 'src',\n 'step',\n 'size',\n 'type',\n 'value',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize',\n 'cols',\n 'dirname',\n 'form',\n 'maxLength',\n 'minLength',\n 'placeholder',\n 'readOnly',\n 'required',\n 'rows',\n 'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan',\n 'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset',\n 'action',\n 'encType',\n 'encType',\n 'method',\n 'noValidate',\n 'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow',\n 'allowFullScreen',\n 'allowPaymentRequest',\n 'allowTransparency',\n 'csp',\n 'height',\n 'importance',\n 'referrerPolicy',\n 'sandbox',\n 'src',\n 'srcDoc',\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n var isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n var keys = Object.keys(props);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var isNativeProp = (!isArray && allowedPropNames[key]) ||\n (isArray && allowedPropNames.indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=properties.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _previousClientY = 0;\n var _element = null;\n // remember the clientY for future calls of _preventOverscrolling\n var _saveClientY = function (event) {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n var _preventOverscrolling = function (event) {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n if (!_element) {\n return;\n }\n var clientY = event.targetTouches[0].clientY - _previousClientY;\n var scrollableParent = findScrollableParent(event.target);\n if (scrollableParent) {\n _element = scrollableParent;\n }\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (_element.scrollTop === 0 && clientY > 0) {\n event.preventDefault();\n }\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - Math.ceil(_element.scrollTop) <= _element.clientHeight && clientY < 0) {\n event.preventDefault();\n }\n };\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _allowElementScroll = function (event) {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n var doc = getDocument();\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n if (_bodyScrollDisabledCount > 0) {\n var doc = getDocument();\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n _bodyScrollDisabledCount--;\n }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth() {\n if (_scrollbarWidth === undefined) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n document.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n }\n return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n var el = startingElement;\n var doc = getDocument(startingElement);\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n var computedStyles = getComputedStyle(el);\n var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n el = el.parentElement;\n }\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n el = getWindow(startingElement);\n }\n return el;\n}\n//# sourceMappingURL=scroll.js.map","import { SELECTION_CHANGE, SelectionMode, SELECTION_ITEMS_CHANGE } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\nvar Selection = /** @class */ (function () {\n /**\n * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n * object with a `getKey` implementation. Providing options is optional otherwise.\n * (At most one `options` object is accepted.)\n */\n function Selection() {\n var options = []; // Otherwise, arguments require options with `getKey`.\n for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n ; _i++ // Otherwise, arguments require options with `getKey`.\n ) {\n options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n }\n var _a = options[0] || {}, onSelectionChanged = _a.onSelectionChanged, onItemsChanged = _a.onItemsChanged, getKey = _a.getKey, _b = _a.canSelectItem, canSelectItem = _b === void 0 ? function () { return true; } : _b, items = _a.items, _c = _a.selectionMode, selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n this.mode = selectionMode;\n this._getKey = getKey || defaultGetKey;\n this._changeEventSuppressionCount = 0;\n this._exemptedCount = 0;\n this._anchoredIndex = 0;\n this._unselectableCount = 0;\n this._onSelectionChanged = onSelectionChanged;\n this._onItemsChanged = onItemsChanged;\n this._canSelectItem = canSelectItem;\n this._keyToIndexMap = {};\n this._isModal = false;\n this.setItems(items || [], true);\n this.count = this.getSelectedCount();\n }\n Selection.prototype.canSelectItem = function (item, index) {\n if (typeof index === 'number' && index < 0) {\n return false;\n }\n return this._canSelectItem(item, index);\n };\n Selection.prototype.getKey = function (item, index) {\n var key = this._getKey(item, index);\n return typeof key === 'number' || key ? \"\".concat(key) : '';\n };\n Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n this._hasChanged = false;\n if (!suppressChange) {\n this._change();\n }\n }\n };\n Selection.prototype.isModal = function () {\n return this._isModal;\n };\n Selection.prototype.setModal = function (isModal) {\n if (this._isModal !== isModal) {\n this.setChangeEvents(false);\n this._isModal = isModal;\n if (!isModal) {\n this.setAllSelected(false);\n }\n this._change();\n this.setChangeEvents(true);\n }\n };\n /**\n * Selection needs the items, call this method to set them. If the set\n * of items is the same, this will re-evaluate selection and index maps.\n * Otherwise, shouldClear should be set to true, so that selection is\n * cleared.\n */\n Selection.prototype.setItems = function (items, shouldClear) {\n if (shouldClear === void 0) { shouldClear = true; }\n var newKeyToIndexMap = {};\n var newUnselectableIndices = {};\n var hasSelectionChanged = false;\n this.setChangeEvents(false);\n // Reset the unselectable count.\n this._unselectableCount = 0;\n var haveItemsChanged = false;\n // Build lookup table for quick selection evaluation.\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item) {\n var key = this.getKey(item, i);\n if (key) {\n if (!haveItemsChanged && (!(key in this._keyToIndexMap) || this._keyToIndexMap[key] !== i)) {\n haveItemsChanged = true;\n }\n newKeyToIndexMap[key] = i;\n }\n }\n newUnselectableIndices[i] = item && !this.canSelectItem(item);\n if (newUnselectableIndices[i]) {\n this._unselectableCount++;\n }\n }\n if (shouldClear || items.length === 0) {\n this._setAllSelected(false, true);\n }\n // Check the exemption list for discrepencies.\n var newExemptedIndicies = {};\n var newExemptedCount = 0;\n for (var indexProperty in this._exemptedIndices) {\n if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n var index = Number(indexProperty);\n var item = this._items[index];\n var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n if (newIndex === undefined) {\n // The item has likely been replaced or removed.\n hasSelectionChanged = true;\n }\n else {\n // We know the new index of the item. update the existing exemption table.\n newExemptedIndicies[newIndex] = true;\n newExemptedCount++;\n hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n }\n }\n }\n if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n // If everything was selected but the number of items has changed, selection has changed.\n hasSelectionChanged = true;\n }\n if (!haveItemsChanged) {\n for (var _i = 0, _a = Object.keys(this._keyToIndexMap); _i < _a.length; _i++) {\n var key = _a[_i];\n if (!(key in newKeyToIndexMap)) {\n haveItemsChanged = true;\n break;\n }\n }\n }\n this._exemptedIndices = newExemptedIndicies;\n this._exemptedCount = newExemptedCount;\n this._keyToIndexMap = newKeyToIndexMap;\n this._unselectableIndices = newUnselectableIndices;\n this._items = items;\n this._selectedItems = null;\n if (hasSelectionChanged) {\n this._updateCount();\n }\n if (haveItemsChanged) {\n EventGroup.raise(this, SELECTION_ITEMS_CHANGE);\n if (this._onItemsChanged) {\n this._onItemsChanged();\n }\n }\n if (hasSelectionChanged) {\n this._change();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.getItems = function () {\n return this._items;\n };\n Selection.prototype.getSelection = function () {\n if (!this._selectedItems) {\n this._selectedItems = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedItems.push(items[i]);\n }\n }\n }\n }\n return this._selectedItems;\n };\n Selection.prototype.getSelectedCount = function () {\n return this._isAllSelected\n ? this._items.length - this._exemptedCount - this._unselectableCount\n : this._exemptedCount;\n };\n Selection.prototype.getSelectedIndices = function () {\n if (!this._selectedIndices) {\n this._selectedIndices = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedIndices.push(i);\n }\n }\n }\n }\n return this._selectedIndices;\n };\n Selection.prototype.getItemIndex = function (key) {\n var index = this._keyToIndexMap[key];\n return index !== null && index !== void 0 ? index : -1;\n };\n Selection.prototype.isRangeSelected = function (fromIndex, count) {\n if (count === 0) {\n return false;\n }\n var endIndex = fromIndex + count;\n for (var i = fromIndex; i < endIndex; i++) {\n if (!this.isIndexSelected(i)) {\n return false;\n }\n }\n return true;\n };\n Selection.prototype.isAllSelected = function () {\n var selectableCount = this._items.length - this._unselectableCount;\n // In single mode, we can only have a max of 1 item.\n if (this.mode === SelectionMode.single) {\n selectableCount = Math.min(selectableCount, 1);\n }\n return ((this.count > 0 && this._isAllSelected && this._exemptedCount === 0) ||\n (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));\n };\n Selection.prototype.isKeySelected = function (key) {\n var index = this._keyToIndexMap[key];\n return this.isIndexSelected(index);\n };\n Selection.prototype.isIndexSelected = function (index) {\n return !!((this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index]) ||\n (!this._isAllSelected && this._exemptedIndices[index]));\n };\n Selection.prototype.setAllSelected = function (isAllSelected) {\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n var index = this._keyToIndexMap[key];\n if (index >= 0) {\n this.setIndexSelected(index, isSelected, shouldAnchor);\n }\n };\n Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n index = Math.min(Math.max(0, index), this._items.length - 1);\n // No-op on out of bounds selections.\n if (index < 0 || index >= this._items.length) {\n return;\n }\n this.setChangeEvents(false);\n var isExempt = this._exemptedIndices[index];\n var canSelect = !this._unselectableIndices[index];\n if (canSelect) {\n if (isSelected && this.mode === SelectionMode.single) {\n // If this is single-select, the previous selection should be removed.\n this._setAllSelected(false, true);\n }\n // Determine if we need to remove the exemption.\n if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {\n delete this._exemptedIndices[index];\n this._exemptedCount--;\n }\n // Determine if we need to add the exemption.\n if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {\n this._exemptedIndices[index] = true;\n this._exemptedCount++;\n }\n if (shouldAnchor) {\n this._anchoredIndex = index;\n }\n }\n this._updateCount();\n this.setChangeEvents(true);\n };\n Selection.prototype.setRangeSelected = function (fromIndex, count, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1);\n // Clamp the range.\n count = Math.min(Math.max(0, count), this._items.length - fromIndex);\n // No-op on out of bounds selections.\n if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) {\n return;\n }\n this.setChangeEvents(false);\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = fromIndex;\n var endIndex = fromIndex + count - 1;\n var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex;\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToKey = function (key, clearSelection) {\n this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n };\n Selection.prototype.selectToRange = function (fromIndex, count, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n if (count === 1) {\n this.setIndexSelected(fromIndex, true, true);\n }\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(fromIndex, anchorIndex);\n var endIndex = Math.max(fromIndex + count - 1, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToIndex = function (index, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n this.setIndexSelected(index, true, true);\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(index, anchorIndex);\n var endIndex = Math.max(index, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.toggleAllSelected = function () {\n this.setAllSelected(!this.isAllSelected());\n };\n Selection.prototype.toggleKeySelected = function (key) {\n this.setKeySelected(key, !this.isKeySelected(key), true);\n };\n Selection.prototype.toggleIndexSelected = function (index) {\n this.setIndexSelected(index, !this.isIndexSelected(index), true);\n };\n Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n var isRangeSelected = this.isRangeSelected(fromIndex, count);\n var endIndex = fromIndex + count;\n if (this.mode === SelectionMode.single && count > 1) {\n return;\n }\n this.setChangeEvents(false);\n for (var i = fromIndex; i < endIndex; i++) {\n this.setIndexSelected(i, !isRangeSelected, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._updateCount = function (preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n var count = this.getSelectedCount();\n if (count !== this.count) {\n this.count = count;\n this._change();\n }\n if (!this.count && !preserveModalState) {\n this.setModal(false);\n }\n };\n Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount(preserveModalState);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._change = function () {\n if (this._changeEventSuppressionCount === 0) {\n this._selectedItems = null;\n this._selectedIndices = undefined;\n EventGroup.raise(this, SELECTION_CHANGE);\n if (this._onSelectionChanged) {\n this._onSelectionChanged();\n }\n }\n else {\n this._hasChanged = true;\n }\n };\n return Selection;\n}());\nexport { Selection };\nfunction defaultGetKey(item, index) {\n // 0 may be used as a key\n var _a = (item || {}).key, key = _a === void 0 ? \"\".concat(index) : _a;\n return key;\n}\n//# sourceMappingURL=Selection.js.map","export var SELECTION_CHANGE = 'change';\nexport var SELECTION_ITEMS_CHANGE = 'items-change';\n/**\n * {@docCategory Selection}\n */\nexport var SelectionMode;\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));\n//# sourceMappingURL=Selection.types.js.map","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g;\n// Regex that finds {#} so it can be replaced by the arguments in string format\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(s) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var args = values;\n // Callback match function\n function replaceFunc(match) {\n // looks up in the args\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];\n // catches undefined in nondebug and null in debug and nondebug\n if (replacement === null || replacement === undefined) {\n replacement = '';\n }\n return replacement;\n }\n return s.replace(FORMAT_REGEX, replaceFunc);\n}\n//# sourceMappingURL=string.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n _a[KeyCodes.up] = 1,\n _a[KeyCodes.down] = 1,\n _a[KeyCodes.left] = 1,\n _a[KeyCodes.right] = 1,\n _a[KeyCodes.home] = 1,\n _a[KeyCodes.end] = 1,\n _a[KeyCodes.tab] = 1,\n _a[KeyCodes.pageUp] = 1,\n _a[KeyCodes.pageDown] = 1,\n _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n var newValue;\n var currValue = mountCounters.get(key);\n if (currValue) {\n newValue = currValue + delta;\n }\n else {\n newValue = 1;\n }\n mountCounters.set(key, newValue);\n return newValue;\n}\nfunction setCallbackMap(context) {\n var callbacks = callbackMap.get(context);\n if (callbacks) {\n return callbacks;\n }\n var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n callbackMap.set(context, callbacks);\n return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n * the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n * call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n * 'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n * body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n * current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n * context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n var context = React.useContext(FocusRectsContext);\n React.useEffect(function () {\n var _a, _b, _c, _d;\n var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return undefined;\n }\n var el = win;\n var onMouseDown;\n var onPointerDown;\n var onKeyDown;\n var onKeyUp;\n if (((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) &&\n ((_d = (_c = context === null || context === void 0 ? void 0 : context.providerRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.addEventListener)) {\n el = context.providerRef.current;\n // The NOINLINE directive tells terser not to move the setCallbackMap implementation into the call site during\n // minification.\n // This prevents the function from capturing additional variables in the closure, which can cause memory leaks.\n var callbacks = /*@__NOINLINE__*/ setCallbackMap(context);\n onMouseDown = callbacks.onMouseDown;\n onPointerDown = callbacks.onPointerDown;\n onKeyDown = callbacks.onKeyDown;\n onKeyUp = callbacks.onKeyUp;\n }\n else {\n onMouseDown = _onMouseDown;\n onPointerDown = _onPointerDown;\n onKeyDown = _onKeyDown;\n onKeyUp = _onKeyUp;\n }\n var count = setMountCounters(el, 1);\n if (count <= 1) {\n el.addEventListener('mousedown', onMouseDown, true);\n el.addEventListener('pointerdown', onPointerDown, true);\n el.addEventListener('keydown', onKeyDown, true);\n el.addEventListener('keyup', onKeyUp, true);\n }\n return function () {\n var _a;\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n count = setMountCounters(el, -1);\n if (count === 0) {\n el.removeEventListener('mousedown', onMouseDown, true);\n el.removeEventListener('pointerdown', onPointerDown, true);\n el.removeEventListener('keydown', onKeyDown, true);\n el.removeEventListener('keyup', onKeyUp, true);\n }\n };\n }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n useFocusRects(props.rootRef);\n return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target, registeredProviders);\n }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n var requiredPropName = requiredProps_1[_i];\n if (!(requiredPropName in props)) {\n warn(\"\".concat(componentName, \" property '\").concat(requiredPropName, \"' is required when '\").concat(conditionalPropName, \"' is used.'\"));\n }\n }\n }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { warn } from './warn';\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations(componentName, props, deprecationMap) {\n if (process.env.NODE_ENV !== 'production') {\n for (var propName in deprecationMap) {\n if (props && propName in props) {\n var deprecationMessage = \"\".concat(componentName, \" property '\").concat(propName, \"' was used but has been deprecated.\");\n var replacementPropName = deprecationMap[propName];\n if (replacementPropName) {\n deprecationMessage += \" Use '\".concat(replacementPropName, \"' instead.\");\n }\n warn(deprecationMessage);\n }\n }\n }\n}\n//# sourceMappingURL=warnDeprecations.js.map","import { warn } from './warn';\n/**\n * Warns when two props which are mutually exclusive are both being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param exclusiveMap - A map where the key is a parameter, and the value is the other parameter.\n */\nexport function warnMutuallyExclusive(componentName, props, exclusiveMap) {\n if (process.env.NODE_ENV !== 'production') {\n for (var propName in exclusiveMap) {\n if (props && props[propName] !== undefined) {\n var propInExclusiveMapValue = exclusiveMap[propName];\n if (propInExclusiveMapValue && props[propInExclusiveMapValue] !== undefined) {\n warn(\"\".concat(componentName, \" property '\").concat(propName, \"' is mutually exclusive with '\").concat(exclusiveMap[propName], \"'. \") +\n \"Use one or the other.\");\n }\n }\n }\n }\n}\n//# sourceMappingURL=warnMutuallyExclusive.js.map","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information. */\\r\\n/**\\n * Office UI Fabric Core 11.0.1\\n * The front-end framework for building experiences for Office 365.\\n **/\\n@charset 'UTF-8';@keyframes ms-motion-fadeIn{from{opacity:0}to{opacity:1}}@keyframes ms-motion-fadeOut{from{opacity:1}to{opacity:0}}@keyframes ms-motion-scaleDownIn{from{transform:scale3d(1.15,1.15,1)}to{transform:scale3d(1,1,1)}}@keyframes ms-motion-scaleDownOut{from{transform:scale3d(1,1,1)}to{transform:scale3d(.9,.9,1)}}@keyframes ms-motion-slideLeftOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(-48px,0,0)}}@keyframes ms-motion-slideRightOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(48px,0,0)}}@keyframes ms-motion-slideLeftIn{from{transform:translate3d(48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideRightIn{from{transform:translate3d(-48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideUpOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-48px,0)}}@keyframes ms-motion-slideDownOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,48px,0)}}@keyframes ms-motion-slideUpIn{from{transform:translate3d(0,48px,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideDownIn{from{transform:translate3d(0,-48px,0)}to{transform:translate3d(0,0,0)}}.ms-motion-fadeIn{animation:ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-fadeOut{animation:ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownIn{animation:ms-motion-scaleDownIn .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownOut{animation:ms-motion-scaleDownOut .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpOut{animation:ms-motion-slideUpOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownOut{animation:ms-motion-slideDownOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpIn{animation:ms-motion-slideUpIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownIn{animation:ms-motion-slideDownIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/zip.png)}.ms-BrandIcon--icon16{background-size:100% 100%;width:16px;height:16px}.ms-BrandIcon--icon48{background-size:100% 100%;width:48px;height:48px}.ms-BrandIcon--icon96{background-size:100% 100%;width:96px;height:96px}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1_5.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/zip.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x2.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/zip.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x3.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/zip.png)}}.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-bgColor-themeDark,.ms-bgColor-themeDark--hover:hover{background-color:#005a9e}.ms-bgColor-themeDarkAlt,.ms-bgColor-themeDarkAlt--hover:hover{background-color:#106ebe}.ms-bgColor-themeDarker,.ms-bgColor-themeDarker--hover:hover{background-color:#004578}.ms-bgColor-themePrimary,.ms-bgColor-themePrimary--hover:hover{background-color:#0078d4}.ms-bgColor-themeSecondary,.ms-bgColor-themeSecondary--hover:hover{background-color:#2b88d8}.ms-bgColor-themeTertiary,.ms-bgColor-themeTertiary--hover:hover{background-color:#71afe5}.ms-bgColor-themeLight,.ms-bgColor-themeLight--hover:hover{background-color:#c7e0f4}.ms-bgColor-themeLighter,.ms-bgColor-themeLighter--hover:hover{background-color:#deecf9}.ms-bgColor-themeLighterAlt,.ms-bgColor-themeLighterAlt--hover:hover{background-color:#eff6fc}.ms-borderColor-themeDark,.ms-borderColor-themeDark--hover:hover{border-color:#005a9e}.ms-borderColor-themeDarkAlt,.ms-borderColor-themeDarkAlt--hover:hover{border-color:#106ebe}.ms-borderColor-themeDarker,.ms-borderColor-themeDarker--hover:hover{border-color:#004578}.ms-borderColor-themePrimary,.ms-borderColor-themePrimary--hover:hover{border-color:#0078d4}.ms-borderColor-themeSecondary,.ms-borderColor-themeSecondary--hover:hover{border-color:#2b88d8}.ms-borderColor-themeTertiary,.ms-borderColor-themeTertiary--hover:hover{border-color:#71afe5}.ms-borderColor-themeLight,.ms-borderColor-themeLight--hover:hover{border-color:#c7e0f4}.ms-borderColor-themeLighter,.ms-borderColor-themeLighter--hover:hover{border-color:#deecf9}.ms-borderColor-themeLighterAlt,.ms-borderColor-themeLighterAlt--hover:hover{border-color:#eff6fc}.ms-fontColor-themeDarker,.ms-fontColor-themeDarker--hover:hover{color:#004578}.ms-fontColor-themeDark,.ms-fontColor-themeDark--hover:hover{color:#005a9e}.ms-fontColor-themeDarkAlt,.ms-fontColor-themeDarkAlt--hover:hover{color:#106ebe}.ms-fontColor-themePrimary,.ms-fontColor-themePrimary--hover:hover{color:#0078d4}.ms-fontColor-themeSecondary,.ms-fontColor-themeSecondary--hover:hover{color:#2b88d8}.ms-fontColor-themeTertiary,.ms-fontColor-themeTertiary--hover:hover{color:#71afe5}.ms-fontColor-themeLight,.ms-fontColor-themeLight--hover:hover{color:#c7e0f4}.ms-fontColor-themeLighter,.ms-fontColor-themeLighter--hover:hover{color:#deecf9}.ms-fontColor-themeLighterAlt,.ms-fontColor-themeLighterAlt--hover:hover{color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-neutralDark,.ms-bgColor-neutralDark--hover:hover{background-color:#201f1e}.ms-bgColor-neutralPrimary,.ms-bgColor-neutralPrimary--hover:hover{background-color:#323130}.ms-bgColor-neutralPrimaryAlt,.ms-bgColor-neutralPrimaryAlt--hover:hover{background-color:#3b3a39}.ms-bgColor-neutralSecondary,.ms-bgColor-neutralSecondary--hover:hover{background-color:#605e5c}.ms-bgColor-neutralSecondaryAlt,.ms-bgColor-neutralSecondaryAlt--hover:hover{background-color:#797775}.ms-bgColor-neutralTertiary,.ms-bgColor-neutralTertiary--hover:hover{background-color:#a19f9d}.ms-bgColor-neutralTertiaryAlt,.ms-bgColor-neutralTertiaryAlt--hover:hover{background-color:#c8c6c4}.ms-bgColor-neutralQuaternary,.ms-bgColor-neutralQuaternary--hover:hover{background-color:#d2d0ce}.ms-bgColor-neutralQuaternaryAlt,.ms-bgColor-neutralQuaternaryAlt--hover:hover{background-color:#e1dfdd}.ms-bgColor-neutralLight,.ms-bgColor-neutralLight--hover:hover{background-color:#edebe9}.ms-bgColor-neutralLighter,.ms-bgColor-neutralLighter--hover:hover{background-color:#f3f2f1}.ms-bgColor-neutralLighterAlt,.ms-bgColor-neutralLighterAlt--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-neutralDark,.ms-borderColor-neutralDark--hover:hover{border-color:#201f1e}.ms-borderColor-neutralPrimary,.ms-borderColor-neutralPrimary--hover:hover{border-color:#323130}.ms-borderColor-neutralPrimaryAlt,.ms-borderColor-neutralPrimaryAlt--hover:hover{border-color:#3b3a39}.ms-borderColor-neutralSecondary,.ms-borderColor-neutralSecondary--hover:hover{border-color:#605e5c}.ms-borderColor-neutralSecondaryAlt,.ms-borderColor-neutralSecondaryAlt--hover:hover{border-color:#797775}.ms-borderColor-neutralTertiary,.ms-borderColor-neutralTertiary--hover:hover{border-color:#a19f9d}.ms-borderColor-neutralTertiaryAlt,.ms-borderColor-neutralTertiaryAlt--hover:hover{border-color:#c8c6c4}.ms-borderColor-neutralQuaternary,.ms-borderColor-neutralQuaternary--hover:hover{border-color:#d2d0ce}.ms-borderColor-neutralQuaternaryAlt,.ms-borderColor-neutralQuaternaryAlt--hover:hover{border-color:#e1dfdd}.ms-borderColor-neutralLight,.ms-borderColor-neutralLight--hover:hover{border-color:#edebe9}.ms-borderColor-neutralLighter,.ms-borderColor-neutralLighter--hover:hover{border-color:#f3f2f1}.ms-borderColor-neutralLighterAlt,.ms-borderColor-neutralLighterAlt--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-neutralDark,.ms-fontColor-neutralDark--hover:hover{color:#201f1e}.ms-fontColor-neutralPrimary,.ms-fontColor-neutralPrimary--hover:hover{color:#323130}.ms-fontColor-neutralPrimaryAlt,.ms-fontColor-neutralPrimaryAlt--hover:hover{color:#3b3a39}.ms-fontColor-neutralSecondary,.ms-fontColor-neutralSecondary--hover:hover{color:#605e5c}.ms-fontColor-neutralSecondaryAlt,.ms-fontColor-neutralSecondaryAlt--hover:hover{color:#797775}.ms-fontColor-neutralTertiary,.ms-fontColor-neutralTertiary--hover:hover{color:#a19f9d}.ms-fontColor-neutralTertiaryAlt,.ms-fontColor-neutralTertiaryAlt--hover:hover{color:#c8c6c4}.ms-fontColor-neutralQuaternary,.ms-fontColor-neutralQuaternary--hover:hover{color:#d2d0ce}.ms-fontColor-neutralQuaternaryAlt,.ms-fontColor-neutralQuaternaryAlt--hover:hover{color:#e1dfdd}.ms-fontColor-neutralLight,.ms-fontColor-neutralLight--hover:hover{color:#edebe9}.ms-fontColor-neutralLighter,.ms-fontColor-neutralLighter--hover:hover{color:#f3f2f1}.ms-fontColor-neutralLighterAlt,.ms-fontColor-neutralLighterAlt--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-bgColor-yellow,.ms-bgColor-yellow--hover:hover{background-color:#ffb900}.ms-bgColor-yellowLight,.ms-bgColor-yellowLight--hover:hover{background-color:#fff100}.ms-bgColor-orange,.ms-bgColor-orange--hover:hover{background-color:#d83b01}.ms-bgColor-orangeLight,.ms-bgColor-orangeLight--hover:hover{background-color:#ea4300}.ms-bgColor-orangeLighter,.ms-bgColor-orangeLighter--hover:hover{background-color:#ff8c00}.ms-bgColor-redDark,.ms-bgColor-redDark--hover:hover{background-color:#a80000}.ms-bgColor-red,.ms-bgColor-red--hover:hover{background-color:#e81123}.ms-bgColor-magentaDark,.ms-bgColor-magentaDark--hover:hover{background-color:#5c005c}.ms-bgColor-magenta,.ms-bgColor-magenta--hover:hover{background-color:#b4009e}.ms-bgColor-magentaLight,.ms-bgColor-magentaLight--hover:hover{background-color:#e3008c}.ms-bgColor-purpleDark,.ms-bgColor-purpleDark--hover:hover{background-color:#32145a}.ms-bgColor-purple,.ms-bgColor-purple--hover:hover{background-color:#5c2d91}.ms-bgColor-purpleLight,.ms-bgColor-purpleLight--hover:hover{background-color:#b4a0ff}.ms-bgColor-blueDark,.ms-bgColor-blueDark--hover:hover{background-color:#002050}.ms-bgColor-blueMid,.ms-bgColor-blueMid--hover:hover{background-color:#00188f}.ms-bgColor-blue,.ms-bgColor-blue--hover:hover{background-color:#0078d4}.ms-bgColor-blueLight,.ms-bgColor-blueLight--hover:hover{background-color:#00bcf2}.ms-bgColor-tealDark,.ms-bgColor-tealDark--hover:hover{background-color:#004b50}.ms-bgColor-teal,.ms-bgColor-teal--hover:hover{background-color:#008272}.ms-bgColor-tealLight,.ms-bgColor-tealLight--hover:hover{background-color:#00b294}.ms-bgColor-greenDark,.ms-bgColor-greenDark--hover:hover{background-color:#004b1c}.ms-bgColor-green,.ms-bgColor-green--hover:hover{background-color:#107c10}.ms-bgColor-greenLight,.ms-bgColor-greenLight--hover:hover{background-color:#bad80a}.ms-borderColor-yellow,.ms-borderColor-yellow--hover:hover{border-color:#ffb900}.ms-borderColor-yellowLight,.ms-borderColor-yellowLight--hover:hover{border-color:#fff100}.ms-borderColor-orange,.ms-borderColor-orange--hover:hover{border-color:#d83b01}.ms-borderColor-orangeLight,.ms-borderColor-orangeLight--hover:hover{border-color:#ea4300}.ms-borderColor-orangeLighter,.ms-borderColor-orangeLighter--hover:hover{border-color:#ff8c00}.ms-borderColor-redDark,.ms-borderColor-redDark--hover:hover{border-color:#a80000}.ms-borderColor-red,.ms-borderColor-red--hover:hover{border-color:#e81123}.ms-borderColor-magentaDark,.ms-borderColor-magentaDark--hover:hover{border-color:#5c005c}.ms-borderColor-magenta,.ms-borderColor-magenta--hover:hover{border-color:#b4009e}.ms-borderColor-magentaLight,.ms-borderColor-magentaLight--hover:hover{border-color:#e3008c}.ms-borderColor-purpleDark,.ms-borderColor-purpleDark--hover:hover{border-color:#32145a}.ms-borderColor-purple,.ms-borderColor-purple--hover:hover{border-color:#5c2d91}.ms-borderColor-purpleLight,.ms-borderColor-purpleLight--hover:hover{border-color:#b4a0ff}.ms-borderColor-blueDark,.ms-borderColor-blueDark--hover:hover{border-color:#002050}.ms-borderColor-blueMid,.ms-borderColor-blueMid--hover:hover{border-color:#00188f}.ms-borderColor-blue,.ms-borderColor-blue--hover:hover{border-color:#0078d4}.ms-borderColor-blueLight,.ms-borderColor-blueLight--hover:hover{border-color:#00bcf2}.ms-borderColor-tealDark,.ms-borderColor-tealDark--hover:hover{border-color:#004b50}.ms-borderColor-teal,.ms-borderColor-teal--hover:hover{border-color:#008272}.ms-borderColor-tealLight,.ms-borderColor-tealLight--hover:hover{border-color:#00b294}.ms-borderColor-greenDark,.ms-borderColor-greenDark--hover:hover{border-color:#004b1c}.ms-borderColor-green,.ms-borderColor-green--hover:hover{border-color:#107c10}.ms-borderColor-greenLight,.ms-borderColor-greenLight--hover:hover{border-color:#bad80a}.ms-fontColor-yellow,.ms-fontColor-yellow--hover:hover{color:#ffb900}.ms-fontColor-yellowLight,.ms-fontColor-yellowLight--hover:hover{color:#fff100}.ms-fontColor-orange,.ms-fontColor-orange--hover:hover{color:#d83b01}.ms-fontColor-orangeLight,.ms-fontColor-orangeLight--hover:hover{color:#ea4300}.ms-fontColor-orangeLighter,.ms-fontColor-orangeLighter--hover:hover{color:#ff8c00}.ms-fontColor-redDark,.ms-fontColor-redDark--hover:hover{color:#a80000}.ms-fontColor-red,.ms-fontColor-red--hover:hover{color:#e81123}.ms-fontColor-magentaDark,.ms-fontColor-magentaDark--hover:hover{color:#5c005c}.ms-fontColor-magenta,.ms-fontColor-magenta--hover:hover{color:#b4009e}.ms-fontColor-magentaLight,.ms-fontColor-magentaLight--hover:hover{color:#e3008c}.ms-fontColor-purpleDark,.ms-fontColor-purpleDark--hover:hover{color:#32145a}.ms-fontColor-purple,.ms-fontColor-purple--hover:hover{color:#5c2d91}.ms-fontColor-purpleLight,.ms-fontColor-purpleLight--hover:hover{color:#b4a0ff}.ms-fontColor-blueDark,.ms-fontColor-blueDark--hover:hover{color:#002050}.ms-fontColor-blueMid,.ms-fontColor-blueMid--hover:hover{color:#00188f}.ms-fontColor-blue,.ms-fontColor-blue--hover:hover{color:#0078d4}.ms-fontColor-blueLight,.ms-fontColor-blueLight--hover:hover{color:#00bcf2}.ms-fontColor-tealDark,.ms-fontColor-tealDark--hover:hover{color:#004b50}.ms-fontColor-teal,.ms-fontColor-teal--hover:hover{color:#008272}.ms-fontColor-tealLight,.ms-fontColor-tealLight--hover:hover{color:#00b294}.ms-fontColor-greenDark,.ms-fontColor-greenDark--hover:hover{color:#004b1c}.ms-fontColor-green,.ms-fontColor-green--hover:hover{color:#107c10}.ms-fontColor-greenLight,.ms-fontColor-greenLight--hover:hover{color:#bad80a}.ms-bgColor-info,.ms-bgColor-info--hover:hover{background-color:#f3f2f1}.ms-bgColor-success,.ms-bgColor-success--hover:hover{background-color:#dff6dd}.ms-bgColor-severeWarning,.ms-bgColor-severeWarning--hover:hover{background-color:#fed9cc}.ms-bgColor-warning,.ms-bgColor-warning--hover:hover{background-color:#fff4ce}.ms-bgColor-error,.ms-bgColor-error--hover:hover{background-color:#fde7e9}.ms-fontColor-info,.ms-fontColor-info--hover:hover{color:#797775}.ms-fontColor-success,.ms-fontColor-success--hover:hover{color:#107c10}.ms-fontColor-alert,.ms-fontColor-alert--hover:hover{color:#d83b01}.ms-fontColor-warning,.ms-fontColor-warning--hover:hover{color:#797775}.ms-fontColor-severeWarning,.ms-fontColor-severeWarning--hover:hover{color:#d83b01}.ms-fontColor-error,.ms-fontColor-error--hover:hover{color:#a80000}.ms-bgColor-contrastBlackDisabled,.ms-bgColor-contrastBlackDisabled--hover:hover{background-color:#0f0}.ms-bgColor-contrastWhiteDisabled,.ms-bgColor-contrastWhiteDisabled--hover:hover{background-color:#600000}.ms-bgColor-contrastBlackSelected,.ms-bgColor-contrastBlackSelected--hover:hover{background-color:#1aebff}.ms-bgColor-contrastWhiteSelected,.ms-bgColor-contrastWhiteSelected--hover:hover{background-color:#37006e}.ms-fontColor-contrastBlackDisabled,.ms-fontColor-contrastBlackDisabled--hover:hover{color:#0f0}.ms-fontColor-contrastWhiteDisabled,.ms-fontColor-contrastWhiteDisabled--hover:hover{color:#600000}.ms-fontColor-contrastBlackSelected,.ms-fontColor-contrastBlackSelected--hover:hover{color:#1aebff}.ms-fontColor-contrastWhiteSelected,.ms-fontColor-contrastWhiteSelected--hover:hover{color:#37006e}.ms-borderColor-contrastBlackDisabled,.ms-borderColor-contrastBlackDisabled--hover:hover{border-color:#0f0}.ms-borderColor-contrastWhiteDisabled,.ms-borderColor-contrastWhiteDisabled--hover:hover{border-color:#600000}.ms-borderColor-contrastBlackSelected,.ms-borderColor-contrastBlackSelected--hover:hover{border-color:#1aebff}.ms-borderColor-contrastWhiteSelected,.ms-borderColor-contrastWhiteSelected--hover:hover{border-color:#37006e}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-depth-0{box-shadow:0 0 0 0 transparent}.ms-depth-4{box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.132),0 .3px .9px 0 rgba(0,0,0,.108)}.ms-depth-8{box-shadow:0 3.2px 7.2px 0 rgba(0,0,0,.132),0 .6px 1.8px 0 rgba(0,0,0,.108)}.ms-depth-16{box-shadow:0 6.4px 14.4px 0 rgba(0,0,0,.132),0 1.2px 3.6px 0 rgba(0,0,0,.108)}.ms-depth-64{box-shadow:0 25.6px 57.6px 0 rgba(0,0,0,.22),0 4.8px 14.4px 0 rgba(0,0,0,.18)}.ms-fontSize-68{font-size:68px}.ms-fontSize-42{font-size:42px}.ms-fontSize-32{font-size:32px}.ms-fontSize-28{font-size:28px}.ms-fontSize-24{font-size:24px}.ms-fontSize-20{font-size:20px}.ms-fontSize-18{font-size:18px}.ms-fontSize-16{font-size:16px}.ms-fontSize-14{font-size:14px}.ms-fontSize-12{font-size:12px}.ms-fontSize-10{font-size:10px}.ms-fontWeight-regular{font-weight:400}.ms-fontWeight-semibold{font-weight:600}.ms-fontWeight-bold{font-weight:700}.ms-font-su{font-size:42px;font-weight:100}.ms-font-xxl{font-size:28px;font-weight:100}.ms-font-xl-plus{font-size:24px;font-weight:100}.ms-font-xl{font-size:21px;font-weight:100}.ms-font-l{font-size:17px;font-weight:300}.ms-font-m-plus{font-size:15px;font-weight:400}.ms-font-m{font-size:14px;font-weight:400}.ms-font-s-plus{font-size:13px;font-weight:400}.ms-font-s{font-size:12px;font-weight:400}.ms-font-xs{font-size:11px;font-weight:400}.ms-font-mi{font-size:10px;font-weight:600}.ms-fontWeight-light{font-weight:100}.ms-fontWeight-semilight{font-weight:300}.ms-fontSize-su{font-size:42px}.ms-fontSize-xxl{font-size:28px}.ms-fontSize-xlPlus{font-size:24px}.ms-fontSize-xl{font-size:21px}.ms-fontSize-l{font-size:17px}.ms-fontSize-mPlus{font-size:15px}.ms-fontSize-m{font-size:14px}.ms-fontSize-sPlus{font-size:13px}.ms-fontSize-s{font-size:12px}.ms-fontSize-xs{font-size:11px}.ms-fontSize-mi{font-size:10px}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:600;font-style:normal}.ms-Grid{box-sizing:border-box;zoom:1;padding:0 8px}.ms-Grid::after,.ms-Grid::before{display:table;content:'';line-height:0}.ms-Grid::after{clear:both}.ms-Grid-row{margin:0 -8px;box-sizing:border-box;zoom:1}.ms-Grid-row::after,.ms-Grid-row::before{display:table;content:'';line-height:0}.ms-Grid-row::after{clear:both}.ms-Grid-col{position:relative;min-height:1px;padding-left:8px;padding-right:8px;box-sizing:border-box}[dir=ltr] .ms-Grid-col{float:left}[dir=rtl] .ms-Grid-col{float:right}.ms-Grid-col .ms-Grid{padding:0}.ms-Icon{display:inline-block;font-family:FabricMDL2Icons;font-style:normal;font-weight:400;speak:none}.ms-Icon--circle{margin:0 .5em 0 0;position:relative;display:inline-block;font-size:1rem;width:1em;height:1em;padding:0;text-align:left}[dir=rtl] .ms-Icon--circle{margin:0 0 0 .5em}.ms-Icon--circle::after,.ms-Icon--circle::before{line-height:1;font-size:inherit}.ms-Icon--circle::before{display:block;width:100%;height:100%;margin:0;padding:0;position:absolute}.ms-Icon--circle::after{content:'\\\\e000';position:absolute;top:0;left:0;transform:scale(2);transform-origin:50% 50%;z-index:0}.ms-Icon--xs{font-size:10px}.ms-Icon--s{font-size:12px}.ms-Icon--m{font-size:16px}.ms-Icon--l{font-size:20px}.ms-Icon--12PointStar::before{content:'ï”…'}.ms-Icon--6PointStar::before{content:''}.ms-Icon--AADLogo::before{content:''}.ms-Icon--Accept::before{content:''}.ms-Icon--AccessibiltyChecker::before{content:'ï µ'}.ms-Icon--AccessLogo::before{content:''}.ms-Icon--AccessLogoFill::before{content:''}.ms-Icon--AccountActivity::before{content:'î¿´'}.ms-Icon--AccountBrowser::before{content:'ï™’'}.ms-Icon--AccountManagement::before{content:'ï•œ'}.ms-Icon--Accounts::before{content:'î¤'}.ms-Icon--ActionCenter::before{content:''}.ms-Icon--ActivateOrders::before{content:'î¿ '}.ms-Icon--ActivityFeed::before{content:'ï–'}.ms-Icon--Add::before{content:'îœ'}.ms-Icon--AddBookmark::before{content:'ï–·'}.ms-Icon--AddEvent::before{content:''}.ms-Icon--AddFavorite::before{content:''}.ms-Icon--AddFavoriteFill::before{content:''}.ms-Icon--AddFriend::before{content:''}.ms-Icon--AddGroup::before{content:''}.ms-Icon--AddHome::before{content:'ï…»'}.ms-Icon--AddIn::before{content:'ïµ'}.ms-Icon--AddLink::before{content:'îž'}.ms-Icon--AddNotes::before{content:'î«£'}.ms-Icon--AddOnlineMeeting::before{content:''}.ms-Icon--AddPhone::before{content:''}.ms-Icon--AddReaction::before{content:'ï¡'}.ms-Icon--AddSpaceAfter::before{content:'îŸ'}.ms-Icon--AddSpaceBefore::before{content:'îž'}.ms-Icon--AddTo::before{content:''}.ms-Icon--AddToShoppingList::before{content:''}.ms-Icon--AddWork::before{content:'ï…¼'}.ms-Icon--Admin::before{content:''}.ms-Icon--AdminALogo32::before{content:'ï’º'}.ms-Icon--AdminALogoFill32::before{content:'ï’»'}.ms-Icon--AdminALogoInverse32::before{content:''}.ms-Icon--AdminCLogoInverse32::before{content:''}.ms-Icon--AdminDLogoInverse32::before{content:''}.ms-Icon--AdminELogoInverse32::before{content:'îµ'}.ms-Icon--AdminLLogoInverse32::before{content:'îµ®'}.ms-Icon--AdminMLogoInverse32::before{content:''}.ms-Icon--AdminOLogoInverse32::before{content:'îµ°'}.ms-Icon--AdminPLogoInverse32::before{content:'îµ±'}.ms-Icon--AdminSLogoInverse32::before{content:'îµ²'}.ms-Icon--AdminYLogoInverse32::before{content:'îµ³'}.ms-Icon--Airplane::before{content:''}.ms-Icon--AirplaneSolid::before{content:'îŒ'}.ms-Icon--AirTickets::before{content:''}.ms-Icon--AlarmClock::before{content:''}.ms-Icon--Album::before{content:'îž«'}.ms-Icon--AlbumRemove::before{content:'î±¢'}.ms-Icon--AlertSettings::before{content:''}.ms-Icon--AlertSolid::before{content:''}.ms-Icon--AlignCenter::before{content:''}.ms-Icon--AlignHorizontalCenter::before{content:'ï“´'}.ms-Icon--AlignHorizontalLeft::before{content:''}.ms-Icon--AlignHorizontalRight::before{content:''}.ms-Icon--AlignJustify::before{content:''}.ms-Icon--AlignLeft::before{content:''}.ms-Icon--AlignRight::before{content:''}.ms-Icon--AlignVerticalBottom::before{content:''}.ms-Icon--AlignVerticalCenter::before{content:'ï“·'}.ms-Icon--AlignVerticalTop::before{content:''}.ms-Icon--AllApps::before{content:'îœ'}[dir=rtl] .ms-Icon--AllApps::before{content:'î©€'}.ms-Icon--AllAppsMirrored::before{content:'î©€'}[dir=rtl] .ms-Icon--AllAppsMirrored::before{content:'îœ'}.ms-Icon--AllCurrency::before{content:''}.ms-Icon--AltText::before{content:''}.ms-Icon--AnalyticsLogo::before{content:''}.ms-Icon--AnalyticsQuery::before{content:''}.ms-Icon--AnalyticsReport::before{content:''}.ms-Icon--AnalyticsView::before{content:'ï—±'}.ms-Icon--AnchorLock::before{content:''}.ms-Icon--Annotation::before{content:''}.ms-Icon--AppIconDefault::before{content:''}.ms-Icon--AppIconDefaultAdd::before{content:'î¿š'}.ms-Icon--AppIconDefaultList::before{content:'î¿ž'}.ms-Icon--Archive::before{content:''}.ms-Icon--ArchiveUndo::before{content:''}.ms-Icon--AreaChart::before{content:''}.ms-Icon--ArrangeBringForward::before{content:''}.ms-Icon--ArrangeBringToFront::before{content:''}.ms-Icon--ArrangeByFrom::before{content:''}.ms-Icon--ArrangeSendBackward::before{content:''}.ms-Icon--ArrangeSendToBack::before{content:''}.ms-Icon--Arrivals::before{content:''}.ms-Icon--ArrowDownRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRight8::before{content:'î»°'}.ms-Icon--ArrowDownRightMirrored8::before{content:'î»°'}[dir=rtl] .ms-Icon--ArrowDownRightMirrored8::before{content:''}.ms-Icon--ArrowTallDownLeft::before{content:''}.ms-Icon--ArrowTallDownRight::before{content:'ï‹€'}.ms-Icon--ArrowTallUpLeft::before{content:''}.ms-Icon--ArrowTallUpRight::before{content:''}.ms-Icon--ArrowUpRight::before{content:'ï©'}.ms-Icon--ArrowUpRight8::before{content:'î»”'}[dir=rtl] .ms-Icon--ArrowUpRight8::before{content:''}.ms-Icon--ArrowUpRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRightMirrored8::before{content:'î»”'}.ms-Icon--Articles::before{content:'î«'}.ms-Icon--Ascending::before{content:'î·€'}.ms-Icon--AspectRatio::before{content:'îž™'}.ms-Icon--AssessmentGroup::before{content:''}.ms-Icon--AssessmentGroupTemplate::before{content:''}.ms-Icon--AssetLibrary::before{content:''}.ms-Icon--Assign::before{content:''}.ms-Icon--Asterisk::before{content:''}.ms-Icon--AsteriskSolid::before{content:'ï'}.ms-Icon--ATPLogo::before{content:'î¾…'}.ms-Icon--Attach::before{content:''}.ms-Icon--AustralianRules::before{content:'î¹°'}.ms-Icon--AuthenticatorApp::before{content:'ïš±'}.ms-Icon--AutoDeploySettings::before{content:'ïº'}.ms-Icon--AutoEnhanceOff::before{content:''}.ms-Icon--AutoEnhanceOn::before{content:'îž'}.ms-Icon--AutoFillTemplate::before{content:''}.ms-Icon--AutoFitContents::before{content:'î¨'}.ms-Icon--AutoFitWindow::before{content:'î©'}.ms-Icon--AutoHeight::before{content:'ï”’'}.ms-Icon--AutomateFlow::before{content:'îµ'}.ms-Icon--AutoRacing::before{content:''}.ms-Icon--AwayStatus::before{content:''}.ms-Icon--AzureAPIManagement::before{content:'ï¿'}.ms-Icon--AzureKeyVault::before{content:''}.ms-Icon--AzureLogo::before{content:'îª'}.ms-Icon--AzureServiceEndpoint::before{content:''}.ms-Icon--Back::before{content:''}.ms-Icon--BackgroundColor::before{content:'ï«'}.ms-Icon--Backlog::before{content:''}.ms-Icon--BacklogBoard::before{content:'ï‘„'}.ms-Icon--BacklogList::before{content:'ïš¿'}.ms-Icon--BackToWindow::before{content:''}.ms-Icon--Badge::before{content:'î°›'}.ms-Icon--Balloons::before{content:'îµ¾'}.ms-Icon--Bank::before{content:'î ¥'}.ms-Icon--BankSolid::before{content:'ï'}.ms-Icon--BarChart4::before{content:''}.ms-Icon--BarChartHorizontal::before{content:''}.ms-Icon--BarChartVertical::before{content:''}.ms-Icon--BarChartVerticalEdit::before{content:'ï¢'}.ms-Icon--BarChartVerticalFill::before{content:'ï °'}.ms-Icon--BarChartVerticalFilter::before{content:'ï¾'}.ms-Icon--BarChartVerticalFilterSolid::before{content:'ï¿'}.ms-Icon--Baseball::before{content:'î¬ '}.ms-Icon--BeerMug::before{content:'ï’ž'}.ms-Icon--BIDashboard::before{content:''}.ms-Icon--BidiLtr::before{content:''}.ms-Icon--BidiRtl::before{content:''}.ms-Icon--BingLogo::before{content:'î«'}.ms-Icon--BirthdayCake::before{content:'î¾'}.ms-Icon--BlockContact::before{content:''}.ms-Icon--Blocked::before{content:''}.ms-Icon--Blocked12::before{content:''}.ms-Icon--Blocked2::before{content:''}.ms-Icon--Blocked2Solid::before{content:''}.ms-Icon--BlockedSite::before{content:''}.ms-Icon--BlockedSiteSolid12::before{content:''}.ms-Icon--BlockedSolid::before{content:'ï”±'}.ms-Icon--Blog::before{content:''}.ms-Icon--BlowingSnow::before{content:''}.ms-Icon--Blur::before{content:''}.ms-Icon--Boards::before{content:''}.ms-Icon--Bold::before{content:'î£'}.ms-Icon--BookAnswers::before{content:''}.ms-Icon--BookingsLogo::before{content:'î·‡'}.ms-Icon--BookmarkReport::before{content:'ï«'}.ms-Icon--Bookmarks::before{content:''}[dir=rtl] .ms-Icon--Bookmarks::before{content:'î©'}.ms-Icon--BookmarksMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--BookmarksMirrored::before{content:''}.ms-Icon--BorderDash::before{content:''}.ms-Icon--BorderDot::before{content:''}.ms-Icon--BoxAdditionSolid::before{content:'ï‹”'}.ms-Icon--BoxCheckmarkSolid::before{content:'ï‹—'}.ms-Icon--BoxMultiplySolid::before{content:'ï‹•'}.ms-Icon--BoxPlaySolid::before{content:'ï‹–'}.ms-Icon--BoxSubtractSolid::before{content:'ï‹“'}.ms-Icon--BranchCommit::before{content:''}.ms-Icon--BranchCompare::before{content:''}.ms-Icon--BranchFork::before{content:'ï…³'}.ms-Icon--BranchFork2::before{content:''}.ms-Icon--BranchLocked::before{content:''}.ms-Icon--BranchMerge::before{content:''}.ms-Icon--BranchPullRequest::before{content:''}.ms-Icon--BranchSearch::before{content:''}.ms-Icon--BranchShelveset::before{content:''}.ms-Icon--Breadcrumb::before{content:''}.ms-Icon--Breakfast::before{content:'ï’œ'}.ms-Icon--Brightness::before{content:''}.ms-Icon--Broom::before{content:''}.ms-Icon--BrowserScreenShot::before{content:'î¯'}.ms-Icon--BrowserTab::before{content:'ï——'}.ms-Icon--BrowserTabScreenshot::before{content:'ï—˜'}.ms-Icon--Brunch::before{content:'ï’'}.ms-Icon--Brush::before{content:''}.ms-Icon--BucketColor::before{content:''}.ms-Icon--BucketColorFill::before{content:''}.ms-Icon--BufferTimeAfter::before{content:'ïƒ'}.ms-Icon--BufferTimeBefore::before{content:'ïƒ'}.ms-Icon--BufferTimeBoth::before{content:''}.ms-Icon--Bug::before{content:''}.ms-Icon--BugBlock::before{content:'î€'}.ms-Icon--BugSolid::before{content:''}.ms-Icon--BugSync::before{content:'î¿'}.ms-Icon--Build::before{content:'ïŠ'}.ms-Icon--BuildDefinition::before{content:''}.ms-Icon--BuildIssue::before{content:''}.ms-Icon--BuildQueue::before{content:'ï‰'}.ms-Icon--BuildQueueNew::before{content:'ï‰'}.ms-Icon--BulkUpload::before{content:''}.ms-Icon--BulletedList2::before{content:''}[dir=rtl] .ms-Icon--BulletedList2::before{content:''}.ms-Icon--BulletedList2Mirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedList2Mirrored::before{content:''}.ms-Icon--BulletedListBullet::before{content:'ïž“'}[dir=rtl] .ms-Icon--BulletedListBullet::before{content:'ïž•'}.ms-Icon--BulletedListBulletMirrored::before{content:'ïž•'}[dir=rtl] .ms-Icon--BulletedListBulletMirrored::before{content:'ïž“'}.ms-Icon--BulletedList::before{content:''}[dir=rtl] .ms-Icon--BulletedList::before{content:'î©‚'}.ms-Icon--BulletedListMirrored::before{content:'î©‚'}[dir=rtl] .ms-Icon--BulletedListMirrored::before{content:''}.ms-Icon--BulletedListText::before{content:'ïž’'}[dir=rtl] .ms-Icon--BulletedListText::before{content:'ïž”'}.ms-Icon--BulletedListTextMirrored::before{content:'ïž”'}[dir=rtl] .ms-Icon--BulletedListTextMirrored::before{content:'ïž’'}.ms-Icon--BulletedTreeList::before{content:'ï¡Œ'}.ms-Icon--Bullseye::before{content:''}.ms-Icon--BullseyeTarget::before{content:'ï—°'}.ms-Icon--BullseyeTargetEdit::before{content:''}.ms-Icon--Bus::before{content:'î †'}.ms-Icon--BusinessCenterLogo::before{content:'ï’²'}.ms-Icon--BusinessHoursSign::before{content:'ïŒ'}.ms-Icon--BusSolid::before{content:'î‡'}.ms-Icon--ButtonControl::before{content:''}.ms-Icon--Cafe::before{content:'î°²'}.ms-Icon--Cake::before{content:''}.ms-Icon--Calculator::before{content:''}.ms-Icon--CalculatorAddition::before{content:''}.ms-Icon--CalculatorDelta::before{content:'î†'}.ms-Icon--CalculatorEqualTo::before{content:''}.ms-Icon--CalculatorMultiply::before{content:''}.ms-Icon--CalculatorNotEqualTo::before{content:'ï‹’'}.ms-Icon--CalculatorPercentage::before{content:''}.ms-Icon--CalculatorSubtract::before{content:''}.ms-Icon--CalendarAgenda::before{content:''}.ms-Icon--CalendarDay::before{content:''}.ms-Icon--Calendar::before{content:''}[dir=rtl] .ms-Icon--Calendar::before{content:'î´¨'}.ms-Icon--CalendarMirrored::before{content:'î´¨'}[dir=rtl] .ms-Icon--CalendarMirrored::before{content:''}.ms-Icon--CalendarReply::before{content:''}.ms-Icon--CalendarSettings::before{content:''}[dir=rtl] .ms-Icon--CalendarSettings::before{content:'ï•™'}.ms-Icon--CalendarSettingsMirrored::before{content:'ï•™'}[dir=rtl] .ms-Icon--CalendarSettingsMirrored::before{content:''}.ms-Icon--CalendarWeek::before{content:''}.ms-Icon--CalendarWorkWeek::before{content:''}.ms-Icon--CalendarYear::before{content:'î±'}.ms-Icon--Calories::before{content:'î²'}.ms-Icon--CaloriesAdd::before{content:'ï…²'}.ms-Icon--Camera::before{content:''}.ms-Icon--CampaignTemplate::before{content:'ï ‘'}.ms-Icon--Cancel::before{content:''}.ms-Icon--CannedChat::before{content:''}.ms-Icon--Car::before{content:'î „'}.ms-Icon--CaretBottomLeftCenter8::before{content:'ï¥'}.ms-Icon--CaretBottomLeftSolid8::before{content:'ï„¡'}.ms-Icon--CaretBottomRightCenter8::before{content:'ï¤'}.ms-Icon--CaretBottomRightSolid8::before{content:'ï„¢'}.ms-Icon--CaretDown8::before{content:'î·˜'}.ms-Icon--CaretDownSolid8::before{content:'î·œ'}.ms-Icon--CaretHollow::before{content:'î —'}[dir=rtl] .ms-Icon--CaretHollow::before{content:'î©…'}.ms-Icon--CaretHollowMirrored::before{content:'î©…'}[dir=rtl] .ms-Icon--CaretHollowMirrored::before{content:'î —'}.ms-Icon--CaretLeft8::before{content:'î·•'}.ms-Icon--CaretLeftSolid8::before{content:'î·™'}.ms-Icon--CaretRight::before{content:'ï«'}.ms-Icon--CaretRight8::before{content:'î·–'}.ms-Icon--CaretRightSolid8::before{content:'î·š'}.ms-Icon--CaretSolid16::before{content:'î¹¢'}.ms-Icon--CaretSolidDown::before{content:'ï‚Ž'}.ms-Icon--CaretSolidLeft::before{content:'ï‚'}.ms-Icon--CaretSolid::before{content:'î ˜'}[dir=rtl] .ms-Icon--CaretSolid::before{content:''}.ms-Icon--CaretSolidMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretSolidMirrored::before{content:'î ˜'}.ms-Icon--CaretSolidRight::before{content:'ï‚'}.ms-Icon--CaretSolidUp::before{content:'ï‚'}.ms-Icon--CaretTopLeftCenter8::before{content:'ï§'}.ms-Icon--CaretTopLeftSolid8::before{content:'î½”'}.ms-Icon--CaretTopRightCenter8::before{content:'ï¦'}.ms-Icon--CaretTopRightSolid8::before{content:''}.ms-Icon--CaretUp8::before{content:'î·—'}.ms-Icon--CaretUpSolid8::before{content:'î·›'}.ms-Icon--Cat::before{content:''}.ms-Icon--CellPhone::before{content:''}.ms-Icon--Certificate::before{content:''}.ms-Icon--CertifiedDatabase::before{content:'ï–»'}.ms-Icon--ChangeEntitlements::before{content:'îŒ'}.ms-Icon--Chart::before{content:''}.ms-Icon--ChartSeries::before{content:''}.ms-Icon--ChartTemplate::before{content:'ï ’'}.ms-Icon--ChartXAngle::before{content:'ï””'}.ms-Icon--ChartYAngle::before{content:''}.ms-Icon--Chat::before{content:'î¤'}.ms-Icon--ChatBot::before{content:'ï‚‹'}.ms-Icon--ChatInviteFriend::before{content:'î³¾'}.ms-Icon--ChatSolid::before{content:'ï„'}.ms-Icon--Checkbox::before{content:''}.ms-Icon--CheckboxComposite::before{content:''}.ms-Icon--CheckboxCompositeReversed::before{content:''}.ms-Icon--CheckboxFill::before{content:''}.ms-Icon--CheckboxIndeterminate::before{content:''}.ms-Icon--CheckedOutByOther12::before{content:''}.ms-Icon--CheckedOutByYou12::before{content:''}.ms-Icon--CheckList::before{content:''}.ms-Icon--CheckListCheck::before{content:'ïž©'}[dir=rtl] .ms-Icon--CheckListCheck::before{content:'ïž«'}.ms-Icon--CheckListCheckMirrored::before{content:'ïž«'}[dir=rtl] .ms-Icon--CheckListCheckMirrored::before{content:'ïž©'}.ms-Icon--CheckListText::before{content:''}[dir=rtl] .ms-Icon--CheckListText::before{content:''}.ms-Icon--CheckListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListTextMirrored::before{content:''}.ms-Icon--CheckMark::before{content:''}.ms-Icon--ChevronDown::before{content:'îœ'}.ms-Icon--ChevronDownEnd6::before{content:'ï¯'}.ms-Icon--ChevronDownMed::before{content:''}.ms-Icon--ChevronDownSmall::before{content:''}.ms-Icon--ChevronFold10::before{content:'ïª'}.ms-Icon--ChevronLeft::before{content:'î«'}.ms-Icon--ChevronLeftEnd6::before{content:'ï±'}.ms-Icon--ChevronLeftMed::before{content:''}.ms-Icon--ChevronLeftSmall::before{content:''}.ms-Icon--ChevronRight::before{content:'î¬'}.ms-Icon--ChevronRightEnd6::before{content:'ï²'}.ms-Icon--ChevronRightMed::before{content:''}.ms-Icon--ChevronRightSmall::before{content:''}.ms-Icon--ChevronUnfold10::before{content:'ï©'}.ms-Icon--ChevronUp::before{content:''}.ms-Icon--ChevronUpEnd6::before{content:'ï°'}.ms-Icon--ChevronUpMed::before{content:''}.ms-Icon--ChevronUpSmall::before{content:'î¥'}.ms-Icon--Childof::before{content:'ï '}.ms-Icon--Chopsticks::before{content:'ï’¢'}.ms-Icon--ChromeBack::before{content:'î °'}[dir=rtl] .ms-Icon--ChromeBack::before{content:''}.ms-Icon--ChromeBackMirrored::before{content:''}[dir=rtl] .ms-Icon--ChromeBackMirrored::before{content:'î °'}.ms-Icon--ChromeClose::before{content:''}.ms-Icon--ChromeFullScreen::before{content:'î¤'}.ms-Icon--ChromeMinimize::before{content:''}.ms-Icon--ChromeRestore::before{content:''}.ms-Icon--CircleAddition::before{content:'ï‹£'}.ms-Icon--CircleAdditionSolid::before{content:''}.ms-Icon--CircleFill::before{content:''}.ms-Icon--CircleHalfFull::before{content:''}.ms-Icon--CirclePause::before{content:'ï‹™'}.ms-Icon--CirclePauseSolid::before{content:''}.ms-Icon--CirclePlus::before{content:'î«®'}.ms-Icon--CircleRing::before{content:''}.ms-Icon--CircleShape::before{content:''}.ms-Icon--CircleShapeSolid::before{content:''}.ms-Icon--CircleStop::before{content:'ï‹œ'}.ms-Icon--CircleStopSolid::before{content:'ï‹›'}.ms-Icon--CityNext::before{content:'î°†'}.ms-Icon--CityNext2::before{content:'î°‡'}.ms-Icon--ClassNotebookLogo16::before{content:'ï’ˆ'}.ms-Icon--ClassNotebookLogo32::before{content:'ï’†'}.ms-Icon--ClassNotebookLogoFill16::before{content:'ï’‰'}.ms-Icon--ClassNotebookLogoFill32::before{content:'ï’‡'}.ms-Icon--ClassNotebookLogoInverse::before{content:'î·ˆ'}.ms-Icon--ClassNotebookLogoInverse16::before{content:'ï’‹'}.ms-Icon--ClassNotebookLogoInverse32::before{content:'ï’Š'}.ms-Icon--ClassroomLogo::before{content:'î½µ'}.ms-Icon--Clear::before{content:''}.ms-Icon--ClearFilter::before{content:'î¾'}.ms-Icon--ClearFormatting::before{content:'î·'}.ms-Icon--ClearFormattingA::before{content:'ïž'}.ms-Icon--ClearFormattingEraser::before{content:'ïžž'}.ms-Icon--ClearNight::before{content:''}.ms-Icon--ClearSelection::before{content:''}[dir=rtl] .ms-Icon--ClearSelection::before{content:''}.ms-Icon--ClearSelectionMirrored::before{content:''}[dir=rtl] .ms-Icon--ClearSelectionMirrored::before{content:''}.ms-Icon--ClipboardList::before{content:''}[dir=rtl] .ms-Icon--ClipboardList::before{content:''}.ms-Icon--ClipboardListMirrored::before{content:''}[dir=rtl] .ms-Icon--ClipboardListMirrored::before{content:''}.ms-Icon--ClipboardSolid::before{content:'ï—œ'}.ms-Icon--Clock::before{content:''}.ms-Icon--CloneToDesktop::before{content:''}.ms-Icon--ClosedCaption::before{content:''}.ms-Icon--ClosePane::before{content:''}[dir=rtl] .ms-Icon--ClosePane::before{content:''}.ms-Icon--ClosePaneMirrored::before{content:''}[dir=rtl] .ms-Icon--ClosePaneMirrored::before{content:''}.ms-Icon--Cloud::before{content:'î“'}.ms-Icon--CloudAdd::before{content:''}.ms-Icon--CloudDownload::before{content:''}.ms-Icon--CloudImportExport::before{content:''}.ms-Icon--CloudUpload::before{content:''}.ms-Icon--CloudWeather::before{content:''}.ms-Icon--Cloudy::before{content:''}.ms-Icon--Cocktails::before{content:'îª'}.ms-Icon--Code::before{content:''}.ms-Icon--CodeEdit::before{content:'ï•„'}.ms-Icon--Coffee::before{content:''}.ms-Icon--CoffeeScript::before{content:''}.ms-Icon--CollapseContent::before{content:'ï…¥'}.ms-Icon--CollapseContentSingle::before{content:'ï…¦'}.ms-Icon--CollapseMenu::before{content:''}.ms-Icon--CollegeFootball::before{content:''}.ms-Icon--CollegeHoops::before{content:''}.ms-Icon--Color::before{content:'îž'}.ms-Icon--ColorSolid::before{content:'ï”'}.ms-Icon--ColumnLeftTwoThirds::before{content:''}.ms-Icon--ColumnLeftTwoThirdsEdit::before{content:''}.ms-Icon--ColumnOptions::before{content:''}.ms-Icon--ColumnRightTwoThirds::before{content:''}.ms-Icon--ColumnRightTwoThirdsEdit::before{content:''}.ms-Icon--ColumnVerticalSection::before{content:'ï ž'}.ms-Icon--ColumnVerticalSectionEdit::before{content:'ï †'}.ms-Icon--Combine::before{content:''}.ms-Icon--Combobox::before{content:'ï”–'}.ms-Icon--CommandPrompt::before{content:'î–'}.ms-Icon--Comment::before{content:''}.ms-Icon--CommentActive::before{content:'ï „'}.ms-Icon--CommentAdd::before{content:''}.ms-Icon--CommentNext::before{content:''}.ms-Icon--CommentPrevious::before{content:''}.ms-Icon--CommentSolid::before{content:''}.ms-Icon--CommentUrgent::before{content:''}.ms-Icon--Commitments::before{content:'î±'}.ms-Icon--CommonDataServiceCDS::before{content:'î·'}.ms-Icon--Communications::before{content:''}.ms-Icon--CompanyDirectory::before{content:'î¼'}[dir=rtl] .ms-Icon--CompanyDirectory::before{content:''}.ms-Icon--CompanyDirectoryMirrored::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectoryMirrored::before{content:'î¼'}.ms-Icon--Compare::before{content:'ï—'}.ms-Icon--CompareUneven::before{content:'î®'}.ms-Icon--CompassNW::before{content:''}.ms-Icon--Completed::before{content:''}.ms-Icon--CompletedSolid::before{content:''}.ms-Icon--ComplianceAudit::before{content:'î©'}.ms-Icon--ConfigurationSolid::before{content:''}.ms-Icon--ConnectContacts::before{content:'î¿”'}.ms-Icon--ConnectVirtualMachine::before{content:'îº'}.ms-Icon--ConstructionCone::before{content:'î¦'}.ms-Icon--ConstructionConeSolid::before{content:''}.ms-Icon--Contact::before{content:'î»'}.ms-Icon--ContactCard::before{content:''}.ms-Icon--ContactCardSettings::before{content:'ï•–'}[dir=rtl] .ms-Icon--ContactCardSettings::before{content:'ï•—'}.ms-Icon--ContactCardSettingsMirrored::before{content:'ï•—'}[dir=rtl] .ms-Icon--ContactCardSettingsMirrored::before{content:'ï•–'}.ms-Icon--ContactHeart::before{content:'ï¡¢'}.ms-Icon--ContactInfo::before{content:'î¹'}.ms-Icon--ContactLink::before{content:''}.ms-Icon--ContactList::before{content:''}.ms-Icon--ContactLock::before{content:'ï€'}.ms-Icon--ContentFeed::before{content:'î¨'}.ms-Icon--ContentSettings::before{content:''}.ms-Icon--ContextMenu::before{content:'ï¼'}.ms-Icon--Contrast::before{content:'îž¡'}.ms-Icon--Copy::before{content:''}.ms-Icon--CortanaLogoBeckonInner::before{content:''}.ms-Icon--CortanaLogoBeckonOuter::before{content:''}.ms-Icon--CortanaLogoInner::before{content:'î ²'}.ms-Icon--CortanaLogoOuter::before{content:'î ±'}.ms-Icon--CortanaLogoReadyInner::before{content:''}.ms-Icon--CortanaLogoReadyOuter::before{content:''}.ms-Icon--Cotton::before{content:''}.ms-Icon--Coupon::before{content:'ïž¼'}.ms-Icon--CPlusPlus::before{content:'ï‹´'}.ms-Icon--CPlusPlusLanguage::before{content:''}.ms-Icon--CreateMailRule::before{content:''}.ms-Icon--Cricket::before{content:''}.ms-Icon--CRMProcesses::before{content:'î¾±'}.ms-Icon--CRMReport::before{content:''}.ms-Icon--CRMServices::before{content:'î¿’'}.ms-Icon--Crop::before{content:''}.ms-Icon--Crown::before{content:'î´'}.ms-Icon--CrownSolid::before{content:''}.ms-Icon--CSharp::before{content:'ï‹°'}.ms-Icon--CSharpLanguage::before{content:''}.ms-Icon--CSS::before{content:''}.ms-Icon--CubeShape::before{content:''}.ms-Icon--CubeShapeSolid::before{content:'î¡'}.ms-Icon--CustomizeToolbar::before{content:'ï ¨'}.ms-Icon--CustomList::before{content:''}[dir=rtl] .ms-Icon--CustomList::before{content:''}.ms-Icon--CustomListMirrored::before{content:''}[dir=rtl] .ms-Icon--CustomListMirrored::before{content:''}.ms-Icon--Cut::before{content:''}.ms-Icon--Cycling::before{content:''}.ms-Icon--D365CoreHR::before{content:'ïš½'}.ms-Icon--D365CustomerInsights::before{content:'ïˆ'}.ms-Icon--D365ProjectOperations::before{content:'î²'}.ms-Icon--D365TalentInsight::before{content:'ïš¼'}.ms-Icon--D365TalentLearn::before{content:'ïš»'}.ms-Icon--DashboardAdd::before{content:'ï”'}.ms-Icon--Database::before{content:''}.ms-Icon--DatabaseSync::before{content:'ï¡‚'}.ms-Icon--DataConnectionLibrary::before{content:''}.ms-Icon--Dataflows::before{content:'ïŸ'}.ms-Icon--DataflowsLink::before{content:'î¦'}.ms-Icon--DataManagementSettings::before{content:''}.ms-Icon--DateTime12::before{content:'ïŽ'}.ms-Icon--DateTime2::before{content:''}.ms-Icon--DateTime::before{content:'î²’'}[dir=rtl] .ms-Icon--DateTime::before{content:''}.ms-Icon--DateTimeMirrored::before{content:''}[dir=rtl] .ms-Icon--DateTimeMirrored::before{content:'î²’'}.ms-Icon--DeactivateOrders::before{content:'î¿¡'}.ms-Icon--Decimals::before{content:''}.ms-Icon--DecisionSolid::before{content:'ï'}.ms-Icon--DeclineCall::before{content:'ï…'}.ms-Icon--DecreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrow::before{content:''}.ms-Icon--DecreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrowMirrored::before{content:''}.ms-Icon--DecreaseIndentLegacy::before{content:'îŠ'}.ms-Icon--DecreaseIndent::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndent::before{content:''}.ms-Icon--DecreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentMirrored::before{content:''}.ms-Icon--DecreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentText::before{content:''}.ms-Icon--DecreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentTextMirrored::before{content:''}.ms-Icon--DefaultRatio::before{content:''}.ms-Icon--DefectSolid::before{content:''}.ms-Icon--DefenderTVM::before{content:'ïš³'}.ms-Icon--Delete::before{content:'î'}.ms-Icon--DeleteColumns::before{content:''}.ms-Icon--DeleteRows::before{content:'ï™'}[dir=rtl] .ms-Icon--DeleteRows::before{content:'ï™'}.ms-Icon--DeleteRowsMirrored::before{content:'ï™'}[dir=rtl] .ms-Icon--DeleteRowsMirrored::before{content:'ï™'}.ms-Icon--DeleteTable::before{content:''}.ms-Icon--DeliveryTruck::before{content:''}.ms-Icon--DelveAnalytics::before{content:'î»®'}.ms-Icon--DelveAnalyticsLogo::before{content:'î·Š'}.ms-Icon--DelveLogo::before{content:''}.ms-Icon--DelveLogoFill::before{content:'ïŠ'}.ms-Icon--DelveLogoInverse::before{content:''}.ms-Icon--DependencyAdd::before{content:'î„'}.ms-Icon--DependencyRemove::before{content:'î…'}.ms-Icon--Deploy::before{content:'ïŠ'}.ms-Icon--Descending::before{content:'î·'}.ms-Icon--Design::before{content:''}.ms-Icon--DesktopScreenshot::before{content:'ï—™'}.ms-Icon--DeveloperTools::before{content:''}.ms-Icon--DeviceBug::before{content:'î¤'}.ms-Icon--DeviceOff::before{content:'î‚'}.ms-Icon--DeviceRun::before{content:'î'}.ms-Icon--Devices2::before{content:''}.ms-Icon--Devices3::before{content:''}.ms-Icon--Devices4::before{content:'î¦'}.ms-Icon--Diagnostic::before{content:''}.ms-Icon--DiagnosticDataBarTooltip::before{content:''}.ms-Icon--Dialpad::before{content:'îŸ'}.ms-Icon--Diamond::before{content:'î´‚'}.ms-Icon--DiamondSolid::before{content:'ïŒ'}.ms-Icon--Dictionary::before{content:'î '}.ms-Icon--DictionaryRemove::before{content:'ïšš'}.ms-Icon--DietPlanNotebook::before{content:''}.ms-Icon--DiffInline::before{content:''}.ms-Icon--DiffSideBySide::before{content:''}.ms-Icon--DisableUpdates::before{content:''}.ms-Icon--DisconnectVirtualMachine::before{content:''}.ms-Icon--Dislike::before{content:'î£ '}.ms-Icon--DislikeSolid::before{content:'ï€'}.ms-Icon--DistributeDown::before{content:'ïª'}.ms-Icon--DockLeft::before{content:''}[dir=rtl] .ms-Icon--DockLeft::before{content:'î©Œ'}.ms-Icon--DockLeftMirrored::before{content:'î©Œ'}[dir=rtl] .ms-Icon--DockLeftMirrored::before{content:''}.ms-Icon--DockRight::before{content:'î¤'}.ms-Icon--DocLibrary::before{content:''}.ms-Icon--DocsLogoInverse::before{content:'î·‹'}.ms-Icon--Document::before{content:''}.ms-Icon--DocumentApproval::before{content:''}.ms-Icon--Documentation::before{content:'î°—'}.ms-Icon--DocumentManagement::before{content:''}.ms-Icon--DocumentReply::before{content:'î½—'}.ms-Icon--DocumentSearch::before{content:''}.ms-Icon--DocumentSet::before{content:'î»–'}.ms-Icon--DOM::before{content:'î²'}.ms-Icon--DonutChart::before{content:'ï¨'}.ms-Icon--Door::before{content:'îµ'}.ms-Icon--DoubleBookmark::before{content:'î®'}.ms-Icon--DoubleChevronDown::before{content:''}.ms-Icon--DoubleChevronDown12::before{content:''}.ms-Icon--DoubleChevronDown8::before{content:'ï«'}.ms-Icon--DoubleChevronLeft::before{content:''}.ms-Icon--DoubleChevronLeft12::before{content:''}.ms-Icon--DoubleChevronLeft8::before{content:'ï'}.ms-Icon--DoubleChevronLeftMed::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMed::before{content:'î©'}.ms-Icon--DoubleChevronLeftMedMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}.ms-Icon--DoubleChevronRight::before{content:''}.ms-Icon--DoubleChevronRight12::before{content:''}.ms-Icon--DoubleChevronRight8::before{content:'ï®'}.ms-Icon--DoubleChevronUp::before{content:''}.ms-Icon--DoubleChevronUp12::before{content:''}.ms-Icon--DoubleChevronUp8::before{content:'ï¬'}.ms-Icon--DoubleColumn::before{content:''}.ms-Icon--DoubleColumnEdit::before{content:''}.ms-Icon--DoubleDownArrow::before{content:'ï©'}.ms-Icon--Down::before{content:'î‹'}.ms-Icon--Download::before{content:''}.ms-Icon--DownloadDocument::before{content:''}.ms-Icon--DragObject::before{content:'ï•“'}.ms-Icon--DrillDown::before{content:''}.ms-Icon--DrillDownSolid::before{content:''}.ms-Icon--DrillExpand::before{content:'ï”´'}.ms-Icon--DrillShow::before{content:''}.ms-Icon--DrillThrough::before{content:'ï–¹'}.ms-Icon--DriverOff::before{content:'î»'}.ms-Icon--DRM::before{content:''}.ms-Icon--Drop::before{content:'î‚'}.ms-Icon--Dropdown::before{content:'î·…'}.ms-Icon--DropShape::before{content:''}.ms-Icon--DropShapeSolid::before{content:''}.ms-Icon--DuplicateRow::before{content:'ï ª'}.ms-Icon--Duststorm::before{content:'î§'}.ms-Icon--Dynamics365Logo::before{content:'î·Œ'}.ms-Icon--DynamicSMBLogo::before{content:'î·'}.ms-Icon--EaseOfAccess::before{content:'î¶'}.ms-Icon--EatDrink::before{content:'î ‡'}.ms-Icon--EdgeOldLogo::before{content:'î± '}.ms-Icon--eDiscovery::before{content:'î°'}.ms-Icon--EditContact::before{content:'î¿“'}.ms-Icon--EditCreate::before{content:'ï‰'}.ms-Icon--EditMail::before{content:''}.ms-Icon--Edit::before{content:'îœ'}[dir=rtl] .ms-Icon--Edit::before{content:'î¾'}.ms-Icon--EditMirrored::before{content:'î¾'}[dir=rtl] .ms-Icon--EditMirrored::before{content:'îœ'}.ms-Icon--EditNote::before{content:'î¶'}.ms-Icon--EditPhoto::before{content:'î½·'}.ms-Icon--EditSolid12::before{content:'ï’µ'}[dir=rtl] .ms-Icon--EditSolid12::before{content:'ï’¶'}.ms-Icon--EditSolidMirrored12::before{content:'ï’¶'}[dir=rtl] .ms-Icon--EditSolidMirrored12::before{content:'ï’µ'}.ms-Icon--EditStyle::before{content:'î½ '}.ms-Icon--Education::before{content:'îž¾'}.ms-Icon--Ellipse::before{content:'ï“»'}.ms-Icon--Embed::before{content:''}.ms-Icon--EMI::before{content:''}.ms-Icon--Emoji::before{content:''}.ms-Icon--Emoji2::before{content:'î®'}.ms-Icon--EmojiDisappointed::before{content:''}.ms-Icon--EmojiNeutral::before{content:''}.ms-Icon--EmojiTabSymbols::before{content:''}.ms-Icon--EmptyRecycleBin::before{content:''}.ms-Icon--Encryption::before{content:'ïš'}.ms-Icon--EndPointSolid::before{content:'î‹'}.ms-Icon--EngineeringGroup::before{content:'ï¢'}.ms-Icon--EntitlementPolicy::before{content:'î†'}.ms-Icon--EntitlementRedemption::before{content:'î‡'}.ms-Icon--EntryDecline::before{content:'ï••'}.ms-Icon--EntryView::before{content:'ï•”'}.ms-Icon--Equalizer::before{content:''}.ms-Icon--EraseTool::before{content:'îœ'}.ms-Icon--Error::before{content:''}.ms-Icon--ErrorBadge::before{content:''}.ms-Icon--Event::before{content:'î²£'}.ms-Icon--Event12::before{content:'ï£'}.ms-Icon--EventAccepted::before{content:'ï¢'}.ms-Icon--EventDate::before{content:'ï™'}.ms-Icon--EventDateMissed12::before{content:'ï¤'}.ms-Icon--EventDeclined::before{content:'ï¥'}.ms-Icon--EventInfo::before{content:''}.ms-Icon--EventTentative::before{content:'ï£'}[dir=rtl] .ms-Icon--EventTentative::before{content:'ï¤'}.ms-Icon--EventTentativeMirrored::before{content:'ï¤'}[dir=rtl] .ms-Icon--EventTentativeMirrored::before{content:'ï£'}.ms-Icon--EventToDoLogo::before{content:'ï¡©'}.ms-Icon--ExcelDocument::before{content:'î½³'}.ms-Icon--ExcelLogo::before{content:''}.ms-Icon--ExcelLogo16::before{content:''}.ms-Icon--ExcelLogoFill::before{content:''}.ms-Icon--ExcelLogoFill16::before{content:''}.ms-Icon--ExcelLogoInverse::before{content:'î°¨'}.ms-Icon--ExcelLogoInverse16::before{content:''}.ms-Icon--ExchangeLogo::before{content:''}.ms-Icon--ExchangeLogoFill::before{content:''}.ms-Icon--ExchangeLogoInverse::before{content:''}.ms-Icon--ExerciseTracker::before{content:'î«Œ'}.ms-Icon--ExpandMenu::before{content:''}.ms-Icon--ExploreContent::before{content:'î³'}.ms-Icon--ExploreContentSingle::before{content:'ï…¤'}.ms-Icon--ExploreData::before{content:'ï–¶'}.ms-Icon--Export::before{content:'î·¡'}[dir=rtl] .ms-Icon--Export::before{content:'î·¢'}.ms-Icon--ExportMirrored::before{content:'î·¢'}[dir=rtl] .ms-Icon--ExportMirrored::before{content:'î·¡'}.ms-Icon--ExternalBuild::before{content:'ï‘…'}.ms-Icon--ExternalTFVC::before{content:''}.ms-Icon--ExternalXAML::before{content:''}.ms-Icon--Eyedropper::before{content:'î¼¼'}.ms-Icon--EyeShadow::before{content:''}.ms-Icon--F12DevTools::before{content:''}.ms-Icon--FabricAssetLibrary::before{content:'ï‚œ'}.ms-Icon--FabricDataConnectionLibrary::before{content:'ï‚'}.ms-Icon--FabricDocLibrary::before{content:'ï‚ž'}.ms-Icon--FabricFolder::before{content:'ï‚©'}.ms-Icon--FabricFolderConfirm::before{content:''}.ms-Icon--FabricFolderFill::before{content:''}.ms-Icon--FabricFolderSearch::before{content:''}.ms-Icon--FabricFolderUpload::before{content:''}.ms-Icon--FabricFormLibrary::before{content:'ï‚Ÿ'}[dir=rtl] .ms-Icon--FabricFormLibrary::before{content:'ï‚ '}.ms-Icon--FabricFormLibraryMirrored::before{content:'ï‚ '}[dir=rtl] .ms-Icon--FabricFormLibraryMirrored::before{content:'ï‚Ÿ'}.ms-Icon--FabricMovetoFolder::before{content:'ï‚¥'}.ms-Icon--FabricNetworkFolder::before{content:'ï—¦'}.ms-Icon--FabricNewFolder::before{content:'ï‚«'}.ms-Icon--FabricOpenFolderHorizontal::before{content:''}.ms-Icon--FabricPictureLibrary::before{content:''}.ms-Icon--FabricPublicFolder::before{content:'ï‚£'}.ms-Icon--FabricReportLibrary::before{content:'ï‚¡'}[dir=rtl] .ms-Icon--FabricReportLibrary::before{content:'ï‚¢'}.ms-Icon--FabricReportLibraryMirrored::before{content:'ï‚¢'}[dir=rtl] .ms-Icon--FabricReportLibraryMirrored::before{content:'ï‚¡'}.ms-Icon--FabricSyncFolder::before{content:''}.ms-Icon--FabricTextHighlight::before{content:'ïžœ'}.ms-Icon--FabricTextHighlightComposite::before{content:''}.ms-Icon--FabricUnsyncFolder::before{content:''}.ms-Icon--FabricUserFolder::before{content:'ï—¥'}.ms-Icon--Family::before{content:''}.ms-Icon--FangBody::before{content:''}.ms-Icon--FastForward::before{content:'î®'}.ms-Icon--FastMode::before{content:''}.ms-Icon--Favicon::before{content:''}.ms-Icon--FavoriteList::before{content:''}.ms-Icon--FavoriteStar::before{content:''}.ms-Icon--FavoriteStarFill::before{content:''}.ms-Icon--Fax::before{content:''}.ms-Icon--Feedback::before{content:'î´•'}.ms-Icon--FeedbackRequestSolid::before{content:'ï™'}[dir=rtl] .ms-Icon--FeedbackRequestSolid::before{content:'ïš'}.ms-Icon--FeedbackRequestMirroredSolid::before{content:'ïš'}[dir=rtl] .ms-Icon--FeedbackRequestMirroredSolid::before{content:'ï™'}.ms-Icon--FeedbackResponseSolid::before{content:'ï›'}.ms-Icon--Ferry::before{content:''}.ms-Icon--FerrySolid::before{content:'îˆ'}.ms-Icon--FieldChanged::before{content:''}.ms-Icon--FieldEmpty::before{content:'ï‹'}.ms-Icon--FieldFilled::before{content:'ï‹‚'}.ms-Icon--FieldNotChanged::before{content:'ï‹„'}.ms-Icon--FieldReadOnly::before{content:'ï‘‚'}.ms-Icon--FieldRequired::before{content:''}.ms-Icon--FileASPX::before{content:'ï‹©'}.ms-Icon--FileBug::before{content:'ïŒ'}.ms-Icon--FileCode::before{content:''}.ms-Icon--FileComment::before{content:'ïŒ'}.ms-Icon--FileCSS::before{content:''}.ms-Icon--FileHTML::before{content:'ï‹'}.ms-Icon--FileImage::before{content:''}.ms-Icon--FileJAVA::before{content:''}.ms-Icon--FileLess::before{content:''}.ms-Icon--FileOff::before{content:'î¼'}.ms-Icon--FilePDB::before{content:'ï‹¥'}.ms-Icon--FileRequest::before{content:''}.ms-Icon--FileSass::before{content:'ï‹«'}.ms-Icon--FileSQL::before{content:''}.ms-Icon--FileSymlink::before{content:''}.ms-Icon--FileTemplate::before{content:''}.ms-Icon--FileTypeSolution::before{content:''}.ms-Icon--FileYML::before{content:'ï—š'}.ms-Icon--Filter::before{content:''}.ms-Icon--FilterAscending::before{content:''}.ms-Icon--FilterDescending::before{content:''}.ms-Icon--Filters::before{content:'îž•'}.ms-Icon--FilterSettings::before{content:'ï¬'}.ms-Icon--FilterSolid::before{content:'ï’'}.ms-Icon--FiltersSolid::before{content:'ï“'}.ms-Icon--Financial::before{content:'îž»'}.ms-Icon--FinancialSolid::before{content:'ï†'}[dir=rtl] .ms-Icon--FinancialSolid::before{content:'ï‡'}.ms-Icon--FinancialMirroredSolid::before{content:'ï‡'}[dir=rtl] .ms-Icon--FinancialMirroredSolid::before{content:'ï†'}.ms-Icon--Fingerprint::before{content:''}.ms-Icon--FitPage::before{content:''}.ms-Icon--FitWidth::before{content:''}.ms-Icon--FiveTileGrid::before{content:''}.ms-Icon--FixedAssetManagement::before{content:''}.ms-Icon--FixedColumnWidth::before{content:'îª'}.ms-Icon--Flag::before{content:'îŸ'}.ms-Icon--FlameSolid::before{content:''}.ms-Icon--FlashAuto::before{content:''}.ms-Icon--Flashlight::before{content:'î”'}.ms-Icon--FlashOff::before{content:'î©®'}.ms-Icon--FlickDown::before{content:''}.ms-Icon--FlickLeft::before{content:''}.ms-Icon--FlickRight::before{content:''}.ms-Icon--FlickUp::before{content:''}.ms-Icon--Flow::before{content:'î¾'}.ms-Icon--FlowChart::before{content:''}.ms-Icon--Flower::before{content:'ï•Ž'}.ms-Icon--FocalPoint::before{content:''}.ms-Icon--Focus::before{content:''}.ms-Icon--FocusView::before{content:''}.ms-Icon--Fog::before{content:''}.ms-Icon--Folder::before{content:''}.ms-Icon--FolderFill::before{content:''}.ms-Icon--FolderHorizontal::before{content:'ï„«'}.ms-Icon--FolderList::before{content:'ï‹Ž'}[dir=rtl] .ms-Icon--FolderList::before{content:'ï‹'}.ms-Icon--FolderListMirrored::before{content:'ï‹'}[dir=rtl] .ms-Icon--FolderListMirrored::before{content:'ï‹Ž'}.ms-Icon--FolderOpen::before{content:'î ¸'}.ms-Icon--FolderQuery::before{content:'ï‹'}.ms-Icon--FolderSearch::before{content:'î½¥'}.ms-Icon--FollowUser::before{content:''}.ms-Icon--Font::before{content:''}.ms-Icon--FontColor::before{content:''}.ms-Icon--FontColorA::before{content:''}.ms-Icon--FontColorSwatch::before{content:'ï“'}.ms-Icon--FontDecrease::before{content:''}.ms-Icon--FontIncrease::before{content:''}.ms-Icon--FontSize::before{content:''}.ms-Icon--FontSize2::before{content:'î€'}.ms-Icon--Footer::before{content:'ï ®'}.ms-Icon--FormatPainter::before{content:'îœ'}.ms-Icon--FormLibrary::before{content:''}[dir=rtl] .ms-Icon--FormLibrary::before{content:''}.ms-Icon--FormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FormLibraryMirrored::before{content:''}.ms-Icon--Forum::before{content:'î¸'}.ms-Icon--Forward::before{content:''}.ms-Icon--ForwardEvent::before{content:''}.ms-Icon--Freezing::before{content:''}.ms-Icon--Frigid::before{content:''}.ms-Icon--FrontCamera::before{content:''}.ms-Icon--FSharp::before{content:''}.ms-Icon--FSharpLanguage::before{content:''}.ms-Icon--FullCircleMask::before{content:''}.ms-Icon--FullHistory::before{content:''}.ms-Icon--FullScreen::before{content:'î€'}.ms-Icon--FullView::before{content:''}.ms-Icon--FullWidth::before{content:''}.ms-Icon--FullWidthEdit::before{content:'ï‹¿'}.ms-Icon--FunctionalManagerDashboard::before{content:'ï•‚'}.ms-Icon--FunnelChart::before{content:''}.ms-Icon--GallatinLogo::before{content:'ï’–'}.ms-Icon--Game::before{content:''}.ms-Icon--Generate::before{content:''}.ms-Icon--GenericScan::before{content:''}.ms-Icon--GenericScanFilled::before{content:''}.ms-Icon--GIF::before{content:'ï’©'}.ms-Icon--Giftbox::before{content:'î°Ÿ'}.ms-Icon--GiftboxOpen::before{content:''}.ms-Icon--GiftBoxSolid::before{content:'ï'}.ms-Icon--GiftCard::before{content:''}.ms-Icon--GitGraph::before{content:'ï‹Š'}.ms-Icon--Glasses::before{content:''}.ms-Icon--Glimmer::before{content:'î³´'}.ms-Icon--GlobalNavButton::before{content:''}.ms-Icon--GlobalNavButtonActive::before{content:''}.ms-Icon--Globe::before{content:'î´'}.ms-Icon--Globe2::before{content:'ï’š'}.ms-Icon--GlobeFavorite::before{content:''}.ms-Icon--Golf::before{content:''}.ms-Icon--Go::before{content:'î¢'}[dir=rtl] .ms-Icon--Go::before{content:'î©'}.ms-Icon--GoMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--GoMirrored::before{content:'î¢'}.ms-Icon--GoToDashboard::before{content:'î»'}.ms-Icon--GotoToday::before{content:''}.ms-Icon--GreetingCard::before{content:'ï•‹'}.ms-Icon--GridViewLarge::before{content:''}.ms-Icon--GridViewMedium::before{content:''}.ms-Icon--GridViewSmall::before{content:''}.ms-Icon--GripperBarHorizontal::before{content:'î¯'}.ms-Icon--GripperBarVertical::before{content:'îž„'}.ms-Icon--GripperDotsVertical::before{content:'ï²'}.ms-Icon--GripperTool::before{content:'îž'}.ms-Icon--Group::before{content:''}.ms-Icon--GroupedAscending::before{content:''}.ms-Icon--GroupedDescending::before{content:''}.ms-Icon--GroupedList::before{content:'î½´'}.ms-Icon--GroupList::before{content:'ï…¨'}.ms-Icon--GroupObject::before{content:''}.ms-Icon--GUID::before{content:''}.ms-Icon--Guitar::before{content:'ï’›'}.ms-Icon--HailDay::before{content:''}.ms-Icon--HailNight::before{content:''}.ms-Icon--HalfAlpha::before{content:''}.ms-Icon--HalfCircle::before{content:'ï”'}.ms-Icon--HandsFree::before{content:'î«'}.ms-Icon--Handwriting::before{content:''}.ms-Icon--HardDrive::before{content:''}.ms-Icon--HardDriveGroup::before{content:'ï†'}.ms-Icon--HardDriveLock::before{content:'ï•š'}.ms-Icon--HardDriveUnlock::before{content:'ï•›'}.ms-Icon--Header::before{content:'ï ¯'}.ms-Icon--Header1::before{content:''}.ms-Icon--Header2::before{content:''}.ms-Icon--Header3::before{content:'î¼·'}.ms-Icon--Header4::before{content:''}.ms-Icon--Headset::before{content:''}.ms-Icon--HeadsetSolid::before{content:'ïˆ'}.ms-Icon--Health::before{content:''}.ms-Icon--HealthRefresh::before{content:''}.ms-Icon--HealthSolid::before{content:''}.ms-Icon--Heart::before{content:'î‘'}.ms-Icon--HeartBroken::before{content:''}.ms-Icon--HeartFill::before{content:'î’'}.ms-Icon--Help::before{content:''}[dir=rtl] .ms-Icon--Help::before{content:'î©‘'}.ms-Icon--HelpMirrored::before{content:'î©‘'}[dir=rtl] .ms-Icon--HelpMirrored::before{content:''}.ms-Icon--HexaditeInvestigation::before{content:'î¸'}.ms-Icon--HexaditeInvestigationCancel::before{content:'î¹'}.ms-Icon--HexaditeInvestigationSemiAuto::before{content:'îº'}.ms-Icon--Hexagon::before{content:''}.ms-Icon--Hide::before{content:'î´š'}.ms-Icon--Hide2::before{content:''}.ms-Icon--Hide3::before{content:''}.ms-Icon--Highlight::before{content:''}.ms-Icon--HighlightMappedShapes::before{content:''}.ms-Icon--HintText::before{content:'ï”'}.ms-Icon--HistoricalWeather::before{content:'îƒ'}.ms-Icon--History::before{content:'î œ'}.ms-Icon--Home::before{content:'î '}.ms-Icon--HomeDropdown::before{content:'î§'}.ms-Icon--HomeGroup::before{content:'î°¦'}.ms-Icon--HomeSolid::before{content:''}.ms-Icon--HomeVerify::before{content:''}.ms-Icon--HorizontalDistributeCenter::before{content:''}.ms-Icon--HorizontalTabKey::before{content:''}.ms-Icon--Hospital::before{content:'î¤'}.ms-Icon--Hotel::before{content:'î ¤'}.ms-Icon--HourGlass::before{content:''}.ms-Icon--IconSetsFlag::before{content:''}.ms-Icon--IDBadge::before{content:'ï§'}.ms-Icon--IgnoreConversation::before{content:'î²'}.ms-Icon--ImageCrosshair::before{content:''}.ms-Icon--ImageDiff::before{content:''}.ms-Icon--ImageInAR::before{content:'î '}.ms-Icon--ImagePixel::before{content:''}.ms-Icon--ImageSearch::before{content:''}[dir=rtl] .ms-Icon--ImportAll::before{content:'î©“'}.ms-Icon--ImportAllMirrored::before{content:'î©“'}.ms-Icon--Important::before{content:''}.ms-Icon--Import::before{content:''}[dir=rtl] .ms-Icon--Import::before{content:'î©’'}.ms-Icon--ImportMirrored::before{content:'î©’'}[dir=rtl] .ms-Icon--ImportMirrored::before{content:''}.ms-Icon--Inbox::before{content:'ïœ'}.ms-Icon--InboxCheck::before{content:''}.ms-Icon--IncidentTriangle::before{content:'î ”'}.ms-Icon--IncomingCall::before{content:'î¾'}.ms-Icon--IncreaseIndentArrow::before{content:'ïž¡'}[dir=rtl] .ms-Icon--IncreaseIndentArrow::before{content:''}.ms-Icon--IncreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrowMirrored::before{content:'ïž¡'}.ms-Icon--IncreaseIndentHanging::before{content:'îŽ'}[dir=rtl] .ms-Icon--IncreaseIndentHanging::before{content:''}.ms-Icon--IncreaseIndentHangingMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHangingMirrored::before{content:'îŽ'}.ms-Icon--IncreaseIndentLegacy::before{content:''}.ms-Icon--IncreaseIndent::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndent::before{content:''}.ms-Icon--IncreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentMirrored::before{content:''}.ms-Icon--IncreaseIndentText::before{content:'ïž '}[dir=rtl] .ms-Icon--IncreaseIndentText::before{content:''}.ms-Icon--IncreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentTextMirrored::before{content:'ïž '}.ms-Icon--IndentFirstLine::before{content:'î'}.ms-Icon--Info::before{content:''}.ms-Icon--Info2::before{content:''}.ms-Icon--InformationBarriers::before{content:'ï ƒ'}.ms-Icon--InfoSolid::before{content:'ï…§'}.ms-Icon--InkingTool::before{content:'î'}.ms-Icon--InputAddress::before{content:'îž'}.ms-Icon--Insert::before{content:''}.ms-Icon--InsertColumnsLeft::before{content:''}.ms-Icon--InsertColumnsRight::before{content:''}.ms-Icon--InsertRowsAbove::before{content:''}.ms-Icon--InsertRowsBelow::before{content:'ï™'}.ms-Icon--InsertSignatureLine::before{content:'ï™·'}.ms-Icon--InsertTextBox::before{content:'î±½'}.ms-Icon--Insights::before{content:''}.ms-Icon--Installation::before{content:''}.ms-Icon--InstallToDrive::before{content:'ïŠ'}.ms-Icon--InternalInvestigation::before{content:'ï¡”'}.ms-Icon--InternetSharing::before{content:''}.ms-Icon--IRMForward::before{content:'ïŸ'}[dir=rtl] .ms-Icon--IRMForward::before{content:'ï '}.ms-Icon--IRMForwardMirrored::before{content:'ï '}[dir=rtl] .ms-Icon--IRMForwardMirrored::before{content:'ïŸ'}.ms-Icon--IRMReply::before{content:'ï'}[dir=rtl] .ms-Icon--IRMReply::before{content:'ïž'}.ms-Icon--IRMReplyMirrored::before{content:'ïž'}[dir=rtl] .ms-Icon--IRMReplyMirrored::before{content:'ï'}.ms-Icon--IssueSolid::before{content:''}.ms-Icon--IssueTracking::before{content:''}[dir=rtl] .ms-Icon--IssueTracking::before{content:'î»'}.ms-Icon--IssueTrackingMirrored::before{content:'î»'}[dir=rtl] .ms-Icon--IssueTrackingMirrored::before{content:''}.ms-Icon--Italic::before{content:''}.ms-Icon--JavaScriptLanguage::before{content:'ï‹®'}.ms-Icon--JoinOnlineMeeting::before{content:'î¶'}.ms-Icon--JS::before{content:''}.ms-Icon--KaizalaLogo::before{content:'ï’’'}.ms-Icon--KeyboardClassic::before{content:'î¥'}.ms-Icon--KeyPhraseExtraction::before{content:''}.ms-Icon--KnowledgeArticle::before{content:''}.ms-Icon--Label::before{content:''}.ms-Icon--LadybugSolid::before{content:'ï‘Š'}.ms-Icon--Lamp::before{content:''}.ms-Icon--LandscapeOrientation::before{content:''}.ms-Icon--LaptopSecure::before{content:'ï•’'}.ms-Icon--LaptopSelected::before{content:''}.ms-Icon--LargeGrid::before{content:''}.ms-Icon--LearningTools::before{content:''}.ms-Icon--Leave::before{content:''}.ms-Icon--LeaveUser::before{content:''}.ms-Icon--Library::before{content:''}.ms-Icon--Lifesaver::before{content:'î½¢'}.ms-Icon--LifesaverLock::before{content:'î½£'}.ms-Icon--Light::before{content:'îž“'}.ms-Icon--Lightbulb::before{content:''}.ms-Icon--LightningBolt::before{content:''}.ms-Icon--LightWeight::before{content:'ï“®'}.ms-Icon--Like::before{content:''}.ms-Icon--LikeSolid::before{content:''}.ms-Icon--Line::before{content:''}.ms-Icon--LineChart::before{content:''}.ms-Icon--LineSpacing::before{content:'ï”—'}.ms-Icon--LineStyle::before{content:''}.ms-Icon--LineThickness::before{content:'ï”'}.ms-Icon--Link::before{content:''}.ms-Icon--Link12::before{content:''}.ms-Icon--LinkedDatabase::before{content:'ï¹'}.ms-Icon--LinkedInLogo::before{content:''}.ms-Icon--List::before{content:''}[dir=rtl] .ms-Icon--List::before{content:'î©•'}.ms-Icon--ListMirrored::before{content:'î©•'}[dir=rtl] .ms-Icon--ListMirrored::before{content:''}.ms-Icon--LiveSite::before{content:''}.ms-Icon--LocaleLanguage::before{content:''}.ms-Icon--Location::before{content:'î '}.ms-Icon--LocationCircle::before{content:'î Ž'}.ms-Icon--LocationDot::before{content:'î §'}.ms-Icon--LocationFill::before{content:'î¤ '}.ms-Icon--LocationOutline::before{content:'ï‹'}.ms-Icon--Lock::before{content:''}.ms-Icon--Lock12::before{content:''}.ms-Icon--LockSolid::before{content:''}.ms-Icon--LogRemove::before{content:''}.ms-Icon--LookupEntities::before{content:'ï–µ'}.ms-Icon--LowerBrightness::before{content:''}.ms-Icon--LyncLogo::before{content:'îµ¹'}.ms-Icon--M365InvoicingLogo::before{content:'ïŸ'}.ms-Icon--MachineLearning::before{content:''}.ms-Icon--Mail::before{content:''}.ms-Icon--MailAlert::before{content:''}.ms-Icon--MailAttached::before{content:'ï´'}.ms-Icon--MailCheck::before{content:'î¶'}.ms-Icon--MailFill::before{content:''}.ms-Icon--MailForward::before{content:''}[dir=rtl] .ms-Icon--MailForward::before{content:'î©–'}.ms-Icon--MailForwardMirrored::before{content:'î©–'}[dir=rtl] .ms-Icon--MailForwardMirrored::before{content:''}.ms-Icon--MailLowImportance::before{content:''}.ms-Icon--MailOptions::before{content:'ï ¬'}.ms-Icon--MailPause::before{content:''}.ms-Icon--MailReminder::before{content:'ï˜'}.ms-Icon--MailRepeat::before{content:''}.ms-Icon--MailReplyAll::before{content:''}[dir=rtl] .ms-Icon--MailReplyAll::before{content:''}.ms-Icon--MailReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyAllMirrored::before{content:''}.ms-Icon--MailReply::before{content:''}[dir=rtl] .ms-Icon--MailReply::before{content:'î©—'}.ms-Icon--MailReplyMirrored::before{content:'î©—'}[dir=rtl] .ms-Icon--MailReplyMirrored::before{content:''}.ms-Icon--MailSchedule::before{content:''}.ms-Icon--MailSolid::before{content:'ïƒ'}.ms-Icon--MailTentative::before{content:'ï–'}[dir=rtl] .ms-Icon--MailTentative::before{content:'ï—'}.ms-Icon--MailTentativeMirrored::before{content:'ï—'}[dir=rtl] .ms-Icon--MailTentativeMirrored::before{content:'ï–'}.ms-Icon--MailUndelivered::before{content:'ï•'}.ms-Icon--ManagerSelfService::before{content:''}.ms-Icon--Manufacturing::before{content:''}.ms-Icon--MapDirections::before{content:'î –'}.ms-Icon--MapLayers::before{content:'î ž'}.ms-Icon--MapPin::before{content:''}.ms-Icon--MapPin12::before{content:''}.ms-Icon--MapPinSolid::before{content:'ï”®'}.ms-Icon--MarkAsProtected::before{content:'ïš®'}.ms-Icon--MarkDownLanguage::before{content:'ï‹»'}.ms-Icon--Market::before{content:''}.ms-Icon--MarketDown::before{content:''}.ms-Icon--MasterDatabase::before{content:'ï–º'}.ms-Icon--MaximumValue::before{content:'ï–¼'}.ms-Icon--Medal::before{content:''}.ms-Icon--MedalSolid::before{content:'ïš¹'}.ms-Icon--Media::before{content:'î©©'}.ms-Icon--MediaAdd::before{content:'ï”'}.ms-Icon--Medical::before{content:'î«”'}.ms-Icon--Megaphone::before{content:''}.ms-Icon--MegaphoneSolid::before{content:''}.ms-Icon--Memo::before{content:'î¼'}.ms-Icon--Merge::before{content:''}.ms-Icon--MergeDuplicate::before{content:''}.ms-Icon--Message::before{content:''}.ms-Icon--MessageFill::before{content:'î±°'}.ms-Icon--MessageFriendRequest::before{content:'ï•'}.ms-Icon--MicOff::before{content:'î±”'}.ms-Icon--MicOff2::before{content:'ïž'}.ms-Icon--Microphone::before{content:'îœ '}.ms-Icon--MicrosoftFlowLogo::before{content:'ï’±'}.ms-Icon--MicrosoftStaffhubLogo::before{content:'ï„°'}.ms-Icon--MicrosoftTranslatorLogo::before{content:'ïž‚'}.ms-Icon--MicrosoftTranslatorLogoBlue::before{content:'ï¡“'}.ms-Icon--MicrosoftTranslatorLogoGreen::before{content:'ï¡’'}.ms-Icon--MiniContract::before{content:''}[dir=rtl] .ms-Icon--MiniContract::before{content:'î©™'}.ms-Icon--MiniContractMirrored::before{content:'î©™'}[dir=rtl] .ms-Icon--MiniContractMirrored::before{content:''}.ms-Icon--MiniExpand::before{content:''}[dir=rtl] .ms-Icon--MiniExpand::before{content:'î©š'}.ms-Icon--MiniExpandMirrored::before{content:'î©š'}[dir=rtl] .ms-Icon--MiniExpandMirrored::before{content:''}.ms-Icon--MiniLink::before{content:''}.ms-Icon--MinimumValue::before{content:'ï–½'}.ms-Icon--MobileReport::before{content:''}.ms-Icon--MobileSelected::before{content:'î±µ'}.ms-Icon--ModelingView::before{content:''}.ms-Icon--Money::before{content:''}.ms-Icon--More::before{content:''}.ms-Icon--MoreSports::before{content:''}.ms-Icon--MoreVertical::before{content:''}.ms-Icon--MountainClimbing::before{content:'ï››'}.ms-Icon--Move::before{content:''}.ms-Icon--Movers::before{content:'î¯'}.ms-Icon--MoveToFolder::before{content:''}.ms-Icon--MSNLogo::before{content:'î¬'}.ms-Icon--MSNVideos::before{content:''}.ms-Icon--MSNVideosSolid::before{content:'ï‹š'}.ms-Icon--MultiSelect::before{content:'î¢'}[dir=rtl] .ms-Icon--MultiSelect::before{content:''}.ms-Icon--MultiSelectMirrored::before{content:''}[dir=rtl] .ms-Icon--MultiSelectMirrored::before{content:'î¢'}.ms-Icon--MusicInCollection::before{content:''}.ms-Icon--MusicInCollectionFill::before{content:''}.ms-Icon--MusicNote::before{content:'î±'}.ms-Icon--MuteChat::before{content:'ï…º'}.ms-Icon--MyMoviesTV::before{content:''}.ms-Icon--MyNetwork::before{content:'î°§'}.ms-Icon--Nav2DMapView::before{content:'î €'}.ms-Icon--NavigateBack::before{content:'ï‹'}[dir=rtl] .ms-Icon--NavigateBack::before{content:'ï‹ž'}.ms-Icon--NavigateBackMirrored::before{content:'ï‹ž'}[dir=rtl] .ms-Icon--NavigateBackMirrored::before{content:'ï‹'}.ms-Icon--NavigateExternalInline::before{content:'ïŸ'}.ms-Icon--NavigateForward::before{content:'ï‹Ÿ'}[dir=rtl] .ms-Icon--NavigateForward::before{content:'ï‹ '}.ms-Icon--NavigateForwardMirrored::before{content:'ï‹ '}[dir=rtl] .ms-Icon--NavigateForwardMirrored::before{content:'ï‹Ÿ'}.ms-Icon--NavigationFlipper::before{content:'ï”'}.ms-Icon--NetworkTower::before{content:'î°…'}.ms-Icon--NewAnalyticsQuery::before{content:'ï‡ '}.ms-Icon--NewFolder::before{content:''}.ms-Icon--NewMail::before{content:''}.ms-Icon--News::before{content:''}.ms-Icon--NewsSearch::before{content:'ï“©'}.ms-Icon--NewTeamProject::before{content:''}.ms-Icon--Next::before{content:''}.ms-Icon--NormalWeight::before{content:''}.ms-Icon--NoteForward::before{content:''}.ms-Icon--NotePinned::before{content:''}.ms-Icon--NoteReply::before{content:''}.ms-Icon--NotExecuted::before{content:'ï‘€'}.ms-Icon--NotImpactedSolid::before{content:'ï‘'}.ms-Icon--NugetLogo::before{content:'ï‘Œ'}.ms-Icon--NUIFace::before{content:'î¨'}.ms-Icon--NumberedList::before{content:''}[dir=rtl] .ms-Icon--NumberedList::before{content:''}.ms-Icon--NumberedListMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListMirrored::before{content:''}.ms-Icon--NumberedListNumber::before{content:'ïž—'}[dir=rtl] .ms-Icon--NumberedListNumber::before{content:'ïž™'}.ms-Icon--NumberedListNumberMirrored::before{content:'ïž™'}[dir=rtl] .ms-Icon--NumberedListNumberMirrored::before{content:'ïž—'}.ms-Icon--NumberedListText::before{content:'ïž–'}[dir=rtl] .ms-Icon--NumberedListText::before{content:''}.ms-Icon--NumberedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListTextMirrored::before{content:'ïž–'}.ms-Icon--NumberField::before{content:'î·„'}.ms-Icon--NumberSequence::before{content:''}.ms-Icon--NumberSymbol::before{content:''}.ms-Icon--Octagon::before{content:''}.ms-Icon--OEM::before{content:'îŒ'}.ms-Icon--OfficeAddinsLogo::before{content:''}.ms-Icon--OfficeAssistantLogo::before{content:'î·Ž'}.ms-Icon--OfficeChat::before{content:'ïœ'}.ms-Icon--OfficeChatSolid::before{content:'ïœ'}.ms-Icon--OfficeFormsLogo::before{content:'ï´'}.ms-Icon--OfficeFormsLogo16::before{content:'ï¶'}.ms-Icon--OfficeFormsLogo24::before{content:'ï»'}.ms-Icon--OfficeFormsLogoFill::before{content:'ïµ'}.ms-Icon--OfficeFormsLogoFill16::before{content:'ï·'}.ms-Icon--OfficeFormsLogoFill24::before{content:'ï¼'}.ms-Icon--OfficeFormsLogoInverse::before{content:''}.ms-Icon--OfficeFormsLogoInverse16::before{content:'ï³'}.ms-Icon--OfficeFormsLogoInverse24::before{content:'ïº'}.ms-Icon--OfficeLogo::before{content:'î®'}.ms-Icon--OfficeStoreLogo::before{content:'î·'}.ms-Icon--OfficeVideoLogo::before{content:''}.ms-Icon--OfficeVideoLogoFill::before{content:''}.ms-Icon--OfficeVideoLogoInverse::before{content:''}.ms-Icon--OfflineOneDriveParachute::before{content:''}.ms-Icon--OfflineOneDriveParachuteDisabled::before{content:''}.ms-Icon--OfflineStorage::before{content:''}.ms-Icon--OfflineStorageSolid::before{content:'ïŽ'}.ms-Icon--Onboarding::before{content:''}.ms-Icon--OneDriveAdd::before{content:'î¼²'}.ms-Icon--OneDriveFolder16::before{content:'ï”»'}.ms-Icon--OneDriveLogo::before{content:'î¥'}.ms-Icon--OneNoteEduLogoInverse::before{content:'î·'}.ms-Icon--OneNoteLogo::before{content:''}.ms-Icon--OneNoteLogo16::before{content:''}.ms-Icon--OneNoteLogoFill::before{content:''}.ms-Icon--OneNoteLogoFill16::before{content:''}.ms-Icon--OneNoteLogoInverse::before{content:'î°'}.ms-Icon--OneNoteLogoInverse16::before{content:''}.ms-Icon--OpenEnrollment::before{content:''}.ms-Icon--OpenFile::before{content:''}.ms-Icon--OpenFolderHorizontal::before{content:'î´¥'}.ms-Icon--OpenInNewTab::before{content:'ïš«'}.ms-Icon--OpenInNewWindow::before{content:''}.ms-Icon--OpenPane::before{content:'î¢ '}[dir=rtl] .ms-Icon--OpenPane::before{content:'î©›'}.ms-Icon--OpenPaneMirrored::before{content:'î©›'}[dir=rtl] .ms-Icon--OpenPaneMirrored::before{content:'î¢ '}.ms-Icon--OpenSource::before{content:''}.ms-Icon--OpenWith::before{content:''}[dir=rtl] .ms-Icon--OpenWith::before{content:'î©œ'}.ms-Icon--OpenWithMirrored::before{content:'î©œ'}[dir=rtl] .ms-Icon--OpenWithMirrored::before{content:''}.ms-Icon--Org::before{content:''}.ms-Icon--Orientation::before{content:''}.ms-Icon--Orientation2::before{content:''}.ms-Icon--OutlookLogo::before{content:''}.ms-Icon--OutlookLogo16::before{content:'ïŽ'}.ms-Icon--OutlookLogoFill::before{content:''}.ms-Icon--OutlookLogoFill16::before{content:''}.ms-Icon--OutlookLogoInverse::before{content:'î'}.ms-Icon--OutlookLogoInverse16::before{content:''}.ms-Icon--OutOfOffice::before{content:'î´´'}.ms-Icon--Package::before{content:''}.ms-Icon--Packages::before{content:''}.ms-Icon--Padding::before{content:''}.ms-Icon--PaddingBottom::before{content:''}.ms-Icon--PaddingLeft::before{content:'ï”›'}.ms-Icon--PaddingRight::before{content:''}.ms-Icon--PaddingTop::before{content:'ï”™'}.ms-Icon--Page::before{content:''}.ms-Icon--PageAdd::before{content:''}.ms-Icon--PageArrowRight::before{content:''}.ms-Icon--PageCheckedin::before{content:'ï„„'}.ms-Icon--PageCheckedOut::before{content:''}.ms-Icon--PageData::before{content:''}.ms-Icon--PageEdit::before{content:''}.ms-Icon--PageHeader::before{content:'î³®'}.ms-Icon--PageHeaderEdit::before{content:'îŒ'}.ms-Icon--PageLeft::before{content:'î '}.ms-Icon--PageLink::before{content:''}.ms-Icon--PageList::before{content:''}.ms-Icon--PageListFilter::before{content:'ï “'}.ms-Icon--PageListSolid::before{content:''}[dir=rtl] .ms-Icon--PageListSolid::before{content:''}.ms-Icon--PageListMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--PageListMirroredSolid::before{content:''}.ms-Icon--PageLock::before{content:'ï¿'}.ms-Icon--PageRemove::before{content:''}.ms-Icon--PageRight::before{content:'î¡'}.ms-Icon--PageShared::before{content:'ï€'}.ms-Icon--PageSolid::before{content:''}.ms-Icon--PanoIndicator::before{content:'îž°'}.ms-Icon--Parachute::before{content:'ï‘'}.ms-Icon--ParachuteSolid::before{content:'ï’'}.ms-Icon--Parameter::before{content:''}.ms-Icon--ParkingLocation::before{content:'î ‘'}[dir=rtl] .ms-Icon--ParkingLocation::before{content:'î©ž'}.ms-Icon--ParkingLocationMirrored::before{content:'î©ž'}[dir=rtl] .ms-Icon--ParkingLocationMirrored::before{content:'î ‘'}.ms-Icon--ParkingSolid::before{content:'ïŠ'}[dir=rtl] .ms-Icon--ParkingSolid::before{content:'ï‹'}.ms-Icon--ParkingMirroredSolid::before{content:'ï‹'}[dir=rtl] .ms-Icon--ParkingMirroredSolid::before{content:'ïŠ'}.ms-Icon--PartlyCloudyDay::before{content:''}.ms-Icon--PartlyCloudyNight::before{content:'î§'}.ms-Icon--PartyLeader::before{content:''}.ms-Icon--PassiveAuthentication::before{content:''}.ms-Icon--PasswordField::before{content:''}.ms-Icon--Paste::before{content:'î¿'}.ms-Icon--PasteAsCode::before{content:'ï—–'}.ms-Icon--PasteAsText::before{content:'ï—•'}.ms-Icon--Pause::before{content:'î©'}.ms-Icon--PaymentCard::before{content:''}.ms-Icon--PC1::before{content:''}.ms-Icon--PDF::before{content:'îª'}.ms-Icon--PencilReply::before{content:'î½»'}.ms-Icon--Pentagon::before{content:'ï“¿'}.ms-Icon--PenWorkspace::before{content:'î·†'}.ms-Icon--People::before{content:''}.ms-Icon--PeopleAdd::before{content:''}.ms-Icon--PeopleAlert::before{content:''}.ms-Icon--PeopleBlock::before{content:''}.ms-Icon--PeoplePause::before{content:''}.ms-Icon--PeopleRepeat::before{content:''}.ms-Icon--Permissions::before{content:''}.ms-Icon--PermissionsSolid::before{content:'ï‰'}.ms-Icon--Personalize::before{content:'î±'}.ms-Icon--Phishing::before{content:''}.ms-Icon--Phone::before{content:''}.ms-Icon--Photo::before{content:''}.ms-Icon--Photo2::before{content:''}.ms-Icon--Photo2Add::before{content:''}.ms-Icon--Photo2Fill::before{content:''}.ms-Icon--Photo2Remove::before{content:''}.ms-Icon--PhotoCollection::before{content:''}.ms-Icon--PhotoError::before{content:'î·'}.ms-Icon--PhotoVideoMedia::before{content:''}.ms-Icon--Picture::before{content:''}.ms-Icon--PictureCenter::before{content:''}.ms-Icon--PictureFill::before{content:''}.ms-Icon--PictureLibrary::before{content:''}.ms-Icon--PicturePosition::before{content:''}.ms-Icon--PictureStretch::before{content:''}.ms-Icon--PictureTile::before{content:''}.ms-Icon--PieDouble::before{content:''}.ms-Icon--PieSingle::before{content:''}.ms-Icon--PieSingleSolid::before{content:'ï”°'}.ms-Icon--Pill::before{content:'î«‹'}.ms-Icon--Pin::before{content:''}.ms-Icon--Pinned::before{content:'î¡€'}.ms-Icon--PinnedFill::before{content:'î¡‚'}.ms-Icon--PinnedSolid::before{content:''}.ms-Icon--PinSolid12::before{content:'î’'}.ms-Icon--PinSolidOff12::before{content:'î“'}.ms-Icon--PivotChart::before{content:''}.ms-Icon--PlainText::before{content:'ï ´'}.ms-Icon--PlannerLogo::before{content:'î·‘'}.ms-Icon--PlanView::before{content:'ï '}.ms-Icon--Play::before{content:'î¨'}.ms-Icon--PlaybackRate1x::before{content:'î±—'}.ms-Icon--PlayerSettings::before{content:''}.ms-Icon--PlayResume::before{content:''}.ms-Icon--PlayReverse::before{content:'ï¥'}.ms-Icon--PlayReverseResume::before{content:'ï¤'}.ms-Icon--PlaySolid::before{content:'ï–°'}.ms-Icon--Plug::before{content:''}.ms-Icon--PlugConnected::before{content:''}.ms-Icon--PlugDisconnected::before{content:''}.ms-Icon--PlugSolid::before{content:'ïŒ'}.ms-Icon--POI::before{content:''}.ms-Icon--POISolid::before{content:'ï‹‘'}.ms-Icon--PollResults::before{content:'ï¢ '}.ms-Icon--PostUpdate::before{content:''}.ms-Icon--PowerApps::before{content:'î·’'}.ms-Icon--PowerApps2Logo::before{content:'ï‚’'}.ms-Icon--PowerAppsLogo::before{content:'ï‚‘'}.ms-Icon--PowerBILogo::before{content:''}.ms-Icon--PowerBILogo16::before{content:'ïž'}.ms-Icon--PowerBILogoBackplate16::before{content:'ïž‘'}.ms-Icon--PowerButton::before{content:''}.ms-Icon--PowerPointDocument::before{content:'î½²'}.ms-Icon--PowerPointLogo::before{content:''}.ms-Icon--PowerPointLogo16::before{content:''}.ms-Icon--PowerPointLogoFill::before{content:''}.ms-Icon--PowerPointLogoFill16::before{content:''}.ms-Icon--PowerPointLogoInverse::before{content:'î°ª'}.ms-Icon--PowerPointLogoInverse16::before{content:''}.ms-Icon--PowerShell::before{content:''}.ms-Icon--PowerShell2::before{content:''}.ms-Icon--Precipitation::before{content:'î§'}.ms-Icon--PresenceChickletVideo::before{content:''}.ms-Icon--Presentation::before{content:''}.ms-Icon--Presentation12::before{content:''}.ms-Icon--Preview::before{content:''}.ms-Icon--PreviewLink::before{content:''}.ms-Icon--Previous::before{content:''}.ms-Icon--PrimaryCalendar::before{content:'ï’®'}.ms-Icon--Print::before{content:'î‰'}.ms-Icon--PrintfaxPrinterFile::before{content:''}.ms-Icon--Processing::before{content:''}.ms-Icon--ProcessingCancel::before{content:'îƒ'}.ms-Icon--ProcessingPause::before{content:'î…'}.ms-Icon--ProcessingRun::before{content:'î„'}.ms-Icon--ProcessMetaTask::before{content:'ïŠ'}.ms-Icon--Product::before{content:''}.ms-Icon--ProductCatalog::before{content:''}.ms-Icon--ProductionFloorManagement::before{content:''}.ms-Icon--ProductList::before{content:''}.ms-Icon--ProductRelease::before{content:''}.ms-Icon--ProductVariant::before{content:''}.ms-Icon--ProfileSearch::before{content:'î¼µ'}.ms-Icon--ProFootball::before{content:''}.ms-Icon--ProgressLoopInner::before{content:''}.ms-Icon--ProgressLoopOuter::before{content:''}.ms-Icon--ProgressRingDots::before{content:'ï…ª'}.ms-Icon--ProHockey::before{content:''}.ms-Icon--ProjectCollection::before{content:'ï£'}.ms-Icon--ProjectDocument::before{content:'ï™'}.ms-Icon--ProjectLogo16::before{content:'ï’€'}.ms-Icon--ProjectLogo32::before{content:''}.ms-Icon--ProjectLogoFill16::before{content:'ï’'}.ms-Icon--ProjectLogoFill32::before{content:'ï‘¿'}.ms-Icon--ProjectLogoInverse::before{content:'î·”'}.ms-Icon--PromotedDatabase::before{content:'ï½'}.ms-Icon--ProtectedDocument::before{content:''}.ms-Icon--ProtectionCenterLogo32::before{content:'ï’”'}.ms-Icon--ProtectRestrict::before{content:''}.ms-Icon--ProvisioningPackage::before{content:'î µ'}.ms-Icon--PublicCalendar::before{content:'î½'}.ms-Icon--PublicContactCard::before{content:'î½®'}[dir=rtl] .ms-Icon--PublicContactCard::before{content:''}.ms-Icon--PublicContactCardMirrored::before{content:''}[dir=rtl] .ms-Icon--PublicContactCardMirrored::before{content:'î½®'}.ms-Icon--PublicEmail::before{content:''}.ms-Icon--PublicFolder::before{content:'î½°'}.ms-Icon--PublishContent::before{content:''}.ms-Icon--PublishCourse::before{content:'ïš™'}.ms-Icon--PublisherLogo::before{content:'ï‡'}.ms-Icon--PublisherLogo16::before{content:'ïŽ '}.ms-Icon--PublisherLogoFill::before{content:''}.ms-Icon--PublisherLogoFill16::before{content:''}.ms-Icon--PublisherLogoInverse16::before{content:''}.ms-Icon--Puzzle::before{content:''}.ms-Icon--PY::before{content:''}.ms-Icon--PythonLanguage::before{content:''}.ms-Icon--QandA::before{content:''}.ms-Icon--QandAMirror::before{content:''}.ms-Icon--QRCode::before{content:'î´”'}.ms-Icon--QuadColumn::before{content:''}.ms-Icon--Quantity::before{content:''}.ms-Icon--QuarterCircle::before{content:''}.ms-Icon--QueryList::before{content:''}.ms-Icon--Questionnaire::before{content:''}[dir=rtl] .ms-Icon--Questionnaire::before{content:''}.ms-Icon--QuestionnaireMirrored::before{content:''}[dir=rtl] .ms-Icon--QuestionnaireMirrored::before{content:''}.ms-Icon--QuickNote::before{content:''}.ms-Icon--QuickNoteSolid::before{content:''}.ms-Icon--R::before{content:'ï“«'}.ms-Icon--RadioBtnOff::before{content:''}.ms-Icon--RadioBtnOn::before{content:''}.ms-Icon--RadioBullet::before{content:''}.ms-Icon--Rain::before{content:''}.ms-Icon--RainShowersDay::before{content:''}.ms-Icon--RainShowersNight::before{content:'î¨'}.ms-Icon--RainSnow::before{content:''}.ms-Icon--RawSource::before{content:''}.ms-Icon--Read::before{content:''}.ms-Icon--ReadingMode::before{content:''}.ms-Icon--ReadingModeSolid::before{content:''}.ms-Icon--ReadOutLoud::before{content:'ï„’'}.ms-Icon--RealEstate::before{content:'î˜'}.ms-Icon--ReceiptCheck::before{content:'î½›'}.ms-Icon--ReceiptForward::before{content:'î½™'}.ms-Icon--ReceiptReply::before{content:''}.ms-Icon--ReceiptTentative::before{content:'ïš'}[dir=rtl] .ms-Icon--ReceiptTentative::before{content:'ï›'}.ms-Icon--ReceiptTentativeMirrored::before{content:'ï›'}[dir=rtl] .ms-Icon--ReceiptTentativeMirrored::before{content:'ïš'}.ms-Icon--ReceiptUndelivered::before{content:'ï™'}.ms-Icon--Recent::before{content:'î £'}.ms-Icon--Record2::before{content:''}.ms-Icon--RecruitmentManagement::before{content:''}.ms-Icon--RectangleShape::before{content:''}.ms-Icon--RectangleShapeSolid::before{content:''}.ms-Icon--RectangularClipping::before{content:'ï‡'}.ms-Icon--RecurringEvent::before{content:'î½'}.ms-Icon--RecurringTask::before{content:''}.ms-Icon--RecycleBin::before{content:''}.ms-Icon--Redeploy::before{content:''}.ms-Icon--RedEye::before{content:'îž³'}.ms-Icon--RedEye12::before{content:'îŽ'}.ms-Icon--Redo::before{content:''}.ms-Icon--Refresh::before{content:''}.ms-Icon--RegistryEditor::before{content:''}.ms-Icon--Relationship::before{content:''}.ms-Icon--ReleaseDefinition::before{content:''}.ms-Icon--ReleaseGate::before{content:'ïž¾'}.ms-Icon--ReleaseGateCheck::before{content:'ïž¿'}.ms-Icon--ReleaseGateError::before{content:''}.ms-Icon--ReminderGroup::before{content:''}.ms-Icon--ReminderPerson::before{content:''}.ms-Icon--ReminderTime::before{content:''}.ms-Icon--Remote::before{content:''}.ms-Icon--Remove::before{content:''}.ms-Icon--RemoveContent::before{content:''}.ms-Icon--RemoveEvent::before{content:''}.ms-Icon--RemoveFilter::before{content:''}.ms-Icon--RemoveFromShoppingList::before{content:''}.ms-Icon--RemoveFromTrash::before{content:'ï «'}.ms-Icon--RemoveLink::before{content:'î¶'}.ms-Icon--RemoveLinkChain::before{content:'ïžš'}.ms-Icon--RemoveLinkX::before{content:'ïž›'}.ms-Icon--RemoveOccurrence::before{content:''}.ms-Icon--Rename::before{content:''}.ms-Icon--RenewalCurrent::before{content:'ï•…'}.ms-Icon--RenewalFuture::before{content:''}.ms-Icon--ReopenPages::before{content:'îµ'}.ms-Icon--Repair::before{content:'î¤'}.ms-Icon--RepeatAll::before{content:''}.ms-Icon--RepeatHeaderRows::before{content:'î«'}.ms-Icon--RepeatOne::before{content:'î£'}.ms-Icon--ReplyAllAlt::before{content:''}.ms-Icon--ReplyAll::before{content:''}[dir=rtl] .ms-Icon--ReplyAll::before{content:''}.ms-Icon--ReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyAllMirrored::before{content:''}.ms-Icon--ReplyAlt::before{content:''}.ms-Icon--Reply::before{content:''}[dir=rtl] .ms-Icon--Reply::before{content:''}.ms-Icon--ReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyMirrored::before{content:''}.ms-Icon--Repo::before{content:'ï‹‹'}.ms-Icon--ReportAdd::before{content:''}.ms-Icon--ReportDocument::before{content:''}.ms-Icon--ReportHacked::before{content:''}.ms-Icon--ReportLibrary::before{content:''}[dir=rtl] .ms-Icon--ReportLibrary::before{content:''}.ms-Icon--ReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--ReportLibraryMirrored::before{content:''}.ms-Icon--ReportLock::before{content:''}.ms-Icon--ReportWarning::before{content:'ï•©'}.ms-Icon--RepoSolid::before{content:'ï‹Œ'}.ms-Icon--Rerun::before{content:''}.ms-Icon--ReservationOrders::before{content:'ï¡…'}.ms-Icon--Reset::before{content:'î£'}.ms-Icon--ResetDevice::before{content:'î´'}.ms-Icon--ResponsesMenu::before{content:'ï¨'}.ms-Icon--ReturnKey::before{content:'î‘'}.ms-Icon--ReturnToSession::before{content:'î´¤'}.ms-Icon--ReviewRequestSolid::before{content:'ï–'}[dir=rtl] .ms-Icon--ReviewRequestSolid::before{content:'ï—'}.ms-Icon--ReviewRequestMirroredSolid::before{content:'ï—'}[dir=rtl] .ms-Icon--ReviewRequestMirroredSolid::before{content:'ï–'}.ms-Icon--ReviewResponseSolid::before{content:'ï˜'}.ms-Icon--ReviewSolid::before{content:'ï•'}.ms-Icon--RevToggleKey::before{content:'î¡…'}.ms-Icon--Rewind::before{content:''}.ms-Icon--Ribbon::before{content:''}.ms-Icon--RibbonSolid::before{content:'ï…'}.ms-Icon--RightDoubleQuote::before{content:''}.ms-Icon--RightTriangle::before{content:''}.ms-Icon--Ringer::before{content:'îª'}.ms-Icon--RingerOff::before{content:'ï‹…'}.ms-Icon--RingerRemove::before{content:''}.ms-Icon--RingerSolid::before{content:''}.ms-Icon--Robot::before{content:''}.ms-Icon--Rocket::before{content:''}.ms-Icon--Room::before{content:''}.ms-Icon--Rotate::before{content:'îž'}.ms-Icon--Rotate90Clockwise::before{content:'ï '}.ms-Icon--Rotate90CounterClockwise::before{content:'ï Ž'}.ms-Icon--RowsChild::before{content:''}.ms-Icon--RowsGroup::before{content:''}.ms-Icon--Rugby::before{content:'î¬'}.ms-Icon--Running::before{content:'î«š'}.ms-Icon--Sad::before{content:'î—'}.ms-Icon--SadSolid::before{content:''}.ms-Icon--Save::before{content:'îŽ'}.ms-Icon--SaveAll::before{content:''}.ms-Icon--SaveAndClose::before{content:''}.ms-Icon--SaveAs::before{content:'îž’'}.ms-Icon--SaveTemplate::before{content:''}.ms-Icon--SaveToMobile::before{content:'ïŸ '}.ms-Icon--Savings::before{content:''}.ms-Icon--ScaleUp::before{content:'î´‰'}.ms-Icon--ScaleVolume::before{content:''}.ms-Icon--ScatterChart::before{content:'î¿«'}.ms-Icon--ScheduleEventAction::before{content:''}.ms-Icon--SchoolDataSyncLogo::before{content:'îŒ'}.ms-Icon--ScopeTemplate::before{content:''}.ms-Icon--ScreenCast::before{content:''}.ms-Icon--Script::before{content:''}.ms-Icon--ScrollUpDown::before{content:'î²'}.ms-Icon--SDCard::before{content:''}.ms-Icon--Search::before{content:''}.ms-Icon--SearchAndApps::before{content:'î³'}.ms-Icon--SearchBookmark::before{content:'ï–¸'}.ms-Icon--SearchCalendar::before{content:'ï’¯'}.ms-Icon--SearchData::before{content:'ï±'}.ms-Icon--SearchIssue::before{content:'ï‚š'}[dir=rtl] .ms-Icon--SearchIssue::before{content:'ï‚›'}.ms-Icon--SearchIssueMirrored::before{content:'ï‚›'}[dir=rtl] .ms-Icon--SearchIssueMirrored::before{content:'ï‚š'}.ms-Icon--SearchNearby::before{content:'î '}.ms-Icon--SecondaryNav::before{content:'ï ”'}.ms-Icon--Section::before{content:'î°Œ'}.ms-Icon--Sections::before{content:''}.ms-Icon--SecurityGroup::before{content:''}.ms-Icon--SeeDo::before{content:'î ˆ'}.ms-Icon--SelectAll::before{content:''}.ms-Icon--Sell::before{content:''}.ms-Icon--SemiboldWeight::before{content:'ï“°'}.ms-Icon--Send::before{content:''}[dir=rtl] .ms-Icon--Send::before{content:'î©£'}.ms-Icon--SendMirrored::before{content:'î©£'}[dir=rtl] .ms-Icon--SendMirrored::before{content:''}.ms-Icon--SentimentAnalysis::before{content:''}.ms-Icon--Separator::before{content:'ïž'}.ms-Icon--Server::before{content:'ïˆ'}.ms-Icon--ServerEnviroment::before{content:''}.ms-Icon--ServerProcesses::before{content:''}.ms-Icon--ServiceOff::before{content:'î½'}.ms-Icon--SetAction::before{content:'ï±'}.ms-Icon--Settings::before{content:''}.ms-Icon--ShakeDevice::before{content:'ï Š'}.ms-Icon--Shapes::before{content:'î±¼'}.ms-Icon--ShapeSolid::before{content:'î¢'}.ms-Icon--Share::before{content:'îœ'}.ms-Icon--SharedDatabase::before{content:'î™'}.ms-Icon--ShareiOS::before{content:'î½¹'}.ms-Icon--SharepointAppIcon16::before{content:'î¥'}.ms-Icon--SharepointLogo::before{content:''}.ms-Icon--SharepointLogoFill::before{content:''}.ms-Icon--SharepointLogoInverse::before{content:'î´˜'}.ms-Icon--Shield::before{content:''}.ms-Icon--ShieldAlert::before{content:''}.ms-Icon--ShieldSolid::before{content:'ï€'}.ms-Icon--Shirt::before{content:'î´€'}.ms-Icon--Shop::before{content:''}.ms-Icon--ShoppingCart::before{content:'îž¿'}.ms-Icon--ShoppingCartSolid::before{content:'ï‚'}.ms-Icon--ShopServer::before{content:''}.ms-Icon--ShowGrid::before{content:''}.ms-Icon--ShowResults::before{content:''}[dir=rtl] .ms-Icon--ShowResults::before{content:'î©¥'}.ms-Icon--ShowResultsMirrored::before{content:'î©¥'}[dir=rtl] .ms-Icon--ShowResultsMirrored::before{content:''}.ms-Icon--ShowTimeAs::before{content:''}.ms-Icon--SidePanel::before{content:'î½’'}[dir=rtl] .ms-Icon--SidePanel::before{content:''}.ms-Icon--SidePanelMirrored::before{content:''}[dir=rtl] .ms-Icon--SidePanelMirrored::before{content:'î½’'}.ms-Icon--Signin::before{content:''}.ms-Icon--SignOut::before{content:''}.ms-Icon--SingleBookmark::before{content:'î·¿'}.ms-Icon--SingleBookmarkSolid::before{content:''}.ms-Icon--SingleColumn::before{content:''}.ms-Icon--SingleColumnEdit::before{content:''}.ms-Icon--SIPMove::before{content:'î™'}.ms-Icon--SiteScan::before{content:''}.ms-Icon--SizeLegacy::before{content:''}.ms-Icon--SkipBack10::before{content:'î´¼'}.ms-Icon--SkipForward30::before{content:'î´½'}.ms-Icon--SkiResorts::before{content:'î…'}.ms-Icon--SkypeArrow::before{content:'ïˆ'}.ms-Icon--SkypeCheck::before{content:'î¾€'}.ms-Icon--SkypeCircleArrow::before{content:'ï‡'}.ms-Icon--SkypeCircleCheck::before{content:'î½½'}.ms-Icon--SkypeCircleClock::before{content:'î½¾'}.ms-Icon--SkypeCircleMinus::before{content:''}.ms-Icon--SkypeCircleSlash::before{content:'ï ¥'}.ms-Icon--SkypeClock::before{content:'î¾'}.ms-Icon--SkypeForBusinessLogo::before{content:''}.ms-Icon--SkypeForBusinessLogo16::before{content:'ï'}.ms-Icon--SkypeForBusinessLogoFill::before{content:''}.ms-Icon--SkypeForBusinessLogoFill16::before{content:'ï'}.ms-Icon--SkypeLogo::before{content:'î¯'}.ms-Icon--SkypeLogo16::before{content:'ïŽ'}.ms-Icon--SkypeMessage::before{content:''}.ms-Icon--SkypeMinus::before{content:''}.ms-Icon--SkypeSlash::before{content:'ï ¦'}.ms-Icon--Slider::before{content:''}.ms-Icon--SliderHandleSize::before{content:''}.ms-Icon--SliderThumb::before{content:'î°“'}.ms-Icon--Slideshow::before{content:''}.ms-Icon--SmartGlassRemote::before{content:'ï ‹'}.ms-Icon--SnapToGrid::before{content:''}.ms-Icon--Snooze::before{content:'ï’½'}.ms-Icon--Snow::before{content:''}.ms-Icon--Snowflake::before{content:'î†'}.ms-Icon--SnowShowerDay::before{content:''}.ms-Icon--SnowShowerNight::before{content:''}.ms-Icon--Soccer::before{content:''}.ms-Icon--SocialListeningLogo::before{content:'îµ¼'}.ms-Icon--Sort::before{content:''}.ms-Icon--SortDown::before{content:''}.ms-Icon--SortLines::before{content:'î§'}.ms-Icon--SortUp::before{content:''}.ms-Icon--Source::before{content:''}.ms-Icon--Spacer::before{content:'ï'}.ms-Icon--Speakers::before{content:''}.ms-Icon--SpecialEvent::before{content:''}.ms-Icon--SpeedHigh::before{content:''}.ms-Icon--Spelling::before{content:'ï¡»'}.ms-Icon--Split::before{content:''}.ms-Icon--SplitObject::before{content:''}.ms-Icon--Sprint::before{content:''}.ms-Icon--Squalls::before{content:''}.ms-Icon--SquareShape::before{content:''}.ms-Icon--SquareShapeSolid::before{content:''}.ms-Icon--Stack::before{content:''}.ms-Icon--StackColumnChart::before{content:''}.ms-Icon--StackedBarChart::before{content:'ï‰'}.ms-Icon--StackedColumnChart2::before{content:''}.ms-Icon--StackedColumnChart2Fill::before{content:'ï ±'}.ms-Icon--StackedLineChart::before{content:''}.ms-Icon--StackIndicator::before{content:''}.ms-Icon--StaffNotebookLogo16::before{content:'ï’Ž'}.ms-Icon--StaffNotebookLogo32::before{content:'ï’Œ'}.ms-Icon--StaffNotebookLogoFill16::before{content:'ï’'}.ms-Icon--StaffNotebookLogoFill32::before{content:'ï’'}.ms-Icon--StaffNotebookLogoInverted16::before{content:'ï’‘'}.ms-Icon--StaffNotebookLogoInverted32::before{content:'ï’'}.ms-Icon--Starburst::before{content:''}.ms-Icon--StarburstSolid::before{content:''}.ms-Icon--StatusCircleBlock::before{content:'ï…€'}.ms-Icon--StatusCircleBlock2::before{content:'ï…'}.ms-Icon--StatusCircleCheckmark::before{content:''}.ms-Icon--StatusCircleErrorX::before{content:''}.ms-Icon--StatusCircleExclamation::before{content:''}.ms-Icon--StatusCircleInfo::before{content:'ï„¿'}.ms-Icon--StatusCircleInner::before{content:'ï„·'}.ms-Icon--StatusCircleOuter::before{content:''}.ms-Icon--StatusCircleQuestionMark::before{content:'ï…‚'}.ms-Icon--StatusCircleRing::before{content:''}.ms-Icon--StatusCircleSync::before{content:'ï…ƒ'}.ms-Icon--StatusErrorFull::before{content:'î®'}.ms-Icon--StatusTriangle::before{content:''}.ms-Icon--StatusTriangleExclamation::before{content:'ï„»'}.ms-Icon--StatusTriangleInner::before{content:''}.ms-Icon--StatusTriangleOuter::before{content:''}.ms-Icon--Step::before{content:'ï‰'}.ms-Icon--StepInsert::before{content:''}.ms-Icon--StepShared::before{content:''}.ms-Icon--StepSharedAdd::before{content:''}.ms-Icon--StepSharedInsert::before{content:''}.ms-Icon--StickyNotesOutlineAppIcon::before{content:'îª'}.ms-Icon--StickyNotesSolidAppIcon::before{content:'î«'}.ms-Icon--StockDown::before{content:'î¬'}.ms-Icon--StockUp::before{content:''}.ms-Icon--Stop::before{content:''}.ms-Icon--StopSolid::before{content:''}.ms-Icon--Stopwatch::before{content:''}.ms-Icon--StorageOptical::before{content:''}.ms-Icon--StoreLogo16::before{content:''}.ms-Icon--StoreLogoMed20::before{content:''}.ms-Icon--Storyboard::before{content:''}.ms-Icon--Streaming::before{content:''}.ms-Icon--StreamingOff::before{content:''}.ms-Icon--StreamLogo::before{content:''}.ms-Icon--Street::before{content:''}.ms-Icon--StreetsideSplitMinimize::before{content:'î ‚'}.ms-Icon--Strikethrough::before{content:'î· '}.ms-Icon--Subscribe::before{content:''}.ms-Icon--Subscript::before{content:'î·Ÿ'}.ms-Icon--SubstitutionsIn::before{content:''}.ms-Icon--Suitcase::before{content:'î·“'}.ms-Icon--SunAdd::before{content:''}.ms-Icon--Sunny::before{content:''}.ms-Icon--SunQuestionMark::before{content:''}.ms-Icon--Superscript::before{content:'î·ž'}.ms-Icon--SurveyQuestions::before{content:''}.ms-Icon--SwayLogo16::before{content:'ï’„'}.ms-Icon--SwayLogo32::before{content:'ï’‚'}.ms-Icon--SwayLogoFill16::before{content:'ï’…'}.ms-Icon--SwayLogoFill32::before{content:'ï’ƒ'}.ms-Icon--SwayLogoInverse::before{content:'î´©'}.ms-Icon--Switch::before{content:''}.ms-Icon--SwitcherStartEnd::before{content:'î '}.ms-Icon--SwitchUser::before{content:'îˆ'}.ms-Icon--Sync::before{content:''}.ms-Icon--SyncFolder::before{content:''}.ms-Icon--SyncOccurence::before{content:'ï’£'}.ms-Icon--SyncStatus::before{content:'ï‘'}.ms-Icon--SyncStatusSolid::before{content:'ï’'}.ms-Icon--SyncToPC::before{content:'î¹®'}.ms-Icon--System::before{content:'î°'}.ms-Icon--Tab::before{content:''}.ms-Icon--TabCenter::before{content:'ï„€'}.ms-Icon--Table::before{content:''}.ms-Icon--TableBrandedColumn::before{content:'î±'}.ms-Icon--TableBrandedRow::before{content:'î®'}.ms-Icon--TableComputed::before{content:''}.ms-Icon--TableFirstColumn::before{content:'î¯'}.ms-Icon--TableGroup::before{content:'ï›™'}.ms-Icon--TableHeaderRow::before{content:'î¬'}.ms-Icon--TableLastColumn::before{content:'î°'}.ms-Icon--TableLink::before{content:'ïº'}.ms-Icon--Tablet::before{content:''}.ms-Icon--TabletMode::before{content:''}.ms-Icon--TableTotalRow::before{content:'î'}.ms-Icon--TabletSelected::before{content:'î±´'}.ms-Icon--TabOneColumn::before{content:''}.ms-Icon--TabThreeColumn::before{content:'ï¡‹'}.ms-Icon--TabTwoColumn::before{content:'ï¡Š'}.ms-Icon--Tag::before{content:''}.ms-Icon--TagGroup::before{content:'î¶'}.ms-Icon--TagSolid::before{content:''}.ms-Icon--TagUnknown::before{content:''}.ms-Icon--TagUnknown12::before{content:''}.ms-Icon--TagUnknown12Mirror::before{content:''}.ms-Icon--TagUnknownMirror::before{content:'ï› '}.ms-Icon--Taskboard::before{content:''}.ms-Icon--TaskGroup::before{content:''}[dir=rtl] .ms-Icon--TaskGroup::before{content:''}.ms-Icon--TaskGroupMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskGroupMirrored::before{content:''}.ms-Icon--TaskList::before{content:''}.ms-Icon--TaskLogo::before{content:'ï’“'}.ms-Icon--TaskManager::before{content:''}[dir=rtl] .ms-Icon--TaskManager::before{content:''}.ms-Icon--TaskManagerMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskManagerMirrored::before{content:''}.ms-Icon--TaskSolid::before{content:''}.ms-Icon--Taxi::before{content:'ï’¡'}.ms-Icon--TeamFavorite::before{content:'ïŠ'}.ms-Icon--TeamsLogo::before{content:''}.ms-Icon--TeamsLogo16::before{content:'ïŠ'}.ms-Icon--TeamsLogoFill::before{content:''}.ms-Icon--TeamsLogoFill16::before{content:'ï‹'}.ms-Icon--TeamsLogoInverse::before{content:''}.ms-Icon--Teamwork::before{content:''}.ms-Icon--Teeth::before{content:'ï’ '}.ms-Icon--Telemarketer::before{content:'îž¹'}.ms-Icon--TemporaryUser::before{content:''}.ms-Icon--Tennis::before{content:''}.ms-Icon--TestAutoSolid::before{content:''}.ms-Icon--TestBeaker::before{content:''}.ms-Icon--TestBeakerSolid::before{content:''}.ms-Icon--TestCase::before{content:''}.ms-Icon--TestExploreSolid::before{content:''}.ms-Icon--TestImpactSolid::before{content:''}.ms-Icon--TestParameter::before{content:'ïŽ'}.ms-Icon--TestPlan::before{content:''}.ms-Icon--TestStep::before{content:''}.ms-Icon--TestSuite::before{content:''}.ms-Icon--TestUserSolid::before{content:''}.ms-Icon--TextAlignBottom::before{content:'î¢'}.ms-Icon--TextAlignMiddle::before{content:'î¡'}.ms-Icon--TextAlignTop::before{content:'î '}.ms-Icon--TextBox::before{content:'î·‚'}.ms-Icon--TextCallout::before{content:''}.ms-Icon--TextDocument::before{content:''}.ms-Icon--TextDocumentShared::before{content:''}.ms-Icon--TextField::before{content:'î·ƒ'}.ms-Icon--TextOverflow::before{content:''}.ms-Icon--TextParagraphOption::before{content:'î£'}.ms-Icon--TextRecognition::before{content:''}.ms-Icon--TextRotate270Degrees::before{content:'î§'}.ms-Icon--TextRotate90Degrees::before{content:'î¦'}.ms-Icon--TextRotateHorizontal::before{content:'î¥'}.ms-Icon--TextRotation::before{content:'î¤'}.ms-Icon--TFVCLogo::before{content:'ï‘'}.ms-Icon--ThisPC::before{content:''}.ms-Icon--ThreeQuarterCircle::before{content:''}.ms-Icon--ThumbnailView::before{content:''}[dir=rtl] .ms-Icon--ThumbnailView::before{content:''}.ms-Icon--ThumbnailViewMirrored::before{content:''}[dir=rtl] .ms-Icon--ThumbnailViewMirrored::before{content:''}.ms-Icon--Thunderstorms::before{content:''}.ms-Icon--Ticket::before{content:'î”'}.ms-Icon--Tiles::before{content:'î²¥'}.ms-Icon--Tiles2::before{content:'î½¼'}.ms-Icon--TimeEntry::before{content:''}.ms-Icon--Timeline::before{content:''}.ms-Icon--TimelineDelivery::before{content:''}.ms-Icon--TimelineMatrixView::before{content:'ï¡'}.ms-Icon--TimelineProgress::before{content:''}.ms-Icon--TimePicker::before{content:'î§'}.ms-Icon--Timer::before{content:''}.ms-Icon--TimeSheet::before{content:''}.ms-Icon--ToDoLogoBottom::before{content:'ï’³'}.ms-Icon--ToDoLogoInverse::before{content:'ï’¼'}.ms-Icon--ToDoLogoOutline::before{content:'ï›'}.ms-Icon--ToDoLogoTop::before{content:'ï’´'}.ms-Icon--ToggleBorder::before{content:'î°’'}.ms-Icon--ToggleFilled::before{content:'î°‘'}.ms-Icon--ToggleLeft::before{content:''}.ms-Icon--ToggleRight::before{content:''}.ms-Icon--ToggleThumb::before{content:'î°”'}.ms-Icon--Toll::before{content:'ï… '}.ms-Icon--Toolbox::before{content:'î³'}.ms-Icon--Total::before{content:''}.ms-Icon--Touch::before{content:'î •'}.ms-Icon--TouchPointer::before{content:''}.ms-Icon--Trackers::before{content:'î«Ÿ'}[dir=rtl] .ms-Icon--Trackers::before{content:''}.ms-Icon--TrackersMirrored::before{content:''}[dir=rtl] .ms-Icon--TrackersMirrored::before{content:'î«Ÿ'}.ms-Icon--Train::before{content:''}.ms-Icon--TrainSolid::before{content:'î'}.ms-Icon--TransferCall::before{content:''}.ms-Icon--Transition::before{content:''}.ms-Icon--TransitionEffect::before{content:'ï–´'}.ms-Icon--TransitionPop::before{content:'ï–²'}.ms-Icon--TransitionPush::before{content:'ï–³'}.ms-Icon--Translate::before{content:'îž²'}.ms-Icon--Trending12::before{content:'ï˜'}.ms-Icon--TriangleDown12::before{content:''}.ms-Icon--TriangleLeft12::before{content:'î»’'}.ms-Icon--TriangleRight12::before{content:''}.ms-Icon--TriangleShape::before{content:''}.ms-Icon--TriangleShapeSolid::before{content:''}.ms-Icon--TriangleSolid::before{content:''}.ms-Icon--TriangleSolidDown12::before{content:'î»'}.ms-Icon--TriangleSolidLeft12::before{content:''}.ms-Icon--TriangleSolidRight12::before{content:'î»'}.ms-Icon--TriangleSolidUp12::before{content:''}.ms-Icon--TriangleUp12::before{content:'î»'}.ms-Icon--TriggerApproval::before{content:''}.ms-Icon--TriggerAuto::before{content:''}.ms-Icon--TriggerUser::before{content:''}.ms-Icon--Trim::before{content:''}.ms-Icon--TrimEnd::before{content:''}.ms-Icon--TrimStart::before{content:''}.ms-Icon--TripleColumn::before{content:''}.ms-Icon--TripleColumnEdit::before{content:''}.ms-Icon--TripleColumnWide::before{content:'ï™®'}.ms-Icon--Trophy::before{content:'î´¿'}.ms-Icon--Trophy2::before{content:''}.ms-Icon--Trophy2Solid::before{content:''}.ms-Icon--TurnRight::before{content:''}.ms-Icon--TVMonitor::before{content:''}.ms-Icon--TVMonitorSelected::before{content:'î±·'}.ms-Icon--TypeScriptLanguage::before{content:'ï‹·'}.ms-Icon--Umbrella::before{content:'î°„'}.ms-Icon--Underline::before{content:''}.ms-Icon--Undo::before{content:''}.ms-Icon--Uneditable2::before{content:''}[dir=rtl] .ms-Icon--Uneditable2::before{content:'ï¡·'}.ms-Icon--Uneditable2Mirrored::before{content:'ï¡·'}[dir=rtl] .ms-Icon--Uneditable2Mirrored::before{content:''}.ms-Icon--Uneditable::before{content:'î´'}[dir=rtl] .ms-Icon--Uneditable::before{content:'ï’¹'}.ms-Icon--UneditableMirrored::before{content:'ï’¹'}[dir=rtl] .ms-Icon--UneditableMirrored::before{content:'î´'}.ms-Icon--UneditableSolid12::before{content:'ï’·'}[dir=rtl] .ms-Icon--UneditableSolid12::before{content:'ï’¸'}.ms-Icon--UneditableSolidMirrored12::before{content:'ï’¸'}[dir=rtl] .ms-Icon--UneditableSolidMirrored12::before{content:'ï’·'}.ms-Icon--Unfavorite::before{content:''}.ms-Icon--UngroupObject::before{content:''}.ms-Icon--UnknownCall::before{content:''}.ms-Icon--Unknown::before{content:''}[dir=rtl] .ms-Icon--Unknown::before{content:''}.ms-Icon--UnknownMirrored::before{content:''}[dir=rtl] .ms-Icon--UnknownMirrored::before{content:''}.ms-Icon--UnknownSolid::before{content:'ï‹¡'}[dir=rtl] .ms-Icon--UnknownSolid::before{content:'ï‹¢'}.ms-Icon--UnknownMirroredSolid::before{content:'ï‹¢'}[dir=rtl] .ms-Icon--UnknownMirroredSolid::before{content:'ï‹¡'}.ms-Icon--Unlock::before{content:'îž…'}.ms-Icon--UnlockSolid::before{content:''}.ms-Icon--Unpin::before{content:'îº'}.ms-Icon--UnpublishContent::before{content:''}.ms-Icon--UnSetColor::before{content:'ï¹'}.ms-Icon--UnstackSelected::before{content:''}.ms-Icon--Unsubscribe::before{content:'î¶ '}.ms-Icon--UnsyncFolder::before{content:''}.ms-Icon--UnsyncOccurence::before{content:'ï’¤'}.ms-Icon--Untag::before{content:''}.ms-Icon--Up::before{content:'îŠ'}.ms-Icon--UpdateRestore::before{content:'î·'}.ms-Icon--UpgradeAnalysis::before{content:''}.ms-Icon--Upload::before{content:''}.ms-Icon--URLBlock::before{content:'î¾'}.ms-Icon--USB::before{content:''}.ms-Icon--UserEvent::before{content:'ïšœ'}.ms-Icon--UserFollowed::before{content:''}.ms-Icon--UserGauge::before{content:'ï›'}.ms-Icon--UserOptional::before{content:'ï§'}.ms-Icon--UserPause::before{content:''}.ms-Icon--UserRemove::before{content:'ïš›'}.ms-Icon--UserSync::before{content:''}.ms-Icon--UserWarning::before{content:'î¨'}.ms-Icon--Vacation::before{content:'ï’Ÿ'}.ms-Icon--Vaccination::before{content:'î« '}.ms-Icon--Variable::before{content:''}.ms-Icon--Variable2::before{content:'ï¡'}.ms-Icon--VariableGroup::before{content:''}.ms-Icon--VB::before{content:''}.ms-Icon--VennDiagram::before{content:''}.ms-Icon--VerifiedBrand::before{content:'ïž½'}.ms-Icon--VerifiedBrandSolid::before{content:'ïš'}.ms-Icon--VersionControlPush::before{content:''}.ms-Icon--VerticalDistributeCenter::before{content:''}.ms-Icon--Video::before{content:''}.ms-Icon--Video360Generic::before{content:''}.ms-Icon--VideoLightOff::before{content:'î©´'}.ms-Icon--VideoOff::before{content:'ï’°'}.ms-Icon--VideoSearch::before{content:''}.ms-Icon--VideoSolid::before{content:''}.ms-Icon--View::before{content:'î¢'}.ms-Icon--ViewAll::before{content:''}.ms-Icon--ViewAll2::before{content:'î½–'}.ms-Icon--ViewDashboard::before{content:''}.ms-Icon--ViewInAR::before{content:'îŸ'}.ms-Icon--ViewList::before{content:''}.ms-Icon--ViewListGroup::before{content:''}.ms-Icon--ViewListTree::before{content:''}.ms-Icon--ViewOriginal::before{content:'îž´'}.ms-Icon--VisioDiagram::before{content:'ïŠ '}.ms-Icon--VisioDiagramSync::before{content:'ï¢'}.ms-Icon--VisioDocument::before{content:''}.ms-Icon--VisioLogo::before{content:''}.ms-Icon--VisioLogo16::before{content:''}.ms-Icon--VisioLogoFill::before{content:''}.ms-Icon--VisioLogoFill16::before{content:''}.ms-Icon--VisioLogoInverse::before{content:'îµ½'}.ms-Icon--VisioLogoInverse16::before{content:''}.ms-Icon--VisualBasicLanguage::before{content:''}.ms-Icon--VisuallyImpaired::before{content:''}.ms-Icon--VisualsFolder::before{content:'ï” '}.ms-Icon--VisualsStore::before{content:''}.ms-Icon--VisualStudioIDELogo32::before{content:'ï—'}.ms-Icon--VisualStudioLogo::before{content:'î°¢'}.ms-Icon--VoicemailForward::before{content:''}.ms-Icon--VoicemailIRM::before{content:'ï¡'}.ms-Icon--VoicemailReply::before{content:''}.ms-Icon--Volume0::before{content:''}.ms-Icon--Volume1::before{content:''}.ms-Icon--Volume2::before{content:''}.ms-Icon--Volume3::before{content:''}.ms-Icon--VolumeDisabled::before{content:''}.ms-Icon--VSTSAltLogo1::before{content:''}.ms-Icon--VSTSAltLogo2::before{content:''}.ms-Icon--VSTSLogo::before{content:'ïŽ'}.ms-Icon--Waffle::before{content:''}.ms-Icon--WaffleOffice365::before{content:'ï“ '}.ms-Icon--WaitlistConfirm::before{content:'ï•'}[dir=rtl] .ms-Icon--WaitlistConfirm::before{content:'ï•‘'}.ms-Icon--WaitlistConfirmMirrored::before{content:'ï•‘'}[dir=rtl] .ms-Icon--WaitlistConfirmMirrored::before{content:'ï•'}.ms-Icon--Warning::before{content:''}.ms-Icon--Warning12::before{content:''}.ms-Icon--WarningSolid::before{content:''}.ms-Icon--WavingHand::before{content:'ï ‡'}.ms-Icon--WebAppBuilderFragment::before{content:''}.ms-Icon--WebAppBuilderFragmentCreate::before{content:''}.ms-Icon--WebAppBuilderModule::before{content:''}.ms-Icon--WebAppBuilderSlot::before{content:''}.ms-Icon--Webcam2::before{content:'î¥ '}.ms-Icon--Webcam2Off::before{content:'î'}.ms-Icon--WebComponents::before{content:''}.ms-Icon--WebEnvironment::before{content:'î›'}.ms-Icon--WebPublish::before{content:''}.ms-Icon--Website::before{content:'î'}.ms-Icon--WebTemplate::before{content:'ïš²'}.ms-Icon--Weights::before{content:'î«›'}.ms-Icon--Wheelchair::before{content:''}.ms-Icon--WhiteBoardApp16::before{content:''}.ms-Icon--WhiteBoardApp32::before{content:'ï™´'}.ms-Icon--WifiEthernet::before{content:'î¹·'}.ms-Icon--WifiWarning4::before{content:'î£'}.ms-Icon--WindDirection::before{content:''}.ms-Icon--WindowEdit::before{content:''}.ms-Icon--WindowsLogo::before{content:'îž‚'}.ms-Icon--Wines::before{content:''}.ms-Icon--WipePhone::before{content:'î¶'}.ms-Icon--WordDocument::before{content:'î½±'}.ms-Icon--WordLogo::before{content:''}.ms-Icon--WordLogo16::before{content:''}.ms-Icon--WordLogoFill::before{content:''}.ms-Icon--WordLogoFill16::before{content:''}.ms-Icon--WordLogoInverse::before{content:'î°©'}.ms-Icon--WordLogoInverse16::before{content:'ïŽ'}.ms-Icon--Work::before{content:'î ¡'}.ms-Icon--WorkFlow::before{content:'î¨'}.ms-Icon--WorkforceManagement::before{content:'î¸'}.ms-Icon--WorkItem::before{content:''}.ms-Icon--WorkItemAlert::before{content:'ïž'}.ms-Icon--WorkItemBar::before{content:'ïœ'}.ms-Icon--WorkItemBarSolid::before{content:'ï'}.ms-Icon--WorkItemBug::before{content:''}.ms-Icon--World::before{content:''}.ms-Icon--WorldClock::before{content:''}.ms-Icon--YammerLogo::before{content:'î´™'}.ms-Icon--ZipFolder::before{content:''}.ms-Icon--Zoom::before{content:''}.ms-Icon--ZoomIn::before{content:''}.ms-Icon--ZoomOut::before{content:''}.ms-Icon--ZoomToFit::before{content:''}.ms-Icon--HumanResources::before{content:''}.ms-Icon--StoreLogo::before{content:''}.ms-Icon--OneDrive::before{content:'î¥'}.ms-Icon--ToggleOff::before{content:''}.ms-Icon--StoreLogoMed::before{content:''}@font-face{font-family:FabricMDL2Icons;src:url(https://static2.sharepointonline.com/files/fabric/assets/icons/fabricmdl2icons-3.70.woff) format('woff');font-weight:400;font-style:normal}@media (max-width:479.99999px){.ms-hiddenLgDown,.ms-hiddenMdDown,.ms-hiddenSm,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:480px) and (max-width:639.99999px){.ms-hiddenLgDown,.ms-hiddenMd,.ms-hiddenMdDown,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:640px) and (max-width:1023.99999px){.ms-hiddenLg,.ms-hiddenLgDown,.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1024px) and (max-width:1365.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXl,.ms-hiddenXlDown,.ms-hiddenXlUp,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1366px) and (max-width:1919.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxl,.ms-hiddenXxlDown,.ms-hiddenXxlUp{display:none!important}}@media (min-width:1920px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxlUp,.ms-hiddenXxxl{display:none!important}}.ms-sm12{width:100%}.ms-sm11{width:91.66666666666666%}.ms-sm10{width:83.33333333333334%}.ms-sm9{width:75%}.ms-sm8{width:66.66666666666666%}.ms-sm7{width:58.333333333333336%}.ms-sm6{width:50%}.ms-sm5{width:41.66666666666667%}.ms-sm4{width:33.33333333333333%}.ms-sm3{width:25%}.ms-sm2{width:16.666666666666664%}.ms-sm1{width:8.333333333333332%}[dir=ltr] .ms-smPull12{right:100%}[dir=rtl] .ms-smPull12{left:100%}[dir=ltr] .ms-smPull11{right:91.66667%}[dir=rtl] .ms-smPull11{left:91.66667%}[dir=ltr] .ms-smPull10{right:83.33333%}[dir=rtl] .ms-smPull10{left:83.33333%}[dir=ltr] .ms-smPull9{right:75%}[dir=rtl] .ms-smPull9{left:75%}[dir=ltr] .ms-smPull8{right:66.66667%}[dir=rtl] .ms-smPull8{left:66.66667%}[dir=ltr] .ms-smPull7{right:58.33333%}[dir=rtl] .ms-smPull7{left:58.33333%}[dir=ltr] .ms-smPull6{right:50%}[dir=rtl] .ms-smPull6{left:50%}[dir=ltr] .ms-smPull5{right:41.66667%}[dir=rtl] .ms-smPull5{left:41.66667%}[dir=ltr] .ms-smPull4{right:33.33333%}[dir=rtl] .ms-smPull4{left:33.33333%}[dir=ltr] .ms-smPull3{right:25%}[dir=rtl] .ms-smPull3{left:25%}[dir=ltr] .ms-smPull2{right:16.66667%}[dir=rtl] .ms-smPull2{left:16.66667%}[dir=ltr] .ms-smPull1{right:8.33333%}[dir=rtl] .ms-smPull1{left:8.33333%}[dir=ltr] .ms-smPull0{right:auto}[dir=rtl] .ms-smPull0{left:auto}[dir=ltr] .ms-smPush12{left:100%}[dir=rtl] .ms-smPush12{right:100%}[dir=ltr] .ms-smPush11{left:91.66667%}[dir=rtl] .ms-smPush11{right:91.66667%}[dir=ltr] .ms-smPush10{left:83.33333%}[dir=rtl] .ms-smPush10{right:83.33333%}[dir=ltr] .ms-smPush9{left:75%}[dir=rtl] .ms-smPush9{right:75%}[dir=ltr] .ms-smPush8{left:66.66667%}[dir=rtl] .ms-smPush8{right:66.66667%}[dir=ltr] .ms-smPush7{left:58.33333%}[dir=rtl] .ms-smPush7{right:58.33333%}[dir=ltr] .ms-smPush6{left:50%}[dir=rtl] .ms-smPush6{right:50%}[dir=ltr] .ms-smPush5{left:41.66667%}[dir=rtl] .ms-smPush5{right:41.66667%}[dir=ltr] .ms-smPush4{left:33.33333%}[dir=rtl] .ms-smPush4{right:33.33333%}[dir=ltr] .ms-smPush3{left:25%}[dir=rtl] .ms-smPush3{right:25%}[dir=ltr] .ms-smPush2{left:16.66667%}[dir=rtl] .ms-smPush2{right:16.66667%}[dir=ltr] .ms-smPush1{left:8.33333%}[dir=rtl] .ms-smPush1{right:8.33333%}[dir=ltr] .ms-smPush0{left:auto}[dir=rtl] .ms-smPush0{right:auto}[dir=ltr] .ms-smOffset11{margin-left:91.66667%}[dir=rtl] .ms-smOffset11{margin-right:91.66667%}[dir=ltr] .ms-smOffset10{margin-left:83.33333%}[dir=rtl] .ms-smOffset10{margin-right:83.33333%}[dir=ltr] .ms-smOffset9{margin-left:75%}[dir=rtl] .ms-smOffset9{margin-right:75%}[dir=ltr] .ms-smOffset8{margin-left:66.66667%}[dir=rtl] .ms-smOffset8{margin-right:66.66667%}[dir=ltr] .ms-smOffset7{margin-left:58.33333%}[dir=rtl] .ms-smOffset7{margin-right:58.33333%}[dir=ltr] .ms-smOffset6{margin-left:50%}[dir=rtl] .ms-smOffset6{margin-right:50%}[dir=ltr] .ms-smOffset5{margin-left:41.66667%}[dir=rtl] .ms-smOffset5{margin-right:41.66667%}[dir=ltr] .ms-smOffset4{margin-left:33.33333%}[dir=rtl] .ms-smOffset4{margin-right:33.33333%}[dir=ltr] .ms-smOffset3{margin-left:25%}[dir=rtl] .ms-smOffset3{margin-right:25%}[dir=ltr] .ms-smOffset2{margin-left:16.66667%}[dir=rtl] .ms-smOffset2{margin-right:16.66667%}[dir=ltr] .ms-smOffset1{margin-left:8.33333%}[dir=rtl] .ms-smOffset1{margin-right:8.33333%}[dir=ltr] .ms-smOffset0{margin-left:0}[dir=rtl] .ms-smOffset0{margin-right:0}@media (min-width:480px){.ms-md12{width:100%}}@media (min-width:480px){.ms-md11{width:91.66666666666666%}}@media (min-width:480px){.ms-md10{width:83.33333333333334%}}@media (min-width:480px){.ms-md9{width:75%}}@media (min-width:480px){.ms-md8{width:66.66666666666666%}}@media (min-width:480px){.ms-md7{width:58.333333333333336%}}@media (min-width:480px){.ms-md6{width:50%}}@media (min-width:480px){.ms-md5{width:41.66666666666667%}}@media (min-width:480px){.ms-md4{width:33.33333333333333%}}@media (min-width:480px){.ms-md3{width:25%}}@media (min-width:480px){.ms-md2{width:16.666666666666664%}}@media (min-width:480px){.ms-md1{width:8.333333333333332%}}@media (min-width:480px){[dir=ltr] .ms-mdPull12{right:100%}[dir=rtl] .ms-mdPull12{left:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPull11{right:91.66667%}[dir=rtl] .ms-mdPull11{left:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull10{right:83.33333%}[dir=rtl] .ms-mdPull10{left:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull9{right:75%}[dir=rtl] .ms-mdPull9{left:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPull8{right:66.66667%}[dir=rtl] .ms-mdPull8{left:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull7{right:58.33333%}[dir=rtl] .ms-mdPull7{left:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull6{right:50%}[dir=rtl] .ms-mdPull6{left:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPull5{right:41.66667%}[dir=rtl] .ms-mdPull5{left:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull4{right:33.33333%}[dir=rtl] .ms-mdPull4{left:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull3{right:25%}[dir=rtl] .ms-mdPull3{left:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPull2{right:16.66667%}[dir=rtl] .ms-mdPull2{left:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull1{right:8.33333%}[dir=rtl] .ms-mdPull1{left:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull0{right:auto}[dir=rtl] .ms-mdPull0{left:auto}}@media (min-width:480px){[dir=ltr] .ms-mdPush12{left:100%}[dir=rtl] .ms-mdPush12{right:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPush11{left:91.66667%}[dir=rtl] .ms-mdPush11{right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush10{left:83.33333%}[dir=rtl] .ms-mdPush10{right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush9{left:75%}[dir=rtl] .ms-mdPush9{right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPush8{left:66.66667%}[dir=rtl] .ms-mdPush8{right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush7{left:58.33333%}[dir=rtl] .ms-mdPush7{right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush6{left:50%}[dir=rtl] .ms-mdPush6{right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPush5{left:41.66667%}[dir=rtl] .ms-mdPush5{right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush4{left:33.33333%}[dir=rtl] .ms-mdPush4{right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush3{left:25%}[dir=rtl] .ms-mdPush3{right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPush2{left:16.66667%}[dir=rtl] .ms-mdPush2{right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush1{left:8.33333%}[dir=rtl] .ms-mdPush1{right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush0{left:auto}[dir=rtl] .ms-mdPush0{right:auto}}@media (min-width:480px){[dir=ltr] .ms-mdOffset11{margin-left:91.66667%}[dir=rtl] .ms-mdOffset11{margin-right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset10{margin-left:83.33333%}[dir=rtl] .ms-mdOffset10{margin-right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset9{margin-left:75%}[dir=rtl] .ms-mdOffset9{margin-right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset8{margin-left:66.66667%}[dir=rtl] .ms-mdOffset8{margin-right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset7{margin-left:58.33333%}[dir=rtl] .ms-mdOffset7{margin-right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset6{margin-left:50%}[dir=rtl] .ms-mdOffset6{margin-right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset5{margin-left:41.66667%}[dir=rtl] .ms-mdOffset5{margin-right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset4{margin-left:33.33333%}[dir=rtl] .ms-mdOffset4{margin-right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset3{margin-left:25%}[dir=rtl] .ms-mdOffset3{margin-right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset2{margin-left:16.66667%}[dir=rtl] .ms-mdOffset2{margin-right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset1{margin-left:8.33333%}[dir=rtl] .ms-mdOffset1{margin-right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset0{margin-left:0}[dir=rtl] .ms-mdOffset0{margin-right:0}}@media (min-width:640px){.ms-lg12{width:100%}}@media (min-width:640px){.ms-lg11{width:91.66666666666666%}}@media (min-width:640px){.ms-lg10{width:83.33333333333334%}}@media (min-width:640px){.ms-lg9{width:75%}}@media (min-width:640px){.ms-lg8{width:66.66666666666666%}}@media (min-width:640px){.ms-lg7{width:58.333333333333336%}}@media (min-width:640px){.ms-lg6{width:50%}}@media (min-width:640px){.ms-lg5{width:41.66666666666667%}}@media (min-width:640px){.ms-lg4{width:33.33333333333333%}}@media (min-width:640px){.ms-lg3{width:25%}}@media (min-width:640px){.ms-lg2{width:16.666666666666664%}}@media (min-width:640px){.ms-lg1{width:8.333333333333332%}}@media (min-width:640px){[dir=ltr] .ms-lgPull12{right:100%}[dir=rtl] .ms-lgPull12{left:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPull11{right:91.66667%}[dir=rtl] .ms-lgPull11{left:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull10{right:83.33333%}[dir=rtl] .ms-lgPull10{left:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull9{right:75%}[dir=rtl] .ms-lgPull9{left:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPull8{right:66.66667%}[dir=rtl] .ms-lgPull8{left:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull7{right:58.33333%}[dir=rtl] .ms-lgPull7{left:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull6{right:50%}[dir=rtl] .ms-lgPull6{left:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPull5{right:41.66667%}[dir=rtl] .ms-lgPull5{left:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull4{right:33.33333%}[dir=rtl] .ms-lgPull4{left:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull3{right:25%}[dir=rtl] .ms-lgPull3{left:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPull2{right:16.66667%}[dir=rtl] .ms-lgPull2{left:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull1{right:8.33333%}[dir=rtl] .ms-lgPull1{left:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull0{right:auto}[dir=rtl] .ms-lgPull0{left:auto}}@media (min-width:640px){[dir=ltr] .ms-lgPush12{left:100%}[dir=rtl] .ms-lgPush12{right:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPush11{left:91.66667%}[dir=rtl] .ms-lgPush11{right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush10{left:83.33333%}[dir=rtl] .ms-lgPush10{right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush9{left:75%}[dir=rtl] .ms-lgPush9{right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPush8{left:66.66667%}[dir=rtl] .ms-lgPush8{right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush7{left:58.33333%}[dir=rtl] .ms-lgPush7{right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush6{left:50%}[dir=rtl] .ms-lgPush6{right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPush5{left:41.66667%}[dir=rtl] .ms-lgPush5{right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush4{left:33.33333%}[dir=rtl] .ms-lgPush4{right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush3{left:25%}[dir=rtl] .ms-lgPush3{right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPush2{left:16.66667%}[dir=rtl] .ms-lgPush2{right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush1{left:8.33333%}[dir=rtl] .ms-lgPush1{right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush0{left:auto}[dir=rtl] .ms-lgPush0{right:auto}}@media (min-width:640px){[dir=ltr] .ms-lgOffset11{margin-left:91.66667%}[dir=rtl] .ms-lgOffset11{margin-right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset10{margin-left:83.33333%}[dir=rtl] .ms-lgOffset10{margin-right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset9{margin-left:75%}[dir=rtl] .ms-lgOffset9{margin-right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset8{margin-left:66.66667%}[dir=rtl] .ms-lgOffset8{margin-right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset7{margin-left:58.33333%}[dir=rtl] .ms-lgOffset7{margin-right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset6{margin-left:50%}[dir=rtl] .ms-lgOffset6{margin-right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset5{margin-left:41.66667%}[dir=rtl] .ms-lgOffset5{margin-right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset4{margin-left:33.33333%}[dir=rtl] .ms-lgOffset4{margin-right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset3{margin-left:25%}[dir=rtl] .ms-lgOffset3{margin-right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset2{margin-left:16.66667%}[dir=rtl] .ms-lgOffset2{margin-right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset1{margin-left:8.33333%}[dir=rtl] .ms-lgOffset1{margin-right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset0{margin-left:0}[dir=rtl] .ms-lgOffset0{margin-right:0}}@media (min-width:1024px){.ms-xl12{width:100%}}@media (min-width:1024px){.ms-xl11{width:91.66666666666666%}}@media (min-width:1024px){.ms-xl10{width:83.33333333333334%}}@media (min-width:1024px){.ms-xl9{width:75%}}@media (min-width:1024px){.ms-xl8{width:66.66666666666666%}}@media (min-width:1024px){.ms-xl7{width:58.333333333333336%}}@media (min-width:1024px){.ms-xl6{width:50%}}@media (min-width:1024px){.ms-xl5{width:41.66666666666667%}}@media (min-width:1024px){.ms-xl4{width:33.33333333333333%}}@media (min-width:1024px){.ms-xl3{width:25%}}@media (min-width:1024px){.ms-xl2{width:16.666666666666664%}}@media (min-width:1024px){.ms-xl1{width:8.333333333333332%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull12{right:100%}[dir=rtl] .ms-xlPull12{left:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull11{right:91.66667%}[dir=rtl] .ms-xlPull11{left:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull10{right:83.33333%}[dir=rtl] .ms-xlPull10{left:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull9{right:75%}[dir=rtl] .ms-xlPull9{left:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull8{right:66.66667%}[dir=rtl] .ms-xlPull8{left:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull7{right:58.33333%}[dir=rtl] .ms-xlPull7{left:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull6{right:50%}[dir=rtl] .ms-xlPull6{left:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull5{right:41.66667%}[dir=rtl] .ms-xlPull5{left:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull4{right:33.33333%}[dir=rtl] .ms-xlPull4{left:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull3{right:25%}[dir=rtl] .ms-xlPull3{left:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull2{right:16.66667%}[dir=rtl] .ms-xlPull2{left:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull1{right:8.33333%}[dir=rtl] .ms-xlPull1{left:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull0{right:auto}[dir=rtl] .ms-xlPull0{left:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlPush12{left:100%}[dir=rtl] .ms-xlPush12{right:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush11{left:91.66667%}[dir=rtl] .ms-xlPush11{right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush10{left:83.33333%}[dir=rtl] .ms-xlPush10{right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush9{left:75%}[dir=rtl] .ms-xlPush9{right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush8{left:66.66667%}[dir=rtl] .ms-xlPush8{right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush7{left:58.33333%}[dir=rtl] .ms-xlPush7{right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush6{left:50%}[dir=rtl] .ms-xlPush6{right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush5{left:41.66667%}[dir=rtl] .ms-xlPush5{right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush4{left:33.33333%}[dir=rtl] .ms-xlPush4{right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush3{left:25%}[dir=rtl] .ms-xlPush3{right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush2{left:16.66667%}[dir=rtl] .ms-xlPush2{right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush1{left:8.33333%}[dir=rtl] .ms-xlPush1{right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush0{left:auto}[dir=rtl] .ms-xlPush0{right:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xlOffset11{margin-right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xlOffset10{margin-right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset9{margin-left:75%}[dir=rtl] .ms-xlOffset9{margin-right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xlOffset8{margin-right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xlOffset7{margin-right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset6{margin-left:50%}[dir=rtl] .ms-xlOffset6{margin-right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xlOffset5{margin-right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xlOffset4{margin-right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset3{margin-left:25%}[dir=rtl] .ms-xlOffset3{margin-right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xlOffset2{margin-right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xlOffset1{margin-right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset0{margin-left:0}[dir=rtl] .ms-xlOffset0{margin-right:0}}@media (min-width:1366px){.ms-xxl12{width:100%}}@media (min-width:1366px){.ms-xxl11{width:91.66666666666666%}}@media (min-width:1366px){.ms-xxl10{width:83.33333333333334%}}@media (min-width:1366px){.ms-xxl9{width:75%}}@media (min-width:1366px){.ms-xxl8{width:66.66666666666666%}}@media (min-width:1366px){.ms-xxl7{width:58.333333333333336%}}@media (min-width:1366px){.ms-xxl6{width:50%}}@media (min-width:1366px){.ms-xxl5{width:41.66666666666667%}}@media (min-width:1366px){.ms-xxl4{width:33.33333333333333%}}@media (min-width:1366px){.ms-xxl3{width:25%}}@media (min-width:1366px){.ms-xxl2{width:16.666666666666664%}}@media (min-width:1366px){.ms-xxl1{width:8.333333333333332%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull12{right:100%}[dir=rtl] .ms-xxlPull12{left:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull11{right:91.66667%}[dir=rtl] .ms-xxlPull11{left:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull10{right:83.33333%}[dir=rtl] .ms-xxlPull10{left:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull9{right:75%}[dir=rtl] .ms-xxlPull9{left:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull8{right:66.66667%}[dir=rtl] .ms-xxlPull8{left:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull7{right:58.33333%}[dir=rtl] .ms-xxlPull7{left:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull6{right:50%}[dir=rtl] .ms-xxlPull6{left:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull5{right:41.66667%}[dir=rtl] .ms-xxlPull5{left:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull4{right:33.33333%}[dir=rtl] .ms-xxlPull4{left:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull3{right:25%}[dir=rtl] .ms-xxlPull3{left:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull2{right:16.66667%}[dir=rtl] .ms-xxlPull2{left:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull1{right:8.33333%}[dir=rtl] .ms-xxlPull1{left:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull0{right:auto}[dir=rtl] .ms-xxlPull0{left:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush12{left:100%}[dir=rtl] .ms-xxlPush12{right:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush11{left:91.66667%}[dir=rtl] .ms-xxlPush11{right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush10{left:83.33333%}[dir=rtl] .ms-xxlPush10{right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush9{left:75%}[dir=rtl] .ms-xxlPush9{right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush8{left:66.66667%}[dir=rtl] .ms-xxlPush8{right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush7{left:58.33333%}[dir=rtl] .ms-xxlPush7{right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush6{left:50%}[dir=rtl] .ms-xxlPush6{right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush5{left:41.66667%}[dir=rtl] .ms-xxlPush5{right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush4{left:33.33333%}[dir=rtl] .ms-xxlPush4{right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush3{left:25%}[dir=rtl] .ms-xxlPush3{right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush2{left:16.66667%}[dir=rtl] .ms-xxlPush2{right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush1{left:8.33333%}[dir=rtl] .ms-xxlPush1{right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush0{left:auto}[dir=rtl] .ms-xxlPush0{right:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxlOffset11{margin-right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxlOffset10{margin-right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset9{margin-left:75%}[dir=rtl] .ms-xxlOffset9{margin-right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxlOffset8{margin-right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxlOffset7{margin-right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset6{margin-left:50%}[dir=rtl] .ms-xxlOffset6{margin-right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxlOffset5{margin-right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxlOffset4{margin-right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset3{margin-left:25%}[dir=rtl] .ms-xxlOffset3{margin-right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxlOffset2{margin-right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxlOffset1{margin-right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset0{margin-left:0}[dir=rtl] .ms-xxlOffset0{margin-right:0}}@media (min-width:1920px){.ms-xxxl12{width:100%}}@media (min-width:1920px){.ms-xxxl11{width:91.66666666666666%}}@media (min-width:1920px){.ms-xxxl10{width:83.33333333333334%}}@media (min-width:1920px){.ms-xxxl9{width:75%}}@media (min-width:1920px){.ms-xxxl8{width:66.66666666666666%}}@media (min-width:1920px){.ms-xxxl7{width:58.333333333333336%}}@media (min-width:1920px){.ms-xxxl6{width:50%}}@media (min-width:1920px){.ms-xxxl5{width:41.66666666666667%}}@media (min-width:1920px){.ms-xxxl4{width:33.33333333333333%}}@media (min-width:1920px){.ms-xxxl3{width:25%}}@media (min-width:1920px){.ms-xxxl2{width:16.666666666666664%}}@media (min-width:1920px){.ms-xxxl1{width:8.333333333333332%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull12{right:100%}[dir=rtl] .ms-xxxlPull12{left:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull11{right:91.66667%}[dir=rtl] .ms-xxxlPull11{left:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull10{right:83.33333%}[dir=rtl] .ms-xxxlPull10{left:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull9{right:75%}[dir=rtl] .ms-xxxlPull9{left:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull8{right:66.66667%}[dir=rtl] .ms-xxxlPull8{left:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull7{right:58.33333%}[dir=rtl] .ms-xxxlPull7{left:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull6{right:50%}[dir=rtl] .ms-xxxlPull6{left:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull5{right:41.66667%}[dir=rtl] .ms-xxxlPull5{left:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull4{right:33.33333%}[dir=rtl] .ms-xxxlPull4{left:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull3{right:25%}[dir=rtl] .ms-xxxlPull3{left:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull2{right:16.66667%}[dir=rtl] .ms-xxxlPull2{left:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull1{right:8.33333%}[dir=rtl] .ms-xxxlPull1{left:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull0{right:auto}[dir=rtl] .ms-xxxlPull0{left:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush12{left:100%}[dir=rtl] .ms-xxxlPush12{right:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush11{left:91.66667%}[dir=rtl] .ms-xxxlPush11{right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush10{left:83.33333%}[dir=rtl] .ms-xxxlPush10{right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush9{left:75%}[dir=rtl] .ms-xxxlPush9{right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush8{left:66.66667%}[dir=rtl] .ms-xxxlPush8{right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush7{left:58.33333%}[dir=rtl] .ms-xxxlPush7{right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush6{left:50%}[dir=rtl] .ms-xxxlPush6{right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush5{left:41.66667%}[dir=rtl] .ms-xxxlPush5{right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush4{left:33.33333%}[dir=rtl] .ms-xxxlPush4{right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush3{left:25%}[dir=rtl] .ms-xxxlPush3{right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush2{left:16.66667%}[dir=rtl] .ms-xxxlPush2{right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush1{left:8.33333%}[dir=rtl] .ms-xxxlPush1{right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush0{left:auto}[dir=rtl] .ms-xxxlPush0{right:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxxlOffset11{margin-right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxxlOffset10{margin-right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset9{margin-left:75%}[dir=rtl] .ms-xxxlOffset9{margin-right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxxlOffset8{margin-right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxxlOffset7{margin-right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset6{margin-left:50%}[dir=rtl] .ms-xxxlOffset6{margin-right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxxlOffset5{margin-right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxxlOffset4{margin-right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset3{margin-left:25%}[dir=rtl] .ms-xxxlOffset3{margin-right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxxlOffset2{margin-right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxxlOffset1{margin-right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset0{margin-left:0}[dir=rtl] .ms-xxxlOffset0{margin-right:0}}.ms-borderBox,.ms-borderBox::after,.ms-borderBox::before{box-sizing:border-box}.ms-borderBase{border:1px solid}.ms-clearfix{zoom:1}.ms-clearfix::after,.ms-clearfix::before{display:table;content:'';line-height:0}.ms-clearfix::after{clear:both}.ms-normalize{box-sizing:border-box;box-shadow:none;margin:0;padding:0}[dir=ltr] .ms-textAlignLeft{text-align:left}[dir=rtl] .ms-textAlignLeft{text-align:right}[dir=ltr] .ms-textAlignRight{text-align:right}[dir=rtl] .ms-textAlignRight{text-align:left}.ms-textAlignCenter{text-align:center}.ms-screenReaderOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ms-textTruncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.ms-noWrap{white-space:nowrap}.ms-Fabric{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#323130;font-family:'Segoe UI Web (West European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;font-size:14px}.ms-Fabric button,.ms-Fabric input,.ms-Fabric textarea{font-family:inherit}.ms-Fabric [lang^=ar],.ms-Fabric[lang^=ar],[lang^=ar] .ms-Fabric{font-family:'Segoe UI Web (Arabic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=bg],.ms-Fabric[lang^=bg],[lang^=bg] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=cs],.ms-Fabric[lang^=cs],[lang^=cs] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=el],.ms-Fabric[lang^=el],[lang^=el] .ms-Fabric{font-family:'Segoe UI Web (Greek)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=et],.ms-Fabric[lang^=et],[lang^=et] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=he],.ms-Fabric[lang^=he],[lang^=he] .ms-Fabric{font-family:'Segoe UI Web (Hebrew)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hi],.ms-Fabric[lang^=hi],[lang^=hi] .ms-Fabric{font-family:'Nirmala UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hr],.ms-Fabric[lang^=hr],[lang^=hr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hu],.ms-Fabric[lang^=hu],[lang^=hu] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ja],.ms-Fabric[lang^=ja],[lang^=ja] .ms-Fabric{font-family:'Yu Gothic UI','Meiryo UI',Meiryo,'MS Pgothic',Osaka,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=kk],.ms-Fabric[lang^=kk],[lang^=kk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ko],.ms-Fabric[lang^=ko],[lang^=ko] .ms-Fabric{font-family:'Malgun Gothic',Gulim,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lo],.ms-Fabric[lang^=lo],[lang^=lo] .ms-Fabric{font-family:'Leelawadee UI Web','Lao UI',DokChampa,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lt],.ms-Fabric[lang^=lt],[lang^=lt] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lv],.ms-Fabric[lang^=lv],[lang^=lv] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=pl],.ms-Fabric[lang^=pl],[lang^=pl] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ru],.ms-Fabric[lang^=ru],[lang^=ru] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sk],.ms-Fabric[lang^=sk],[lang^=sk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sr-latn],.ms-Fabric[lang^=sr-latn],[lang^=sr-latn] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=th],.ms-Fabric[lang^=th],[lang^=th] .ms-Fabric{font-family:'Leelawadee UI Web','Kmer UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=tr],.ms-Fabric[lang^=tr],[lang^=tr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=uk],.ms-Fabric[lang^=uk],[lang^=uk] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=vi],.ms-Fabric[lang^=vi],[lang^=vi] .ms-Fabric{font-family:'Segoe UI Web (Vietnamese)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hans],.ms-Fabric[lang^=zh-hans],[lang^=zh-hans] .ms-Fabric{font-family:'Microsoft Yahei UI',Verdana,Simsun,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hant],.ms-Fabric[lang^=zh-hant],[lang^=zh-hant] .ms-Fabric{font-family:'Microsoft Jhenghei UI',Pmingliu,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric--selawik{font-family:'Selawik Web','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/office-ui-fabric-core/dist/css/fabric.min.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/* Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information. */\\r\\n/**\\n * Office UI Fabric Core 11.0.1\\n * The front-end framework for building experiences for Office 365.\\n **/\\n@charset 'UTF-8';@keyframes ms-motion-fadeIn{from{opacity:0}to{opacity:1}}@keyframes ms-motion-fadeOut{from{opacity:1}to{opacity:0}}@keyframes ms-motion-scaleDownIn{from{transform:scale3d(1.15,1.15,1)}to{transform:scale3d(1,1,1)}}@keyframes ms-motion-scaleDownOut{from{transform:scale3d(1,1,1)}to{transform:scale3d(.9,.9,1)}}@keyframes ms-motion-slideLeftOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(-48px,0,0)}}@keyframes ms-motion-slideRightOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(48px,0,0)}}@keyframes ms-motion-slideLeftIn{from{transform:translate3d(48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideRightIn{from{transform:translate3d(-48px,0,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideUpOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-48px,0)}}@keyframes ms-motion-slideDownOut{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,48px,0)}}@keyframes ms-motion-slideUpIn{from{transform:translate3d(0,48px,0)}to{transform:translate3d(0,0,0)}}@keyframes ms-motion-slideDownIn{from{transform:translate3d(0,-48px,0)}to{transform:translate3d(0,0,0)}}.ms-motion-fadeIn{animation:ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-fadeOut{animation:ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownIn{animation:ms-motion-scaleDownIn .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-scaleDownOut{animation:ms-motion-scaleDownOut .3s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightOut{animation:ms-motion-slideRightOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightOut{animation:ms-motion-slideLeftOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideLeftIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideLeftIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=ltr] .ms-motion-slideRightIn{animation:ms-motion-slideRightIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}[dir=rtl] .ms-motion-slideRightIn{animation:ms-motion-slideLeftIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpOut{animation:ms-motion-slideUpOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownOut{animation:ms-motion-slideDownOut .1s cubic-bezier(.9,.1,1,.2) both,ms-motion-fadeOut .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideUpIn{animation:ms-motion-slideUpIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-motion-slideDownIn{animation:ms-motion-slideDownIn .1s cubic-bezier(.1,.9,.2,1) both,ms-motion-fadeIn .1s cubic-bezier(0,0,1,1) both}.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/zip.png)}.ms-BrandIcon--icon16{background-size:100% 100%;width:16px;height:16px}.ms-BrandIcon--icon48{background-size:100% 100%;width:48px;height:48px}.ms-BrandIcon--icon96{background-size:100% 100%;width:96px;height:96px}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x1_5.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x1_5.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x1_5.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x1_5.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x1_5.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x1_5.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x1_5.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x1_5.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x1_5.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x1_5.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x1_5.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x1_5.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x1_5.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x1_5.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/zip.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x2.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x2.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x2.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x2.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x2.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x2.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x2.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x2.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x2.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x2.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x2.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x2.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x2.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x2.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/zip.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--access.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_16x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_48x3.png)}.ms-BrandIcon--access.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/access_96x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_16x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_48x3.png)}.ms-BrandIcon--excel.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/excel_96x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_16x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_48x3.png)}.ms-BrandIcon--infopath.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/infopath_96x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_16x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_48x3.png)}.ms-BrandIcon--office.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/office_96x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_16x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_48x3.png)}.ms-BrandIcon--onedrive.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onedrive_96x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_16x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_48x3.png)}.ms-BrandIcon--onenote.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/onenote_96x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_16x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_48x3.png)}.ms-BrandIcon--outlook.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/outlook_96x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_16x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_48x3.png)}.ms-BrandIcon--powerpoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/powerpoint_96x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_16x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_48x3.png)}.ms-BrandIcon--project.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/project_96x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_16x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_48x3.png)}.ms-BrandIcon--sharepoint.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/sharepoint_96x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_16x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_48x3.png)}.ms-BrandIcon--teams.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/teams_96x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_16x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_48x3.png)}.ms-BrandIcon--visio.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/visio_96x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon16{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_16x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon48{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_48x3.png)}.ms-BrandIcon--word.ms-BrandIcon--icon96{background-image:url(https://static2.sharepointonline.com/files/fabric/assets/brand-icons/product-fluent/png/word_96x3.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/accdb.png)}.ms-BrandIcon--accdb.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/accdb.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/archive.png)}.ms-BrandIcon--archive.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/archive.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/audio.png)}.ms-BrandIcon--audio.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/audio.png)}.ms-BrandIcon--code.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/code.png)}.ms-BrandIcon--code.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/code.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/csv.png)}.ms-BrandIcon--csv.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/csv.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docset.png)}.ms-BrandIcon--docset.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docset.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/docx.png)}.ms-BrandIcon--docx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/docx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/dotx.png)}.ms-BrandIcon--dotx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/dotx.png)}.ms-BrandIcon--email.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/email.png)}.ms-BrandIcon--email.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/email.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/exe.png)}.ms-BrandIcon--exe.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/exe.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/folder.png)}.ms-BrandIcon--folder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/folder.png)}.ms-BrandIcon--font.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/font.png)}.ms-BrandIcon--font.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/font.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/genericfile.png)}.ms-BrandIcon--genericfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/genericfile.png)}.ms-BrandIcon--html.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/html.png)}.ms-BrandIcon--html.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/html.png)}.ms-BrandIcon--link.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/link.png)}.ms-BrandIcon--link.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/link.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/listitem.png)}.ms-BrandIcon--listitem.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/listitem.png)}.ms-BrandIcon--model.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/model.png)}.ms-BrandIcon--model.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/model.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpp.png)}.ms-BrandIcon--mpp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpp.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/mpt.png)}.ms-BrandIcon--mpt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/mpt.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odp.png)}.ms-BrandIcon--odp.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odp.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ods.png)}.ms-BrandIcon--ods.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ods.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/odt.png)}.ms-BrandIcon--odt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/odt.png)}.ms-BrandIcon--one.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--one.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/onetoc.png)}.ms-BrandIcon--onetoc.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/onetoc.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pdf.png)}.ms-BrandIcon--pdf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pdf.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/photo.png)}.ms-BrandIcon--photo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/photo.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/potx.png)}.ms-BrandIcon--potx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/potx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/ppsx.png)}.ms-BrandIcon--ppsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/ppsx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pptx.png)}.ms-BrandIcon--pptx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pptx.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/pub.png)}.ms-BrandIcon--pub.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/pub.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/rtf.png)}.ms-BrandIcon--rtf.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/rtf.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sharedfolder.png)}.ms-BrandIcon--sharedfolder.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sharedfolder.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/spo.png)}.ms-BrandIcon--spo.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/spo.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/sysfile.png)}.ms-BrandIcon--sysfile.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/sysfile.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/txt.png)}.ms-BrandIcon--txt.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/txt.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vector.png)}.ms-BrandIcon--vector.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vector.png)}.ms-BrandIcon--video.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/video.png)}.ms-BrandIcon--video.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/video.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vsdx.png)}.ms-BrandIcon--vsdx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vsdx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vssx.png)}.ms-BrandIcon--vssx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vssx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/vstx.png)}.ms-BrandIcon--vstx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/vstx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xlsx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xltx.png)}.ms-BrandIcon--xltx.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xltx.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xml.png)}.ms-BrandIcon--xml.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xml.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xsn.png)}.ms-BrandIcon--xsn.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xsn.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/zip.png)}.ms-BrandIcon--zip.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/zip.png)}}.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96/xlsx.png)}@media only screen and (min-resolution:144dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_1.5x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_1.5x/xlsx.png)}}@media only screen and (min-resolution:192dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_2x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_2x/xlsx.png)}}@media only screen and (min-resolution:288dpi){.ms-BrandIcon--onepkg.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/one.png)}.ms-BrandIcon--onepkg.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/one.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon16{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/16_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon48{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/48_3x/xlsx.png)}.ms-BrandIcon--xls.ms-BrandIcon--icon96{background-image:url(https://spoprod-a.akamaihd.net/files/fabric/assets/item-types-fluent/96_3x/xlsx.png)}}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-bgColor-themeDark,.ms-bgColor-themeDark--hover:hover{background-color:#005a9e}.ms-bgColor-themeDarkAlt,.ms-bgColor-themeDarkAlt--hover:hover{background-color:#106ebe}.ms-bgColor-themeDarker,.ms-bgColor-themeDarker--hover:hover{background-color:#004578}.ms-bgColor-themePrimary,.ms-bgColor-themePrimary--hover:hover{background-color:#0078d4}.ms-bgColor-themeSecondary,.ms-bgColor-themeSecondary--hover:hover{background-color:#2b88d8}.ms-bgColor-themeTertiary,.ms-bgColor-themeTertiary--hover:hover{background-color:#71afe5}.ms-bgColor-themeLight,.ms-bgColor-themeLight--hover:hover{background-color:#c7e0f4}.ms-bgColor-themeLighter,.ms-bgColor-themeLighter--hover:hover{background-color:#deecf9}.ms-bgColor-themeLighterAlt,.ms-bgColor-themeLighterAlt--hover:hover{background-color:#eff6fc}.ms-borderColor-themeDark,.ms-borderColor-themeDark--hover:hover{border-color:#005a9e}.ms-borderColor-themeDarkAlt,.ms-borderColor-themeDarkAlt--hover:hover{border-color:#106ebe}.ms-borderColor-themeDarker,.ms-borderColor-themeDarker--hover:hover{border-color:#004578}.ms-borderColor-themePrimary,.ms-borderColor-themePrimary--hover:hover{border-color:#0078d4}.ms-borderColor-themeSecondary,.ms-borderColor-themeSecondary--hover:hover{border-color:#2b88d8}.ms-borderColor-themeTertiary,.ms-borderColor-themeTertiary--hover:hover{border-color:#71afe5}.ms-borderColor-themeLight,.ms-borderColor-themeLight--hover:hover{border-color:#c7e0f4}.ms-borderColor-themeLighter,.ms-borderColor-themeLighter--hover:hover{border-color:#deecf9}.ms-borderColor-themeLighterAlt,.ms-borderColor-themeLighterAlt--hover:hover{border-color:#eff6fc}.ms-fontColor-themeDarker,.ms-fontColor-themeDarker--hover:hover{color:#004578}.ms-fontColor-themeDark,.ms-fontColor-themeDark--hover:hover{color:#005a9e}.ms-fontColor-themeDarkAlt,.ms-fontColor-themeDarkAlt--hover:hover{color:#106ebe}.ms-fontColor-themePrimary,.ms-fontColor-themePrimary--hover:hover{color:#0078d4}.ms-fontColor-themeSecondary,.ms-fontColor-themeSecondary--hover:hover{color:#2b88d8}.ms-fontColor-themeTertiary,.ms-fontColor-themeTertiary--hover:hover{color:#71afe5}.ms-fontColor-themeLight,.ms-fontColor-themeLight--hover:hover{color:#c7e0f4}.ms-fontColor-themeLighter,.ms-fontColor-themeLighter--hover:hover{color:#deecf9}.ms-fontColor-themeLighterAlt,.ms-fontColor-themeLighterAlt--hover:hover{color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-neutralDark,.ms-bgColor-neutralDark--hover:hover{background-color:#201f1e}.ms-bgColor-neutralPrimary,.ms-bgColor-neutralPrimary--hover:hover{background-color:#323130}.ms-bgColor-neutralPrimaryAlt,.ms-bgColor-neutralPrimaryAlt--hover:hover{background-color:#3b3a39}.ms-bgColor-neutralSecondary,.ms-bgColor-neutralSecondary--hover:hover{background-color:#605e5c}.ms-bgColor-neutralSecondaryAlt,.ms-bgColor-neutralSecondaryAlt--hover:hover{background-color:#797775}.ms-bgColor-neutralTertiary,.ms-bgColor-neutralTertiary--hover:hover{background-color:#a19f9d}.ms-bgColor-neutralTertiaryAlt,.ms-bgColor-neutralTertiaryAlt--hover:hover{background-color:#c8c6c4}.ms-bgColor-neutralQuaternary,.ms-bgColor-neutralQuaternary--hover:hover{background-color:#d2d0ce}.ms-bgColor-neutralQuaternaryAlt,.ms-bgColor-neutralQuaternaryAlt--hover:hover{background-color:#e1dfdd}.ms-bgColor-neutralLight,.ms-bgColor-neutralLight--hover:hover{background-color:#edebe9}.ms-bgColor-neutralLighter,.ms-bgColor-neutralLighter--hover:hover{background-color:#f3f2f1}.ms-bgColor-neutralLighterAlt,.ms-bgColor-neutralLighterAlt--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-neutralDark,.ms-borderColor-neutralDark--hover:hover{border-color:#201f1e}.ms-borderColor-neutralPrimary,.ms-borderColor-neutralPrimary--hover:hover{border-color:#323130}.ms-borderColor-neutralPrimaryAlt,.ms-borderColor-neutralPrimaryAlt--hover:hover{border-color:#3b3a39}.ms-borderColor-neutralSecondary,.ms-borderColor-neutralSecondary--hover:hover{border-color:#605e5c}.ms-borderColor-neutralSecondaryAlt,.ms-borderColor-neutralSecondaryAlt--hover:hover{border-color:#797775}.ms-borderColor-neutralTertiary,.ms-borderColor-neutralTertiary--hover:hover{border-color:#a19f9d}.ms-borderColor-neutralTertiaryAlt,.ms-borderColor-neutralTertiaryAlt--hover:hover{border-color:#c8c6c4}.ms-borderColor-neutralQuaternary,.ms-borderColor-neutralQuaternary--hover:hover{border-color:#d2d0ce}.ms-borderColor-neutralQuaternaryAlt,.ms-borderColor-neutralQuaternaryAlt--hover:hover{border-color:#e1dfdd}.ms-borderColor-neutralLight,.ms-borderColor-neutralLight--hover:hover{border-color:#edebe9}.ms-borderColor-neutralLighter,.ms-borderColor-neutralLighter--hover:hover{border-color:#f3f2f1}.ms-borderColor-neutralLighterAlt,.ms-borderColor-neutralLighterAlt--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-neutralDark,.ms-fontColor-neutralDark--hover:hover{color:#201f1e}.ms-fontColor-neutralPrimary,.ms-fontColor-neutralPrimary--hover:hover{color:#323130}.ms-fontColor-neutralPrimaryAlt,.ms-fontColor-neutralPrimaryAlt--hover:hover{color:#3b3a39}.ms-fontColor-neutralSecondary,.ms-fontColor-neutralSecondary--hover:hover{color:#605e5c}.ms-fontColor-neutralSecondaryAlt,.ms-fontColor-neutralSecondaryAlt--hover:hover{color:#797775}.ms-fontColor-neutralTertiary,.ms-fontColor-neutralTertiary--hover:hover{color:#a19f9d}.ms-fontColor-neutralTertiaryAlt,.ms-fontColor-neutralTertiaryAlt--hover:hover{color:#c8c6c4}.ms-fontColor-neutralQuaternary,.ms-fontColor-neutralQuaternary--hover:hover{color:#d2d0ce}.ms-fontColor-neutralQuaternaryAlt,.ms-fontColor-neutralQuaternaryAlt--hover:hover{color:#e1dfdd}.ms-fontColor-neutralLight,.ms-fontColor-neutralLight--hover:hover{color:#edebe9}.ms-fontColor-neutralLighter,.ms-fontColor-neutralLighter--hover:hover{color:#f3f2f1}.ms-fontColor-neutralLighterAlt,.ms-fontColor-neutralLighterAlt--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-bgColor-yellow,.ms-bgColor-yellow--hover:hover{background-color:#ffb900}.ms-bgColor-yellowLight,.ms-bgColor-yellowLight--hover:hover{background-color:#fff100}.ms-bgColor-orange,.ms-bgColor-orange--hover:hover{background-color:#d83b01}.ms-bgColor-orangeLight,.ms-bgColor-orangeLight--hover:hover{background-color:#ea4300}.ms-bgColor-orangeLighter,.ms-bgColor-orangeLighter--hover:hover{background-color:#ff8c00}.ms-bgColor-redDark,.ms-bgColor-redDark--hover:hover{background-color:#a80000}.ms-bgColor-red,.ms-bgColor-red--hover:hover{background-color:#e81123}.ms-bgColor-magentaDark,.ms-bgColor-magentaDark--hover:hover{background-color:#5c005c}.ms-bgColor-magenta,.ms-bgColor-magenta--hover:hover{background-color:#b4009e}.ms-bgColor-magentaLight,.ms-bgColor-magentaLight--hover:hover{background-color:#e3008c}.ms-bgColor-purpleDark,.ms-bgColor-purpleDark--hover:hover{background-color:#32145a}.ms-bgColor-purple,.ms-bgColor-purple--hover:hover{background-color:#5c2d91}.ms-bgColor-purpleLight,.ms-bgColor-purpleLight--hover:hover{background-color:#b4a0ff}.ms-bgColor-blueDark,.ms-bgColor-blueDark--hover:hover{background-color:#002050}.ms-bgColor-blueMid,.ms-bgColor-blueMid--hover:hover{background-color:#00188f}.ms-bgColor-blue,.ms-bgColor-blue--hover:hover{background-color:#0078d4}.ms-bgColor-blueLight,.ms-bgColor-blueLight--hover:hover{background-color:#00bcf2}.ms-bgColor-tealDark,.ms-bgColor-tealDark--hover:hover{background-color:#004b50}.ms-bgColor-teal,.ms-bgColor-teal--hover:hover{background-color:#008272}.ms-bgColor-tealLight,.ms-bgColor-tealLight--hover:hover{background-color:#00b294}.ms-bgColor-greenDark,.ms-bgColor-greenDark--hover:hover{background-color:#004b1c}.ms-bgColor-green,.ms-bgColor-green--hover:hover{background-color:#107c10}.ms-bgColor-greenLight,.ms-bgColor-greenLight--hover:hover{background-color:#bad80a}.ms-borderColor-yellow,.ms-borderColor-yellow--hover:hover{border-color:#ffb900}.ms-borderColor-yellowLight,.ms-borderColor-yellowLight--hover:hover{border-color:#fff100}.ms-borderColor-orange,.ms-borderColor-orange--hover:hover{border-color:#d83b01}.ms-borderColor-orangeLight,.ms-borderColor-orangeLight--hover:hover{border-color:#ea4300}.ms-borderColor-orangeLighter,.ms-borderColor-orangeLighter--hover:hover{border-color:#ff8c00}.ms-borderColor-redDark,.ms-borderColor-redDark--hover:hover{border-color:#a80000}.ms-borderColor-red,.ms-borderColor-red--hover:hover{border-color:#e81123}.ms-borderColor-magentaDark,.ms-borderColor-magentaDark--hover:hover{border-color:#5c005c}.ms-borderColor-magenta,.ms-borderColor-magenta--hover:hover{border-color:#b4009e}.ms-borderColor-magentaLight,.ms-borderColor-magentaLight--hover:hover{border-color:#e3008c}.ms-borderColor-purpleDark,.ms-borderColor-purpleDark--hover:hover{border-color:#32145a}.ms-borderColor-purple,.ms-borderColor-purple--hover:hover{border-color:#5c2d91}.ms-borderColor-purpleLight,.ms-borderColor-purpleLight--hover:hover{border-color:#b4a0ff}.ms-borderColor-blueDark,.ms-borderColor-blueDark--hover:hover{border-color:#002050}.ms-borderColor-blueMid,.ms-borderColor-blueMid--hover:hover{border-color:#00188f}.ms-borderColor-blue,.ms-borderColor-blue--hover:hover{border-color:#0078d4}.ms-borderColor-blueLight,.ms-borderColor-blueLight--hover:hover{border-color:#00bcf2}.ms-borderColor-tealDark,.ms-borderColor-tealDark--hover:hover{border-color:#004b50}.ms-borderColor-teal,.ms-borderColor-teal--hover:hover{border-color:#008272}.ms-borderColor-tealLight,.ms-borderColor-tealLight--hover:hover{border-color:#00b294}.ms-borderColor-greenDark,.ms-borderColor-greenDark--hover:hover{border-color:#004b1c}.ms-borderColor-green,.ms-borderColor-green--hover:hover{border-color:#107c10}.ms-borderColor-greenLight,.ms-borderColor-greenLight--hover:hover{border-color:#bad80a}.ms-fontColor-yellow,.ms-fontColor-yellow--hover:hover{color:#ffb900}.ms-fontColor-yellowLight,.ms-fontColor-yellowLight--hover:hover{color:#fff100}.ms-fontColor-orange,.ms-fontColor-orange--hover:hover{color:#d83b01}.ms-fontColor-orangeLight,.ms-fontColor-orangeLight--hover:hover{color:#ea4300}.ms-fontColor-orangeLighter,.ms-fontColor-orangeLighter--hover:hover{color:#ff8c00}.ms-fontColor-redDark,.ms-fontColor-redDark--hover:hover{color:#a80000}.ms-fontColor-red,.ms-fontColor-red--hover:hover{color:#e81123}.ms-fontColor-magentaDark,.ms-fontColor-magentaDark--hover:hover{color:#5c005c}.ms-fontColor-magenta,.ms-fontColor-magenta--hover:hover{color:#b4009e}.ms-fontColor-magentaLight,.ms-fontColor-magentaLight--hover:hover{color:#e3008c}.ms-fontColor-purpleDark,.ms-fontColor-purpleDark--hover:hover{color:#32145a}.ms-fontColor-purple,.ms-fontColor-purple--hover:hover{color:#5c2d91}.ms-fontColor-purpleLight,.ms-fontColor-purpleLight--hover:hover{color:#b4a0ff}.ms-fontColor-blueDark,.ms-fontColor-blueDark--hover:hover{color:#002050}.ms-fontColor-blueMid,.ms-fontColor-blueMid--hover:hover{color:#00188f}.ms-fontColor-blue,.ms-fontColor-blue--hover:hover{color:#0078d4}.ms-fontColor-blueLight,.ms-fontColor-blueLight--hover:hover{color:#00bcf2}.ms-fontColor-tealDark,.ms-fontColor-tealDark--hover:hover{color:#004b50}.ms-fontColor-teal,.ms-fontColor-teal--hover:hover{color:#008272}.ms-fontColor-tealLight,.ms-fontColor-tealLight--hover:hover{color:#00b294}.ms-fontColor-greenDark,.ms-fontColor-greenDark--hover:hover{color:#004b1c}.ms-fontColor-green,.ms-fontColor-green--hover:hover{color:#107c10}.ms-fontColor-greenLight,.ms-fontColor-greenLight--hover:hover{color:#bad80a}.ms-bgColor-info,.ms-bgColor-info--hover:hover{background-color:#f3f2f1}.ms-bgColor-success,.ms-bgColor-success--hover:hover{background-color:#dff6dd}.ms-bgColor-severeWarning,.ms-bgColor-severeWarning--hover:hover{background-color:#fed9cc}.ms-bgColor-warning,.ms-bgColor-warning--hover:hover{background-color:#fff4ce}.ms-bgColor-error,.ms-bgColor-error--hover:hover{background-color:#fde7e9}.ms-fontColor-info,.ms-fontColor-info--hover:hover{color:#797775}.ms-fontColor-success,.ms-fontColor-success--hover:hover{color:#107c10}.ms-fontColor-alert,.ms-fontColor-alert--hover:hover{color:#d83b01}.ms-fontColor-warning,.ms-fontColor-warning--hover:hover{color:#797775}.ms-fontColor-severeWarning,.ms-fontColor-severeWarning--hover:hover{color:#d83b01}.ms-fontColor-error,.ms-fontColor-error--hover:hover{color:#a80000}.ms-bgColor-contrastBlackDisabled,.ms-bgColor-contrastBlackDisabled--hover:hover{background-color:#0f0}.ms-bgColor-contrastWhiteDisabled,.ms-bgColor-contrastWhiteDisabled--hover:hover{background-color:#600000}.ms-bgColor-contrastBlackSelected,.ms-bgColor-contrastBlackSelected--hover:hover{background-color:#1aebff}.ms-bgColor-contrastWhiteSelected,.ms-bgColor-contrastWhiteSelected--hover:hover{background-color:#37006e}.ms-fontColor-contrastBlackDisabled,.ms-fontColor-contrastBlackDisabled--hover:hover{color:#0f0}.ms-fontColor-contrastWhiteDisabled,.ms-fontColor-contrastWhiteDisabled--hover:hover{color:#600000}.ms-fontColor-contrastBlackSelected,.ms-fontColor-contrastBlackSelected--hover:hover{color:#1aebff}.ms-fontColor-contrastWhiteSelected,.ms-fontColor-contrastWhiteSelected--hover:hover{color:#37006e}.ms-borderColor-contrastBlackDisabled,.ms-borderColor-contrastBlackDisabled--hover:hover{border-color:#0f0}.ms-borderColor-contrastWhiteDisabled,.ms-borderColor-contrastWhiteDisabled--hover:hover{border-color:#600000}.ms-borderColor-contrastBlackSelected,.ms-borderColor-contrastBlackSelected--hover:hover{border-color:#1aebff}.ms-borderColor-contrastWhiteSelected,.ms-borderColor-contrastWhiteSelected--hover:hover{border-color:#37006e}.ms-bgColor-communicationShade30,.ms-bgColor-communicationShade30--hover:hover{background-color:#004578}.ms-bgColor-communicationShade20,.ms-bgColor-communicationShade20--hover:hover{background-color:#005a9e}.ms-bgColor-communicationShade10,.ms-bgColor-communicationShade10--hover:hover{background-color:#106ebe}.ms-bgColor-communicationPrimary,.ms-bgColor-communicationPrimary--hover:hover{background-color:#0078d4}.ms-bgColor-communicationTint10,.ms-bgColor-communicationTint10--hover:hover{background-color:#2b88d8}.ms-bgColor-communicationTint20,.ms-bgColor-communicationTint20--hover:hover{background-color:#c7e0f4}.ms-bgColor-communicationTint30,.ms-bgColor-communicationTint30--hover:hover{background-color:#deecf9}.ms-bgColor-communicationTint40,.ms-bgColor-communicationTint40--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-gray220,.ms-bgColor-gray220--hover:hover{background-color:#11100f}.ms-bgColor-gray210,.ms-bgColor-gray210--hover:hover{background-color:#161514}.ms-bgColor-gray200,.ms-bgColor-gray200--hover:hover{background-color:#1b1a19}.ms-bgColor-gray190,.ms-bgColor-gray190--hover:hover{background-color:#201f1e}.ms-bgColor-gray180,.ms-bgColor-gray180--hover:hover{background-color:#252423}.ms-bgColor-gray170,.ms-bgColor-gray170--hover:hover{background-color:#292827}.ms-bgColor-gray160,.ms-bgColor-gray160--hover:hover{background-color:#323130}.ms-bgColor-gray150,.ms-bgColor-gray150--hover:hover{background-color:#3b3a39}.ms-bgColor-gray140,.ms-bgColor-gray140--hover:hover{background-color:#484644}.ms-bgColor-gray130,.ms-bgColor-gray130--hover:hover{background-color:#605e5c}.ms-bgColor-gray120,.ms-bgColor-gray120--hover:hover{background-color:#797775}.ms-bgColor-gray110,.ms-bgColor-gray110--hover:hover{background-color:#8a8886}.ms-bgColor-gray100,.ms-bgColor-gray100--hover:hover{background-color:#979593}.ms-bgColor-gray90,.ms-bgColor-gray90--hover:hover{background-color:#a19f9d}.ms-bgColor-gray80,.ms-bgColor-gray80--hover:hover{background-color:#b3b0ad}.ms-bgColor-gray70,.ms-bgColor-gray70--hover:hover{background-color:#bebbb8}.ms-bgColor-gray60,.ms-bgColor-gray60--hover:hover{background-color:#c8c6c4}.ms-bgColor-gray50,.ms-bgColor-gray50--hover:hover{background-color:#d2d0ce}.ms-bgColor-gray40,.ms-bgColor-gray40--hover:hover{background-color:#e1dfdd}.ms-bgColor-gray30,.ms-bgColor-gray30--hover:hover{background-color:#edebe9}.ms-bgColor-gray20,.ms-bgColor-gray20--hover:hover{background-color:#f3f2f1}.ms-bgColor-gray10,.ms-bgColor-gray10--hover:hover{background-color:#faf9f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-sharedPinkRed10,.ms-bgColor-sharedPinkRed10--hover:hover{background-color:#750b1c}.ms-bgColor-sharedRed20,.ms-bgColor-sharedRed20--hover:hover{background-color:#a4262c}.ms-bgColor-sharedRed10,.ms-bgColor-sharedRed10--hover:hover{background-color:#d13438}.ms-bgColor-sharedRedOrange20,.ms-bgColor-sharedRedOrange20--hover:hover{background-color:#603d30}.ms-bgColor-sharedRedOrange10,.ms-bgColor-sharedRedOrange10--hover:hover{background-color:#da3b01}.ms-bgColor-sharedOrange30,.ms-bgColor-sharedOrange30--hover:hover{background-color:#8e562e}.ms-bgColor-sharedOrange20,.ms-bgColor-sharedOrange20--hover:hover{background-color:#ca5010}.ms-bgColor-sharedOrange10,.ms-bgColor-sharedOrange10--hover:hover{background-color:#fa4}.ms-bgColor-sharedYellow10,.ms-bgColor-sharedYellow10--hover:hover{background-color:#fce100}.ms-bgColor-sharedOrangeYellow20,.ms-bgColor-sharedOrangeYellow20--hover:hover{background-color:#986f0b}.ms-bgColor-sharedOrangeYellow10,.ms-bgColor-sharedOrangeYellow10--hover:hover{background-color:#c19c00}.ms-bgColor-sharedYellowGreen10,.ms-bgColor-sharedYellowGreen10--hover:hover{background-color:#8cbd18}.ms-bgColor-sharedGreen20,.ms-bgColor-sharedGreen20--hover:hover{background-color:#0b6a0b}.ms-bgColor-sharedGreen10,.ms-bgColor-sharedGreen10--hover:hover{background-color:#498205}.ms-bgColor-sharedGreenCyan10,.ms-bgColor-sharedGreenCyan10--hover:hover{background-color:#00ad56}.ms-bgColor-sharedCyan40,.ms-bgColor-sharedCyan40--hover:hover{background-color:#005e50}.ms-bgColor-sharedCyan30,.ms-bgColor-sharedCyan30--hover:hover{background-color:#005b70}.ms-bgColor-sharedCyan20,.ms-bgColor-sharedCyan20--hover:hover{background-color:#038387}.ms-bgColor-sharedCyan10,.ms-bgColor-sharedCyan10--hover:hover{background-color:#00b7c3}.ms-bgColor-sharedCyanBlue20,.ms-bgColor-sharedCyanBlue20--hover:hover{background-color:#004e8c}.ms-bgColor-sharedCyanBlue10,.ms-bgColor-sharedCyanBlue10--hover:hover{background-color:#0078d4}.ms-bgColor-sharedBlue10,.ms-bgColor-sharedBlue10--hover:hover{background-color:#4f6bed}.ms-bgColor-sharedBlueMagenta40,.ms-bgColor-sharedBlueMagenta40--hover:hover{background-color:#373277}.ms-bgColor-sharedBlueMagenta30,.ms-bgColor-sharedBlueMagenta30--hover:hover{background-color:#5c2e91}.ms-bgColor-sharedBlueMagenta20,.ms-bgColor-sharedBlueMagenta20--hover:hover{background-color:#8764b8}.ms-bgColor-sharedBlueMagenta10,.ms-bgColor-sharedBlueMagenta10--hover:hover{background-color:#8378de}.ms-bgColor-sharedMagenta20,.ms-bgColor-sharedMagenta20--hover:hover{background-color:#881798}.ms-bgColor-sharedMagenta10,.ms-bgColor-sharedMagenta10--hover:hover{background-color:#c239b3}.ms-bgColor-sharedMagentaPink20,.ms-bgColor-sharedMagentaPink20--hover:hover{background-color:#9b0062}.ms-bgColor-sharedMagentaPink10,.ms-bgColor-sharedMagentaPink10--hover:hover{background-color:#e3008c}.ms-bgColor-sharedGray40,.ms-bgColor-sharedGray40--hover:hover{background-color:#393939}.ms-bgColor-sharedGray30,.ms-bgColor-sharedGray30--hover:hover{background-color:#7a7574}.ms-bgColor-sharedGray20,.ms-bgColor-sharedGray20--hover:hover{background-color:#69797e}.ms-bgColor-sharedGray10,.ms-bgColor-sharedGray10--hover:hover{background-color:#a0aeb2}.ms-borderColor-communicationShade30,.ms-borderColor-communicationShade30--hover:hover{border-color:#004578}.ms-borderColor-communicationShade20,.ms-borderColor-communicationShade20--hover:hover{border-color:#005a9e}.ms-borderColor-communicationShade10,.ms-borderColor-communicationShade10--hover:hover{border-color:#106ebe}.ms-borderColor-communicationPrimary,.ms-borderColor-communicationPrimary--hover:hover{border-color:#0078d4}.ms-borderColor-communicationTint10,.ms-borderColor-communicationTint10--hover:hover{border-color:#2b88d8}.ms-borderColor-communicationTint20,.ms-borderColor-communicationTint20--hover:hover{border-color:#c7e0f4}.ms-borderColor-communicationTint30,.ms-borderColor-communicationTint30--hover:hover{border-color:#deecf9}.ms-borderColor-communicationTint40,.ms-borderColor-communicationTint40--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-gray220,.ms-borderColor-gray220--hover:hover{border-color:#11100f}.ms-borderColor-gray210,.ms-borderColor-gray210--hover:hover{border-color:#161514}.ms-borderColor-gray200,.ms-borderColor-gray200--hover:hover{border-color:#1b1a19}.ms-borderColor-gray190,.ms-borderColor-gray190--hover:hover{border-color:#201f1e}.ms-borderColor-gray180,.ms-borderColor-gray180--hover:hover{border-color:#252423}.ms-borderColor-gray170,.ms-borderColor-gray170--hover:hover{border-color:#292827}.ms-borderColor-gray160,.ms-borderColor-gray160--hover:hover{border-color:#323130}.ms-borderColor-gray150,.ms-borderColor-gray150--hover:hover{border-color:#3b3a39}.ms-borderColor-gray140,.ms-borderColor-gray140--hover:hover{border-color:#484644}.ms-borderColor-gray130,.ms-borderColor-gray130--hover:hover{border-color:#605e5c}.ms-borderColor-gray120,.ms-borderColor-gray120--hover:hover{border-color:#797775}.ms-borderColor-gray110,.ms-borderColor-gray110--hover:hover{border-color:#8a8886}.ms-borderColor-gray100,.ms-borderColor-gray100--hover:hover{border-color:#979593}.ms-borderColor-gray90,.ms-borderColor-gray90--hover:hover{border-color:#a19f9d}.ms-borderColor-gray80,.ms-borderColor-gray80--hover:hover{border-color:#b3b0ad}.ms-borderColor-gray70,.ms-borderColor-gray70--hover:hover{border-color:#bebbb8}.ms-borderColor-gray60,.ms-borderColor-gray60--hover:hover{border-color:#c8c6c4}.ms-borderColor-gray50,.ms-borderColor-gray50--hover:hover{border-color:#d2d0ce}.ms-borderColor-gray40,.ms-borderColor-gray40--hover:hover{border-color:#e1dfdd}.ms-borderColor-gray30,.ms-borderColor-gray30--hover:hover{border-color:#edebe9}.ms-borderColor-gray20,.ms-borderColor-gray20--hover:hover{border-color:#f3f2f1}.ms-borderColor-gray10,.ms-borderColor-gray10--hover:hover{border-color:#faf9f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-sharedPinkRed10,.ms-borderColor-sharedPinkRed10--hover:hover{border-color:#750b1c}.ms-borderColor-sharedRed20,.ms-borderColor-sharedRed20--hover:hover{border-color:#a4262c}.ms-borderColor-sharedRed10,.ms-borderColor-sharedRed10--hover:hover{border-color:#d13438}.ms-borderColor-sharedRedOrange20,.ms-borderColor-sharedRedOrange20--hover:hover{border-color:#603d30}.ms-borderColor-sharedRedOrange10,.ms-borderColor-sharedRedOrange10--hover:hover{border-color:#da3b01}.ms-borderColor-sharedOrange30,.ms-borderColor-sharedOrange30--hover:hover{border-color:#8e562e}.ms-borderColor-sharedOrange20,.ms-borderColor-sharedOrange20--hover:hover{border-color:#ca5010}.ms-borderColor-sharedOrange10,.ms-borderColor-sharedOrange10--hover:hover{border-color:#fa4}.ms-borderColor-sharedYellow10,.ms-borderColor-sharedYellow10--hover:hover{border-color:#fce100}.ms-borderColor-sharedOrangeYellow20,.ms-borderColor-sharedOrangeYellow20--hover:hover{border-color:#986f0b}.ms-borderColor-sharedOrangeYellow10,.ms-borderColor-sharedOrangeYellow10--hover:hover{border-color:#c19c00}.ms-borderColor-sharedYellowGreen10,.ms-borderColor-sharedYellowGreen10--hover:hover{border-color:#8cbd18}.ms-borderColor-sharedGreen20,.ms-borderColor-sharedGreen20--hover:hover{border-color:#0b6a0b}.ms-borderColor-sharedGreen10,.ms-borderColor-sharedGreen10--hover:hover{border-color:#498205}.ms-borderColor-sharedGreenCyan10,.ms-borderColor-sharedGreenCyan10--hover:hover{border-color:#00ad56}.ms-borderColor-sharedCyan40,.ms-borderColor-sharedCyan40--hover:hover{border-color:#005e50}.ms-borderColor-sharedCyan30,.ms-borderColor-sharedCyan30--hover:hover{border-color:#005b70}.ms-borderColor-sharedCyan20,.ms-borderColor-sharedCyan20--hover:hover{border-color:#038387}.ms-borderColor-sharedCyan10,.ms-borderColor-sharedCyan10--hover:hover{border-color:#00b7c3}.ms-borderColor-sharedCyanBlue20,.ms-borderColor-sharedCyanBlue20--hover:hover{border-color:#004e8c}.ms-borderColor-sharedCyanBlue10,.ms-borderColor-sharedCyanBlue10--hover:hover{border-color:#0078d4}.ms-borderColor-sharedBlue10,.ms-borderColor-sharedBlue10--hover:hover{border-color:#4f6bed}.ms-borderColor-sharedBlueMagenta40,.ms-borderColor-sharedBlueMagenta40--hover:hover{border-color:#373277}.ms-borderColor-sharedBlueMagenta30,.ms-borderColor-sharedBlueMagenta30--hover:hover{border-color:#5c2e91}.ms-borderColor-sharedBlueMagenta20,.ms-borderColor-sharedBlueMagenta20--hover:hover{border-color:#8764b8}.ms-borderColor-sharedBlueMagenta10,.ms-borderColor-sharedBlueMagenta10--hover:hover{border-color:#8378de}.ms-borderColor-sharedMagenta20,.ms-borderColor-sharedMagenta20--hover:hover{border-color:#881798}.ms-borderColor-sharedMagenta10,.ms-borderColor-sharedMagenta10--hover:hover{border-color:#c239b3}.ms-borderColor-sharedMagentaPink20,.ms-borderColor-sharedMagentaPink20--hover:hover{border-color:#9b0062}.ms-borderColor-sharedMagentaPink10,.ms-borderColor-sharedMagentaPink10--hover:hover{border-color:#e3008c}.ms-borderColor-sharedGray40,.ms-borderColor-sharedGray40--hover:hover{border-color:#393939}.ms-borderColor-sharedGray30,.ms-borderColor-sharedGray30--hover:hover{border-color:#7a7574}.ms-borderColor-sharedGray20,.ms-borderColor-sharedGray20--hover:hover{border-color:#69797e}.ms-borderColor-sharedGray10,.ms-borderColor-sharedGray10--hover:hover{border-color:#a0aeb2}.ms-fontColor-communicationShade30,.ms-fontColor-communicationShade30--hover:hover{color:#004578}.ms-fontColor-communicationShade20,.ms-fontColor-communicationShade20--hover:hover{color:#005a9e}.ms-fontColor-communicationShade10,.ms-fontColor-communicationShade10--hover:hover{color:#106ebe}.ms-fontColor-communicationPrimary,.ms-fontColor-communicationPrimary--hover:hover{color:#0078d4}.ms-fontColor-communicationTint10,.ms-fontColor-communicationTint10--hover:hover{color:#2b88d8}.ms-fontColor-communicationTint20,.ms-fontColor-communicationTint20--hover:hover{color:#c7e0f4}.ms-fontColor-communicationTint30,.ms-fontColor-communicationTint30--hover:hover{color:#deecf9}.ms-fontColor-communicationTint40,.ms-fontColor-communicationTint40--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-gray220,.ms-fontColor-gray220--hover:hover{color:#11100f}.ms-fontColor-gray210,.ms-fontColor-gray210--hover:hover{color:#161514}.ms-fontColor-gray200,.ms-fontColor-gray200--hover:hover{color:#1b1a19}.ms-fontColor-gray190,.ms-fontColor-gray190--hover:hover{color:#201f1e}.ms-fontColor-gray180,.ms-fontColor-gray180--hover:hover{color:#252423}.ms-fontColor-gray170,.ms-fontColor-gray170--hover:hover{color:#292827}.ms-fontColor-gray160,.ms-fontColor-gray160--hover:hover{color:#323130}.ms-fontColor-gray150,.ms-fontColor-gray150--hover:hover{color:#3b3a39}.ms-fontColor-gray140,.ms-fontColor-gray140--hover:hover{color:#484644}.ms-fontColor-gray130,.ms-fontColor-gray130--hover:hover{color:#605e5c}.ms-fontColor-gray120,.ms-fontColor-gray120--hover:hover{color:#797775}.ms-fontColor-gray110,.ms-fontColor-gray110--hover:hover{color:#8a8886}.ms-fontColor-gray100,.ms-fontColor-gray100--hover:hover{color:#979593}.ms-fontColor-gray90,.ms-fontColor-gray90--hover:hover{color:#a19f9d}.ms-fontColor-gray80,.ms-fontColor-gray80--hover:hover{color:#b3b0ad}.ms-fontColor-gray70,.ms-fontColor-gray70--hover:hover{color:#bebbb8}.ms-fontColor-gray60,.ms-fontColor-gray60--hover:hover{color:#c8c6c4}.ms-fontColor-gray50,.ms-fontColor-gray50--hover:hover{color:#d2d0ce}.ms-fontColor-gray40,.ms-fontColor-gray40--hover:hover{color:#e1dfdd}.ms-fontColor-gray30,.ms-fontColor-gray30--hover:hover{color:#edebe9}.ms-fontColor-gray20,.ms-fontColor-gray20--hover:hover{color:#f3f2f1}.ms-fontColor-gray10,.ms-fontColor-gray10--hover:hover{color:#faf9f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-sharedPinkRed10,.ms-fontColor-sharedPinkRed10--hover:hover{color:#750b1c}.ms-fontColor-sharedRed20,.ms-fontColor-sharedRed20--hover:hover{color:#a4262c}.ms-fontColor-sharedRed10,.ms-fontColor-sharedRed10--hover:hover{color:#d13438}.ms-fontColor-sharedRedOrange20,.ms-fontColor-sharedRedOrange20--hover:hover{color:#603d30}.ms-fontColor-sharedRedOrange10,.ms-fontColor-sharedRedOrange10--hover:hover{color:#da3b01}.ms-fontColor-sharedOrange30,.ms-fontColor-sharedOrange30--hover:hover{color:#8e562e}.ms-fontColor-sharedOrange20,.ms-fontColor-sharedOrange20--hover:hover{color:#ca5010}.ms-fontColor-sharedOrange10,.ms-fontColor-sharedOrange10--hover:hover{color:#fa4}.ms-fontColor-sharedYellow10,.ms-fontColor-sharedYellow10--hover:hover{color:#fce100}.ms-fontColor-sharedOrangeYellow20,.ms-fontColor-sharedOrangeYellow20--hover:hover{color:#986f0b}.ms-fontColor-sharedOrangeYellow10,.ms-fontColor-sharedOrangeYellow10--hover:hover{color:#c19c00}.ms-fontColor-sharedYellowGreen10,.ms-fontColor-sharedYellowGreen10--hover:hover{color:#8cbd18}.ms-fontColor-sharedGreen20,.ms-fontColor-sharedGreen20--hover:hover{color:#0b6a0b}.ms-fontColor-sharedGreen10,.ms-fontColor-sharedGreen10--hover:hover{color:#498205}.ms-fontColor-sharedGreenCyan10,.ms-fontColor-sharedGreenCyan10--hover:hover{color:#00ad56}.ms-fontColor-sharedCyan40,.ms-fontColor-sharedCyan40--hover:hover{color:#005e50}.ms-fontColor-sharedCyan30,.ms-fontColor-sharedCyan30--hover:hover{color:#005b70}.ms-fontColor-sharedCyan20,.ms-fontColor-sharedCyan20--hover:hover{color:#038387}.ms-fontColor-sharedCyan10,.ms-fontColor-sharedCyan10--hover:hover{color:#00b7c3}.ms-fontColor-sharedCyanBlue20,.ms-fontColor-sharedCyanBlue20--hover:hover{color:#004e8c}.ms-fontColor-sharedCyanBlue10,.ms-fontColor-sharedCyanBlue10--hover:hover{color:#0078d4}.ms-fontColor-sharedBlue10,.ms-fontColor-sharedBlue10--hover:hover{color:#4f6bed}.ms-fontColor-sharedBlueMagenta40,.ms-fontColor-sharedBlueMagenta40--hover:hover{color:#373277}.ms-fontColor-sharedBlueMagenta30,.ms-fontColor-sharedBlueMagenta30--hover:hover{color:#5c2e91}.ms-fontColor-sharedBlueMagenta20,.ms-fontColor-sharedBlueMagenta20--hover:hover{color:#8764b8}.ms-fontColor-sharedBlueMagenta10,.ms-fontColor-sharedBlueMagenta10--hover:hover{color:#8378de}.ms-fontColor-sharedMagenta20,.ms-fontColor-sharedMagenta20--hover:hover{color:#881798}.ms-fontColor-sharedMagenta10,.ms-fontColor-sharedMagenta10--hover:hover{color:#c239b3}.ms-fontColor-sharedMagentaPink20,.ms-fontColor-sharedMagentaPink20--hover:hover{color:#9b0062}.ms-fontColor-sharedMagentaPink10,.ms-fontColor-sharedMagentaPink10--hover:hover{color:#e3008c}.ms-fontColor-sharedGray40,.ms-fontColor-sharedGray40--hover:hover{color:#393939}.ms-fontColor-sharedGray30,.ms-fontColor-sharedGray30--hover:hover{color:#7a7574}.ms-fontColor-sharedGray20,.ms-fontColor-sharedGray20--hover:hover{color:#69797e}.ms-fontColor-sharedGray10,.ms-fontColor-sharedGray10--hover:hover{color:#a0aeb2}.ms-depth-0{box-shadow:0 0 0 0 transparent}.ms-depth-4{box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.132),0 .3px .9px 0 rgba(0,0,0,.108)}.ms-depth-8{box-shadow:0 3.2px 7.2px 0 rgba(0,0,0,.132),0 .6px 1.8px 0 rgba(0,0,0,.108)}.ms-depth-16{box-shadow:0 6.4px 14.4px 0 rgba(0,0,0,.132),0 1.2px 3.6px 0 rgba(0,0,0,.108)}.ms-depth-64{box-shadow:0 25.6px 57.6px 0 rgba(0,0,0,.22),0 4.8px 14.4px 0 rgba(0,0,0,.18)}.ms-fontSize-68{font-size:68px}.ms-fontSize-42{font-size:42px}.ms-fontSize-32{font-size:32px}.ms-fontSize-28{font-size:28px}.ms-fontSize-24{font-size:24px}.ms-fontSize-20{font-size:20px}.ms-fontSize-18{font-size:18px}.ms-fontSize-16{font-size:16px}.ms-fontSize-14{font-size:14px}.ms-fontSize-12{font-size:12px}.ms-fontSize-10{font-size:10px}.ms-fontWeight-regular{font-weight:400}.ms-fontWeight-semibold{font-weight:600}.ms-fontWeight-bold{font-weight:700}.ms-font-su{font-size:42px;font-weight:100}.ms-font-xxl{font-size:28px;font-weight:100}.ms-font-xl-plus{font-size:24px;font-weight:100}.ms-font-xl{font-size:21px;font-weight:100}.ms-font-l{font-size:17px;font-weight:300}.ms-font-m-plus{font-size:15px;font-weight:400}.ms-font-m{font-size:14px;font-weight:400}.ms-font-s-plus{font-size:13px;font-weight:400}.ms-font-s{font-size:12px;font-weight:400}.ms-font-xs{font-size:11px;font-weight:400}.ms-font-mi{font-size:10px;font-weight:600}.ms-fontWeight-light{font-weight:100}.ms-fontWeight-semilight{font-weight:300}.ms-fontSize-su{font-size:42px}.ms-fontSize-xxl{font-size:28px}.ms-fontSize-xlPlus{font-size:24px}.ms-fontSize-xl{font-size:21px}.ms-fontSize-l{font-size:17px}.ms-fontSize-mPlus{font-size:15px}.ms-fontSize-m{font-size:14px}.ms-fontSize-sPlus{font-size:13px}.ms-fontSize-s{font-size:12px}.ms-fontSize-xs{font-size:11px}.ms-fontSize-mi{font-size:10px}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Arabic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-arabic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Cyrillic)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-cyrillic/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (East European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-easteuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Greek)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-greek/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Hebrew)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-hebrew/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (Vietnamese)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-vietnamese/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Segoe UI Web (West European)';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/segoeui-westeuropean/segoeui-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-light.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semilight.woff) format('woff');font-weight:300;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-regular.woff) format('woff');font-weight:400;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-semibold.woff) format('woff');font-weight:600;font-style:normal}@font-face{font-family:'Selawik Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/selawik/selawik-bold.woff) format('woff');font-weight:700;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format('woff');font-weight:100;font-style:normal}@font-face{font-family:'Leelawadee UI Web';src:url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format('woff2'),url(https://static2.sharepointonline.com/files/fabric/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format('woff');font-weight:600;font-style:normal}.ms-Grid{box-sizing:border-box;zoom:1;padding:0 8px}.ms-Grid::after,.ms-Grid::before{display:table;content:'';line-height:0}.ms-Grid::after{clear:both}.ms-Grid-row{margin:0 -8px;box-sizing:border-box;zoom:1}.ms-Grid-row::after,.ms-Grid-row::before{display:table;content:'';line-height:0}.ms-Grid-row::after{clear:both}.ms-Grid-col{position:relative;min-height:1px;padding-left:8px;padding-right:8px;box-sizing:border-box}[dir=ltr] .ms-Grid-col{float:left}[dir=rtl] .ms-Grid-col{float:right}.ms-Grid-col .ms-Grid{padding:0}.ms-Icon{display:inline-block;font-family:FabricMDL2Icons;font-style:normal;font-weight:400;speak:none}.ms-Icon--circle{margin:0 .5em 0 0;position:relative;display:inline-block;font-size:1rem;width:1em;height:1em;padding:0;text-align:left}[dir=rtl] .ms-Icon--circle{margin:0 0 0 .5em}.ms-Icon--circle::after,.ms-Icon--circle::before{line-height:1;font-size:inherit}.ms-Icon--circle::before{display:block;width:100%;height:100%;margin:0;padding:0;position:absolute}.ms-Icon--circle::after{content:'\\\\e000';position:absolute;top:0;left:0;transform:scale(2);transform-origin:50% 50%;z-index:0}.ms-Icon--xs{font-size:10px}.ms-Icon--s{font-size:12px}.ms-Icon--m{font-size:16px}.ms-Icon--l{font-size:20px}.ms-Icon--12PointStar::before{content:'ï”…'}.ms-Icon--6PointStar::before{content:''}.ms-Icon--AADLogo::before{content:''}.ms-Icon--Accept::before{content:''}.ms-Icon--AccessibiltyChecker::before{content:'ï µ'}.ms-Icon--AccessLogo::before{content:''}.ms-Icon--AccessLogoFill::before{content:''}.ms-Icon--AccountActivity::before{content:'î¿´'}.ms-Icon--AccountBrowser::before{content:'ï™’'}.ms-Icon--AccountManagement::before{content:'ï•œ'}.ms-Icon--Accounts::before{content:'î¤'}.ms-Icon--ActionCenter::before{content:''}.ms-Icon--ActivateOrders::before{content:'î¿ '}.ms-Icon--ActivityFeed::before{content:'ï–'}.ms-Icon--Add::before{content:'îœ'}.ms-Icon--AddBookmark::before{content:'ï–·'}.ms-Icon--AddEvent::before{content:''}.ms-Icon--AddFavorite::before{content:''}.ms-Icon--AddFavoriteFill::before{content:''}.ms-Icon--AddFriend::before{content:''}.ms-Icon--AddGroup::before{content:''}.ms-Icon--AddHome::before{content:'ï…»'}.ms-Icon--AddIn::before{content:'ïµ'}.ms-Icon--AddLink::before{content:'îž'}.ms-Icon--AddNotes::before{content:'î«£'}.ms-Icon--AddOnlineMeeting::before{content:''}.ms-Icon--AddPhone::before{content:''}.ms-Icon--AddReaction::before{content:'ï¡'}.ms-Icon--AddSpaceAfter::before{content:'îŸ'}.ms-Icon--AddSpaceBefore::before{content:'îž'}.ms-Icon--AddTo::before{content:''}.ms-Icon--AddToShoppingList::before{content:''}.ms-Icon--AddWork::before{content:'ï…¼'}.ms-Icon--Admin::before{content:''}.ms-Icon--AdminALogo32::before{content:'ï’º'}.ms-Icon--AdminALogoFill32::before{content:'ï’»'}.ms-Icon--AdminALogoInverse32::before{content:''}.ms-Icon--AdminCLogoInverse32::before{content:''}.ms-Icon--AdminDLogoInverse32::before{content:''}.ms-Icon--AdminELogoInverse32::before{content:'îµ'}.ms-Icon--AdminLLogoInverse32::before{content:'îµ®'}.ms-Icon--AdminMLogoInverse32::before{content:''}.ms-Icon--AdminOLogoInverse32::before{content:'îµ°'}.ms-Icon--AdminPLogoInverse32::before{content:'îµ±'}.ms-Icon--AdminSLogoInverse32::before{content:'îµ²'}.ms-Icon--AdminYLogoInverse32::before{content:'îµ³'}.ms-Icon--Airplane::before{content:''}.ms-Icon--AirplaneSolid::before{content:'îŒ'}.ms-Icon--AirTickets::before{content:''}.ms-Icon--AlarmClock::before{content:''}.ms-Icon--Album::before{content:'îž«'}.ms-Icon--AlbumRemove::before{content:'î±¢'}.ms-Icon--AlertSettings::before{content:''}.ms-Icon--AlertSolid::before{content:''}.ms-Icon--AlignCenter::before{content:''}.ms-Icon--AlignHorizontalCenter::before{content:'ï“´'}.ms-Icon--AlignHorizontalLeft::before{content:''}.ms-Icon--AlignHorizontalRight::before{content:''}.ms-Icon--AlignJustify::before{content:''}.ms-Icon--AlignLeft::before{content:''}.ms-Icon--AlignRight::before{content:''}.ms-Icon--AlignVerticalBottom::before{content:''}.ms-Icon--AlignVerticalCenter::before{content:'ï“·'}.ms-Icon--AlignVerticalTop::before{content:''}.ms-Icon--AllApps::before{content:'îœ'}[dir=rtl] .ms-Icon--AllApps::before{content:'î©€'}.ms-Icon--AllAppsMirrored::before{content:'î©€'}[dir=rtl] .ms-Icon--AllAppsMirrored::before{content:'îœ'}.ms-Icon--AllCurrency::before{content:''}.ms-Icon--AltText::before{content:''}.ms-Icon--AnalyticsLogo::before{content:''}.ms-Icon--AnalyticsQuery::before{content:''}.ms-Icon--AnalyticsReport::before{content:''}.ms-Icon--AnalyticsView::before{content:'ï—±'}.ms-Icon--AnchorLock::before{content:''}.ms-Icon--Annotation::before{content:''}.ms-Icon--AppIconDefault::before{content:''}.ms-Icon--AppIconDefaultAdd::before{content:'î¿š'}.ms-Icon--AppIconDefaultList::before{content:'î¿ž'}.ms-Icon--Archive::before{content:''}.ms-Icon--ArchiveUndo::before{content:''}.ms-Icon--AreaChart::before{content:''}.ms-Icon--ArrangeBringForward::before{content:''}.ms-Icon--ArrangeBringToFront::before{content:''}.ms-Icon--ArrangeByFrom::before{content:''}.ms-Icon--ArrangeSendBackward::before{content:''}.ms-Icon--ArrangeSendToBack::before{content:''}.ms-Icon--Arrivals::before{content:''}.ms-Icon--ArrowDownRight8::before{content:''}[dir=rtl] .ms-Icon--ArrowDownRight8::before{content:'î»°'}.ms-Icon--ArrowDownRightMirrored8::before{content:'î»°'}[dir=rtl] .ms-Icon--ArrowDownRightMirrored8::before{content:''}.ms-Icon--ArrowTallDownLeft::before{content:''}.ms-Icon--ArrowTallDownRight::before{content:'ï‹€'}.ms-Icon--ArrowTallUpLeft::before{content:''}.ms-Icon--ArrowTallUpRight::before{content:''}.ms-Icon--ArrowUpRight::before{content:'ï©'}.ms-Icon--ArrowUpRight8::before{content:'î»”'}[dir=rtl] .ms-Icon--ArrowUpRight8::before{content:''}.ms-Icon--ArrowUpRightMirrored8::before{content:''}[dir=rtl] .ms-Icon--ArrowUpRightMirrored8::before{content:'î»”'}.ms-Icon--Articles::before{content:'î«'}.ms-Icon--Ascending::before{content:'î·€'}.ms-Icon--AspectRatio::before{content:'îž™'}.ms-Icon--AssessmentGroup::before{content:''}.ms-Icon--AssessmentGroupTemplate::before{content:''}.ms-Icon--AssetLibrary::before{content:''}.ms-Icon--Assign::before{content:''}.ms-Icon--Asterisk::before{content:''}.ms-Icon--AsteriskSolid::before{content:'ï'}.ms-Icon--ATPLogo::before{content:'î¾…'}.ms-Icon--Attach::before{content:''}.ms-Icon--AustralianRules::before{content:'î¹°'}.ms-Icon--AuthenticatorApp::before{content:'ïš±'}.ms-Icon--AutoDeploySettings::before{content:'ïº'}.ms-Icon--AutoEnhanceOff::before{content:''}.ms-Icon--AutoEnhanceOn::before{content:'îž'}.ms-Icon--AutoFillTemplate::before{content:''}.ms-Icon--AutoFitContents::before{content:'î¨'}.ms-Icon--AutoFitWindow::before{content:'î©'}.ms-Icon--AutoHeight::before{content:'ï”’'}.ms-Icon--AutomateFlow::before{content:'îµ'}.ms-Icon--AutoRacing::before{content:''}.ms-Icon--AwayStatus::before{content:''}.ms-Icon--AzureAPIManagement::before{content:'ï¿'}.ms-Icon--AzureKeyVault::before{content:''}.ms-Icon--AzureLogo::before{content:'îª'}.ms-Icon--AzureServiceEndpoint::before{content:''}.ms-Icon--Back::before{content:''}.ms-Icon--BackgroundColor::before{content:'ï«'}.ms-Icon--Backlog::before{content:''}.ms-Icon--BacklogBoard::before{content:'ï‘„'}.ms-Icon--BacklogList::before{content:'ïš¿'}.ms-Icon--BackToWindow::before{content:''}.ms-Icon--Badge::before{content:'î°›'}.ms-Icon--Balloons::before{content:'îµ¾'}.ms-Icon--Bank::before{content:'î ¥'}.ms-Icon--BankSolid::before{content:'ï'}.ms-Icon--BarChart4::before{content:''}.ms-Icon--BarChartHorizontal::before{content:''}.ms-Icon--BarChartVertical::before{content:''}.ms-Icon--BarChartVerticalEdit::before{content:'ï¢'}.ms-Icon--BarChartVerticalFill::before{content:'ï °'}.ms-Icon--BarChartVerticalFilter::before{content:'ï¾'}.ms-Icon--BarChartVerticalFilterSolid::before{content:'ï¿'}.ms-Icon--Baseball::before{content:'î¬ '}.ms-Icon--BeerMug::before{content:'ï’ž'}.ms-Icon--BIDashboard::before{content:''}.ms-Icon--BidiLtr::before{content:''}.ms-Icon--BidiRtl::before{content:''}.ms-Icon--BingLogo::before{content:'î«'}.ms-Icon--BirthdayCake::before{content:'î¾'}.ms-Icon--BlockContact::before{content:''}.ms-Icon--Blocked::before{content:''}.ms-Icon--Blocked12::before{content:''}.ms-Icon--Blocked2::before{content:''}.ms-Icon--Blocked2Solid::before{content:''}.ms-Icon--BlockedSite::before{content:''}.ms-Icon--BlockedSiteSolid12::before{content:''}.ms-Icon--BlockedSolid::before{content:'ï”±'}.ms-Icon--Blog::before{content:''}.ms-Icon--BlowingSnow::before{content:''}.ms-Icon--Blur::before{content:''}.ms-Icon--Boards::before{content:''}.ms-Icon--Bold::before{content:'î£'}.ms-Icon--BookAnswers::before{content:''}.ms-Icon--BookingsLogo::before{content:'î·‡'}.ms-Icon--BookmarkReport::before{content:'ï«'}.ms-Icon--Bookmarks::before{content:''}[dir=rtl] .ms-Icon--Bookmarks::before{content:'î©'}.ms-Icon--BookmarksMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--BookmarksMirrored::before{content:''}.ms-Icon--BorderDash::before{content:''}.ms-Icon--BorderDot::before{content:''}.ms-Icon--BoxAdditionSolid::before{content:'ï‹”'}.ms-Icon--BoxCheckmarkSolid::before{content:'ï‹—'}.ms-Icon--BoxMultiplySolid::before{content:'ï‹•'}.ms-Icon--BoxPlaySolid::before{content:'ï‹–'}.ms-Icon--BoxSubtractSolid::before{content:'ï‹“'}.ms-Icon--BranchCommit::before{content:''}.ms-Icon--BranchCompare::before{content:''}.ms-Icon--BranchFork::before{content:'ï…³'}.ms-Icon--BranchFork2::before{content:''}.ms-Icon--BranchLocked::before{content:''}.ms-Icon--BranchMerge::before{content:''}.ms-Icon--BranchPullRequest::before{content:''}.ms-Icon--BranchSearch::before{content:''}.ms-Icon--BranchShelveset::before{content:''}.ms-Icon--Breadcrumb::before{content:''}.ms-Icon--Breakfast::before{content:'ï’œ'}.ms-Icon--Brightness::before{content:''}.ms-Icon--Broom::before{content:''}.ms-Icon--BrowserScreenShot::before{content:'î¯'}.ms-Icon--BrowserTab::before{content:'ï——'}.ms-Icon--BrowserTabScreenshot::before{content:'ï—˜'}.ms-Icon--Brunch::before{content:'ï’'}.ms-Icon--Brush::before{content:''}.ms-Icon--BucketColor::before{content:''}.ms-Icon--BucketColorFill::before{content:''}.ms-Icon--BufferTimeAfter::before{content:'ïƒ'}.ms-Icon--BufferTimeBefore::before{content:'ïƒ'}.ms-Icon--BufferTimeBoth::before{content:''}.ms-Icon--Bug::before{content:''}.ms-Icon--BugBlock::before{content:'î€'}.ms-Icon--BugSolid::before{content:''}.ms-Icon--BugSync::before{content:'î¿'}.ms-Icon--Build::before{content:'ïŠ'}.ms-Icon--BuildDefinition::before{content:''}.ms-Icon--BuildIssue::before{content:''}.ms-Icon--BuildQueue::before{content:'ï‰'}.ms-Icon--BuildQueueNew::before{content:'ï‰'}.ms-Icon--BulkUpload::before{content:''}.ms-Icon--BulletedList2::before{content:''}[dir=rtl] .ms-Icon--BulletedList2::before{content:''}.ms-Icon--BulletedList2Mirrored::before{content:''}[dir=rtl] .ms-Icon--BulletedList2Mirrored::before{content:''}.ms-Icon--BulletedListBullet::before{content:'ïž“'}[dir=rtl] .ms-Icon--BulletedListBullet::before{content:'ïž•'}.ms-Icon--BulletedListBulletMirrored::before{content:'ïž•'}[dir=rtl] .ms-Icon--BulletedListBulletMirrored::before{content:'ïž“'}.ms-Icon--BulletedList::before{content:''}[dir=rtl] .ms-Icon--BulletedList::before{content:'î©‚'}.ms-Icon--BulletedListMirrored::before{content:'î©‚'}[dir=rtl] .ms-Icon--BulletedListMirrored::before{content:''}.ms-Icon--BulletedListText::before{content:'ïž’'}[dir=rtl] .ms-Icon--BulletedListText::before{content:'ïž”'}.ms-Icon--BulletedListTextMirrored::before{content:'ïž”'}[dir=rtl] .ms-Icon--BulletedListTextMirrored::before{content:'ïž’'}.ms-Icon--BulletedTreeList::before{content:'ï¡Œ'}.ms-Icon--Bullseye::before{content:''}.ms-Icon--BullseyeTarget::before{content:'ï—°'}.ms-Icon--BullseyeTargetEdit::before{content:''}.ms-Icon--Bus::before{content:'î †'}.ms-Icon--BusinessCenterLogo::before{content:'ï’²'}.ms-Icon--BusinessHoursSign::before{content:'ïŒ'}.ms-Icon--BusSolid::before{content:'î‡'}.ms-Icon--ButtonControl::before{content:''}.ms-Icon--Cafe::before{content:'î°²'}.ms-Icon--Cake::before{content:''}.ms-Icon--Calculator::before{content:''}.ms-Icon--CalculatorAddition::before{content:''}.ms-Icon--CalculatorDelta::before{content:'î†'}.ms-Icon--CalculatorEqualTo::before{content:''}.ms-Icon--CalculatorMultiply::before{content:''}.ms-Icon--CalculatorNotEqualTo::before{content:'ï‹’'}.ms-Icon--CalculatorPercentage::before{content:''}.ms-Icon--CalculatorSubtract::before{content:''}.ms-Icon--CalendarAgenda::before{content:''}.ms-Icon--CalendarDay::before{content:''}.ms-Icon--Calendar::before{content:''}[dir=rtl] .ms-Icon--Calendar::before{content:'î´¨'}.ms-Icon--CalendarMirrored::before{content:'î´¨'}[dir=rtl] .ms-Icon--CalendarMirrored::before{content:''}.ms-Icon--CalendarReply::before{content:''}.ms-Icon--CalendarSettings::before{content:''}[dir=rtl] .ms-Icon--CalendarSettings::before{content:'ï•™'}.ms-Icon--CalendarSettingsMirrored::before{content:'ï•™'}[dir=rtl] .ms-Icon--CalendarSettingsMirrored::before{content:''}.ms-Icon--CalendarWeek::before{content:''}.ms-Icon--CalendarWorkWeek::before{content:''}.ms-Icon--CalendarYear::before{content:'î±'}.ms-Icon--Calories::before{content:'î²'}.ms-Icon--CaloriesAdd::before{content:'ï…²'}.ms-Icon--Camera::before{content:''}.ms-Icon--CampaignTemplate::before{content:'ï ‘'}.ms-Icon--Cancel::before{content:''}.ms-Icon--CannedChat::before{content:''}.ms-Icon--Car::before{content:'î „'}.ms-Icon--CaretBottomLeftCenter8::before{content:'ï¥'}.ms-Icon--CaretBottomLeftSolid8::before{content:'ï„¡'}.ms-Icon--CaretBottomRightCenter8::before{content:'ï¤'}.ms-Icon--CaretBottomRightSolid8::before{content:'ï„¢'}.ms-Icon--CaretDown8::before{content:'î·˜'}.ms-Icon--CaretDownSolid8::before{content:'î·œ'}.ms-Icon--CaretHollow::before{content:'î —'}[dir=rtl] .ms-Icon--CaretHollow::before{content:'î©…'}.ms-Icon--CaretHollowMirrored::before{content:'î©…'}[dir=rtl] .ms-Icon--CaretHollowMirrored::before{content:'î —'}.ms-Icon--CaretLeft8::before{content:'î·•'}.ms-Icon--CaretLeftSolid8::before{content:'î·™'}.ms-Icon--CaretRight::before{content:'ï«'}.ms-Icon--CaretRight8::before{content:'î·–'}.ms-Icon--CaretRightSolid8::before{content:'î·š'}.ms-Icon--CaretSolid16::before{content:'î¹¢'}.ms-Icon--CaretSolidDown::before{content:'ï‚Ž'}.ms-Icon--CaretSolidLeft::before{content:'ï‚'}.ms-Icon--CaretSolid::before{content:'î ˜'}[dir=rtl] .ms-Icon--CaretSolid::before{content:''}.ms-Icon--CaretSolidMirrored::before{content:''}[dir=rtl] .ms-Icon--CaretSolidMirrored::before{content:'î ˜'}.ms-Icon--CaretSolidRight::before{content:'ï‚'}.ms-Icon--CaretSolidUp::before{content:'ï‚'}.ms-Icon--CaretTopLeftCenter8::before{content:'ï§'}.ms-Icon--CaretTopLeftSolid8::before{content:'î½”'}.ms-Icon--CaretTopRightCenter8::before{content:'ï¦'}.ms-Icon--CaretTopRightSolid8::before{content:''}.ms-Icon--CaretUp8::before{content:'î·—'}.ms-Icon--CaretUpSolid8::before{content:'î·›'}.ms-Icon--Cat::before{content:''}.ms-Icon--CellPhone::before{content:''}.ms-Icon--Certificate::before{content:''}.ms-Icon--CertifiedDatabase::before{content:'ï–»'}.ms-Icon--ChangeEntitlements::before{content:'îŒ'}.ms-Icon--Chart::before{content:''}.ms-Icon--ChartSeries::before{content:''}.ms-Icon--ChartTemplate::before{content:'ï ’'}.ms-Icon--ChartXAngle::before{content:'ï””'}.ms-Icon--ChartYAngle::before{content:''}.ms-Icon--Chat::before{content:'î¤'}.ms-Icon--ChatBot::before{content:'ï‚‹'}.ms-Icon--ChatInviteFriend::before{content:'î³¾'}.ms-Icon--ChatSolid::before{content:'ï„'}.ms-Icon--Checkbox::before{content:''}.ms-Icon--CheckboxComposite::before{content:''}.ms-Icon--CheckboxCompositeReversed::before{content:''}.ms-Icon--CheckboxFill::before{content:''}.ms-Icon--CheckboxIndeterminate::before{content:''}.ms-Icon--CheckedOutByOther12::before{content:''}.ms-Icon--CheckedOutByYou12::before{content:''}.ms-Icon--CheckList::before{content:''}.ms-Icon--CheckListCheck::before{content:'ïž©'}[dir=rtl] .ms-Icon--CheckListCheck::before{content:'ïž«'}.ms-Icon--CheckListCheckMirrored::before{content:'ïž«'}[dir=rtl] .ms-Icon--CheckListCheckMirrored::before{content:'ïž©'}.ms-Icon--CheckListText::before{content:''}[dir=rtl] .ms-Icon--CheckListText::before{content:''}.ms-Icon--CheckListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--CheckListTextMirrored::before{content:''}.ms-Icon--CheckMark::before{content:''}.ms-Icon--ChevronDown::before{content:'îœ'}.ms-Icon--ChevronDownEnd6::before{content:'ï¯'}.ms-Icon--ChevronDownMed::before{content:''}.ms-Icon--ChevronDownSmall::before{content:''}.ms-Icon--ChevronFold10::before{content:'ïª'}.ms-Icon--ChevronLeft::before{content:'î«'}.ms-Icon--ChevronLeftEnd6::before{content:'ï±'}.ms-Icon--ChevronLeftMed::before{content:''}.ms-Icon--ChevronLeftSmall::before{content:''}.ms-Icon--ChevronRight::before{content:'î¬'}.ms-Icon--ChevronRightEnd6::before{content:'ï²'}.ms-Icon--ChevronRightMed::before{content:''}.ms-Icon--ChevronRightSmall::before{content:''}.ms-Icon--ChevronUnfold10::before{content:'ï©'}.ms-Icon--ChevronUp::before{content:''}.ms-Icon--ChevronUpEnd6::before{content:'ï°'}.ms-Icon--ChevronUpMed::before{content:''}.ms-Icon--ChevronUpSmall::before{content:'î¥'}.ms-Icon--Childof::before{content:'ï '}.ms-Icon--Chopsticks::before{content:'ï’¢'}.ms-Icon--ChromeBack::before{content:'î °'}[dir=rtl] .ms-Icon--ChromeBack::before{content:''}.ms-Icon--ChromeBackMirrored::before{content:''}[dir=rtl] .ms-Icon--ChromeBackMirrored::before{content:'î °'}.ms-Icon--ChromeClose::before{content:''}.ms-Icon--ChromeFullScreen::before{content:'î¤'}.ms-Icon--ChromeMinimize::before{content:''}.ms-Icon--ChromeRestore::before{content:''}.ms-Icon--CircleAddition::before{content:'ï‹£'}.ms-Icon--CircleAdditionSolid::before{content:''}.ms-Icon--CircleFill::before{content:''}.ms-Icon--CircleHalfFull::before{content:''}.ms-Icon--CirclePause::before{content:'ï‹™'}.ms-Icon--CirclePauseSolid::before{content:''}.ms-Icon--CirclePlus::before{content:'î«®'}.ms-Icon--CircleRing::before{content:''}.ms-Icon--CircleShape::before{content:''}.ms-Icon--CircleShapeSolid::before{content:''}.ms-Icon--CircleStop::before{content:'ï‹œ'}.ms-Icon--CircleStopSolid::before{content:'ï‹›'}.ms-Icon--CityNext::before{content:'î°†'}.ms-Icon--CityNext2::before{content:'î°‡'}.ms-Icon--ClassNotebookLogo16::before{content:'ï’ˆ'}.ms-Icon--ClassNotebookLogo32::before{content:'ï’†'}.ms-Icon--ClassNotebookLogoFill16::before{content:'ï’‰'}.ms-Icon--ClassNotebookLogoFill32::before{content:'ï’‡'}.ms-Icon--ClassNotebookLogoInverse::before{content:'î·ˆ'}.ms-Icon--ClassNotebookLogoInverse16::before{content:'ï’‹'}.ms-Icon--ClassNotebookLogoInverse32::before{content:'ï’Š'}.ms-Icon--ClassroomLogo::before{content:'î½µ'}.ms-Icon--Clear::before{content:''}.ms-Icon--ClearFilter::before{content:'î¾'}.ms-Icon--ClearFormatting::before{content:'î·'}.ms-Icon--ClearFormattingA::before{content:'ïž'}.ms-Icon--ClearFormattingEraser::before{content:'ïžž'}.ms-Icon--ClearNight::before{content:''}.ms-Icon--ClearSelection::before{content:''}[dir=rtl] .ms-Icon--ClearSelection::before{content:''}.ms-Icon--ClearSelectionMirrored::before{content:''}[dir=rtl] .ms-Icon--ClearSelectionMirrored::before{content:''}.ms-Icon--ClipboardList::before{content:''}[dir=rtl] .ms-Icon--ClipboardList::before{content:''}.ms-Icon--ClipboardListMirrored::before{content:''}[dir=rtl] .ms-Icon--ClipboardListMirrored::before{content:''}.ms-Icon--ClipboardSolid::before{content:'ï—œ'}.ms-Icon--Clock::before{content:''}.ms-Icon--CloneToDesktop::before{content:''}.ms-Icon--ClosedCaption::before{content:''}.ms-Icon--ClosePane::before{content:''}[dir=rtl] .ms-Icon--ClosePane::before{content:''}.ms-Icon--ClosePaneMirrored::before{content:''}[dir=rtl] .ms-Icon--ClosePaneMirrored::before{content:''}.ms-Icon--Cloud::before{content:'î“'}.ms-Icon--CloudAdd::before{content:''}.ms-Icon--CloudDownload::before{content:''}.ms-Icon--CloudImportExport::before{content:''}.ms-Icon--CloudUpload::before{content:''}.ms-Icon--CloudWeather::before{content:''}.ms-Icon--Cloudy::before{content:''}.ms-Icon--Cocktails::before{content:'îª'}.ms-Icon--Code::before{content:''}.ms-Icon--CodeEdit::before{content:'ï•„'}.ms-Icon--Coffee::before{content:''}.ms-Icon--CoffeeScript::before{content:''}.ms-Icon--CollapseContent::before{content:'ï…¥'}.ms-Icon--CollapseContentSingle::before{content:'ï…¦'}.ms-Icon--CollapseMenu::before{content:''}.ms-Icon--CollegeFootball::before{content:''}.ms-Icon--CollegeHoops::before{content:''}.ms-Icon--Color::before{content:'îž'}.ms-Icon--ColorSolid::before{content:'ï”'}.ms-Icon--ColumnLeftTwoThirds::before{content:''}.ms-Icon--ColumnLeftTwoThirdsEdit::before{content:''}.ms-Icon--ColumnOptions::before{content:''}.ms-Icon--ColumnRightTwoThirds::before{content:''}.ms-Icon--ColumnRightTwoThirdsEdit::before{content:''}.ms-Icon--ColumnVerticalSection::before{content:'ï ž'}.ms-Icon--ColumnVerticalSectionEdit::before{content:'ï †'}.ms-Icon--Combine::before{content:''}.ms-Icon--Combobox::before{content:'ï”–'}.ms-Icon--CommandPrompt::before{content:'î–'}.ms-Icon--Comment::before{content:''}.ms-Icon--CommentActive::before{content:'ï „'}.ms-Icon--CommentAdd::before{content:''}.ms-Icon--CommentNext::before{content:''}.ms-Icon--CommentPrevious::before{content:''}.ms-Icon--CommentSolid::before{content:''}.ms-Icon--CommentUrgent::before{content:''}.ms-Icon--Commitments::before{content:'î±'}.ms-Icon--CommonDataServiceCDS::before{content:'î·'}.ms-Icon--Communications::before{content:''}.ms-Icon--CompanyDirectory::before{content:'î¼'}[dir=rtl] .ms-Icon--CompanyDirectory::before{content:''}.ms-Icon--CompanyDirectoryMirrored::before{content:''}[dir=rtl] .ms-Icon--CompanyDirectoryMirrored::before{content:'î¼'}.ms-Icon--Compare::before{content:'ï—'}.ms-Icon--CompareUneven::before{content:'î®'}.ms-Icon--CompassNW::before{content:''}.ms-Icon--Completed::before{content:''}.ms-Icon--CompletedSolid::before{content:''}.ms-Icon--ComplianceAudit::before{content:'î©'}.ms-Icon--ConfigurationSolid::before{content:''}.ms-Icon--ConnectContacts::before{content:'î¿”'}.ms-Icon--ConnectVirtualMachine::before{content:'îº'}.ms-Icon--ConstructionCone::before{content:'î¦'}.ms-Icon--ConstructionConeSolid::before{content:''}.ms-Icon--Contact::before{content:'î»'}.ms-Icon--ContactCard::before{content:''}.ms-Icon--ContactCardSettings::before{content:'ï•–'}[dir=rtl] .ms-Icon--ContactCardSettings::before{content:'ï•—'}.ms-Icon--ContactCardSettingsMirrored::before{content:'ï•—'}[dir=rtl] .ms-Icon--ContactCardSettingsMirrored::before{content:'ï•–'}.ms-Icon--ContactHeart::before{content:'ï¡¢'}.ms-Icon--ContactInfo::before{content:'î¹'}.ms-Icon--ContactLink::before{content:''}.ms-Icon--ContactList::before{content:''}.ms-Icon--ContactLock::before{content:'ï€'}.ms-Icon--ContentFeed::before{content:'î¨'}.ms-Icon--ContentSettings::before{content:''}.ms-Icon--ContextMenu::before{content:'ï¼'}.ms-Icon--Contrast::before{content:'îž¡'}.ms-Icon--Copy::before{content:''}.ms-Icon--CortanaLogoBeckonInner::before{content:''}.ms-Icon--CortanaLogoBeckonOuter::before{content:''}.ms-Icon--CortanaLogoInner::before{content:'î ²'}.ms-Icon--CortanaLogoOuter::before{content:'î ±'}.ms-Icon--CortanaLogoReadyInner::before{content:''}.ms-Icon--CortanaLogoReadyOuter::before{content:''}.ms-Icon--Cotton::before{content:''}.ms-Icon--Coupon::before{content:'ïž¼'}.ms-Icon--CPlusPlus::before{content:'ï‹´'}.ms-Icon--CPlusPlusLanguage::before{content:''}.ms-Icon--CreateMailRule::before{content:''}.ms-Icon--Cricket::before{content:''}.ms-Icon--CRMProcesses::before{content:'î¾±'}.ms-Icon--CRMReport::before{content:''}.ms-Icon--CRMServices::before{content:'î¿’'}.ms-Icon--Crop::before{content:''}.ms-Icon--Crown::before{content:'î´'}.ms-Icon--CrownSolid::before{content:''}.ms-Icon--CSharp::before{content:'ï‹°'}.ms-Icon--CSharpLanguage::before{content:''}.ms-Icon--CSS::before{content:''}.ms-Icon--CubeShape::before{content:''}.ms-Icon--CubeShapeSolid::before{content:'î¡'}.ms-Icon--CustomizeToolbar::before{content:'ï ¨'}.ms-Icon--CustomList::before{content:''}[dir=rtl] .ms-Icon--CustomList::before{content:''}.ms-Icon--CustomListMirrored::before{content:''}[dir=rtl] .ms-Icon--CustomListMirrored::before{content:''}.ms-Icon--Cut::before{content:''}.ms-Icon--Cycling::before{content:''}.ms-Icon--D365CoreHR::before{content:'ïš½'}.ms-Icon--D365CustomerInsights::before{content:'ïˆ'}.ms-Icon--D365ProjectOperations::before{content:'î²'}.ms-Icon--D365TalentInsight::before{content:'ïš¼'}.ms-Icon--D365TalentLearn::before{content:'ïš»'}.ms-Icon--DashboardAdd::before{content:'ï”'}.ms-Icon--Database::before{content:''}.ms-Icon--DatabaseSync::before{content:'ï¡‚'}.ms-Icon--DataConnectionLibrary::before{content:''}.ms-Icon--Dataflows::before{content:'ïŸ'}.ms-Icon--DataflowsLink::before{content:'î¦'}.ms-Icon--DataManagementSettings::before{content:''}.ms-Icon--DateTime12::before{content:'ïŽ'}.ms-Icon--DateTime2::before{content:''}.ms-Icon--DateTime::before{content:'î²’'}[dir=rtl] .ms-Icon--DateTime::before{content:''}.ms-Icon--DateTimeMirrored::before{content:''}[dir=rtl] .ms-Icon--DateTimeMirrored::before{content:'î²’'}.ms-Icon--DeactivateOrders::before{content:'î¿¡'}.ms-Icon--Decimals::before{content:''}.ms-Icon--DecisionSolid::before{content:'ï'}.ms-Icon--DeclineCall::before{content:'ï…'}.ms-Icon--DecreaseIndentArrow::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrow::before{content:''}.ms-Icon--DecreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentArrowMirrored::before{content:''}.ms-Icon--DecreaseIndentLegacy::before{content:'îŠ'}.ms-Icon--DecreaseIndent::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndent::before{content:''}.ms-Icon--DecreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentMirrored::before{content:''}.ms-Icon--DecreaseIndentText::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentText::before{content:''}.ms-Icon--DecreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--DecreaseIndentTextMirrored::before{content:''}.ms-Icon--DefaultRatio::before{content:''}.ms-Icon--DefectSolid::before{content:''}.ms-Icon--DefenderTVM::before{content:'ïš³'}.ms-Icon--Delete::before{content:'î'}.ms-Icon--DeleteColumns::before{content:''}.ms-Icon--DeleteRows::before{content:'ï™'}[dir=rtl] .ms-Icon--DeleteRows::before{content:'ï™'}.ms-Icon--DeleteRowsMirrored::before{content:'ï™'}[dir=rtl] .ms-Icon--DeleteRowsMirrored::before{content:'ï™'}.ms-Icon--DeleteTable::before{content:''}.ms-Icon--DeliveryTruck::before{content:''}.ms-Icon--DelveAnalytics::before{content:'î»®'}.ms-Icon--DelveAnalyticsLogo::before{content:'î·Š'}.ms-Icon--DelveLogo::before{content:''}.ms-Icon--DelveLogoFill::before{content:'ïŠ'}.ms-Icon--DelveLogoInverse::before{content:''}.ms-Icon--DependencyAdd::before{content:'î„'}.ms-Icon--DependencyRemove::before{content:'î…'}.ms-Icon--Deploy::before{content:'ïŠ'}.ms-Icon--Descending::before{content:'î·'}.ms-Icon--Design::before{content:''}.ms-Icon--DesktopScreenshot::before{content:'ï—™'}.ms-Icon--DeveloperTools::before{content:''}.ms-Icon--DeviceBug::before{content:'î¤'}.ms-Icon--DeviceOff::before{content:'î‚'}.ms-Icon--DeviceRun::before{content:'î'}.ms-Icon--Devices2::before{content:''}.ms-Icon--Devices3::before{content:''}.ms-Icon--Devices4::before{content:'î¦'}.ms-Icon--Diagnostic::before{content:''}.ms-Icon--DiagnosticDataBarTooltip::before{content:''}.ms-Icon--Dialpad::before{content:'îŸ'}.ms-Icon--Diamond::before{content:'î´‚'}.ms-Icon--DiamondSolid::before{content:'ïŒ'}.ms-Icon--Dictionary::before{content:'î '}.ms-Icon--DictionaryRemove::before{content:'ïšš'}.ms-Icon--DietPlanNotebook::before{content:''}.ms-Icon--DiffInline::before{content:''}.ms-Icon--DiffSideBySide::before{content:''}.ms-Icon--DisableUpdates::before{content:''}.ms-Icon--DisconnectVirtualMachine::before{content:''}.ms-Icon--Dislike::before{content:'î£ '}.ms-Icon--DislikeSolid::before{content:'ï€'}.ms-Icon--DistributeDown::before{content:'ïª'}.ms-Icon--DockLeft::before{content:''}[dir=rtl] .ms-Icon--DockLeft::before{content:'î©Œ'}.ms-Icon--DockLeftMirrored::before{content:'î©Œ'}[dir=rtl] .ms-Icon--DockLeftMirrored::before{content:''}.ms-Icon--DockRight::before{content:'î¤'}.ms-Icon--DocLibrary::before{content:''}.ms-Icon--DocsLogoInverse::before{content:'î·‹'}.ms-Icon--Document::before{content:''}.ms-Icon--DocumentApproval::before{content:''}.ms-Icon--Documentation::before{content:'î°—'}.ms-Icon--DocumentManagement::before{content:''}.ms-Icon--DocumentReply::before{content:'î½—'}.ms-Icon--DocumentSearch::before{content:''}.ms-Icon--DocumentSet::before{content:'î»–'}.ms-Icon--DOM::before{content:'î²'}.ms-Icon--DonutChart::before{content:'ï¨'}.ms-Icon--Door::before{content:'îµ'}.ms-Icon--DoubleBookmark::before{content:'î®'}.ms-Icon--DoubleChevronDown::before{content:''}.ms-Icon--DoubleChevronDown12::before{content:''}.ms-Icon--DoubleChevronDown8::before{content:'ï«'}.ms-Icon--DoubleChevronLeft::before{content:''}.ms-Icon--DoubleChevronLeft12::before{content:''}.ms-Icon--DoubleChevronLeft8::before{content:'ï'}.ms-Icon--DoubleChevronLeftMed::before{content:''}[dir=rtl] .ms-Icon--DoubleChevronLeftMed::before{content:'î©'}.ms-Icon--DoubleChevronLeftMedMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--DoubleChevronLeftMedMirrored::before{content:''}.ms-Icon--DoubleChevronRight::before{content:''}.ms-Icon--DoubleChevronRight12::before{content:''}.ms-Icon--DoubleChevronRight8::before{content:'ï®'}.ms-Icon--DoubleChevronUp::before{content:''}.ms-Icon--DoubleChevronUp12::before{content:''}.ms-Icon--DoubleChevronUp8::before{content:'ï¬'}.ms-Icon--DoubleColumn::before{content:''}.ms-Icon--DoubleColumnEdit::before{content:''}.ms-Icon--DoubleDownArrow::before{content:'ï©'}.ms-Icon--Down::before{content:'î‹'}.ms-Icon--Download::before{content:''}.ms-Icon--DownloadDocument::before{content:''}.ms-Icon--DragObject::before{content:'ï•“'}.ms-Icon--DrillDown::before{content:''}.ms-Icon--DrillDownSolid::before{content:''}.ms-Icon--DrillExpand::before{content:'ï”´'}.ms-Icon--DrillShow::before{content:''}.ms-Icon--DrillThrough::before{content:'ï–¹'}.ms-Icon--DriverOff::before{content:'î»'}.ms-Icon--DRM::before{content:''}.ms-Icon--Drop::before{content:'î‚'}.ms-Icon--Dropdown::before{content:'î·…'}.ms-Icon--DropShape::before{content:''}.ms-Icon--DropShapeSolid::before{content:''}.ms-Icon--DuplicateRow::before{content:'ï ª'}.ms-Icon--Duststorm::before{content:'î§'}.ms-Icon--Dynamics365Logo::before{content:'î·Œ'}.ms-Icon--DynamicSMBLogo::before{content:'î·'}.ms-Icon--EaseOfAccess::before{content:'î¶'}.ms-Icon--EatDrink::before{content:'î ‡'}.ms-Icon--EdgeOldLogo::before{content:'î± '}.ms-Icon--eDiscovery::before{content:'î°'}.ms-Icon--EditContact::before{content:'î¿“'}.ms-Icon--EditCreate::before{content:'ï‰'}.ms-Icon--EditMail::before{content:''}.ms-Icon--Edit::before{content:'îœ'}[dir=rtl] .ms-Icon--Edit::before{content:'î¾'}.ms-Icon--EditMirrored::before{content:'î¾'}[dir=rtl] .ms-Icon--EditMirrored::before{content:'îœ'}.ms-Icon--EditNote::before{content:'î¶'}.ms-Icon--EditPhoto::before{content:'î½·'}.ms-Icon--EditSolid12::before{content:'ï’µ'}[dir=rtl] .ms-Icon--EditSolid12::before{content:'ï’¶'}.ms-Icon--EditSolidMirrored12::before{content:'ï’¶'}[dir=rtl] .ms-Icon--EditSolidMirrored12::before{content:'ï’µ'}.ms-Icon--EditStyle::before{content:'î½ '}.ms-Icon--Education::before{content:'îž¾'}.ms-Icon--Ellipse::before{content:'ï“»'}.ms-Icon--Embed::before{content:''}.ms-Icon--EMI::before{content:''}.ms-Icon--Emoji::before{content:''}.ms-Icon--Emoji2::before{content:'î®'}.ms-Icon--EmojiDisappointed::before{content:''}.ms-Icon--EmojiNeutral::before{content:''}.ms-Icon--EmojiTabSymbols::before{content:''}.ms-Icon--EmptyRecycleBin::before{content:''}.ms-Icon--Encryption::before{content:'ïš'}.ms-Icon--EndPointSolid::before{content:'î‹'}.ms-Icon--EngineeringGroup::before{content:'ï¢'}.ms-Icon--EntitlementPolicy::before{content:'î†'}.ms-Icon--EntitlementRedemption::before{content:'î‡'}.ms-Icon--EntryDecline::before{content:'ï••'}.ms-Icon--EntryView::before{content:'ï•”'}.ms-Icon--Equalizer::before{content:''}.ms-Icon--EraseTool::before{content:'îœ'}.ms-Icon--Error::before{content:''}.ms-Icon--ErrorBadge::before{content:''}.ms-Icon--Event::before{content:'î²£'}.ms-Icon--Event12::before{content:'ï£'}.ms-Icon--EventAccepted::before{content:'ï¢'}.ms-Icon--EventDate::before{content:'ï™'}.ms-Icon--EventDateMissed12::before{content:'ï¤'}.ms-Icon--EventDeclined::before{content:'ï¥'}.ms-Icon--EventInfo::before{content:''}.ms-Icon--EventTentative::before{content:'ï£'}[dir=rtl] .ms-Icon--EventTentative::before{content:'ï¤'}.ms-Icon--EventTentativeMirrored::before{content:'ï¤'}[dir=rtl] .ms-Icon--EventTentativeMirrored::before{content:'ï£'}.ms-Icon--EventToDoLogo::before{content:'ï¡©'}.ms-Icon--ExcelDocument::before{content:'î½³'}.ms-Icon--ExcelLogo::before{content:''}.ms-Icon--ExcelLogo16::before{content:''}.ms-Icon--ExcelLogoFill::before{content:''}.ms-Icon--ExcelLogoFill16::before{content:''}.ms-Icon--ExcelLogoInverse::before{content:'î°¨'}.ms-Icon--ExcelLogoInverse16::before{content:''}.ms-Icon--ExchangeLogo::before{content:''}.ms-Icon--ExchangeLogoFill::before{content:''}.ms-Icon--ExchangeLogoInverse::before{content:''}.ms-Icon--ExerciseTracker::before{content:'î«Œ'}.ms-Icon--ExpandMenu::before{content:''}.ms-Icon--ExploreContent::before{content:'î³'}.ms-Icon--ExploreContentSingle::before{content:'ï…¤'}.ms-Icon--ExploreData::before{content:'ï–¶'}.ms-Icon--Export::before{content:'î·¡'}[dir=rtl] .ms-Icon--Export::before{content:'î·¢'}.ms-Icon--ExportMirrored::before{content:'î·¢'}[dir=rtl] .ms-Icon--ExportMirrored::before{content:'î·¡'}.ms-Icon--ExternalBuild::before{content:'ï‘…'}.ms-Icon--ExternalTFVC::before{content:''}.ms-Icon--ExternalXAML::before{content:''}.ms-Icon--Eyedropper::before{content:'î¼¼'}.ms-Icon--EyeShadow::before{content:''}.ms-Icon--F12DevTools::before{content:''}.ms-Icon--FabricAssetLibrary::before{content:'ï‚œ'}.ms-Icon--FabricDataConnectionLibrary::before{content:'ï‚'}.ms-Icon--FabricDocLibrary::before{content:'ï‚ž'}.ms-Icon--FabricFolder::before{content:'ï‚©'}.ms-Icon--FabricFolderConfirm::before{content:''}.ms-Icon--FabricFolderFill::before{content:''}.ms-Icon--FabricFolderSearch::before{content:''}.ms-Icon--FabricFolderUpload::before{content:''}.ms-Icon--FabricFormLibrary::before{content:'ï‚Ÿ'}[dir=rtl] .ms-Icon--FabricFormLibrary::before{content:'ï‚ '}.ms-Icon--FabricFormLibraryMirrored::before{content:'ï‚ '}[dir=rtl] .ms-Icon--FabricFormLibraryMirrored::before{content:'ï‚Ÿ'}.ms-Icon--FabricMovetoFolder::before{content:'ï‚¥'}.ms-Icon--FabricNetworkFolder::before{content:'ï—¦'}.ms-Icon--FabricNewFolder::before{content:'ï‚«'}.ms-Icon--FabricOpenFolderHorizontal::before{content:''}.ms-Icon--FabricPictureLibrary::before{content:''}.ms-Icon--FabricPublicFolder::before{content:'ï‚£'}.ms-Icon--FabricReportLibrary::before{content:'ï‚¡'}[dir=rtl] .ms-Icon--FabricReportLibrary::before{content:'ï‚¢'}.ms-Icon--FabricReportLibraryMirrored::before{content:'ï‚¢'}[dir=rtl] .ms-Icon--FabricReportLibraryMirrored::before{content:'ï‚¡'}.ms-Icon--FabricSyncFolder::before{content:''}.ms-Icon--FabricTextHighlight::before{content:'ïžœ'}.ms-Icon--FabricTextHighlightComposite::before{content:''}.ms-Icon--FabricUnsyncFolder::before{content:''}.ms-Icon--FabricUserFolder::before{content:'ï—¥'}.ms-Icon--Family::before{content:''}.ms-Icon--FangBody::before{content:''}.ms-Icon--FastForward::before{content:'î®'}.ms-Icon--FastMode::before{content:''}.ms-Icon--Favicon::before{content:''}.ms-Icon--FavoriteList::before{content:''}.ms-Icon--FavoriteStar::before{content:''}.ms-Icon--FavoriteStarFill::before{content:''}.ms-Icon--Fax::before{content:''}.ms-Icon--Feedback::before{content:'î´•'}.ms-Icon--FeedbackRequestSolid::before{content:'ï™'}[dir=rtl] .ms-Icon--FeedbackRequestSolid::before{content:'ïš'}.ms-Icon--FeedbackRequestMirroredSolid::before{content:'ïš'}[dir=rtl] .ms-Icon--FeedbackRequestMirroredSolid::before{content:'ï™'}.ms-Icon--FeedbackResponseSolid::before{content:'ï›'}.ms-Icon--Ferry::before{content:''}.ms-Icon--FerrySolid::before{content:'îˆ'}.ms-Icon--FieldChanged::before{content:''}.ms-Icon--FieldEmpty::before{content:'ï‹'}.ms-Icon--FieldFilled::before{content:'ï‹‚'}.ms-Icon--FieldNotChanged::before{content:'ï‹„'}.ms-Icon--FieldReadOnly::before{content:'ï‘‚'}.ms-Icon--FieldRequired::before{content:''}.ms-Icon--FileASPX::before{content:'ï‹©'}.ms-Icon--FileBug::before{content:'ïŒ'}.ms-Icon--FileCode::before{content:''}.ms-Icon--FileComment::before{content:'ïŒ'}.ms-Icon--FileCSS::before{content:''}.ms-Icon--FileHTML::before{content:'ï‹'}.ms-Icon--FileImage::before{content:''}.ms-Icon--FileJAVA::before{content:''}.ms-Icon--FileLess::before{content:''}.ms-Icon--FileOff::before{content:'î¼'}.ms-Icon--FilePDB::before{content:'ï‹¥'}.ms-Icon--FileRequest::before{content:''}.ms-Icon--FileSass::before{content:'ï‹«'}.ms-Icon--FileSQL::before{content:''}.ms-Icon--FileSymlink::before{content:''}.ms-Icon--FileTemplate::before{content:''}.ms-Icon--FileTypeSolution::before{content:''}.ms-Icon--FileYML::before{content:'ï—š'}.ms-Icon--Filter::before{content:''}.ms-Icon--FilterAscending::before{content:''}.ms-Icon--FilterDescending::before{content:''}.ms-Icon--Filters::before{content:'îž•'}.ms-Icon--FilterSettings::before{content:'ï¬'}.ms-Icon--FilterSolid::before{content:'ï’'}.ms-Icon--FiltersSolid::before{content:'ï“'}.ms-Icon--Financial::before{content:'îž»'}.ms-Icon--FinancialSolid::before{content:'ï†'}[dir=rtl] .ms-Icon--FinancialSolid::before{content:'ï‡'}.ms-Icon--FinancialMirroredSolid::before{content:'ï‡'}[dir=rtl] .ms-Icon--FinancialMirroredSolid::before{content:'ï†'}.ms-Icon--Fingerprint::before{content:''}.ms-Icon--FitPage::before{content:''}.ms-Icon--FitWidth::before{content:''}.ms-Icon--FiveTileGrid::before{content:''}.ms-Icon--FixedAssetManagement::before{content:''}.ms-Icon--FixedColumnWidth::before{content:'îª'}.ms-Icon--Flag::before{content:'îŸ'}.ms-Icon--FlameSolid::before{content:''}.ms-Icon--FlashAuto::before{content:''}.ms-Icon--Flashlight::before{content:'î”'}.ms-Icon--FlashOff::before{content:'î©®'}.ms-Icon--FlickDown::before{content:''}.ms-Icon--FlickLeft::before{content:''}.ms-Icon--FlickRight::before{content:''}.ms-Icon--FlickUp::before{content:''}.ms-Icon--Flow::before{content:'î¾'}.ms-Icon--FlowChart::before{content:''}.ms-Icon--Flower::before{content:'ï•Ž'}.ms-Icon--FocalPoint::before{content:''}.ms-Icon--Focus::before{content:''}.ms-Icon--FocusView::before{content:''}.ms-Icon--Fog::before{content:''}.ms-Icon--Folder::before{content:''}.ms-Icon--FolderFill::before{content:''}.ms-Icon--FolderHorizontal::before{content:'ï„«'}.ms-Icon--FolderList::before{content:'ï‹Ž'}[dir=rtl] .ms-Icon--FolderList::before{content:'ï‹'}.ms-Icon--FolderListMirrored::before{content:'ï‹'}[dir=rtl] .ms-Icon--FolderListMirrored::before{content:'ï‹Ž'}.ms-Icon--FolderOpen::before{content:'î ¸'}.ms-Icon--FolderQuery::before{content:'ï‹'}.ms-Icon--FolderSearch::before{content:'î½¥'}.ms-Icon--FollowUser::before{content:''}.ms-Icon--Font::before{content:''}.ms-Icon--FontColor::before{content:''}.ms-Icon--FontColorA::before{content:''}.ms-Icon--FontColorSwatch::before{content:'ï“'}.ms-Icon--FontDecrease::before{content:''}.ms-Icon--FontIncrease::before{content:''}.ms-Icon--FontSize::before{content:''}.ms-Icon--FontSize2::before{content:'î€'}.ms-Icon--Footer::before{content:'ï ®'}.ms-Icon--FormatPainter::before{content:'îœ'}.ms-Icon--FormLibrary::before{content:''}[dir=rtl] .ms-Icon--FormLibrary::before{content:''}.ms-Icon--FormLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--FormLibraryMirrored::before{content:''}.ms-Icon--Forum::before{content:'î¸'}.ms-Icon--Forward::before{content:''}.ms-Icon--ForwardEvent::before{content:''}.ms-Icon--Freezing::before{content:''}.ms-Icon--Frigid::before{content:''}.ms-Icon--FrontCamera::before{content:''}.ms-Icon--FSharp::before{content:''}.ms-Icon--FSharpLanguage::before{content:''}.ms-Icon--FullCircleMask::before{content:''}.ms-Icon--FullHistory::before{content:''}.ms-Icon--FullScreen::before{content:'î€'}.ms-Icon--FullView::before{content:''}.ms-Icon--FullWidth::before{content:''}.ms-Icon--FullWidthEdit::before{content:'ï‹¿'}.ms-Icon--FunctionalManagerDashboard::before{content:'ï•‚'}.ms-Icon--FunnelChart::before{content:''}.ms-Icon--GallatinLogo::before{content:'ï’–'}.ms-Icon--Game::before{content:''}.ms-Icon--Generate::before{content:''}.ms-Icon--GenericScan::before{content:''}.ms-Icon--GenericScanFilled::before{content:''}.ms-Icon--GIF::before{content:'ï’©'}.ms-Icon--Giftbox::before{content:'î°Ÿ'}.ms-Icon--GiftboxOpen::before{content:''}.ms-Icon--GiftBoxSolid::before{content:'ï'}.ms-Icon--GiftCard::before{content:''}.ms-Icon--GitGraph::before{content:'ï‹Š'}.ms-Icon--Glasses::before{content:''}.ms-Icon--Glimmer::before{content:'î³´'}.ms-Icon--GlobalNavButton::before{content:''}.ms-Icon--GlobalNavButtonActive::before{content:''}.ms-Icon--Globe::before{content:'î´'}.ms-Icon--Globe2::before{content:'ï’š'}.ms-Icon--GlobeFavorite::before{content:''}.ms-Icon--Golf::before{content:''}.ms-Icon--Go::before{content:'î¢'}[dir=rtl] .ms-Icon--Go::before{content:'î©'}.ms-Icon--GoMirrored::before{content:'î©'}[dir=rtl] .ms-Icon--GoMirrored::before{content:'î¢'}.ms-Icon--GoToDashboard::before{content:'î»'}.ms-Icon--GotoToday::before{content:''}.ms-Icon--GreetingCard::before{content:'ï•‹'}.ms-Icon--GridViewLarge::before{content:''}.ms-Icon--GridViewMedium::before{content:''}.ms-Icon--GridViewSmall::before{content:''}.ms-Icon--GripperBarHorizontal::before{content:'î¯'}.ms-Icon--GripperBarVertical::before{content:'îž„'}.ms-Icon--GripperDotsVertical::before{content:'ï²'}.ms-Icon--GripperTool::before{content:'îž'}.ms-Icon--Group::before{content:''}.ms-Icon--GroupedAscending::before{content:''}.ms-Icon--GroupedDescending::before{content:''}.ms-Icon--GroupedList::before{content:'î½´'}.ms-Icon--GroupList::before{content:'ï…¨'}.ms-Icon--GroupObject::before{content:''}.ms-Icon--GUID::before{content:''}.ms-Icon--Guitar::before{content:'ï’›'}.ms-Icon--HailDay::before{content:''}.ms-Icon--HailNight::before{content:''}.ms-Icon--HalfAlpha::before{content:''}.ms-Icon--HalfCircle::before{content:'ï”'}.ms-Icon--HandsFree::before{content:'î«'}.ms-Icon--Handwriting::before{content:''}.ms-Icon--HardDrive::before{content:''}.ms-Icon--HardDriveGroup::before{content:'ï†'}.ms-Icon--HardDriveLock::before{content:'ï•š'}.ms-Icon--HardDriveUnlock::before{content:'ï•›'}.ms-Icon--Header::before{content:'ï ¯'}.ms-Icon--Header1::before{content:''}.ms-Icon--Header2::before{content:''}.ms-Icon--Header3::before{content:'î¼·'}.ms-Icon--Header4::before{content:''}.ms-Icon--Headset::before{content:''}.ms-Icon--HeadsetSolid::before{content:'ïˆ'}.ms-Icon--Health::before{content:''}.ms-Icon--HealthRefresh::before{content:''}.ms-Icon--HealthSolid::before{content:''}.ms-Icon--Heart::before{content:'î‘'}.ms-Icon--HeartBroken::before{content:''}.ms-Icon--HeartFill::before{content:'î’'}.ms-Icon--Help::before{content:''}[dir=rtl] .ms-Icon--Help::before{content:'î©‘'}.ms-Icon--HelpMirrored::before{content:'î©‘'}[dir=rtl] .ms-Icon--HelpMirrored::before{content:''}.ms-Icon--HexaditeInvestigation::before{content:'î¸'}.ms-Icon--HexaditeInvestigationCancel::before{content:'î¹'}.ms-Icon--HexaditeInvestigationSemiAuto::before{content:'îº'}.ms-Icon--Hexagon::before{content:''}.ms-Icon--Hide::before{content:'î´š'}.ms-Icon--Hide2::before{content:''}.ms-Icon--Hide3::before{content:''}.ms-Icon--Highlight::before{content:''}.ms-Icon--HighlightMappedShapes::before{content:''}.ms-Icon--HintText::before{content:'ï”'}.ms-Icon--HistoricalWeather::before{content:'îƒ'}.ms-Icon--History::before{content:'î œ'}.ms-Icon--Home::before{content:'î '}.ms-Icon--HomeDropdown::before{content:'î§'}.ms-Icon--HomeGroup::before{content:'î°¦'}.ms-Icon--HomeSolid::before{content:''}.ms-Icon--HomeVerify::before{content:''}.ms-Icon--HorizontalDistributeCenter::before{content:''}.ms-Icon--HorizontalTabKey::before{content:''}.ms-Icon--Hospital::before{content:'î¤'}.ms-Icon--Hotel::before{content:'î ¤'}.ms-Icon--HourGlass::before{content:''}.ms-Icon--IconSetsFlag::before{content:''}.ms-Icon--IDBadge::before{content:'ï§'}.ms-Icon--IgnoreConversation::before{content:'î²'}.ms-Icon--ImageCrosshair::before{content:''}.ms-Icon--ImageDiff::before{content:''}.ms-Icon--ImageInAR::before{content:'î '}.ms-Icon--ImagePixel::before{content:''}.ms-Icon--ImageSearch::before{content:''}[dir=rtl] .ms-Icon--ImportAll::before{content:'î©“'}.ms-Icon--ImportAllMirrored::before{content:'î©“'}.ms-Icon--Important::before{content:''}.ms-Icon--Import::before{content:''}[dir=rtl] .ms-Icon--Import::before{content:'î©’'}.ms-Icon--ImportMirrored::before{content:'î©’'}[dir=rtl] .ms-Icon--ImportMirrored::before{content:''}.ms-Icon--Inbox::before{content:'ïœ'}.ms-Icon--InboxCheck::before{content:''}.ms-Icon--IncidentTriangle::before{content:'î ”'}.ms-Icon--IncomingCall::before{content:'î¾'}.ms-Icon--IncreaseIndentArrow::before{content:'ïž¡'}[dir=rtl] .ms-Icon--IncreaseIndentArrow::before{content:''}.ms-Icon--IncreaseIndentArrowMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentArrowMirrored::before{content:'ïž¡'}.ms-Icon--IncreaseIndentHanging::before{content:'îŽ'}[dir=rtl] .ms-Icon--IncreaseIndentHanging::before{content:''}.ms-Icon--IncreaseIndentHangingMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentHangingMirrored::before{content:'îŽ'}.ms-Icon--IncreaseIndentLegacy::before{content:''}.ms-Icon--IncreaseIndent::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndent::before{content:''}.ms-Icon--IncreaseIndentMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentMirrored::before{content:''}.ms-Icon--IncreaseIndentText::before{content:'ïž '}[dir=rtl] .ms-Icon--IncreaseIndentText::before{content:''}.ms-Icon--IncreaseIndentTextMirrored::before{content:''}[dir=rtl] .ms-Icon--IncreaseIndentTextMirrored::before{content:'ïž '}.ms-Icon--IndentFirstLine::before{content:'î'}.ms-Icon--Info::before{content:''}.ms-Icon--Info2::before{content:''}.ms-Icon--InformationBarriers::before{content:'ï ƒ'}.ms-Icon--InfoSolid::before{content:'ï…§'}.ms-Icon--InkingTool::before{content:'î'}.ms-Icon--InputAddress::before{content:'îž'}.ms-Icon--Insert::before{content:''}.ms-Icon--InsertColumnsLeft::before{content:''}.ms-Icon--InsertColumnsRight::before{content:''}.ms-Icon--InsertRowsAbove::before{content:''}.ms-Icon--InsertRowsBelow::before{content:'ï™'}.ms-Icon--InsertSignatureLine::before{content:'ï™·'}.ms-Icon--InsertTextBox::before{content:'î±½'}.ms-Icon--Insights::before{content:''}.ms-Icon--Installation::before{content:''}.ms-Icon--InstallToDrive::before{content:'ïŠ'}.ms-Icon--InternalInvestigation::before{content:'ï¡”'}.ms-Icon--InternetSharing::before{content:''}.ms-Icon--IRMForward::before{content:'ïŸ'}[dir=rtl] .ms-Icon--IRMForward::before{content:'ï '}.ms-Icon--IRMForwardMirrored::before{content:'ï '}[dir=rtl] .ms-Icon--IRMForwardMirrored::before{content:'ïŸ'}.ms-Icon--IRMReply::before{content:'ï'}[dir=rtl] .ms-Icon--IRMReply::before{content:'ïž'}.ms-Icon--IRMReplyMirrored::before{content:'ïž'}[dir=rtl] .ms-Icon--IRMReplyMirrored::before{content:'ï'}.ms-Icon--IssueSolid::before{content:''}.ms-Icon--IssueTracking::before{content:''}[dir=rtl] .ms-Icon--IssueTracking::before{content:'î»'}.ms-Icon--IssueTrackingMirrored::before{content:'î»'}[dir=rtl] .ms-Icon--IssueTrackingMirrored::before{content:''}.ms-Icon--Italic::before{content:''}.ms-Icon--JavaScriptLanguage::before{content:'ï‹®'}.ms-Icon--JoinOnlineMeeting::before{content:'î¶'}.ms-Icon--JS::before{content:''}.ms-Icon--KaizalaLogo::before{content:'ï’’'}.ms-Icon--KeyboardClassic::before{content:'î¥'}.ms-Icon--KeyPhraseExtraction::before{content:''}.ms-Icon--KnowledgeArticle::before{content:''}.ms-Icon--Label::before{content:''}.ms-Icon--LadybugSolid::before{content:'ï‘Š'}.ms-Icon--Lamp::before{content:''}.ms-Icon--LandscapeOrientation::before{content:''}.ms-Icon--LaptopSecure::before{content:'ï•’'}.ms-Icon--LaptopSelected::before{content:''}.ms-Icon--LargeGrid::before{content:''}.ms-Icon--LearningTools::before{content:''}.ms-Icon--Leave::before{content:''}.ms-Icon--LeaveUser::before{content:''}.ms-Icon--Library::before{content:''}.ms-Icon--Lifesaver::before{content:'î½¢'}.ms-Icon--LifesaverLock::before{content:'î½£'}.ms-Icon--Light::before{content:'îž“'}.ms-Icon--Lightbulb::before{content:''}.ms-Icon--LightningBolt::before{content:''}.ms-Icon--LightWeight::before{content:'ï“®'}.ms-Icon--Like::before{content:''}.ms-Icon--LikeSolid::before{content:''}.ms-Icon--Line::before{content:''}.ms-Icon--LineChart::before{content:''}.ms-Icon--LineSpacing::before{content:'ï”—'}.ms-Icon--LineStyle::before{content:''}.ms-Icon--LineThickness::before{content:'ï”'}.ms-Icon--Link::before{content:''}.ms-Icon--Link12::before{content:''}.ms-Icon--LinkedDatabase::before{content:'ï¹'}.ms-Icon--LinkedInLogo::before{content:''}.ms-Icon--List::before{content:''}[dir=rtl] .ms-Icon--List::before{content:'î©•'}.ms-Icon--ListMirrored::before{content:'î©•'}[dir=rtl] .ms-Icon--ListMirrored::before{content:''}.ms-Icon--LiveSite::before{content:''}.ms-Icon--LocaleLanguage::before{content:''}.ms-Icon--Location::before{content:'î '}.ms-Icon--LocationCircle::before{content:'î Ž'}.ms-Icon--LocationDot::before{content:'î §'}.ms-Icon--LocationFill::before{content:'î¤ '}.ms-Icon--LocationOutline::before{content:'ï‹'}.ms-Icon--Lock::before{content:''}.ms-Icon--Lock12::before{content:''}.ms-Icon--LockSolid::before{content:''}.ms-Icon--LogRemove::before{content:''}.ms-Icon--LookupEntities::before{content:'ï–µ'}.ms-Icon--LowerBrightness::before{content:''}.ms-Icon--LyncLogo::before{content:'îµ¹'}.ms-Icon--M365InvoicingLogo::before{content:'ïŸ'}.ms-Icon--MachineLearning::before{content:''}.ms-Icon--Mail::before{content:''}.ms-Icon--MailAlert::before{content:''}.ms-Icon--MailAttached::before{content:'ï´'}.ms-Icon--MailCheck::before{content:'î¶'}.ms-Icon--MailFill::before{content:''}.ms-Icon--MailForward::before{content:''}[dir=rtl] .ms-Icon--MailForward::before{content:'î©–'}.ms-Icon--MailForwardMirrored::before{content:'î©–'}[dir=rtl] .ms-Icon--MailForwardMirrored::before{content:''}.ms-Icon--MailLowImportance::before{content:''}.ms-Icon--MailOptions::before{content:'ï ¬'}.ms-Icon--MailPause::before{content:''}.ms-Icon--MailReminder::before{content:'ï˜'}.ms-Icon--MailRepeat::before{content:''}.ms-Icon--MailReplyAll::before{content:''}[dir=rtl] .ms-Icon--MailReplyAll::before{content:''}.ms-Icon--MailReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--MailReplyAllMirrored::before{content:''}.ms-Icon--MailReply::before{content:''}[dir=rtl] .ms-Icon--MailReply::before{content:'î©—'}.ms-Icon--MailReplyMirrored::before{content:'î©—'}[dir=rtl] .ms-Icon--MailReplyMirrored::before{content:''}.ms-Icon--MailSchedule::before{content:''}.ms-Icon--MailSolid::before{content:'ïƒ'}.ms-Icon--MailTentative::before{content:'ï–'}[dir=rtl] .ms-Icon--MailTentative::before{content:'ï—'}.ms-Icon--MailTentativeMirrored::before{content:'ï—'}[dir=rtl] .ms-Icon--MailTentativeMirrored::before{content:'ï–'}.ms-Icon--MailUndelivered::before{content:'ï•'}.ms-Icon--ManagerSelfService::before{content:''}.ms-Icon--Manufacturing::before{content:''}.ms-Icon--MapDirections::before{content:'î –'}.ms-Icon--MapLayers::before{content:'î ž'}.ms-Icon--MapPin::before{content:''}.ms-Icon--MapPin12::before{content:''}.ms-Icon--MapPinSolid::before{content:'ï”®'}.ms-Icon--MarkAsProtected::before{content:'ïš®'}.ms-Icon--MarkDownLanguage::before{content:'ï‹»'}.ms-Icon--Market::before{content:''}.ms-Icon--MarketDown::before{content:''}.ms-Icon--MasterDatabase::before{content:'ï–º'}.ms-Icon--MaximumValue::before{content:'ï–¼'}.ms-Icon--Medal::before{content:''}.ms-Icon--MedalSolid::before{content:'ïš¹'}.ms-Icon--Media::before{content:'î©©'}.ms-Icon--MediaAdd::before{content:'ï”'}.ms-Icon--Medical::before{content:'î«”'}.ms-Icon--Megaphone::before{content:''}.ms-Icon--MegaphoneSolid::before{content:''}.ms-Icon--Memo::before{content:'î¼'}.ms-Icon--Merge::before{content:''}.ms-Icon--MergeDuplicate::before{content:''}.ms-Icon--Message::before{content:''}.ms-Icon--MessageFill::before{content:'î±°'}.ms-Icon--MessageFriendRequest::before{content:'ï•'}.ms-Icon--MicOff::before{content:'î±”'}.ms-Icon--MicOff2::before{content:'ïž'}.ms-Icon--Microphone::before{content:'îœ '}.ms-Icon--MicrosoftFlowLogo::before{content:'ï’±'}.ms-Icon--MicrosoftStaffhubLogo::before{content:'ï„°'}.ms-Icon--MicrosoftTranslatorLogo::before{content:'ïž‚'}.ms-Icon--MicrosoftTranslatorLogoBlue::before{content:'ï¡“'}.ms-Icon--MicrosoftTranslatorLogoGreen::before{content:'ï¡’'}.ms-Icon--MiniContract::before{content:''}[dir=rtl] .ms-Icon--MiniContract::before{content:'î©™'}.ms-Icon--MiniContractMirrored::before{content:'î©™'}[dir=rtl] .ms-Icon--MiniContractMirrored::before{content:''}.ms-Icon--MiniExpand::before{content:''}[dir=rtl] .ms-Icon--MiniExpand::before{content:'î©š'}.ms-Icon--MiniExpandMirrored::before{content:'î©š'}[dir=rtl] .ms-Icon--MiniExpandMirrored::before{content:''}.ms-Icon--MiniLink::before{content:''}.ms-Icon--MinimumValue::before{content:'ï–½'}.ms-Icon--MobileReport::before{content:''}.ms-Icon--MobileSelected::before{content:'î±µ'}.ms-Icon--ModelingView::before{content:''}.ms-Icon--Money::before{content:''}.ms-Icon--More::before{content:''}.ms-Icon--MoreSports::before{content:''}.ms-Icon--MoreVertical::before{content:''}.ms-Icon--MountainClimbing::before{content:'ï››'}.ms-Icon--Move::before{content:''}.ms-Icon--Movers::before{content:'î¯'}.ms-Icon--MoveToFolder::before{content:''}.ms-Icon--MSNLogo::before{content:'î¬'}.ms-Icon--MSNVideos::before{content:''}.ms-Icon--MSNVideosSolid::before{content:'ï‹š'}.ms-Icon--MultiSelect::before{content:'î¢'}[dir=rtl] .ms-Icon--MultiSelect::before{content:''}.ms-Icon--MultiSelectMirrored::before{content:''}[dir=rtl] .ms-Icon--MultiSelectMirrored::before{content:'î¢'}.ms-Icon--MusicInCollection::before{content:''}.ms-Icon--MusicInCollectionFill::before{content:''}.ms-Icon--MusicNote::before{content:'î±'}.ms-Icon--MuteChat::before{content:'ï…º'}.ms-Icon--MyMoviesTV::before{content:''}.ms-Icon--MyNetwork::before{content:'î°§'}.ms-Icon--Nav2DMapView::before{content:'î €'}.ms-Icon--NavigateBack::before{content:'ï‹'}[dir=rtl] .ms-Icon--NavigateBack::before{content:'ï‹ž'}.ms-Icon--NavigateBackMirrored::before{content:'ï‹ž'}[dir=rtl] .ms-Icon--NavigateBackMirrored::before{content:'ï‹'}.ms-Icon--NavigateExternalInline::before{content:'ïŸ'}.ms-Icon--NavigateForward::before{content:'ï‹Ÿ'}[dir=rtl] .ms-Icon--NavigateForward::before{content:'ï‹ '}.ms-Icon--NavigateForwardMirrored::before{content:'ï‹ '}[dir=rtl] .ms-Icon--NavigateForwardMirrored::before{content:'ï‹Ÿ'}.ms-Icon--NavigationFlipper::before{content:'ï”'}.ms-Icon--NetworkTower::before{content:'î°…'}.ms-Icon--NewAnalyticsQuery::before{content:'ï‡ '}.ms-Icon--NewFolder::before{content:''}.ms-Icon--NewMail::before{content:''}.ms-Icon--News::before{content:''}.ms-Icon--NewsSearch::before{content:'ï“©'}.ms-Icon--NewTeamProject::before{content:''}.ms-Icon--Next::before{content:''}.ms-Icon--NormalWeight::before{content:''}.ms-Icon--NoteForward::before{content:''}.ms-Icon--NotePinned::before{content:''}.ms-Icon--NoteReply::before{content:''}.ms-Icon--NotExecuted::before{content:'ï‘€'}.ms-Icon--NotImpactedSolid::before{content:'ï‘'}.ms-Icon--NugetLogo::before{content:'ï‘Œ'}.ms-Icon--NUIFace::before{content:'î¨'}.ms-Icon--NumberedList::before{content:''}[dir=rtl] .ms-Icon--NumberedList::before{content:''}.ms-Icon--NumberedListMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListMirrored::before{content:''}.ms-Icon--NumberedListNumber::before{content:'ïž—'}[dir=rtl] .ms-Icon--NumberedListNumber::before{content:'ïž™'}.ms-Icon--NumberedListNumberMirrored::before{content:'ïž™'}[dir=rtl] .ms-Icon--NumberedListNumberMirrored::before{content:'ïž—'}.ms-Icon--NumberedListText::before{content:'ïž–'}[dir=rtl] .ms-Icon--NumberedListText::before{content:''}.ms-Icon--NumberedListTextMirrored::before{content:''}[dir=rtl] .ms-Icon--NumberedListTextMirrored::before{content:'ïž–'}.ms-Icon--NumberField::before{content:'î·„'}.ms-Icon--NumberSequence::before{content:''}.ms-Icon--NumberSymbol::before{content:''}.ms-Icon--Octagon::before{content:''}.ms-Icon--OEM::before{content:'îŒ'}.ms-Icon--OfficeAddinsLogo::before{content:''}.ms-Icon--OfficeAssistantLogo::before{content:'î·Ž'}.ms-Icon--OfficeChat::before{content:'ïœ'}.ms-Icon--OfficeChatSolid::before{content:'ïœ'}.ms-Icon--OfficeFormsLogo::before{content:'ï´'}.ms-Icon--OfficeFormsLogo16::before{content:'ï¶'}.ms-Icon--OfficeFormsLogo24::before{content:'ï»'}.ms-Icon--OfficeFormsLogoFill::before{content:'ïµ'}.ms-Icon--OfficeFormsLogoFill16::before{content:'ï·'}.ms-Icon--OfficeFormsLogoFill24::before{content:'ï¼'}.ms-Icon--OfficeFormsLogoInverse::before{content:''}.ms-Icon--OfficeFormsLogoInverse16::before{content:'ï³'}.ms-Icon--OfficeFormsLogoInverse24::before{content:'ïº'}.ms-Icon--OfficeLogo::before{content:'î®'}.ms-Icon--OfficeStoreLogo::before{content:'î·'}.ms-Icon--OfficeVideoLogo::before{content:''}.ms-Icon--OfficeVideoLogoFill::before{content:''}.ms-Icon--OfficeVideoLogoInverse::before{content:''}.ms-Icon--OfflineOneDriveParachute::before{content:''}.ms-Icon--OfflineOneDriveParachuteDisabled::before{content:''}.ms-Icon--OfflineStorage::before{content:''}.ms-Icon--OfflineStorageSolid::before{content:'ïŽ'}.ms-Icon--Onboarding::before{content:''}.ms-Icon--OneDriveAdd::before{content:'î¼²'}.ms-Icon--OneDriveFolder16::before{content:'ï”»'}.ms-Icon--OneDriveLogo::before{content:'î¥'}.ms-Icon--OneNoteEduLogoInverse::before{content:'î·'}.ms-Icon--OneNoteLogo::before{content:''}.ms-Icon--OneNoteLogo16::before{content:''}.ms-Icon--OneNoteLogoFill::before{content:''}.ms-Icon--OneNoteLogoFill16::before{content:''}.ms-Icon--OneNoteLogoInverse::before{content:'î°'}.ms-Icon--OneNoteLogoInverse16::before{content:''}.ms-Icon--OpenEnrollment::before{content:''}.ms-Icon--OpenFile::before{content:''}.ms-Icon--OpenFolderHorizontal::before{content:'î´¥'}.ms-Icon--OpenInNewTab::before{content:'ïš«'}.ms-Icon--OpenInNewWindow::before{content:''}.ms-Icon--OpenPane::before{content:'î¢ '}[dir=rtl] .ms-Icon--OpenPane::before{content:'î©›'}.ms-Icon--OpenPaneMirrored::before{content:'î©›'}[dir=rtl] .ms-Icon--OpenPaneMirrored::before{content:'î¢ '}.ms-Icon--OpenSource::before{content:''}.ms-Icon--OpenWith::before{content:''}[dir=rtl] .ms-Icon--OpenWith::before{content:'î©œ'}.ms-Icon--OpenWithMirrored::before{content:'î©œ'}[dir=rtl] .ms-Icon--OpenWithMirrored::before{content:''}.ms-Icon--Org::before{content:''}.ms-Icon--Orientation::before{content:''}.ms-Icon--Orientation2::before{content:''}.ms-Icon--OutlookLogo::before{content:''}.ms-Icon--OutlookLogo16::before{content:'ïŽ'}.ms-Icon--OutlookLogoFill::before{content:''}.ms-Icon--OutlookLogoFill16::before{content:''}.ms-Icon--OutlookLogoInverse::before{content:'î'}.ms-Icon--OutlookLogoInverse16::before{content:''}.ms-Icon--OutOfOffice::before{content:'î´´'}.ms-Icon--Package::before{content:''}.ms-Icon--Packages::before{content:''}.ms-Icon--Padding::before{content:''}.ms-Icon--PaddingBottom::before{content:''}.ms-Icon--PaddingLeft::before{content:'ï”›'}.ms-Icon--PaddingRight::before{content:''}.ms-Icon--PaddingTop::before{content:'ï”™'}.ms-Icon--Page::before{content:''}.ms-Icon--PageAdd::before{content:''}.ms-Icon--PageArrowRight::before{content:''}.ms-Icon--PageCheckedin::before{content:'ï„„'}.ms-Icon--PageCheckedOut::before{content:''}.ms-Icon--PageData::before{content:''}.ms-Icon--PageEdit::before{content:''}.ms-Icon--PageHeader::before{content:'î³®'}.ms-Icon--PageHeaderEdit::before{content:'îŒ'}.ms-Icon--PageLeft::before{content:'î '}.ms-Icon--PageLink::before{content:''}.ms-Icon--PageList::before{content:''}.ms-Icon--PageListFilter::before{content:'ï “'}.ms-Icon--PageListSolid::before{content:''}[dir=rtl] .ms-Icon--PageListSolid::before{content:''}.ms-Icon--PageListMirroredSolid::before{content:''}[dir=rtl] .ms-Icon--PageListMirroredSolid::before{content:''}.ms-Icon--PageLock::before{content:'ï¿'}.ms-Icon--PageRemove::before{content:''}.ms-Icon--PageRight::before{content:'î¡'}.ms-Icon--PageShared::before{content:'ï€'}.ms-Icon--PageSolid::before{content:''}.ms-Icon--PanoIndicator::before{content:'îž°'}.ms-Icon--Parachute::before{content:'ï‘'}.ms-Icon--ParachuteSolid::before{content:'ï’'}.ms-Icon--Parameter::before{content:''}.ms-Icon--ParkingLocation::before{content:'î ‘'}[dir=rtl] .ms-Icon--ParkingLocation::before{content:'î©ž'}.ms-Icon--ParkingLocationMirrored::before{content:'î©ž'}[dir=rtl] .ms-Icon--ParkingLocationMirrored::before{content:'î ‘'}.ms-Icon--ParkingSolid::before{content:'ïŠ'}[dir=rtl] .ms-Icon--ParkingSolid::before{content:'ï‹'}.ms-Icon--ParkingMirroredSolid::before{content:'ï‹'}[dir=rtl] .ms-Icon--ParkingMirroredSolid::before{content:'ïŠ'}.ms-Icon--PartlyCloudyDay::before{content:''}.ms-Icon--PartlyCloudyNight::before{content:'î§'}.ms-Icon--PartyLeader::before{content:''}.ms-Icon--PassiveAuthentication::before{content:''}.ms-Icon--PasswordField::before{content:''}.ms-Icon--Paste::before{content:'î¿'}.ms-Icon--PasteAsCode::before{content:'ï—–'}.ms-Icon--PasteAsText::before{content:'ï—•'}.ms-Icon--Pause::before{content:'î©'}.ms-Icon--PaymentCard::before{content:''}.ms-Icon--PC1::before{content:''}.ms-Icon--PDF::before{content:'îª'}.ms-Icon--PencilReply::before{content:'î½»'}.ms-Icon--Pentagon::before{content:'ï“¿'}.ms-Icon--PenWorkspace::before{content:'î·†'}.ms-Icon--People::before{content:''}.ms-Icon--PeopleAdd::before{content:''}.ms-Icon--PeopleAlert::before{content:''}.ms-Icon--PeopleBlock::before{content:''}.ms-Icon--PeoplePause::before{content:''}.ms-Icon--PeopleRepeat::before{content:''}.ms-Icon--Permissions::before{content:''}.ms-Icon--PermissionsSolid::before{content:'ï‰'}.ms-Icon--Personalize::before{content:'î±'}.ms-Icon--Phishing::before{content:''}.ms-Icon--Phone::before{content:''}.ms-Icon--Photo::before{content:''}.ms-Icon--Photo2::before{content:''}.ms-Icon--Photo2Add::before{content:''}.ms-Icon--Photo2Fill::before{content:''}.ms-Icon--Photo2Remove::before{content:''}.ms-Icon--PhotoCollection::before{content:''}.ms-Icon--PhotoError::before{content:'î·'}.ms-Icon--PhotoVideoMedia::before{content:''}.ms-Icon--Picture::before{content:''}.ms-Icon--PictureCenter::before{content:''}.ms-Icon--PictureFill::before{content:''}.ms-Icon--PictureLibrary::before{content:''}.ms-Icon--PicturePosition::before{content:''}.ms-Icon--PictureStretch::before{content:''}.ms-Icon--PictureTile::before{content:''}.ms-Icon--PieDouble::before{content:''}.ms-Icon--PieSingle::before{content:''}.ms-Icon--PieSingleSolid::before{content:'ï”°'}.ms-Icon--Pill::before{content:'î«‹'}.ms-Icon--Pin::before{content:''}.ms-Icon--Pinned::before{content:'î¡€'}.ms-Icon--PinnedFill::before{content:'î¡‚'}.ms-Icon--PinnedSolid::before{content:''}.ms-Icon--PinSolid12::before{content:'î’'}.ms-Icon--PinSolidOff12::before{content:'î“'}.ms-Icon--PivotChart::before{content:''}.ms-Icon--PlainText::before{content:'ï ´'}.ms-Icon--PlannerLogo::before{content:'î·‘'}.ms-Icon--PlanView::before{content:'ï '}.ms-Icon--Play::before{content:'î¨'}.ms-Icon--PlaybackRate1x::before{content:'î±—'}.ms-Icon--PlayerSettings::before{content:''}.ms-Icon--PlayResume::before{content:''}.ms-Icon--PlayReverse::before{content:'ï¥'}.ms-Icon--PlayReverseResume::before{content:'ï¤'}.ms-Icon--PlaySolid::before{content:'ï–°'}.ms-Icon--Plug::before{content:''}.ms-Icon--PlugConnected::before{content:''}.ms-Icon--PlugDisconnected::before{content:''}.ms-Icon--PlugSolid::before{content:'ïŒ'}.ms-Icon--POI::before{content:''}.ms-Icon--POISolid::before{content:'ï‹‘'}.ms-Icon--PollResults::before{content:'ï¢ '}.ms-Icon--PostUpdate::before{content:''}.ms-Icon--PowerApps::before{content:'î·’'}.ms-Icon--PowerApps2Logo::before{content:'ï‚’'}.ms-Icon--PowerAppsLogo::before{content:'ï‚‘'}.ms-Icon--PowerBILogo::before{content:''}.ms-Icon--PowerBILogo16::before{content:'ïž'}.ms-Icon--PowerBILogoBackplate16::before{content:'ïž‘'}.ms-Icon--PowerButton::before{content:''}.ms-Icon--PowerPointDocument::before{content:'î½²'}.ms-Icon--PowerPointLogo::before{content:''}.ms-Icon--PowerPointLogo16::before{content:''}.ms-Icon--PowerPointLogoFill::before{content:''}.ms-Icon--PowerPointLogoFill16::before{content:''}.ms-Icon--PowerPointLogoInverse::before{content:'î°ª'}.ms-Icon--PowerPointLogoInverse16::before{content:''}.ms-Icon--PowerShell::before{content:''}.ms-Icon--PowerShell2::before{content:''}.ms-Icon--Precipitation::before{content:'î§'}.ms-Icon--PresenceChickletVideo::before{content:''}.ms-Icon--Presentation::before{content:''}.ms-Icon--Presentation12::before{content:''}.ms-Icon--Preview::before{content:''}.ms-Icon--PreviewLink::before{content:''}.ms-Icon--Previous::before{content:''}.ms-Icon--PrimaryCalendar::before{content:'ï’®'}.ms-Icon--Print::before{content:'î‰'}.ms-Icon--PrintfaxPrinterFile::before{content:''}.ms-Icon--Processing::before{content:''}.ms-Icon--ProcessingCancel::before{content:'îƒ'}.ms-Icon--ProcessingPause::before{content:'î…'}.ms-Icon--ProcessingRun::before{content:'î„'}.ms-Icon--ProcessMetaTask::before{content:'ïŠ'}.ms-Icon--Product::before{content:''}.ms-Icon--ProductCatalog::before{content:''}.ms-Icon--ProductionFloorManagement::before{content:''}.ms-Icon--ProductList::before{content:''}.ms-Icon--ProductRelease::before{content:''}.ms-Icon--ProductVariant::before{content:''}.ms-Icon--ProfileSearch::before{content:'î¼µ'}.ms-Icon--ProFootball::before{content:''}.ms-Icon--ProgressLoopInner::before{content:''}.ms-Icon--ProgressLoopOuter::before{content:''}.ms-Icon--ProgressRingDots::before{content:'ï…ª'}.ms-Icon--ProHockey::before{content:''}.ms-Icon--ProjectCollection::before{content:'ï£'}.ms-Icon--ProjectDocument::before{content:'ï™'}.ms-Icon--ProjectLogo16::before{content:'ï’€'}.ms-Icon--ProjectLogo32::before{content:''}.ms-Icon--ProjectLogoFill16::before{content:'ï’'}.ms-Icon--ProjectLogoFill32::before{content:'ï‘¿'}.ms-Icon--ProjectLogoInverse::before{content:'î·”'}.ms-Icon--PromotedDatabase::before{content:'ï½'}.ms-Icon--ProtectedDocument::before{content:''}.ms-Icon--ProtectionCenterLogo32::before{content:'ï’”'}.ms-Icon--ProtectRestrict::before{content:''}.ms-Icon--ProvisioningPackage::before{content:'î µ'}.ms-Icon--PublicCalendar::before{content:'î½'}.ms-Icon--PublicContactCard::before{content:'î½®'}[dir=rtl] .ms-Icon--PublicContactCard::before{content:''}.ms-Icon--PublicContactCardMirrored::before{content:''}[dir=rtl] .ms-Icon--PublicContactCardMirrored::before{content:'î½®'}.ms-Icon--PublicEmail::before{content:''}.ms-Icon--PublicFolder::before{content:'î½°'}.ms-Icon--PublishContent::before{content:''}.ms-Icon--PublishCourse::before{content:'ïš™'}.ms-Icon--PublisherLogo::before{content:'ï‡'}.ms-Icon--PublisherLogo16::before{content:'ïŽ '}.ms-Icon--PublisherLogoFill::before{content:''}.ms-Icon--PublisherLogoFill16::before{content:''}.ms-Icon--PublisherLogoInverse16::before{content:''}.ms-Icon--Puzzle::before{content:''}.ms-Icon--PY::before{content:''}.ms-Icon--PythonLanguage::before{content:''}.ms-Icon--QandA::before{content:''}.ms-Icon--QandAMirror::before{content:''}.ms-Icon--QRCode::before{content:'î´”'}.ms-Icon--QuadColumn::before{content:''}.ms-Icon--Quantity::before{content:''}.ms-Icon--QuarterCircle::before{content:''}.ms-Icon--QueryList::before{content:''}.ms-Icon--Questionnaire::before{content:''}[dir=rtl] .ms-Icon--Questionnaire::before{content:''}.ms-Icon--QuestionnaireMirrored::before{content:''}[dir=rtl] .ms-Icon--QuestionnaireMirrored::before{content:''}.ms-Icon--QuickNote::before{content:''}.ms-Icon--QuickNoteSolid::before{content:''}.ms-Icon--R::before{content:'ï“«'}.ms-Icon--RadioBtnOff::before{content:''}.ms-Icon--RadioBtnOn::before{content:''}.ms-Icon--RadioBullet::before{content:''}.ms-Icon--Rain::before{content:''}.ms-Icon--RainShowersDay::before{content:''}.ms-Icon--RainShowersNight::before{content:'î¨'}.ms-Icon--RainSnow::before{content:''}.ms-Icon--RawSource::before{content:''}.ms-Icon--Read::before{content:''}.ms-Icon--ReadingMode::before{content:''}.ms-Icon--ReadingModeSolid::before{content:''}.ms-Icon--ReadOutLoud::before{content:'ï„’'}.ms-Icon--RealEstate::before{content:'î˜'}.ms-Icon--ReceiptCheck::before{content:'î½›'}.ms-Icon--ReceiptForward::before{content:'î½™'}.ms-Icon--ReceiptReply::before{content:''}.ms-Icon--ReceiptTentative::before{content:'ïš'}[dir=rtl] .ms-Icon--ReceiptTentative::before{content:'ï›'}.ms-Icon--ReceiptTentativeMirrored::before{content:'ï›'}[dir=rtl] .ms-Icon--ReceiptTentativeMirrored::before{content:'ïš'}.ms-Icon--ReceiptUndelivered::before{content:'ï™'}.ms-Icon--Recent::before{content:'î £'}.ms-Icon--Record2::before{content:''}.ms-Icon--RecruitmentManagement::before{content:''}.ms-Icon--RectangleShape::before{content:''}.ms-Icon--RectangleShapeSolid::before{content:''}.ms-Icon--RectangularClipping::before{content:'ï‡'}.ms-Icon--RecurringEvent::before{content:'î½'}.ms-Icon--RecurringTask::before{content:''}.ms-Icon--RecycleBin::before{content:''}.ms-Icon--Redeploy::before{content:''}.ms-Icon--RedEye::before{content:'îž³'}.ms-Icon--RedEye12::before{content:'îŽ'}.ms-Icon--Redo::before{content:''}.ms-Icon--Refresh::before{content:''}.ms-Icon--RegistryEditor::before{content:''}.ms-Icon--Relationship::before{content:''}.ms-Icon--ReleaseDefinition::before{content:''}.ms-Icon--ReleaseGate::before{content:'ïž¾'}.ms-Icon--ReleaseGateCheck::before{content:'ïž¿'}.ms-Icon--ReleaseGateError::before{content:''}.ms-Icon--ReminderGroup::before{content:''}.ms-Icon--ReminderPerson::before{content:''}.ms-Icon--ReminderTime::before{content:''}.ms-Icon--Remote::before{content:''}.ms-Icon--Remove::before{content:''}.ms-Icon--RemoveContent::before{content:''}.ms-Icon--RemoveEvent::before{content:''}.ms-Icon--RemoveFilter::before{content:''}.ms-Icon--RemoveFromShoppingList::before{content:''}.ms-Icon--RemoveFromTrash::before{content:'ï «'}.ms-Icon--RemoveLink::before{content:'î¶'}.ms-Icon--RemoveLinkChain::before{content:'ïžš'}.ms-Icon--RemoveLinkX::before{content:'ïž›'}.ms-Icon--RemoveOccurrence::before{content:''}.ms-Icon--Rename::before{content:''}.ms-Icon--RenewalCurrent::before{content:'ï•…'}.ms-Icon--RenewalFuture::before{content:''}.ms-Icon--ReopenPages::before{content:'îµ'}.ms-Icon--Repair::before{content:'î¤'}.ms-Icon--RepeatAll::before{content:''}.ms-Icon--RepeatHeaderRows::before{content:'î«'}.ms-Icon--RepeatOne::before{content:'î£'}.ms-Icon--ReplyAllAlt::before{content:''}.ms-Icon--ReplyAll::before{content:''}[dir=rtl] .ms-Icon--ReplyAll::before{content:''}.ms-Icon--ReplyAllMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyAllMirrored::before{content:''}.ms-Icon--ReplyAlt::before{content:''}.ms-Icon--Reply::before{content:''}[dir=rtl] .ms-Icon--Reply::before{content:''}.ms-Icon--ReplyMirrored::before{content:''}[dir=rtl] .ms-Icon--ReplyMirrored::before{content:''}.ms-Icon--Repo::before{content:'ï‹‹'}.ms-Icon--ReportAdd::before{content:''}.ms-Icon--ReportDocument::before{content:''}.ms-Icon--ReportHacked::before{content:''}.ms-Icon--ReportLibrary::before{content:''}[dir=rtl] .ms-Icon--ReportLibrary::before{content:''}.ms-Icon--ReportLibraryMirrored::before{content:''}[dir=rtl] .ms-Icon--ReportLibraryMirrored::before{content:''}.ms-Icon--ReportLock::before{content:''}.ms-Icon--ReportWarning::before{content:'ï•©'}.ms-Icon--RepoSolid::before{content:'ï‹Œ'}.ms-Icon--Rerun::before{content:''}.ms-Icon--ReservationOrders::before{content:'ï¡…'}.ms-Icon--Reset::before{content:'î£'}.ms-Icon--ResetDevice::before{content:'î´'}.ms-Icon--ResponsesMenu::before{content:'ï¨'}.ms-Icon--ReturnKey::before{content:'î‘'}.ms-Icon--ReturnToSession::before{content:'î´¤'}.ms-Icon--ReviewRequestSolid::before{content:'ï–'}[dir=rtl] .ms-Icon--ReviewRequestSolid::before{content:'ï—'}.ms-Icon--ReviewRequestMirroredSolid::before{content:'ï—'}[dir=rtl] .ms-Icon--ReviewRequestMirroredSolid::before{content:'ï–'}.ms-Icon--ReviewResponseSolid::before{content:'ï˜'}.ms-Icon--ReviewSolid::before{content:'ï•'}.ms-Icon--RevToggleKey::before{content:'î¡…'}.ms-Icon--Rewind::before{content:''}.ms-Icon--Ribbon::before{content:''}.ms-Icon--RibbonSolid::before{content:'ï…'}.ms-Icon--RightDoubleQuote::before{content:''}.ms-Icon--RightTriangle::before{content:''}.ms-Icon--Ringer::before{content:'îª'}.ms-Icon--RingerOff::before{content:'ï‹…'}.ms-Icon--RingerRemove::before{content:''}.ms-Icon--RingerSolid::before{content:''}.ms-Icon--Robot::before{content:''}.ms-Icon--Rocket::before{content:''}.ms-Icon--Room::before{content:''}.ms-Icon--Rotate::before{content:'îž'}.ms-Icon--Rotate90Clockwise::before{content:'ï '}.ms-Icon--Rotate90CounterClockwise::before{content:'ï Ž'}.ms-Icon--RowsChild::before{content:''}.ms-Icon--RowsGroup::before{content:''}.ms-Icon--Rugby::before{content:'î¬'}.ms-Icon--Running::before{content:'î«š'}.ms-Icon--Sad::before{content:'î—'}.ms-Icon--SadSolid::before{content:''}.ms-Icon--Save::before{content:'îŽ'}.ms-Icon--SaveAll::before{content:''}.ms-Icon--SaveAndClose::before{content:''}.ms-Icon--SaveAs::before{content:'îž’'}.ms-Icon--SaveTemplate::before{content:''}.ms-Icon--SaveToMobile::before{content:'ïŸ '}.ms-Icon--Savings::before{content:''}.ms-Icon--ScaleUp::before{content:'î´‰'}.ms-Icon--ScaleVolume::before{content:''}.ms-Icon--ScatterChart::before{content:'î¿«'}.ms-Icon--ScheduleEventAction::before{content:''}.ms-Icon--SchoolDataSyncLogo::before{content:'îŒ'}.ms-Icon--ScopeTemplate::before{content:''}.ms-Icon--ScreenCast::before{content:''}.ms-Icon--Script::before{content:''}.ms-Icon--ScrollUpDown::before{content:'î²'}.ms-Icon--SDCard::before{content:''}.ms-Icon--Search::before{content:''}.ms-Icon--SearchAndApps::before{content:'î³'}.ms-Icon--SearchBookmark::before{content:'ï–¸'}.ms-Icon--SearchCalendar::before{content:'ï’¯'}.ms-Icon--SearchData::before{content:'ï±'}.ms-Icon--SearchIssue::before{content:'ï‚š'}[dir=rtl] .ms-Icon--SearchIssue::before{content:'ï‚›'}.ms-Icon--SearchIssueMirrored::before{content:'ï‚›'}[dir=rtl] .ms-Icon--SearchIssueMirrored::before{content:'ï‚š'}.ms-Icon--SearchNearby::before{content:'î '}.ms-Icon--SecondaryNav::before{content:'ï ”'}.ms-Icon--Section::before{content:'î°Œ'}.ms-Icon--Sections::before{content:''}.ms-Icon--SecurityGroup::before{content:''}.ms-Icon--SeeDo::before{content:'î ˆ'}.ms-Icon--SelectAll::before{content:''}.ms-Icon--Sell::before{content:''}.ms-Icon--SemiboldWeight::before{content:'ï“°'}.ms-Icon--Send::before{content:''}[dir=rtl] .ms-Icon--Send::before{content:'î©£'}.ms-Icon--SendMirrored::before{content:'î©£'}[dir=rtl] .ms-Icon--SendMirrored::before{content:''}.ms-Icon--SentimentAnalysis::before{content:''}.ms-Icon--Separator::before{content:'ïž'}.ms-Icon--Server::before{content:'ïˆ'}.ms-Icon--ServerEnviroment::before{content:''}.ms-Icon--ServerProcesses::before{content:''}.ms-Icon--ServiceOff::before{content:'î½'}.ms-Icon--SetAction::before{content:'ï±'}.ms-Icon--Settings::before{content:''}.ms-Icon--ShakeDevice::before{content:'ï Š'}.ms-Icon--Shapes::before{content:'î±¼'}.ms-Icon--ShapeSolid::before{content:'î¢'}.ms-Icon--Share::before{content:'îœ'}.ms-Icon--SharedDatabase::before{content:'î™'}.ms-Icon--ShareiOS::before{content:'î½¹'}.ms-Icon--SharepointAppIcon16::before{content:'î¥'}.ms-Icon--SharepointLogo::before{content:''}.ms-Icon--SharepointLogoFill::before{content:''}.ms-Icon--SharepointLogoInverse::before{content:'î´˜'}.ms-Icon--Shield::before{content:''}.ms-Icon--ShieldAlert::before{content:''}.ms-Icon--ShieldSolid::before{content:'ï€'}.ms-Icon--Shirt::before{content:'î´€'}.ms-Icon--Shop::before{content:''}.ms-Icon--ShoppingCart::before{content:'îž¿'}.ms-Icon--ShoppingCartSolid::before{content:'ï‚'}.ms-Icon--ShopServer::before{content:''}.ms-Icon--ShowGrid::before{content:''}.ms-Icon--ShowResults::before{content:''}[dir=rtl] .ms-Icon--ShowResults::before{content:'î©¥'}.ms-Icon--ShowResultsMirrored::before{content:'î©¥'}[dir=rtl] .ms-Icon--ShowResultsMirrored::before{content:''}.ms-Icon--ShowTimeAs::before{content:''}.ms-Icon--SidePanel::before{content:'î½’'}[dir=rtl] .ms-Icon--SidePanel::before{content:''}.ms-Icon--SidePanelMirrored::before{content:''}[dir=rtl] .ms-Icon--SidePanelMirrored::before{content:'î½’'}.ms-Icon--Signin::before{content:''}.ms-Icon--SignOut::before{content:''}.ms-Icon--SingleBookmark::before{content:'î·¿'}.ms-Icon--SingleBookmarkSolid::before{content:''}.ms-Icon--SingleColumn::before{content:''}.ms-Icon--SingleColumnEdit::before{content:''}.ms-Icon--SIPMove::before{content:'î™'}.ms-Icon--SiteScan::before{content:''}.ms-Icon--SizeLegacy::before{content:''}.ms-Icon--SkipBack10::before{content:'î´¼'}.ms-Icon--SkipForward30::before{content:'î´½'}.ms-Icon--SkiResorts::before{content:'î…'}.ms-Icon--SkypeArrow::before{content:'ïˆ'}.ms-Icon--SkypeCheck::before{content:'î¾€'}.ms-Icon--SkypeCircleArrow::before{content:'ï‡'}.ms-Icon--SkypeCircleCheck::before{content:'î½½'}.ms-Icon--SkypeCircleClock::before{content:'î½¾'}.ms-Icon--SkypeCircleMinus::before{content:''}.ms-Icon--SkypeCircleSlash::before{content:'ï ¥'}.ms-Icon--SkypeClock::before{content:'î¾'}.ms-Icon--SkypeForBusinessLogo::before{content:''}.ms-Icon--SkypeForBusinessLogo16::before{content:'ï'}.ms-Icon--SkypeForBusinessLogoFill::before{content:''}.ms-Icon--SkypeForBusinessLogoFill16::before{content:'ï'}.ms-Icon--SkypeLogo::before{content:'î¯'}.ms-Icon--SkypeLogo16::before{content:'ïŽ'}.ms-Icon--SkypeMessage::before{content:''}.ms-Icon--SkypeMinus::before{content:''}.ms-Icon--SkypeSlash::before{content:'ï ¦'}.ms-Icon--Slider::before{content:''}.ms-Icon--SliderHandleSize::before{content:''}.ms-Icon--SliderThumb::before{content:'î°“'}.ms-Icon--Slideshow::before{content:''}.ms-Icon--SmartGlassRemote::before{content:'ï ‹'}.ms-Icon--SnapToGrid::before{content:''}.ms-Icon--Snooze::before{content:'ï’½'}.ms-Icon--Snow::before{content:''}.ms-Icon--Snowflake::before{content:'î†'}.ms-Icon--SnowShowerDay::before{content:''}.ms-Icon--SnowShowerNight::before{content:''}.ms-Icon--Soccer::before{content:''}.ms-Icon--SocialListeningLogo::before{content:'îµ¼'}.ms-Icon--Sort::before{content:''}.ms-Icon--SortDown::before{content:''}.ms-Icon--SortLines::before{content:'î§'}.ms-Icon--SortUp::before{content:''}.ms-Icon--Source::before{content:''}.ms-Icon--Spacer::before{content:'ï'}.ms-Icon--Speakers::before{content:''}.ms-Icon--SpecialEvent::before{content:''}.ms-Icon--SpeedHigh::before{content:''}.ms-Icon--Spelling::before{content:'ï¡»'}.ms-Icon--Split::before{content:''}.ms-Icon--SplitObject::before{content:''}.ms-Icon--Sprint::before{content:''}.ms-Icon--Squalls::before{content:''}.ms-Icon--SquareShape::before{content:''}.ms-Icon--SquareShapeSolid::before{content:''}.ms-Icon--Stack::before{content:''}.ms-Icon--StackColumnChart::before{content:''}.ms-Icon--StackedBarChart::before{content:'ï‰'}.ms-Icon--StackedColumnChart2::before{content:''}.ms-Icon--StackedColumnChart2Fill::before{content:'ï ±'}.ms-Icon--StackedLineChart::before{content:''}.ms-Icon--StackIndicator::before{content:''}.ms-Icon--StaffNotebookLogo16::before{content:'ï’Ž'}.ms-Icon--StaffNotebookLogo32::before{content:'ï’Œ'}.ms-Icon--StaffNotebookLogoFill16::before{content:'ï’'}.ms-Icon--StaffNotebookLogoFill32::before{content:'ï’'}.ms-Icon--StaffNotebookLogoInverted16::before{content:'ï’‘'}.ms-Icon--StaffNotebookLogoInverted32::before{content:'ï’'}.ms-Icon--Starburst::before{content:''}.ms-Icon--StarburstSolid::before{content:''}.ms-Icon--StatusCircleBlock::before{content:'ï…€'}.ms-Icon--StatusCircleBlock2::before{content:'ï…'}.ms-Icon--StatusCircleCheckmark::before{content:''}.ms-Icon--StatusCircleErrorX::before{content:''}.ms-Icon--StatusCircleExclamation::before{content:''}.ms-Icon--StatusCircleInfo::before{content:'ï„¿'}.ms-Icon--StatusCircleInner::before{content:'ï„·'}.ms-Icon--StatusCircleOuter::before{content:''}.ms-Icon--StatusCircleQuestionMark::before{content:'ï…‚'}.ms-Icon--StatusCircleRing::before{content:''}.ms-Icon--StatusCircleSync::before{content:'ï…ƒ'}.ms-Icon--StatusErrorFull::before{content:'î®'}.ms-Icon--StatusTriangle::before{content:''}.ms-Icon--StatusTriangleExclamation::before{content:'ï„»'}.ms-Icon--StatusTriangleInner::before{content:''}.ms-Icon--StatusTriangleOuter::before{content:''}.ms-Icon--Step::before{content:'ï‰'}.ms-Icon--StepInsert::before{content:''}.ms-Icon--StepShared::before{content:''}.ms-Icon--StepSharedAdd::before{content:''}.ms-Icon--StepSharedInsert::before{content:''}.ms-Icon--StickyNotesOutlineAppIcon::before{content:'îª'}.ms-Icon--StickyNotesSolidAppIcon::before{content:'î«'}.ms-Icon--StockDown::before{content:'î¬'}.ms-Icon--StockUp::before{content:''}.ms-Icon--Stop::before{content:''}.ms-Icon--StopSolid::before{content:''}.ms-Icon--Stopwatch::before{content:''}.ms-Icon--StorageOptical::before{content:''}.ms-Icon--StoreLogo16::before{content:''}.ms-Icon--StoreLogoMed20::before{content:''}.ms-Icon--Storyboard::before{content:''}.ms-Icon--Streaming::before{content:''}.ms-Icon--StreamingOff::before{content:''}.ms-Icon--StreamLogo::before{content:''}.ms-Icon--Street::before{content:''}.ms-Icon--StreetsideSplitMinimize::before{content:'î ‚'}.ms-Icon--Strikethrough::before{content:'î· '}.ms-Icon--Subscribe::before{content:''}.ms-Icon--Subscript::before{content:'î·Ÿ'}.ms-Icon--SubstitutionsIn::before{content:''}.ms-Icon--Suitcase::before{content:'î·“'}.ms-Icon--SunAdd::before{content:''}.ms-Icon--Sunny::before{content:''}.ms-Icon--SunQuestionMark::before{content:''}.ms-Icon--Superscript::before{content:'î·ž'}.ms-Icon--SurveyQuestions::before{content:''}.ms-Icon--SwayLogo16::before{content:'ï’„'}.ms-Icon--SwayLogo32::before{content:'ï’‚'}.ms-Icon--SwayLogoFill16::before{content:'ï’…'}.ms-Icon--SwayLogoFill32::before{content:'ï’ƒ'}.ms-Icon--SwayLogoInverse::before{content:'î´©'}.ms-Icon--Switch::before{content:''}.ms-Icon--SwitcherStartEnd::before{content:'î '}.ms-Icon--SwitchUser::before{content:'îˆ'}.ms-Icon--Sync::before{content:''}.ms-Icon--SyncFolder::before{content:''}.ms-Icon--SyncOccurence::before{content:'ï’£'}.ms-Icon--SyncStatus::before{content:'ï‘'}.ms-Icon--SyncStatusSolid::before{content:'ï’'}.ms-Icon--SyncToPC::before{content:'î¹®'}.ms-Icon--System::before{content:'î°'}.ms-Icon--Tab::before{content:''}.ms-Icon--TabCenter::before{content:'ï„€'}.ms-Icon--Table::before{content:''}.ms-Icon--TableBrandedColumn::before{content:'î±'}.ms-Icon--TableBrandedRow::before{content:'î®'}.ms-Icon--TableComputed::before{content:''}.ms-Icon--TableFirstColumn::before{content:'î¯'}.ms-Icon--TableGroup::before{content:'ï›™'}.ms-Icon--TableHeaderRow::before{content:'î¬'}.ms-Icon--TableLastColumn::before{content:'î°'}.ms-Icon--TableLink::before{content:'ïº'}.ms-Icon--Tablet::before{content:''}.ms-Icon--TabletMode::before{content:''}.ms-Icon--TableTotalRow::before{content:'î'}.ms-Icon--TabletSelected::before{content:'î±´'}.ms-Icon--TabOneColumn::before{content:''}.ms-Icon--TabThreeColumn::before{content:'ï¡‹'}.ms-Icon--TabTwoColumn::before{content:'ï¡Š'}.ms-Icon--Tag::before{content:''}.ms-Icon--TagGroup::before{content:'î¶'}.ms-Icon--TagSolid::before{content:''}.ms-Icon--TagUnknown::before{content:''}.ms-Icon--TagUnknown12::before{content:''}.ms-Icon--TagUnknown12Mirror::before{content:''}.ms-Icon--TagUnknownMirror::before{content:'ï› '}.ms-Icon--Taskboard::before{content:''}.ms-Icon--TaskGroup::before{content:''}[dir=rtl] .ms-Icon--TaskGroup::before{content:''}.ms-Icon--TaskGroupMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskGroupMirrored::before{content:''}.ms-Icon--TaskList::before{content:''}.ms-Icon--TaskLogo::before{content:'ï’“'}.ms-Icon--TaskManager::before{content:''}[dir=rtl] .ms-Icon--TaskManager::before{content:''}.ms-Icon--TaskManagerMirrored::before{content:''}[dir=rtl] .ms-Icon--TaskManagerMirrored::before{content:''}.ms-Icon--TaskSolid::before{content:''}.ms-Icon--Taxi::before{content:'ï’¡'}.ms-Icon--TeamFavorite::before{content:'ïŠ'}.ms-Icon--TeamsLogo::before{content:''}.ms-Icon--TeamsLogo16::before{content:'ïŠ'}.ms-Icon--TeamsLogoFill::before{content:''}.ms-Icon--TeamsLogoFill16::before{content:'ï‹'}.ms-Icon--TeamsLogoInverse::before{content:''}.ms-Icon--Teamwork::before{content:''}.ms-Icon--Teeth::before{content:'ï’ '}.ms-Icon--Telemarketer::before{content:'îž¹'}.ms-Icon--TemporaryUser::before{content:''}.ms-Icon--Tennis::before{content:''}.ms-Icon--TestAutoSolid::before{content:''}.ms-Icon--TestBeaker::before{content:''}.ms-Icon--TestBeakerSolid::before{content:''}.ms-Icon--TestCase::before{content:''}.ms-Icon--TestExploreSolid::before{content:''}.ms-Icon--TestImpactSolid::before{content:''}.ms-Icon--TestParameter::before{content:'ïŽ'}.ms-Icon--TestPlan::before{content:''}.ms-Icon--TestStep::before{content:''}.ms-Icon--TestSuite::before{content:''}.ms-Icon--TestUserSolid::before{content:''}.ms-Icon--TextAlignBottom::before{content:'î¢'}.ms-Icon--TextAlignMiddle::before{content:'î¡'}.ms-Icon--TextAlignTop::before{content:'î '}.ms-Icon--TextBox::before{content:'î·‚'}.ms-Icon--TextCallout::before{content:''}.ms-Icon--TextDocument::before{content:''}.ms-Icon--TextDocumentShared::before{content:''}.ms-Icon--TextField::before{content:'î·ƒ'}.ms-Icon--TextOverflow::before{content:''}.ms-Icon--TextParagraphOption::before{content:'î£'}.ms-Icon--TextRecognition::before{content:''}.ms-Icon--TextRotate270Degrees::before{content:'î§'}.ms-Icon--TextRotate90Degrees::before{content:'î¦'}.ms-Icon--TextRotateHorizontal::before{content:'î¥'}.ms-Icon--TextRotation::before{content:'î¤'}.ms-Icon--TFVCLogo::before{content:'ï‘'}.ms-Icon--ThisPC::before{content:''}.ms-Icon--ThreeQuarterCircle::before{content:''}.ms-Icon--ThumbnailView::before{content:''}[dir=rtl] .ms-Icon--ThumbnailView::before{content:''}.ms-Icon--ThumbnailViewMirrored::before{content:''}[dir=rtl] .ms-Icon--ThumbnailViewMirrored::before{content:''}.ms-Icon--Thunderstorms::before{content:''}.ms-Icon--Ticket::before{content:'î”'}.ms-Icon--Tiles::before{content:'î²¥'}.ms-Icon--Tiles2::before{content:'î½¼'}.ms-Icon--TimeEntry::before{content:''}.ms-Icon--Timeline::before{content:''}.ms-Icon--TimelineDelivery::before{content:''}.ms-Icon--TimelineMatrixView::before{content:'ï¡'}.ms-Icon--TimelineProgress::before{content:''}.ms-Icon--TimePicker::before{content:'î§'}.ms-Icon--Timer::before{content:''}.ms-Icon--TimeSheet::before{content:''}.ms-Icon--ToDoLogoBottom::before{content:'ï’³'}.ms-Icon--ToDoLogoInverse::before{content:'ï’¼'}.ms-Icon--ToDoLogoOutline::before{content:'ï›'}.ms-Icon--ToDoLogoTop::before{content:'ï’´'}.ms-Icon--ToggleBorder::before{content:'î°’'}.ms-Icon--ToggleFilled::before{content:'î°‘'}.ms-Icon--ToggleLeft::before{content:''}.ms-Icon--ToggleRight::before{content:''}.ms-Icon--ToggleThumb::before{content:'î°”'}.ms-Icon--Toll::before{content:'ï… '}.ms-Icon--Toolbox::before{content:'î³'}.ms-Icon--Total::before{content:''}.ms-Icon--Touch::before{content:'î •'}.ms-Icon--TouchPointer::before{content:''}.ms-Icon--Trackers::before{content:'î«Ÿ'}[dir=rtl] .ms-Icon--Trackers::before{content:''}.ms-Icon--TrackersMirrored::before{content:''}[dir=rtl] .ms-Icon--TrackersMirrored::before{content:'î«Ÿ'}.ms-Icon--Train::before{content:''}.ms-Icon--TrainSolid::before{content:'î'}.ms-Icon--TransferCall::before{content:''}.ms-Icon--Transition::before{content:''}.ms-Icon--TransitionEffect::before{content:'ï–´'}.ms-Icon--TransitionPop::before{content:'ï–²'}.ms-Icon--TransitionPush::before{content:'ï–³'}.ms-Icon--Translate::before{content:'îž²'}.ms-Icon--Trending12::before{content:'ï˜'}.ms-Icon--TriangleDown12::before{content:''}.ms-Icon--TriangleLeft12::before{content:'î»’'}.ms-Icon--TriangleRight12::before{content:''}.ms-Icon--TriangleShape::before{content:''}.ms-Icon--TriangleShapeSolid::before{content:''}.ms-Icon--TriangleSolid::before{content:''}.ms-Icon--TriangleSolidDown12::before{content:'î»'}.ms-Icon--TriangleSolidLeft12::before{content:''}.ms-Icon--TriangleSolidRight12::before{content:'î»'}.ms-Icon--TriangleSolidUp12::before{content:''}.ms-Icon--TriangleUp12::before{content:'î»'}.ms-Icon--TriggerApproval::before{content:''}.ms-Icon--TriggerAuto::before{content:''}.ms-Icon--TriggerUser::before{content:''}.ms-Icon--Trim::before{content:''}.ms-Icon--TrimEnd::before{content:''}.ms-Icon--TrimStart::before{content:''}.ms-Icon--TripleColumn::before{content:''}.ms-Icon--TripleColumnEdit::before{content:''}.ms-Icon--TripleColumnWide::before{content:'ï™®'}.ms-Icon--Trophy::before{content:'î´¿'}.ms-Icon--Trophy2::before{content:''}.ms-Icon--Trophy2Solid::before{content:''}.ms-Icon--TurnRight::before{content:''}.ms-Icon--TVMonitor::before{content:''}.ms-Icon--TVMonitorSelected::before{content:'î±·'}.ms-Icon--TypeScriptLanguage::before{content:'ï‹·'}.ms-Icon--Umbrella::before{content:'î°„'}.ms-Icon--Underline::before{content:''}.ms-Icon--Undo::before{content:''}.ms-Icon--Uneditable2::before{content:''}[dir=rtl] .ms-Icon--Uneditable2::before{content:'ï¡·'}.ms-Icon--Uneditable2Mirrored::before{content:'ï¡·'}[dir=rtl] .ms-Icon--Uneditable2Mirrored::before{content:''}.ms-Icon--Uneditable::before{content:'î´'}[dir=rtl] .ms-Icon--Uneditable::before{content:'ï’¹'}.ms-Icon--UneditableMirrored::before{content:'ï’¹'}[dir=rtl] .ms-Icon--UneditableMirrored::before{content:'î´'}.ms-Icon--UneditableSolid12::before{content:'ï’·'}[dir=rtl] .ms-Icon--UneditableSolid12::before{content:'ï’¸'}.ms-Icon--UneditableSolidMirrored12::before{content:'ï’¸'}[dir=rtl] .ms-Icon--UneditableSolidMirrored12::before{content:'ï’·'}.ms-Icon--Unfavorite::before{content:''}.ms-Icon--UngroupObject::before{content:''}.ms-Icon--UnknownCall::before{content:''}.ms-Icon--Unknown::before{content:''}[dir=rtl] .ms-Icon--Unknown::before{content:''}.ms-Icon--UnknownMirrored::before{content:''}[dir=rtl] .ms-Icon--UnknownMirrored::before{content:''}.ms-Icon--UnknownSolid::before{content:'ï‹¡'}[dir=rtl] .ms-Icon--UnknownSolid::before{content:'ï‹¢'}.ms-Icon--UnknownMirroredSolid::before{content:'ï‹¢'}[dir=rtl] .ms-Icon--UnknownMirroredSolid::before{content:'ï‹¡'}.ms-Icon--Unlock::before{content:'îž…'}.ms-Icon--UnlockSolid::before{content:''}.ms-Icon--Unpin::before{content:'îº'}.ms-Icon--UnpublishContent::before{content:''}.ms-Icon--UnSetColor::before{content:'ï¹'}.ms-Icon--UnstackSelected::before{content:''}.ms-Icon--Unsubscribe::before{content:'î¶ '}.ms-Icon--UnsyncFolder::before{content:''}.ms-Icon--UnsyncOccurence::before{content:'ï’¤'}.ms-Icon--Untag::before{content:''}.ms-Icon--Up::before{content:'îŠ'}.ms-Icon--UpdateRestore::before{content:'î·'}.ms-Icon--UpgradeAnalysis::before{content:''}.ms-Icon--Upload::before{content:''}.ms-Icon--URLBlock::before{content:'î¾'}.ms-Icon--USB::before{content:''}.ms-Icon--UserEvent::before{content:'ïšœ'}.ms-Icon--UserFollowed::before{content:''}.ms-Icon--UserGauge::before{content:'ï›'}.ms-Icon--UserOptional::before{content:'ï§'}.ms-Icon--UserPause::before{content:''}.ms-Icon--UserRemove::before{content:'ïš›'}.ms-Icon--UserSync::before{content:''}.ms-Icon--UserWarning::before{content:'î¨'}.ms-Icon--Vacation::before{content:'ï’Ÿ'}.ms-Icon--Vaccination::before{content:'î« '}.ms-Icon--Variable::before{content:''}.ms-Icon--Variable2::before{content:'ï¡'}.ms-Icon--VariableGroup::before{content:''}.ms-Icon--VB::before{content:''}.ms-Icon--VennDiagram::before{content:''}.ms-Icon--VerifiedBrand::before{content:'ïž½'}.ms-Icon--VerifiedBrandSolid::before{content:'ïš'}.ms-Icon--VersionControlPush::before{content:''}.ms-Icon--VerticalDistributeCenter::before{content:''}.ms-Icon--Video::before{content:''}.ms-Icon--Video360Generic::before{content:''}.ms-Icon--VideoLightOff::before{content:'î©´'}.ms-Icon--VideoOff::before{content:'ï’°'}.ms-Icon--VideoSearch::before{content:''}.ms-Icon--VideoSolid::before{content:''}.ms-Icon--View::before{content:'î¢'}.ms-Icon--ViewAll::before{content:''}.ms-Icon--ViewAll2::before{content:'î½–'}.ms-Icon--ViewDashboard::before{content:''}.ms-Icon--ViewInAR::before{content:'îŸ'}.ms-Icon--ViewList::before{content:''}.ms-Icon--ViewListGroup::before{content:''}.ms-Icon--ViewListTree::before{content:''}.ms-Icon--ViewOriginal::before{content:'îž´'}.ms-Icon--VisioDiagram::before{content:'ïŠ '}.ms-Icon--VisioDiagramSync::before{content:'ï¢'}.ms-Icon--VisioDocument::before{content:''}.ms-Icon--VisioLogo::before{content:''}.ms-Icon--VisioLogo16::before{content:''}.ms-Icon--VisioLogoFill::before{content:''}.ms-Icon--VisioLogoFill16::before{content:''}.ms-Icon--VisioLogoInverse::before{content:'îµ½'}.ms-Icon--VisioLogoInverse16::before{content:''}.ms-Icon--VisualBasicLanguage::before{content:''}.ms-Icon--VisuallyImpaired::before{content:''}.ms-Icon--VisualsFolder::before{content:'ï” '}.ms-Icon--VisualsStore::before{content:''}.ms-Icon--VisualStudioIDELogo32::before{content:'ï—'}.ms-Icon--VisualStudioLogo::before{content:'î°¢'}.ms-Icon--VoicemailForward::before{content:''}.ms-Icon--VoicemailIRM::before{content:'ï¡'}.ms-Icon--VoicemailReply::before{content:''}.ms-Icon--Volume0::before{content:''}.ms-Icon--Volume1::before{content:''}.ms-Icon--Volume2::before{content:''}.ms-Icon--Volume3::before{content:''}.ms-Icon--VolumeDisabled::before{content:''}.ms-Icon--VSTSAltLogo1::before{content:''}.ms-Icon--VSTSAltLogo2::before{content:''}.ms-Icon--VSTSLogo::before{content:'ïŽ'}.ms-Icon--Waffle::before{content:''}.ms-Icon--WaffleOffice365::before{content:'ï“ '}.ms-Icon--WaitlistConfirm::before{content:'ï•'}[dir=rtl] .ms-Icon--WaitlistConfirm::before{content:'ï•‘'}.ms-Icon--WaitlistConfirmMirrored::before{content:'ï•‘'}[dir=rtl] .ms-Icon--WaitlistConfirmMirrored::before{content:'ï•'}.ms-Icon--Warning::before{content:''}.ms-Icon--Warning12::before{content:''}.ms-Icon--WarningSolid::before{content:''}.ms-Icon--WavingHand::before{content:'ï ‡'}.ms-Icon--WebAppBuilderFragment::before{content:''}.ms-Icon--WebAppBuilderFragmentCreate::before{content:''}.ms-Icon--WebAppBuilderModule::before{content:''}.ms-Icon--WebAppBuilderSlot::before{content:''}.ms-Icon--Webcam2::before{content:'î¥ '}.ms-Icon--Webcam2Off::before{content:'î'}.ms-Icon--WebComponents::before{content:''}.ms-Icon--WebEnvironment::before{content:'î›'}.ms-Icon--WebPublish::before{content:''}.ms-Icon--Website::before{content:'î'}.ms-Icon--WebTemplate::before{content:'ïš²'}.ms-Icon--Weights::before{content:'î«›'}.ms-Icon--Wheelchair::before{content:''}.ms-Icon--WhiteBoardApp16::before{content:''}.ms-Icon--WhiteBoardApp32::before{content:'ï™´'}.ms-Icon--WifiEthernet::before{content:'î¹·'}.ms-Icon--WifiWarning4::before{content:'î£'}.ms-Icon--WindDirection::before{content:''}.ms-Icon--WindowEdit::before{content:''}.ms-Icon--WindowsLogo::before{content:'îž‚'}.ms-Icon--Wines::before{content:''}.ms-Icon--WipePhone::before{content:'î¶'}.ms-Icon--WordDocument::before{content:'î½±'}.ms-Icon--WordLogo::before{content:''}.ms-Icon--WordLogo16::before{content:''}.ms-Icon--WordLogoFill::before{content:''}.ms-Icon--WordLogoFill16::before{content:''}.ms-Icon--WordLogoInverse::before{content:'î°©'}.ms-Icon--WordLogoInverse16::before{content:'ïŽ'}.ms-Icon--Work::before{content:'î ¡'}.ms-Icon--WorkFlow::before{content:'î¨'}.ms-Icon--WorkforceManagement::before{content:'î¸'}.ms-Icon--WorkItem::before{content:''}.ms-Icon--WorkItemAlert::before{content:'ïž'}.ms-Icon--WorkItemBar::before{content:'ïœ'}.ms-Icon--WorkItemBarSolid::before{content:'ï'}.ms-Icon--WorkItemBug::before{content:''}.ms-Icon--World::before{content:''}.ms-Icon--WorldClock::before{content:''}.ms-Icon--YammerLogo::before{content:'î´™'}.ms-Icon--ZipFolder::before{content:''}.ms-Icon--Zoom::before{content:''}.ms-Icon--ZoomIn::before{content:''}.ms-Icon--ZoomOut::before{content:''}.ms-Icon--ZoomToFit::before{content:''}.ms-Icon--HumanResources::before{content:''}.ms-Icon--StoreLogo::before{content:''}.ms-Icon--OneDrive::before{content:'î¥'}.ms-Icon--ToggleOff::before{content:''}.ms-Icon--StoreLogoMed::before{content:''}@font-face{font-family:FabricMDL2Icons;src:url(https://static2.sharepointonline.com/files/fabric/assets/icons/fabricmdl2icons-3.70.woff) format('woff');font-weight:400;font-style:normal}@media (max-width:479.99999px){.ms-hiddenLgDown,.ms-hiddenMdDown,.ms-hiddenSm,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:480px) and (max-width:639.99999px){.ms-hiddenLgDown,.ms-hiddenMd,.ms-hiddenMdDown,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:640px) and (max-width:1023.99999px){.ms-hiddenLg,.ms-hiddenLgDown,.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlDown,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1024px) and (max-width:1365.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXl,.ms-hiddenXlDown,.ms-hiddenXlUp,.ms-hiddenXxlDown{display:none!important}}@media (min-width:1366px) and (max-width:1919.99999px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxl,.ms-hiddenXxlDown,.ms-hiddenXxlUp{display:none!important}}@media (min-width:1920px){.ms-hiddenLgUp,.ms-hiddenMdUp,.ms-hiddenXlUp,.ms-hiddenXxlUp,.ms-hiddenXxxl{display:none!important}}.ms-sm12{width:100%}.ms-sm11{width:91.66666666666666%}.ms-sm10{width:83.33333333333334%}.ms-sm9{width:75%}.ms-sm8{width:66.66666666666666%}.ms-sm7{width:58.333333333333336%}.ms-sm6{width:50%}.ms-sm5{width:41.66666666666667%}.ms-sm4{width:33.33333333333333%}.ms-sm3{width:25%}.ms-sm2{width:16.666666666666664%}.ms-sm1{width:8.333333333333332%}[dir=ltr] .ms-smPull12{right:100%}[dir=rtl] .ms-smPull12{left:100%}[dir=ltr] .ms-smPull11{right:91.66667%}[dir=rtl] .ms-smPull11{left:91.66667%}[dir=ltr] .ms-smPull10{right:83.33333%}[dir=rtl] .ms-smPull10{left:83.33333%}[dir=ltr] .ms-smPull9{right:75%}[dir=rtl] .ms-smPull9{left:75%}[dir=ltr] .ms-smPull8{right:66.66667%}[dir=rtl] .ms-smPull8{left:66.66667%}[dir=ltr] .ms-smPull7{right:58.33333%}[dir=rtl] .ms-smPull7{left:58.33333%}[dir=ltr] .ms-smPull6{right:50%}[dir=rtl] .ms-smPull6{left:50%}[dir=ltr] .ms-smPull5{right:41.66667%}[dir=rtl] .ms-smPull5{left:41.66667%}[dir=ltr] .ms-smPull4{right:33.33333%}[dir=rtl] .ms-smPull4{left:33.33333%}[dir=ltr] .ms-smPull3{right:25%}[dir=rtl] .ms-smPull3{left:25%}[dir=ltr] .ms-smPull2{right:16.66667%}[dir=rtl] .ms-smPull2{left:16.66667%}[dir=ltr] .ms-smPull1{right:8.33333%}[dir=rtl] .ms-smPull1{left:8.33333%}[dir=ltr] .ms-smPull0{right:auto}[dir=rtl] .ms-smPull0{left:auto}[dir=ltr] .ms-smPush12{left:100%}[dir=rtl] .ms-smPush12{right:100%}[dir=ltr] .ms-smPush11{left:91.66667%}[dir=rtl] .ms-smPush11{right:91.66667%}[dir=ltr] .ms-smPush10{left:83.33333%}[dir=rtl] .ms-smPush10{right:83.33333%}[dir=ltr] .ms-smPush9{left:75%}[dir=rtl] .ms-smPush9{right:75%}[dir=ltr] .ms-smPush8{left:66.66667%}[dir=rtl] .ms-smPush8{right:66.66667%}[dir=ltr] .ms-smPush7{left:58.33333%}[dir=rtl] .ms-smPush7{right:58.33333%}[dir=ltr] .ms-smPush6{left:50%}[dir=rtl] .ms-smPush6{right:50%}[dir=ltr] .ms-smPush5{left:41.66667%}[dir=rtl] .ms-smPush5{right:41.66667%}[dir=ltr] .ms-smPush4{left:33.33333%}[dir=rtl] .ms-smPush4{right:33.33333%}[dir=ltr] .ms-smPush3{left:25%}[dir=rtl] .ms-smPush3{right:25%}[dir=ltr] .ms-smPush2{left:16.66667%}[dir=rtl] .ms-smPush2{right:16.66667%}[dir=ltr] .ms-smPush1{left:8.33333%}[dir=rtl] .ms-smPush1{right:8.33333%}[dir=ltr] .ms-smPush0{left:auto}[dir=rtl] .ms-smPush0{right:auto}[dir=ltr] .ms-smOffset11{margin-left:91.66667%}[dir=rtl] .ms-smOffset11{margin-right:91.66667%}[dir=ltr] .ms-smOffset10{margin-left:83.33333%}[dir=rtl] .ms-smOffset10{margin-right:83.33333%}[dir=ltr] .ms-smOffset9{margin-left:75%}[dir=rtl] .ms-smOffset9{margin-right:75%}[dir=ltr] .ms-smOffset8{margin-left:66.66667%}[dir=rtl] .ms-smOffset8{margin-right:66.66667%}[dir=ltr] .ms-smOffset7{margin-left:58.33333%}[dir=rtl] .ms-smOffset7{margin-right:58.33333%}[dir=ltr] .ms-smOffset6{margin-left:50%}[dir=rtl] .ms-smOffset6{margin-right:50%}[dir=ltr] .ms-smOffset5{margin-left:41.66667%}[dir=rtl] .ms-smOffset5{margin-right:41.66667%}[dir=ltr] .ms-smOffset4{margin-left:33.33333%}[dir=rtl] .ms-smOffset4{margin-right:33.33333%}[dir=ltr] .ms-smOffset3{margin-left:25%}[dir=rtl] .ms-smOffset3{margin-right:25%}[dir=ltr] .ms-smOffset2{margin-left:16.66667%}[dir=rtl] .ms-smOffset2{margin-right:16.66667%}[dir=ltr] .ms-smOffset1{margin-left:8.33333%}[dir=rtl] .ms-smOffset1{margin-right:8.33333%}[dir=ltr] .ms-smOffset0{margin-left:0}[dir=rtl] .ms-smOffset0{margin-right:0}@media (min-width:480px){.ms-md12{width:100%}}@media (min-width:480px){.ms-md11{width:91.66666666666666%}}@media (min-width:480px){.ms-md10{width:83.33333333333334%}}@media (min-width:480px){.ms-md9{width:75%}}@media (min-width:480px){.ms-md8{width:66.66666666666666%}}@media (min-width:480px){.ms-md7{width:58.333333333333336%}}@media (min-width:480px){.ms-md6{width:50%}}@media (min-width:480px){.ms-md5{width:41.66666666666667%}}@media (min-width:480px){.ms-md4{width:33.33333333333333%}}@media (min-width:480px){.ms-md3{width:25%}}@media (min-width:480px){.ms-md2{width:16.666666666666664%}}@media (min-width:480px){.ms-md1{width:8.333333333333332%}}@media (min-width:480px){[dir=ltr] .ms-mdPull12{right:100%}[dir=rtl] .ms-mdPull12{left:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPull11{right:91.66667%}[dir=rtl] .ms-mdPull11{left:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull10{right:83.33333%}[dir=rtl] .ms-mdPull10{left:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull9{right:75%}[dir=rtl] .ms-mdPull9{left:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPull8{right:66.66667%}[dir=rtl] .ms-mdPull8{left:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull7{right:58.33333%}[dir=rtl] .ms-mdPull7{left:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull6{right:50%}[dir=rtl] .ms-mdPull6{left:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPull5{right:41.66667%}[dir=rtl] .ms-mdPull5{left:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull4{right:33.33333%}[dir=rtl] .ms-mdPull4{left:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull3{right:25%}[dir=rtl] .ms-mdPull3{left:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPull2{right:16.66667%}[dir=rtl] .ms-mdPull2{left:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPull1{right:8.33333%}[dir=rtl] .ms-mdPull1{left:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPull0{right:auto}[dir=rtl] .ms-mdPull0{left:auto}}@media (min-width:480px){[dir=ltr] .ms-mdPush12{left:100%}[dir=rtl] .ms-mdPush12{right:100%}}@media (min-width:480px){[dir=ltr] .ms-mdPush11{left:91.66667%}[dir=rtl] .ms-mdPush11{right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush10{left:83.33333%}[dir=rtl] .ms-mdPush10{right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush9{left:75%}[dir=rtl] .ms-mdPush9{right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdPush8{left:66.66667%}[dir=rtl] .ms-mdPush8{right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush7{left:58.33333%}[dir=rtl] .ms-mdPush7{right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush6{left:50%}[dir=rtl] .ms-mdPush6{right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdPush5{left:41.66667%}[dir=rtl] .ms-mdPush5{right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush4{left:33.33333%}[dir=rtl] .ms-mdPush4{right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush3{left:25%}[dir=rtl] .ms-mdPush3{right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdPush2{left:16.66667%}[dir=rtl] .ms-mdPush2{right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdPush1{left:8.33333%}[dir=rtl] .ms-mdPush1{right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdPush0{left:auto}[dir=rtl] .ms-mdPush0{right:auto}}@media (min-width:480px){[dir=ltr] .ms-mdOffset11{margin-left:91.66667%}[dir=rtl] .ms-mdOffset11{margin-right:91.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset10{margin-left:83.33333%}[dir=rtl] .ms-mdOffset10{margin-right:83.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset9{margin-left:75%}[dir=rtl] .ms-mdOffset9{margin-right:75%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset8{margin-left:66.66667%}[dir=rtl] .ms-mdOffset8{margin-right:66.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset7{margin-left:58.33333%}[dir=rtl] .ms-mdOffset7{margin-right:58.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset6{margin-left:50%}[dir=rtl] .ms-mdOffset6{margin-right:50%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset5{margin-left:41.66667%}[dir=rtl] .ms-mdOffset5{margin-right:41.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset4{margin-left:33.33333%}[dir=rtl] .ms-mdOffset4{margin-right:33.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset3{margin-left:25%}[dir=rtl] .ms-mdOffset3{margin-right:25%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset2{margin-left:16.66667%}[dir=rtl] .ms-mdOffset2{margin-right:16.66667%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset1{margin-left:8.33333%}[dir=rtl] .ms-mdOffset1{margin-right:8.33333%}}@media (min-width:480px){[dir=ltr] .ms-mdOffset0{margin-left:0}[dir=rtl] .ms-mdOffset0{margin-right:0}}@media (min-width:640px){.ms-lg12{width:100%}}@media (min-width:640px){.ms-lg11{width:91.66666666666666%}}@media (min-width:640px){.ms-lg10{width:83.33333333333334%}}@media (min-width:640px){.ms-lg9{width:75%}}@media (min-width:640px){.ms-lg8{width:66.66666666666666%}}@media (min-width:640px){.ms-lg7{width:58.333333333333336%}}@media (min-width:640px){.ms-lg6{width:50%}}@media (min-width:640px){.ms-lg5{width:41.66666666666667%}}@media (min-width:640px){.ms-lg4{width:33.33333333333333%}}@media (min-width:640px){.ms-lg3{width:25%}}@media (min-width:640px){.ms-lg2{width:16.666666666666664%}}@media (min-width:640px){.ms-lg1{width:8.333333333333332%}}@media (min-width:640px){[dir=ltr] .ms-lgPull12{right:100%}[dir=rtl] .ms-lgPull12{left:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPull11{right:91.66667%}[dir=rtl] .ms-lgPull11{left:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull10{right:83.33333%}[dir=rtl] .ms-lgPull10{left:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull9{right:75%}[dir=rtl] .ms-lgPull9{left:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPull8{right:66.66667%}[dir=rtl] .ms-lgPull8{left:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull7{right:58.33333%}[dir=rtl] .ms-lgPull7{left:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull6{right:50%}[dir=rtl] .ms-lgPull6{left:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPull5{right:41.66667%}[dir=rtl] .ms-lgPull5{left:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull4{right:33.33333%}[dir=rtl] .ms-lgPull4{left:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull3{right:25%}[dir=rtl] .ms-lgPull3{left:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPull2{right:16.66667%}[dir=rtl] .ms-lgPull2{left:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPull1{right:8.33333%}[dir=rtl] .ms-lgPull1{left:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPull0{right:auto}[dir=rtl] .ms-lgPull0{left:auto}}@media (min-width:640px){[dir=ltr] .ms-lgPush12{left:100%}[dir=rtl] .ms-lgPush12{right:100%}}@media (min-width:640px){[dir=ltr] .ms-lgPush11{left:91.66667%}[dir=rtl] .ms-lgPush11{right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush10{left:83.33333%}[dir=rtl] .ms-lgPush10{right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush9{left:75%}[dir=rtl] .ms-lgPush9{right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgPush8{left:66.66667%}[dir=rtl] .ms-lgPush8{right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush7{left:58.33333%}[dir=rtl] .ms-lgPush7{right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush6{left:50%}[dir=rtl] .ms-lgPush6{right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgPush5{left:41.66667%}[dir=rtl] .ms-lgPush5{right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush4{left:33.33333%}[dir=rtl] .ms-lgPush4{right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush3{left:25%}[dir=rtl] .ms-lgPush3{right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgPush2{left:16.66667%}[dir=rtl] .ms-lgPush2{right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgPush1{left:8.33333%}[dir=rtl] .ms-lgPush1{right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgPush0{left:auto}[dir=rtl] .ms-lgPush0{right:auto}}@media (min-width:640px){[dir=ltr] .ms-lgOffset11{margin-left:91.66667%}[dir=rtl] .ms-lgOffset11{margin-right:91.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset10{margin-left:83.33333%}[dir=rtl] .ms-lgOffset10{margin-right:83.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset9{margin-left:75%}[dir=rtl] .ms-lgOffset9{margin-right:75%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset8{margin-left:66.66667%}[dir=rtl] .ms-lgOffset8{margin-right:66.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset7{margin-left:58.33333%}[dir=rtl] .ms-lgOffset7{margin-right:58.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset6{margin-left:50%}[dir=rtl] .ms-lgOffset6{margin-right:50%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset5{margin-left:41.66667%}[dir=rtl] .ms-lgOffset5{margin-right:41.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset4{margin-left:33.33333%}[dir=rtl] .ms-lgOffset4{margin-right:33.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset3{margin-left:25%}[dir=rtl] .ms-lgOffset3{margin-right:25%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset2{margin-left:16.66667%}[dir=rtl] .ms-lgOffset2{margin-right:16.66667%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset1{margin-left:8.33333%}[dir=rtl] .ms-lgOffset1{margin-right:8.33333%}}@media (min-width:640px){[dir=ltr] .ms-lgOffset0{margin-left:0}[dir=rtl] .ms-lgOffset0{margin-right:0}}@media (min-width:1024px){.ms-xl12{width:100%}}@media (min-width:1024px){.ms-xl11{width:91.66666666666666%}}@media (min-width:1024px){.ms-xl10{width:83.33333333333334%}}@media (min-width:1024px){.ms-xl9{width:75%}}@media (min-width:1024px){.ms-xl8{width:66.66666666666666%}}@media (min-width:1024px){.ms-xl7{width:58.333333333333336%}}@media (min-width:1024px){.ms-xl6{width:50%}}@media (min-width:1024px){.ms-xl5{width:41.66666666666667%}}@media (min-width:1024px){.ms-xl4{width:33.33333333333333%}}@media (min-width:1024px){.ms-xl3{width:25%}}@media (min-width:1024px){.ms-xl2{width:16.666666666666664%}}@media (min-width:1024px){.ms-xl1{width:8.333333333333332%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull12{right:100%}[dir=rtl] .ms-xlPull12{left:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull11{right:91.66667%}[dir=rtl] .ms-xlPull11{left:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull10{right:83.33333%}[dir=rtl] .ms-xlPull10{left:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull9{right:75%}[dir=rtl] .ms-xlPull9{left:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull8{right:66.66667%}[dir=rtl] .ms-xlPull8{left:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull7{right:58.33333%}[dir=rtl] .ms-xlPull7{left:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull6{right:50%}[dir=rtl] .ms-xlPull6{left:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull5{right:41.66667%}[dir=rtl] .ms-xlPull5{left:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull4{right:33.33333%}[dir=rtl] .ms-xlPull4{left:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull3{right:25%}[dir=rtl] .ms-xlPull3{left:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull2{right:16.66667%}[dir=rtl] .ms-xlPull2{left:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull1{right:8.33333%}[dir=rtl] .ms-xlPull1{left:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPull0{right:auto}[dir=rtl] .ms-xlPull0{left:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlPush12{left:100%}[dir=rtl] .ms-xlPush12{right:100%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush11{left:91.66667%}[dir=rtl] .ms-xlPush11{right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush10{left:83.33333%}[dir=rtl] .ms-xlPush10{right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush9{left:75%}[dir=rtl] .ms-xlPush9{right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush8{left:66.66667%}[dir=rtl] .ms-xlPush8{right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush7{left:58.33333%}[dir=rtl] .ms-xlPush7{right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush6{left:50%}[dir=rtl] .ms-xlPush6{right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush5{left:41.66667%}[dir=rtl] .ms-xlPush5{right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush4{left:33.33333%}[dir=rtl] .ms-xlPush4{right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush3{left:25%}[dir=rtl] .ms-xlPush3{right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush2{left:16.66667%}[dir=rtl] .ms-xlPush2{right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush1{left:8.33333%}[dir=rtl] .ms-xlPush1{right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlPush0{left:auto}[dir=rtl] .ms-xlPush0{right:auto}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xlOffset11{margin-right:91.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xlOffset10{margin-right:83.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset9{margin-left:75%}[dir=rtl] .ms-xlOffset9{margin-right:75%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xlOffset8{margin-right:66.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xlOffset7{margin-right:58.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset6{margin-left:50%}[dir=rtl] .ms-xlOffset6{margin-right:50%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xlOffset5{margin-right:41.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xlOffset4{margin-right:33.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset3{margin-left:25%}[dir=rtl] .ms-xlOffset3{margin-right:25%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xlOffset2{margin-right:16.66667%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xlOffset1{margin-right:8.33333%}}@media (min-width:1024px){[dir=ltr] .ms-xlOffset0{margin-left:0}[dir=rtl] .ms-xlOffset0{margin-right:0}}@media (min-width:1366px){.ms-xxl12{width:100%}}@media (min-width:1366px){.ms-xxl11{width:91.66666666666666%}}@media (min-width:1366px){.ms-xxl10{width:83.33333333333334%}}@media (min-width:1366px){.ms-xxl9{width:75%}}@media (min-width:1366px){.ms-xxl8{width:66.66666666666666%}}@media (min-width:1366px){.ms-xxl7{width:58.333333333333336%}}@media (min-width:1366px){.ms-xxl6{width:50%}}@media (min-width:1366px){.ms-xxl5{width:41.66666666666667%}}@media (min-width:1366px){.ms-xxl4{width:33.33333333333333%}}@media (min-width:1366px){.ms-xxl3{width:25%}}@media (min-width:1366px){.ms-xxl2{width:16.666666666666664%}}@media (min-width:1366px){.ms-xxl1{width:8.333333333333332%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull12{right:100%}[dir=rtl] .ms-xxlPull12{left:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull11{right:91.66667%}[dir=rtl] .ms-xxlPull11{left:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull10{right:83.33333%}[dir=rtl] .ms-xxlPull10{left:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull9{right:75%}[dir=rtl] .ms-xxlPull9{left:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull8{right:66.66667%}[dir=rtl] .ms-xxlPull8{left:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull7{right:58.33333%}[dir=rtl] .ms-xxlPull7{left:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull6{right:50%}[dir=rtl] .ms-xxlPull6{left:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull5{right:41.66667%}[dir=rtl] .ms-xxlPull5{left:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull4{right:33.33333%}[dir=rtl] .ms-xxlPull4{left:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull3{right:25%}[dir=rtl] .ms-xxlPull3{left:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull2{right:16.66667%}[dir=rtl] .ms-xxlPull2{left:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull1{right:8.33333%}[dir=rtl] .ms-xxlPull1{left:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPull0{right:auto}[dir=rtl] .ms-xxlPull0{left:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush12{left:100%}[dir=rtl] .ms-xxlPush12{right:100%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush11{left:91.66667%}[dir=rtl] .ms-xxlPush11{right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush10{left:83.33333%}[dir=rtl] .ms-xxlPush10{right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush9{left:75%}[dir=rtl] .ms-xxlPush9{right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush8{left:66.66667%}[dir=rtl] .ms-xxlPush8{right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush7{left:58.33333%}[dir=rtl] .ms-xxlPush7{right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush6{left:50%}[dir=rtl] .ms-xxlPush6{right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush5{left:41.66667%}[dir=rtl] .ms-xxlPush5{right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush4{left:33.33333%}[dir=rtl] .ms-xxlPush4{right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush3{left:25%}[dir=rtl] .ms-xxlPush3{right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush2{left:16.66667%}[dir=rtl] .ms-xxlPush2{right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush1{left:8.33333%}[dir=rtl] .ms-xxlPush1{right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlPush0{left:auto}[dir=rtl] .ms-xxlPush0{right:auto}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxlOffset11{margin-right:91.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxlOffset10{margin-right:83.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset9{margin-left:75%}[dir=rtl] .ms-xxlOffset9{margin-right:75%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxlOffset8{margin-right:66.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxlOffset7{margin-right:58.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset6{margin-left:50%}[dir=rtl] .ms-xxlOffset6{margin-right:50%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxlOffset5{margin-right:41.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxlOffset4{margin-right:33.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset3{margin-left:25%}[dir=rtl] .ms-xxlOffset3{margin-right:25%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxlOffset2{margin-right:16.66667%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxlOffset1{margin-right:8.33333%}}@media (min-width:1366px){[dir=ltr] .ms-xxlOffset0{margin-left:0}[dir=rtl] .ms-xxlOffset0{margin-right:0}}@media (min-width:1920px){.ms-xxxl12{width:100%}}@media (min-width:1920px){.ms-xxxl11{width:91.66666666666666%}}@media (min-width:1920px){.ms-xxxl10{width:83.33333333333334%}}@media (min-width:1920px){.ms-xxxl9{width:75%}}@media (min-width:1920px){.ms-xxxl8{width:66.66666666666666%}}@media (min-width:1920px){.ms-xxxl7{width:58.333333333333336%}}@media (min-width:1920px){.ms-xxxl6{width:50%}}@media (min-width:1920px){.ms-xxxl5{width:41.66666666666667%}}@media (min-width:1920px){.ms-xxxl4{width:33.33333333333333%}}@media (min-width:1920px){.ms-xxxl3{width:25%}}@media (min-width:1920px){.ms-xxxl2{width:16.666666666666664%}}@media (min-width:1920px){.ms-xxxl1{width:8.333333333333332%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull12{right:100%}[dir=rtl] .ms-xxxlPull12{left:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull11{right:91.66667%}[dir=rtl] .ms-xxxlPull11{left:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull10{right:83.33333%}[dir=rtl] .ms-xxxlPull10{left:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull9{right:75%}[dir=rtl] .ms-xxxlPull9{left:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull8{right:66.66667%}[dir=rtl] .ms-xxxlPull8{left:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull7{right:58.33333%}[dir=rtl] .ms-xxxlPull7{left:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull6{right:50%}[dir=rtl] .ms-xxxlPull6{left:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull5{right:41.66667%}[dir=rtl] .ms-xxxlPull5{left:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull4{right:33.33333%}[dir=rtl] .ms-xxxlPull4{left:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull3{right:25%}[dir=rtl] .ms-xxxlPull3{left:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull2{right:16.66667%}[dir=rtl] .ms-xxxlPull2{left:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull1{right:8.33333%}[dir=rtl] .ms-xxxlPull1{left:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPull0{right:auto}[dir=rtl] .ms-xxxlPull0{left:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush12{left:100%}[dir=rtl] .ms-xxxlPush12{right:100%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush11{left:91.66667%}[dir=rtl] .ms-xxxlPush11{right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush10{left:83.33333%}[dir=rtl] .ms-xxxlPush10{right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush9{left:75%}[dir=rtl] .ms-xxxlPush9{right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush8{left:66.66667%}[dir=rtl] .ms-xxxlPush8{right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush7{left:58.33333%}[dir=rtl] .ms-xxxlPush7{right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush6{left:50%}[dir=rtl] .ms-xxxlPush6{right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush5{left:41.66667%}[dir=rtl] .ms-xxxlPush5{right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush4{left:33.33333%}[dir=rtl] .ms-xxxlPush4{right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush3{left:25%}[dir=rtl] .ms-xxxlPush3{right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush2{left:16.66667%}[dir=rtl] .ms-xxxlPush2{right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush1{left:8.33333%}[dir=rtl] .ms-xxxlPush1{right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlPush0{left:auto}[dir=rtl] .ms-xxxlPush0{right:auto}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset11{margin-left:91.66667%}[dir=rtl] .ms-xxxlOffset11{margin-right:91.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset10{margin-left:83.33333%}[dir=rtl] .ms-xxxlOffset10{margin-right:83.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset9{margin-left:75%}[dir=rtl] .ms-xxxlOffset9{margin-right:75%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset8{margin-left:66.66667%}[dir=rtl] .ms-xxxlOffset8{margin-right:66.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset7{margin-left:58.33333%}[dir=rtl] .ms-xxxlOffset7{margin-right:58.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset6{margin-left:50%}[dir=rtl] .ms-xxxlOffset6{margin-right:50%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset5{margin-left:41.66667%}[dir=rtl] .ms-xxxlOffset5{margin-right:41.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset4{margin-left:33.33333%}[dir=rtl] .ms-xxxlOffset4{margin-right:33.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset3{margin-left:25%}[dir=rtl] .ms-xxxlOffset3{margin-right:25%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset2{margin-left:16.66667%}[dir=rtl] .ms-xxxlOffset2{margin-right:16.66667%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset1{margin-left:8.33333%}[dir=rtl] .ms-xxxlOffset1{margin-right:8.33333%}}@media (min-width:1920px){[dir=ltr] .ms-xxxlOffset0{margin-left:0}[dir=rtl] .ms-xxxlOffset0{margin-right:0}}.ms-borderBox,.ms-borderBox::after,.ms-borderBox::before{box-sizing:border-box}.ms-borderBase{border:1px solid}.ms-clearfix{zoom:1}.ms-clearfix::after,.ms-clearfix::before{display:table;content:'';line-height:0}.ms-clearfix::after{clear:both}.ms-normalize{box-sizing:border-box;box-shadow:none;margin:0;padding:0}[dir=ltr] .ms-textAlignLeft{text-align:left}[dir=rtl] .ms-textAlignLeft{text-align:right}[dir=ltr] .ms-textAlignRight{text-align:right}[dir=rtl] .ms-textAlignRight{text-align:left}.ms-textAlignCenter{text-align:center}.ms-screenReaderOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.ms-textTruncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.ms-noWrap{white-space:nowrap}.ms-Fabric{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#323130;font-family:'Segoe UI Web (West European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;font-size:14px}.ms-Fabric button,.ms-Fabric input,.ms-Fabric textarea{font-family:inherit}.ms-Fabric [lang^=ar],.ms-Fabric[lang^=ar],[lang^=ar] .ms-Fabric{font-family:'Segoe UI Web (Arabic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=bg],.ms-Fabric[lang^=bg],[lang^=bg] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=cs],.ms-Fabric[lang^=cs],[lang^=cs] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=el],.ms-Fabric[lang^=el],[lang^=el] .ms-Fabric{font-family:'Segoe UI Web (Greek)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=et],.ms-Fabric[lang^=et],[lang^=et] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=he],.ms-Fabric[lang^=he],[lang^=he] .ms-Fabric{font-family:'Segoe UI Web (Hebrew)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hi],.ms-Fabric[lang^=hi],[lang^=hi] .ms-Fabric{font-family:'Nirmala UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hr],.ms-Fabric[lang^=hr],[lang^=hr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=hu],.ms-Fabric[lang^=hu],[lang^=hu] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ja],.ms-Fabric[lang^=ja],[lang^=ja] .ms-Fabric{font-family:'Yu Gothic UI','Meiryo UI',Meiryo,'MS Pgothic',Osaka,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=kk],.ms-Fabric[lang^=kk],[lang^=kk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ko],.ms-Fabric[lang^=ko],[lang^=ko] .ms-Fabric{font-family:'Malgun Gothic',Gulim,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lo],.ms-Fabric[lang^=lo],[lang^=lo] .ms-Fabric{font-family:'Leelawadee UI Web','Lao UI',DokChampa,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lt],.ms-Fabric[lang^=lt],[lang^=lt] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=lv],.ms-Fabric[lang^=lv],[lang^=lv] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=pl],.ms-Fabric[lang^=pl],[lang^=pl] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=ru],.ms-Fabric[lang^=ru],[lang^=ru] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sk],.ms-Fabric[lang^=sk],[lang^=sk] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=sr-latn],.ms-Fabric[lang^=sr-latn],[lang^=sr-latn] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=th],.ms-Fabric[lang^=th],[lang^=th] .ms-Fabric{font-family:'Leelawadee UI Web','Kmer UI','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=tr],.ms-Fabric[lang^=tr],[lang^=tr] .ms-Fabric{font-family:'Segoe UI Web (East European)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=uk],.ms-Fabric[lang^=uk],[lang^=uk] .ms-Fabric{font-family:'Segoe UI Web (Cyrillic)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=vi],.ms-Fabric[lang^=vi],[lang^=vi] .ms-Fabric{font-family:'Segoe UI Web (Vietnamese)','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hans],.ms-Fabric[lang^=zh-hans],[lang^=zh-hans] .ms-Fabric{font-family:'Microsoft Yahei UI',Verdana,Simsun,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric [lang^=zh-hant],.ms-Fabric[lang^=zh-hant],[lang^=zh-hant] .ms-Fabric{font-family:'Microsoft Jhenghei UI',Pmingliu,'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}.ms-Fabric--selawik{font-family:'Selawik Web','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../css-loader/dist/cjs.js!./fabric.min.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(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}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n"],"names":["TimeConstants","MillisecondsInOneDay","MillisecondsIn1Sec","MillisecondsIn1Min","MillisecondsIn30Mins","MillisecondsIn1Hour","MinutesInOneDay","MinutesInOneHour","DaysInOneWeek","MonthInOneYear","HoursInOneDay","SecondsInOneMinute","OffsetTo24HourFormat","TimeFormatRegex","elementContains","parent","child","allowVirtualParents","isContained","nextParent","contains","findElementRecursive","element","matchFunction","document","body","getParent","isVirtualElement","_virtual","getVirtualParent","parentNode","portalContainsElement","target","elementMatch","testElement","hasAttribute","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","setAttribute","createComponent","view","options","_a","factoryOptions","defaultProp","ResultComponent","componentProps","displayName","context","fields","DefaultFields","settings","getSettings","customizations","stateReducer","state","theme","tokens","_resolveTokens","styles","props","allStyles","_i","arguments","length","apply","map","_resolveStyles","viewProps","_defaultStyles","name","create","statics","allTokens","allTokens_1","currentTokens","Array","isArray","withSlots","type","children","slotType","isSlot","toArray","createFactory","DefaultComponent","userProps","userSlotOptions","defaultStyles","flattenedUserProps","slotProps","transformedProps","_translateShorthand","finalProps","allProps","classNames","allProps_1","push","className","rtl","_constructFinalProps","component","UserComponent","render","defaultFactory","getSlots","slots","result","mixedProps","_loop_1","name_1","hasOwnProperty","slot","args","Error","ComponentType","slotOptions","undefined","_renderSlot","assign","extendStatics","d","b","Object","setPrototypeOf","__proto__","p","prototype","call","__assign","t","s","i","n","this","SuppressedError","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","ev","event","MouseEvent","ctrlKey","metaKey","shiftKey","altKey","bubbles","cancelable","createEvent","initMouseEvent","window","dispatchEvent","_allInstances","_outerZones","Set","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","_super","_b","_c","_d","_this","_root","_mergedRef","createMergedRef","_onFocus","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","parentElement","current","maybeElementToFocus","focus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","stopPropagation","_onBlur","_setParkedFocus","_onMouseDown","disabled","path","pop","_setActiveElement","_onKeyDown","direction","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","onKeyDown","isDefaultPrevented","_getDocument","activeElement","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","firstChild","which","KeyCodes","space","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","left","vertical","_preventDefaultWhenHandled","_moveFocusLeft","right","_moveFocusRight","up","horizontal","_moveFocusUp","down","_moveFocusDown","pageDown","_moveFocusPaging","pageUp","tab","allowTabKey","handleTabKey","all","inputOnly","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","home","_isContentEditableElement","_shouldInputLoseFocus","end","lastChild","enter","_shouldRaiseClicksOnEnter","preventDefault","_getHorizontalDistanceFromCenter","isForward","activeRect","targetRect","leftAlignment","_focusAlignment","x","targetRectTop","Math","floor","top","activeRectBottom","bottom","targetRectBottom","activeRectTop","width","abs","initializeComponentRef","_id","getId","shouldRaiseClicksFallback","shouldRaiseClicks","defaultProps","shouldRaiseClicksOnEnter","shouldRaiseClicksOnSpace","TypeError","String","__","constructor","__extends","getOuterZones","size","_onKeyDownCapture","forEach","zone","componentDidMount","root","nodeType","add","addEventListener","querySelector","defaultActiveElement","shouldFocusOnMount","componentDidUpdate","doc","_defaultFocusElement","preventFocusRestoration","_lastIndexPath","elementToFocus","componentWillUnmount","delete","removeEventListener","tag","as","elementType","rootProps","ariaDescribedBy","ariaLabelledBy","divProps","Tag","_evaluateFocusBeforeRender","css","mergeStyles","selectors","outline","ref","elementRef","onMouseDownCapture","forceIntoFirstElement","bypassHiddenElements","getAttribute","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","point","defineProperty","get","enumerable","configurable","focusedElement","shouldRestoreFocus","isParked","_isParked","allowFocusRoot","_parkedTabIndex","removeAttribute","previousActiveElement","tabIndex","preventDefaultWhenHandled","targetElement","tagName","rootElement","firstElementChild","match","nextElementSibling","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","getBoundingClientRect","elementDistance","isCircularNavigation","lastElementChild","targetTop","distance","shouldWrap","parseFloat","toFixed","scrollableParent","targetBottom","pagesize","clientHeight","isHorizontal","isVertical","rect","top_1","height","childNodes","childIndex","toLowerCase","indexOf","selectionStart","isRangeSelected","selectionEnd","inputValue","value","isReadonly","readOnly","shouldInputLoseFocusOnArrowKey","noWrapDataAttribute","checkForNoWrap","getDocument","FocusZoneDirection","FocusZoneTabbableElements","none","useAsync","asyncRef","dispose","useBoolean","initialState","setValue","setTrue","setFalse","toggle","currentValue","useConst","initialValue","useControllableValue","controlledValue","defaultUncontrolledValue","onChange","isControlled","valueRef","onChangeRef","setValueOrCallOnChange","update","newValue","useId","prefix","providedId","useMergedRefs","refs","mergedCallback","refs_1","to","from","pack","ar","l","slice","concat","__spreadArray","useOnEvent","eventName","callback","useCapture","callbackRef","actualElement","on","usePrevious","useRef","useEffect","useSetTimeout","timeoutIds","keys","id","clearTimeout","setTimeout","func","duration","useTarget","hostElement","previousTargetProp","targetRef","targetWindow","currentElement","currentDoc","useUnmount","unmountRef","WindowContext","useWindow","useDocument","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","SELECTION_BACKWARD","Autofill","_inputElement","_autoFillEnabled","_onCompositionStart","setState","isComposing","_onCompositionUpdate","_updateValue","_getCurrentInputValue","_onCompositionEnd","_tryEnableAutofill","_async","_onClick","nativeEvent","backspace","prev","suggestedDisplayValue","enableAutofillOnKeyPress","_onInputChanged","nativeEventComposing","_onChanged","composing","onInputChange","onInputValueChange","defaultVisibleValue","getDerivedStateFromProps","updateValueInWillReceiveProps","updatedInputValue","inputElement","selectionDirection","Boolean","_getControlledValue","_","_1","cursor","shouldSelectFullInputValueInComponentDidUpdate","differenceIndex","preventValueSelection","_doesTextStartWith","shouldSelectFullRange","setSelectionRange","toLocaleLowerCase","start","dir","nativeProps","style","fontFamily","autoCapitalize","autoComplete","_getDisplayValue","onCompositionStart","onCompositionUpdate","onCompositionEnd","onInput","onClick","clear","getSnapshotBeforeUpdate","inel","oldValue","isComposed","displayValue","console","warn","toString","contextType","text","startWith","getClassNames","classNamesFunction","nullFunction","nonActionableItemProps","color","semanticColors","bodyText","BreadcrumbBase","_focusZone","_onReduceData","data","renderedItems","renderedOverflowItems","overflowIndex","movedItem","splice","_onGrowData","maxDisplayedItems","_onRenderBreadcrumb","ariaLabel","dividerAs","DividerType","Icon","onRenderItem","overflowAriaLabel","onRenderOverflowIcon","overflowButtonAs","contextualItems","item","isActionable","href","key","_onBreadcrumbClicked","bind","itemProps","lastItemIndex","hasOverflowItems","itemElements","index","finalOnRenderItem","_onRenderItem","onRender","composeRenderFunction","_classNames","listItem","chevron","iconName","iconProps","onRenderMenuIcon","OverflowButton","IconButton","overflow","overflowButton","role","menuProps","items","directionalHint","componentRef","focusZoneProps","list","isCurrentItem","onRenderContent","additionalProps","finalOnRenderContent","defaultOnRenderCrumbContent","onRenderItemContent","Link","itemLink","TooltipHost","content","overflowMode","Parent","tooltipHostProps","_validateProps","onReduceData","onGrowData","breadcrumbData","ResizeGroup","onRenderData","GlobalClassNames","SingleLineTextStyle","whiteSpace","textOverflow","MinimumScreenSelector","MediumScreenSelector","Breadcrumb","styled","_e","palette","fonts","itemBackgroundHoveredColor","menuItemBackgroundHovered","itemBackgroundPressedColor","menuItemBackgroundPressed","itemTextColor","neutralSecondary","itemTextFontWeight","regular","itemTextHoveredOrPressedColor","neutralPrimary","itemLastChildTextColor","itemLastChildTextFontWeight","semibold","chevronButtonColor","overflowButtonColor","lastChildItemStyles","fontWeight","itemStateSelectors","backgroundColor","textDecoration","commonItemStyles","padding","lineHeight","fontSize","medium","margin","display","alignItems","listStyleType","position","MsHighContrastAdjust","forcedColorAdjust","small","highContrastStyle","mediumPlus","neutralDark","scope","ActionButton","variantClassName","onRenderDescription","getStyles","customStyles","baseButtonStyles","actionButtonStyles","border","borderColor","rootHovered","themePrimary","iconHovered","rootPressed","black","rootExpanded","iconPressed","themeDarker","rootDisabled","neutralTertiary","rootChecked","iconChecked","flexContainer","justifyContent","icon","themeDarkAlt","iconDisabled","menuIcon","textContainer","flexGrow","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","iconClassName","menuIconClassName","hasMenu","checked","expanded","isSplit","isExpanded","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","labelHovered","descriptionHovered","menuIconHovered","rootFocused","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","iconExpanded","label","labelChecked","labelDisabled","menuIconChecked","menuIconDisabled","menuIconExpanded","description","descriptionChecked","descriptionDisabled","screenReaderText","ImageIcon","imageProps","altText","alt","hasName","title","imageNameProps","containerProps","image","Image","memoize","primaryDisabled","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonMenuFocused","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonFlexContainer","divider","splitButtonDivider","splitButtonDividerDisabled","COMPONENT_NAME","BaseButton","_buttonElement","_splitButtonContainer","_renderedVisibleMenu","_getMemoizedMenuButtonKeytipProps","keytipProps","_onRenderIcon","buttonProps","defaultRender","rest","FontIcon","_onRenderTextContents","secondaryText","onRenderText","_onRenderText","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","ariaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","MenuType","menuAs","composeComponentAs","ContextualMenu","_onDismissMenu","onDismiss","defaultPrevented","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","menuHidden","_openMenu","shouldFocusOnContainer","_onToggleMenu","_onSplitContainerFocusCapture","container","_onSplitButtonPrimaryClick","singleTouchTarget","_processingTouch","_onMenuClick","_onMenuKeyDown","_onKeyUp","onKeyUp","_onKeyPress","onKeyPress","_onMouseUp","onMouseUp","onMouseDown","_onSplitButtonContainerKeyDown","click","isUp","isDown","_isValidMenuOpenKey","onMenuClick","setFocusVisibility","registeredProviders","forceUpdate","_onTouchStart","_isSplitButton","_handleTouchAndPointerEvent","pointerType","Async","_events","EventGroup","warnConditionallyRequiredProps","w","split","warnDeprecations","toggled","ariaHidden","allowDisabledFocus","isPrimaryButtonDisabled","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","_onRenderSplitButtonContent","_onRenderContent","_onPointerDown","onPointerUp","prevProps","prevState","onAfterMenuDismiss","dismissMenu","openMenu","onRenderIcon","onRenderAriaDescription","onRenderChildren","onRenderMenu","Button","keytipAttributes","doNotLayer","_shouldRenderMenu","_getMenuProps","Content","KeytipData","persistMenu","renderPersistedMenuHiddenOnMount","labelElementId","hidden","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","onTouchStart","onFocusCapture","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","stopImmediatePropagation","_lastTouchTimeoutId","menuTriggerKeyCode","baseClassName","noOutline","iconStyle","textAlign","flexShrink","effects","buttonBorder","disabledBackground","disabledText","buttonHighContrastFocus","outlineColor","inset","borderRadius","roundedCorner2","boxSizing","userSelect","flexWrap","splitButtonDividerBaseStyles","standardStyles","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextDisabled","buttonTextChecked","buttonTextCheckedHovered","white","neutralLight","neutralTertiaryAlt","neutralQuaternaryAlt","primaryStyles","_f","_g","_h","_j","primaryButtonBackground","primaryButtonText","primaryButtonBackgroundHovered","primaryButtonTextHovered","primaryButtonBackgroundPressed","primaryButtonTextPressed","primaryButtonTextDisabled","primaryButtonBackgroundDisabled","focusInset","focusColor","_k","_l","_m","_o","_p","baseSplitButtonStyles","commandButtonStyles","minWidth","neutralLighter","themeDark","disabledBodySubtext","borderTopRightRadius","borderBottomRightRadius","CommandBarButton","customizable","CommandButton","primary","splitButtonStyles","compoundButtonStyles","maxWidth","minHeight","flexDirection","flexBasis","standardCompoundTheme","primaryCompoundTheme","CompoundButton","defaultButtonStyles","DefaultButton","iconButtonStyles","link","PrimaryButton","pointerEvents","borderRight","borderRightWidth","borderLeftWidth","neutralSecondaryAlt","borderLeft","verticalAlign","marginLeft","marginTop","marginRight","marginBottom","Rectangle","equals","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_isEdgeInBounds","bounds","_getOutOfBoundsDegree","total","breakingEdges_1","pow","_alignOutOfBoundsEdges","outOfBoundsEdges","elementEstimate","bounding","preserveEdge","outOfBoundsEdges_1","edgeAttempt","elementRectangle","forcedInBounds","_centerEdgeToPoint","_estimatePosition","elementToPosition","positionData","coverTarget","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","_finalizeElementPosition","doNotFinalizeReturnEdge","forceWithinBounds","returnValue","_getRectangleFromElement","_isEdgeOnBounds","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","directionalHintFixed","alignTargetEdge","directions","oobDegree","currentEstimate","currentEdge","currentAlignment","bestEdge","bestAlignment","currentOOBDegree","_flipToFit","fixedEdge","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_adjustFitWithinBounds","clientRect","_positionElementRelative","previousPositions","gapSpace","targetRectangle","clientX","clientY","rectOrPoint","y","outOfBounds_1","_getTargetRect","_getAlignmentData","directionalHintForRTL","positionInformation","_getPositionData","positionedElement","_positionCallout","callout","beakWidth","isBeakVisible","sqrt","_calculateActualBeakWidthInPixels","positionProps","elementPosition","positionedBeak","showBeak","innerWidth","innerHeight","finalizedBeakPosition","beakTargetPoint","elementBounds","beakPosition","_positionBeak","closestEdge","hideBeak","_finalizePositionData","ANIMATIONS","slideUpIn10","slideDownIn10","slideLeftIn10","slideRightIn10","OFF_SCREEN_STYLE","opacity","filter","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","preventDismissOnLostFocus","preventDismissOnScroll","preventDismissOnResize","minPagePadding","disableCaching","usePositions","calloutElement","getBounds","positions","setPositions","positionAttempts","previousTarget","async","finalHeight","calloutMaxHeight","onPositioned","timerId_1","requestAnimationFrame","prevElementPositions","newElementPosition","currentProps","dupeCalloutElement","cloneNode","maxHeight","visibility","appendChild","newPositions","_positionCard","positionCard","positionCallout","removeChild","comparePositions","cancelAnimationFrame","CalloutContentBase","propsWithoutDefaults","forwardedRef","getPropsWithDefaults","calloutWidth","calloutMaxWidth","calloutMinWidth","hideOverflow","onScroll","onLayerMounted","popupProps","setCalloutElement","calloutCallback","calloutEl","rootRef","targetWindowResized","setTargetWindowResized","cachedBounds","currentBounds","segments","getWindowSegments","segments_1","segment","_getBoundsFromTargetWindow","getBoundsFromTargetWindow","debounce","leading","useBounds","setMaxHeight","calculatedHeight","topBounds","bottomBounds","useMaxHeight","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","composedPath","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","hasFocus","relatedTarget","disposablesPromise","Promise","resolve","disposables_1","documentElement","then","useDismissHandlers","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","setInitialFocus","hasPositions","timerId_2","useAutoFocus","overflowYHidden","beakVisible","overflowStyle","overflowY","visibilityStyle","beak","getBeakPosition","beakCurtain","Popup","calloutMain","onRestoreFocus","previousProps","nextProps","shouldUpdateWhenHidden","beakPositionStyle","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","CalloutContent","zIndex","Layer","boxShadow","elevation16","borderWidth","borderStyle","menuBackground","transform","overflowX","Callout","layerProps","CheckBase","useFastIcons","IconComponent","circle","check","Check","CheckGlobalClassNames","checkHost","checkBoxHeight","isRTL","sharedCircleCheck","background","bodyBackground","CheckboxBase","required","inputProps","ariaPositionInSet","ariaSetSize","checkmarkIconProps","boxSide","mergedRootRefs","inputRef","defaultChecked","isChecked","setIsChecked","indeterminate","defaultIndeterminate","isIndeterminate","setIsIndeterminate","useFocusRects","reversed","isUsingCustomLabelRender","onRenderLabel","defaultLabelRenderer","checkboxProps","setNativeIndeterminate","setIndeterminate","checkBoxRef","useComponentRef","ariaChecked","mergedInputProps","input","htmlFor","checkbox","checkmark","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","Checkbox","_q","_r","_s","_t","checkmarkFontColor","inputForegroundChecked","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","inputBackgroundChecked","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","inputBorderHovered","checkboxBorderIndeterminateHoveredColor","inputBackgroundCheckedHovered","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","inputTextHovered","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","transitionProperty","transitionDuration","transitionTimingFunction","outlineOffset","imageSize","ChoiceGroupOptionBase","itemKey","focused","imageSrc","hasIcon","hasImage","imageIsLarge","defaultOnRenderLabel","labelId","defaultOnRenderField","imageAlt","selectedImageSrc","field","innerField","imageWrapper","src","selectedImageWrapper","iconWrapper","labelWrapper","onRenderField","choiceFieldWrapper","evt","onBlur","choiceFieldTransitionDuration","choiceFieldTransitionTiming","getChoiceGroupFocusStyle","focusBorderColor","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","paddingBottom","ChoiceGroupOption","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","focusBorder","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","choiceFieldSize","radioButtonSpacing","paddingLeft","paddingTop","disabledBodyText","paddingRight","labelWrapperLineHeight","getOptionId","option","findOption","focusSelectedOption","keyChecked","focusProviders","optionToFocus","getElementById","ChoiceGroupBase","defaultSelectedKey","optionsContainIconOrImage","some","selectedKey","setKeyChecked","keyFocused","setKeyFocused","focusContext","checkedOption","onOptionChange","onRadioFocus","HTMLElement","dataset","isFocusTrapZoneBumper","focusFromFocusTrapZone","Label","ChoiceGroup","getFullColorString","h","v","r","hsv2rgb","g","rgb2hex","updateSV","hex","str","_rgbaOrHexString","a","ColorRectangleBase","_disposables","_isAdjustingSaturation","increment","_updateColor","clamp","_onMouseMove","_disposeListeners","newColor","_getNewColor","_onTouchMove","capture","passive","minSize","ariaValueFormat","valueText","replace","light","dark","thumb","oldColor","prevColor","rectSize","coords","touchEvent","touches","lastTouch","mouseEvent","sPercentage","vPercentage","round","ColorRectangle","elevation8","ColorSliderBase","maxValue","_maxValue","win","getWindow","currentPercentage","thumbColor","overlayStyle","isAlpha","minValue","_type","overlayColor","sliderOverlay","sliderThumb","hueStyle","join","alphaStyle","backgroundImage","ColorSlider","useAlphaBackground","updateA","updateT","allColorComponents","errorKeys","ColorPickerBase","_onSVChanged","_onHChanged","updateH","_onATChanged","updater","alphaType","editingColor","isHex","isTransparency","minLength","isNaN","Number","getColorFromString","substring","getColorFromRGBA","correctRGB","strings","hexLabel","redLabel","greenLabel","blueLabel","alphaLabel","alphaSliderHidden","hue","_getColorFromProps","_textChangeHandlers","allColorComponents_1","_onTextChange","defaultStrings","_textLabels","red","green","blue","alpha","transparency","_strings","alphaAriaLabel","transparencyAriaLabel","textLabels","tooltipProps","useTransparency","colorComponents","atValue","atLabel","selectedColorAriaParts","rootAriaLabelFormat","panel","svAriaLabel","svAriaDescription","svAriaValueFormat","colorRectangle","flexSlider","hueAriaLabel","showPreview","flexPreviewBox","colorSquare","table","cellPadding","cellSpacing","tableHeader","tableHexCell","tableAlphaCell","comp","tooltipContent","_getTooltipValue","TextField","spellCheck","invalid","errorKey","substr","test","hexError","alphaError","transparencyError","redError","greenError","blueError","ColorPicker","tableLayout","td","SearchDirection","HoverStatus","getDisabledStyles","listOptionHighContrastStyles","inputHighContrastStyles","getOptionStyles","customStylesForAllOptions","customOptionStylesForCurrentOption","isPending","isHidden","isSelected","textHoveredColor","menuItemTextHovered","textSelectedColor","textDisabledColor","backgroundHoveredColor","backgroundPressedColor","optionStyles","wordWrap","overflowWrap","isFocusedOnly","optionText","optionTextWrapper","getCaretDownButtonStyles","caret","buttonTextColor","bodySubtext","buttonTextHoveredCheckedColor","buttonBackgroundHoveredColor","listItemBackgroundHovered","buttonBackgroundCheckedColor","listItemBackgroundChecked","buttonBackgroundCheckedHoveredColor","listItemBackgroundCheckedHovered","buttonHighContrastStyles","comboBoxOptionWidth","textColor","inputText","inputBorder","borderHoveredColor","borderPressedColor","inputFocusBorderAlt","borderFocusedColor","inputBackground","erroredColor","errorText","headerTextColor","menuHeader","dividerBorderColor","bodyDivider","placeholderHighContrastStyles","placeholderStyles","inputPlaceholderText","placeholderStylesHovered","disabledPlaceholderStyles","ComboBoxRootHighContrastFocused","focusBorderStyles","rootError","rootDisallowFreeForm","font","inputDisabled","errorMessage","optionsContainerWrapper","optionsContainer","header","isOpen","allowFreeForm","hasErrorMessage","getComboBoxOptionClassNames","ComboBoxOptionWrapper","oldProps","newProps","allowFreeform","buttonIconProps","ComboBox","mergedRootRef","getSelectedIndices","selectedKeys","buildSelectedKeys","buildDefaultSelectedKeys","selectedIndices","setSelectedIndices","currentOptions","setCurrentOptions","setSuggestedDisplayValue","indices","useOptionsState","ComboBoxInternal","hoisted","findFirstDescendant","allowVirtualChildren","getChildren","candidate","_autofill","_comboBoxWrapper","_comboBoxMenu","_selectedElement","_overrideScrollDismiss","shouldOpenOnFocus","useFocusAsync","_hasFocus","focusState","_onUpdateValueInAutofillWillReceiveProps","comboBox","normalizeToString","_currentVisibleValue","_renderComboBoxWrapper","multiselectAccessibleText","errorMessageId","isButtonAriaHidden","placeholderProp","placeholder","autofill","iconButtonProps","ariaActiveDescendantValue","multiSelect","labelProps","trim","_onInputKeyDown","_onInputKeyUp","_onAutofillClick","_onInputChange","_getAriaAutoCompleteValue","_onShouldSelectFullInputValueInAutofillComponentDidUpdate","_getCaretButtonStyles","_onComboBoxClick","_getVisibleValue","allowFreeInput","currentPendingValueValidIndex","currentPendingValue","currentPendingIndexValid","indexWithinBounds","_getPendingString","_getMultiselectDisplayString","_getFirstSelectedIndex","getPreviewText","updatedValue","_handleInputWhenDisabled","_processInputChangeWithFreeform","_processInputChangeWithoutFreeform","select","_onResolveOptions","onResolveOptions","newOptions_1","_currentPromise","newOptionsFromPromise","isBlurFromComboBoxTitle","isBlurFromComboBoxMenu","isBlurFromComboBoxMenuAncestor","_submitPendingValue","_onRenderContainer","onRenderList","calloutProps","dropdownWidth","dropdownMaxWidth","onRenderUpperContent","_onRenderUpperContent","onRenderLowerContent","_onRenderLowerContent","useComboBoxAsMenuWidth","comboBoxMenuWidth","clientWidth","_onLayerMounted","_onDismiss","_onCalloutMouseDown","_onScroll","_preventDismissOnScrollOrResize","_onRenderList","_onCalloutLayerMounted","_scrollIntoView","_onRenderLabel","onRenderLabelProps","queue","renderedList","emptyQueue","newGroup","itemType","Header","id_1","Divider","placeRenderedOptionIntoQueue","_renderSeparator","_renderHeader","_renderOption","onRenderOption","_onRenderOptionContent","_isOptionSelected","_isOptionChecked","_isOptionIndeterminate","_getCurrentOptionStyles","optionClassNames","_onItemClick","_renderCheckboxLabel","onMouseEnter","_onOptionMouseEnter","onMouseMove","_onOptionMouseMove","onMouseLeave","_onOptionMouseLeave","_isScrollIdle","_scrollIdleTimeoutId","_onRenderMultiselectOptionContent","onMenuDismiss","_setOpenStateAndFocusOnClose","_resetSelectedIndex","_onAfterClearPendingInfo","_processingClearPendingInfo","currentPendingValueValidIndexOnHover","_lastKeyDownWasAltOrMeta","isAltOrMeta","_getPendingSelectedIndex","escape","clearAll","_setPendingInfoFromIndexAndDirection","backward","forward","directionToSearch","keyCode","keyPressIsAltOrMetaAlone","shouldHandleKey","openOnKeyboardFocus","_shouldIgnoreMouseEvent","warnMutuallyExclusive","_gotMouseMove","default","onMenuOpen","onMenuDismissed","_focusInputAfterClose","_notifyPendingValueChanged","_overrideScrollDimissTimeout","newCurrentPendingValueValidIndex","_updateAutocompleteIndexWithoutFreeform","descendantText","onRenderContainer","comboBoxWrapper","displayValues","idx","SelectAll","multiSelectDelimiter","isNormalOption","_setPendingInfo","originalUpdatedValue","newSuggestedDisplayValue","_autoCompleteTimeout","matchingIndex","_setPendingInfoFromIndex","_getNextSelectableIndex","searchDirection","newIndex","max","min","isSelectableOption","_setSelectedIndex","submitPendingValueEvent","onPendingValueChanged","initialIndices","changedOptions","selected","currentOption","selectAllOption","o","selectAllState","_isSelectAllChecked","selectAllIndex_1","persist","_hasPendingValue","_clearPendingInfo","pendingOptionText","isValueSelected","newOption","newOptions","_isOptionHighlighted","testIndices","find","selectAllIndex","compareSelectedIndices","selectableOptions","includeCurrentPendingValue","onScrollToItem","scrollSelectedToTop","currentPendingSelectedIndex","scrollToElement","offsetParent","alignToTop","offsetHeight","offsetTop","parentOffsetHeight","scrollTop","isBelow","scrollTo","scrollIntoView","onItemClick","selectedIndex","indexUpdate","newPendingIndex","newPendingValue","focusInputAfterClose","customCaretDownButtonStyles","caretDownButtonStyles","comboBoxOptionStyles","customStylesForCurrentOption","_isPendingOption","selectedKeys_1","sort","useAriaLabelAsText","getCommandButtonStyles","rootStyles","labelStyles","restCustomStyles","CommandBarBase","_overflowSet","_resizeGroup","_onRenderData","primaryGroupAriaLabel","farItemsGroupAriaLabel","hasSecondSet","farItems","OverflowSet","primarySet","primaryItems","overflowItems","onRenderOverflowButton","_onRenderOverflowButton","secondarySet","itemText","commandButtonProps","buttonStyles","iconOnly","subMenuProps","_onButtonClick","setAriaDescribedBy","_commandButton","ButtonAs","buttonAs","CommandBarButtonAs","commandBarButtonAs","Type","overflowButtonProps","combinedOverflowItems","overflowProps","OverflowButtonType","shiftOnReduce","onDataReduced","cacheKey","renderedInOverflow","newData","_computeCacheKey","onDataGrown","minimumOverflowItems","dataDidRender","resizeGroupAs","ResizeGroupAs","commandBarData","overflowSet","remeasure","inactive","returnKey","acc","reduce","CommandBar","getIsChecked","canCheck","hasSubmenu","isItemDisabled","isDisabled","getMenuItemAriaRole","defaultIconRenderer","renderItemIcon","hasIcons","renderCheckMarkIcon","onCheckmarkClick","isItemChecked","checkmarkIcon","e","renderItemName","renderSecondaryText","renderSubMenuIcon","submenuIconProps","subMenuIcon","ContextualMenuItemBase","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissAll","renderContent","_renderLayout","linkContentMenu","linkContent","defaultRenders","getDividerClassNames","wrapper","CONTEXTUAL_MENU_ITEM_HEIGHT","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","bodyTextChecked","anchorLink","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","large","iconColor","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","splitMenu","getItemClassNames","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","splitPrimary","splitContainer","getItemStyles","ContextualMenuItem","ContextualMenuItemWrapper","_onItemMouseEnter","onItemMouseEnter","currentTarget","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","shouldComponentUpdate","ContextualMenuAnchor","_anchor","_renderAriaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","expandedMenuItemKey","ChildrenRenderer","contextualMenuItemAs","anchorRel","rel","itemHasSubmenu","ariaDescribedByIds","additionalItemProperties","ContextualMenuSplitButton","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","_dismissLabelId","splitButton","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","VerticalDivider","onItemMouseDown","onTap","ContextualMenuButton","_btn","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","MenuContext","getContextualMenuItemClassNames","getItemCount","items_1","customOnRenderListLength","getSubmenuItems","overrideItems","items_2","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","_getMenuItemStylesFunction","styleProps","useSubMenuState","dismiss","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","setShouldFocusOnContainer","subMenuId","closeSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","isMountedRef","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","isSubMenu","ContextualMenuBase","asyncTracker","menuId","tryFocusPreviousActiveElement","documentContainsFocus","useIsomorphicLayoutEffect","originalElement","containsFocus","newElement","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","responsiveMode","useResponsiveMode","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","contextMenuStyle","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","dismissAllMenus","handled","shouldHandleKeyDown","submenuCloseKey","shouldCloseSubMenu","shouldHandleKeyUp","hasModifier","openKey","useKeyHandlers","onMenuKeyDown","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","overrideTarget","shouldDismiss","setActive","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","menuItem","renderMenuItem","indexIncrease","itemClassNames","subMenuIconClassName","itemStyleProps","subComponentStyles","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","Section","renderSectionItem","defaultRenderNormalItem","renderNormalItem","onRenderContextualMenuItem","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_2","correctedIndex_1","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","commonProps","ContextualMenuAnchorAs","contextualMenuItemWrapperAs","ContextualMenuSplitButtonAs","ContextualMenuButtonAs","divHtmlProperties","useTargetWidth","useTargetAsMinWidth","onRenderSubMenu","onDefaultRenderSubMenu","onRenderMenuList","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","adjustedFocusZoneProps","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","offsetWidth","targetWidth","totalItemCount_1","calloutStyles_1","Consumer","menuContext","focusZoneAs","renderFocusZone","defaultMenuItemRenderer","items_3","Event","Element","isopen","LocalContextualMenu","ContextualMenuItemType","DayOfWeek","MonthOfYear","FirstWeekOfYear","DateRangeType","DEFAULT_DATE_FORMATTING","formatDay","date","getDate","formatMonth","months","getMonth","formatYear","getFullYear","formatMonthDayYear","formatMonthYear","DEFAULT_CALENDAR_STRINGS","shortMonths","days","shortDays","goToToday","weekNumberFormatString","prevMonthAriaLabel","nextMonthAriaLabel","prevYearAriaLabel","nextYearAriaLabel","prevYearRangeAriaLabel","nextYearRangeAriaLabel","closeButtonAriaLabel","selectedDateFormatString","todayDateFormatString","monthPickerHeaderAriaLabel","yearPickerHeaderAriaLabel","dayMarkedAriaLabel","addDays","Date","getTime","setDate","addWeeks","weeks","addMonths","newMonth","setMonth","addYears","years","setFullYear","getMonthStart","getMonthEnd","month","compareDates","date1","date2","compareDatePart","getDatePartHashValue","getDateRangeArray","dateRangeType","firstDayOfWeek","workWeekDays","daysToSelectInDayView","startDate","datesArray","endDate","Monday","Tuesday","Wednesday","Thursday","Friday","Day","getDatePart","Week","WorkWeek","daysOffset","getDay","getStartDateOfWeek","Month","nextDate","isInDateRangeArray","dateRange","dateRange_1","getWeekNumber","firstWeekOfYear","FirstFullWeek","getWeekOfYearFullDays","FirstFourDayWeek","num","getDayOfYear","num3","getFirstDayWeekOfYear","numberOfFullDays","dayOfYear","daysInYear","December","num2","year","daysUntilDate","daysInMonth","getBoundedDateRange","minDate","maxDate","boundedDateRange","isBeforeMinDate","isAfterMaxDate","isRestrictedDate","restrictedDates","rd","CalendarMonthHeaderRow","showWeekNumbers","allFocusable","weeksToShow","dayLabels","firstOfMonthIndex","day","originalDate","dayCell","val","weekDayLabelCell","findAvailableDate","targetDate","initialDate","restrictedDateOptions","getOwnPropertySymbols","propertyIsEnumerable","__rest","availableDate","CalendarGridDayCell","navigatedDate","dateTimeFormatter","activeDescendantId","navigatedDayRef","calculateRoundedStyles","dayIndex","weekIndex","weekCorners","customDayCellRef","onSelectDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","cornerStyle","isNavigatedDate","isMarked","daySelected","isInBounds","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","setRef","onSelected","onMouseOver","dayInfos","dayRefs","dayRef","classList","remove","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","onMouseOut","findAvailableDateOptions","week","dayToCompare","navigateMonthEdge","isToday","dayButton","dayIsToday","dayMarker","CalendarGridRow","rowClassName","ariaRole","weekNumbers","weeksInMonth","selectedYear","selectedMonth","dayOfMonth","fistDayOfMonth","endOfFirstWeek","dateWeekDay","Sunday","adjustWeekDay","endOfWeekRange","weeksArray","getWeekNumbersInMonth","titleString","weekNumberCell","useWeeks","getSetRefCallback","weeksGrid","selectedDate","today","markedDays","todaysDate","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","isSingleWeek","daySet","amountOfNoNeighbors","days_1","nextDay","has","isContiguous","getDateRangeTypeToUse","selectedDates","shouldGetWeeks","dayInfo","markedDay","getDayGrid","firstVisibleDay","lastVisibleDay","getMarkedDays","CalendarDayGridBase","daysRef","dayKey","useDayRefs","restrictedDatesOptions","animateBackwards","previousNavigatedDate","useAnimateBackwards","above","below","roundedTopRight","roundedBottomLeft","roundedBottomRight","isInSameHoverRange","date1Selected","date2Selected","initialWeeks","weekCornersStyled","datesAbove","datesBelow","datesRight","datesLeft","calculateBorderStyles","useWeekCornerStyles","getWeekCornerStyles","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","partialWeekProps","dateRangeHoverType","sortedWWDays","accumulatedValue","currentWeek","weekDay","dayInfosInRange","firstTransitionWeek","weekRow","lastTransitionWeek","AnimationDirection","hoverStyle","pressedStyle","dayIsTodayStyle","daySelectedStyle","transitionRowDisappearance","CalendarDayGrid","rowAnimationStyle","Horizontal","slideRightIn20","slideLeftIn20","slideDownIn20","slideUpIn20","firstTransitionRowAnimationStyle","lastTransitionRowAnimationStyle","animationName","slideUpOut20","slideDownOut20","disabledStyle","borderCollapse","borderSpacing","fadeIn200","neutralLighterAlt","span","borderTopLeftRadius","borderBottomLeftRadius","borderTop","borderBottom","CalendarDayBase","dayGrid","onHeaderSelect","showSixWeeksByDefault","monthAndYearId","headerIsClickable","monthAndYear","HeaderButtonComponentType","headerAriaLabel","onButtonKeyDown","CalendarDayNavigationButtons","navigationIcons","showCloseButton","onSelectNextMonth","onSelectPrevMonth","leftNavigationIcon","leftNavigation","rightNavigationIcon","rightNavigation","closeNavigationIcon","closeIcon","prevMonthInBounds","nextMonthInBounds","monthComponents","headerIconButton","CalendarDay","alignSelf","hasHeaderClickCallback","highlightCurrent","highlightSelected","animationStyle","headerAnimationStyle","headerContainer","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","itemButton","themeLight","defaultCalendarStrings","defaultCalendarNavigationIcons","DefaultCalendarYearStrings","prevRangeAriaLabel","nextRangeAriaLabel","CalendarYearGridCell","highlightCurrentYear","highlightSelectedYear","onSelectYear","onRenderYear","buttonRef","CalendarYearNavDirection","CalendarYearGrid","fromYear","toYear","minYear","maxYear","selectedCellRef","currentCellRef","yearToRender","gridAriaLabel","cells","j","cellRow","CalendarYearNavArrow","onSelectPrev","onSelectNext","Previous","newRangeOffset","ariaLabelString","onNavigate","isLeftNavigation","Next","CalendarYearNav","CalendarYearTitle","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","CalendarYearHeader","onRenderTitle","CalendarYearBase","navigatedYear","rangeYear","previousFromYear","setFromYear","useYearRangeState","onNavNext","onNavPrevious","gridRef","CalendarYear","yearPickerHidden","CalendarMonthBase","navigatedMonthRef","calendarYearRef","focusOnUpdate","useFocusLogic","focusOnNextUpdate","isYearPickerVisible","setIsYearPickerVisible","currentYear","previousYear","highlightCurrentMonth","highlightSelectedMonth","selectMonthCallback","onSelectMonth","onSelectNextYear","onSelectPrevYear","dateFormatter","isPrevYearInBounds","isNextYearInBounds","yearToString","yearFormattingDate","yearRangeToString","yearRange","getYearStrings","yearStrings","newNavigationDate","rowIndexes","yearString","rowNum","monthsForRow","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isCurrentMonth","CalendarMonth","defaultWorkWeekDays","isMonthPickerVisible","isDayPickerVisible","showMonthPickerAsOverlay","showGoToToday","FirstDay","CalendarBase","setSelectedDate","navigatedDay","setNavigatedDay","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","selectedDateRangeArray","useDateState","onDateSelected","navigateDay","navigateMonth","getShowMonthPickerAsOverlay","setIsMonthPickerVisible","setIsDayPickerVisible","useVisibilityState","toggleDayMonthPickerVisibility","dayPicker","monthPicker","renderGoToTodayButton","goTodayEnabled","classes","goTodayButton","onGotoToday","calendarDayProps","calendarMonthProps","monthPickerOnly","overlaidWithButton","overlayedWithButton","todayDateString","selectedDateString","dateStringFormatter","selectionAndTodayString","liveRegion","focusOnNavigatedDay","monthPickerWrapper","Calendar","totalWidth","defaultDatePickerStrings","isRequiredErrorMessage","invalidInputErrorMessage","isResetStatusMessage","allowTextInput","formatDate","toDateString","parseDateFromString","dateStr","parse","initialPickerDate","isRequired","borderless","pickerAriaLabel","underlined","DatePickerBase","calendarProps","textFieldProps","textField","calendarAs","CalendarType","disableAutoFocus","calloutId","calendar","datePickerDiv","textFieldRef","preventFocusOpeningPicker","preventNextFocusOpeningPicker","isCalendarShown","setIsCalendarShown","isMounted","useCalendarVisibility","setSelectedDateState","formattedDate","setFormattedDate","newDate","useSelectedDate","setErrorMessage","statusMessage","setStatusMessage","isFirstLoadRef","validateOnLoad","isDateOutOfBounds","isOutOfBoundsErrorMessage","selectedText","statusText","useErrorMessage","validateTextInput","showDatePickerPopup","reset","dismissDatePickerPopup","newlySelectedDate","calendarDismissed","isDatePickerShown","textFieldId","handleEscKey","openOnClick","onRenderInput","readOnlyTextFieldClassName","readOnlyTextField","readOnlyPlaceholder","shouldFocus","FocusTrapZone","isClickableOutsideFocusTrap","disableFirstFocus","withLabel","withoutLabel","DatePicker","DatePickerIcon","TEXTFIELD_HEIGHT","CollapseAllVisibility","defaultOnRenderHeader","column","isIconOnly","accessibleLabel","DetailsColumnBase","_tooltipRef","_onRenderFilterIcon","columnProps","_onRenderColumnHeaderTooltip","hostClassName","_onColumnClick","onColumnClick","columnActionsMode","_onColumnBlur","_onColumnFocus","show","_onDragStart","itemIndex","selectedItems","_updateHeaderDragInfo","borderWhileDragging","noBorderWhileDragging","_onDragEnd","setDraggedItemIndex","updateDragInfo","_onColumnContextMenu","onColumnContextMenu","_onRootMouseDown","isDraggable","button","parentId","cellStyleProps","onRenderColumnHeaderTooltip","headerClassName","isEmpty","isIconVisible","isSorted","isGrouped","isFiltered","isPadded","transitionDurationDrag","transitionDurationDrop","onRenderFilterIcon","onRenderHeader","hasInnerButton","shouldAssociateTooltip","_hasAccessibleDescription","accNameDescription","isSortedDescending","draggable","calculatedWidth","cellLeftPadding","cellRightPadding","cellExtraRightPadding","gripperBarVerticalStyle","cellTooltip","cellTitle","onContextMenu","hasDropdown","isMenuOpen","cellName","nearIcon","showSortIconWhenUnsorted","sortIcon","filterChevron","_renderAccessibleDescription","dragDropHelper","_addDragDropHandling","isDropped","borderAfterDropping","noBorderAfterDropping","TRANSITION_DURATION_DROP","_dragDropSubscription","off","_getColumnDragDropOptions","columnIndex","selectionIndex","canDrag","canDrop","onDragStart","updateDropState","onDrop","onDragEnd","filterAriaLabel","sortAscendingAriaLabel","sortDescendingAriaLabel","groupAriaLabel","sortableAriaLabel","subscribe","cellIsCheck","collapseButton","isCollapsed","isAllSelected","isSelectAllHidden","isResizingColumn","cellSizer","isResizing","dropHintCircleStyle","dropHintLineStyle","DetailsColumn","colors","iconForegroundColor","headerForegroundColor","headerBackgroundColor","dropdownChevronForegroundColor","resizerColor","nearIconStyle","borderAfterDragOrDrop","listHeaderBackgroundHovered","listHeaderBackgroundPressed","alignContent","flex","transition","NO_COLUMNS","DetailsHeaderBase","_rootElement","_rootComponent","_draggedColumnIndex","_dropHintDetails","_updateDroppingState","_resetDropHints","_onDragOver","_computeDropHintToBeShown","_onDrop","columnReorderProps","_getColumnReorderProps","targetIndex","_currentDropHintIndex","isValidDrop","_isValidCurrentDropHintIndex","_onDropIndexInfo","sourceIndex","onColumnDrop","dragDropDetails","draggedIndex","handleColumnReorder","_computeColumnIndexOffset","showCheckbox","offset","groupNestingDepth","_updateDragInfo","_isCheckboxColumnHidden","_getDropHintPositions","onColumnDragStart","onColumnDragEnd","columnDragEndLocation","_isEventOnHeader","dropLocation","prevRef","columns","prevX","prevMid","frozenColumnCountFromStart","frozenColumnCountFromEnd","dropHintElement","querySelectorAll","offsetLeft","newMid","originX","startX","endX","dropHintElementRef","isRtl","eventXRelativePosition","currentDropHintIndex","_liesBetween","currentIndex","lastValidColumn","indexToUpdate","_isBefore","_isAfter","startIndex","endIndex","middleIndex","ceil","_updateDropHintElement","_renderColumnSizer","columnResizeDetails","isResizable","_stopPropagation","_onSizerBlur","cellSizerStart","cellSizerEnd","cellIsResizing","onDoubleClick","_onSizerDoubleClick","_onSelectAllClicked","selection","toggleAllSelected","columnIndexAttr","columnMinWidth","_onRootMouseMove","isSizing","_onRootKeyDown","onColumnResized","_onSizerMouseMove","buttons","onColumnIsSizingChanged","movement","_onSizerMouseUp","_onToggleCollapseAll","onToggleCollapseAll","newCollapsed","isAllCollapsed","_dragDropHelper","DragDropHelper","getSelection","minimumPixelsForDrag","_onSelectionChanged","_subscriptionObject","_getHeaderDragDropOptions","previousColumns","ariaLabelForToggleAllGroupsButton","ariaLabelForSelectAllCheckbox","selectAllVisibility","ariaLabelForSelectionColumn","indentWidth","selectionMode","onRenderDetailsCheckbox","checkboxVisibility","isCheckboxHidden","isCheckboxAlwaysVisible","always","hasGroupExpander","showGroupExpander","collapseAllVisibility","visible","columnIndexOffset","checkTooltip","DetailsRowCheck","D","multiple","isHeader","anySelected","canSelect","isVisible","cellIsGroupExpander","GroupSpacer","count","_isDraggable","_renderDropHint","_renderColumnDivider","sizingOverlay","columnReorderOptions","onDragOver","displayProperty","onRenderDivider","dropHintIndex","dropHintStyle","dropHintCaretStyle","onColumnAutoResized","DetailsHeader","tooltipHost","cell","gripperBarVertical","HEADER_HEIGHT","getCellStyles","getDetailsHeaderStyles","cellSizerFadeInStyles","cellStyles","cellWrapperPadded","cellIsActionable","cellIsEmpty","transformOrigin","SelectAllVisibility","withViewport","ComposedComponent","WithViewportComponent","_registerResizeObserver","_viewportResizeObserver","ResizeObserver","_onAsyncResize","observe","_unregisterResizeObserver","disconnect","_updateViewport","withForceUpdate","viewport","viewportElement","scrollElement","scrollRect","getRect","_resizeAttempts","_composedComponentInstance","delayFirstMeasure","disableResizeObserver","skipViewportMeasures","_isResizeObserverAvailable","previousSkipViewportMeasures","newViewport","_updateComposedComponentRef","BaseDecorator","MIN_COLUMN_WIDTH","rowFocusZoneAddTabIndexProps","rowFocusZoneNoTabIndexProps","DetailsListInner","ariaLabelForListHeader","compact","constrainMode","dragDropEvents","groups","isPlaceholderData","isHeaderVisible","layoutMode","onItemInvoked","onItemContextMenu","onColumnHeaderClick","onColumnHeaderContextMenu","mode","selectionPreservedOnEmptyClick","selectionZoneProps","ariaLabelForGrid","rowElementEventMap","shouldApplyApplicationRole","getKey","listProps","usePageCache","onShouldVirtualize","getGroupHeight","onRenderCheckbox","adjustedColumns","isSomeGroupExpanded","version","listRef","focusZoneRef","groupedListRef","headerRef","onGroupExpandStateChanged","onRowDidMount","onRowWillUnmount","disableSelectionZone","isSelectedOnFocus","onToggleCollapse","onActiveRowChanged","eventsToRegister","onRenderMissingItem","onRenderItemColumn","getCellValueKey","getRowAriaLabel","getRowAriaDescribedBy","checkButtonAriaLabel","checkButtonGroupAriaLabel","checkboxCellClassName","useReducedRowRenderer","enableUpdateAnimations","enterModalSelectionOnTouch","onRenderDefaultRow","selectionZoneRef","rowId","level","groupsInLevel","getGroupNestingDepth","groupedDetailsListIndexMap","indexMap","rowCount","numGroupHeaders","groups_1","group","numOfGroupHeadersBeforeItem","totalRowCount","useGroupedDetailsListIndexMap","additionalListProps","renderedWindowsAhead","renderedWindowsBehind","single","isCollapsedGroupSelectVisible","headerProps","defaultOnRenderDetailsHeader","detailsHeaderProps","defaultOnRenderDetailsFooter","propsOnRenderDetailsHeader","onRenderDetailsHeader","propsOnRenderDetailsFooter","onRenderDetailsFooter","detailsFooterProps","columnReorderOnDragEnd","finalDropLocation","outside","surface","remainingGroups","currentGroup","GetGroupCount","colCount","isFixed","fixedColumns","isHorizontalConstrained","horizontalConstrained","onRenderDetailsGroupFooter","onRenderFooter","finalOnRenderDetailsGroupFooter","groupFooterProps","onRenderDetailsGroupHeader","finalOnRenderDetailsGroupHeader","groupHeaderProps","groupIndex","groupKey","ariaColSpan","ariaLevel","ariaPosInSet","ariaRowCount","ariaRowIndex","finalGroupProps","selectAllButtonProps","sumColumnWidths","rowWidth","onRenderCell","nestingDepth","finalOnRenderRow","onRenderRow","rowRole","rowFocusZoneProps","rowProps","flatIndexOffset","onDidMount","onWillUnmount","isGridRow","onRenderListCell","isRightArrow","focusZoneInnerProps","focusZone","FinalGroupedList","groupedListAs","GroupedList","List","onHeaderKeyDown","setIndexSelected","onContentKeyDown","headerWrapper","contentWrapper","SelectionZone","selectionClearedOnEscapePress","toggleWithoutModifierPressed","enterModalOnTouch","DetailsListBase","_header","_groupedList","_list","_selectionZone","_onRenderRow","DetailsRow","_getDerivedStateFromProps","previousState","setKey","_selection","isAllGroupsCollapsed","newViewportWidth","oldViewportWidth","shouldResetSelection","shouldForceUpdates","nextState","_initialFocusedIndex","initialFocusedIndex","focusedItemIndex","setItems","_adjustColumns","_onGroupExpandStateChanged","_onColumnIsSizingChanged","_onRowDidMount","row","_getItemKey","_activeRows","_setFocusToRowIfPending","_onRowWillUnmount","_onToggleCollapse","collapsed","toggleCollapseAll","_onColumnResized","resizingColumn","newWidth","resizingColumnIndex","newCalculatedWidth","onColumnResize","_rememberCalculatedWidth","_onColumnAutoResized","totalCount","measureCell","_onActiveRowChanged","el","onActiveItemChanged","_columnOverrides","lastWidth","_getAdjustedColumns","Selection","onSelectionChanged","scrollToIndex","measureItem","scrollToMode","focusIndex","_setFocusToRow","getStartItemIndexInView","updateColumn","newColumnIndex","findIndex","col","isCheckboxColumnHidden","_notifyColumnsResized","onDidUpdate","_forceListUpdates","_getGroupNestingDepth","ignoreNextFocus","currentWidth","viewportWidth","newItems","newColumns","lastSelectionMode","canResizeColumns","sortedColumnKey","groupedColumnKey","isMultiline","firstItem","propName","fieldName","isCollapsible","buildColumns","isRowHeader","clickable","_getFixedColumns","_getJustifiedColumns","_getColumnOverride","flexMargin","remainingWidth","sumProportionalWidth","getPaddedWidth","rowCheckWidth","groupExpandWidth","widthFraction","newColumn","fullWidth","shrinkWidth","MAX_VALUE","minimumWidth","availableWidth","baseColumn","isCollapsable","lastIndex","overflowWidth","originalWidth","isLast","overrides","spaceLeft","justified","onHover","paddingOnly","listCell","DetailsList","listText","wordBreak","WebkitOverflowScrolling","ColumnActionsMode","ConstrainMode","ColumnDragEndLocation","DetailsListLayoutMode","CheckboxVisibility","DetailsRowFields","rowClassNames","propsOnRenderField","cellsByColumn","rowHeaderId","cellValueKeysRef","cellValueKeys","fieldProps","cellValueKey","fieldItem","fieldItemIndex","cellPadded","cellUnpadded","getValueKey","defaultOnRender","previousValueKey","showAnimation","cellAnimation","getCellText","DetailsRowBase","_cellMeasurer","selectionState","getSelectionState","isDropping","onDragEnter","_droppingClassNames","onDragLeave","columnMeasureInfo","_getRowDragDropOptions","_onDidMountCalled","onMeasureDone","newSelectionState","onRenderCheck","_onRenderCheck","getRowAriaDescription","rowFieldsAs","isSelectionModal","droppingClassName","ariaRowDescription","canSelectItem","isContentUnselectable","ariaSelected","_rowClassNames","RowFields","rowFields","columnStartIndex","_ariaRowDescriptionId","hasRowHeader","groupedListRowProps","checkCell","cellMeasurer","eventMap","isIndexSelected","isModal","DetailsRowGlobalClassNames","cellCheck","listCellFirstChild","isCheckVisible","DEFAULT_CELL_STYLE_PROPS","DEFAULT_ROW_HEIGHTS","rowHeight","compactRowHeight","values","rowVerticalPadding","compactRowVerticalPadding","getDetailsRowStyles","focusedLinkColor","linkHovered","defaultHeaderText","defaultMetaText","defaultBackground","defaultHoverHeaderText","defaultHoverMetaText","defaultHoverBackground","selectedHeaderText","selectedMetaText","selectedBackground","selectedHoverHeaderText","selectedHoverMetaText","selectedHoverBackground","focusHeaderText","focusMetaText","focusBackground","focusHoverBackground","selectedStyles","cannotSelectStyles","rootCompactStyles","cellCompactStyles","defaultCellStyles","fadeIn400","slideLeftIn40","nativeElementMap","audio","video","ol","li","textarea","tr","th","colGroup","form","iframe","img","FastCheck","_defaultCheckboxRender","_fastDefaultCheckboxRender","checkClassName","defaultCheckboxRender","detailsCheckboxProps","excludedPropNames","allowedPropNames","getNativeElementProps","checkRole","CHECK_CELL_WIDTH","getDetailsRowCheckStyles","ShimmerElementType","ShimmerElementsDefaultHeights","shimmerWrapper","shimmerGradient","dataWrapper","BACKGROUND_OFF_SCREEN_POSITION","shimmerAnimation","shimmerAnimationRTL","topLeftCorner","topRightCorner","bottomLeftCorner","bottomRightCorner","ShimmerLine","globalClassNames","borderStyles","sharedCornerStyles","fill","borderTopStyle","borderBottomStyle","ShimmerGap","svg","ShimmerCircle","viewBox","getElementStyles","elementHeight","dif","borderBottomWidth","borderTopWidth","line","ShimmerElementsGroup","shimmerElements","next","findMaxElementHeight","renderedElements","filteredElem","getRenderedElements","ShimmerBase","customElementsGroup","shimmerColors","isDataLoaded","improveCSSPerformance","transitionAnimationInterval","shimmerColor","shimmer","shimmerWaveColor","shimmerWave","internalState","lastTimeoutId","contentLoaded","setContentLoaded","divStyleProp","DelayedRender","Shimmer","animationDuration","animationTimingFunction","animationIterationCount","ShimmeredDetailsListBase","_onRenderShimmerPlaceholder","onRenderCustomPlaceholder","placeholderElements","_renderDefaultShimmerPlaceholder","gapHeight","shimmerElementsRow","columnIdx","groupWidth","_shimmerItems","shimmerLines","detailsListStyles","enableShimmer","removeFadingOverlay","ariaLabelForShimmer","restProps","listClassName","newListProps","ShimmeredDetailsList","whiteTranslucent40","DefaultModalProps","isDarkOverlay","isBlocking","containerClassName","topOffsetFixed","enableAriaHiddenSiblings","DefaultDialogContentProps","normal","topButtonsProps","DialogBase","_getSubTextId","ariaDescribedById","modalProps","dialogContentProps","subText","subtitleAriaId","_defaultSubTextId","_getTitleTextId","ariaLabelledById","titleAriaId","_defaultTitleTextId","dialogDraggableClassName","dragOptions","contentClassName","elementToFocusOnDismiss","firstFocusableSelector","forceFocusInsideTrap","disableRestoreFocus","ignoreExternalFocusing","onDismissed","onLayerDidMount","mergedLayerProps","dragHandleSelector","mergedModalProps","draggableHeaderClassName","titleProps","titleId","dialogDefaultMinWidth","dialogDefaultMaxWidth","Modal","main","DialogContent","subTextId","withResponsiveMode","Dialog","DialogFooterType","DialogFooter","DialogContentBase","subTextContent","isLargeHeader","largeHeader","isClose","close","groupings","_groupChildren","topButton","uniqueId","inner","innerContent","contents","footers","contentLgHeader","headerLg","xLarge","xxLarge","DialogType","DialogFooterBase","actions","actionsRight","_renderChildrenAsActions","action","VerticalDividerBase","deprecatedGetClassNames","names","DocumentCardContext","DocumentCardBase","_onAction","onClickHref","onClickTarget","open","location","accentColor","actionable","borderBottomColor","documentCardContextValue","Provider","DocumentCardPreviewGlobalClassNames","rootActionable","rootCompact","DocumentCard","WebkitFontSmoothing","DocumentCardType","DocumentCardActivityBase","activity","people","multiplePeople","_renderAvatars","details","_getNameString","avatars","_renderAvatar","person","avatar","PersonaCoin","imageInitials","initials","imageUrl","profileImageSrc","initialsColor","allowPhoneInitials","size32","nameString","DocumentCardActivity","DocumentCardActivityGlobalClassNames","HORIZONTAL_PADDING","DocumentCardDetailsBase","DocumentCardDetails","DocumentCardImageBase","_onImageLoad","imageHasLoaded","imageFit","onLoad","_renderCornerIcon","_renderCenterIcon","centeredIconWrapper","centeredIcon","cornerIcon","centeredIconSize","cornerIconSize","DocumentCardImage","DocumentCardLocationBase","locationHref","DocumentCardLocation","DocumentCardLocationGlobalClassNames","DocumentCardTitleBase","_titleElement","_truncateTitle","_needMeasurement","_truncateWhenInAnimation","originalTitle","getComputedStyle","scrollWidth","_clientWidth","lines","parseInt","overFlowRate","truncatedLength","truncatedTitleFirstPiece","truncatedTitleSecondPiece","_shrinkTitle","titleElement","scrollHeight","shouldTruncate","_updateTruncation","showAsSecondaryTitle","_timerId","DocumentCardTitle","DocumentCardTitleGlobalClassNames","DropdownSizePosCache","_size","updateOptions","displayOnlyOptionsCache","notSelectableOptionsCache","_displayOnlyOptionsCache","_notSelectableOptionsCache","_cachedOptions","positionInSet","DropdownBase","selectedKeyPropToUse","defaultSelectedKeys","oldOptions","didOptionsChange","oldSelectedKeyProp","getSelectedIndex","searchKey","selectedKeyPropToUse_1","getSelectedIndexes","useSelectedItemsState","DropdownInternal","activeTimeouts","_host","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","cb","extendComponent","timeoutId","_onChange","onChanged","changedOpt","_getPlaceholder","placeHolder","_getTitle","_unused","_onRenderTitle","_onRenderPlaceholder","panelProps","isSmall","focusTrapZoneProps","firstFocusableTarget","_listId","panelStyles","Panel","hasCloseButton","isLightDismiss","_renderFocusableList","_onPositioned","_onRenderCaretDown","caretDown","_onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","multiSelectItemStyles","multiSelectItem","_onMouseItemLeave","_onRenderItemLabel","optionSetSize","dropdownOptionText","_onRenderMultiselectOption","_hasBeenPositioned","calloutRenderEdge","setSelectedIndex","_onDropdownBlur","_isDisabled","_onDropdownKeyDown","_isAltOrMeta","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_shouldHandleKeyUp","_onZoneKeyDown","document_1","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_optionId","propStyles","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","selectedOptions","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","dropdown","caretDownWrapper","notifyOnReselect","newIndexes","_copyArray","array","newArray","array_1","stepValue","stepCounter","dropdownItemsWrapper","dropdownItems","separatorClassName","dropdownDividerHidden","dropdownDivider","dropdownItemHeaderHidden","dropdownItemHeader","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","menuItemText","borderColorError","dropdownItemStyle","dropdownHeaderStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","contentInner","customButtonStyles","FacepileButton","FacepileBase","_getPersonaControl","persona","getPersonaProps","personaSize","Persona","personaName","_getPersonaCoinControl","chevronButtonProps","maxDisplayablePersonas","personas","overflowPersonas","showAddButton","showTooltip","numPersonasToShow","hasOverflowPersonas","personasPrimary","personasOverflow","itemContainer","_getAddNewElement","members","_onRenderVisiblePersonas","_getOverflowElement","screenReaderOnly","singlePersona","onRenderPersona","onRenderPersonaCoin","onRenderPersonaWrapper","personaControl","defaultPersonaRender","_getElementWithOnClickEvent","_getElementWithoutOnClickEvent","member","_getElementProps","_onPersonaClick","_onPersonaMouseMove","_onPersonaMouseOut","overflowButtonType","descriptive","_getDescriptiveOverflowElement","downArrow","_getIconElement","more","personaNames","numPersonasNotPictured","descriptiveOverflowButton","onRenderInitials","_renderInitialsNotPictured","transparent","_renderInitials","addButtonProps","addButton","overflowInitialsIcon","Facepile","spacingAroundItemButton","ItemButtonStyles","useEventCallback","fn","firstBumper","lastBumper","isFirstRender","focusStackId","focusPreviouslyFocusedInnerElement","bumperProps","focusElementAsync","focusFTZ","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","returnFocusToInitiator","focusStack","forceFocusOrClickInTrap","disposables","modalize","previouslyFocusedElement","onBlurCapture","dropIcon","expand","iconTag","beziers","GroupHeaderBase","_toggleCollapse","isGroupLoading","newLoadingVisible","isLoadingVisible","onGroupHeaderKeyUp","shouldOpen","_onToggleClick","_onHeaderClick","onGroupHeaderClick","onRenderName","_onRenderName","headerCount","hasMoreData","groupLevel","loadingText","onRenderGroupHeaderCheckbox","expandButtonProps","expandButtonIcon","canSelectGroup","isSelectionCheckVisible","currentlySelected","groupHeaderContainer","expandIsCollapsed","Spinner","GroupHeader","finalRowHeight","checkExpandResetStyles","listBackground","actionLinkHovered","durationValue4","durationValue1","transitionDelay","durationValue3","neutralQuaternary","durationValue2","SPACER_WIDTH","GroupShowAll","showAllLinkText","onToggleSummarize","memoizedOnClick","useCallback","GroupFooter","footerText","GroupedListSection","_subGroupRefs","_droppingClassName","_onRenderGroupHeader","_onRenderGroupShowAll","_onRenderGroupFooter","_renderSubGroup","subGroup","subGroupIndex","getGroupItemLimit","showAllProps","footerProps","onRenderGroupHeader","onRenderGroupShowAll","onRenderGroupFooter","showEmptyGroups","_getGroupKey","_getGroupDragDropOptions","isGroup","newIsDropping","_onSelectionChange","groupedListClassNames","renderCount","Infinity","isShowAllVisible","isShowingAll","hasNestedGroups","dividerProps","ariaControlsProps","groupedListId","groupShowAllProps","canDragGroups","_getDroppingClassName","getItemCountForPage","_returnOne","_onRenderGroup","forceListUpdate","subGroupCount","pageRefs","_onRenderGroupCell","groupIsDropping","ROW_HEIGHT","COMPACT_ROW_HEIGHT","GroupedListBase","_renderGroup","onToggleSelectGroup","_onToggleSelectGroup","_onToggleSummarize","finalListProps","onRenderShowAll","_getDefaultGroupItemLimit","_getGroupItemLimit","_getGroupHeight","_getPageHeight","pageGroup","_updateIsSomeGroupExpanded","toggleRangeSelected","_isInnerZoneKeystroke","_getPageSpecification","_isSomeGroupExpanded","_computeIsSomeGroupExpanded","listVersion","_setGroupsCollapsedState","rootListProps","getPageHeight","getPageSpecification","allCollapsed","newIsSomeGroupExpanded","getIconContent","subset","code","fontFace","mergeImageProps","iconContent","accessibleName","finalChildren","IconType","cacheSize","IconBase","_onImageLoadingStateChange","onLoadingStateChange","error","imageLoadError","imageErrorAs","isPlaceholder","isImage","iconType","iconContentChildren","RootType","ImageType","finalIconContentChildren","MS_ICON","imageContainer","SVG_REGEX","ImageBase","frameElement","imageElement","onError","notLoaded","loadState","setLoadState","naturalWidth","naturalHeight","complete","loaded","onImageLoaded","onImageError","useLoadState","shouldFadeIn","shouldStartVisible","maximizeFrame","loading","coverStyle","previousLoadState","cover","contain","centerContain","centerCover","desiredRatio","landscape","portrait","computeCoverStyle","useCoverStyle","isLoaded","isLandscape","isCenter","center","isCenterContain","isCenterCover","isContain","isCover","isNone","isError","isNotImageFit","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","navigator","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","ImageFit","ImageCoverStyle","ImageLoadState","sequencesToID","keySequences","prevValue","keySequence","keytipManager","KeytipManager","K","getInstance","prevOptions","register","unregister","nativeKeytipProps","keytipId","describedByPrepend","newKeytipProps","addParentOverflow","describedby","getAriaDescribedBy","overflowSetSequence","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","getKeytipData","useKeytipData","LabelBase","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","PortalCompatContext","portalCompatContextDefaultValue","FocusRectsProvider","providerRef","layerRoot","parentContext","inheritParentContext","registerProvider","unregisterProvider","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","Customizer","_onCustomizationChange","Customizations","unobserve","contextTransform","CustomizerContext","newContext","scopedSettingsFromProps","scopedSettings","oldScopedSettings","newScopedSettings","scopeName","inCustomizerContext","mergeCustomizations","getFabricTheme","createTheme","FabricBase","applyTheme","applyThemeToBody","bodyThemed","currentDoc_1","useApplyThemeToBody","Root","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","useRenderedContent","filteredEventProps","inheritFont","Fabric","preventBlanketFontInheritance","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","LayerBase","_React_useContext","registerPortalEl","mergedRef","layerRef","fabricElementRef","needRaiseLayerMount","setNeedRaiseLayerMount","focusRectsRef","isFocusVisible","eventBubblingEnabled","fabricProps","hostId","insertFirst","onLayerWillUnmount","fabricRef","isNotHost","removeLayerElement","elem","createLayerElement","host","layerHost","layerHosts","getLayerHost","defaultHostSelector","createElement","cssText","createDefaultLayerHost","getHost","ownerDocument","virtualChild","virtualParent","oldParent","setVirtualParent","insertBefore","layerHosts_1","notifyLayersChanged","registerLayer","unregisterPortalEl","layers","layerHosts_2","unregisterLayer","onFilterEvent","eventPhase","BUBBLING_PHASE","rootNoHost","adjustPropsForRootType","underline","LinkBase","isButton","isUnderlined","rootType","useLink","linkColor","linkInteractedColor","linkDisabledColor","getScrollYPosition","scrollPos","scrollY","setScrollYPosition","pos","scrollX","SPACER_KEY_PREFIX","EMPTY_RECT","_measurePageRect","_measureSurfaceRect","_measureScrollRect","_surface","_pageRefs","hasMounted","renderEarly","canUseDOM","_resetRequiredWindows","_requiredRect","_measureVersion","_invalidatePageCache","_updatePages","_onRenderRoot","surfaceElement","_onRenderSurface","surfaceRef","pageElements","_onRenderPage","pageProps","onRenderCellConditional","page","cellRole","renderCell","ignoreScrollingState","isScrolling","pages","_estimatedPageHeight","_totalEstimates","_requiredWindowsAhead","_requiredWindowsBehind","_onAsyncScroll","maxWait","_onAsyncIdle","_onScrollingDone","_cachedPageHeights","_focusedIndex","_pageCache","_getRenderCount","allowedRect","_allowedRect","itemsPerPage","pageSpecification","pageHeight","itemCount","_scrollElement","scrollPosition","scrollWindow","itemPositionWithinPage","itemIndexInPage","scrollBottom","pages_1","isSpacer","_scrollTop","totalRowHeight","finalState","pagesVersion","_updatePageMeasurements","_materializedRect","_hasCompletedFirstRender","onPagesUpdated","newState","oldPages","newPages","oldPage","newPage","_updateRenderRects","getTotalListHeight","_surfaceRect","onRenderSurface","onRenderRoot","pages_2","_renderPage","finalOnRenderSurface","_shouldVirtualize","cachedPage","pageElement","pageStyle","_getPageStyle","onRenderPage","newRef","getPageStyle","indexString","innerRect","outerRect","requiredWindowsAhead","requiredWindowsBehind","windowsAhead","windowsBehind","newListState","_buildPages","oldListPages","_notifyPageChanges","onPageAdded","onPageRemoved","renderedIndexes","oldPages_1","newPages_1","_onPageAdded","_onPageRemoved","heightChanged","_measurePage","hasChangedHeight","cachedHeight","measureVersion","newClientRect","materializedRect","pageTop","currentSpacer","focusedIndex","shouldVirtualize","this_1","pageData","newRect","pageBottom","isPageRendered","isPageInAllowedRange","isPageInRequiredRange","itemsInPage","_createPage","_visibleRect","visibleRect","_getItemCountForPage","visibileRect","pageKey","surfaceRect","getScrollHeight","_scrollHeight","visibleTop","_expandRect","pagesBefore","pagesAfter","SCROLL_GUTTER","AutoScroll","_scrollableParent","_incrementScroll","_scrollRect","_stopScroll","_computeScrollVelocity","clientDirection","scrollClient","scrollRectTop","scrollRectLeft","scrollClientBottom","scrollClientRight","_isVerticalScroll","_scrollVelocity","_startScroll","_timeoutId","scrollLeft","MarqueeSelectionBase","isEnabled","onShouldStartSelection","_isMouseEventOnScrollbar","_isInSelectionToggle","_isTouch","_isDragStartInSelection","_scrollableSurface","_selectedIndicies","_preservedIndicies","_onAsyncMouseMove","_autoScroll","_scrollLeft","_rootRect","dragRect","hitTarget","isDraggingConstrainedToRoot","dragMask","box","boxFill","targetScrollbarWidth","targetScrollbarHeight","_getRootRect","_lastMouseEvent","rootRect","currentPoint","_dragOrigin","setAllSelected","constrainedPoint","_evaluateSelection","_itemRectCache","_isPointInRectangle","rectangle","getSelectedCount","allElements","itemRect","previousSelectedIndices","_allSelectedIndices","needToUpdate","setChangeEvents","rootTagName","MarqueeSelection","ICON_MAP","info","warning","blocked","severeWarning","success","getAnnouncementPriority","messageBarType","getRole","MessageBarBase","expandSingleLine","toggleExpandSingleLine","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandIconProps","regionProps","actionsDiv","dismissButton","dismissal","iconContainer","innerText","dismissSingleLine","multiline","singleline","dismissalSingleLine","expandingSingleLine","actionsSingleline","highContrastBorderColor","highContrastWhiteBorderColor","MessageBar","SmallScreenSelector","dismissalAndExpandIconStyle","xSmall","messageText","dismissalAndExpandStyle","messageLink","messageLinkHovered","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","MessageBarType","scrollableContent","layer","isDragging","touchAction","eventMapping","move","stop","DraggableZone","_currentEventType","only","_onDragStop","_onTouchEnd","onTouchEnd","handleSelector","_matchesSelector","preventDragSelector","_touchId","_getTouchId","_getControlPosition","dragData","_createDragDataFromPosition","onStart","lastPosition","_onDrag","updatedData","_createUpdatedDragData","updatedPosition","onDragChange","baseDragData","onStop","statePosition","touchObj","_getActiveTouch","eventToGetOffset","targetTouches","_findTouchInTouchList","changedTouches","touch","identifier","selector","matchesSelectorFn","matches","webkitMatchesSelector","msMatchesSelector","touchList","delta","ZERO","ModalBase","allowTouchBodyScroll","scrollableContentClassName","isAlert","overlay","isModeless","focusTrapZone","focusTrapZoneRef","focusTrapZoneElm","modalResponsiveMode","focusTrapZoneId","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","modalRectangleTop","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","onModalCloseTimer","lastSetCoordinates","events","keepInBounds","isAlertRole","layerClassName","hasBeenOpened","windowInnerHeight","isDefaultDragHandle","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","minPosition","maxPosition","getClampedAxis","axis","handleModalClose","isInKeyboardMoveMode","disposeOnKeyUp","handleDragStart","handleDrag","handleDragStop","handleKeyUp","modalContent","disposeOnKeyDown","keyboardMoveIconContainer","keyboardMoveIconProps","keyboardMoveIcon","menu","moveMenuItemText","handleKeyDown","newLocal","handledEvent","delta_1","getMoveDelta","closeMenuItemText","Overlay","isDarkThemed","elevation64","xLargePlus","_urlResolver","linkText","compositeLink","chevronButton","chevronIcon","navItem","navItems","groupContent","NavBase","_onRenderLink","_renderGroupHeader","_isGroupExpanded","onHeaderClick","isCollapsing","_onGroupHeaderClicked","_renderLinks","links","expandButtonAriaLabel","collapseAriaLabel","expandAriaLabel","isGroupCollapsed","isLinkExpandStateChanged","initialSelectedKey","isOnTop","groupElements","_renderNavLink","linkIndex","nestingLevel","url","isLinkWithIcon","isSelectedLink","_isLinkSelected","ariaCurrent","isButtonEntry","forceAnchor","leftPadding","LinkAs","linkAs","onRenderLink","_onNavButtonLinkClicked","_onNavAnchorLinkClicked","_renderCompositeLink","isLink","finalExpandBtnAriaLabel","_onLinkExpandClicked","_renderLink","linkElements","_toggleCollapsed","onLinkExpandClick","_preventBounce","onLinkClick","protocol","pathname","hash","collapseByDefault","newGroupCollapsed","Nav","navHeight","leftPaddingExpanded","rightPadding","slideRightIn40","bodyBackgroundHovered","bodyBackgroundChecked","registerPersistedKeytips","keytipsToRegister","registeredPersistedKeytips","keytipsToRegister_1","keytip","unregisterPersistedKeytips","uniqueID","keytipSequences","itemSubMenuProvider","persistedKeytips","getSubMenuForItem","newKeytipsToRegister","newOverflowItems","overflowItem","persistedKeytip","hasDynamicChildren","onExecute","menuExecute","hasOverflowSubMenu","newOverflowItem","modifiedOverflowItems","prevPersistedKeytips","useKeytipRegistrations","OverflowSetBase","divContainer","_forceIntoFirstElement","focusSucceeded","childElement","overflowSide","showOverflow","overflowItemStyle","OverlayBase","_allowTouchBodyScroll","isDark","rootDark","blackTranslucent40","PanelVisibilityState","PanelBase","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","isActive","_allowScrollOnPanel","_scrollableContent","_onRenderNavigation","_onRenderNavigationContent","navigation","_onRenderHeader","closeButton","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footer","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","closed","isFooterSticky","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","shouldListenOnOuterClick","previousShouldListenOnOuterClick","isFooterAtBottom","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderBody","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","hiddenPanel","commands","innerHeight_1","onOuterClick","smallFixedFar","smallFluid","largeFixed","extraLarge","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","sharedPaddingStyles","isCustomPanel","fadeIn100","fadeOut100","variantBorder","slideLeftOut40","slideRightOut40","hyphens","easeFunction2","borderTopColor","PanelType","size48","presence","showOverflowTooltip","PersonaBase","getText","primaryText","renderElement","elementClassNames","renderFunction","defaultRenderFunction","tooltip","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","tertiaryText","onInternalRenderOptionalText","optionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","providedCoinProps","coinProps","showUnknownPersonaCoin","coinSize","imageShouldFadeIn","imageShouldStartVisible","initialsTextColor","isOutOfOffice","onPhotoLoadingStateChange","onRenderCoin","presenceTitle","presenceColors","showInitialsUntilImageLoads","showSecondaryText","personaCoinProps","personaDetails","size8","size10","tiny","size16","size24","size28","size40","size56","size72","size100","size120","available","away","busy","doNotDisturb","offline","textContent","showSecondaryTextDefaultHeight","sharedTextStyles","isSize8","isSize10","isSize16","isSize24","isSize28","isSize32","isSize40","isSize48","isSize56","isSize72","isSize100","isSize120","isAvailable","isAway","isBlocked","isBusy","isDoNotDisturb","isOffline","PersonaSize","PersonaPresence","PersonaInitialsColor","PersonaPresenceBase","renderIcon","presenceHeightWidth","presenceMaxSize","coinSizeWithPresenceIconStyle","presenceFontMaxSize","coinSizeWithPresenceStyle","presenceIcon","determineIcon","oofIcon","makeOpenCircleIconStyle","makeBeforeBorderStyle","borderSize","makeSizeStyle","presenceColorAvailable","presenceColorAway","presenceColorBusy","presenceColorDnd","dnd","presenceColorOffline","presenceColorOof","oof","presenceColorBackground","isOpenCirclePresence","size12","backgroundClip","size6","size20","COLOR_SWATCHES_LOOKUP","lightBlue","darkBlue","teal","darkGreen","lightPink","pink","magenta","purple","orange","lightRed","darkRed","violet","gold","burgundy","warmGray","cyan","rust","coolGray","COLOR_SWATCHES_NUM_ENTRIES","getPersonaInitialsColor","personaInitialsColor","lightGreen","gray","personaInitialsColorToHexCode","hashCode","iLen","ch","charCodeAt","shift","getInitialsColorFromName","getInitialsStyles","PersonaCoinBase","imageLoadState","setImageLoadstate","useImageLoadState","renderCoin","getCoinRenderer","renderPersonaCoinInitials","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","coin","imageArea","size10WithoutPresenceIcon","dimension","perspective","superLarge","personaPresenceSize","sizeBoolean","extraExtraSmall","extraSmall","sizeToPixels","presenceBoolean","online","useRefEffect","initial","refCallback","cleanup","getLinkItems","pivotId","keyToIndexMapping","keyToTabIdMapping","isPivotItem","pivotItemProps","getTabId","PivotItem","PivotBase","overflowMenuButtonComponentRef","setSelectedKey","linkSize","linkFormat","overflowBehavior","nameProps","linkCollection","renderLinkContent","itemIcon","renderPivotLink","renderLinkCollection","renderPivotLinkSelectedKey","headerButtonProps","onRenderItemLink","tabId","contentString","itemSemantics","linkIsSelected","updateSelectedItem","renderedSelectedKey","renderedSelectedIndex","overflowMenuProps","overflowMenuButtonRef","onOverflowItemsChanged","pinnedIndex","updateOverflowRef","containerWidthRef","containerRef","cleanupObserver","onResize","observer_1","onResizeWrapper_1","win_1","animationFrameId_1","observeResize","entries","contentRect","menuButtonRef","menuButton","minContainerWidth","extraWidth","containerWidth","itemOffsetEnd","setOverflowIndex","prevOverflowIndex","ele","isOverflowing","useOverflow","elements","linkInMenu","overflowMenuButton","alwaysRender","headersOnly","selectedTabId","renderPivotItem","rootIsLarge","rootIsTabs","getLinkStyles","isLinkInOverflowMenu","actionLink","bold","Pivot","defaultFocusRestorer","shouldHideSiblings","useHideSiblingNodes","originalFocusedElement","useRestoreFocus","needsVerticalScrollBar","needsVerticalScrollBarState","setNeedsVerticalScrollBar","rootHeight","firstChildHeight","useScrollbarAsync","ResizeGroupDirection","getNextResizeGroupStateProvider","measurementCache","measurementsCache","getCachedMeasurement","addMeasurementToCache","measurement","_containerDimension","_measurementCache","_getMeasuredDimension","measuredData","getElementToMeasureDimension","cachedDimension","measuredDimension","_shrinkContentsUntilTheyFit","dataToMeasure","nextMeasuredData","renderedData","resizeDirection","getNextState","currentState","newContainerDimension","newDimension","fullDimensionData","measureContainer","_updateContainerDimension","_growDataUntilItDoesNotFit","shouldRenderDataForMeasurement","getInitialResizeGroupState","MeasuredContext","isMeasured","hiddenDivStyles","hiddenParentStyles","resizeDataReducer","measuredContextValue","ResizeGroupBase","nextResizeGroupStateProvider","initialHiddenDiv","updateHiddenDiv","hasRenderedContent","initialStateData","resizeData","dispatchResizeDataAction","stateRef","useResizeState","updateResizeState","containerDimension","refToMeasure","measuredBoundingRect","dataNeedsMeasuring","isInitialMeasure","useResizingBehavior","contentContainer","ScrollablePaneBase","_stickyAboveRef","_stickyBelowRef","_contentContainer","handler","_subscribers","unsubscribe","addSticky","sticky","_stickies","setDistanceFromTop","sortSticky","removeSticky","_removeStickyFromContainers","notifySubscribers","sortAgain","stickyAbove","stickyBelow","canStickyTop","stickyContentTop","_addToStickyContainer","canStickyBottom","stickyContentBottom","updateStickyRefHeights","stickyItems","stickyTopHeight","stickyBottomHeight","isStickyTop","isStickyBottom","nonStickyContent","_checkStickyStatus","handle","getScrollPosition","syncScrollSticky","syncScroll","_getScrollablePaneContext","scrollablePane","stickyContainer","stickyContentToAdd","stickyChildrenElements_1","stickyList_1","stickyItem","targetStickyToAppendBefore","stickyListSorted_1","distanceFromTop","stickyContent","stickyListItem","targetContainer","_onWindowResize","scrollbarWidth","_getScrollbarWidth","scrollbarHeight","_getScrollbarHeight","_getStickyContainerStyle","isTop","_notifyThrottled","throttle","initialScrollPosition","setStickiesDistanceFromTop","_mutationObserver","MutationObserver","mutation","mutationRecord","stickyList_2","childList","attributes","subtree","characterData","scrollContainerFocus","scrollContainerAriaLabel","scrollbarVisibility","scrollContainerProps","S","stickyBelowItems","forceLayoutUpdate","resetSticky","ScrollablePane","AboveAndBelowStyles","positioningStyle","ScrollbarVisibility","auto","ScrollablePaneContext","defaultClearButtonProps","SearchBoxBase","defaultValue","labelText","clearButtonProps","disableAnimation","showIcon","customOnClear","onClear","customOnBlur","customOnEscape","onEscape","customOnSearch","onSearch","customOnKeyDown","setHasFocus","prevChangeTimestamp","timeStamp","uncastValue","rootElementRef","inputElementRef","customOnClearClick","hasInput","onClearClick","blur","clearButton","SearchBox","inputIconAlt","inputIconAltHovered","inputBorderDisabled","inputBackgroundHovered","inputBackgroundDisabled","inputIconHovered","inputIcon","inputIconDisabled","SeparatorBase","Separator","alignStart","alignCenter","alignEnd","getSlotStyleFn","sty","getPercent","sliderMin","sliderMax","SliderBase","step","showValue","snapToStep","valueFormat","originFromZero","ranged","sliderLine","latestLowerValue","unclampedValue","lowerValue","defaultLowerValue","lv","latestValue","unclampedLowerValue","setLowerValue","onKeyDownTimer","isAdjustingLowerValue","showTransitions","isBetweenSteps","steps","clearOnKeyDownTimer","setOnKeyDownTimer","getAriaValueText","valueProps","ariaValueText","updateValue","newUnroundedValue","numDec","isFinite","roundedValue","getPosition","verticalProp","currentPosition","calculateCurrentSteps","currentSteps","sliderPositionRect","stepLength","onMouseMoveOrTouchMove","suppressEventCancelation","newCurrentValue","onMouseDownOrTouchStart","onMouseUpOrTouchEnd","disposeListeners","lowerValueThumbRef","thumbRef","sliderBoxRef","range","getPositionStyles","getTrackStyles","originValue","valuePercent","lowerValuePercent","originPercentOfLine","activeSectionWidth","topSectionWidth","bottomSectionWidth","titleLabel","valueLabelProps","valueLabel","lowerValueLabelProps","zeroTickProps","zeroTick","trackActiveProps","lineContainer","activeSection","trackTopInactiveProps","inactiveSection","trackBottomInactiveProps","sliderProps","sliderBoxProps","slideBox","diff","onFocusProp","thumbProps","lowerValueThumbProps","sliderBox","lowerValueLabel","lowerValueThumb","activeTrack","topInactiveTrack","bottomInactiveTrack","useSlider","enabled","Slider","titleLabelClassName","pressedActiveSectionColor","hoveredActiveSectionColor","hoveredPressedinactiveSectionColor","restActiveSectionColor","restInactiveSectionColor","disabledActiveSectionColor","disabledInactiveSectionColor","thumbBackgroundColor","thumbBorderColor","smallInputBorder","thumbDisabledBorderColor","disabledBorder","slideBoxActiveSectionStyles","slideBoxInactiveSectionStyles","slideHoverSectionStyles","slideBoxActiveThumbStyles","slideBoxActiveZeroTickStyles","inputPlaceholderBackgroundChecked","easeFunction1","KeyboardSpinDirection","SpinButtonTextColorDisabled","SpinButtonBackgroundColorDisabled","getArrowButtonStyles","isUpArrow","customSpecificArrowStyles","ArrowButtonTextColor","ArrowButtonTextColorHovered","ArrowButtonTextColorPressed","ArrowButtonBackgroundHovered","ArrowButtonBackgroundPressed","defaultArrowButtonStyles","labelPosition","incrementButtonIcon","decrementButtonIcon","noOp","clampValue","SpinButtonBase","valueFromProps","precisionFromProps","precision","incrementButtonAriaLabel","decrementButtonAriaLabel","customUpArrowButtonStyles","upArrowButtonStyles","customDownArrowButtonStyles","downArrowButtonStyles","ariaValueNow","onDecrement","onIncrement","onValidate","inputId","isFocused","setIsFocused","notSpinning","keyboardSpinDirection","setKeyboardSpinDirection","intermediateValue","setIntermediateValue","stepTimeoutHandle","latestIntermediateValue","previousValueFromProps","validate","enteredValue","spinningByMouse","stepFunction","wasSpinning","handleIncrement","numericValue","handleDecrement","handleIncrementMouseDown","handleDecrementMouseDown","useDebugWarnings","valueIsNumber","labelContent","spinButtonWrapper","spinDirection","arrowButtonsContainer","SpinButton","SpinButtonRootBorderColor","SpinButtonRootBackgroundColor","SpinButtonRootBorderColorHovered","SpinButtonRootBorderColorFocused","SpinButtonInputTextColor","SpinButtonInputTextColorSelected","SpinButtonInputBackgroundColorSelected","SpinButtonIconDisabledColor","float","DEFAULT_MIN_WIDTH","SpinnerBase","ariaLive","styleSize","spinAnimation","SpinnerSize","SpinnerType","_getThemedSpacing","spacing","_getValueUnitGap","numericalPart","numericalValue","numericalString","unit","parsePadding","paddingValues","padding1","padding2","nameMap","_processStackChildren","disableShrink","enableScopedSelectors","doNotRenderFalsyValues","childrenArray","childAsReactElement","defaultItemProps","StackItem","shrink","childClassName","StackStatics","Item","Stack","wrap","stackChildren","Slots","grow","horizontalAlign","verticalFill","childrenGap","rowGap","columnGap","splitGap","calculatedGap","parseGap","horizontalMargin","verticalMargin","childStyles","childSelector","disableShrinkStyles","alignMap","StackItemStyles","align","order","basis","Sticky","_stickyContentTop","_stickyContentBottom","_nonStickyContent","_placeHolder","isScrollSynced","_getContext","_onScrollEvent","footerStickyContainer","_getNonStickyDistanceFromTop","_getStickyDistanceFromTop","_getStickyDistanceFromTopForFooter","footerStickyVisibleContainer","currElem","stickyPosition","Both","Footer","_isOffsetHeightDifferent","stickyClassName","_getStickyPlaceholderHeight","_getNonStickyPlaceholderHeightAndWidth","_getContentStyles","isSticky","stickyBackgroundColor","_getBackground","curr","getPropertyValue","StickyPositionType","ButtonGridBase","columnCount","isSemanticRadio","setSize","doNotContainWithinFocusZone","htmlProps","rowsOfItems","rows","rowIndex","cellIndex","tableCell","shouldFocusCircularNavigate","focusedContainer","ButtonGrid","ButtonGridCell","defaultId","cellDisabledStyle","cellIsSelectedStyle","handleClick","handleMouseEnter","handleMouseMove","handleMouseLeave","handleFocus","getColorPickerGridCellButtonClassNames","cellHighContrastFocus","ColorPickerGridCell","inputColor","currentColor","idPrefix","isRadio","onWheel","isWhite","renderColorOption","colorOption","svgClassName","cx","cy","cellSemantics","onRenderColorCellContent","colorCell","buttonBorderHovered","buttonBorderChecked","buttonBorderCheckedHovered","buttonBorderIsWhite","calculatedBorderWidth","SwatchColorPickerBase","isNavigationIdle","cellFocused","navigationIdleTimeoutId","navigationIdleDelay","colorCells","cellShape","cellMargin","defaultSelectedId","focusOnHover","mouseLeaveParentSelector","onColorChanged","onCellHovered","onCellFocused","getColorGridCellStyles","cellHeight","cellWidth","cellBorderWidth","itemsWithIndex","mergedOnChange","newSelectedId","c","selectedId","setSelectedId","gridStyles","onSwatchColorPickerBlur","parentSelector","onGridCellHovered","onGridCellFocused","onCellClick","setNavigationTimeout","renderOption","onRenderColorCell","SwatchColorPicker","TeachingBubbleContentBase","imageContent","headerContent","bodyContent","footerContent","documentRef","illustrationImage","primaryButtonProps","secondaryButtonProps","headline","hasCondensedHeadline","hasCloseIcon","hasSmallHeadline","isWide","customFooterContent","hasHeadline","primaryButtonClassName","secondaryButtonClassName","HeaderWrapperAs","BodyContentWrapperAs","primaryButton","secondaryButton","headerIsCondensed","headerIsSmall","headerIsLarge","buttonLabel","opacityFadeIn","rootStyle","animationFillMode","headerStyle","hasLargeHeadline","hideDefaultFocusRing","themeLighter","TeachingBubbleContent","defaultCalloutProps","TeachingBubbleBase","setCalloutProps","calloutStyles","TeachingBubble","DEFAULT_MASK_FORMAT_CHARS","parseMask","mask","formatChars","maskCharData","escapedChars","maskChar","charAt","maskFormat","displayIndex","format","getMaskDisplay","maskDisplay","lastDisplayIndex","maskCharData_1","charData","nextChar","getRightFormatIndex","clearRange","selectionCount","insertString","newString","stringIndex","nextIndex","isStringInserted","MaskedTextField","onPaste","moveCursorOnMouseUp","changeSelectionData","maskCursorPosition","setMaskCursorPosition","setDisplayValue","valueIndex","charDataIndex","testVal","handleBlur","handleMouseDown","handleMouseUp","handleInputChange","changeType","cursorPos","charsSelected","charCount","startPos","pastedString","isDel","clearNext","clearPrev","getLeftFormatIndex","enteredString","selectCount","del","handlePaste","setSelectionStart","setSelectionEnd","__browserNeedsRevealButton","TextFieldBase","_textElement","validateOnFocusIn","_validate","validateOnFocusOut","_onRevealButtonClick","isRevealingPassword","previousValue","_getValue","_lastChangeValue","_isControlled","uncontrolledValue","_fallbackId","_prefixId","_suffixId","_warnControlledUsage","_delayedValidate","deferredValidationTime","_lastValidation","_adjustInputHeight","snapshot","_shouldValidateAllChanges","inputClassName","resizable","suffix","autoAdjustHeight","canRevealPassword","revealPasswordAriaLabel","onRenderPrefix","_onRenderPrefix","onRenderSuffix","_onRenderSuffix","_errorMessage","isInvalid","hasRevealButton","isEdge","userAgent","_browserNeedsRevealButton","fieldGroup","_renderTextArea","_renderInput","revealButton","revealSpan","revealIcon","_isDescriptionAvailable","_renderErrorMessage","_hasWarnedNullValue","textAreaProps","labelIds","updatedInputProps","_latestValidateValue","onGetErrorMessage","currentValidation_1","_notifyAfterValidate","onNotifyValidationResult","unresizable","active","getLabelStyles","fieldPrefixSuffix","resize","Text","block","variant","nowrap","variantObject","mozOsxFontSmoothing","MozOsxFontSmoothing","webkitFontSmoothing","getDateFromTimeSelection","useHour12","dateStartAnchor","selectedTime","hoursOffset","exec","selectedHours","selectedMinutes","selectedSeconds","selectedAp","hours","minutes","seconds","getHours","getMinutes","setMinutes","setSeconds","formatTimeString","showSeconds","localeTimeString","toLocaleTimeString","hour","minute","second","hour12","REGEX_SHOW_SECONDS_HOUR_12","REGEX_HIDE_SECONDS_HOUR_12","REGEX_SHOW_SECONDS_HOUR_24","REGEX_HIDE_SECONDS_HOUR_24","TimePicker","increments","timeRange","hourUnits","timeFormat","timeOutOfBoundsErrorMessage","getDefaultStrings","dateAnchor","onFormatDate","onValidateUserInput","onValidationResult","comboBoxText","setComboBoxText","fallbackDateAnchor","setSelectedTime","optionsCount","getDropdownOptionsCount","internalDateAnchor","getDateAnchor","dateEndAnchor","timePickerOptions","optionsList","setTime","formattedTimeString","formattedTimeString_1","comboboxOption","_index","changedTime","errorMessageToDisplay","userInput","optionDate","validateUserInput","timeSelection","updatedTime","C","charCode","zero","colon","m","startEnd","clampedDateAnchor","clampedTimeRange","clampTimeRange","timeRangeHours","setHours","setMilliseconds","times","ceilMinuteToIncrement","hoursInRange","getHoursInRange","ToggleBase","controlledChecked","inlineLabel","offAriaLabel","offText","onAriaLabel","onToggleClick","onText","setChecked","onOffMissing","badAriaLabel","stateTextId","stateText","toggleNativeProps","labelledById","toggleButton","pill","toggleButtonRef","Toggle","pillUncheckedBackground","pillCheckedBackground","pillCheckedHoveredBackground","thumbUncheckedHoveredBackground","pillCheckedDisabledBackground","thumbBackground","thumbCheckedBackground","thumbDisabledBackground","thumbCheckedDisabledBackground","pillBorderColor","pillBorderHoveredColor","pillBorderDisabledColor","DEFAULT_PILL_HEIGHT","DEFAULT_THUMB_SIZE","TooltipDelay","TooltipBase","Tooltip","tooltipGapSpace","devicePixelRatio","TooltipHostBase","_tooltipHost","_defaultTooltipId","_toggleTooltip","_hideTooltip","_getTargetElement","Self","_onTooltipFocus","_ignoreNextFocusEvent","_onTooltipMouseEnter","_onTooltipContentFocus","_currentVisibleTooltip","_clearDismissTimer","_clearOpenTimer","_onTooltipBlur","_dismissTimerId","delay","overflowElement","hasHorizontalOverflow","hasVerticalOverflow","delayTime","_getDelayTime","_openTimerId","_onTooltipMouseLeave","closeDelay","_onTooltipKeyDown","isTooltipVisible","onTooltipToggle","long","isAriaPlaceholderRendered","tooltipId","tooltipRenderProps","ariaPlaceholder","TooltipOverflowMode","SuggestionActionType","AnnouncedBase","message","Announced","suggestionsItem","suggestionsItemIsSuggested","actionButton","buttonSelected","suggestionsTitle","suggestionsContainer","suggestionsNone","suggestionsSpinner","suggestionsAvailable","legacyStyles","SuggestionsItem","suggestionModel","RenderSuggestion","onRemoveItem","isSelectedOverride","removeButtonAriaLabel","removeButtonIconProps","suggested","showRemoveButton","StyledSuggestionsItem","Suggestions","suggestionsProps","_forceResolveButton","_searchForMoreButton","_scrollContainer","tryHandleKeyDown","currentSuggestionIndex","isEventHandled","newSelectedActionType","currentSelectedAction","selectedActionType","suggestionLength","suggestions","forceResolve","_refocusOnSuggestions","searchMore","_getAlertText","isLoading","isSearching","suggestionsAvailableAlertText","noResultsFoundText","isExtendedLoading","_getMoreResults","onGetMoreResults","_forceResolve","createGenericItem","_shouldShowForceResolve","showForceResolve","_onClickTypedSuggestionsItem","onSuggestionClick","refocusSuggestions","_onRemoveTypedSuggestionsItem","onSuggestionRemove","scrollSelected","activeSelectedElement","forceResolveText","mostRecentlyUsedHeaderText","searchForMoreIcon","searchForMoreText","moreSuggestionsAvailable","onRenderNoResultFound","searchingText","isMostRecentlyUsedVisible","resultsMaximumNumber","resultsFooterFull","resultsFooter","isResultsFooterVisible","suggestionsHeaderText","suggestionsClassName","suggestionsListId","suggestionsContainerAriaLabel","forceResolveButtonSelected","searchForMoreButtonSelected","searchForMoreButton","forceResolveButton","noSuggestions","spinnerStyles","spinner","spinnerClassNameOrStyles","footerTitle","hasNoSuggestions","forceResolveId","searchForMoreId","_renderSuggestions","hasSuggestedAction","hasSuggestedActionSelected","executeSelectedAction","focusAboveSuggestions","focusBelowSuggestions","focusSearchForMoreButton","onRenderSuggestion","removeSuggestionAriaLabel","suggestionsItemClassName","showRemoveButtons","StyledTypedSuggestionsItem","suggestion","actionButtonSelectedStyles","SuggestionsController","_isSuggestionModel","_ensureSuggestionModel","updateSuggestions","newSuggestions","maxCount","convertSuggestionsToSuggestionItems","currentSuggestion","nextSuggestion","setSelectedSuggestion","previousSuggestion","getSuggestions","getCurrentItem","getSuggestionAtIndex","hasSelectedSuggestion","removeSuggestion","createGenericSuggestion","itemToConvert","itemToAdd","deselectAllSuggestions","picker","pickerText","inputFocused","pickerInput","pickerItems","BasePicker","basePickerProps","suggestionsType","suggestionElement","SuggestionOfProperType","_styledSuggestions","dismissSuggestions","selectItemFunction","addItemOnDismiss","suggestionStore","canAddItems","addItemByIndex","currentPromise","suggestionsVisible","resetFocus","onRemoveSuggestion","onInputFocus","_userTriggeredSuggestions","onInputBlur","onWrapperClick","completeSuggestion","_completeGenericSuggestion","onBackspace","onSuggestionSelect","onItemChange","changedItem","_updateSelectedItems","suggestionsArray","suggestionsPromiseLike","completeSelection","addItem","processedItem","onItemSelected","processedItemObject","processedItemPromiseLike","resolvedProcessedItem","selectionRemoved","removeItem","removeItems","itemsToRemove","_shouldFocusZoneEnterInnerZone","_onResolveSuggestions","onResolveSuggestions","updateSuggestionsList","onValidateInput","onEmptyInputFocus","defaultSelectedItems","_ariaMap","selectedSuggestionAlert","suggestionList","combobox","onSelectionChange","resolveDelay","oldState","currentSelectedIndex","focusInput","forceComplete","selectionAriaLabel","selectionRole","itemsWrapper","comboLabel","renderCustomAlert","renderItems","getActiveDescendant","renderSuggestions","itemLimit","StyledTypedSuggestions","pickerCalloutProps","onRenderSuggestionsItem","suggestionsLoading","suggestionsExtendedLoading","pickerSuggestionsProps","newEl","itemValue","_getTextFromItem","maxSuggestionsCount","emptyResolveSuggestions","onEmptyResolveSuggestions","_updateAndResolveValue","_startLoadTimer","_getShowSuggestions","resolveNewValue","cursorLocation","getSuggestionsAlert","suggestionAlertClassName","enableSelectedSuggestionAlert","selectedSuggestion","selectedSuggestionAlertText","alertClassName","suggestionRemovedText","removedItemText","itemName","_onSelectedItemsUpdated","getTextFromItem","BasePickerListBelow","disabledOverlayColor","ValidationState","personaWrapper","PeoplePickerItemSuggestion","personaProps","personaStyles","textSelectorsStyles","isSuggested","BasePeoplePicker","MemberListPeoplePicker","NormalPeoplePickerBase","PeoplePickerItem","CompactPeoplePickerBase","ListPeoplePickerBase","currentValidationState","personaToConvert","NormalPeoplePicker","itemContent","removeButton","itemId","personaCoinStyles","personaCoin","personaPrimaryTextStyles","redDark","personaSecondaryTextStyles","personaCoinInitialsStyles","SuggestionsItemGlobalClassNames","menuDivider","TagItem","enableTagFocusInDisabledPicker","disabledAttrs","tabindex","suggestionTextOverflow","TagItemSuggestion","TagPickerBase","TagPicker","ThemeContext","useTheme","useContext","legacyTheme","useCustomizationSettings","MAX_COLOR_SATURATION","MAX_COLOR_HUE","MAX_COLOR_VALUE","MAX_COLOR_RGB","MAX_COLOR_ALPHA","MIN_HEX_LENGTH","MAX_HEX_LENGTH","MIN_RGBA_LENGTH","MAX_RGBA_LENGTH","HEX_REGEX","RGBA_REGEX","rgba","NaN","rgb2hsv","_rgba","hasAlpha","expectedPartCount","parts","_hex6","_hex3","hsv","_hsla","eComputedStyle","computedColor","_browserCompute","cssColor","rgb","hh","_rgbToPaddedHex","REACT_LIFECYCLE_EXCLUSIONS","composedComponentInstance","source","_hoisted","destination","exclusions","methodName","hoistMethods","ResponsiveMode","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","resultClass","WithResponsiveMode","_onResize","getResponsiveMode","unknown","getWidthOfCurrentWindow","currentWindow","params","_dragEnterCounts","_activeTargets","_lastId","_initialized","dragDropOptions","_onDocumentMouseUp","isDroppable","activeTarget","handlers","updateDropState_1","dragDropTarget","_isDroppable","eventMap_1","event_1","isHandled","_isDragging","dataTransfer","setData","handlers_1","_dragData","dropTarget","raise","_isChild","_onMouseLeave","eventTarget","dragTarget","dragContext","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","newResponsiveMode","KeytipEvents","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","keytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","_instance","init","persisted","uniqueKeytip","_getUniqueKtp","oldKeyTip","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowButtonSequences","RectangleEdge","Position","getAllSelectedOptions","selectedIndices_1","SelectableOptionMenuItemType","SELECTION_INDEX_ATTRIBUTE_NAME","SELECTION_TOGGLE_ATTRIBUTE_NAME","SELECTION_INVOKE_ATTRIBUTE_NAME","SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME","_handleNextFocus","_onMouseDownCapture","_hasAttribute","isToggleModifierPressed","_isCtrlPressed","_isMetaPressed","_getSelectionMode","_shouldHandleFocus","isToggle","itemRoot","_findItemRoot","_getItemIndex","_getItemSpan","setModal","_setIsTouch","_onItemSurfaceClick","_updateModifiers","_isSelectionDisabled","_shouldAutoSelect","_isShiftPressed","_onInvokeMouseDown","disableAutoSelectOnInputElements","_onTouchStartCapture","enableTouchInvocationTarget","isSelectionDisabled","_onToggleAllClick","_onInvokeClick","_onContextMenu","getItems","_onDoubleClick","_isInputElement","isSelectAllKey","isClearSelectionKey","_findScrollParentAndTryClearOnEmptyClick","onKeyDownCapture","toggleIndexSelected","_isTabPressed","selectToRange","selectToIndex","_clearAndSelectIndex","scrollParent","_tryClearOnEmptyClick","Node","_isNonHandledClick","selectionClearedOnSurfaceClick","setRangeSelected","indexValue","spanValue","attributeName","_shouldHandleFocusTimeoutId","isTouch","_isTouchTimeoutId","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_isDisposed","_parent","_onErrorHandler","_noop","clearImmediate","clearInterval","_logError","setImmediate","immediateId","setInterval","intervalId","wait","lastResult","lastArgs","waitMS","trailing","lastExecuteTime","userCall","now","waitLength","noOpFunction","cancel","flush","pending","lastCallTime","markExecuted","time","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","_makeSafe","obj","classMethod","prototypeMethod","retVal","nullRender","BaseComponent","methodNames","len","_makeAllSafe","_updateComponentRef","_setComponentRef","__disposables","disposable","__className","results","__async","__events","_resolveRef","refName","__resolves","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","requiredProps","conditionalPropName","condition","_skipComponentRefResolution","isRendered","_uniqueId","_eventRecords","eventArgs","bubbleEvent","_isElement","initEvent","createEventObject","evObj","fireEvent","__events__","eventRecords","eventRecordList","listIndex","record","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","cancelBubble","onAll","parent_1","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","arg","fromIndex","toMatrix","addElementAtIndex","copy","arraysEqual","array1","array2","componentAsMemoizer","outer","Outer","Inner","innerMemoizer","innerProps","outerProps","local","newRefs","resolver","createResolver","args_1","concatStyles","ComponentWithInjectedProps","_styleCache","_onSettingChanged","mergedStyles","merged","appendFunction","functions","f","methods","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","childMatchParentMatch","suppressChildTraversal","isElementVisibleAndNotHidden","visibilityAttribute","checkTabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","doesElementContainFocus","currentActiveElement","shouldWrapFocus","attribute","elementContainsAttribute","animationId","getFocusableByIndexPath","path_1","nextChild","getElementIndexPath","fromElement","toElement","unshift","hoistStatics","dest","isIE11","_onMount","_onUpdate","_onUnmount","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitials","cleanupDisplayName","splits","toUpperCase","getInitialsLatin","getDistanceBetweenPoints","point1","point2","left1","top1","left2","top2","calculatePrecision","precisionRound","base","exp","isIOS","tagsToIgnore","targetDocument","affectedNodes","sibling","node","originalValue","unmodalize","shallowCompare","filteredAssign","isAllowed","sourceObject","isMacResult","isMac","toObjectMap","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","buttonProperties","inputProperties","textAreaProperties","selectProperties","optionProperties","tableProperties","trProperties","thProperties","tdProperties","colGroupProperties","colProperties","formProperties","iframeProperties","imgProperties","divProperties","getNativeProps","keys_2","memoizer","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","findScrollableParent","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","setProperty","startingElement","computedStyles","onItemsChanged","_getKey","defaultGetKey","_changeEventSuppressionCount","_exemptedCount","_anchoredIndex","_unselectableCount","_onItemsChanged","_canSelectItem","_keyToIndexMap","_isModal","suppressChange","_hasChanged","_change","shouldClear","newKeyToIndexMap","newUnselectableIndices","hasSelectionChanged","haveItemsChanged","_setAllSelected","newExemptedIndicies","newExemptedCount","indexProperty","_exemptedIndices","exemptKey","_items","_isAllSelected","_unselectableIndices","_selectedItems","_updateCount","_selectedIndices","getItemIndex","selectableCount","isKeySelected","setKeySelected","shouldAnchor","isExempt","newAnchorIndex","selectToKey","clearSelection","anchorIndex","toggleKeySelected","preserveModalState","SelectionMode","SelectionDirection","SELECTION_CHANGE","SELECTION_ITEMS_CHANGE","FORMAT_ARGS_REGEX","FORMAT_REGEX","replacement","DirectionalKeyCodes","isDirectionalKeyCode","mountCounters","WeakMap","callbackMap","setMountCounters","currValue","set","setCallbackMap","callbacks","FocusRectsContext","FabricConfig","disableFocusRects","FocusRects","componentName","exclusiveMap","___CSS_LOADER_EXPORT___","module","locals"],"sourceRoot":""}