{"version":3,"file":"js/44477-77d0e6c789439d5e8b67.js","mappings":"uGAAAA,EAAOC,QAAU,EAAjBD,O,mCCEA,IAAIE,EAAQC,EAAQ,OAChBC,EAASD,EAAQ,OACjBE,EAAUF,EAAQ,OAClBG,EAAWH,EAAQ,OACnBI,EAAgBJ,EAAQ,OACxBK,EAAeL,EAAQ,OACvBM,EAAkBN,EAAQ,MAC1BO,EAAcP,EAAQ,OAE1BH,EAAOC,QAAU,SAAoBU,GACnC,OAAO,IAAIC,SAAQ,SAA4BC,EAASC,GACtD,IAAIC,EAAcJ,EAAOK,KACrBC,EAAiBN,EAAOO,QACxBC,EAAeR,EAAOQ,aAEtBjB,EAAMkB,WAAWL,WACZE,EAAe,gBAGxB,IAAII,EAAU,IAAIC,eAGlB,GAAIX,EAAOY,KAAM,CACf,IAAIC,EAAWb,EAAOY,KAAKC,UAAY,GACnCC,EAAWd,EAAOY,KAAKE,SAAWC,SAASC,mBAAmBhB,EAAOY,KAAKE,WAAa,GAC3FR,EAAeW,cAAgB,SAAWC,KAAKL,EAAW,IAAMC,GAGlE,IAAIK,EAAWvB,EAAcI,EAAOoB,QAASpB,EAAOqB,KAMpD,SAASC,IACP,GAAKZ,EAAL,CAIA,IAAIa,EAAkB,0BAA2Bb,EAAUb,EAAaa,EAAQc,yBAA2B,KAGvGC,EAAW,CACbpB,KAHkBG,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvCE,EAAQe,SAA/Bf,EAAQgB,aAGRC,OAAQjB,EAAQiB,OAChBC,WAAYlB,EAAQkB,WACpBrB,QAASgB,EACTvB,OAAQA,EACRU,QAASA,GAGXjB,EAAOS,EAASC,EAAQsB,GAGxBf,EAAU,MAmEZ,GA5FAA,EAAQmB,KAAK7B,EAAO8B,OAAOC,cAAepC,EAASwB,EAAUnB,EAAOgC,OAAQhC,EAAOiC,mBAAmB,GAGtGvB,EAAQwB,QAAUlC,EAAOkC,QAyBrB,cAAexB,EAEjBA,EAAQY,UAAYA,EAGpBZ,EAAQyB,mBAAqB,WACtBzB,GAAkC,IAAvBA,EAAQ0B,aAQD,IAAnB1B,EAAQiB,QAAkBjB,EAAQ2B,aAAwD,IAAzC3B,EAAQ2B,YAAYC,QAAQ,WAKjFC,WAAWjB,IAKfZ,EAAQ8B,QAAU,WACX9B,IAILP,EAAOJ,EAAY,kBAAmBC,EAAQ,eAAgBU,IAG9DA,EAAU,OAIZA,EAAQ+B,QAAU,WAGhBtC,EAAOJ,EAAY,gBAAiBC,EAAQ,KAAMU,IAGlDA,EAAU,MAIZA,EAAQgC,UAAY,WAClB,IAAIC,EAAsB,cAAgB3C,EAAOkC,QAAU,cACvDlC,EAAO2C,sBACTA,EAAsB3C,EAAO2C,qBAE/BxC,EAAOJ,EACL4C,EACA3C,EACAA,EAAO4C,cAAgB5C,EAAO4C,aAAaC,oBAAsB,YAAc,eAC/EnC,IAGFA,EAAU,MAMRnB,EAAMuD,uBAAwB,CAEhC,IAAIC,GAAa/C,EAAOgD,iBAAmBlD,EAAgBqB,KAAcnB,EAAOiD,eAC9EvD,EAAQwD,KAAKlD,EAAOiD,qBACpBE,EAEEJ,IACFzC,EAAeN,EAAOoD,gBAAkBL,GAKxC,qBAAsBrC,GACxBnB,EAAM8D,QAAQ/C,GAAgB,SAA0BgD,EAAKC,GAChC,qBAAhBnD,GAAqD,iBAAtBmD,EAAIC,qBAErClD,EAAeiD,GAGtB7C,EAAQ+C,iBAAiBF,EAAKD,MAM/B/D,EAAMmE,YAAY1D,EAAOgD,mBAC5BtC,EAAQsC,kBAAoBhD,EAAOgD,iBAIjCxC,GAAiC,SAAjBA,IAClBE,EAAQF,aAAeR,EAAOQ,cAIS,oBAA9BR,EAAO2D,oBAChBjD,EAAQkD,iBAAiB,WAAY5D,EAAO2D,oBAIP,oBAA5B3D,EAAO6D,kBAAmCnD,EAAQoD,QAC3DpD,EAAQoD,OAAOF,iBAAiB,WAAY5D,EAAO6D,kBAGjD7D,EAAO+D,aAET/D,EAAO+D,YAAYC,QAAQC,MAAK,SAAoBC,GAC7CxD,IAILA,EAAQyD,QACRhE,EAAO+D,GAEPxD,EAAU,SAITN,IACHA,EAAc,MAIhBM,EAAQ0D,KAAKhE,Q,kCCxLjB,IAAIb,EAAQC,EAAQ,OAChB6E,EAAO7E,EAAQ,OACf8E,EAAQ9E,EAAQ,OAChB+E,EAAc/E,EAAQ,OAS1B,SAASgF,EAAeC,GACtB,IAAIC,EAAU,IAAIJ,EAAMG,GACpBE,EAAWN,EAAKC,EAAMM,UAAUlE,QAASgE,GAQ7C,OALAnF,EAAMsF,OAAOF,EAAUL,EAAMM,UAAWF,GAGxCnF,EAAMsF,OAAOF,EAAUD,GAEhBC,EAIT,IAAIG,EAAQN,EAtBGhF,EAAQ,QAyBvBsF,EAAMR,MAAQA,EAGdQ,EAAMC,OAAS,SAAgBC,GAC7B,OAAOR,EAAeD,EAAYO,EAAMG,SAAUD,KAIpDF,EAAMI,OAAS1F,EAAQ,OACvBsF,EAAMK,YAAc3F,EAAQ,OAC5BsF,EAAMM,SAAW5F,EAAQ,OAGzBsF,EAAMO,IAAM,SAAaC,GACvB,OAAOrF,QAAQoF,IAAIC,IAErBR,EAAMS,OAAS/F,EAAQ,OAGvBsF,EAAMU,aAAehG,EAAQ,OAE7BH,EAAOC,QAAUwF,EAGjBzF,EAAOC,QAAPD,QAAyByF,G,+BC/CzB,SAASI,EAAOO,GACdC,KAAKD,QAAUA,EAGjBP,EAAON,UAAUe,SAAW,WAC1B,MAAO,UAAYD,KAAKD,QAAU,KAAOC,KAAKD,QAAU,KAG1DP,EAAON,UAAUgB,YAAa,EAE9BvG,EAAOC,QAAU4F,G,mCChBjB,IAAIA,EAAS1F,EAAQ,OAQrB,SAAS2F,EAAYU,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIC,UAAU,gCAGtB,IAAIC,EACJL,KAAK1B,QAAU,IAAI/D,SAAQ,SAAyBC,GAClD6F,EAAiB7F,KAGnB,IAAI8F,EAAQN,KACZG,GAAS,SAAgBJ,GACnBO,EAAMC,SAKVD,EAAMC,OAAS,IAAIf,EAAOO,GAC1BM,EAAeC,EAAMC,YAOzBd,EAAYP,UAAUsB,iBAAmB,WACvC,GAAIR,KAAKO,OACP,MAAMP,KAAKO,QAQfd,EAAYgB,OAAS,WACnB,IAAIjC,EAIJ,MAAO,CACL8B,MAJU,IAAIb,GAAY,SAAkBiB,GAC5ClC,EAASkC,KAITlC,OAAQA,IAIZ7E,EAAOC,QAAU6F,G,+BCtDjB9F,EAAOC,QAAU,SAAkB+G,GACjC,SAAUA,IAASA,EAAMT,c,mCCD3B,IAAIrG,EAAQC,EAAQ,OAChBG,EAAWH,EAAQ,OACnB8G,EAAqB9G,EAAQ,OAC7B+G,EAAkB/G,EAAQ,OAC1B+E,EAAc/E,EAAQ,OACtBgH,EAAYhH,EAAQ,OAEpBiH,EAAaD,EAAUC,WAM3B,SAASnC,EAAMU,GACbU,KAAKT,SAAWD,EAChBU,KAAKgB,aAAe,CAClBhG,QAAS,IAAI4F,EACb7E,SAAU,IAAI6E,GASlBhC,EAAMM,UAAUlE,QAAU,SAAiBV,GAGnB,kBAAXA,GACTA,EAAS2G,UAAU,IAAM,IAClBtF,IAAMsF,UAAU,GAEvB3G,EAASA,GAAU,IAGrBA,EAASuE,EAAYmB,KAAKT,SAAUjF,IAGzB8B,OACT9B,EAAO8B,OAAS9B,EAAO8B,OAAO0B,cACrBkC,KAAKT,SAASnD,OACvB9B,EAAO8B,OAAS4D,KAAKT,SAASnD,OAAO0B,cAErCxD,EAAO8B,OAAS,MAGlB,IAAIc,EAAe5C,EAAO4C,kBAELO,IAAjBP,GACF4D,EAAUI,cAAchE,EAAc,CACpCiE,kBAAmBJ,EAAW7D,aAAa6D,EAAWK,QAAS,SAC/DC,kBAAmBN,EAAW7D,aAAa6D,EAAWK,QAAS,SAC/DjE,oBAAqB4D,EAAW7D,aAAa6D,EAAWK,QAAS,WAChE,GAIL,IAAIE,EAA0B,GAC1BC,GAAiC,EACrCvB,KAAKgB,aAAahG,QAAQ2C,SAAQ,SAAoC6D,GACjC,oBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQnH,KAIrEiH,EAAiCA,GAAkCC,EAAYE,YAE/EJ,EAAwBK,QAAQH,EAAYI,UAAWJ,EAAYK,cAGrE,IAKIvD,EALAwD,EAA2B,GAO/B,GANA9B,KAAKgB,aAAajF,SAAS4B,SAAQ,SAAkC6D,GACnEM,EAAyBC,KAAKP,EAAYI,UAAWJ,EAAYK,cAK9DN,EAAgC,CACnC,IAAIS,EAAQ,CAACnB,OAAiBpD,GAM9B,IAJAwE,MAAM/C,UAAUyC,QAAQO,MAAMF,EAAOV,GACrCU,EAAQA,EAAMG,OAAOL,GAErBxD,EAAU/D,QAAQC,QAAQF,GACnB0H,EAAMI,QACX9D,EAAUA,EAAQC,KAAKyD,EAAMK,QAASL,EAAMK,SAG9C,OAAO/D,EAKT,IADA,IAAIgE,EAAYhI,EACTgH,EAAwBc,QAAQ,CACrC,IAAIG,EAAcjB,EAAwBe,QACtCG,EAAalB,EAAwBe,QACzC,IACEC,EAAYC,EAAYD,GACxB,MAAOG,GACPD,EAAWC,GACX,OAIJ,IACEnE,EAAUuC,EAAgByB,GAC1B,MAAOG,GACP,OAAOlI,QAAQE,OAAOgI,GAGxB,KAAOX,EAAyBM,QAC9B9D,EAAUA,EAAQC,KAAKuD,EAAyBO,QAASP,EAAyBO,SAGpF,OAAO/D,GAGTM,EAAMM,UAAUwD,OAAS,SAAgBpI,GAEvC,OADAA,EAASuE,EAAYmB,KAAKT,SAAUjF,GAC7BL,EAASK,EAAOqB,IAAKrB,EAAOgC,OAAQhC,EAAOiC,kBAAkBoG,QAAQ,MAAO,KAIrF9I,EAAM8D,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BvB,GAE/EwC,EAAMM,UAAU9C,GAAU,SAAST,EAAKrB,GACtC,OAAO0F,KAAKhF,QAAQ6D,EAAYvE,GAAU,GAAI,CAC5C8B,OAAQA,EACRT,IAAKA,EACLhB,MAAOL,GAAU,IAAIK,YAK3Bd,EAAM8D,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GAErEwC,EAAMM,UAAU9C,GAAU,SAAST,EAAKhB,EAAML,GAC5C,OAAO0F,KAAKhF,QAAQ6D,EAAYvE,GAAU,GAAI,CAC5C8B,OAAQA,EACRT,IAAKA,EACLhB,KAAMA,SAKZhB,EAAOC,QAAUgF,G,mCCjJjB,IAAI/E,EAAQC,EAAQ,OAEpB,SAAS8G,IACPZ,KAAK4C,SAAW,GAWlBhC,EAAmB1B,UAAU2D,IAAM,SAAajB,EAAWC,EAAUiB,GAOnE,OANA9C,KAAK4C,SAASb,KAAK,CACjBH,UAAWA,EACXC,SAAUA,EACVH,cAAaoB,GAAUA,EAAQpB,YAC/BD,QAASqB,EAAUA,EAAQrB,QAAU,OAEhCzB,KAAK4C,SAASR,OAAS,GAQhCxB,EAAmB1B,UAAU6D,MAAQ,SAAeC,GAC9ChD,KAAK4C,SAASI,KAChBhD,KAAK4C,SAASI,GAAM,OAYxBpC,EAAmB1B,UAAUvB,QAAU,SAAiBsF,GACtDpJ,EAAM8D,QAAQqC,KAAK4C,UAAU,SAAwBM,GACzC,OAANA,GACFD,EAAGC,OAKTvJ,EAAOC,QAAUgH,G,mCCnDjB,IAAIuC,EAAgBrJ,EAAQ,MACxBsJ,EAActJ,EAAQ,OAW1BH,EAAOC,QAAU,SAAuB8B,EAAS2H,GAC/C,OAAI3H,IAAYyH,EAAcE,GACrBD,EAAY1H,EAAS2H,GAEvBA,I,mCChBT,IAAIC,EAAexJ,EAAQ,OAY3BH,EAAOC,QAAU,SAAqBmG,EAASzF,EAAQiJ,EAAMvI,EAASe,GACpE,IAAI0G,EAAQ,IAAIe,MAAMzD,GACtB,OAAOuD,EAAab,EAAOnI,EAAQiJ,EAAMvI,EAASe,K,mCCdpD,IAAIlC,EAAQC,EAAQ,OAChB2J,EAAgB3J,EAAQ,OACxB4F,EAAW5F,EAAQ,OACnByF,EAAWzF,EAAQ,OAKvB,SAAS4J,EAA6BpJ,GAChCA,EAAO+D,aACT/D,EAAO+D,YAAYmC,mBAUvB7G,EAAOC,QAAU,SAAyBU,GA8BxC,OA7BAoJ,EAA6BpJ,GAG7BA,EAAOO,QAAUP,EAAOO,SAAW,GAGnCP,EAAOK,KAAO8I,EAAcE,KAC1BrJ,EACAA,EAAOK,KACPL,EAAOO,QACPP,EAAOsJ,kBAITtJ,EAAOO,QAAUhB,EAAMgK,MACrBvJ,EAAOO,QAAQiJ,QAAU,GACzBxJ,EAAOO,QAAQP,EAAO8B,SAAW,GACjC9B,EAAOO,SAGThB,EAAM8D,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BvB,UAClB9B,EAAOO,QAAQuB,OAIZ9B,EAAOyJ,SAAWxE,EAASwE,SAE1BzJ,GAAQiE,MAAK,SAA6BxC,GAWvD,OAVA2H,EAA6BpJ,GAG7ByB,EAASpB,KAAO8I,EAAcE,KAC5BrJ,EACAyB,EAASpB,KACToB,EAASlB,QACTP,EAAO0J,mBAGFjI,KACN,SAA4BwE,GAe7B,OAdKb,EAASa,KACZmD,EAA6BpJ,GAGzBiG,GAAUA,EAAOxE,WACnBwE,EAAOxE,SAASpB,KAAO8I,EAAcE,KACnCrJ,EACAiG,EAAOxE,SAASpB,KAChB4F,EAAOxE,SAASlB,QAChBP,EAAO0J,qBAKNzJ,QAAQE,OAAO8F,Q,+BCnE1B5G,EAAOC,QAAU,SAAsB6I,EAAOnI,EAAQiJ,EAAMvI,EAASe,GA4BnE,OA3BA0G,EAAMnI,OAASA,EACXiJ,IACFd,EAAMc,KAAOA,GAGfd,EAAMzH,QAAUA,EAChByH,EAAM1G,SAAWA,EACjB0G,EAAM3C,cAAe,EAErB2C,EAAMwB,OAAS,WACb,MAAO,CAELlE,QAASC,KAAKD,QACdmE,KAAMlE,KAAKkE,KAEXC,YAAanE,KAAKmE,YAClBC,OAAQpE,KAAKoE,OAEbC,SAAUrE,KAAKqE,SACfC,WAAYtE,KAAKsE,WACjBC,aAAcvE,KAAKuE,aACnBC,MAAOxE,KAAKwE,MAEZlK,OAAQ0F,KAAK1F,OACbiJ,KAAMvD,KAAKuD,OAGRd,I,mCCtCT,IAAI5I,EAAQC,EAAQ,OAUpBH,EAAOC,QAAU,SAAqB6K,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAIpK,EAAS,GAETqK,EAAuB,CAAC,MAAO,SAAU,QACzCC,EAA0B,CAAC,UAAW,OAAQ,QAAS,UACvDC,EAAuB,CACzB,UAAW,mBAAoB,oBAAqB,mBACpD,UAAW,iBAAkB,kBAAmB,UAAW,eAAgB,iBAC3E,iBAAkB,mBAAoB,qBAAsB,aAC5D,mBAAoB,gBAAiB,eAAgB,YAAa,YAClE,aAAc,cAAe,aAAc,oBAEzCC,EAAkB,CAAC,kBAEvB,SAASC,EAAeC,EAAQvE,GAC9B,OAAI5G,EAAMoL,cAAcD,IAAWnL,EAAMoL,cAAcxE,GAC9C5G,EAAMgK,MAAMmB,EAAQvE,GAClB5G,EAAMoL,cAAcxE,GACtB5G,EAAMgK,MAAM,GAAIpD,GACd5G,EAAMqL,QAAQzE,GAChBA,EAAO0E,QAET1E,EAGT,SAAS2E,EAAoBC,GACtBxL,EAAMmE,YAAY0G,EAAQW,IAEnBxL,EAAMmE,YAAYyG,EAAQY,MACpC/K,EAAO+K,GAAQN,OAAetH,EAAWgH,EAAQY,KAFjD/K,EAAO+K,GAAQN,EAAeN,EAAQY,GAAOX,EAAQW,IAMzDxL,EAAM8D,QAAQgH,GAAsB,SAA0BU,GACvDxL,EAAMmE,YAAY0G,EAAQW,MAC7B/K,EAAO+K,GAAQN,OAAetH,EAAWiH,EAAQW,QAIrDxL,EAAM8D,QAAQiH,EAAyBQ,GAEvCvL,EAAM8D,QAAQkH,GAAsB,SAA0BQ,GACvDxL,EAAMmE,YAAY0G,EAAQW,IAEnBxL,EAAMmE,YAAYyG,EAAQY,MACpC/K,EAAO+K,GAAQN,OAAetH,EAAWgH,EAAQY,KAFjD/K,EAAO+K,GAAQN,OAAetH,EAAWiH,EAAQW,OAMrDxL,EAAM8D,QAAQmH,GAAiB,SAAeO,GACxCA,KAAQX,EACVpK,EAAO+K,GAAQN,EAAeN,EAAQY,GAAOX,EAAQW,IAC5CA,KAAQZ,IACjBnK,EAAO+K,GAAQN,OAAetH,EAAWgH,EAAQY,QAIrD,IAAIC,EAAYX,EACbxC,OAAOyC,GACPzC,OAAO0C,GACP1C,OAAO2C,GAENS,EAAYC,OACbC,KAAKhB,GACLtC,OAAOqD,OAAOC,KAAKf,IACnBgB,QAAO,SAAyB7H,GAC/B,OAAmC,IAA5ByH,EAAU1I,QAAQiB,MAK7B,OAFAhE,EAAM8D,QAAQ4H,EAAWH,GAElB9K,I,mCCnFT,IAAID,EAAcP,EAAQ,OAS1BH,EAAOC,QAAU,SAAgBY,EAASC,EAAQsB,GAChD,IAAI4J,EAAiB5J,EAASzB,OAAOqL,eAChC5J,EAASE,QAAW0J,IAAkBA,EAAe5J,EAASE,QAGjExB,EAAOJ,EACL,mCAAqC0B,EAASE,OAC9CF,EAASzB,OACT,KACAyB,EAASf,QACTe,IAPFvB,EAAQuB,K,mCCZZ,IAAIlC,EAAQC,EAAQ,OAChByF,EAAWzF,EAAQ,OAUvBH,EAAOC,QAAU,SAAuBe,EAAME,EAAS+K,GACrD,IAAI5G,EAAUgB,MAAQT,EAMtB,OAJA1F,EAAM8D,QAAQiI,GAAK,SAAmB3C,GACpCtI,EAAOsI,EAAGU,KAAK3E,EAASrE,EAAME,MAGzBF,I,mCClBT,IAAId,EAAQC,EAAQ,OAChB+L,EAAsB/L,EAAQ,OAC9BwJ,EAAexJ,EAAQ,OAEvBgM,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBlL,EAAS8F,IACjC9G,EAAMmE,YAAYnD,IAAYhB,EAAMmE,YAAYnD,EAAQ,mBAC3DA,EAAQ,gBAAkB8F,GA+B9B,IA1BMoD,EA0BFxE,EAAW,CAEbrC,aAAc,CACZiE,mBAAmB,EACnBE,mBAAmB,EACnBlE,qBAAqB,GAGvB4G,UAjC8B,qBAAnB9I,gBAGmB,qBAAZ+K,SAAuE,qBAA5CR,OAAOtG,UAAUe,SAAS0D,KAAKqC,YAD1EjC,EAAUjK,EAAQ,QAKbiK,GA4BPH,iBAAkB,CAAC,SAA0BjJ,EAAME,GAIjD,OAHAgL,EAAoBhL,EAAS,UAC7BgL,EAAoBhL,EAAS,gBAEzBhB,EAAMkB,WAAWJ,IACnBd,EAAMoM,cAActL,IACpBd,EAAMqM,SAASvL,IACfd,EAAMsM,SAASxL,IACfd,EAAMuM,OAAOzL,IACbd,EAAMwM,OAAO1L,GAENA,EAELd,EAAMyM,kBAAkB3L,GACnBA,EAAK4L,OAEV1M,EAAM2M,kBAAkB7L,IAC1BoL,EAAsBlL,EAAS,mDACxBF,EAAKsF,YAEVpG,EAAM4M,SAAS9L,IAAUE,GAAuC,qBAA5BA,EAAQ,iBAC9CkL,EAAsBlL,EAAS,oBA9CrC,SAAyB6L,EAAUC,EAAQC,GACzC,GAAI/M,EAAMgN,SAASH,GACjB,IAEE,OADCC,GAAUG,KAAKC,OAAOL,GAChB7M,EAAMmN,KAAKN,GAClB,MAAOO,GACP,GAAe,gBAAXA,EAAE/C,KACJ,MAAM+C,EAKZ,OAAQL,GAAWE,KAAKI,WAAWR,GAmCxBS,CAAgBxM,IAElBA,IAGTqJ,kBAAmB,CAAC,SAA2BrJ,GAC7C,IAAIuC,EAAe8C,KAAK9C,aACpBiE,EAAoBjE,GAAgBA,EAAaiE,kBACjDE,EAAoBnE,GAAgBA,EAAamE,kBACjD+F,GAAqBjG,GAA2C,SAAtBnB,KAAKlF,aAEnD,GAAIsM,GAAsB/F,GAAqBxH,EAAMgN,SAASlM,IAASA,EAAKyH,OAC1E,IACE,OAAO0E,KAAKC,MAAMpM,GAClB,MAAOsM,GACP,GAAIG,EAAmB,CACrB,GAAe,gBAAXH,EAAE/C,KACJ,MAAMZ,EAAa2D,EAAGjH,KAAM,gBAE9B,MAAMiH,GAKZ,OAAOtM,IAOT6B,QAAS,EAETe,eAAgB,aAChBG,eAAgB,eAEhB2J,kBAAmB,EACnBC,eAAgB,EAEhB3B,eAAgB,SAAwB1J,GACtC,OAAOA,GAAU,KAAOA,EAAS,MAIrCsD,EAAS1E,QAAU,CACjBiJ,OAAQ,CACN,OAAU,sCAIdjK,EAAM8D,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BvB,GACpEmD,EAAS1E,QAAQuB,GAAU,MAG7BvC,EAAM8D,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BvB,GACrEmD,EAAS1E,QAAQuB,GAAUvC,EAAMgK,MAAMiC,MAGzCnM,EAAOC,QAAU2F,G,+BCnIjB5F,EAAOC,QAAU,SAAcqJ,EAAIsE,GACjC,OAAO,WAEL,IADA,IAAIC,EAAO,IAAIvF,MAAMhB,UAAUmB,QACtBqF,EAAI,EAAGA,EAAID,EAAKpF,OAAQqF,IAC/BD,EAAKC,GAAKxG,UAAUwG,GAEtB,OAAOxE,EAAGf,MAAMqF,EAASC,M,mCCN7B,IAAI3N,EAAQC,EAAQ,OAEpB,SAAS4N,EAAO9J,GACd,OAAOtC,mBAAmBsC,GACxB+E,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrBhJ,EAAOC,QAAU,SAAkB+B,EAAKW,EAAQC,GAE9C,IAAKD,EACH,OAAOX,EAGT,IAAIgM,EACJ,GAAIpL,EACFoL,EAAmBpL,EAAiBD,QAC/B,GAAIzC,EAAM2M,kBAAkBlK,GACjCqL,EAAmBrL,EAAO2D,eACrB,CACL,IAAI2H,EAAQ,GAEZ/N,EAAM8D,QAAQrB,GAAQ,SAAmBsB,EAAKC,GAChC,OAARD,GAA+B,qBAARA,IAIvB/D,EAAMqL,QAAQtH,GAChBC,GAAY,KAEZD,EAAM,CAACA,GAGT/D,EAAM8D,QAAQC,GAAK,SAAoBiK,GACjChO,EAAMiO,OAAOD,GACfA,EAAIA,EAAEE,cACGlO,EAAM4M,SAASoB,KACxBA,EAAIf,KAAKI,UAAUW,IAErBD,EAAM7F,KAAK2F,EAAO7J,GAAO,IAAM6J,EAAOG,WAI1CF,EAAmBC,EAAMI,KAAK,KAGhC,GAAIL,EAAkB,CACpB,IAAIM,EAAgBtM,EAAIiB,QAAQ,MACT,IAAnBqL,IACFtM,EAAMA,EAAIwJ,MAAM,EAAG8C,IAGrBtM,KAA8B,IAAtBA,EAAIiB,QAAQ,KAAc,IAAM,KAAO+K,EAGjD,OAAOhM,I,+BC3DThC,EAAOC,QAAU,SAAqB8B,EAASwM,GAC7C,OAAOA,EACHxM,EAAQiH,QAAQ,OAAQ,IAAM,IAAMuF,EAAYvF,QAAQ,OAAQ,IAChEjH,I,mCCVN,IAAI7B,EAAQC,EAAQ,OAEpBH,EAAOC,QACLC,EAAMuD,uBAIK,CACL+K,MAAO,SAAejE,EAAMvD,EAAOyH,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAOzG,KAAKmC,EAAO,IAAM5I,mBAAmBqF,IAExC9G,EAAM4O,SAASL,IACjBI,EAAOzG,KAAK,WAAa,IAAI2G,KAAKN,GAASO,eAGzC9O,EAAMgN,SAASwB,IACjBG,EAAOzG,KAAK,QAAUsG,GAGpBxO,EAAMgN,SAASyB,IACjBE,EAAOzG,KAAK,UAAYuG,IAGX,IAAXC,GACFC,EAAOzG,KAAK,UAGd6G,SAASJ,OAASA,EAAOR,KAAK,OAGhCxK,KAAM,SAAc0G,GAClB,IAAI2E,EAAQD,SAASJ,OAAOK,MAAM,IAAIC,OAAO,aAAe5E,EAAO,cACnE,OAAQ2E,EAAQE,mBAAmBF,EAAM,IAAM,MAGjDG,OAAQ,SAAgB9E,GACtBlE,KAAKmI,MAAMjE,EAAM,GAAIwE,KAAKO,MAAQ,SAO/B,CACLd,MAAO,aACP3K,KAAM,WAAkB,OAAO,MAC/BwL,OAAQ,e,8BCzChBrP,EAAOC,QAAU,SAAuB+B,GAItC,MAAO,gCAAgCuN,KAAKvN,K,+BCJ9ChC,EAAOC,QAAU,SAAsBuP,GACrC,MAA2B,kBAAZA,IAAmD,IAAzBA,EAAQrJ,e,kCCPnD,IAAIjG,EAAQC,EAAQ,OAEpBH,EAAOC,QACLC,EAAMuD,uBAIH,WACC,IAEIgM,EAFAC,EAAO,kBAAkBH,KAAKI,UAAUC,WACxCC,EAAiBZ,SAASa,cAAc,KAS5C,SAASC,EAAW/N,GAClB,IAAIgO,EAAOhO,EAWX,OATI0N,IAEFG,EAAeI,aAAa,OAAQD,GACpCA,EAAOH,EAAeG,MAGxBH,EAAeI,aAAa,OAAQD,GAG7B,CACLA,KAAMH,EAAeG,KACrBE,SAAUL,EAAeK,SAAWL,EAAeK,SAASlH,QAAQ,KAAM,IAAM,GAChFmH,KAAMN,EAAeM,KACrBC,OAAQP,EAAeO,OAASP,EAAeO,OAAOpH,QAAQ,MAAO,IAAM,GAC3EqH,KAAMR,EAAeQ,KAAOR,EAAeQ,KAAKrH,QAAQ,KAAM,IAAM,GACpEsH,SAAUT,EAAeS,SACzBC,KAAMV,EAAeU,KACrBC,SAAiD,MAAtCX,EAAeW,SAASC,OAAO,GACxCZ,EAAeW,SACf,IAAMX,EAAeW,UAY3B,OARAf,EAAYM,EAAWW,OAAOC,SAASX,MAQhC,SAAyBY,GAC9B,IAAIC,EAAU3Q,EAAMgN,SAAS0D,GAAeb,EAAWa,GAAcA,EACrE,OAAQC,EAAOX,WAAaT,EAAUS,UAClCW,EAAOV,OAASV,EAAUU,MAhDjC,GAsDQ,WACL,OAAO,I,mCC9Df,IAAIjQ,EAAQC,EAAQ,OAEpBH,EAAOC,QAAU,SAA6BiB,EAAS4P,GACrD5Q,EAAM8D,QAAQ9C,GAAS,SAAuB8F,EAAOuD,GAC/CA,IAASuG,GAAkBvG,EAAK7H,gBAAkBoO,EAAepO,gBACnExB,EAAQ4P,GAAkB9J,SACnB9F,EAAQqJ,S,mCCNrB,IAAIrK,EAAQC,EAAQ,OAIhB4Q,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5B/Q,EAAOC,QAAU,SAAsBiB,GACrC,IACIgD,EACAD,EACA6J,EAHA+C,EAAS,GAKb,OAAK3P,GAELhB,EAAM8D,QAAQ9C,EAAQ8P,MAAM,OAAO,SAAgBC,GAKjD,GAJAnD,EAAImD,EAAKhO,QAAQ,KACjBiB,EAAMhE,EAAMmN,KAAK4D,EAAKC,OAAO,EAAGpD,IAAI3J,cACpCF,EAAM/D,EAAMmN,KAAK4D,EAAKC,OAAOpD,EAAI,IAE7B5J,EAAK,CACP,GAAI2M,EAAO3M,IAAQ6M,EAAkB9N,QAAQiB,IAAQ,EACnD,OAGA2M,EAAO3M,GADG,eAARA,GACa2M,EAAO3M,GAAO2M,EAAO3M,GAAO,IAAIsE,OAAO,CAACvE,IAEzC4M,EAAO3M,GAAO2M,EAAO3M,GAAO,KAAOD,EAAMA,MAKtD4M,GAnBgBA,I,+BCVzB7Q,EAAOC,QAAU,SAAgBkR,GAC/B,OAAO,SAAcC,GACnB,OAAOD,EAAS5I,MAAM,KAAM6I,M,mCCtBhC,IAAIC,EAAMlR,EAAQ,OAEdiH,EAAa,GAGjB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUpD,SAAQ,SAASsN,EAAMxD,GACrF1G,EAAWkK,GAAQ,SAAmBC,GACpC,cAAcA,IAAUD,GAAQ,KAAOxD,EAAI,EAAI,KAAO,KAAOwD,MAIjE,IAAIE,EAAqB,GACrBC,EAAgBJ,EAAIK,QAAQV,MAAM,KAQtC,SAASW,EAAeD,EAASE,GAG/B,IAFA,IAAIC,EAAgBD,EAAcA,EAAYZ,MAAM,KAAOS,EACvDK,EAAUJ,EAAQV,MAAM,KACnBlD,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,GAAI+D,EAAc/D,GAAKgE,EAAQhE,GAC7B,OAAO,EACF,GAAI+D,EAAc/D,GAAKgE,EAAQhE,GACpC,OAAO,EAGX,OAAO,EAUT1G,EAAW7D,aAAe,SAAsB4D,EAAWuK,EAAStL,GAClE,IAAI2L,EAAeL,GAAWC,EAAeD,GAE7C,SAASM,EAAcC,EAAKC,GAC1B,MAAO,WAAab,EAAIK,QAAU,0BAA6BO,EAAM,IAAOC,GAAQ9L,EAAU,KAAOA,EAAU,IAIjH,OAAO,SAASY,EAAOiL,EAAKE,GAC1B,IAAkB,IAAdhL,EACF,MAAM,IAAI0C,MAAMmI,EAAcC,EAAK,wBAA0BP,IAc/D,OAXIK,IAAiBP,EAAmBS,KACtCT,EAAmBS,IAAO,EAE1BG,QAAQC,KACNL,EACEC,EACA,+BAAiCP,EAAU,8CAK1CvK,GAAYA,EAAUH,EAAOiL,EAAKE,KAkC7CnS,EAAOC,QAAU,CACf0R,eAAgBA,EAChBpK,cAzBF,SAAuB4B,EAASmJ,EAAQC,GACtC,GAAuB,kBAAZpJ,EACT,MAAM,IAAI1C,UAAU,6BAItB,IAFA,IAAIqF,EAAOD,OAAOC,KAAK3C,GACnB2E,EAAIhC,EAAKrD,OACNqF,KAAM,GAAG,CACd,IAAImE,EAAMnG,EAAKgC,GACX3G,EAAYmL,EAAOL,GACvB,GAAI9K,EAAJ,CACE,IAAIH,EAAQmC,EAAQ8I,GAChBO,OAAmB1O,IAAVkD,GAAuBG,EAAUH,EAAOiL,EAAK9I,GAC1D,IAAe,IAAXqJ,EACF,MAAM,IAAI/L,UAAU,UAAYwL,EAAM,YAAcO,QAIxD,IAAqB,IAAjBD,EACF,MAAM1I,MAAM,kBAAoBoI,KAQpC7K,WAAYA,I,mCCrGd,IAAIpC,EAAO7E,EAAQ,OAIfmG,EAAWuF,OAAOtG,UAAUe,SAQhC,SAASiF,EAAQtH,GACf,MAA8B,mBAAvBqC,EAAS0D,KAAK/F,GASvB,SAASI,EAAYJ,GACnB,MAAsB,qBAARA,EA4EhB,SAAS6I,EAAS7I,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAShC,SAASqH,EAAcrH,GACrB,GAA2B,oBAAvBqC,EAAS0D,KAAK/F,GAChB,OAAO,EAGT,IAAIsB,EAAYsG,OAAO4G,eAAexO,GACtC,OAAqB,OAAdsB,GAAsBA,IAAcsG,OAAOtG,UAuCpD,SAASmN,EAAWzO,GAClB,MAA8B,sBAAvBqC,EAAS0D,KAAK/F,GAwEvB,SAASD,EAAQ2O,EAAKrJ,GAEpB,GAAY,OAARqJ,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLpH,EAAQoH,GAEV,IAAK,IAAI7E,EAAI,EAAG8E,EAAID,EAAIlK,OAAQqF,EAAI8E,EAAG9E,IACrCxE,EAAGU,KAAK,KAAM2I,EAAI7E,GAAIA,EAAG6E,QAI3B,IAAK,IAAIzO,KAAOyO,EACV9G,OAAOtG,UAAUsN,eAAe7I,KAAK2I,EAAKzO,IAC5CoF,EAAGU,KAAK,KAAM2I,EAAIzO,GAAMA,EAAKyO,GA2ErC3S,EAAOC,QAAU,CACfsL,QAASA,EACTe,cA1RF,SAAuBrI,GACrB,MAA8B,yBAAvBqC,EAAS0D,KAAK/F,IA0RrBsI,SAtSF,SAAkBtI,GAChB,OAAe,OAARA,IAAiBI,EAAYJ,IAA4B,OAApBA,EAAI6O,cAAyBzO,EAAYJ,EAAI6O,cAChD,oBAA7B7O,EAAI6O,YAAYvG,UAA2BtI,EAAI6O,YAAYvG,SAAStI,IAqShF7C,WAlRF,SAAoB6C,GAClB,MAA4B,qBAAb8O,UAA8B9O,aAAe8O,UAkR5DpG,kBAzQF,SAA2B1I,GAOzB,MAL4B,qBAAhB+O,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOhP,GAElBA,GAASA,EAAI2I,QAAY3I,EAAI2I,kBAAkBoG,aAqQ3D9F,SA1PF,SAAkBjJ,GAChB,MAAsB,kBAARA,GA0Pd6K,SAjPF,SAAkB7K,GAChB,MAAsB,kBAARA,GAiPd6I,SAAUA,EACVxB,cAAeA,EACfjH,YAAaA,EACb8J,OAlNF,SAAgBlK,GACd,MAA8B,kBAAvBqC,EAAS0D,KAAK/F,IAkNrBwI,OAzMF,SAAgBxI,GACd,MAA8B,kBAAvBqC,EAAS0D,KAAK/F,IAyMrByI,OAhMF,SAAgBzI,GACd,MAA8B,kBAAvBqC,EAAS0D,KAAK/F,IAgMrByO,WAAYA,EACZlG,SA9KF,SAAkBvI,GAChB,OAAO6I,EAAS7I,IAAQyO,EAAWzO,EAAIiP,OA8KvCrG,kBArKF,SAA2B5I,GACzB,MAAkC,qBAApBkP,iBAAmClP,aAAekP,iBAqKhE1P,qBAzIF,WACE,OAAyB,qBAAdkM,WAAoD,gBAAtBA,UAAUyD,SACY,iBAAtBzD,UAAUyD,SACY,OAAtBzD,UAAUyD,WAI/B,qBAAX1C,QACa,qBAAbzB,WAkITjL,QAASA,EACTkG,MAvEF,SAASA,IACP,IAAIsI,EAAS,GACb,SAASa,EAAYpP,EAAKC,GACpBoH,EAAckH,EAAOtO,KAASoH,EAAcrH,GAC9CuO,EAAOtO,GAAOgG,EAAMsI,EAAOtO,GAAMD,GACxBqH,EAAcrH,GACvBuO,EAAOtO,GAAOgG,EAAM,GAAIjG,GACfsH,EAAQtH,GACjBuO,EAAOtO,GAAOD,EAAIuH,QAElBgH,EAAOtO,GAAOD,EAIlB,IAAK,IAAI6J,EAAI,EAAG8E,EAAItL,UAAUmB,OAAQqF,EAAI8E,EAAG9E,IAC3C9J,EAAQsD,UAAUwG,GAAIuF,GAExB,OAAOb,GAuDPhN,OA5CF,SAAgB8N,EAAGC,EAAG3F,GAQpB,OAPA5J,EAAQuP,GAAG,SAAqBtP,EAAKC,GAEjCoP,EAAEpP,GADA0J,GAA0B,oBAAR3J,EACXe,EAAKf,EAAK2J,GAEV3J,KAGNqP,GAqCPjG,KAhKF,SAAcmG,GACZ,OAAOA,EAAInG,KAAOmG,EAAInG,OAASmG,EAAIxK,QAAQ,aAAc,KAgKzDyK,SA7BF,SAAkBC,GAIhB,OAH8B,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQlI,MAAM,IAEnBkI,K,uiBC5TP,O,0JAHa,OAASrI,GAGtB,EAH8B,WAAA/D,WAAA,SAMfsM,EAAAC,GACf,mBAEAC,OACE,IADcC,EACd,GAAAA,EAAKC,EAAW,YAAeC,EADjB,WAGTC,OAAWD,IAAAA,EAAAA,KAAAA,EAAeE,EAC5B,EAJL,UAODC,OAAAA,IAAAA,GAAAA,ECjBoBC,EDQnB,UCPA,8BACFL,UAAAA,GACAF,IAAA,qBACEE,UACE,GAGAF,GAAAI,GAIJ,iBACA,gCCDA,ODZuDI,EAAAA,UAAAA,SAAAA,EAAAA,GAAAA,OAAAA,GAAAA,ECO1C,cAAqB/J,EAAAgK,GAAA,OACrBA,GAIPC,EDAN,GC4BI,EAAM,CACNlB,EAAAA,CA7B2DI,QAAAA,EA+B7De,MAAM,EACJnD,KAAAA,KASFoD,QAAQ,CACNC,QAAS,WADH,mFAENF,MAAM,GAERG,MAAO,CACLV,SAAS,SADF,WAAAW,GA7CoD,CAiD7DvD,KAAK,EACHwD,MAAM,GADHC,KAjDwD,CAqD7DrB,QAAUsB,KAERC,OAAM,CAvDqDvB,QAAAwB,EAyD7D5D,KAAO0D,KAELG,QAAM,CA3DqDzB,QAMpD,EAuDP0B,OAAE,WAEFC,IAAAA,CA/D2DD,OAAAA,CAAAA,YAiE3DN,MAAE,GAEFQ,SAAM,CAnEqDpB,SAAAA,CAAAA,OAqE3DkB,OAAE,WAEFG,QAAO,CACPrB,SAAS,YAxEkD5C,KAAAA,IA2E3DkE,GAAAA,CACA9B,QAtEO,EANoD0B,OAAAA,CAAAA,OA+E3DK,GAAAA,CA/E2DvB,SAAAA,CAAAA,KAAAA,MAiF7D5C,KA3ES,GA2EDoE,GAjFqD,CAoF3DhC,QA9EO,EA+EPiB,QAAM,UADJ,UAEFS,OAAM,QAERO,WAAK,CACHjC,QAnFO,EANoD0B,OAAAA,CAAAA,WA4F3DQ,OAAAA,CACAjB,QAAS,UAAD,WAEVkB,OAAM,CACJlB,QAAM,qBAERmB,GAAI,CACFxE,KA7FO,EA8FPwD,MAAM,GAERiB,IAAAA,CACEjB,MAAAA,GADOkB,GAtGoD,CA0G3DtC,QApGO,EAqGP0B,OAAQ,CAAC,KAAD,KAAS,SAEnBa,KAAI,CACFxB,MAAM,GAERyB,GAAI,CACFhC,SAAS,OACT5C,KA5GO,GA8GT6E,QAAK,CACHjC,SAAS,iBACT5C,KAAM0D,IAERoB,GAAI,CACFhB,OAAQ,QAAS,QAEnBiB,GAAAA,CACEjB,OAAQ,CAAC,OAAD,QADFkB,GA3HqD,CA+H7D5C,QA/H6DwB,EAgI3DE,OAAO,CAAE,eADFmB,IA/HoD,CAmI7D7C,QAnI6DwB,EAoI3DE,OAAQ,UADHoB,KAnIsD,CAuI7DtC,SAAO,wBAELpN,OAAAA,CAzI2DsO,OAAAA,CAAAA,QAAAA,QAAAA,WA2I3DN,MAAE,GAEF2B,QAAM,CA7IqD/C,QAAAwB,EA+I7DE,OAAO,aAELsB,MAAAA,CAjJ2DxC,SAAAA,CAAAA,UAAAA,WAAAA,QAAAA,QAAAA,QAAAA,MAmJ3D5C,KA7IO,GA+IPqF,MAAAA,CArJ2DvB,OAAAA,CAAAA,SAuJ7DlB,SAAO,QAEL0C,GAAAA,CAzJ2DlD,QAMpD,EAqJP0B,OAAE,QAEFyB,MAAAA,CA7J2DzB,OAAAA,CAAAA,SA+J7DlB,SAAO,QAEL4C,GAAAA,CAjK2DpD,QAMpD,EA6JP0B,OAAE,QAEF2B,MAAI,CArKuD3B,OAAAA,CAAAA,SAuK7DlB,SAAO,QAAA8C,GAvKsD,CA0K7D5B,OAAK,kCACHlB,SAAM,MAAS,OADZ+C,MAAAA,CA1KP7B,OAAAA,CAAAA,QAAAA,SA0KO,SAOL8B,GAAAA,CACEhD,SAAU,CAAC,MAET5C,KA9KK,GAgLR6F,MALD,CAMDjD,SAAAA,CAAAA,QAAAA,WAEAkD,IAAAA,CAEG9F,KAAO0D,EACPF,MAAM,IA6BN,SAAMuC,EAAY1W,GAzBtB,mBA6BA2W,EAAa,GACXC,EAAAA,GAAmB5W,EAAC2W,EAAAA,KAMtB,CAAC,UAAK,OAAS,MAAQ,SAAc,WACnCtT,QAAAqT,EAAoB,CAClB3D,QAhOO,EAiOPpC,KAAM0D,MAIV,CAAC,WAAW,MAAS,aAAU,OAAU,OAAO,MAAW,eAAc,OACvE,kBAAoB,uCAAAhR,QAAAqT,EAAAA,CAClB3D,QA7O2DwB,EA8O3D5D,KAAM0D,MAIV,CAAC,IAAD,OAAahR,QAAMqT,EAAkB,CAEjC3D,QApP2DwB,EAqP3D5D,KAAM0D,MAIV,CAAC,YAAS,OAAU,MAAU,OAAOhR,QAArC,EACE,CACE0P,QA3P2DwB,EAyP/D5D,KAAAA,KAAA,WAO4B,QAAU,SAAO,SAAd,iDA1PpB,EA0PoB,KAGlB,MAHkB,mDAhQgC4D,EA2RlD,KACA,MAAcsC,CAAAA,QAEd,kBAAmB,+BACnB,M,MAIA,OAAqB,OAASF,GAEzC,EAFiD,uIAGjD,EAHiDzL,OAAAA,KAAAA,GAAAA,QAAAA,SAAAA,GAIjD,MAAS,WAAF4L,GAJ0CA,WAAAA,KAcjD,EAAO,OAd0C,QAejDC,IARS,EASTC,KATS,EAUTC,MAVS,EAWTC,QAlBiD,EAmBjDC,SAnBiD,EAoBjDC,SAbS,EAcTC,QArBiD,EAsBjDC,SAtBiD,EAuBjDC,IAhBS,EAiBTC,OAjBS,EAkBTnI,KAlBS,EAmBT3G,GAnBS,EAoBT+O,KApBS,EAqBTC,MArBS,EAsBTC,KAtBS,EAuBTC,QAvBS,EAwBTC,KA/BiD,EAgCjDC,MAzBS,EA0BTC,MAjCiD,EAkCjDC,OA3BS,EAP0BC,KAO1B,EAPwC,gBAOxC,EAgCTC,MAhCS,EAiCTC,KAxCiD,EAyCjDC,MAzCiD,EA0CjDC,MA1CiD,EA2CjDC,IApCS,EAqCTC,QArCS,EA+BmDC,OA/BnD,EAPwC,OAOxC,ECrTXC,MDqTW,ECnTI9H,KDmTJ,EClTT+H,MDkTS,IC5SH,EAAiBxN,OAAM,OAAM,CAC3B+L,MAAAA,YACAC,QAAAA,UACDE,SAAAA,WACFuB,QALD,UAMDJ,QAAAA,UALgC,kBAQlC,6BAf6C,c,QC0BhD,SAAMK,IACN,OAAMC,EAANjR,MAAA,KAAAjB,YAAA,KAqBE,O,EDhD8C,G,EAAA,G,sEC8BhCiS,EAAG,UAEV,mBAAiBhP,EAAAvD,GAUxB,MATA,aACI6E,OAAOC,KAAA9E,GAAWhD,SAAA,SAAeE,GAC5BuV,OAAAA,EAAP,IAAAvK,MAAAwK,W,QAOK1S,GAMP,EDhD8C,CCkD9CwN,GAUA,EAAW,uCAMT,EAAa,mDACX,EAAU,iBAET,a,8DAMH,OAAKvF,SAAL,eAAA0K,mBAAA,cAGA,MAAsB,WACtB,SAAKC,EAAL,EAAeC,EAAcC,EAA7B,QACD,QAEDD,EAAAA,SACF,mBAaG,QAEDE,EAAAA,IACF,uCAEE,kBAAiB,EACf,sBACA,aAAY,GAOb,kBAED,qBACF,oBACA,qBAKY,aAAF,KAAYD,SAAlBA,EACA,KAAIC,QAAA,GAAavR,OAAGuR,EAApB,SACA,KAAIC,UAAY,EAChB,KAAIC,UAAJ,4BAEA,KAAKC,QAAS,QAASL,EAADM,WAAaC,GACjC,YAAM,IAAUC,IAAAC,GAChB,aAAY,IAAGD,IAAKR,EAAAA,WAWpB,MAAUD,EAAAA,UCrIZ,ODuIGW,EAfgC,oJAkBjC,IAGgCA,EAAAA,iBAAxB,cAA6C,YAAGR,QAAAS,QAAA,cAAhD,OAAN,OAAoEC,GAApE,2BAAA1O,EAAAA,KAAAA,EAAAA,GAAA0O,IACAC,IAcEH,EAAAA,cAAgB,SAAhBI,EAAAC,GACA,WAEE,EAFoB,GAGpB,OACEf,MACA,EAAG,EACH,EAAK,EAHA,OAuEjB,OA1E8B,cAAtB7V,SAAA,YASD,IAjBD6W,EAiBO,wBA1BuDla,EAAAA,EAAAA,aAAAA,G,yCAoC5D,uBAOJ,I,SAAKma,IAAgB7M,EAAAA,EAAAA,MAAAA,KAAA,CACnB,MAAaA,EACd8M,EAAAA,EAAAA,MAjEHtS,EAAAA,EAAAA,OAgEI,UAIAuS,EAAYC,EAAhB,MACEC,EAAAD,EAAAA,KACDE,EAAAA,EAAAA,EAAAA,CAAAA,QAAAA,SAAAA,QAAAA,QAAAA,SAEMC,EAAK,EAAc,SAAnBC,EAGT,MACFC,GAAAA,EAAAA,MAAAA,EAAAA,IACA,GACEA,GAAcJ,EAA2B,MAAkCE,EAAA,sCACpEG,EAAAA,UAAa,EAChBF,GAAAA,EAFuEG,EAAAA,GAAAA,CAAAA,SAAAA,EAAAA,QAAAA,EAMrE3B,MAAAA,EAAmB,QACd3V,IAAPqX,EAAAA,aAIED,GAAAG,EAKF,UAhBuEX,EAAAA,EAAAA,EAAAA,MAAAA,EAAAA,GAAAA,EAAAA,IAqBvEA,EAAmBA,EAAZtP,MAA4BuP,GAAatS,GAAhDgT,EAAAA,SArBuE,sBAiC3E,MACF,EAGA,yBAEUlB,EAAgC,eAAtC,iD,SAaA,EAAa,SAAW9R,OAAQ,EAEzBmS,EAAP,SAAAc,SAAAC,EAAAA,WAIJ,qD,kBAIE,EAAe,OAA0CD,SAAAd,EAAAA,YAKlDA,EAAK,MAAAA,EAAAA,UAAAA,EAAAA,UAKJgB,QAAQ,GAAehB,EAAQ,QAAiBe,EAAW,UAjC3DpB,EAAAA,kBAAAA,SAAAA,GA2CN,iBACDsB,EAAAA,EAAAA,OAEDC,EAAAA,EAAAA,kBAEF,sDACA,SAEI,MAAM,wBAENC,OAAAA,GAFMA,EAA2B,EAAjC,6BAEAA,QAAAA,MAAAA,UAOQxB,EAAkByB,gBAAxB,YACA,IACA,GADqB,qBAALC,EAAAA,GAAhBA,EAAAA,EAAAA,yBAAAC,KAIA,MAEC,iGAkBD,OAbE,EACI,MAAAC,KADJ,oEAaEC,IAYJ7B,EAAAA,kBAAW,SAAXG,GAIA,wCAGE5G,EAAa,GACf,EAAO,EAAP,OAhSI,IAgSJ,0BAONxL,MAAAA,KAAAA,EAAAA,YAAAA,SAAAA,SAAAA,GACA,yCACE,IAAiD+T,IAAAC,EAAAA,GAG/C,GAAM,EAAK,OAAX5B,KAAA,aAQO,GAAP,GF1DQ,IE0DR,KAAA2B,EAAAA,WAAAA,QAAArV,EAAAA,QAAAA,uBAAAA,IAAAA,MAAAA,2CARA,C,+CF1D+C,IEyEzC+E,EACJwQ,GADa,EFzEgC,IEyEhCxQ,EAGbwQ,EAHaC,OAAAA,WAAAA,OAAAA,IFzEgC,IEyEhCzQ,IAKbwQ,EALa,WAQbzI,EAAM,SAAA2I,EAAAA,sBAAAA,EAAAA,GATgCC,GAAAA,MAnB5CpU,IAAAA,EAkCa,KAIL,GA1CG,MAkDXiS,EAAAA,sBAAAA,SAAAA,GACA,SASQ,OATR,0DAEI,2CACIoC,EAAOzY,EAAAA,QAAAA,aAAsB,SAA7BgL,EAAgD0N,GAClD,OAAUA,EAAQla,kBAGlBsE,MAEE,GAcJuT,EAAAA,aAAAA,SAAAA,GACD,OAEDrG,SAAAA,GACFR,QAAAA,EACAiB,QAAAA,GAJG,kBAKDkG,QAAa,GACXvJ,KAAI,EACFwD,MAAAA,GAMJ,YACF,aACA+F,QAAAA,IAEA,GAOGN,EAAAA,OAAAA,SAAAA,GAGH,2EACA,6B,wBAEE,OAAU,EAGN,QAFIrK,SAAA/L,cAGJ,MAHI,MAGJ,GAHI+L,UAAAA,GAAAA,WAAAA,GAAAA,YAAAA,GAAAA,SAAAA,EAAA,OAMF,GAQAqK,EAAAA,aAAe,SAAkBM,GAFC,kGAElCN,EAAAA,MAAAA,WAgBA,YAAIN,UAIF,KAAM4C,UAAM,KAAK5C,UAFwD,0DAF3E,IAcIM,EAAAA,UAAQ,SAAKuC,EAAMlC,GAA2D,WAE9E,aACDiB,EAfwE,SAcvE,2CAIFkB,EAAK,EAALA,UACDC,EAvCiC,yBAkC9B,UAuHL,OA/GC1U,MAAAA,KAAIwU,EAAY,YAAc9Y,SAAA,YAE7B,GArcC,IAyZgC0W,EAAAA,SAAA,CA+ClC,+BAEA,oBAEEuC,IAIAvJ,EAAK,KAALA,GAAAA,EAAAA,IAImC,IASjC,EATF+G,EAAAA,EAAAA,iBAAAA,EAAAA,GAIA,MACE,OAIA,+BAGFyC,EAAOlD,UAAPkD,EAGuB,MAAK,EAAK,SAMjChJ,EAAAA,EAAAA,UAAAA,EAAAA,GACA,eAEA,GAAkB,OAAlB,EAnFgC,OAmFhC,0BAYE,YA/FNR,EAyFW,KAAkByJ,EAAAA,aAAWC,EAAA,CAChClZ,IAAIA,KASTgZ,EAAAA,SAAAA,EAAAA,EAID,KAAJ,OAAgBG,IAAAxC,GACd,OAQN,kEAY4C,6CAZ5C,CACAqC,EAAAA,UAAAA,E,6BAES,EAAgB,CACnBrC,QAAO,GAGH,IACEyC,EAAG,WAAXxJ,GAIQnT,EAAO,OACP2c,EAAQ,UAAd3c,EAAAA,MACA,iCAGIuD,IAAJgZ,EAAa,WACNhJ,GAAS,EAAd,UAA0BuG,EAAA9Z,WAOrB,GAliBX,IAkiBY+Z,EAAK,SADO,gEAKnB,+BAEOuC,GAAF,MArGJ3U,GAyGFoL,EAAI,KAAQuJ,GAAZvJ,GAnHM6G,EAAAA,cAAAA,SAAAA,EAAAA,GAkIJ,MAAiBmB,SAAS,OAE1B,OAAKJ,E,IAMN,SAGD,EAAOA,EA3DwE9Y,EAAAA,K,eA+DjF,IAAI+a,EAAK,EACPC,EAAW,EAAX,GAhE+EpC,EAAAA,EAAAA,GA+DjF,UAKIF,EAAM,EAAV,SAAwB,KAAxB,EAhmBwB,2BEvCbuC,EAAAA,EAAgB,MAAoBC,IAG/C,MAFI,KAGJxJ,EAHIyJ,EAAAA,SAIJC,EAJI,UAKJN,EALI,QAMJ,OANI,EAQF,KACEO,EAAM,SACNC,EAAM1V,KAAGwV,EAAQ,cAAa1J,EAAaoJ,QAC7C,2CAGF,EAMCO,EAAAA,EAAAA,MAAAA,EAAAA,GAAAA,OACFC,EAAAA,KAAAA,EAAAA,cAAAA,KAAAA,cAAAA,EAAAA,MAAAA,EAAAA,OAAAA,EAAAA,OAAAA,GAAAA,IAIAL,EAAAA,EAAAA,MAAAA,GAQkC,OAJjC,YACDK,EAAAA,KAAAA,GAGC,IAAiC,EAAS,OAAsB,GADlE,IAEK,EAFL,+BAKD,KDvCOA,GAGJ,ED0EsB,GCrEtB,WAAWjE,GACX,IASF,EATE,EAAeA,EATX,WAUJ7F,EAAa6F,EAVT7F,UAWJ+J,EAXI,mBAYJrK,EAAS,EAZL,QAaJsK,EAAG,eACDC,EAdJ,gBAeApD,EAAM,EAAcA,QACpB,EAAM,GAAa,GAAsB,OACzC,EAAqB,aAAf,GAAmChB,EAAAA,OAIzC,KACEqE,EAAYD,MACV,CACD,6BAEGE,EAAO1V,OAAC,IACVyV,EAAcC,GASd,OAJJ,IACED,EAAM,GAGJ,EAEC,mCAGH,mBATapK,WAUDA,EADZ,YAIF+G,QAAM,GAJJ,K,mHE9CJ,EAA6B,uCAA7B,EAAkF,wCAAlF,EAAyI,yCAAzI,EAAgM,wC,oBCChM,MAAMuD,EAAqBjB,EAAAA,YACzB,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNI,QAAQ,YACRC,MAAM,6BACNN,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,yjBACFH,KAAK,SAKbL,EAAmBS,aAAe,CAChCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXsa,EAAmBU,UAAY,CAC7BR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAMC,EAAwB7B,EAAAA,YAC5B,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNI,QAAQ,YACRC,MAAM,6BACNN,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,4RACFH,KAAK,SAKbO,EAAsBH,aAAe,CACnCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXkb,EAAsBF,UAAY,CAChCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAME,EAAsB9B,EAAAA,YAC1B,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNI,QAAQ,YACRC,MAAM,6BACNN,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,6IACFH,KAAK,YAEPtB,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,yKACFH,KAAK,YAEPtB,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,wGACFH,KAAK,YAEPtB,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,mKACFH,KAAK,gBAKbQ,EAAoBJ,aAAe,CACjCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXmb,EAAoBH,UAAY,CAC9BR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QC5CA,MAAMG,EAA6B/B,EAAAA,YACjC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNI,QAAQ,YACRC,MAAM,6BACNN,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEgC,SAAS,UACTP,EAAE,qYACFH,KAAK,GACLW,SAAS,gBAKjBF,EAA2BL,aAAe,CACxCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXob,EAA2BJ,UAAY,CACrCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QCoBA,MA/B0BlL,IAMK,IANJ,SACzBK,EADyB,QAEzBmL,EAFyB,QAGzBC,EAHyB,UAIzBtL,KACG7K,GACoB0K,EACvB,OACEsJ,EAAAA,cAACoC,EAAAA,GAAMC,EAAAA,EAAAA,GAAAA,CACLxL,WAAWyL,EAAAA,EAAAA,GACT9C,EACY,kBAAZ2C,GAA+B3C,EACnB,iBAAZ2C,GAA8B3C,EAC9B3I,GAEF1C,KAAK,SACL+N,QAASA,GACLlW,GAEJgU,EAAAA,cAACA,EAAAA,SAAc,CAACuC,SAAUvC,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,KAC3B,UAAZ2C,GAAuBnC,EAAAA,cAACwC,EAAS,MACrB,aAAZL,GAA0BnC,EAAAA,cAACyC,EAAY,CAACnB,KAAK,YACjC,kBAAZa,GAA+BnC,EAAAA,cAACyC,EAAY,MAChC,WAAZN,GAAwBnC,EAAAA,cAAC0C,EAAU,MACvB,UAAZP,GAAuBnC,EAAAA,cAAC2C,EAAS,OAEnC5L,K,mHClDP,EAAiC,wCC+BjC,MArBuBL,IAAyC,IAAxC,UAAEG,GAAgCH,EACxD,MAAM,EAAEkM,IAAMC,EAAAA,EAAAA,yBAERC,EAAaF,EACjB,yDACA,CAAEG,WAAY,iBAGVC,EAAeJ,EACnB,6DACA,CAAEK,aAAc,mBAGlB,OACEjD,EAAAA,cAAAA,IAAAA,CAAGnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAuB3I,IACxCmJ,EAAAA,cAACkD,EAAAA,GAAM,CAACC,QAAQ,EAAM5M,QAASuM,IAAe,IAC9C9C,EAAAA,cAACkD,EAAAA,GAAM,CAACC,QAAQ,EAAM5M,QAASyM,O,kJC3BjCI,EAAY,CAAC,UAAW,WAAY,QAAS,OAAQ,WAAY,YAAa,YAAa,OAAQ,SAAU,aAAc,QAAS,KAAM,YAC9I,SAASf,IAAiS,OAApRA,EAAW3T,OAAO2U,OAAS3U,OAAO2U,OAAOxb,OAAS,SAAUqG,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAASQ,UAAUwG,GAAI,IAAK,IAAI5J,KAAO4C,EAAc+E,OAAOtG,UAAUsN,eAAe7I,KAAKlD,EAAQ5C,KAAQmH,EAAOnH,GAAO4C,EAAO5C,IAAY,OAAOmH,GAAkBmU,EAASjX,MAAMlC,KAAMiB,WAEtU,SAASmZ,EAAuBhM,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiM,eAAe,6DAAgE,OAAOjM,EAE/J,SAASkM,EAAgBC,EAAGC,GAA6I,OAAxIF,EAAkB9U,OAAOiV,eAAiBjV,OAAOiV,eAAe9b,OAAS,SAAyB4b,EAAGC,GAAsB,OAAjBD,EAAEG,UAAYF,EAAUD,GAAaD,EAAgBC,EAAGC,GAGnM,IAAIG,EAAyB,SAAUC,GAJvC,IAAwBC,EAAUC,EAMhC,SAASH,IACP,IAAIzF,EAMJ,OALAA,EAAQ0F,EAAiBjX,KAAK3D,OAASA,MACjC+a,cAAgB7F,EAAM6F,cAAcpc,KAAKyb,EAAuBlF,IACtEA,EAAM8F,cAAgB9F,EAAM8F,cAAcrc,KAAKyb,EAAuBlF,IACtEA,EAAM+F,aAAe/F,EAAM+F,aAAatc,KAAKyb,EAAuBlF,IACpEA,EAAMgG,mBAAqBhG,EAAMgG,mBAAmBvc,KAAKyb,EAAuBlF,IACzEA,EAbuB4F,EAKNF,GALJC,EAKPF,GALwCzb,UAAYsG,OAAOnG,OAAOyb,EAAW5b,WAAY2b,EAAS3b,UAAUuN,YAAcoO,EAAUP,EAAgBO,EAAUC,GAe7K,IAAI7M,EAAS0M,EAAUzb,UAuIvB,OAtIA+O,EAAOkN,mBAAqB,SAA4BC,GACtD,OAAIpb,KAAKwT,MAAM6H,WACTrb,KAAKwT,MAAM6H,WAAWC,WACjBtb,KAAKwT,MAAM6H,WAAWC,WAAWF,GAEnCpb,KAAKwT,MAAM6H,WAAWD,GAExB,MAETnN,EAAOsN,SAAW,WAChB,IAAIC,EAAcxb,KAAKmb,mBAAmB,eAC1C,OAAIK,QAAkC/d,IAAnBuC,KAAKyb,UACfD,EAAYxb,KAAKyb,WAEnB,MAETxN,EAAOyN,YAAc,WACnB,OAAI1b,KAAKwT,MAAM6H,iBAAiC5d,IAAnBuC,KAAKyb,UACzBzb,KAAKyb,UAEP,MAETxN,EAAO0N,QAAU,WACf,IAAIA,EAAU3b,KAAKmb,mBAAmB,WACtC,GAAIQ,QAA8Ble,IAAnBuC,KAAKyb,UAClB,OAAOE,EAAQ3b,KAAKyb,WAEpBzb,KAAK4b,mBAAoB,GAG7B3N,EAAO4N,aAAe,WACpB,IAAIzF,EAASpW,KACb,OAAO,IAAIzF,SAAQ,SAAUC,EAASC,GACpC2b,EAAO0F,iBAAmBthB,EAC1B4b,EAAO2F,gBAAkBthB,EACzB2b,EAAOuF,cAGX1N,EAAO+N,MAAQ,WACb,IAAIC,EAAWjc,KAAKmb,mBAAmB,SACnCc,QAA+Bxe,IAAnBuC,KAAKyb,WACnBQ,EAASjc,KAAKyb,YAGlBxN,EAAOiO,WAAa,WAClB,IAAID,EAAWjc,KAAKmb,mBAAmB,SACnCc,GACFA,KAGJhO,EAAO8M,cAAgB,WACjB/a,KAAKwT,MAAM2I,UACbnc,KAAKwT,MAAM2I,YAEXnc,KAAKib,aAAa,OAGtBhN,EAAO+M,cAAgB,WACjBhb,KAAKwT,MAAM4I,WACbpc,KAAKwT,MAAM4I,YAETpc,KAAK+b,kBACP/b,KAAK+b,yBACE/b,KAAK8b,wBACL9b,KAAK+b,kBAGhB9N,EAAOgN,aAAe,SAAsB3a,GACtCN,KAAKwT,MAAM6I,UACbrc,KAAKwT,MAAM6I,SAAS/b,GAElBN,KAAK8b,mBACP9b,KAAK8b,iBAAiBxb,UACfN,KAAK+b,uBACL/b,KAAK8b,mBAGhB7N,EAAOqO,eAAiB,WACtB,IAAIC,EAASvc,KAAKmb,mBAAmB,UACrC,GAAIoB,QAA6B9e,IAAnBuC,KAAKyb,UAAyB,CAC1C,IAAIe,EAAU5T,SAASa,cAAc,OACrCzJ,KAAKyb,UAAYc,EAAOC,EAAS,CAC/BC,QAASzc,KAAKwT,MAAMiJ,QACpB3R,SAAU9K,KAAKib,aACfyB,MAAO1c,KAAKwT,MAAMkJ,MAClBzR,KAAMjL,KAAKwT,MAAMvI,KACjB0R,SAAU3c,KAAKwT,MAAMmJ,SACrB,mBAAoB3c,KAAK+a,cACzB,iBAAkB/a,KAAKgb,cACvB9C,KAAMlY,KAAKwT,MAAM0E,KACjB0E,OAAQ5c,KAAKwT,MAAMoJ,OACnBC,GAAI7c,KAAKwT,MAAMqJ,GACfC,MAAO9c,KAAKwT,MAAMsJ,MAClBC,SAAU/c,KAAKwT,MAAMuJ,WAEvB/c,KAAKgd,QAAQC,YAAYT,GAEvBxc,KAAK4b,mBAAqB5b,KAAKwT,MAAM6H,iBAAiC5d,IAAnBuC,KAAKyb,YAC1Dzb,KAAK4b,mBAAoB,EACzB5b,KAAK2b,YAGT1N,EAAOiP,kBAAoB,WACzBld,KAAKsc,kBAEPrO,EAAOkP,mBAAqB,WAC1Bnd,KAAKsc,kBAEPrO,EAAOiN,mBAAqB,SAA4BkC,GACtDpd,KAAKgd,QAAUI,GAEjBnP,EAAOsO,OAAS,WAGd,IAAIc,EAAcrd,KAAKwT,MAcrB8J,GAbUD,EAAYZ,QACXY,EAAYhB,SACfgB,EAAYX,MACbW,EAAYpS,KACRoS,EAAYV,SACXU,EAAYlB,UACZkB,EAAYjB,UACjBiB,EAAYnF,KACVmF,EAAYT,OACRS,EAAYhC,WACjBgC,EAAYP,MACfO,EAAYR,GACNQ,EAAYN,SAjJ7B,SAAuCtc,EAAQ8c,GAAY,GAAc,MAAV9c,EAAgB,MAAO,GAAI,IAA2D5C,EAAK4J,EAA5DzC,EAAS,GAAQwY,EAAahY,OAAOC,KAAKhF,GAAqB,IAAKgH,EAAI,EAAGA,EAAI+V,EAAWpb,OAAQqF,IAAO5J,EAAM2f,EAAW/V,GAAQ8V,EAAS3gB,QAAQiB,IAAQ,IAAamH,EAAOnH,GAAO4C,EAAO5C,IAAQ,OAAOmH,EAkJvRyY,CAA8BJ,EAAanD,IAE1D,OAAoBpD,EAAAA,cAAoB,MAAOqC,EAAS,GAAImE,EAAY,CACtEtF,IAAKhY,KAAKkb,uBAGPP,EAlJoB,CAmJ3B7D,EAAAA,WAEF6D,EAAU+C,YAAc,YACxB/C,EAAUlC,UAAY,CACpBgE,QAAS/D,IAAAA,OAAiBiF,WAC1BtB,SAAU3D,IAAAA,KACV2C,WAAY3C,IAAAA,OACZgE,MAAOhE,IAAAA,MAAgB,CAAC,OAAQ,UAChCzN,KAAMyN,IAAAA,MAAgB,CAAC,QAAS,UAChCiE,SAAUjE,IAAAA,OACVyD,UAAWzD,IAAAA,KACX0D,UAAW1D,IAAAA,KACXR,KAAMQ,IAAAA,MAAgB,CAAC,UAAW,SAAU,cAC5CkE,OAAQlE,IAAAA,OACRmE,GAAInE,IAAAA,OACJoE,MAAOpE,IAAAA,MAAgB,CAAC,cAAe,aAAc,WACrDqE,SAAUrE,IAAAA,MAEZiC,EAAUnC,aAAe,CACvB6D,SAAU,aACVK,MAAO,QACPzR,KAAM,QACN0R,SAAU,EACVzE,KAAM,SACN4E,MAAO,e,uBCnLT,SAAS,IAA2Q,OAA9P,EAAWtX,OAAO2U,QAAU,SAAUnV,GAAU,IAAK,IAAIyC,EAAI,EAAGA,EAAIxG,UAAUmB,OAAQqF,IAAK,CAAE,IAAIhH,EAASQ,UAAUwG,GAAI,IAAK,IAAI5J,KAAO4C,EAAc+E,OAAOtG,UAAUsN,eAAe7I,KAAKlD,EAAQ5C,KAAQmH,EAAOnH,GAAO4C,EAAO5C,IAAY,OAAOmH,GAAkB,EAAS9C,MAAMlC,KAAMiB,WAShT,IAAI2c,EAAa,GAEbC,EAAU,ECTd,IAAIC,EAAe,iBAEnB,SAASC,IACP,MAAyB,qBAAX1T,QAA0BA,OAAO2T,kBAAoB,GAUrE,IDHwCC,EAAcnb,ECGtD,GDHwCmb,ECLxC,WACE,IAAIC,EAAiBH,IACjB9T,EAAWiU,EAAeC,gBAAkB,gBAAkB,iBAClE,OAAID,EAAe5C,WACV,WAAarR,EAAW,mCAAqC6T,EAAe,mBAE9E,WAAa7T,EAAW,4BAA8B6T,EAAe,oBDA5Ehb,GADoDA,ECGT,CAC3Cgb,aAAcA,EACdM,WAde,aAef3Q,WAAYsQ,IAAaM,MAAQ,CAC/BA,MAAON,IAAaM,OAClB,MDPiB,GACd,SAA6BC,GAClC,IAAIC,EAAuBD,EAAiBZ,aAAeY,EAAiBpa,MAAQ,YAEhFsa,EAEJ,SAAUC,GAfd,IAAwB5D,EAAUC,EAkB5B,SAAS0D,EAAkBhL,EAAOxU,GAChC,IAAIkW,EAKJ,OAHAA,EAAQuJ,EAAW9a,KAAK3D,KAAMwT,EAAOxU,IAAYgB,MAC3C0e,MAAQ,GACdxJ,EAAMyJ,YAAc,GACbzJ,EAxBmB4F,EAgBM2D,GAhBhB5D,EAgBH2D,GAhBoCtf,UAAYsG,OAAOnG,OAAOyb,EAAW5b,WAAY2b,EAAS3b,UAAUuN,YAAcoO,EAAUA,EAASH,UAAYI,EA2BpK,IAAI7M,EAASuQ,EAAkBtf,UAmM/B,OAjMA+O,EAAO2Q,mCAAqC,WAK1C,OAJK5e,KAAK6e,mBACR7e,KAAK6e,iBAAmB,uBAAyBhB,KAG5C7d,KAAK6e,kBAGd5Q,EAAO6Q,eAAiB,WAEtB,OADA9e,KAAK2e,YAAsC,oBAAjBV,EAA8BA,IAAiBA,EAClEje,KAAK2e,aAGd1Q,EAAO8Q,4BAA8B,SAAqCL,GACxE,IAAItI,EAASpW,KAGbA,KAAKgf,SAASN,GAAO,WACnB,OAAOtI,EAAO5C,MAAMyL,mBAAqB7I,EAAO5C,MAAMyL,kBAAkB7I,EAAOsI,WAInFzQ,EAAOiR,uCAAyC,WAC9C,IAAIC,EAAWvB,EAAW5d,KAAK2e,aAE/B,IAAKQ,IAAaA,EAASC,OACzB,MAAM,IAAI5b,MAAM,yBAGlB,IAAK,IAAI6b,KAAUF,EAASG,UAC1BH,EAASG,UAAUD,GAAQF,UAGtB9U,OAAOvH,EAAQgb,eAGxB7P,EAAOiP,kBAAoB,WACzB,IAAIrG,EAAS7W,KAETuf,EAAYvf,KAAK8e,iBACjBjhB,EAAMmC,KAAK4e,qCACXY,EAAW1c,EACXsb,EAAaoB,EAASpB,WACtBN,EAAe0B,EAAS1B,aACxB2B,EAAWD,EAASC,SAUxB,GARIrB,GAA4C,qBAAvB/T,OAAO+T,KAC9BR,EAAW2B,GAAa,CACtBH,QAAQ,EACRE,UAAW,KAKX1B,EAAW2B,GAAY,CACzB,IAAIG,EAAQ9B,EAAW2B,GAEvB,OAAIG,IAAUA,EAAMN,QAAUM,EAAMC,cAClC3f,KAAK+e,4BAA4BW,QAKnCA,EAAMJ,UAAUzhB,GAAO,SAAU6hB,GAC/B,OAAO7I,EAAOkI,4BAA4BW,KAY9C,IAAIJ,EAAY,GAEhBA,EAAUzhB,GAAO,SAAU6hB,GACzB,OAAO7I,EAAOkI,4BAA4BW,IAG5C9B,EAAW2B,GAAa,CACtBH,QAAQ,EACRE,UAAWA,GAEb,IAAIM,EAAShX,SAASa,cAAc,UAIpC,IAAK,IAAIoW,KAHTD,EAAOhN,IAAM2M,EACbK,EAAOE,OAAQ,EAEOhd,EAAQ2K,WAC5BmS,EAAOhW,aAAaiW,EAAW/c,EAAQ2K,WAAWoS,IAGhDJ,IACFG,EAAO5c,GAAKyc,GAGd,IAAIM,EAAoC,SAA2CC,GACjF,GAAIpC,EAAW2B,GAAY,CACzB,IACIU,EADWrC,EAAW2B,GACED,UAE5B,IAAK,IAAID,KAAUY,EACbD,EAAKC,EAAaZ,YACbY,EAAaZ,KAMxBvB,GAAkC,qBAAXzT,SACzBA,OAAOyT,GAAgB,WACrB,OAAOjH,EAAOqI,2CAIlBU,EAAOM,OAAS,WACd,IAAIf,EAAWvB,EAAW2B,GAEtBJ,IACFA,EAASC,QAAS,EAClBW,GAAkC,SAAUI,GAC1C,OAAIrC,IAIJqC,EAAShB,IACF,QAKbS,EAAO7iB,QAAU,WACf,IAAIoiB,EAAWvB,EAAW2B,GAEtBJ,IACFA,EAASQ,SAAU,EACnBI,GAAkC,SAAUI,GAE1C,OADAA,EAAShB,IACF,OAKbvW,SAAS8F,KAAKuO,YAAY2C,IAG5B3R,EAAOmS,qBAAuB,WAE5B,IAAIb,EAAYvf,KAAK2e,YAErB,IAAgC,IAA5B7b,EAAQud,gBAGV,IAFA,IAAIC,EAAa1X,SAAS2X,qBAAqB,UAEtC9Y,EAAI,EAAGA,EAAI6Y,EAAWle,OAAQqF,GAAK,EACtC6Y,EAAW7Y,GAAGmL,IAAIhW,QAAQ2iB,IAAc,GACtCe,EAAW7Y,GAAGgP,YAChB6J,EAAW7Y,GAAGgP,WAAW+J,YAAYF,EAAW7Y,IAOxD,IAAI0X,EAAWvB,EAAW2B,GAEtBJ,WACKA,EAASG,UAAUtf,KAAK4e,uCAEC,IAA5B9b,EAAQud,wBACHzC,EAAW2B,KAKxBtR,EAAOsO,OAAS,WACd,IAAI6B,EAAatb,EAAQsb,WAErBf,EAAcrd,KAAKwT,MAEnBiN,GADoBpD,EAAY4B,kBACjB5B,EAAYoD,cAC3BnD,EArNZ,SAAuC7c,EAAQ8c,GAAY,GAAc,MAAV9c,EAAgB,MAAO,GAAI,IAA2D5C,EAAK4J,EAA5DzC,EAAS,GAAQwY,EAAahY,OAAOC,KAAKhF,GAAqB,IAAKgH,EAAI,EAAGA,EAAI+V,EAAWpb,OAAQqF,IAAO5J,EAAM2f,EAAW/V,GAAQ8V,EAAS3gB,QAAQiB,IAAQ,IAAamH,EAAOnH,GAAO4C,EAAO5C,IAAQ,OAAOmH,EAqNjR,CAA8BqY,EAAa,CAAC,oBAAqB,iBAQlF,OALIe,GAAgC,qBAAX/T,SACvBiT,EAAWc,GAA4C,qBAAvB/T,OAAO+T,GAA8B/T,OAAO+T,QAAc3gB,GAG5F6f,EAAWtF,IAAMyI,GACV,IAAAhX,eAAc6U,EAAkBhB,IAGlCkB,EA/MT,CAgNE,EAAAkC,WAKEC,GAAqB,IAAAC,aAAW,SAAUpN,EAAOwE,GACnD,OAAO,IAAAvO,eAAc+U,EAAmB,EAAS,GAAIhL,EAAO,CAC1DiN,aAAczI,QAOlB,OAJA2I,EAAmBjD,YAAc,qBAAuBa,EAAuB,IAC/EoC,EAAmBlI,UAAY,CAC7BwG,kBAAmB,UAEd,IAAa0B,EAAoBrC,KC5NzC3D,GCnBH,ICsBA,MAJA,SAAeha,GACb,OAAgB,MAATA,G,kECpBT,EAAwB,sBCgBxB,OAXqBigB,EAAAA,EAAAA,aACnB,CAAC,EAAyB5I,KAAG,IAA5B,UAAErK,KAAc6F,GAAOhG,EAAA,OACtBsJ,EAAAA,cAAAA,SAAAA,EAAAA,EAAAA,GAAAA,CACE7L,KAAK,OACL0C,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAc3I,GAC9BqK,IAAKA,GACDxE,OCVV,MAAMqN,EAAuC/J,EAAAA,YAC3C,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,qTACFH,KAAK,KAEPtB,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,mTACFH,KAAK,SAKbyI,EAAqCrI,aAAe,CAClDP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXojB,EAAqCpI,UAAY,CAC/CR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QCpCA,MAAMoI,EAA+BhK,EAAAA,YACnC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,mLACFH,KAAK,KAEPtB,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,wHACFH,KAAK,SAKb0I,EAA6BtI,aAAe,CAC1CP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXqjB,EAA6BrI,UAAY,CACvCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,Q,WCrCA,EAAgC,8BAAhC,EAAmF,mCC8CnF,OAjCsBkI,EAAAA,EAAAA,aACpB,CAAC,EAA6D5I,KAAS,IAAtE,iBAAE+I,EAAF,iBAAoBC,EAApB,UAAsCrT,KAAc6F,GAAOhG,EAC1D,MAAOyT,EAAmBC,IAAwBC,EAAAA,EAAAA,WAAS,GAE3D,OACErK,EAAAA,cAAAA,MAAAA,CAAKnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAsB3I,IACzCmJ,EAAAA,cAACsK,GAAKjI,EAAAA,EAAAA,GAAAA,CACJlO,KAAMgW,EAAoB,OAAS,WACnCjJ,IAAKA,GACDxE,IAENsD,EAAAA,cAAAA,SAAAA,CACEkC,QAASA,IAAMkI,GAAsBG,IAAUA,IAC/C1T,UAAW2I,EACXrL,KAAK,SACLsH,KAAK,SACL,eAAc0O,EACdlO,MAAOkO,EAAoBD,EAAmBD,GAE7CE,EACCnK,EAAAA,cAACwK,EAAyB,MAE1BxK,EAAAA,cAACyK,EAAiC,MAEpCzK,EAAAA,cAAC0K,EAAAA,EAAc,KACZP,EAAoBD,EAAmBD,QCtCpD,GAAgB,MAAQ,kCAAkC,MAAQ,kCAAkC,MAAQ,kCAAkC,UAAY,sCAAsC,QAAU,oCAAoC,MAAQ,mCC+EtP,OArDiCH,EAAAA,EAAAA,aAI/B,CAAC,EAaC5I,KAAG,IAZH,MACEhG,EADF,GAEEhP,EAFF,KAGEiI,EAHF,aAIEwW,EAJF,aAKEC,EALF,mBAMEC,EANF,iBAOEX,EAPF,iBAQED,EARF,MASErE,EAAQ,UACLlJ,GACJhG,EAAA,OAGDsJ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOsL,OACrB9K,EAAAA,cAAAA,QAAAA,CAAO+K,QAAS7e,EAAI2K,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAOtE,MAAOsE,EAAOoG,KACtD1K,GAEO,aAAT/G,EACC6L,EAAAA,cAACgL,GAAa3I,EAAAA,EAAAA,GAAAA,CACZxL,UAAW2I,EAAOyL,UAClB/J,IAAKA,EACLhV,GAAIA,EACJge,iBAAkBA,EAClBD,iBAAkBA,GACdvN,IAGNsD,EAAAA,cAACsK,GAAKjI,EAAAA,EAAAA,GAAAA,CACJxL,UAAW2I,EAAOyL,UAClB/J,IAAKA,EACLhV,GAAIA,EACJiI,KAAMA,GACFuI,IAGPiO,IAAiBC,GAChB5K,EAAAA,cAAAA,IAAAA,CAAGnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAOvW,QAASuW,EAAOoG,KAAU+E,GAErDC,GACC5K,EAAAA,cAAAA,IAAAA,CAAGnJ,UAAW2I,EAAO7T,MAAO,cAAakf,GACtCD,O,oBCtDJ,SAASM,IACd,MAAM,SAAE1X,GAAaD,QACf,SAAER,EAAF,SAAYI,EAAZ,KAAsBC,GAASI,EAErC,MAAQ,GAAET,MAAaI,KAAYC,YCG9B,SAAS+X,IACd,MAAM,SAAE3X,GAAaD,OAIfH,EAAyB,KAAlBI,EAASJ,KAAc,GAAM,QAE1C,MAAQ,GAAEI,EAAST,aAAaS,EAASL,WAAWC,ICQtD,MA5BkB,YAMN,IANO,cACjBgY,EAAmC,qBAAZlc,SACnBA,SAASmc,KAAKC,gBAFD,gBAIjBC,EAAkB,QAJD,QAKjBvf,EAAU,SACXwf,IAAAA,EAAG,GAAEA,EACJ,MAAQznB,QAAS0nB,KAAoBC,GAAgB1f,EAC/CxI,EAAS,CACboB,QAASwmB,EAAgBF,IAA6BC,IACtD3kB,iBAAiB,EACjBd,QAAS,IACT3B,QAAS,CACP,mBAAoB,iBACpB,kBAAmBwnB,KAChBE,MAEFC,GAGCC,ECjCO,WACb,MAAMC,EACJ9Z,SAAS+Z,KAAKC,cAAc,sBAC5Bha,SAAS+Z,KAAKC,cAAc,2BAE9B,OAAOF,EAAcA,EAAYrV,QAAU,KD4BzBwV,GAKlB,OAJIJ,IACFnoB,EAAOO,QAAU,CAAE,eAAgB4nB,KAAcnoB,EAAOO,UAGnDuE,IAAAA,OAAa9E,I,eErCtB,EAA2F,6CCwB3F,MAAMwoB,EAAa,4CAENC,EAAmC,gCA+YhD,MA1W8BvV,IAyBvB,IAzBwB,iBAC7BwV,EAD6B,iBAE7BC,EAF6B,SAG7BC,EAH6B,UAI7BC,EAJ6B,OAK7BC,EAL6B,KAM7BC,EAN6B,YAO7BC,EAP6B,kBAQ7BC,EAR6B,cAS7BC,EAT6B,MAU7B5S,EAV6B,UAW7BjD,EAX6B,MAY7B+O,EAAQ,OAZqB,SAa7B+G,EAb6B,YAc7BC,EAd6B,SAe7BC,GAAW,GAUZnW,EACC,MAAOoW,EAAWC,IAAgB1C,EAAAA,EAAAA,UAAyB,CACzD2C,MAAO,GACP1oB,SAAU,GACV8nB,SAAU,MAELa,EAAkBC,IAAqB7C,EAAAA,EAAAA,UAAwB,OAC/D8C,EAAsBC,IAC3B/C,EAAAA,EAAAA,UAA2C,OACtCgD,EAAcC,IAAmBjD,EAAAA,EAAAA,WAAS,GAE3CkD,GAAaC,EAAAA,EAAAA,QAAyB,MACtCC,GAAgBD,EAAAA,EAAAA,QAAyB,MACzCE,GAAeF,EAAAA,EAAAA,QAAkB,MAEjCG,IAAiBxB,GAAoBU,GAErC,SAAEe,IAAaC,EAAAA,EAAAA,0BACf,EAAEjL,IAAMC,EAAAA,EAAAA,0BACR,UAAEiL,EAAF,YAAaC,IAAgBC,EAAAA,EAAAA,MAE7BC,EAAoBA,CAAC1X,EAA0BrK,KAA3B+hB,CACxB1X,QAAAA,EACA2X,UAAWC,EAAAA,GAAYC,MACvBC,YAAapC,EACbqC,iBAAiB,KACb1B,GAAe,IAAKA,GACxB1gB,GAAAA,IAUIqiB,EAAwBvF,UAC5B,MAAMwF,OARkBxF,UACpB2E,QACYD,GAAce,SAAS1J,iBAAmB,GAEnD,GAIsB2J,GAEvBC,GAAUC,EAAAA,EAAAA,GAAqBC,EAAAA,KAC/B,MAAE7B,EAAF,SAAS1oB,EAAT,SAAmB8nB,GAAaU,EAEhCgC,EAAW,IAAIlZ,SACrBkZ,EAASC,OAAO,wBAAyB,QACzCD,EAASC,OAAO,QAAS/B,GACzB8B,EAASC,OAAO,WAAYzqB,GAC5BwqB,EAASC,OAAO,uBAAwBP,GACxCM,EAASC,OAAO,2BAA4B,MAC5CD,EAASC,OAAO3C,EAAUA,GAC1B0C,EAASC,OAAO,OAAQzS,OAAOiQ,IAC/BuC,EAASC,OAAO,qBAAsBzS,OAAOoQ,IAEzCL,GACFyC,EAASC,OAAO,UAAW,QAExBC,EAAM1C,IACTwC,EAASC,OAAO,UAAWzS,OAAOgQ,IAE/B0C,EAAMxC,IACTsC,EAASC,OAAO,eAAgBzS,OAAOkQ,IAEpCwC,EAAMvC,IACTqC,EAASC,OAAO,sBAAuBzS,OAAOmQ,IAGhD,IACE,MAAMxnB,OC5IkB+jB,OAAAA,IAQc,IARP,SACnC8F,EADmC,IAEnCjqB,EAFmC,SAGnC+oB,GAKDlX,EACC,OAAO,IAAIjT,SAAQ,CAACC,EAASC,KAC3BsrB,EAAU,CACRjjB,QAAS,CACPjI,QAAS,CAAE,eAAgB,0BAG5BmrB,KAAKrqB,EAAKiqB,GACVrnB,MAAMxC,IACLvB,EAAQuB,EAASpB,SAElBsrB,OAAOxjB,IACNiiB,EAASjiB,GACThI,EAAOgI,UDuHcyjB,CAAe,CACpCN,SAAAA,EACAjqB,IAAKqnB,EACL0B,SAAAA,IAGF,GAAI,UAAW3oB,EAGb6oB,EAAUG,EAAkBhpB,EAAS0G,MAAO,yBAC5C2hB,GAAgB,OACX,CACL,MAAM,SAAE+B,EAAF,KAAYC,GAASrqB,EAC3B6U,EAAM,CACJyV,OAAQ,WACRZ,QAAAA,EACAa,WAAY,CACVC,UAAWJ,EACXK,aAAcJ,KAKlB/b,OAAOC,SAASX,KAAOyc,GAEzB,MAAO3jB,GACPiiB,EAASjiB,GAGTmiB,EACEG,EACErL,EAAG,GAAEoJ,mBACL,yBAGJsB,GAAgB,KAedqC,EAAgB3G,UACpB,MAAM,MAAEgE,GAAUF,EAClB,GAAIK,EAGF,OAAOA,EACF,CACL,IAAIyC,GAAe,EACfC,GAAkB,EAClB5mB,EAAU,KAEd,GAAM+jB,GAASA,EAAM1hB,OAAS,EAGvB,GAAKwkB,EAAAA,EAAwB9C,GAIlC,IACE,MAAM+C,OCvLwB/G,OAAAA,GAC/B,IAAIvlB,SAAQ,CAACC,EAASC,KAC3BsrB,IACGe,IAAI,yBAA0B,CAAExqB,OAAQ,CAAEwnB,MAAAA,KAC1CvlB,MAAKwoB,IAAkC,IAAjC,KAAEpsB,GAAyBosB,EAChCvsB,EAAQG,MAETsrB,OAAOxjB,IACNhI,EAAOgI,SD+KuBukB,CAAyBlD,GAChD+C,IACH9mB,EAAU2Z,EAAG,GAAEoJ,iBACf6D,GAAkB,GAEpB,MAAOlkB,GACPiiB,EAASjiB,GACTikB,GAAe,EAGf9B,EACEG,EACErL,EAAG,GAAEoJ,mBACL,wCAjBN/iB,EAAU2Z,EAAG,GAAEoJ,mBACf4D,GAAe,OAJf3mB,EAAU2Z,EAAG,GAAEoJ,oBACf4D,GAAe,EAyBjB,OADAxC,EAAwB,CAAEyC,gBAAAA,EAAiBD,aAAAA,EAAc3mB,QAAAA,IAClD,CAAEA,QAAAA,EAAS2mB,aAAAA,EAAcC,gBAAAA,KAY9BM,EAAmBA,KACvB,MAAM,SAAE7rB,GAAawoB,EAErB,IAAKG,EAAkB,CAErB,IAAImD,GAAkB,EAClBC,EAAwB,KAY5B,OAXM/rB,GAAYA,EAASgH,OAAS,EAGzBhH,EAASgH,OAAS,IAC3B+kB,EAAwBzN,EAAG,GAAEoJ,yBAC7BoE,GAAkB,GACT9rB,EAASgH,OAAS,IAC3B+kB,EAAwBzN,EAAG,GAAEoJ,yBAC7BoE,GAAkB,IAPlBC,EAAwBzN,EAAG,GAAEoJ,uBAC7BoE,GAAkB,GAQpBlD,EAAkBmD,GACXD,EAET,OAAO,GAqDHE,EAAqBC,IACzB,MAAM,OAAEriB,GAAWqiB,GACb,KAAEnjB,GAASc,EAIjB6e,GAAcxC,IACL,IAAKA,EAAM,CAACnd,IAASgf,EAAW,WAAahf,GAAOc,EAAOrE,UAIvD,UAATuD,GAAoB+f,GAAsBlkB,QAC5CmkB,EAAwB,MACfH,GACTC,EAAkB,MAGpBa,EAAY9B,IAGd,OACEjM,EAAAA,cAAAA,OAAAA,CACEnJ,UAAWA,EACX2Z,SA5DyBxH,MAAAA,IAG3BuH,EAAME,iBACNnD,GAAgB,GAEhB,MAAM,aAAEsC,EAAF,gBAAgBQ,EAAhB,gBAAiCP,QAnBpB7G,WACZ,UACK2G,IACVS,gBAAiBD,MAiBXO,GAER5W,EAAM,CACJyV,OAAQ,QACRZ,QAAS,SACTa,WAAY,CACVmB,eAAgBf,EAChBgB,kBAAmBR,EACnBS,kBAAmBhB,KAInBD,IAAiBC,GAAmBO,EACtC7B,KAEAjB,GAAgB,GAEZI,EAAae,SACff,EAAae,QAAQvJ,QAElBkL,GACH3C,GAAegB,SAASqC,QAGrBlB,IAAgBC,GACnBtC,GAAYkB,SAASqC,UA6BvBC,YAAY,GAEZ/Q,EAAAA,cAACgR,EAAiB,CAChB9V,MAAO0H,EAAG,GAAEoJ,iBACZ9f,GAAK,GAAEygB,UACP,UAAQ,QACRvf,KAAK,QACL+G,KAAK,QACL+M,IAAKqM,EACL0D,YAAarO,EAAG,GAAEoJ,uBAClBzG,SAAU+K,EACVY,OAAQvB,EACR/E,aAAcuC,GAAsBlkB,QACpC4hB,mBAAmB,sBACnBsG,aAAa,WACbvL,MAAOA,IAGT5F,EAAAA,cAACgR,EAAiB,CAChB9V,MAAO0H,EAAG,GAAEoJ,oBACZ9f,GAAK,GAAEygB,iBACP,UAAQ,WACRvf,KAAK,WACL+G,KAAK,WACL+M,IAAKuM,EACLwD,YAAarO,EAAG,GAAEoJ,0BAClBzG,SAAU+K,EACVY,OAAQf,EACRxF,aAAc/H,EAAG,GAAEoJ,iCACnBpB,aAAcqC,EACdpC,mBAAmB,yBACnBsG,aAAa,eACblH,iBAAkBrH,EAAG,GAAEoJ,mBACvB9B,iBAAkBtH,EAAG,GAAEoJ,mBACvBpG,MAAOA,IAOT5F,EAAAA,cAAAA,MAAAA,CAAKnE,MAAO,CAAEuV,QAAS,SACrBpR,EAAAA,cAAAA,QAAAA,CAAO+K,QAAU,GAAE4B,KAAYP,KAAaA,GAC5CpM,EAAAA,cAAAA,QAAAA,CACE5S,KAAMgf,EACNlgB,GAAK,GAAEygB,KAAYP,IACnB7G,SAAU+K,KAIb3C,GACC3N,EAAAA,cAAC6D,EAAS,CACR3C,IAAKwM,EACL/H,QAASwG,EACT/K,KAAK,YACLlV,GAAK,GAAEygB,gBAIX3M,EAAAA,cAACoC,EAAAA,EAAM,CACLjO,KAAK,SACLgO,QAAQ,UACRjW,GAAK,GAAEygB,kBACP,UAAQ,sBACR9V,UAAW2I,EACX1E,SAAUuS,GAETA,EAAerN,EAAAA,cAACqR,EAAAA,EAAO,MAAMzO,EAAG,GAAEoJ,iB,6FEna3C,GAAgB,UAAY,8BAA8B,GAAK,uBAAuB,MAAQ,0BAA0B,KAAO,0BCyB/H,MAdyBtV,IAIF,IAJG,KACxB4J,EADwB,MAExBsF,EAAQ,OAFgB,UAGxB/O,GACeH,EACf,OACEsJ,EAAAA,cAAAA,MAAAA,CAAKnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAO8R,UAAWza,IACrCmJ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAO1L,OACvBkM,EAAAA,cAAAA,OAAAA,CAAMnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAO+R,GAAI/R,EAAOoG,KAAUtF,GAClDN,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAO1L,U,8LCnB7B,MAAM0d,EAA8BxR,EAAAA,YAClC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,+IACFH,KAAK,SAKbkQ,EAA4B9P,aAAe,CACzCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEX6qB,EAA4B7P,UAAY,CACtCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,Q,kGCjCA,EAA8B,kCAA9B,EAA4E,gCAA5E,EAA4H,oCAA5H,EAA8K,kCAA9K,EAA8N,kCAA9N,EAAwQ,4BAAxQ,EAAiT,iCAAjT,EAAgW,kCAAhW,EAA8Y,gCAA9Y,EAA+b,qC,WC+B/b,MAAM6P,EAAUzuB,EAAQ,OAclB0uB,EAAe,CAACC,EAAAA,GAAQC,EAAAA,GAAOC,EAAAA,IAiLrC,MA/KoBnb,IAMK,IANJ,UACnBG,EADmB,kBAEnBib,EAFmB,WAGnBC,EAHmB,SAInBC,KACGtV,GACchG,EACjB,MAAQoD,MAAOmY,IAAWC,EAAAA,EAAAA,uBACpB,EAAEtP,IAAMC,EAAAA,EAAAA,0BACR,SAAE+K,IAAaC,EAAAA,EAAAA,0BACbsE,OAAQC,IAAgBC,EAAAA,EAAAA,GAASN,EAAYnE,IAE/C,kBACJ0E,EADI,mBAEJC,EAFI,QAGJpQ,EAHI,WAIJqQ,EAJI,cAKJC,EALI,mBAMJC,EANI,mBAOJC,IACEC,EAAAA,EAAAA,MAME9Y,GAAQ+Y,EAAAA,EAAAA,cACXC,IACCb,EAAO,CACLD,SAAAA,EACAe,KAAM,kBACHD,EACHtD,WAAY,CACVwD,aAAc7Q,KACX2Q,EAAOtD,gBAIhB,CAACyC,EAAQD,EAAU7P,KAerB8Q,EAAAA,EAAAA,YAAU,KACJX,IAEFxY,EAAM,CAAEyV,OAAQ,iBAEsC,SAAlD2D,eAAeC,QAAQC,EAAAA,KAEzBF,eAAeG,QAAQD,EAAAA,GAAuB,WAGjD,CAACd,EAAmBxY,KAIvBmZ,EAAAA,EAAAA,YAAU,KAENX,GACA,CAAC,iBAAkB,gBAAgB/T,SAAS4D,IACf,KAA7BqQ,EAAWrQ,GAAS/U,OAEpBkmB,EAAAA,EAAAA,IACE,6FAGH,CAACd,EAAYF,EAAmBnQ,IAEnC,MAAMoR,GAAYC,EAAAA,EAAAA,UAAQ,IACpBd,IAAuBC,EACjB,mBAAkBnuB,mBAAmBkuB,KAExC,UACN,CAACA,EAAoBC,IAExB,OACE3S,EAAAA,cAACyT,EAAAA,GAAa,KACZzT,EAAAA,cAAC0T,EAAAA,GAAK,CACJC,OAAQrB,EACRsB,UAAWrB,EACX,kBAAgB,uBAChB1b,UAAW2I,GAEXQ,EAAAA,cAAC6T,EAAAA,GAAS,CAAChd,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAkB3I,IAC3CmJ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,GACdQ,EAAAA,cAAC8T,EAAAA,EAAU,CACTjhB,KAAM0gB,EACNpR,QAAQ,OACRtL,UAAW2I,EACX0C,QAASA,IAAMpI,EAAM,CAAEyV,OAAQ,QAASZ,QAAS,WAEhD/L,EAAG,yBAEN5C,EAAAA,cAACoC,EAAAA,EAAM,CACLF,QAASA,KACPpI,EAAM,CAAEyV,OAAQ,QAASZ,QAAS,gBAClC4D,KAEFpe,KAAK,SACLgO,QAAQ,OACRtL,UAAW2I,EACXvD,MAAO2G,EAAG,uBACV,UAAQ,8BAER5C,EAAAA,cAAC0K,EAAAA,EAAc,KAAE9H,EAAG,wBACpB5C,EAAAA,cAAC+T,EAAwB,CAACzS,KAAMH,EAAAA,OAIpCnB,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,GACD,mBAAZ2C,EACCnC,EAAAA,cAACgU,EAAAA,EAAM,CAAClY,IAAK2W,EAAete,KAAK,YAEjC6L,EAAAA,cAAAA,MAAAA,CAAKlE,IAAK2V,EAASlX,IAAI,GAAG2B,MAAM,OAAOlB,OAAO,SAEhDgF,EAAAA,cAAAA,KAAAA,CAAI9T,GAAG,wBACL8T,EAAAA,cAACkD,EAAAA,GAAM,CACL3M,QAASqM,EACN,iBAAgBT,eACjBqQ,EAAWrQ,IAEbgB,QAAQ,KAGZnD,EAAAA,cAAAA,IAAAA,KAAI4C,EAAG,iBAAgBT,gBAGzBnC,EAAAA,cAACiU,EAAAA,GAAc,CAAC5F,YAAapC,EAAAA,IAE7BjM,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,GACbkS,EAAawC,KAAKC,GACjBnU,EAAAA,cAACoU,EAAAA,EAAiB,CAChBjS,QAASgS,EACTjS,QAASA,IAtGrBiS,CAAAA,IAEAra,EAAM,CAAEyV,OAAQ,QAASZ,QAAU,GAAEwF,aAEjCA,IAAWvC,EAAAA,GACbQ,IAEA7e,OAAOC,SAAS6P,OAAOyO,EAAkBqC,KA+FhBE,CAAsBF,GACrC,cAAc,GAAEA,aAChBptB,IAAKotB,GAEJvR,EAAG,6BAA4BuR,aAKtCnU,EAAAA,cAACsU,EAAAA,EAAS,CACRhU,KAAMsC,EAAG,uCACTgD,MAAM,QACN/O,UAAW2I,IAGbQ,EAAAA,cAACuU,EAAAA,GAAqBlS,EAAAA,EAAAA,GAAAA,CACpB6J,iBAAkB4F,EAAkB9E,MACpClT,MAAOA,EACP6S,SAAS,gBACT/G,MAAM,QACNgH,YAAa,CAAE/V,UAAW2I,EAAcgV,gBAAiB,WACrD9X,IAGNsD,EAAAA,cAACyU,EAAAA,EAAc,CAAC5d,UAAW2I,S,iIChKrC,MAAMkV,GAAqBC,EAAAA,EAAAA,oBACzBhuB,GAEF+tB,EAAmB9N,YAAc,qBAE1B,MAAMgM,EAAwBA,KACnC,MAAM1qB,GAAU0sB,EAAAA,EAAAA,YAAWF,GAG3B,IAAKxsB,EACH,MAAM,IAAIwE,MACR,6EAIJ,OAAOxE,GAGI2sB,EAA+B,2BAmC/BC,EAA6Bpe,IAQF,IARG,SACzCK,EADyC,4BAEzCge,EAA8B,GAFW,cAGzCtC,EAAgB,GAHyB,aAIzCuC,EAAe,GACftC,mBAAoBuC,EALqB,mBAMzCtC,GAAqB,EANoB,UAOzCiB,EAAYA,UACoBld,EAChC,MAAO4b,EAAmB4C,IAAwB7K,EAAAA,EAAAA,WAAS,IACpDqI,EAAoByC,IAAyB9K,EAAAA,EAAAA,UAClD4K,QAAuBtuB,IAElBwb,EAASiT,IAAc/K,EAAAA,EAAAA,UAA8B,WAEtDgL,GAAqBxC,EAAAA,EAAAA,cACxByC,IACCC,EAAAA,EAAAA,IACED,EACA,IAAIE,IAAIjiB,QAAQC,UAAUX,MAAMG,OAEpC,IAGIyiB,GAA+B5C,EAAAA,EAAAA,cAClCyC,KACKI,EAAAA,EAAAA,QACEL,EAAmBC,IACrBpC,eAAeG,QAAQwB,EAA8BS,IACrDhC,EAAAA,EAAAA,IAAQ,sCAAqCgC,OAE7ChC,EAAAA,EAAAA,IAAQ,UAASgC,mCAIvB,CAACD,KAMHpC,EAAAA,EAAAA,YAAU,KACR,IAAKN,EAAoB,CACvB,MAAM2C,EACJ5C,GAAsB2C,EAAmB3C,GACrCA,EACAnf,QAAQC,UAAUX,KACxB4iB,EAA6BH,GAC7BH,EAAsBG,MAIvB,IAEH,MAAMK,GAAkB9C,EAAAA,EAAAA,cACrB+C,IACCV,GAAqB,GACrBE,EAAWQ,GAGPlnB,OAAOC,KAAKqmB,GAAczW,SAASqX,IACrCH,EAA6BT,EAAaY,MAG9C,CAACZ,EAAcS,IAGXlD,GAAqBM,EAAAA,EAAAA,cAAY,KACrCe,IACAsB,GAAqB,GAGjBxmB,OAAOC,KAAKqmB,GAAczW,SAAS4D,KACjCwQ,EACFO,eAAe2C,WAAWhB,GAE1BY,EAA6B/C,MAGhC,CACDA,EACAkB,EACAoB,EACAS,EACA9C,EACAxQ,IAGI2T,GAAgBtC,EAAAA,EAAAA,UACpB,MACEmC,gBAAAA,EACApD,mBAAAA,EACAD,kBAAAA,EACAnQ,QAAAA,EACAqQ,WAAY,CACVuD,QAAS,GACTC,qBAAsB,GACtBC,eAAgB,CAAE7oB,KAAM2nB,GACxBmB,eAAgB,GAChBC,cAAe,GACfC,cAAe,GACfC,iBAAkB,GAClBC,aAAc,CAAElpB,KAAM2nB,GACtBwB,YAAa,GACbC,kBAAmB,IAErB/D,cAAAA,EACAC,mBAAAA,EACAC,mBAAAA,KAEF,CACEgD,EACApD,EACAD,EACAnQ,EACA4S,EACAtC,EACAC,EACAC,IAIJ,OACE3S,EAAAA,cAAC0U,EAAmB+B,SAAQ,CAAC5sB,MAAOisB,GACjC/e,K,oKCxOA,MAAM6a,EAAQ,QACR/C,EAAQ,QACRgD,EAAW,WACXF,EAAS,SAGTyB,EAAwB,yB,kFCC9B,MAAMxE,EAAwBuF,IACnC,OAAQA,GACN,KAAKtC,EAAAA,GACH,MAAO,kBACT,KAAKD,EAAAA,GACH,MAAO,eACT,KAAK/C,EAAAA,GACH,MAAO,eACT,KAAK8C,EAAAA,GACH,MAAO,gBACT,QACE,MAAO,Y,kFCCb,MAXA,SAAkB+E,EAAOC,GAKvB,IAJA,IAAI/Y,GAAS,EACTtS,EAAkB,MAATorB,EAAgB,EAAIA,EAAMprB,OACnC+J,EAASlK,MAAMG,KAEVsS,EAAQtS,GACf+J,EAAOuI,GAAS+Y,EAASD,EAAM9Y,GAAQA,EAAO8Y,GAEhD,OAAOrhB,G,iCCWT,MALA,SAAkBxL,GAChB,MAAuB,iBAATA,IACX+sB,EAAAA,EAAAA,GAAa/sB,IArBF,oBAqBYgtB,EAAAA,EAAAA,GAAWhtB,IChBnCitB,EAAcC,EAAAA,EAASA,EAAAA,EAAO3uB,eAAYzB,EAC1CqwB,EAAiBF,EAAcA,EAAY3tB,cAAWxC,EA0B1D,MAhBA,SAASswB,EAAaptB,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAIuE,EAAAA,EAAAA,GAAQvE,GAEV,OAAOqtB,EAASrtB,EAAOotB,GAAgB,GAEzC,GAAIE,EAASttB,GACX,OAAOmtB,EAAiBA,EAAenqB,KAAKhD,GAAS,GAEvD,IAAIwL,EAAUxL,EAAQ,GACtB,MAAkB,KAAVwL,GAAkB,EAAIxL,IA3BjB,SA2BwC,KAAOwL,GCN9D,MAJA,SAAkBxL,GAChB,OAAgB,MAATA,EAAgB,GAAKotB,EAAaptB,ICI3C,MAPA,WACE,IAAI6G,EAAOvG,UACPqT,EAASrU,EAASuH,EAAK,IAE3B,OAAOA,EAAKpF,OAAS,EAAIkS,EAASA,EAAO3R,QAAQ6E,EAAK,GAAIA,EAAK,K,WCHjE,MAiBM0mB,EAAoBnH,IAMnB,IANoB,SACzBrC,EADyB,OAEzByJ,EAAS,SAIVpH,EACC,IAAK1c,OAAO+jB,QAAS,CACnB,MAAMxO,EAASvV,OAAOzB,SAASa,cAAc,UACvC4kB,EAAkB1rB,EAAQwrB,EAAQ,IAAK,KAC7CvO,EAAOhN,IAAO,kEAAiEyb,oBAC/EzO,EAAOE,OAAQ,EA5BQtS,CAAAA,IAQpB,IARqB,OAC1BoS,EAD0B,KAE1B1b,EAF0B,SAG1BwgB,GAKDlX,EACK5E,SAASga,cAAc,QACzBha,SAASga,cAAc,SAAS3F,YAAY2C,GAG5C8E,EADU,IAAIlhB,MAAO,oBAAmBU,cAiBxCoqB,CAAmB,CAAE1O,OAAAA,EAAQ1b,KAAM,QAASwgB,SAAAA,MAQnCyE,EAAWA,CAACzK,EAAegG,MACtCqF,EAAAA,EAAAA,YAAU,KACRmE,EAAkB,CAAExJ,SAAAA,MACnB,CAACA,IAeJ,MAAO,CAAEuE,OAbMA,KACR5e,OAAO+jB,QAAQG,aAClBlkB,OAAO+jB,QAAQlzB,KAAKszB,KAAK,CACvBC,SAAU,yBACVC,MAAO,aACPC,YAAa,sCACbjQ,MAAAA,IAEFrU,OAAO+jB,QAAQG,YAAa,GAE9BlkB,OAAO+jB,QAAQlzB,KAAK0zB,a,kFClDjB,MAAMC,EACXC,IAEA,MAAMC,GAAazK,EAAAA,EAAAA,SAAO,IACnB5F,EAAOM,IAAYmC,EAAAA,EAAAA,UAAS2N,IAEnC/E,EAAAA,EAAAA,YAAU,KACRgF,EAAWxJ,SAAU,EACd,KACLwJ,EAAWxJ,SAAU,KAEtB,IAQH,MAAO,CAAC7G,GANaiL,EAAAA,EAAAA,cAClBniB,GACCunB,EAAWxJ,QAAUvG,EAASxX,GAAQ,QACxC,O,0LCtCJ,MAAMwnB,EAA0ClY,EAAAA,YAC9C,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEwB,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLI,KAAMH,EACNjF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEiC,SAAS,UACTR,EAAE,+PAKVyW,EAAwCxW,aAAe,CACrDP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXuxB,EAAwCvW,UAAY,CAClDR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAMuW,EAAgCnY,EAAAA,YACpC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,0HACFH,KAAK,SAKb6W,EAA8BzW,aAAe,CAC3CP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXwxB,EAA8BxW,UAAY,CACxCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAMwW,EAAwCpY,EAAAA,YAC5C,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,qEACFH,KAAK,SAKb8W,EAAsC1W,aAAe,CACnDP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXyxB,EAAsCzW,UAAY,CAChDR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAMyW,EAAuCrY,EAAAA,YAC3C,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,gIACFH,KAAK,KAEPtB,EAAAA,cAAAA,OAAAA,CAAMyB,EAAE,mDAAmDH,KAAK,SAItE+W,EAAqC3W,aAAe,CAClDP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEX0xB,EAAqC1W,UAAY,CAC/CR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QCjCA,MAAM4P,EAA8BxR,EAAAA,YAClC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,+IACFH,KAAK,SAKbkQ,EAA4B9P,aAAe,CACzCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEX6qB,EAA4B7P,UAAY,CACtCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QCtBO,MAAM0W,EAAcA,CAACtkB,EAAoBukB,KAC9C,MAAMC,GAAgBhL,EAAAA,EAAAA,QAAwB,OAG9CyF,EAAAA,EAAAA,YAAU,KACRuF,EAAc/J,QAAUza,IACvB,CAACA,KAGJif,EAAAA,EAAAA,YAAU,KAGR,IAAMsF,GAAmB,IAAVA,GAAgBA,EAAQ,EACrC,OAGF,MAAMrsB,EAAKusB,aAAY,IAAMD,EAAc/J,aAAa8J,GAExD,MAAO,IAAMG,cAAcxsB,KAC1B,CAACqsB,KAGN,I,iCCjCA,GAAgB,MAAQ,sBAAsB,WAAa,2BAA2B,SAAW,yBAAyB,YAAc,4BAA4B,WAAa,2BAA2B,cAAgB,8BAA8B,WAAa,2BAA2B,cAAgB,8BAA8B,QAAU,wBAAwB,WAAa,2BAA2B,aAAe,6BAA6B,UAAY,0BAA0B,YAAc,4BAA4B,WAAa,2BAA2B,cAAgB,8BAA8B,qBAAuB,qCAAqC,OAAS,uBAAuB,eAAiB,+BAA+B,UAAY,0BAA0B,OAAS,uBAAuB,QAAU,wBAAwB,aAAe,6BAA6B,QAAU,yBCc/4B,MAAMpK,EAAc,CACzBC,MAAO,QACPuK,QAAS,UACTC,QAAS,UACTC,KAAM,QAgBFC,EAAc,IA6DdC,EAAa,CACjBC,OAAOC,EAAAA,EAAAA,MAAW,GAAK,SACvBC,MAAMD,EAAAA,EAAAA,MAAW,GAAK,WAgHxB,MAhGqBhJ,IAYF,IAZG,SACpBlZ,EADoB,UAEpBF,EAFoB,UAGpBqX,EAAYC,EAAYC,MAHJ,YAIpB+K,GAAc,EAJM,iBAKpBC,EAAmBN,EALC,gBAMpBtE,EAAkB,OANE,gBAOpBlG,GAAkB,EAPE,SAQpB+K,GAAW,EARS,SASpBC,EAAW,GATS,QAUpBC,EAAUA,YACPvtB,GACQikB,EACX,MAAM,cAAEuJ,EAAF,YAAiBC,EAAjB,WAA8BC,EAA9B,YAA0CC,GA1F1BjjB,CAAAA,IAAAA,IAAC,KACvBvC,EADuB,SAEvBmlB,GAID5iB,EAAA,MAME,CACC,CAACyX,EAAYC,OAAQ,CACnBoL,cACExZ,EAAAA,cAAC4Z,EAAS,CACR,eAAa,EACb,cAAY,aACZxY,KAAMkY,IAGVG,YAAatL,EAAYC,MACzBsL,WAAY,WACZC,YAAa,eAEf,CAACxL,EAAYwK,SAAU,CACrBa,cACExZ,EAAAA,cAAC6Z,EAAW,CACV,eAAa,EACb,cAAY,eACZzY,KAAMkY,IAGVG,YAAatL,EAAYwK,QACzBe,WAAY,aACZC,YAAa,iBAEf,CAACxL,EAAYyK,SAAU,CACrBY,cACExZ,EAAAA,cAAC8Z,EAAW,CACV,eAAa,EACb,cAAY,eACZ1Y,KAAMkY,IAGVG,YAAatL,EAAYyK,QACzBc,WAAY,aACZC,YAAa,iBAEf,CAACxL,EAAY0K,MAAO,CAClBW,cACExZ,EAAAA,cAAC+Z,EAAQ,CAAC,eAAa,EAAM,cAAY,YAAY3Y,KAAMkY,IAE7DG,YAAatL,EAAY0K,KACzBa,WAAY,UACZC,YAAa,eAEfxlB,IAkCA6lB,CAAgB,CAAE7lB,KAAM+Z,EAAWoL,SAAAA,KAC9BW,EAAWC,IAAgB7P,EAAAA,EAAAA,UAAS0O,EAAWC,OAEhDmB,EAAgBnR,UACpBkR,EAAanB,EAAWG,QAEvBD,EAAAA,EAAAA,aAAmB,IAAIx1B,SAASC,GAAYqC,WAAWrC,EAAS,KACjE61B,KAUF,OAPAjB,GACE,KACE6B,MAEFhB,EAAcC,EAAmB,MAIjCpZ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEnJ,WAAWyL,EAAAA,EAAAA,GACT,eACA9C,EAAO4a,MACP5a,EAAOka,GACP7iB,EACA,CACE,CAAC2I,EAAO6a,QAAmBJ,IAAclB,EAAWC,MACpD,CAACxZ,EAAO8a,SAAoBL,IAAclB,EAAWG,OAGzD,cAAc,SAAQltB,EAAQE,KAC9BuP,KAAK,QACL,YAAU,UACNzP,GAEJgU,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAO+a,aAEnBlB,GACArZ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOga,eAAgBA,GAIzCxZ,EAAAA,cAAAA,MAAAA,CACEnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAOgb,aAAc,CACnC,CAAChb,EAAOib,WAA0C,SAApBjG,EAC9B,CAAChV,EAAOkb,aAA4C,WAApBlG,EAChC,CAAChV,EAAOmb,YAA2C,UAApBnG,KAGjCxU,EAAAA,cAAC0K,EAAAA,EAAc,KAAE+O,EAAY,MAC7BzZ,EAAAA,cAAAA,MAAAA,KAAMjJ,KAINuX,GACAtO,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOob,sBACrB5a,EAAAA,cAAAA,SAAAA,CACEkC,QAASiY,EACT,aAAW,cACXtjB,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAO1H,OAAQ0H,EAAOma,KAEtC3Z,EAAAA,cAAC6a,EAAU,CAAC,eAAa,OAOhC1B,GACCnZ,EAAAA,cAAAA,MAAAA,CACEnJ,UAAW2I,EAAOsb,eAClB,aAAW,SAEXjf,MAAO,CAAE,aAAcud,GACvB,cAAY,sBAEZpZ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOka,QC3L1B,MAAMqB,EAAW,YAEoB,IAFhB,cAC1BC,EAAgB,SACAxP,IAAAA,EAAG,GAAEA,EACrB,MAAOyP,EAAO/S,IAAYmC,EAAAA,EAAAA,UAAc2Q,GAKlCE,GAAUrI,EAAAA,EAAAA,cAAY,WAAoB,IAAD,uBAAfsI,EAAK,aAAAC,EAAAA,EAAAA,EAAAA,EAAAA,IAALD,EAAK,GAAAhxB,UAAAA,GACnC+d,GAAUuG,GAAY,IAAIA,KAAY0M,OACrC,IAKGE,GAAUxI,EAAAA,EAAAA,cAAY,KAE1B3K,GAAUuG,GAAYA,EAAQpgB,MAAM,OACnC,IAOGitB,GAAczI,EAAAA,EAAAA,cACjB1mB,GAA8B+b,GAAUuG,GAAYtiB,EAAG,IAAIsiB,OAC5D,IAMI8M,GAAa1I,EAAAA,EAAAA,cAAY,IAAM3K,GAAS,IAAM,MAAK,IAKnDsT,GAAO3I,EAAAA,EAAAA,cAAY,KACvB,GAAIoI,EAAM3vB,OAAS,EACjB,OAAO2vB,EAAM,KAId,CAACA,IAEJ,MAAO,CACLA,MAAAA,EACA3vB,OAAQ2vB,EAAM3vB,OACd4vB,QAAAA,EACAG,QAAAA,EACAC,YAAAA,EACAC,WAAAA,EACAC,KAAAA,IAIJ,I,WCxCA,MAAMC,GAAe9G,EAAAA,EAAAA,oBAAsChuB,GAC3D80B,EAAa7U,YAAc,eAEpB,MAAMoH,EAAkBA,KAC7B,MAAM9lB,GAAU0sB,EAAAA,EAAAA,YAAW6G,GAG3B,IAAKvzB,EACH,MAAM,IAAIwE,MAAO,yDAGnB,OAAOxE,GAOIurB,EAAgB/c,IAAuC,IAAtC,SAAEK,GAA8BL,EAC5D,MAAM,MAAEukB,EAAF,YAASK,EAAT,WAAsBC,GAAeR,EAAsB,CAC/DC,cAAe,KAsBXlN,GAAY+E,EAAAA,EAAAA,cACfjG,IACC,MAAM1gB,EAAK0gB,EAAY1gB,KAAMwvB,EAAAA,EAAAA,MACvBrN,EAAczB,EAAYyB,aAAe,OAgB/C,OAdAiN,GAAaK,GAET/O,GAAa1gB,IACbyvB,EAAOC,MAAMxB,GAAUA,EAAMluB,KAAO0gB,EAAY1gB,KAKzCyvB,EAGF,IAAIA,EAAQ,IAAK/O,EAAa1gB,GAAAA,EAAImiB,YAAAA,MAGnC,GAAEniB,MAEZ,CAACovB,IAUGO,GAAYhJ,EAAAA,EAAAA,cACf3mB,GACCovB,GAAaK,GACXA,EAAO/sB,QAAQwrB,GACTA,EAAMluB,KAAOA,IAEfkuB,GAAOb,aACA,QAMf,CAAC+B,IAYGvN,GAAc8E,EAAAA,EAAAA,cACjBxE,GAEKA,EACKiN,GAAaK,GAClBA,EAAO/sB,QAAQwrB,GACTA,EAAM/L,cAAgBA,IAExB+L,GAAOb,aACA,OAQRgC,KAET,CAACD,EAAaC,IAGVzF,GAAgBtC,EAAAA,EAAAA,UACpB,MACEmI,OAAQV,EACRnN,UAAAA,EACA+N,UAAAA,EACA9N,YAAAA,KAEF,CAACkN,EAAOnN,EAAW+N,EAAW9N,IAGhC,OACE/N,EAAAA,cAACyb,EAAahF,SAAQ,CAAC5sB,MAAOisB,GAC3B/e,ICpKP,MAA8C,oDAA9C,EAAuH,2CCIvH,MAAM+kB,EAAgCA,CACpCC,EACAC,IACI,WAAUD,QAAuBC,WAS1B/H,EAAiBvd,IAKF,IALG,YAC7B2X,EAAc,OADe,MAE7B4N,EAF6B,wBAG7BC,GAA0B,EAHG,uBAI7BC,EAAyBL,GACLplB,EACpB,MAAM,OAAEilB,EAAF,UAAUE,GAAc7N,IAQxBoO,EAAcA,CAACC,EAAYze,KAAmBqe,GAASre,EAAQqe,EAC/DK,EAAmBlC,GACvBA,GAAO/L,cAAgBA,EAEnB2N,EAAcL,EAAO/sB,OAAO0tB,GAAiBhxB,OAC7CywB,EAAmBJ,EACtB/sB,OAAO0tB,GACP1tB,OAAOwtB,GAAa9wB,OAEvB,OACE0U,EAAAA,cAAAA,EAAAA,SAAAA,KACG2b,EACE/sB,OAAO0tB,GACP1tB,OAAOwtB,GACPlI,KACCjE,IAAAA,IAAC,UACC/B,EADD,GAEChiB,EAFD,QAGCqK,EACA8X,YAAakO,KACVC,GACJvM,EAAA,OACCjQ,EAAAA,cAACyc,GAAKpa,EAAAA,EAAAA,GAAAA,CACJ6L,UAAWA,EACXnnB,IAAKmF,EACLA,GAAIA,GACAswB,EAAI,CACRjD,QAASA,IAjCErtB,CAAAA,IACjBA,GACF2vB,EAAU3vB,IA+BaiuB,CAAcjuB,KAE5BqK,MAIR2lB,GAA2BF,EAAcD,GACxC/b,EAAAA,cAAAA,MAAAA,CACEnJ,UAAW2I,EACX,cAAY,cAEZQ,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,GACb2c,EAAuBJ,EAAkBC,Q,4HCpEtD,MAAMU,EAAwC1c,EAAAA,YAC5C,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEsB,KAAMH,EACNK,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLhF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,OAAAA,CACEyB,EAAE,4NACFH,KAAK,SAKbob,EAAsChb,aAAe,CACnDP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEX+1B,EAAsC/a,UAAY,CAChDR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QChCA,MAAM+a,EAAoC3c,EAAAA,YACxC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEwB,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLI,KAAMH,EACNjF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,IAAAA,CAAGsB,KAAK,OAAOW,SAAS,WACtBjC,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,kKAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,gKAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,qJAMZkb,EAAkCjb,aAAe,CAC/CP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXg2B,EAAkChb,UAAY,CAC5CR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QC1CA,MAAMgb,EAAiC5c,EAAAA,YACrC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEwB,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLI,KAAMH,EACNjF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,IAAAA,CAAGsB,KAAK,OAAOW,SAAS,WACtBjC,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,kKAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,gGAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,qGAMZmb,EAA+Blb,aAAe,CAC5CP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXi2B,EAA+Bjb,UAAY,CACzCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QC1CA,MAAMib,EAA8B7c,EAAAA,YAClC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEwB,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLI,KAAMH,EACNjF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,IAAAA,CAAGsB,KAAK,OAAOW,SAAS,WACtBjC,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,kKAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,uIAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,mJAMZob,EAA4Bnb,aAAe,CACzCP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXk2B,EAA4Blb,UAAY,CACtCR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,QC1CA,MAAMkb,EAAmC9c,EAAAA,YACvC,CAAC,EAA2CkB,KAAG,IAA9C,MAAEC,EAAF,KAASC,EAAT,MAAenF,EAAf,QAAsBoF,KAAY3E,GAAOhG,EAAA,OACxCsJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEwB,MAAM,6BACND,QAAQ,YACRL,IAAKA,EACLI,KAAMH,EACNjF,MAAOkF,EACPpG,OAAQoG,EACR,kBAAiBC,GACb3E,GAEHT,EAAQ+D,EAAAA,cAAAA,QAAAA,CAAO9T,GAAImV,GAAUpF,GAAiB,KAC/C+D,EAAAA,cAAAA,IAAAA,CAAGsB,KAAK,OAAOW,SAAS,WACtBjC,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,wZAEJzB,EAAAA,cAAAA,OAAAA,CACEsB,KAAK,UACLG,EAAE,siBAMZqb,EAAiCpb,aAAe,CAC9CP,MAAO,eACPC,KAAM,GACNnF,WAAOtV,EACP0a,aAAS1a,GAEXm2B,EAAiCnb,UAAY,CAC3CR,MAAOS,IAAAA,OACPR,KAAMQ,IAAAA,OACN3F,MAAO2F,IAAAA,OACPP,QAASO,IAAAA,QAEX,Q,WCvCA,GAAgB,OAAS,wBAAwB,WAAa,4BAA4B,MAAQ,uBAAuB,QAAU,yBAAyB,OAAS,wBAAwB,MAAQ,uBAAuB,MAAQ,uBAAuB,OAAS,wBAAwB,KAAO,sBAAsB,QAAU,0BCiBnU,MAAMmb,EAAMrmB,IAAqD,IAApD,IAAEoF,EAAF,IAAOvB,EAAP,MAAY0B,EAAZ,SAAmBsG,EAAW,MAAgB7L,EACzD,MAAOK,EAAUimB,IAAejF,EAAAA,EAAAA,GAC9B/X,EAAAA,cAAAA,MAAAA,CAAKlE,IAAKA,EAAKvB,IAAKA,EAAK0B,MAAOA,KAiBlC,OAdAgX,EAAAA,EAAAA,YAAU,KACR,IAAIgK,EAAiC,IAAIC,MAQzC,OAPAD,EAAM7T,OAAS,KACb4T,EAAYhd,EAAAA,cAAAA,MAAAA,CAAKlE,IAAKA,EAAKvB,IAAKA,EAAK0B,MAAOA,MAE9CghB,EAAMh3B,QAAU,KACd+2B,EAAYza,IAEd0a,EAAMnhB,IAAMA,EACL,KACLmhB,EAAQ,QAET,CAACnhB,EAAKvB,EAAK0B,EAAOsG,IAEdvC,EAAAA,cAAAA,EAAAA,SAAAA,KAAGjJ,IAsHZ,MA1DekZ,IAUK,IAVJ,KACd7iB,EAAO,GADO,IAEdmN,EAAM,GAFQ,MAGd0B,EAHc,KAId9H,EAJc,IAKd2H,EALc,KAMdsF,EANc,MAOd4E,EAPc,UAQdnP,KACGsmB,GACSlN,EACZ,MAAMmN,GAAa9a,EAAAA,EAAAA,GAAK,CACtB9C,EAAO6d,OACP7d,EAAOrL,GACP0C,EACAuK,GAAQ5B,EAAO4B,KAUXrK,EACJiJ,EAAAA,cAAAA,EAAAA,SAAAA,KACGgG,GAAShG,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOwG,OApFvC,SAAkBA,GAChB,OAAQA,GACN,IAAK,aAOL,IAAK,MACH,OAAOhG,EAAAA,cAACsd,EAAQ,MANlB,IAAK,WACH,OAAOtd,EAAAA,cAACud,EAAa,MACvB,IAAK,aACL,IAAK,UACH,OAAOvd,EAAAA,cAACwd,EAAe,MAGzB,IAAK,WACH,OAAOxd,EAAAA,cAACyd,EAAa,MACvB,QACE,OAAO,MAsEkCC,CAAS1X,IAClDhG,EAAAA,cAAAA,MAAAA,CAAKnJ,UAAW2I,EAAOme,YACrB3d,EAAAA,cAAC+c,EAAG,CACFjhB,IAAKA,EACLvB,IAAKA,EACL0B,MAAOA,GAAS7O,EAChBmV,SAAmB,YAATpO,EAAqB6L,EAAAA,cAAC4d,EAAc,MAAM,SAM5D,MA/CA,SA+CYT,EAERnd,EAAAA,cAAAA,KAAAA,EAAAA,EAAAA,GAAAA,CAAGnJ,UAAWumB,EAAY,cAAY,kBAAqBD,GACxDpmB,GAMLiJ,EAAAA,cAAAA,OAAAA,EAAAA,EAAAA,GAAAA,CACEnJ,UAAWumB,EACX,cAAY,kBACPD,GAEJpmB,K,6FCrJP,EAA0B,0BAA1B,EAA8D,0BCsB9D,MAZgBL,IAAAA,IAAC,UAAEG,EAAF,MAAasK,EAAQ,UAArB,KAAgCC,EAAO,IAAkB1K,EAAA,OACxEsJ,EAAAA,cAAAA,OAAAA,CAAMnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAgB3I,IACpCmJ,EAAAA,cAAAA,OAAAA,CACEnJ,WAAWyL,EAAAA,EAAAA,GAAK9C,EAAgB2B,GAChCtF,MAAO,CACLK,MAAQ,GAAEkF,MACVpG,OAAS,GAAEoG,Y,6FCSnB,OArBuB0I,EAAAA,EAAAA,aACrB,CAAC,EAAqB5I,KAAS,IAA9B,MAAErF,KAAUa,GAAOhG,EAClB,OACEsJ,EAAAA,cAAAA,QAAAA,EAAAA,EAAAA,GAAAA,CACEkB,IAAKA,EACLrF,MAAO,CACLgiB,KAAM,gBACNC,SAAU,aACV9iB,OAAQ,MACR+iB,SAAU,SACVC,SAAU,WACVC,WAAY,SACZ/hB,MAAO,SACJL,IAEDa,Q,iCClBZ,IAAIwhB,EAAS,iIAKbp7B,EAAQ,EAAW,SAASkqB,GAE3B,IAAKA,EACJ,OAAO,EAER,GAAGA,EAAM1hB,OAAO,IACf,OAAO,EAGR,IADY4yB,EAAO9rB,KAAK4a,GAEvB,OAAO,EAGR,IAAIlc,EAAQkc,EAAMnZ,MAAM,KACxB,QAAG/C,EAAM,GAAGxF,OAAO,MAGDwF,EAAM,GAAG+C,MAAM,KAClB+nB,MAAK,SAASuC,GAAQ,OAAOA,EAAK7yB,OAAO,Q","sources":["webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/index.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/adapters/xhr.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/axios.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/cancel/Cancel.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/cancel/CancelToken.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/cancel/isCancel.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/Axios.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/InterceptorManager.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/buildFullPath.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/createError.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/dispatchRequest.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/enhanceError.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/mergeConfig.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/settle.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/core/transformData.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/defaults.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/bind.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/buildURL.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/combineURLs.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/cookies.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/isAxiosError.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/parseHeaders.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/spread.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/helpers/validator.js","webpack://StravaModern/./node_modules/@strava/api/node_modules/axios/lib/utils.js","webpack://StravaModern/../src/Element.tsx","webpack://StravaModern/../src/Filter.ts","webpack://StravaModern/../src/constants.ts","webpack://StravaModern/../src/StyleFilter.ts","webpack://StravaModern/../src/Parser.ts","webpack://StravaModern/../src/Interweave.tsx","webpack://StravaModern/../src/Markup.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/AccountAuthButton/AccountAuthButton.module.scss?771e","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/@strava/icons/dist/LogosAppleSmall.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/@strava/icons/dist/LogosFacebookSmall.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/@strava/icons/dist/LogosGoogleSmall.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/@strava/icons/dist/ActionsEmailNormalSmall.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/AccountAuthButton/AccountAuthButton.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/DisclaimerText/DisclaimerText.module.scss?86ce","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/DisclaimerText/DisclaimerText.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://StravaModern/./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/react-google-recaptcha/lib/esm/index.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/lodash-es/isNil.js","webpack://StravaModern/./node_modules/@strava/ui/Input/Input.module.scss?50e4","webpack://StravaModern/./node_modules/@strava/ui/Input/Input.tsx","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsVisibleDisabledNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsVisibleNormalSmall.js","webpack://StravaModern/./node_modules/@strava/ui/Input/PasswordInput.module.scss?7172","webpack://StravaModern/./node_modules/@strava/ui/Input/PasswordInput.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/RegistrationInput/RegistrationInput.module.scss?70f3","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/RegistrationInput/RegistrationInput.tsx","webpack://StravaModern/./node_modules/@strava/api/lib/base-url-staging.js","webpack://StravaModern/./node_modules/@strava/api/lib/base-url.js","webpack://StravaModern/./node_modules/@strava/api/lib/axios-client.ts","webpack://StravaModern/./node_modules/@strava/api/lib/csrf.ts","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/EmailRegistrationForm.module.scss?ddf9","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/EmailRegistrationForm.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/EmailRegistrationForm/email-registration-api.ts","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/OrDivider/OrDivider.module.scss?37b1","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/OrDivider/OrDivider.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/node_modules/@strava/icons/dist/ActionsCancelNormalSmall.js","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/SignUpModal/SignUpModal.module.scss?c847","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/SignUpModal/SignUpModal.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/SignUpModal/SignUpModalContext/SignUpModalContext.tsx","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/constants.ts","webpack://StravaModern/./node_modules/@strava/authentication-ui/src/utils.ts","webpack://StravaModern/./node_modules/@strava/react-hooks/node_modules/lodash-es/_arrayMap.js","webpack://StravaModern/./node_modules/@strava/react-hooks/node_modules/lodash-es/isSymbol.js","webpack://StravaModern/./node_modules/@strava/react-hooks/node_modules/lodash-es/_baseToString.js","webpack://StravaModern/./node_modules/@strava/react-hooks/node_modules/lodash-es/toString.js","webpack://StravaModern/./node_modules/@strava/react-hooks/node_modules/lodash-es/replace.js","webpack://StravaModern/./node_modules/@strava/react-hooks/src/use-apple/useApple.hook.ts","webpack://StravaModern/./node_modules/@strava/react-hooks/src/use-safe-state/useSafeState.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelCircleHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCheckCircleOnMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationWarningHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationInformationNormalMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/ActionsCancelNormalSmall.js","webpack://StravaModern/./node_modules/@strava/react-hooks/src/use-interval/useInterval.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.module.scss?7e0f","webpack://StravaModern/./node_modules/@strava/ui/Alert/Alert.tsx","webpack://StravaModern/./node_modules/@strava/react-hooks/src/use-queue/useQueue.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContext.tsx","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContainer.module.scss?1a42","webpack://StravaModern/./node_modules/@strava/ui/Alert/AlertProvider/AlertContainer.tsx","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationProfileHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorSuperuserSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorSummitSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorProSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorVerifiedSmall.js","webpack://StravaModern/./node_modules/@strava/ui/Avatar/Avatar.module.scss?3ebc","webpack://StravaModern/./node_modules/@strava/ui/Avatar/Avatar.tsx","webpack://StravaModern/./node_modules/@strava/ui/Spinner/Spinner.module.scss?87e9","webpack://StravaModern/./node_modules/@strava/ui/Spinner/Spinner.tsx","webpack://StravaModern/./node_modules/@strava/ui/VisuallyHidden/VisuallyHidden.tsx","webpack://StravaModern/./node_modules/email-validator/index.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n",null,null,null,null,null,null,null,"// extracted by mini-css-extract-plugin\nexport default {\"authButton\":\"AccountAuthButton--authButton--yFnD+\",\"placeholder\":\"AccountAuthButton--placeholder--JAgxq\",\"facebookBlue\":\"AccountAuthButton--facebookBlue--eWNdO\",\"emailOrange\":\"AccountAuthButton--emailOrange--jGQsK\"};","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgLogosAppleSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgLogosAppleSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgLogosAppleSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgLogosAppleSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgLogosFacebookSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgLogosFacebookSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgLogosFacebookSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgLogosFacebookSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgLogosGoogleSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n )\n);\nSvgLogosGoogleSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgLogosGoogleSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgLogosGoogleSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsEmailNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsEmailNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsEmailNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsEmailNormalSmall;\n","import React, { ReactNode } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport Button from '@strava/ui/Button';\nimport styles from './AccountAuthButton.module.scss';\n\nimport AppleLogo from '@strava/icons/LogosAppleSmall';\nimport FacebookLogo from '@strava/icons/LogosFacebookSmall';\nimport GoogleLogo from '@strava/icons/LogosGoogleSmall';\nimport EmailLogo from '@strava/icons/ActionsEmailNormalSmall';\n\nexport type AuthButtonVariantTypes =\n | 'apple'\n | 'email'\n | 'email-orange'\n | 'facebook'\n | 'facebook-blue' // ironically corresponds to the lighter version of the icon\n | 'google';\n\ntype AccountAuthButtonProps = {\n children: ReactNode;\n className?: string;\n variant?: AuthButtonVariantTypes;\n onClick?: () => void;\n};\n\nconst AccountAuthButton = ({\n children,\n onClick,\n variant,\n className,\n ...options\n}: AccountAuthButtonProps) => {\n return (\n \n }>\n {variant === 'apple' && }\n {variant === 'facebook' && }\n {variant === 'facebook-blue' && }\n {variant === 'google' && }\n {variant === 'email' && }\n \n {children}\n \n );\n};\n\nexport default AccountAuthButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"disclaimerText\":\"DisclaimerText--disclaimerText--oXzH1\"};","import React from 'react';\nimport { Markup } from 'interweave';\nimport { useStravaTranslations } from '@strava/container-context';\nimport clsx from '@strava/ui/clsx/clsx';\n\nimport styles from './DisclaimerText.module.scss';\n\ntype DisclaimerTextProps = {\n className?: string;\n};\n\nconst DisclaimerText = ({ className }: DisclaimerTextProps) => {\n const { t } = useStravaTranslations();\n\n const legalTerms = t(\n 'authentication_ui.disclaimer_text.by_clicking_cta_html',\n { terms_path: '/legal/terms' }\n );\n\n const legalPrivacy = t(\n 'authentication_ui.disclaimer_text.view_privacy_policy_html',\n { privacy_path: '/legal/privacy' }\n );\n\n return (\n

\n {' '}\n \n

\n );\n};\n\nexport default DisclaimerText;\n","var _excluded = [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\", \"isolated\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n function ReCAPTCHA() {\n var _this;\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto = ReCAPTCHA.prototype;\n _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n if (this.props.grecaptcha) {\n if (this.props.grecaptcha.enterprise) {\n return this.props.grecaptcha.enterprise[fnName];\n }\n return this.props.grecaptcha[fnName];\n }\n return null;\n };\n _proto.getValue = function getValue() {\n var getResponse = this.getCaptchaFunction(\"getResponse\");\n if (getResponse && this._widgetId !== undefined) {\n return getResponse(this._widgetId);\n }\n return null;\n };\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n return null;\n };\n _proto.execute = function execute() {\n var execute = this.getCaptchaFunction(\"execute\");\n if (execute && this._widgetId !== undefined) {\n return execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n _this2.execute();\n });\n };\n _proto.reset = function reset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter && this._widgetId !== undefined) {\n resetter(this._widgetId);\n }\n };\n _proto.forceReset = function forceReset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter) {\n resetter();\n }\n };\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n _proto.explicitRender = function explicitRender() {\n var render = this.getCaptchaFunction(\"render\");\n if (render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge,\n isolated: this.props.isolated\n });\n this.captcha.appendChild(wrapper);\n }\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n isolated = _this$props.isolated,\n childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n /* eslint-enable no-unused-vars */\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"]),\n isolated: PropTypes.bool\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n if (dynamicOptions.enterprise) {\n return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n }\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName,\n attributes: getOptions().nonce ? {\n nonce: getOptions().nonce\n } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"Input--input--myCs3\"};","import React, { forwardRef } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport styles from './Input.module.scss';\n\ntype InputProps = React.ComponentPropsWithoutRef<'input'>;\n\nexport const Input = forwardRef(\n ({ className, ...props }, ref) => (\n \n )\n);\n\nexport default Input;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsVisibleDisabledNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgActionsVisibleDisabledNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsVisibleDisabledNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsVisibleDisabledNormalSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsVisibleNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgActionsVisibleNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsVisibleNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsVisibleNormalSmall;\n","// extracted by mini-css-extract-plugin\nexport default {\"passwordInput\":\"Input--passwordInput--ARtRG\",\"showPasswordButton\":\"Input--showPasswordButton--9Ubgm\"};","import React, { forwardRef, useState } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport ActionsVisibleDisabledNormalSmall from '@strava/icons/ActionsVisibleDisabledNormalSmall';\nimport ActionsVisibleNormalSmall from '@strava/icons/ActionsVisibleNormalSmall';\nimport VisuallyHidden from '../VisuallyHidden';\nimport Input from '.';\n\nimport styles from './PasswordInput.module.scss';\n\nexport type PasswordInputProps = React.ComponentPropsWithoutRef<'input'> & {\n showPasswordText: string; // translated text for accessibility. Should inform users that clicking show password button will display the password on the screen\n hidePasswordText: string;\n};\n\nconst PasswordInput = forwardRef(\n ({ showPasswordText, hidePasswordText, className, ...props }, ref) => {\n const [passwordIsVisible, setPasswordIsVisible] = useState(false);\n\n return (\n
\n \n setPasswordIsVisible((prev) => !prev)}\n className={styles.showPasswordButton}\n type=\"button\"\n role=\"switch\"\n aria-checked={passwordIsVisible}\n title={passwordIsVisible ? hidePasswordText : showPasswordText}\n >\n {passwordIsVisible ? (\n \n ) : (\n \n )}\n \n {passwordIsVisible ? hidePasswordText : showPasswordText}\n \n \n
\n );\n }\n);\n\nexport default PasswordInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"RegistrationInput--input--AQh-V\",\"label\":\"RegistrationInput--label--0tXB5\",\"light\":\"RegistrationInput--light--xymPQ\",\"textInput\":\"RegistrationInput--textInput--zLJDS\",\"message\":\"RegistrationInput--message--zQeRu\",\"error\":\"RegistrationInput--error--40No1\"};","import React, { forwardRef } from 'react';\nimport Input, { PasswordInput } from '@strava/ui/Input';\nimport { ThemeTypes } from '@strava/authentication-ui';\nimport clsx from '@strava/ui/clsx';\nimport styles from './RegistrationInput.module.scss';\n\ntype RegistrationInputProps = React.ComponentPropsWithoutRef<'input'> &\n (\n | {\n // type just has to not be 'password' or string for the conditional to work\n type: 'email' | 'text';\n hidePasswordText?: string;\n showPasswordText?: string;\n }\n | {\n type: 'password';\n hidePasswordText: string;\n showPasswordText: string;\n }\n ) & {\n label: string;\n inputMessage?: string | null;\n errorMessage?: string | null;\n errorMessageTestId?: string;\n theme?: ThemeTypes;\n };\n\nexport const RegistrationInput = forwardRef<\n HTMLInputElement,\n RegistrationInputProps\n>(\n (\n {\n label,\n id,\n type,\n inputMessage,\n errorMessage,\n errorMessageTestId,\n hidePasswordText,\n showPasswordText,\n theme = 'dark',\n ...props\n },\n ref\n ) => (\n
\n \n {type === 'password' ? (\n \n ) : (\n \n )}\n {inputMessage && !errorMessage && (\n

{inputMessage}

\n )}\n {errorMessage && (\n

\n {errorMessage}\n

\n )}\n
\n )\n);\n\nexport default RegistrationInput;\n","import { getProtocol } from './get-protocol';\n\n// At times, we will be developing the app using different hostnames and ports.\n// On docker-compose, the origin might be http://webapp:3001.\n// Or, you might be running it on your machine at http://localhost:3000\n//\n// If the incoming request doesn't include '/dev-api',\n// we want it to be for /dev-api on this same server,\n// so it can be modified and re-sent, from the server, with appropriate auth cookies,\n// to the staging api.\n\nexport function stagingBaseUrlFromReq(req) {\n // When using the staging api, we will toggle the '/dev-api' depending on the state of the request.\n // If the incoming request is for localhost:3000/dev-api,\n // then we will strip out '/dev-api' and forward the request to to staging.strava.com.\n\n return `${getProtocol(req)}://${req.headers.host}/dev-api`;\n}\n\nexport function stagingBaseUrlFromWindow() {\n const { location } = window;\n const { protocol, hostname, port } = location;\n\n return `${protocol}//${hostname}:${port}/dev-api`;\n}\n","// We serve active from different domains depending\n// on the environment. We need to know which URL\n// to use for a given environment (development, staging, prod).\n// https://www.strava.com\n// https://www.staging.strava.com\n// http://localhost + port\n// http://127.0.0.1 + port\n\n// Note: When developing locally, we will serve this web app\n// on a different port than active\nconst LOCALHOST_ACTIVE_PORT = 3000;\n\nexport function extractUrlFromReq(req) {\n let fullHost = req.headers['x-forwarded-host'] || req.headers.host;\n let protocol = 'https';\n\n // If we are developing locally, we will be running\n // active on some other port, so we set it here:.\n if (fullHost.includes('localhost')) {\n fullHost = `localhost:${LOCALHOST_ACTIVE_PORT}`;\n protocol = 'http';\n }\n\n return `${protocol}://${fullHost}`;\n}\n\nexport function baseUrlFromWindow() {\n const { location } = window;\n\n // If we are on the browser, and have included a port in the location URL, then\n // we are running locally, and the api client should use active's port.\n const port = location.port === '' ? '' : `:${LOCALHOST_ACTIVE_PORT}`;\n\n return `${location.protocol}//${location.hostname}${port}`;\n}\n","import axios from 'axios';\nimport { stagingBaseUrlFromWindow } from './base-url-staging';\nimport { baseUrlFromWindow } from './base-url';\nimport getCsrfToken from './csrf';\nimport { AxiosRequestConfig } from 'axios';\n\n/**\n * nextjs apps can be run locally but be configured to call active staging rather than active localhost.\n * If client is called by a microfrontend mounted by a nextjs app, `useStagingApi` can be passed in to\n * the mfe's props from `process.env.USE_STAGING_API` so it uses the same baseurl as the nextjs app's other\n * api requests.\n */\n\nconst apiClient = ({\n useStagingApi = typeof process !== 'undefined'\n ? process?.env?.USE_STAGING_API\n : false,\n currentLanguage = 'en-US',\n options = {} as AxiosRequestConfig\n} = {}) => {\n const { headers: optionalHeaders, ...moreOptions } = options;\n const config = {\n baseURL: useStagingApi ? stagingBaseUrlFromWindow() : baseUrlFromWindow(),\n withCredentials: true,\n timeout: 30000, // 30 seconds\n headers: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'Accept-Language': currentLanguage,\n ...optionalHeaders\n },\n ...moreOptions\n };\n\n const csrfToken = getCsrfToken();\n if (csrfToken) {\n config.headers = { 'x-csrf-token': csrfToken, ...config.headers };\n }\n\n return axios.create(config);\n};\n\nexport default apiClient;\n","export default function getCsrfToken() {\n const metaCsrfTag: HTMLMetaElement | null =\n document.head.querySelector('meta[name=\"csrf\"]') ||\n document.head.querySelector('meta[name=\"csrf-token\"]');\n\n return metaCsrfTag ? metaCsrfTag.content : null;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"emailCaption\":\"EmailRegistrationForm--emailCaption--Ccjzm\",\"submitButton\":\"EmailRegistrationForm--submitButton--4ptar\"};","import React, { useState, useRef } from 'react';\nimport Button from '@strava/ui/Button';\nimport * as EmailValidator from 'email-validator';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { isNil } from 'lodash-es';\nimport Spinner from '@strava/ui/Spinner';\nimport { AlertStatus, useAlertContext } from '@strava/ui/Alert';\nimport {\n elemAttrForAnalytics,\n EMAIL,\n ThemeTypes\n} from '@strava/authentication-ui';\nimport RegistrationInput from '../RegistrationInput';\nimport {\n submitFormData,\n isAlreadyRegisteredEmail\n} from './email-registration-api';\n\nimport {\n useStravaErrorLogging,\n useStravaTranslations\n} from '@strava/container-context';\n\nimport styles from './EmailRegistrationForm.module.scss';\n\nconst i18nPrefix = 'authentication_ui.email_registration_form';\n\nexport const EMAIL_REGISTRATION_FORM_ALERT_ID = 'email-registration-form-alert';\n\n// these props are passed into the parent component from the active\nexport interface EmailRegistrationFormProps {\n reCaptchaSiteKey: string;\n clubId?: number;\n isPremium?: boolean;\n challengeId?: number;\n autoJoinChallenge?: boolean;\n honeyPot: string;\n plan?: string;\n formAuthToken?: string;\n}\n\ntype FormInputTypes = {\n email: string;\n password: string;\n honeyPot: string;\n};\n\ntype EmailValidationStateTypes = {\n message: string;\n isExistingEmail: boolean;\n isValidEmail: boolean;\n};\n\nexport type AnalyticsFieldsTypes = {\n action: string;\n element?: string;\n properties?: Record;\n};\n\nexport type AlertConfigTypes = {\n className?: string;\n contentPosition?: 'left' | 'center' | 'right';\n};\n\nconst EmailRegistrationForm = ({\n authorizationUrl,\n reCaptchaSiteKey,\n honeyPot,\n isPremium,\n clubId,\n plan,\n challengeId,\n autoJoinChallenge,\n formAuthToken,\n track,\n className,\n theme = 'dark',\n idPrefix,\n alertConfig,\n isInView = true\n}: EmailRegistrationFormProps & {\n // these props are passed in from the parent component\n authorizationUrl: string; // this url generally still comes from active\n track: (fields: AnalyticsFieldsTypes) => void;\n className?: string;\n idPrefix: string;\n theme?: ThemeTypes;\n alertConfig?: AlertConfigTypes;\n isInView?: boolean;\n}) => {\n const [formInput, setFormInput] = useState({\n email: '',\n password: '',\n honeyPot: '' // if this field gets filled out, user is probably a bot\n });\n const [passwordErrorMsg, setPasswordErrMsg] = useState(null);\n const [emailValidationState, setEmailValidationState] =\n useState(null);\n const [isProcessing, setIsProcessing] = useState(false);\n\n const emailInput = useRef(null);\n const passwordInput = useRef(null);\n const recaptchaRef = useRef(null);\n\n const useRecaptcha = !!reCaptchaSiteKey && isInView;\n\n const { logError } = useStravaErrorLogging();\n const { t } = useStravaTranslations();\n const { showAlert, clearAlerts } = useAlertContext();\n\n const emailRegFormAlert = (content: React.ReactNode, id: string) => ({\n content,\n alertType: AlertStatus.ERROR,\n containerId: EMAIL_REGISTRATION_FORM_ALERT_ID,\n hideCloseButton: true,\n ...(alertConfig && { ...alertConfig }),\n id // to prevent showing duplicate error messages\n });\n\n const getRecaptchaToken = async () => {\n if (useRecaptcha) {\n return (await recaptchaRef?.current?.executeAsync()) ?? '';\n }\n return '';\n };\n\n const handleEmailFormSubmit = async () => {\n const recaptchaToken = await getRecaptchaToken();\n\n const element = elemAttrForAnalytics(EMAIL);\n const { email, password, honeyPot } = formInput;\n\n const formData = new FormData();\n formData.append('web_registration_form', 'true');\n formData.append('email', email);\n formData.append('password', password);\n formData.append('g-recaptcha-response', recaptchaToken);\n formData.append('checkbox_agreed_to_terms', 'on');\n formData.append(honeyPot, honeyPot);\n formData.append('plan', String(plan));\n formData.append('authenticity_token', String(formAuthToken));\n\n if (isPremium) {\n formData.append('premium', 'true');\n }\n if (!isNil(clubId)) {\n formData.append('club_id', String(clubId));\n }\n if (!isNil(challengeId)) {\n formData.append('challenge_id', String(challengeId));\n }\n if (!isNil(autoJoinChallenge)) {\n formData.append('auto_join_challenge', String(autoJoinChallenge));\n }\n\n try {\n const response = await submitFormData({\n formData,\n url: authorizationUrl,\n logError\n });\n\n if ('error' in response) {\n // join request failed server-side validations,\n // flash message is populated and shown if an error occurred\n showAlert(emailRegFormAlert(response.error, 'submitFormData error'));\n setIsProcessing(false); // let user try again\n } else {\n const { pathType, load } = response;\n track({\n action: 'redirect',\n element,\n properties: {\n path_type: pathType,\n redirect_url: load\n }\n });\n\n // navigate to onboarding flow if no errors were encountered\n window.location.href = load;\n }\n } catch (error) {\n logError(error);\n\n // generic \"something went wrong\" alert\n showAlert(\n emailRegFormAlert(\n t(`${i18nPrefix}.error_message`),\n 'submitFormData catch'\n )\n );\n setIsProcessing(false); // let user try again\n }\n };\n\n /**\n * Validate athlete email -\n * 1 - value should be provided (required)\n * 2 - valid email address should be entered (eg. should have @)\n * 3 - email address should not be already registered on strava\n *\n * @returns {Object} result\n * @returns {boolean} result.isValidEmail - true when the email has passed all validation criteria\n * @returns {string} result.isExistingEmail - true when the email is already registered on strava\n * @returns {string} result.message - string message to display to athlete when an error occurs\n */\n const validateEmail = async () => {\n const { email } = formInput;\n if (emailValidationState) {\n // avoid validating email if there is already an error that is not addressed by the athlete yet\n // this prevents making an unnecessary api call to check if email is already registered (see #isAlreadyRegisteredEmail)\n return emailValidationState;\n } else {\n let isValidEmail = true;\n let isExistingEmail = false;\n let message = null;\n\n if (!(email && email.length > 0)) {\n message = t(`${i18nPrefix}.email_required`);\n isValidEmail = false;\n } else if (!EmailValidator.validate(email)) {\n message = t(`${i18nPrefix}.email_invalid`);\n isValidEmail = false;\n } else {\n try {\n const isUniqueEmail = await isAlreadyRegisteredEmail(email);\n if (!isUniqueEmail) {\n message = t(`${i18nPrefix}.email_taken`);\n isExistingEmail = true;\n }\n } catch (error) {\n logError(error);\n isValidEmail = false;\n\n // generic \"something went wrong\" alert\n showAlert(\n emailRegFormAlert(\n t(`${i18nPrefix}.error_message`),\n 'isAlreadyRegisteredEmail catch'\n )\n );\n }\n }\n setEmailValidationState({ isExistingEmail, isValidEmail, message });\n return { message, isValidEmail, isExistingEmail };\n }\n };\n\n /**\n * Validates athlete password\n * - value should be provided (required)\n * - max length of 40 chars\n * - min length of 8 chars\n *\n * @returns {boolean} result true when the password is valid\n */\n const validatePassword = () => {\n const { password } = formInput;\n\n if (!passwordErrorMsg) {\n // avoid validating email if there is already an error that is not addressed by the athlete yet\n let isValidPassword = true;\n let passwordValidationMsg = null;\n if (!(password && password.length > 0)) {\n passwordValidationMsg = t(`${i18nPrefix}.password_required`);\n isValidPassword = false;\n } else if (password.length > 40) {\n passwordValidationMsg = t(`${i18nPrefix}.password_max_length`);\n isValidPassword = false;\n } else if (password.length < 8) {\n passwordValidationMsg = t(`${i18nPrefix}.password_min_length`);\n isValidPassword = false;\n }\n setPasswordErrMsg(passwordValidationMsg);\n return isValidPassword;\n }\n return false;\n };\n\n const validateForm = async () => {\n return {\n ...(await validateEmail()),\n isValidPassword: validatePassword()\n };\n };\n\n /**\n * Actions to perform when a user hits the \"sign up\" button (account registration using email).\n * - validate user input (email and password)\n * - submit form if input is valid\n * - focus on invalid inputs if input is invalid\n */\n const handleFormSubmission = async (\n event: React.FormEvent\n ) => {\n event.preventDefault();\n setIsProcessing(true); // prevent impatient submit clicks\n\n const { isValidEmail, isValidPassword, isExistingEmail } =\n await validateForm();\n\n track({\n action: 'click',\n element: 'signup',\n properties: {\n is_valid_email: isValidEmail,\n is_valid_password: isValidPassword,\n is_existing_email: isExistingEmail\n }\n });\n\n if (isValidEmail && !isExistingEmail && isValidPassword) {\n handleEmailFormSubmit();\n } else {\n setIsProcessing(false); // let user try again\n\n if (recaptchaRef.current) {\n recaptchaRef.current.reset();\n }\n if (!isValidPassword) {\n passwordInput?.current?.focus();\n }\n // prioritize focus on email input if both password and email inputs are invalid\n if (!isValidEmail || isExistingEmail) {\n emailInput?.current?.focus();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent) => {\n const { target } = event;\n const { name } = target;\n\n // save honeyPot input as 'honeyPot' instead of whatever the value of honeyPot is\n // (server determines honeyPot value)\n setFormInput((prev) => {\n return { ...prev, [name === honeyPot ? 'honeyPot' : name]: target.value };\n });\n\n // clear input specific errors\n if (name === 'email' && emailValidationState?.message) {\n setEmailValidationState(null);\n } else if (passwordErrorMsg) {\n setPasswordErrMsg(null);\n }\n // clear alerts on all input changes\n clearAlerts(EMAIL_REGISTRATION_FORM_ALERT_ID);\n };\n\n return (\n \n \n\n \n\n {/**\n * Honeypot input is hidden to real users but visible to bots.\n * It should be a value that seems legit to bots but one we don't actually use/care about.\n * If the input is populated, we know it's a bot. */}\n
\n \n \n
\n\n {useRecaptcha && (\n \n )}\n\n \n {isProcessing ? : t(`${i18nPrefix}.sign_up`)}\n \n \n );\n};\n\nexport default EmailRegistrationForm;\n","import apiClient from '@strava/api/lib/axios-client';\n\ntype SubmitFormDataSuccessResponse = {\n success: boolean;\n pathType: string;\n load: string;\n};\n\ntype SubmitFormDataErrorResponse = {\n error: string;\n};\n\ntype SubmitFormDataResponseType =\n | SubmitFormDataSuccessResponse\n | SubmitFormDataErrorResponse;\n\nexport const submitFormData = async ({\n formData,\n url,\n logError\n}: {\n formData: FormData;\n url: string;\n logError: (s: string | unknown) => void;\n}): Promise => {\n return new Promise((resolve, reject) => {\n apiClient({\n options: {\n headers: { 'Content-Type': 'multipart/form-data' }\n }\n })\n .post(url, formData)\n .then((response: { data: SubmitFormDataResponseType }) => {\n resolve(response.data);\n })\n .catch((error: unknown) => {\n logError(error);\n reject(error);\n });\n });\n};\n\nexport const isAlreadyRegisteredEmail = async (email: string) => {\n return new Promise((resolve, reject) => {\n apiClient()\n .get('/athletes/email_unique', { params: { email } })\n .then(({ data }: { data: boolean }) => {\n resolve(data);\n })\n .catch((error: unknown) => {\n reject(error);\n });\n });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"orDivider\":\"OrDivider--orDivider--X6SS0\",\"or\":\"OrDivider--or--rdcMJ\",\"light\":\"OrDivider--light--BPhFE\",\"line\":\"OrDivider--line--LX6dD\"};","import React from 'react';\nimport clsx from '@strava/ui/clsx';\n\nimport styles from './OrDivider.module.scss';\nimport { ThemeTypes } from '..';\n\ninterface OrDividerProps {\n text: string;\n theme?: ThemeTypes;\n className?: string;\n}\n\nexport const OrDivider = ({\n text,\n theme = 'dark',\n className\n}: OrDividerProps) => {\n return (\n
\n
\n {text}\n
\n
\n );\n};\n\nexport default OrDivider;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelNormalSmall;\n","// extracted by mini-css-extract-plugin\nexport default {\"signUpModal\":\"SignUpModal--signUpModal--xO1Kx\",\"modalBody\":\"SignUpModal--modalBody--Gpmjz\",\"headerButtons\":\"SignUpModal--headerButtons--2U3lr\",\"loginButton\":\"SignUpModal--loginButton--Vs7UG\",\"closeButton\":\"SignUpModal--closeButton--47PoO\",\"alert\":\"SignUpModal--alert--Y+599\",\"headerText\":\"SignUpModal--headerText--G1lDl\",\"authButtons\":\"SignUpModal--authButtons--502Bu\",\"orDivider\":\"SignUpModal--orDivider--W38OK\",\"disclaimerText\":\"SignUpModal--disclaimerText--BQTmz\"};","import React, { useCallback, useEffect, useMemo } from 'react';\nimport Modal, { ModalBody } from '@strava/ui/Modal';\nimport Avatar from '@strava/ui/Avatar';\nimport {\n useStravaAnalytics,\n useStravaErrorLogging,\n useStravaTranslations\n} from '@strava/container-context';\nimport { useApple } from '@strava/react-hooks/src/use-apple';\nimport { AlertContainer, AlertProvider } from '@strava/ui/Alert';\nimport Button, { LinkButton } from '@strava/ui/Button';\nimport VisuallyHidden from '@strava/ui/VisuallyHidden';\nimport ActionsCancelNormalSmall from '@strava/icons/ActionsCancelNormalSmall';\nimport { color } from '@strava/ui-tokens/js';\nimport { Markup } from 'interweave';\nimport clsx from '@strava/ui/clsx';\nimport AccountAuthButton from '../AccountAuthButton';\nimport OrDivider from '../OrDivider';\nimport EmailRegistrationForm, {\n EmailRegistrationFormProps,\n EMAIL_REGISTRATION_FORM_ALERT_ID,\n AnalyticsFieldsTypes\n} from '../EmailRegistrationForm';\nimport DisclaimerText from '../DisclaimerText';\nimport { APPLE, FACEBOOK, GOOGLE, HIDE_TIME_DELAY_MODAL } from '../constants';\nimport { useSignUpModalContext } from './SignUpModalContext';\nimport styles from './SignUpModal.module.scss';\nimport { devLog } from '@strava/utils';\n\n// using `require` here instead of import to avoid adding `declare module '*.svg'`\n// everywhere the `@strava/authentication-ui` package is imported\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst echelon = require('./assets/strava-echelon.svg');\n\nexport type SignUpModalProps = {\n authorizationUrls: {\n email: string;\n facebook: string;\n google: string;\n };\n appleState: string;\n category: string;\n className?: string;\n} & EmailRegistrationFormProps;\n\nconst i18nPrefix = 'sign_up_modal';\nconst AUTH_BUTTONS = [GOOGLE, APPLE, FACEBOOK] as const;\n\nconst SignUpModal = ({\n className,\n authorizationUrls,\n appleState,\n category,\n ...props\n}: SignUpModalProps) => {\n const { track: _track } = useStravaAnalytics();\n const { t } = useStravaTranslations();\n const { logError } = useStravaErrorLogging();\n const { signin: appleSignin } = useApple(appleState, logError);\n\n const {\n isSignUpModalOpen,\n dismissSignUpModal,\n variant,\n copyParams,\n athleteAvatar,\n defaultRedirectUrl,\n useActiveAfterAuth\n } = useSignUpModalContext();\n\n // If we need to add `_v2` strings for the variants, we'd need to map them to the proper variant.\n // The variant is used for more than just copy, so we could end up with `follow_athlete` as a variant\n // but want to use `follow_athlete_v2` for the copy.\n\n const track = useCallback(\n (fields: AnalyticsFieldsTypes) => {\n _track({\n category,\n page: 'signup_modal',\n ...fields,\n properties: {\n copy_variant: variant,\n ...fields.properties\n }\n });\n },\n [_track, category, variant]\n );\n\n const handleExtAuthBtnClick = (\n option: typeof FACEBOOK | typeof GOOGLE | typeof APPLE\n ) => {\n track({ action: 'click', element: `${option}_signup` });\n\n if (option === APPLE) {\n appleSignin();\n } else {\n window.location.assign(authorizationUrls[option]);\n }\n };\n\n useEffect(() => {\n if (isSignUpModalOpen) {\n // register screen_enter event each time modal is opened\n track({ action: 'screen_enter' });\n\n if (sessionStorage.getItem(HIDE_TIME_DELAY_MODAL) !== 'true') {\n // repress time delayed modal since modal has now been seen\n sessionStorage.setItem(HIDE_TIME_DELAY_MODAL, 'true');\n }\n }\n }, [isSignUpModalOpen, track]);\n\n // warn developer if they forget to send the athlete name to the sign up modal context\n // and then try to use the `follow_athlete` variant or `view_profile` variants\n useEffect(() => {\n if (\n isSignUpModalOpen &&\n ['follow_athlete', 'view_profile'].includes(variant) &&\n copyParams[variant].name === ''\n ) {\n devLog(\n 'SUM :: variant that requires athlete name was used but athlete name is an empty string!'\n );\n }\n }, [copyParams, isSignUpModalOpen, variant]);\n\n const loginLink = useMemo(() => {\n if (defaultRedirectUrl && !useActiveAfterAuth) {\n return `/login?redirect=${encodeURIComponent(defaultRedirectUrl)}`;\n }\n return '/login';\n }, [defaultRedirectUrl, useActiveAfterAuth]);\n\n return (\n \n \n \n
\n track({ action: 'click', element: 'login' })}\n >\n {t(`${i18nPrefix}.log_in`)}\n \n {\n track({ action: 'click', element: 'close_modal' });\n dismissSignUpModal();\n }}\n type=\"button\"\n variant=\"icon\"\n className={styles.closeButton}\n title={t(`${i18nPrefix}.close`)}\n data-cy=\"sign-up-modal-close-button\"\n >\n {t(`${i18nPrefix}.close`)}\n \n \n
\n\n
\n {variant === 'follow_athlete' ? (\n \n ) : (\n \"\"\n )}\n

\n \n

\n

{t(`${i18nPrefix}.${variant}.subtitle`)}

\n
\n\n \n\n
\n {AUTH_BUTTONS.map((option) => (\n handleExtAuthBtnClick(option)}\n data-testid={`${option}_auth_btn`}\n key={option}\n >\n {t(`${i18nPrefix}.signup_ctas.${option}_cta`)}\n \n ))}\n
\n\n \n\n \n\n \n
\n \n
\n );\n};\n\nexport default SignUpModal;\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState\n} from 'react';\nimport {\n devLog,\n isSessionStorageAvailable,\n isValidStravaUrlForCurrentHost\n} from '@strava/utils';\n\nexport type SignUpModalVariants =\n | 'generic'\n | 'generic_time_delayed'\n | 'follow_athlete'\n | 'join_challenge'\n | 'kudos_comment'\n | 'running_tools'\n | 'activity_details'\n | 'view_profile'\n | 'find_routes'\n | 'see_route_details';\n\nexport type SignUpModalContextState = {\n /**\n * used by the logged-out page to trigger opening the modal with a particular variant\n * (also sets the variant in state and handles sessionStorage if the variant\n * is one of the special redirect variants)\n */\n openSignUpModal: (variant: SignUpModalVariants) => void;\n /** used by the modal */\n isSignUpModalOpen: boolean;\n /**\n * used by the modal, also handles sessionStorage to restore the redirect if the\n * variant was one of the special redirect variants\n */\n dismissSignUpModal: () => void;\n /** used by the modal */\n variant: SignUpModalVariants;\n /**\n * used by the modal, should include any params for the variants' different\n * header and subtitle copy\n */\n copyParams: Record>;\n /** used by the modal, src url for the athlete avatar */\n athleteAvatar: string;\n /** used by the modal to build the login link with the redirect param */\n defaultRedirectUrl?: string;\n /** used by the modal to prevent building the login link with the redirect param */\n useActiveAfterAuth?: boolean;\n};\n\nconst SignUpModalContext = createContext(\n undefined\n);\nSignUpModalContext.displayName = 'SignUpModalContext';\n\nexport const useSignUpModalContext = () => {\n const context = useContext(SignUpModalContext);\n\n // Fail fast if hook is used outside the provider\n if (!context) {\n throw new Error(\n 'useSignUpModalContext must be used within the SignUpModalContext provider'\n );\n }\n\n return context;\n};\n\nexport const SESSION_STORAGE_REDIRECT_KEY = 'redirect_to_after_signup';\n\ntype SignUpModalContextProviderProps = {\n /**\n * whatever children the context provider is wrapping\n * (ideally the parent container for whatever CTAs trigger the modal)\n */\n children: ReactNode;\n /** athlete's first name, used by the `follow_athlete` variant's copy (\"Follow {Firstname}\") */\n nameForFollowAthleteVariant?: string;\n /** src url for the athlete avatar, used by the `follow_athlete` variant */\n athleteAvatar?: string;\n /**\n * default url the user should be directed to after authentication.\n * when not provided, defaults to the current page url.\n */\n defaultRedirectUrl?: string;\n /**\n * redirect urls supercede `useActiveAfterAuth` (so a user who signs up from a\n * variant that has a redirect url will be redirected there). the url itself\n * must be an absolute url with a strava (or localhost, during dev) host.\n * @example\n * { follow_athlete: 'https://www.strava.com/athletes/123' }\n */\n redirectUrls?: Record;\n /**\n * when true, does not use the default redirect url (if provided) or set\n * the current page as the default redirect url (if default redirect url is\n * not provided). defaults to false.\n */\n useActiveAfterAuth?: boolean;\n /** called when the sign up modal is dismissed */\n onDismiss?: () => void;\n};\n\nexport const SignUpModalContextProvider = ({\n children,\n nameForFollowAthleteVariant = '',\n athleteAvatar = '',\n redirectUrls = {}, // redirect urls supercede `useActiveAfterAuth`\n defaultRedirectUrl: _defaultRedirectUrl,\n useActiveAfterAuth = false,\n onDismiss = () => {}\n}: SignUpModalContextProviderProps) => {\n const [isSignUpModalOpen, setIsSignUpModalOpen] = useState(false);\n const [defaultRedirectUrl, setDefaultRedirectUrl] = useState(\n _defaultRedirectUrl || undefined\n );\n const [variant, setVariant] = useState('generic');\n\n const redirectUrlIsValid = useCallback(\n (redirectUrl) =>\n isValidStravaUrlForCurrentHost(\n redirectUrl,\n new URL(window?.location?.href).host\n ),\n []\n );\n\n const setSessionStorageRedirectUrl = useCallback(\n (redirectUrl) => {\n if (isSessionStorageAvailable()) {\n if (redirectUrlIsValid(redirectUrl)) {\n sessionStorage.setItem(SESSION_STORAGE_REDIRECT_KEY, redirectUrl);\n devLog(`SUM :: setting sessionStorage with ${redirectUrl}`);\n } else {\n devLog(`SUM :: ${redirectUrl} is an invalid redirect url`);\n }\n }\n },\n [redirectUrlIsValid]\n );\n\n // on load, use the default redirect url if it's provided and valid,\n // otherwise use the current page; do nothing if we're using active's after\n // auth handling\n useEffect(() => {\n if (!useActiveAfterAuth) {\n const redirectUrl =\n defaultRedirectUrl && redirectUrlIsValid(defaultRedirectUrl)\n ? defaultRedirectUrl\n : window?.location?.href;\n setSessionStorageRedirectUrl(redirectUrl);\n setDefaultRedirectUrl(redirectUrl);\n }\n // dependents are empty because we only want to run this on load\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const openSignUpModal = useCallback(\n (_variant: SignUpModalVariants) => {\n setIsSignUpModalOpen(true);\n setVariant(_variant);\n\n // if variant has a special redirect, set it in session storage\n if (Object.keys(redirectUrls).includes(_variant)) {\n setSessionStorageRedirectUrl(redirectUrls[_variant]);\n }\n },\n [redirectUrls, setSessionStorageRedirectUrl]\n );\n\n const dismissSignUpModal = useCallback(() => {\n onDismiss();\n setIsSignUpModalOpen(false);\n\n // restore default redirect url unless we're using not using an after auth redirect\n if (Object.keys(redirectUrls).includes(variant)) {\n if (useActiveAfterAuth) {\n sessionStorage.removeItem(SESSION_STORAGE_REDIRECT_KEY);\n } else {\n setSessionStorageRedirectUrl(defaultRedirectUrl);\n }\n }\n }, [\n defaultRedirectUrl,\n onDismiss,\n redirectUrls,\n setSessionStorageRedirectUrl,\n useActiveAfterAuth,\n variant\n ]);\n\n const providerState = useMemo(\n () => ({\n openSignUpModal,\n dismissSignUpModal,\n isSignUpModalOpen,\n variant,\n copyParams: {\n generic: {},\n generic_time_delayed: {},\n follow_athlete: { name: nameForFollowAthleteVariant },\n join_challenge: {},\n kudos_comment: {},\n running_tools: {},\n activity_details: {},\n view_profile: { name: nameForFollowAthleteVariant },\n find_routes: {},\n see_route_details: {}\n },\n athleteAvatar,\n defaultRedirectUrl,\n useActiveAfterAuth\n }),\n [\n openSignUpModal,\n dismissSignUpModal,\n isSignUpModalOpen,\n variant,\n nameForFollowAthleteVariant,\n athleteAvatar,\n defaultRedirectUrl,\n useActiveAfterAuth\n ]\n );\n\n return (\n \n {children}\n \n );\n};\n","// authentication options\nexport const APPLE = 'apple';\nexport const EMAIL = 'email';\nexport const FACEBOOK = 'facebook';\nexport const GOOGLE = 'google';\n\n// session storage key(s)\nexport const HIDE_TIME_DELAY_MODAL = 'hide-time-delay-modal';\n","import { APPLE, EMAIL, FACEBOOK, GOOGLE } from './constants';\n\ntype ElementTypes =\n | typeof APPLE\n | typeof EMAIL\n | typeof FACEBOOK\n | typeof GOOGLE;\n\nexport const elemAttrForAnalytics = (option: ElementTypes) => {\n switch (option) {\n case FACEBOOK:\n return 'facebook_signup';\n case APPLE:\n return 'apple_signup';\n case EMAIL:\n return 'email_signup';\n case GOOGLE:\n return 'google_signup';\n default:\n return 'signup';\n }\n};\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import { replace } from 'lodash-es';\nimport { useEffect } from 'react';\n\ndeclare global {\n interface Window {\n AppleID: {\n stravaInit: boolean;\n auth: {\n init: (params: {\n clientId: string;\n scope: string;\n redirectURI: string;\n state: string;\n }) => void;\n signIn: () => void;\n };\n };\n }\n}\n\ntype LogError = (e: Error | string) => void;\n\nconst appendScriptToBody = ({\n script,\n name,\n logError\n}: {\n script: Node;\n name: string;\n logError: LogError;\n}) => {\n if (document.querySelector('body')) {\n document.querySelector('body')?.appendChild(script);\n } else {\n const e = new Error(`Failed to inject ${name} script`);\n logError(e);\n }\n};\n\nconst injectAppleScript = ({\n logError,\n locale = 'en_US'\n}: {\n logError: LogError;\n locale?: string;\n}) => {\n if (!window.AppleID) {\n const script = window.document.createElement('script');\n const formattedLocale = replace(locale, '-', '_');\n script.src = `https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/${formattedLocale}/appleid.auth.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'apple', logError });\n }\n};\n\n/**\n *\n * @param {String} state https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230956-state\n */\nexport const useApple = (state: string, logError: LogError) => {\n useEffect(() => {\n injectAppleScript({ logError });\n }, [logError]);\n\n const signin = () => {\n if (!window.AppleID.stravaInit) {\n window.AppleID.auth.init({\n clientId: 'com.strava.app.sign.in',\n scope: 'name email',\n redirectURI: 'https://www.strava.com/o_auth/apple',\n state\n });\n window.AppleID.stravaInit = true;\n }\n window.AppleID.auth.signIn();\n };\n\n return { signin };\n};\n\nexport default useApple;\n","import {\n Dispatch,\n SetStateAction,\n useRef,\n useCallback,\n useEffect,\n useState\n} from 'react';\n\n/**\n * The `useSafeState` hook acts the same as React's `useState`,\n * where we can set the initial state, and it returns (1) the current state,\n * and (2) the state setter.\n *\n * But with `useSafeState`, it will only set the state when the component is mounted\n * in order to prevent memory leaks and avoid this warning:\n * \"Warning: Can’t perform a React state update on an unmounted component.\"\n * When a component is unmounted, we don't want to set the state.\n *\n * This helps when we have async behavior where we call an async API call,\n * then based on the async response, we set the state. But if the component\n * unmounts before the API call resolves, we don't want to set the state.\n * */\n// eslint-disable-next-line import/prefer-default-export\nexport const useSafeState = (\n initialState: S | (() => S)\n): [S, Dispatch>] => {\n const mountedRef = useRef(false);\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const setSafeState = useCallback(\n (args: SetStateAction) =>\n mountedRef.current ? setState(args) : () => {},\n []\n );\n\n return [state, setSafeState];\n};\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelCircleHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelCircleHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelCircleHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelCircleHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCheckCircleOnMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCheckCircleOnMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCheckCircleOnMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCheckCircleOnMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationWarningHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationWarningHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationWarningHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationWarningHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationInformationNormalMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n )\n);\nSvgNavigationInformationNormalMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationInformationNormalMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationInformationNormalMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgActionsCancelNormalSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgActionsCancelNormalSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgActionsCancelNormalSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgActionsCancelNormalSmall;\n","import { useRef, useEffect } from 'react';\n\n/**\n * Declarative setInterval React hook.\n *\n * `useInterval` uses the same API as setInterval, but the arguments of this hook is \"dynamic\".\n * Set your `callback` function as the first argument and the `delay` as the second argument.\n * When passing `null` or `undefined` to the `delay` arg then it will stop/pause the interval.\n *\n * For implementation details explanation, why to use useInterval hook, and an example see Dan Abramov's blog post\n * 👀: https://overreacted.io/making-setinterval-declarative-with-react-hooks/\n * */\nexport const useInterval = (callback: Function, delay?: number | null) => {\n const savedCallback = useRef(null);\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n // If no delay then pause/stop the interval.\n // Delay of 0 is valid delay.\n if ((!delay && delay !== 0) || delay < 0) {\n return;\n }\n\n const id = setInterval(() => savedCallback.current?.(), delay);\n // eslint-disable-next-line consistent-return\n return () => clearInterval(id);\n }, [delay]);\n};\n\nexport default useInterval;\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"Alert--alert--mHJG0\",\"alertInner\":\"Alert--alertInner--Cohht\",\"hasError\":\"Alert--hasError--6H8nL\",\"buttonError\":\"Alert--buttonError--JNCju\",\"hasWarning\":\"Alert--hasWarning--XMcB+\",\"buttonWarning\":\"Alert--buttonWarning--B8+01\",\"hasSuccess\":\"Alert--hasSuccess--HEVyx\",\"buttonSuccess\":\"Alert--buttonSuccess--8cDF1\",\"hasInfo\":\"Alert--hasInfo--cIXeI\",\"buttonInfo\":\"Alert--buttonInfo--3W2YL\",\"alertContent\":\"Alert--alertContent--Ady-v\",\"alignLeft\":\"Alert--alignLeft--TWc3-\",\"alignCenter\":\"Alert--alignCenter--Wjvd+\",\"alignRight\":\"Alert--alignRight--GltzN\",\"indicatorIcon\":\"Alert--indicatorIcon--mcHuS\",\"closeButtonContainer\":\"Alert--closeButtonContainer--0bGld\",\"button\":\"Alert--button--j9wSm\",\"autoDismissBar\":\"Alert--autoDismissBar--mBh+B\",\"countdown\":\"Alert--countdown--4hdDW\",\"fadeIn\":\"Alert--fadeIn--m0c6K\",\"fadeOut\":\"Alert--fadeOut--V2zHS\",\"enterFadeOut\":\"Alert--enterFadeOut--ZHCGw\",\"newKudo\":\"Alert--newKudo--xwJ9a\"};","import React, { ComponentPropsWithoutRef, ReactNode, useState } from 'react';\n// import ReachAlert from '@reach/alert';\nimport {\n ActionsCancelCircleHighlightedMedium as ErrorIcon,\n ActionsCheckCircleOnMedium as SuccessIcon,\n NavigationWarningHighlightedMedium as WarningIcon,\n NavigationInformationNormalMedium as InfoIcon,\n ActionsCancelNormalSmall as CancelIcon\n} from '@strava/icons';\nimport { useInterval } from '@strava/react-hooks';\nimport { isTest } from '@strava/utils/src/dev.utils';\nimport clsx from '../clsx';\nimport VisuallyHidden from '../VisuallyHidden';\nimport styles from './Alert.module.scss';\n\nexport const AlertStatus = {\n ERROR: 'error',\n SUCCESS: 'success',\n WARNING: 'warning',\n INFO: 'info'\n} as const;\n\nexport type AlertStatusType = (typeof AlertStatus)[keyof typeof AlertStatus];\n\nexport type AlertStyleType =\n | 'hasError'\n | 'hasSuccess'\n | 'hasWarning'\n | 'hasInfo';\nexport type AlertButtonStyleType =\n | 'buttonError'\n | 'buttonSuccess'\n | 'buttonWarning'\n | 'buttonInfo';\n\nconst ALERT_DELAY = 8000;\n\nconst getAlertDetails = ({\n type,\n iconSize\n}: {\n type: AlertStatusType;\n iconSize: number;\n}): {\n indicatorIcon: ReactNode;\n messageType: AlertStatusType;\n alertStyle: AlertStyleType;\n buttonStyle: AlertButtonStyleType;\n} =>\n ({\n [AlertStatus.ERROR]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.ERROR,\n alertStyle: 'hasError' as const,\n buttonStyle: 'buttonError' as const\n },\n [AlertStatus.SUCCESS]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.SUCCESS,\n alertStyle: 'hasSuccess' as const,\n buttonStyle: 'buttonSuccess' as const\n },\n [AlertStatus.WARNING]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.WARNING,\n alertStyle: 'hasWarning' as const,\n buttonStyle: 'buttonWarning' as const\n },\n [AlertStatus.INFO]: {\n indicatorIcon: (\n \n ),\n messageType: AlertStatus.INFO,\n alertStyle: 'hasInfo' as const,\n buttonStyle: 'buttonInfo' as const\n }\n }[type]);\n\nconst fadeStyles = {\n enter: isTest() ? '' : 'fadeIn',\n exit: isTest() ? '' : 'fadeOut'\n};\n\nexport interface AlertProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactNode;\n alertType?: AlertStatusType;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n className?: string;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport const Alert = ({\n children,\n className,\n alertType = AlertStatus.ERROR,\n autoDismiss = false,\n autoDismissDelay = ALERT_DELAY,\n contentPosition = 'left',\n hideCloseButton = false,\n hideIcon = true,\n iconSize = 32,\n onClose = () => {},\n ...options\n}: AlertProps) => {\n const { indicatorIcon, messageType, alertStyle, buttonStyle } =\n getAlertDetails({ type: alertType, iconSize });\n const [fadeStyle, setFadeStyle] = useState(fadeStyles.enter);\n\n const handleOnClose = async () => {\n setFadeStyle(fadeStyles.exit);\n // eslint-disable-next-line no-unused-expressions\n !isTest() && (await new Promise((resolve) => setTimeout(resolve, 0)));\n onClose();\n };\n\n useInterval(\n () => {\n handleOnClose();\n },\n autoDismiss ? autoDismissDelay : null\n );\n\n return (\n \n
\n {/* Icon */}\n {!hideIcon && (\n
{indicatorIcon}
\n )}\n\n {/* Content */}\n \n {messageType}: \n
{children}
\n
\n\n {/* Close Button */}\n {!hideCloseButton && (\n
\n \n \n \n
\n )}\n
\n\n {/* Auto Dismiss Progress */}\n {autoDismiss && (\n \n
\n
\n )}\n
\n );\n};\n\nexport default Alert;\n","import { useState, useCallback } from 'react';\n\ninterface QueueOptions {\n initialValues?: T[];\n}\n\nexport interface QueueState {\n queue: T[];\n length: number;\n enqueue: (...items: T[]) => void;\n dequeue: () => void;\n updateQueue: (fn: (current: T[]) => T[]) => void;\n clearQueue: () => void;\n peek: () => T | undefined;\n}\n\nexport const useQueue = ({\n initialValues = []\n}: QueueOptions = {}): QueueState => {\n const [queue, setState] = useState(initialValues);\n\n /**\n * Enqueue; Adds item to queue.\n */\n const enqueue = useCallback((...items: T[]) => {\n setState((current) => [...current, ...items]);\n }, []);\n\n /**\n * Dequeue; Removes first item in queue.\n */\n const dequeue = useCallback(() => {\n // Immutable solution to remove first element in array.\n setState((current) => current.slice(1));\n }, []);\n\n /**\n * Update function to allow for more granular control of updating the queue.\n * The `update` function accepts a callback fn where the first arg is the\n * current queue state that we can then manipulate. See tests for examples.\n * */\n const updateQueue = useCallback(\n (fn: (current: T[]) => T[]) => setState((current) => fn([...current])),\n []\n );\n\n /**\n * Remove all items from queue.\n */\n const clearQueue = useCallback(() => setState(() => []), []);\n\n /**\n * Returns the first item in the queue.\n */\n const peek = useCallback(() => {\n if (queue.length > 0) {\n return queue[0];\n }\n\n return undefined;\n }, [queue]);\n\n return {\n queue,\n length: queue.length,\n enqueue,\n dequeue,\n updateQueue,\n clearQueue,\n peek\n };\n};\n\nexport default useQueue;\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo\n} from 'react';\nimport { useQueue } from '@strava/react-hooks';\nimport { generateRandomId } from '@strava/utils';\nimport { AlertStatusType } from '../Alert';\n\nexport interface AlertConfig {\n alertType: AlertStatusType;\n content: ReactNode;\n containerId?: string;\n id?: string;\n className?: string;\n autoDismiss?: boolean;\n autoDismissDelay?: number;\n contentPosition?: 'left' | 'center' | 'right';\n hideCloseButton?: boolean;\n hideIcon?: boolean;\n iconSize?: number;\n onClose?: () => void;\n}\n\nexport interface AlertState {\n alerts: AlertConfig[];\n showAlert: (config: AlertConfig) => string;\n hideAlert: (id: string) => void;\n clearAlerts: (containerId?: string) => void;\n}\n\nconst AlertContext = createContext(undefined);\nAlertContext.displayName = 'AlertContext';\n\nexport const useAlertContext = () => {\n const context = useContext(AlertContext);\n\n // Fail fast if useAlertContext hook is used outside the Provider.\n if (!context) {\n throw new Error(`useAlertContext must be used within the AlertProvider`);\n }\n\n return context;\n};\n\ninterface AlertProviderProps {\n children: ReactNode;\n}\n\nexport const AlertProvider = ({ children }: AlertProviderProps) => {\n const { queue, updateQueue, clearQueue } = useQueue({\n initialValues: []\n });\n\n /**\n * @description Display an alert.\n *\n * @param {Object} alertConfig\n * @param {'error' | 'warning' | 'info' | 'success'} alertConfig.alertType\n * @param {ReactNode} alertConfig.content - Message to display in the the content of the Alert Component.\n * @param {string} [alertConfig.containerId=\"base\"] - It's used to identify which `AlertContainer` the alert is associated to.\n * @param {string | number} [alertConfig.id] - Optional; by default id is randomly generated. Used to update or close alert.\n * @param {string} [alertConfig.className] - The className passed to Alert component.\n * @param {boolean} [alertConfig.autoDismiss=false] - Determine if alert will auto dismiss/close.\n * @param {number} [alertConfig.autoDismissDelay=8000] - Delay in ms that alert will auto dismiss.\n * @param {'left' | 'center' | 'right'} [alertConfig.contentPosition=\"left\"] - Position to align content inside of alert container.\n * @param {boolean} [alertConfig.hideCloseButton=false] - Hides the close button, alert can only be closed programmatically.\n * @param {boolean} [alertConfig.hideIcon=false] - Display or hide alert icon.\n * @param {number} [alertConfig.iconSize=32] - The Alert's SVG icon's width and height.\n * @param {Function} [alertConfig.onClose] - Callback fn; called when alert closes.\n *\n * @return {string} - Alert ID\n */\n const showAlert = useCallback(\n (alertConfig: AlertConfig) => {\n const id = alertConfig.id ?? generateRandomId();\n const containerId = alertConfig.containerId ?? 'base';\n\n updateQueue((alerts) => {\n const hasAlert =\n alertConfig?.id &&\n alerts.some((alert) => alert.id === alertConfig.id);\n // Check if alert exist in queue.\n // If true then return hasAlerts\n // Else add/append alert to queue.\n if (hasAlert) {\n return alerts;\n }\n\n return [...alerts, { ...alertConfig, id, containerId }];\n });\n\n return `${id}`;\n },\n [updateQueue]\n );\n\n /**\n * @description Hide an alert by id.\n *\n * @param {string} id - Unique id to hide/remove alert.\n *\n * @return {boolean}\n * */\n const hideAlert = useCallback(\n (id: string) =>\n updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.id === id) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n ),\n [updateQueue]\n );\n\n /**\n * @description Clears/remove all alerts.\n * If no `containerId` provided then removes ALL alerts. Else if `containerId`\n * provided then clears alerts for specific container when working with multiple containers.\n *\n * @param {string} [containerId] - Optional; Clear alerts for specific container when working with multiple containers.\n *\n * @return {boolean}\n * */\n const clearAlerts = useCallback(\n (containerId: string | undefined) => {\n // If containerId is passed then remove all alerts for specific container\n if (containerId) {\n return updateQueue((alerts) =>\n alerts.filter((alert) => {\n if (alert.containerId === containerId) {\n // eslint-disable-next-line no-unused-expressions\n alert?.onClose?.();\n return false;\n }\n\n return true;\n })\n );\n }\n // Else clear entire queue\n return clearQueue();\n },\n [updateQueue, clearQueue]\n );\n\n const providerState = useMemo(\n () => ({\n alerts: queue,\n showAlert,\n hideAlert,\n clearAlerts\n }),\n [queue, showAlert, hideAlert, clearAlerts]\n );\n\n return (\n \n {children}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"alertContainerInfoContainer\":\"AlertProvider--alertContainerInfoContainer--dxEXE\",\"alertContainerInfo\":\"AlertProvider--alertContainerInfo--RDrkO\"};","import React from 'react';\nimport { AlertConfig, useAlertContext } from './AlertContext';\nimport Alert from '../Alert';\nimport styles from './AlertContainer.module.scss';\n\nconst defaultTranslateAlertInfoText = (\n totalAlertsShown: number,\n totalAlerts: number\n) => `Showing ${totalAlertsShown} of ${totalAlerts} alerts`;\n\ninterface AlertContainerProps {\n containerId?: string;\n limit?: number;\n shouldShowAlertInfoText?: boolean;\n translateAlertInfoText?: typeof defaultTranslateAlertInfoText;\n}\n\nexport const AlertContainer = ({\n containerId = 'base',\n limit,\n shouldShowAlertInfoText = true,\n translateAlertInfoText = defaultTranslateAlertInfoText\n}: AlertContainerProps) => {\n const { alerts, hideAlert } = useAlertContext();\n\n const handleOnClose = (id?: string) => {\n if (id) {\n hideAlert(id);\n }\n };\n\n const filterLimit = (_: unknown, index: number) => !limit || index < limit;\n const filterContainer = (alert: AlertConfig) =>\n alert?.containerId === containerId;\n\n const totalAlerts = alerts.filter(filterContainer).length;\n const totalAlertsShown = alerts\n .filter(filterContainer)\n .filter(filterLimit).length;\n\n return (\n <>\n {alerts\n .filter(filterContainer)\n .filter(filterLimit)\n .map(\n ({\n alertType,\n id,\n content,\n containerId: containerIdProp,\n ...rest\n }) => (\n handleOnClose(id)}\n >\n {content}\n \n )\n )}\n {shouldShowAlertInfoText && totalAlerts > totalAlertsShown && (\n \n
\n {translateAlertInfoText(totalAlertsShown, totalAlerts)}\n
\n \n )}\n \n );\n};\n\nexport default AlertContainer;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationProfileHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationProfileHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationProfileHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationProfileHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorSuperuserSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSuperuserSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorSuperuserSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorSuperuserSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorSummitSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSummitSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorSummitSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorSummitSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorProSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorProSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorProSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorProSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorVerifiedSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n )\n);\nSvgBadgesMulticolorVerifiedSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorVerifiedSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorVerifiedSmall;\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"Avatar--avatar--EjA+i\",\"imgWrapper\":\"Avatar--imgWrapper--no4rK\",\"badge\":\"Avatar--badge--AGhgx\",\"athlete\":\"Avatar--athlete--swByo\",\"xsmall\":\"Avatar--xsmall--ooxrp\",\"small\":\"Avatar--small--d-InS\",\"large\":\"Avatar--large--yUfy1\",\"xlarge\":\"Avatar--xlarge--Yt5UL\",\"club\":\"Avatar--club--HMeLa\",\"default\":\"Avatar--default--cRgUh\"};","import React, { useEffect } from 'react';\nimport { useSafeState } from '@strava/react-hooks/src/use-safe-state';\nimport AvatarFallback from '@strava/icons/NavigationProfileHighlightedMedium';\nimport EmployeeBadge from '@strava/icons/BadgesMulticolorSuperuserSmall';\nimport SubscriberBadge from '@strava/icons/BadgesMulticolorSummitSmall';\nimport ProBadge from '@strava/icons/BadgesMulticolorProSmall';\nimport VerifiedBadge from '@strava/icons/BadgesMulticolorVerifiedSmall';\nimport clsx from '../clsx';\n\nimport styles from './Avatar.module.scss';\n\ninterface ImgProps {\n src: string;\n alt: string;\n title: string;\n fallback?: React.ReactNode;\n}\n\nconst Img = ({ src, alt, title, fallback = null }: ImgProps) => {\n const [children, setChildren] = useSafeState(\n {alt}\n );\n\n useEffect(() => {\n let image: HTMLImageElement | null = new Image();\n image.onload = () => {\n setChildren({alt});\n };\n image.onerror = () => {\n setChildren(fallback);\n };\n image.src = src;\n return () => {\n image = null;\n };\n }, [src, alt, title, fallback]);\n\n return <>{children};\n};\n\nfunction getBadge(badge: string) {\n switch (badge) {\n case 'ambassador':\n return ;\n case 'employee':\n return ;\n case 'subscriber':\n case 'premium':\n return ;\n case 'pro':\n return ;\n case 'verified':\n return ;\n default:\n return null;\n }\n}\n\nexport type AvatarType = 'athlete' | 'club';\nexport type AvatarSize = 'xsmall' | 'small' | 'default' | 'large' | 'xlarge';\nexport type AvatarBadge =\n | '' // in some cases active has member_type as empty string for default users\n | 'ambassador'\n | 'employee'\n | 'subscriber'\n | 'premium' // legacy name referring to 'subscriber', used in active\n | 'pro'\n | 'verified';\n\ninterface BaseAvatarProps {\n src: string;\n type: AvatarType;\n name?: string;\n alt?: string;\n title?: string;\n size?: AvatarSize;\n badge?: AvatarBadge;\n className?: string;\n}\n\ntype AnchorProps = React.ComponentPropsWithoutRef<'a'> & {\n href?: string;\n};\ntype DivProps = React.ComponentPropsWithoutRef<'div'> & {\n href?: never;\n};\n\n// Guard to check if href exists in props\nconst hasHref = (props: AnchorProps | DivProps): props is AnchorProps =>\n 'href' in props;\n\ntype AvatarProps = BaseAvatarProps & (AnchorProps | DivProps);\n\n/**\n * Prop Deprecation Warning: We are slowly deprecating the `name` prop in favor of the `title` prop\n * so that the React props match up to the element's attribute.\n * */\nconst Avatar = ({\n name = '',\n alt = '',\n title,\n type,\n src,\n size,\n badge,\n className,\n ...otherProps\n}: AvatarProps) => {\n const classNames = clsx([\n styles.avatar,\n styles[type],\n className,\n size && styles[size]\n ]);\n\n // TODO: uncomment when existing Avatar usage is refactored. Otherwise, there will be a lot of warning in the console.\n // if (name || process.env.NODE_ENV !== 'production') {\n // console.warn(\n // '[Prop Deprecation Warning] Deprecating the `name` prop in favor of the `title`.'\n // );\n // }\n\n const children = (\n <>\n {badge &&
{getBadge(badge)}
}\n
\n : null}\n />\n
\n \n );\n\n if (hasHref(otherProps)) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default Avatar;\n","// extracted by mini-css-extract-plugin\nexport default {\"spinner\":\"Spinner--spinner--VZwB-\",\"graphic\":\"Spinner--graphic--D-BJP\",\"spin\":\"Spinner--spin--Rlswq\"};","import React from 'react';\nimport clsx from '../clsx';\n\nimport styles from './Spinner.module.scss';\n\nexport type SpinnerProps = {\n color?: 'default' | 'white';\n size?: number;\n className?: string;\n};\n\nconst Spinner = ({ className, color = 'default', size = 20 }: SpinnerProps) => (\n \n \n \n);\n\nexport default Spinner;\n","import React, { forwardRef } from 'react';\n\ntype VisuallyHiddenProps = React.ComponentPropsWithoutRef<'span'>;\n\n// visually hidden styling comes from https://www.a11yproject.com/posts/how-to-hide-content/\nconst VisuallyHidden = forwardRef(\n ({ style, ...props }, ref) => {\n return (\n \n );\n }\n);\n\nexport default VisuallyHidden;\n","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\n}"],"names":["module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","data","requestHeaders","headers","responseType","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","bind","Axios","mergeConfig","createInstance","defaultConfig","context","instance","prototype","extend","axios","create","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","message","this","toString","__CANCEL__","executor","TypeError","resolvePromise","token","reason","throwIfRequested","source","c","value","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","push","chain","Array","apply","concat","length","shift","newConfig","onFulfilled","onRejected","error","getUri","replace","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","Error","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","axiosKeys","otherKeys","Object","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","i","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","pkg","type","thing","deprecatedWarnings","currentVerArr","version","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","getPrototypeOf","isFunction","obj","l","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","Element","_ref","attributes","_ref$attributes","className","_ref$children","children","_ref$selfClose","selfClose","Tag","_proto","_node","Filter","self","address","invalid","audio","br","void","body","TYPE_FLOW","button","TYPE_PHRASING","caption","parent","col","colgroup","details","dd","dl","dt","figcaption","footer","header","hr","img","li","main","ol","picture","rb","rp","rt","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","createConfigBuilder","tagConfigs","_extends2","TYPE_PALPABLE","tag","alt","cite","class","colspan","controls","datetime","default","disabled","dir","height","kind","label","lang","loading","loop","media","muted","poster","role","sizes","span","start","style","src","srclang","srcset","title","width","rowspan","StyleFilter","_Filter","String","INVALID_STYLES","createHTMLDocument","Parser","props","matchers","filters","keyIndex","container","allowed","allowList","ALLOWED_TAG_LIST","Set","BANNED_TAG_LIST","_proto3","reduce","nextNode","node","string","parentConfig","tagName","matchedString","index","valid","_parts","isVoid","partProps","tokenName","elementIndex","tokenizedString","_this","elements","_match","includes","childConfig","Boolean","noHtml","disableLineBreaks","nextMarkup","createContainer","global","createDocument","INVALID_ROOTS","el","newName","ATTRIBUTES","newValue","Number","_this2","count","styles","letter","parseNode","parentNode","transform","transformOnlyAllowList","mergedText","_this3","React","transformed","has","elementProps","_open","_match2","text","startIndex","_elements$tokenName","matcher","endIndex","nodes","containerTagName","emptyContent","parsedContent","mainContent","markup","SvgLogosAppleSmall","ref","color","size","titleId","fill","viewBox","xmlns","d","defaultProps","propTypes","PropTypes","SvgLogosFacebookSmall","SvgLogosGoogleSmall","SvgActionsEmailNormalSmall","clipRule","fillRule","onClick","variant","Button","_extends","clsx","fallback","AppleLogo","FacebookLogo","GoogleLogo","EmailLogo","t","useStravaTranslations","legalTerms","terms_path","legalPrivacy","privacy_path","Markup","noWrap","_excluded","assign","_assertThisInitialized","ReferenceError","_setPrototypeOf","o","p","setPrototypeOf","__proto__","ReCAPTCHA","_React$Component","subClass","superClass","handleExpired","handleErrored","handleChange","handleRecaptchaRef","getCaptchaFunction","fnName","grecaptcha","enterprise","getValue","getResponse","_widgetId","getWidgetId","execute","_executeRequested","executeAsync","executionResolve","executionReject","reset","resetter","forceReset","onExpired","onErrored","onChange","explicitRender","render","wrapper","sitekey","theme","tabindex","stoken","hl","badge","isolated","captcha","appendChild","componentDidMount","componentDidUpdate","elem","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","displayName","isRequired","SCRIPT_MAP","idCount","callbackName","getOptions","recaptchaOptions","getScriptURL","dynamicOptions","useRecaptchaNet","globalName","nonce","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","state","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","setState","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","loaded","obsKey","observers","scriptURL","_options","scriptId","entry","errored","script","attribute","async","callObserverFuncAndRemoveObserver","func","observersMap","onload","observer","componentWillUnmount","removeOnUnmount","allScripts","getElementsByTagName","removeChild","forwardedRef","Component","ForwardedComponent","forwardRef","SvgActionsVisibleDisabledNormalSmall","SvgActionsVisibleNormalSmall","showPasswordText","hidePasswordText","passwordIsVisible","setPasswordIsVisible","useState","Input","prev","ActionsVisibleNormalSmall","ActionsVisibleDisabledNormalSmall","VisuallyHidden","inputMessage","errorMessage","errorMessageTestId","input","htmlFor","PasswordInput","textInput","stagingBaseUrlFromWindow","baseUrlFromWindow","useStagingApi","env","USE_STAGING_API","currentLanguage","_temp","optionalHeaders","moreOptions","csrfToken","metaCsrfTag","head","querySelector","getCsrfToken","i18nPrefix","EMAIL_REGISTRATION_FORM_ALERT_ID","authorizationUrl","reCaptchaSiteKey","honeyPot","isPremium","clubId","plan","challengeId","autoJoinChallenge","formAuthToken","idPrefix","alertConfig","isInView","formInput","setFormInput","email","passwordErrorMsg","setPasswordErrMsg","emailValidationState","setEmailValidationState","isProcessing","setIsProcessing","emailInput","useRef","passwordInput","recaptchaRef","useRecaptcha","logError","useStravaErrorLogging","showAlert","clearAlerts","useAlertContext","emailRegFormAlert","alertType","AlertStatus","ERROR","containerId","hideCloseButton","handleEmailFormSubmit","recaptchaToken","current","getRecaptchaToken","element","elemAttrForAnalytics","EMAIL","formData","append","isNil","apiClient","post","catch","submitFormData","pathType","load","action","properties","path_type","redirect_url","validateEmail","isValidEmail","isExistingEmail","EmailValidator","isUniqueEmail","get","_ref2","isAlreadyRegisteredEmail","validatePassword","isValidPassword","passwordValidationMsg","handleInputChange","event","onSubmit","preventDefault","validateForm","is_valid_email","is_valid_password","is_existing_email","focus","noValidate","RegistrationInput","placeholder","onBlur","autoComplete","display","Spinner","orDivider","or","SvgActionsCancelNormalSmall","echelon","AUTH_BUTTONS","GOOGLE","APPLE","FACEBOOK","authorizationUrls","appleState","category","_track","useStravaAnalytics","signin","appleSignin","useApple","isSignUpModalOpen","dismissSignUpModal","copyParams","athleteAvatar","defaultRedirectUrl","useActiveAfterAuth","useSignUpModalContext","useCallback","fields","page","copy_variant","useEffect","sessionStorage","getItem","HIDE_TIME_DELAY_MODAL","setItem","devLog","loginLink","useMemo","AlertProvider","Modal","isOpen","onDismiss","ModalBody","LinkButton","ActionsCancelNormalSmall","Avatar","AlertContainer","map","option","AccountAuthButton","handleExtAuthBtnClick","OrDivider","EmailRegistrationForm","contentPosition","DisclaimerText","SignUpModalContext","createContext","useContext","SESSION_STORAGE_REDIRECT_KEY","SignUpModalContextProvider","nameForFollowAthleteVariant","redirectUrls","_defaultRedirectUrl","setIsSignUpModalOpen","setDefaultRedirectUrl","setVariant","redirectUrlIsValid","redirectUrl","isValidStravaUrlForCurrentHost","URL","setSessionStorageRedirectUrl","isSessionStorageAvailable","openSignUpModal","_variant","removeItem","providerState","generic","generic_time_delayed","follow_athlete","join_challenge","kudos_comment","running_tools","activity_details","view_profile","find_routes","see_route_details","Provider","array","iteratee","isObjectLike","baseGetTag","symbolProto","Symbol","symbolToString","baseToString","arrayMap","isSymbol","injectAppleScript","locale","AppleID","formattedLocale","appendScriptToBody","stravaInit","init","clientId","scope","redirectURI","signIn","useSafeState","initialState","mountedRef","SvgActionsCancelCircleHighlightedMedium","SvgActionsCheckCircleOnMedium","SvgNavigationWarningHighlightedMedium","SvgNavigationInformationNormalMedium","useInterval","delay","savedCallback","setInterval","clearInterval","SUCCESS","WARNING","INFO","ALERT_DELAY","fadeStyles","enter","isTest","exit","autoDismiss","autoDismissDelay","hideIcon","iconSize","onClose","indicatorIcon","messageType","alertStyle","buttonStyle","ErrorIcon","SuccessIcon","WarningIcon","InfoIcon","getAlertDetails","fadeStyle","setFadeStyle","handleOnClose","alert","fadeIn","fadeOut","alertInner","alertContent","alignLeft","alignCenter","alignRight","closeButtonContainer","CancelIcon","autoDismissBar","useQueue","initialValues","queue","enqueue","items","_key","dequeue","updateQueue","clearQueue","peek","AlertContext","generateRandomId","alerts","some","hideAlert","defaultTranslateAlertInfoText","totalAlertsShown","totalAlerts","limit","shouldShowAlertInfoText","translateAlertInfoText","filterLimit","_","filterContainer","containerIdProp","rest","Alert","SvgNavigationProfileHighlightedMedium","SvgBadgesMulticolorSuperuserSmall","SvgBadgesMulticolorSummitSmall","SvgBadgesMulticolorProSmall","SvgBadgesMulticolorVerifiedSmall","Img","setChildren","image","Image","otherProps","classNames","avatar","ProBadge","EmployeeBadge","SubscriberBadge","VerifiedBadge","getBadge","imgWrapper","AvatarFallback","clip","clipPath","overflow","position","whiteSpace","tester","part"],"sourceRoot":""}