{"version":3,"file":"js/22400-fb04e2aa6a4335392803.js","mappings":";8KAGA,SAASA,IAeP,OAdAA,EAAWC,OAAOC,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,GAGFH,EAASY,MAAMC,KAAMR,WAkB9B,IAAIS,EAAY,CAAC,KAAM,SAQnBC,GAA8B,IAAAC,aAAW,SAAwBC,EAAMC,GACzE,IAAIC,EAAUF,EAAKG,GACfC,OAAmB,IAAZF,EAAqB,OAASA,EACrCG,EAAaL,EAAKM,MAClBA,OAAuB,IAAfD,EAAwB,GAAKA,EACrCE,EA5BN,SAAuCjB,EAAQkB,GAC7C,GAAc,MAAVlB,EAAgB,MAAO,GAC3B,IAEIC,EAAKJ,EAFLD,EAAS,GACTuB,EAAazB,OAAO0B,KAAKpB,GAG7B,IAAKH,EAAI,EAAGA,EAAIsB,EAAWpB,OAAQF,IACjCI,EAAMkB,EAAWtB,GACbqB,EAASG,QAAQpB,IAAQ,IAC7BL,EAAOK,GAAOD,EAAOC,IAGvB,OAAOL,EAgBK0B,CAA8BZ,EAAMH,GAEhD,OAAoB,IAAAgB,eAAcT,EAAMrB,EAAS,CAC/CkB,IAAKA,EACLK,MAAOvB,EAAS,CACd+B,OAAQ,EACRC,KAAM,gBACNC,OAAQ,MACRC,OAAQ,OACRC,SAAU,SACVC,QAAS,EACTC,SAAU,WACVC,MAAO,MAEPC,WAAY,SACZC,SAAU,UACTjB,IACFC,OCzDL,SAASiB,EAAiBC,GACxB,MCT4B,qBAAXC,QAA0BA,OAAOC,UAAYD,OAAOC,SAASd,cDSzDY,EAAUA,EAAQG,cAAgBD,SAAW,KEPpE,SAASE,EAAkBC,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIzC,UAAQ0C,EAAMD,EAAIzC,QAE/C,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIC,MAAMF,GAAM5C,EAAI4C,EAAK5C,IAAK6C,EAAK7C,GAAK2C,EAAI3C,GAEnE,OAAO6C,EAYT,SAASE,EAAgCC,EAAGC,GAC1C,IAAIC,EAEJ,GAAsB,qBAAXC,QAAgD,MAAtBH,EAAEG,OAAOC,UAAmB,CAC/D,GAAIN,MAAMO,QAAQL,KAAOE,EAb7B,SAAqCF,EAAGM,GACtC,GAAKN,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAON,EAAkBM,EAAGM,GACvD,IAAIC,EAAI1D,OAAOQ,UAAUmD,SAASjD,KAAKyC,GAAGS,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkBP,EAAEU,cAAaH,EAAIP,EAAEU,YAAYC,MAC7C,QAANJ,GAAqB,QAANA,EAAoBT,MAAMc,KAAKZ,GACxC,cAANO,GAAqB,2CAA2CM,KAAKN,GAAWb,EAAkBM,EAAGM,QAAzG,GAOgCQ,CAA4Bd,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAE9C,OAAqB,CAChHgD,IAAIF,EAAIE,GACZ,IAAIlD,EAAI,EACR,OAAO,WACL,OAAIA,GAAKgD,EAAE9C,OAAe,CACxB6D,MAAM,GAED,CACLA,MAAM,EACNC,MAAOhB,EAAEhD,OAKf,MAAM,IAAIiE,UAAU,yIAItB,OADAf,EAAKF,EAAEG,OAAOC,aACJc,KAAKC,KAAKjB,GAStB,SAASkB,EAAUtD,EAAKkD,GACtB,GAAW,MAAPlD,EAEJ,GCxCF,SAAoBkD,GAElB,SAAUA,GAAoC,qBAA3B,GAAGR,SAASjD,KAAKyD,IDsChCK,CAAWvD,GACbA,EAAIkD,QAEJ,IACElD,EAAIwD,QAAUN,EACd,MAAOO,GACP,MAAM,IAAIC,MAAM,wBAA2BR,EAAQ,aAAiBlD,EAAM,MEpDhF,SAAS,IAeP,OAdA,EAAWjB,OAAOC,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,GAGF,EAASS,MAAMC,KAAMR,WAkB9B,IAkBIwE,EAlBA,EAAY,CAAC,KAAM,WAAY,QAM/BlD,EAAO,CACTmD,QAAS,EACTC,WAAY,GAEV,EAAW,CACbD,OAAQ,GACRC,UAAW,IAETC,EAAc,CAChBF,OAAQ,KACRC,UAAW,MAcTE,GAAqB,IAAAjE,aAAW,SAAeC,EAAMiE,GACvD,IAAI/D,EAAUF,EAAKG,GACfC,OAAmB,IAAZF,EAAqB,MAAQA,EACpCgE,EAAWlE,EAAKkE,SAChBC,EAAYnE,EAAKoE,KACjBC,OAA2B,IAAdF,EAAuB,SAAWA,EAC/C5D,EAnDN,SAAuCjB,EAAQkB,GAC7C,GAAc,MAAVlB,EAAgB,MAAO,GAC3B,IAEIC,EAAKJ,EAFLD,EAAS,GACTuB,EAAazB,OAAO0B,KAAKpB,GAG7B,IAAKH,EAAI,EAAGA,EAAIsB,EAAWpB,OAAQF,IACjCI,EAAMkB,EAAWtB,GACbqB,EAASG,QAAQpB,IAAQ,IAC7BL,EAAOK,GAAOD,EAAOC,IAGvB,OAAOL,EAuCK,CAA8Bc,EAAM,GAE5CsE,GAAS,IAAAC,QAAO,MAChBtE,EFRN,WACE,IAAK,IAAIuE,EAAOpF,UAAUC,OAAQoF,EAAO,IAAIxC,MAAMuC,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQtF,UAAUsF,GAGzB,OAAO,IAAAC,cAAY,SAAUC,GAC3B,IAAK,IAAuDC,EAAnDC,EAAY5C,EAAgCuC,KAAgBI,EAAQC,KAAa5B,MAExFK,EADUsB,EAAM1B,MACDyB,KAGhBH,GEHOM,CAAgBd,EAAcK,GACpCU,GAAQ,IAAAC,UAAQ,WAClB,OAAoB,IAAApE,eAAcT,EAAM,EAAS,GAAIG,EAAO,CAC1DN,IAAKA,EACL,oBAAoB,IAClBiE,KAEN,CAACA,EAAU3D,IAEX,OAkFF,SAA0B8D,EAAY5C,EAASxB,GAC7C,IAAIiF,ECpKN,SAAqB/B,GACnB,IAAIlD,GAAM,IAAAsE,QAAO,MAIjB,OAHA,IAAAY,YAAU,WACRlF,EAAIwD,QAAUN,IACb,CAACA,IACGlD,EAAIwD,QD+JI2B,CAAYf,GACvBgB,GAAS,IAAAd,QAAO,MAChBe,GAAU,IAAAf,SAAO,IACrB,IAAAY,YAAU,WACR,IAAIvD,EAAgBJ,EAAiBvB,EAAIwD,SAEpC6B,EAAQ7B,QAIFyB,IAAab,GACtBgB,EAAO5B,SAAW4B,EAAO5B,QAAQ8B,UACjCF,EAAO5B,QAAU+B,EAAanB,EAAYzC,GAC1CyD,EAAO5B,QAAQgC,MAAMhE,IAErB4D,EAAO5B,SAAW4B,EAAO5B,QAAQiC,OAAOjE,IARxC6D,EAAQ7B,SAAU,EAClB4B,EAAO5B,QAAU+B,EAAanB,EAAYzC,GAC1CyD,EAAO5B,QAAQgC,MAAMhE,MAQtB,CAACA,EAAS4C,EAAYa,EAAUjF,KACnC,IAAAkF,YAAU,WACR,OAAO,WACLE,EAAO5B,SAAW4B,EAAO5B,QAAQ8B,aAElC,IA1GHI,CAAiBtB,EAAYW,EAAOV,GAC7BU,KAeT,SAASQ,EAAapB,EAAMwB,GAC1B,IAAIrG,IAAQmB,EAAK0D,GAyBjB,MAAO,CACLqB,MAxBU,SAASA,EAAMhE,GACzB,GAAIsC,EAAYK,GACd,EAASA,GAAM7E,GAAOkC,EACtBoE,QACK,CACL,IAAIjB,EAAOgB,EAAI/E,cAAc,OAC7B+D,EAAKkB,aAAa,mBAAqB1B,EAAM,QAC7CL,EAAYK,GAAQQ,EACpBgB,EAAIG,KAAKC,YAAYjC,EAAYK,IACjCqB,EAAMhE,KAgBRiE,OAZW,SAAgBjE,GAC3B,EAAS2C,GAAM7E,GAAOkC,EACtBoE,KAWAN,QARY,kBACL,EAASnB,GAAM7E,GACtBsG,MAUJ,SAASA,IACY,MAAfjC,GACFlC,OAAOuE,aAAarC,GAGtBA,EAAclC,OAAOwE,YAAW,WAC9BlH,OAAO0B,KAAK,GAAUyF,SAAQ,SAAUC,GACtC,IAAI/B,EAAa+B,EACDrC,EAAYM,KAG1B,IAAAgC,SAAqB,IAAAxF,eAAcf,EAAgB,CACjDK,GAAI,QACU,IAAAU,eAAc,MAAO,CAQnCyF,KAAqB,cAAfjC,EAA6B,QAAU,SAC7C,YAAaA,GACZrF,OAAO0B,KAAK,EAAS2D,IAAakC,KAAI,SAAUhH,GACjD,OAAoB,IAAAiH,cAAa,EAASnC,GAAY9E,GAAM,CAC1DA,IAAKA,EACLU,IAAK,YAEH8D,EAAYM,SAGrB,KA6BL,4CE5LA,IAAIoC,EAAuB,EAAQ,OAEnC,SAASC,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3CG,EAAOC,QAAU,WACf,SAASC,EAAKxG,EAAOyG,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWX,EAAf,CAIA,IAAIY,EAAM,IAAI1D,MACZ,mLAKF,MADA0D,EAAIvE,KAAO,sBACLuE,GAGR,SAASC,IACP,OAAOP,EAFTA,EAAKQ,WAAaR,EAMlB,IAAIS,EAAiB,CACnBC,MAAOV,EACPW,OAAQX,EACRY,KAAMZ,EACNa,KAAMb,EACNc,OAAQd,EACRe,OAAQf,EACRgB,OAAQhB,EACRiB,OAAQjB,EAERkB,IAAKlB,EACLmB,QAASZ,EACT7F,QAASsF,EACTX,YAAaW,EACboB,WAAYb,EACZ1C,KAAMmC,EACNqB,SAAUd,EACVe,MAAOf,EACPgB,UAAWhB,EACXiB,MAAOjB,EACPkB,MAAOlB,EAEPmB,eAAgB9B,EAChBC,kBAAmBF,GAKrB,OAFAc,EAAekB,UAAYlB,EAEpBA,0BC9CPX,EAAOC,QAAU,EAAQ,MAAR,mCCNnBD,EAAOC,QAFoB,uHC+C3B,IAlCa,SAAgB9G,GAC3B,IAAIkE,EAAWlE,EAAKkE,SAChBC,EAAYnE,EAAKoE,KACjBA,OAAqB,IAAdD,EAAuB,eAAiBA,EAC/CwE,GAAY,IAAApE,QAAO,MACnBqE,GAAa,IAAArE,QAAO,MAGpBsE,GADY,IAAAC,YACY,GAiB5B,OAfA,SAA0B,WAExB,GAAKH,EAAUlF,QAAf,CAGA,IAAI7B,EAAgB+G,EAAUlF,QAAQ7B,cAItC,OAHAgH,EAAWnF,QAA4B,OAAlB7B,QAA4C,IAAlBA,OAA2B,EAASA,EAAcf,cAAcuD,GAC/GxC,EAAcmE,KAAKC,YAAY4C,EAAWnF,SAC1CoF,EAAY,IACL,WACDD,EAAWnF,SAAWmF,EAAWnF,QAAQ7B,eAC3CgH,EAAWnF,QAAQ7B,cAAcmE,KAAKgD,YAAYH,EAAWnF,aAGhE,CAACW,IACGwE,EAAWnF,SAAU,IAAAuF,cAAa9E,EAAU0E,EAAWnF,SAAW,gBAAoB,OAAQ,CACnGxD,IAAK0I,giBCfLM,YAAyCC,IAAc,kBAAwB,aAU/EC,EAAcC,EA6BoB,oBAAV1H,QAAyBA,OAAO2H,MAAQA,KAAO3H,OAAwB,oBAAR4H,MAAuBA,KAAKD,MAAQA,MAAOC,KAWtI,SAAS/F,EAAUtD,EAAKkD,GACtB,GAAW,MAAPlD,EAEJ,GAAIuD,EAAWvD,GACbA,EAAIkD,QAEJ,IACElD,EAAIwD,QAAUN,EACd,MAAOO,GACP,MAAM,IAAIC,MAAM,wBAA2BR,EAAQ,aAAiBlD,EAAM,MAUhF,SAASsJ,EAAiBpG,GACxB,MAAiB,SAAVA,KAiIT,SAAmBA,GACjB,MAAwB,mBAAVA,EAlImBqG,CAAUrG,IAASA,EAEtD,SAAS+F,IACP,QAA4B,qBAAXxH,SAA0BA,OAAOC,WAAYD,OAAOC,SAASd,eAUhF,SAAS4I,EAAkBhI,EAASlB,GAClC,IAAK,IAAIiE,EAAOpF,UAAUC,OAAQ6E,EAAW,IAAIjC,MAAMuC,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACtGR,EAASQ,EAAO,GAAKtF,UAAUsF,GAGjC,OAAO,IAAAgF,gBAAejI,GAAW,EAAA+E,aAAA,WAAmB,EAAQ,CAAC/E,EAASlB,GAAOoJ,OAAOzF,IAAazC,EAEnG,SAASmI,EAAmB9G,EAAM+G,GAChC,IAAIC,GAAM,IAAAC,eAAcF,GAExB,OADAC,EAAIE,YAAclH,EACXgH,EAYT,SAASG,EAAiB5D,GACxB,OAAO,aAAiBA,GAE1B,SAAS6D,EAAWC,EAAWC,GAC7B,OAAO,OAAWD,EAAWC,GA2C/B,SAASC,EAAwB5I,EAAS6I,GACxC,IAAIC,EAAI,KACJ3E,EAAMpE,EAAiBC,GAQ3B,OANIA,EAAQ+I,aACVD,EAAI9I,EAAQ+I,aAAaF,GAChB1E,GAAOA,EAAI6E,aAAejH,EAAWoC,EAAI6E,YAAYC,oBAC9DH,EAAI3E,EAAI6E,YAAYC,iBAAiBjJ,EAAS,MAAMkJ,iBAAiBL,IAGhEC,EAST,SAAS/I,EAAiBC,GACxB,OAAOA,GAAWA,EAAQG,cAAgBH,EAAQG,cAAgBsH,IAAcvH,SAAW,KAoC7F,SAAS6B,EAAWL,GAClB,SAAUA,GAAoC,qBAA3B,GAAGR,SAASjD,KAAKyD,IA0BtC,SAASyH,EAASzH,GAChB,MAAwB,kBAAVA,EAQhB,SAAS0H,IACP,IAAK,IAAIC,EAAQ1L,UAAUC,OAAQ0L,EAAO,IAAI9I,MAAM6I,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFD,EAAKC,GAAS5L,UAAU4L,GAG1B,OAAOD,EAAKE,QAAO,SAAUC,GAC3B,OAAc,MAAPA,KACNC,KAAK,MAMV,SAAS/B,KAoBT,SAASgC,EAAmBC,EAAiBxB,GAC3C,IAAIyB,GAAgB,IAAA/G,QAA0B,MAAnB8G,GAEvBE,GAAY,IAAAzC,UAASe,GACrB2B,EAAaD,EAAU,GACvBE,EAAWF,EAAU,GAErBG,GAAM,IAAA/G,cAAY,SAAUjC,GACzB4I,EAAc7H,SACjBgI,EAAS/I,KAEV,IACH,MAAO,CAAC4I,EAAc7H,QAAU4H,EAAkBG,EAAYE,GAchE,IAAIC,EAA6BvC,EA6DjC,SAASwC,EAAiBC,GACxB,IAAI5L,GAAM,IAAAsE,QAAOsH,GAIjB,OAHA5C,GAA0B,WACxBhJ,EAAIwD,QAAUoI,MAET,IAAAlH,cAAY,SAAUmH,GAC3B,IAAK,IAAIC,EAAQ3M,UAAUC,OAAQ0L,EAAO,IAAI9I,MAAM8J,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGjB,EAAKiB,EAAQ,GAAK5M,UAAU4M,GAG9B,OAAO/L,EAAIwD,QAAQ9D,MAAMM,EAAK,CAAC6L,GAAOnC,OAAOoB,MAC5C,IAmGL,SAASkB,IACP,IAAK,IAAIC,EAAQ9M,UAAUC,OAAQoF,EAAO,IAAIxC,MAAMiK,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1H,EAAK0H,GAAS/M,UAAU+M,GAG1B,OAAO,IAAAlH,UAAQ,WACb,OAAIR,EAAK2H,OAAM,SAAUnM,GACvB,OAAc,MAAPA,KAEA,KAGF,SAAU2E,GACfH,EAAK0B,SAAQ,SAAUlG,GACrBsD,EAAUtD,EAAK2E,SAGlB,GAAG+E,OAAOlF,IAQf,SAASW,EAAYjC,GACnB,IAAIlD,GAAM,IAAAsE,QAAO,MAIjB,OAHA,IAAAY,YAAU,WACRlF,EAAIwD,QAAUN,IACb,CAACA,IACGlD,EAAIwD,QASb,SAAS4I,EAAgBC,EAAQC,GAC/B,IAAIjH,GAAU,IAAAf,SAAO,IACrB,IAAAY,YAAU,WACJG,EAAQ7B,QACV6I,IAEAhH,EAAQ7B,SAAU,IAGnB8I,GAuCL,SAASC,EAAUC,EAAcC,GAC/B,OAAO,SAAUZ,GAGf,GAFAW,GAAgBA,EAAaX,IAExBA,EAAMa,iBACT,OAAOD,EAAWZ,2BCvlBxBjF,EAAOC,QAAU,EAAjB,2CCEA,IAAI8F,EAAQ,EAAQ,OAChBC,EAAS,EAAQ,OACjBC,EAAW,EAAQ,OACnBC,EAAe,EAAQ,OACvBC,EAAkB,EAAQ,OAC1BC,EAAc,EAAQ,OAE1BpG,EAAOC,QAAU,SAAoBoG,GACnC,OAAO,IAAIC,SAAQ,SAA4BC,EAASC,GACtD,IAAIC,EAAcJ,EAAOK,KACrBC,EAAiBN,EAAOO,QAExBb,EAAMc,WAAWJ,WACZE,EAAe,gBAGxB,IAAIG,EAAU,IAAIC,eAGlB,GAAIV,EAAOW,KAAM,CACf,IAAIC,EAAWZ,EAAOW,KAAKC,UAAY,GACnCC,EAAWb,EAAOW,KAAKE,UAAY,GACvCP,EAAeQ,cAAgB,SAAWC,KAAKH,EAAW,IAAMC,GA8DlE,GA3DAJ,EAAQO,KAAKhB,EAAOiB,OAAOC,cAAetB,EAASI,EAAOmB,IAAKnB,EAAOoB,OAAQpB,EAAOqB,mBAAmB,GAGxGZ,EAAQa,QAAUtB,EAAOsB,QAGzBb,EAAQc,mBAAqB,WAC3B,GAAKd,GAAkC,IAAvBA,EAAQe,aAQD,IAAnBf,EAAQgB,QAAkBhB,EAAQiB,aAAwD,IAAzCjB,EAAQiB,YAAYjO,QAAQ,UAAjF,CAKA,IAAIkO,EAAkB,0BAA2BlB,EAAUZ,EAAaY,EAAQmB,yBAA2B,KAEvGC,EAAW,CACbxB,KAFkBL,EAAO8B,cAAwC,SAAxB9B,EAAO8B,aAAiDrB,EAAQoB,SAA/BpB,EAAQsB,aAGlFN,OAAQhB,EAAQgB,OAChBO,WAAYvB,EAAQuB,WACpBzB,QAASoB,EACT3B,OAAQA,EACRS,QAASA,GAGXd,EAAOO,EAASC,EAAQ0B,GAGxBpB,EAAU,OAIZA,EAAQwB,QAAU,WAGhB9B,EAAOJ,EAAY,gBAAiBC,EAAQ,KAAMS,IAGlDA,EAAU,MAIZA,EAAQyB,UAAY,WAClB/B,EAAOJ,EAAY,cAAgBC,EAAOsB,QAAU,cAAetB,EAAQ,eACzES,IAGFA,EAAU,MAMRf,EAAMyC,uBAAwB,CAChC,IAAIC,EAAU,EAAQ,MAGlBC,GAAarC,EAAOsC,iBAAmBxC,EAAgBE,EAAOmB,OAASnB,EAAOuC,eAC9EH,EAAQI,KAAKxC,EAAOuC,qBACpBE,EAEAJ,IACF/B,EAAeN,EAAO0C,gBAAkBL,GAuB5C,GAlBI,qBAAsB5B,GACxBf,EAAMzG,QAAQqH,GAAgB,SAA0BtC,EAAK3L,GAChC,qBAAhB+N,GAAqD,iBAAtB/N,EAAIsQ,qBAErCrC,EAAejO,GAGtBoO,EAAQmC,iBAAiBvQ,EAAK2L,MAMhCgC,EAAOsC,kBACT7B,EAAQ6B,iBAAkB,GAIxBtC,EAAO8B,aACT,IACErB,EAAQqB,aAAe9B,EAAO8B,aAC9B,MAAOe,GAGP,GAA4B,SAAxB7C,EAAO8B,aACT,MAAMe,EAM6B,oBAA9B7C,EAAO8C,oBAChBrC,EAAQsC,iBAAiB,WAAY/C,EAAO8C,oBAIP,oBAA5B9C,EAAOgD,kBAAmCvC,EAAQwC,QAC3DxC,EAAQwC,OAAOF,iBAAiB,WAAY/C,EAAOgD,kBAGjDhD,EAAOkD,aAETlD,EAAOkD,YAAYC,QAAQC,MAAK,SAAoBC,GAC7C5C,IAILA,EAAQ6C,QACRnD,EAAOkD,GAEP5C,EAAU,cAIMgC,IAAhBrC,IACFA,EAAc,MAIhBK,EAAQ8C,KAAKnD,2CC7JjB,IAAIV,EAAQ,EAAQ,OAChBtJ,EAAO,EAAQ,OACfoN,EAAQ,EAAQ,OAChBC,EAAW,EAAQ,OAQvB,SAASC,EAAeC,GACtB,IAAIC,EAAU,IAAIJ,EAAMG,GACpBE,EAAWzN,EAAKoN,EAAMlR,UAAUmO,QAASmD,GAQ7C,OALAlE,EAAMoE,OAAOD,EAAUL,EAAMlR,UAAWsR,GAGxClE,EAAMoE,OAAOD,EAAUD,GAEhBC,EAIT,IAAIE,EAAQL,EAAeD,GAG3BM,EAAMP,MAAQA,EAGdO,EAAMC,OAAS,SAAgBC,GAC7B,OAAOP,EAAehE,EAAMwE,MAAMT,EAAUQ,KAI9CF,EAAMI,OAAS,EAAQ,OACvBJ,EAAMK,YAAc,EAAQ,OAC5BL,EAAMM,SAAW,EAAQ,OAGzBN,EAAMO,IAAM,SAAaC,GACvB,OAAOtE,QAAQqE,IAAIC,IAErBR,EAAMS,OAAS,EAAQ,MAEvB7K,EAAOC,QAAUmK,EAGjBpK,EAAOC,QAAP,QAAyBmK,kCC3CzB,SAASI,EAAOM,GACd/R,KAAK+R,QAAUA,EAGjBN,EAAO7R,UAAUmD,SAAW,WAC1B,MAAO,UAAY/C,KAAK+R,QAAU,KAAO/R,KAAK+R,QAAU,KAG1DN,EAAO7R,UAAUoS,YAAa,EAE9B/K,EAAOC,QAAUuK,sCChBjB,IAAIA,EAAS,EAAQ,OAQrB,SAASC,EAAYO,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIzO,UAAU,gCAGtB,IAAI0O,EACJlS,KAAKyQ,QAAU,IAAIlD,SAAQ,SAAyBC,GAClD0E,EAAiB1E,KAGnB,IAAI2E,EAAQnS,KACZiS,GAAS,SAAgBF,GACnBI,EAAMC,SAKVD,EAAMC,OAAS,IAAIX,EAAOM,GAC1BG,EAAeC,EAAMC,YAOzBV,EAAY9R,UAAUyS,iBAAmB,WACvC,GAAIrS,KAAKoS,OACP,MAAMpS,KAAKoS,QAQfV,EAAYhS,OAAS,WACnB,IAAIiR,EAIJ,MAAO,CACLwB,MAJU,IAAIT,GAAY,SAAkBY,GAC5C3B,EAAS2B,KAIT3B,OAAQA,IAIZ1J,EAAOC,QAAUwK,kCCtDjBzK,EAAOC,QAAU,SAAkB3D,GACjC,SAAUA,IAASA,EAAMyO,iDCD3B,IAAIjB,EAAW,EAAQ,OACnB/D,EAAQ,EAAQ,OAChBuF,EAAqB,EAAQ,OAC7BC,EAAkB,EAAQ,OAO9B,SAAS1B,EAAMS,GACbvR,KAAK+Q,SAAWQ,EAChBvR,KAAKyS,aAAe,CAClB1E,QAAS,IAAIwE,EACbpD,SAAU,IAAIoD,GASlBzB,EAAMlR,UAAUmO,QAAU,SAAiBT,GAGnB,kBAAXA,IACTA,EAASN,EAAMwE,MAAM,CACnB/C,IAAKjP,UAAU,IACdA,UAAU,MAGf8N,EAASN,EAAMwE,MAAMT,EAAU,CAACxC,OAAQ,OAAQvO,KAAK+Q,SAAUzD,IACxDiB,OAASjB,EAAOiB,OAAO0B,cAG9B,IAAIyC,EAAQ,CAACF,OAAiBzC,GAC1BU,EAAUlD,QAAQC,QAAQF,GAU9B,IARAtN,KAAKyS,aAAa1E,QAAQxH,SAAQ,SAAoCoM,GACpED,EAAME,QAAQD,EAAYE,UAAWF,EAAYG,aAGnD9S,KAAKyS,aAAatD,SAAS5I,SAAQ,SAAkCoM,GACnED,EAAMK,KAAKJ,EAAYE,UAAWF,EAAYG,aAGzCJ,EAAMjT,QACXgR,EAAUA,EAAQC,KAAKgC,EAAMM,QAASN,EAAMM,SAG9C,OAAOvC,GAITzD,EAAMzG,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BgI,GAE/EuC,EAAMlR,UAAU2O,GAAU,SAASE,EAAKnB,GACtC,OAAOtN,KAAK+N,QAAQf,EAAMwE,MAAMlE,GAAU,GAAI,CAC5CiB,OAAQA,EACRE,IAAKA,SAKXzB,EAAMzG,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BgI,GAErEuC,EAAMlR,UAAU2O,GAAU,SAASE,EAAKd,EAAML,GAC5C,OAAOtN,KAAK+N,QAAQf,EAAMwE,MAAMlE,GAAU,GAAI,CAC5CiB,OAAQA,EACRE,IAAKA,EACLd,KAAMA,SAKZ1G,EAAOC,QAAU4J,sCC5EjB,IAAI9D,EAAQ,EAAQ,OAEpB,SAASuF,IACPvS,KAAKiT,SAAW,GAWlBV,EAAmB3S,UAAUsT,IAAM,SAAaL,EAAWC,GAKzD,OAJA9S,KAAKiT,SAASF,KAAK,CACjBF,UAAWA,EACXC,SAAUA,IAEL9S,KAAKiT,SAASxT,OAAS,GAQhC8S,EAAmB3S,UAAUuT,MAAQ,SAAeC,GAC9CpT,KAAKiT,SAASG,KAChBpT,KAAKiT,SAASG,GAAM,OAYxBb,EAAmB3S,UAAU2G,QAAU,SAAiB8M,GACtDrG,EAAMzG,QAAQvG,KAAKiT,UAAU,SAAwBK,GACzC,OAANA,GACFD,EAAGC,OAKTrM,EAAOC,QAAUqL,sCCjDjB,IAAIgB,EAAe,EAAQ,OAY3BtM,EAAOC,QAAU,SAAqB6K,EAASzE,EAAQkG,EAAMzF,EAASoB,GACpE,IAAIrL,EAAQ,IAAIC,MAAMgO,GACtB,OAAOwB,EAAazP,EAAOwJ,EAAQkG,EAAMzF,EAASoB,wCCdpD,IAAInC,EAAQ,EAAQ,OAChByG,EAAgB,EAAQ,OACxB9B,EAAW,EAAQ,OACnBZ,EAAW,EAAQ,OACnB2C,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,MAK1B,SAASC,EAA6BtG,GAChCA,EAAOkD,aACTlD,EAAOkD,YAAY6B,mBAUvBpL,EAAOC,QAAU,SAAyBoG,GAkCxC,OAjCAsG,EAA6BtG,GAGzBA,EAAOuG,UAAYH,EAAcpG,EAAOmB,OAC1CnB,EAAOmB,IAAMkF,EAAYrG,EAAOuG,QAASvG,EAAOmB,MAIlDnB,EAAOO,QAAUP,EAAOO,SAAW,GAGnCP,EAAOK,KAAO8F,EACZnG,EAAOK,KACPL,EAAOO,QACPP,EAAOwG,kBAITxG,EAAOO,QAAUb,EAAMwE,MACrBlE,EAAOO,QAAQkG,QAAU,GACzBzG,EAAOO,QAAQP,EAAOiB,SAAW,GACjCjB,EAAOO,SAAW,IAGpBb,EAAMzG,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BgI,UAClBjB,EAAOO,QAAQU,OAIZjB,EAAO0G,SAAWjD,EAASiD,SAE1B1G,GAAQoD,MAAK,SAA6BvB,GAUvD,OATAyE,EAA6BtG,GAG7B6B,EAASxB,KAAO8F,EACdtE,EAASxB,KACTwB,EAAStB,QACTP,EAAO2G,mBAGF9E,KACN,SAA4BiD,GAc7B,OAbKT,EAASS,KACZwB,EAA6BtG,GAGzB8E,GAAUA,EAAOjD,WACnBiD,EAAOjD,SAASxB,KAAO8F,EACrBrB,EAAOjD,SAASxB,KAChByE,EAAOjD,SAAStB,QAChBP,EAAO2G,qBAKN1G,QAAQE,OAAO2E,uCCvE1BnL,EAAOC,QAAU,SAAsBpD,EAAOwJ,EAAQkG,EAAMzF,EAASoB,GAOnE,OANArL,EAAMwJ,OAASA,EACXkG,IACF1P,EAAM0P,KAAOA,GAEf1P,EAAMiK,QAAUA,EAChBjK,EAAMqL,SAAWA,EACVrL,uCCjBT,IAAIuJ,EAAc,EAAQ,OAS1BpG,EAAOC,QAAU,SAAgBsG,EAASC,EAAQ0B,GAChD,IAAI+E,EAAiB/E,EAAS7B,OAAO4G,eAEhC/E,EAASJ,QAAWmF,IAAkBA,EAAe/E,EAASJ,QAGjEtB,EAAOJ,EACL,mCAAqC8B,EAASJ,OAC9CI,EAAS7B,OACT,KACA6B,EAASpB,QACToB,IAPF3B,EAAQ2B,wCCbZ,IAAInC,EAAQ,EAAQ,OAUpB/F,EAAOC,QAAU,SAAuByG,EAAME,EAASsG,GAMrD,OAJAnH,EAAMzG,QAAQ4N,GAAK,SAAmBd,GACpC1F,EAAO0F,EAAG1F,EAAME,MAGXF,uCChBT,IAAIX,EAAQ,EAAQ,OAChBoH,EAAsB,EAAQ,OAE9BC,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBzG,EAAStK,IACjCyJ,EAAMuH,YAAY1G,IAAYb,EAAMuH,YAAY1G,EAAQ,mBAC3DA,EAAQ,gBAAkBtK,GAgB9B,IAXMyQ,EAWFjD,EAAW,CACbiD,UAX8B,qBAAnBhG,gBAGmB,qBAAZwG,WADhBR,EAAU,EAAQ,QAKbA,GAMPF,iBAAkB,CAAC,SAA0BnG,EAAME,GAEjD,OADAuG,EAAoBvG,EAAS,gBACzBb,EAAMc,WAAWH,IACnBX,EAAMyH,cAAc9G,IACpBX,EAAM0H,SAAS/G,IACfX,EAAM2H,SAAShH,IACfX,EAAM4H,OAAOjH,IACbX,EAAM6H,OAAOlH,GAENA,EAELX,EAAM8H,kBAAkBnH,GACnBA,EAAKoH,OAEV/H,EAAMgI,kBAAkBrH,IAC1B2G,EAAsBzG,EAAS,mDACxBF,EAAK5K,YAEViK,EAAMiI,SAAStH,IACjB2G,EAAsBzG,EAAS,kCACxBqH,KAAKC,UAAUxH,IAEjBA,IAGTsG,kBAAmB,CAAC,SAA2BtG,GAE7C,GAAoB,kBAATA,EACT,IACEA,EAAOuH,KAAKE,MAAMzH,GAClB,MAAOwC,IAEX,OAAOxC,IAOTiB,QAAS,EAETiB,eAAgB,aAChBG,eAAgB,eAEhBqF,kBAAmB,EAEnBnB,eAAgB,SAAwBnF,GACtC,OAAOA,GAAU,KAAOA,EAAS,MAIrCgC,EAASlD,QAAU,CACjBkG,OAAQ,CACN,OAAU,sCAId/G,EAAMzG,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BgI,GACpEwC,EAASlD,QAAQU,GAAU,MAG7BvB,EAAMzG,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BgI,GACrEwC,EAASlD,QAAQU,GAAUvB,EAAMwE,MAAM6C,MAGzCpN,EAAOC,QAAU6J,kCC7FjB9J,EAAOC,QAAU,SAAcmM,EAAIiC,GACjC,OAAO,WAEL,IADA,IAAInK,EAAO,IAAI9I,MAAM7C,UAAUC,QACtBF,EAAI,EAAGA,EAAI4L,EAAK1L,OAAQF,IAC/B4L,EAAK5L,GAAKC,UAAUD,GAEtB,OAAO8T,EAAGtT,MAAMuV,EAASnK,yCCN7B,IAAI6B,EAAQ,EAAQ,OAEpB,SAASuI,EAAOjK,GACd,OAAOkK,mBAAmBlK,GACxBmK,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrBxO,EAAOC,QAAU,SAAkBuH,EAAKC,EAAQC,GAE9C,IAAKD,EACH,OAAOD,EAGT,IAAIiH,EACJ,GAAI/G,EACF+G,EAAmB/G,EAAiBD,QAC/B,GAAI1B,EAAMgI,kBAAkBtG,GACjCgH,EAAmBhH,EAAO3L,eACrB,CACL,IAAI4S,EAAQ,GAEZ3I,EAAMzG,QAAQmI,GAAQ,SAAmBpD,EAAK3L,GAChC,OAAR2L,GAA+B,qBAARA,IAIvB0B,EAAMpK,QAAQ0I,GAChB3L,GAAY,KAEZ2L,EAAM,CAACA,GAGT0B,EAAMzG,QAAQ+E,GAAK,SAAoBsK,GACjC5I,EAAM6I,OAAOD,GACfA,EAAIA,EAAEE,cACG9I,EAAMiI,SAASW,KACxBA,EAAIV,KAAKC,UAAUS,IAErBD,EAAM5C,KAAKwC,EAAO5V,GAAO,IAAM4V,EAAOK,WAI1CF,EAAmBC,EAAMpK,KAAK,KAOhC,OAJImK,IACFjH,KAA8B,IAAtBA,EAAI1N,QAAQ,KAAc,IAAM,KAAO2U,GAG1CjH,kCCvDTxH,EAAOC,QAAU,SAAqB2M,EAASkC,GAC7C,OAAOA,EACHlC,EAAQ4B,QAAQ,OAAQ,IAAM,IAAMM,EAAYN,QAAQ,OAAQ,IAChE5B,sCCVN,IAAI7G,EAAQ,EAAQ,OAEpB/F,EAAOC,QACL8F,EAAMyC,uBAIG,CACLuG,MAAO,SAAe9S,EAAMK,EAAO0S,EAASC,EAAMC,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAOtD,KAAK7P,EAAO,IAAMsS,mBAAmBjS,IAExCyJ,EAAMsJ,SAASL,IACjBI,EAAOtD,KAAK,WAAa,IAAIwD,KAAKN,GAASO,eAGzCxJ,EAAMhC,SAASkL,IACjBG,EAAOtD,KAAK,QAAUmD,GAGpBlJ,EAAMhC,SAASmL,IACjBE,EAAOtD,KAAK,UAAYoD,IAGX,IAAXC,GACFC,EAAOtD,KAAK,UAGdhR,SAASsU,OAASA,EAAO9K,KAAK,OAGhCuE,KAAM,SAAc5M,GAClB,IAAIuT,EAAQ1U,SAASsU,OAAOI,MAAM,IAAIC,OAAO,aAAexT,EAAO,cACnE,OAAQuT,EAAQE,mBAAmBF,EAAM,IAAM,MAGjDG,OAAQ,SAAgB1T,GACtBlD,KAAKgW,MAAM9S,EAAM,GAAIqT,KAAKM,MAAQ,SAO/B,CACLb,MAAO,aACPlG,KAAM,WAAkB,OAAO,MAC/B8G,OAAQ,8CCzCd3P,EAAOC,QAAU,SAAuBuH,GAItC,MAAO,gCAAgCrL,KAAKqL,wCCV9C,IAAIzB,EAAQ,EAAQ,OAEpB/F,EAAOC,QACL8F,EAAMyC,uBAIN,WACE,IAEIqH,EAFAC,EAAO,kBAAkB3T,KAAK4T,UAAUC,WACxCC,EAAiBnV,SAASd,cAAc,KAS5C,SAASkW,EAAW1I,GAClB,IAAI2I,EAAO3I,EAWX,OATIsI,IAEFG,EAAehR,aAAa,OAAQkR,GACpCA,EAAOF,EAAeE,MAGxBF,EAAehR,aAAa,OAAQkR,GAG7B,CACLA,KAAMF,EAAeE,KACrBC,SAAUH,EAAeG,SAAWH,EAAeG,SAAS5B,QAAQ,KAAM,IAAM,GAChF6B,KAAMJ,EAAeI,KACrBC,OAAQL,EAAeK,OAASL,EAAeK,OAAO9B,QAAQ,MAAO,IAAM,GAC3E+B,KAAMN,EAAeM,KAAON,EAAeM,KAAK/B,QAAQ,KAAM,IAAM,GACpEgC,SAAUP,EAAeO,SACzBC,KAAMR,EAAeQ,KACrBC,SAAiD,MAAtCT,EAAeS,SAASC,OAAO,GAChCV,EAAeS,SACf,IAAMT,EAAeS,UAYnC,OARAb,EAAYK,EAAWrV,OAAOwF,SAAS8P,MAQhC,SAAyBS,GAC9B,IAAIC,EAAU9K,EAAMhC,SAAS6M,GAAeV,EAAWU,GAAcA,EACrE,OAAQC,EAAOT,WAAaP,EAAUO,UAChCS,EAAOR,OAASR,EAAUQ,MAhDpC,GAsDS,WACL,OAAO,uCC9Db,IAAItK,EAAQ,EAAQ,OAEpB/F,EAAOC,QAAU,SAA6B2G,EAASkK,GACrD/K,EAAMzG,QAAQsH,GAAS,SAAuBtK,EAAOL,GAC/CA,IAAS6U,GAAkB7U,EAAKsL,gBAAkBuJ,EAAevJ,gBACnEX,EAAQkK,GAAkBxU,SACnBsK,EAAQ3K,4CCNrB,IAAI8J,EAAQ,EAAQ,OAIhBgL,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5B/Q,EAAOC,QAAU,SAAsB2G,GACrC,IACIlO,EACA2L,EACA/L,EAHAuY,EAAS,GAKb,OAAKjK,GAELb,EAAMzG,QAAQsH,EAAQoK,MAAM,OAAO,SAAgBC,GAKjD,GAJA3Y,EAAI2Y,EAAKnX,QAAQ,KACjBpB,EAAMqN,EAAMmL,KAAKD,EAAKE,OAAO,EAAG7Y,IAAI0Q,cACpC3E,EAAM0B,EAAMmL,KAAKD,EAAKE,OAAO7Y,EAAI,IAE7BI,EAAK,CACP,GAAImY,EAAOnY,IAAQqY,EAAkBjX,QAAQpB,IAAQ,EACnD,OAGAmY,EAAOnY,GADG,eAARA,GACamY,EAAOnY,GAAOmY,EAAOnY,GAAO,IAAIoK,OAAO,CAACuB,IAEzCwM,EAAOnY,GAAOmY,EAAOnY,GAAO,KAAO2L,EAAMA,MAKtDwM,GAnBgBA,kCCVzB7Q,EAAOC,QAAU,SAAgB+E,GAC/B,OAAO,SAAc/J,GACnB,OAAO+J,EAASlM,MAAM,KAAMmC,yCCtBhC,IAAIwB,EAAO,EAAQ,OACfgR,EAAW,EAAQ,OAMnB3R,EAAW3D,OAAOQ,UAAUmD,SAQhC,SAASH,EAAQ0I,GACf,MAA8B,mBAAvBvI,EAASjD,KAAKwL,GA2EvB,SAAS2J,EAAS3J,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAuChC,SAAS1H,EAAW0H,GAClB,MAA8B,sBAAvBvI,EAASjD,KAAKwL,GAoEvB,SAAS/E,EAAQ8R,EAAKhF,GAEpB,GAAY,OAARgF,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLzV,EAAQyV,GAEV,IAAK,IAAI9Y,EAAI,EAAG+Y,EAAID,EAAI5Y,OAAQF,EAAI+Y,EAAG/Y,IACrC8T,EAAGvT,KAAK,KAAMuY,EAAI9Y,GAAIA,EAAG8Y,QAI3B,IAAK,IAAI1Y,KAAO0Y,EACVjZ,OAAOQ,UAAUC,eAAeC,KAAKuY,EAAK1Y,IAC5C0T,EAAGvT,KAAK,KAAMuY,EAAI1Y,GAAMA,EAAK0Y,GA0DrCpR,EAAOC,QAAU,CACftE,QAASA,EACT6R,cAhQF,SAAuBnJ,GACrB,MAA8B,yBAAvBvI,EAASjD,KAAKwL,IAgQrBoJ,SAAUA,EACV5G,WAxPF,SAAoBxC,GAClB,MAA4B,qBAAbiN,UAA8BjN,aAAeiN,UAwP5DzD,kBA/OF,SAA2BxJ,GAOzB,MAL4B,qBAAhBkN,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOnN,GAEnB,GAAUA,EAAU,QAAMA,EAAIyJ,kBAAkByD,aA2O3DxN,SAhOF,SAAkBM,GAChB,MAAsB,kBAARA,GAgOdgL,SAvNF,SAAkBhL,GAChB,MAAsB,kBAARA,GAuNd2J,SAAUA,EACVV,YA/MF,SAAqBjJ,GACnB,MAAsB,qBAARA,GA+MduK,OA5LF,SAAgBvK,GACd,MAA8B,kBAAvBvI,EAASjD,KAAKwL,IA4LrBsJ,OAnLF,SAAgBtJ,GACd,MAA8B,kBAAvBvI,EAASjD,KAAKwL,IAmLrBuJ,OA1KF,SAAgBvJ,GACd,MAA8B,kBAAvBvI,EAASjD,KAAKwL,IA0KrB1H,WAAYA,EACZ+Q,SAxJF,SAAkBrJ,GAChB,OAAO2J,EAAS3J,IAAQ1H,EAAW0H,EAAIoN,OAwJvC1D,kBA/IF,SAA2B1J,GACzB,MAAkC,qBAApBqN,iBAAmCrN,aAAeqN,iBA+IhElJ,qBArHF,WACE,OAAyB,qBAAduH,WAAmD,gBAAtBA,UAAU4B,WAI9B,qBAAX9W,QACa,qBAAbC,WAgHTwE,QAASA,EACTiL,MArDF,SAASA,IACP,IAAIqH,EAAS,GACb,SAASC,EAAYxN,EAAK3L,GACG,kBAAhBkZ,EAAOlZ,IAAoC,kBAAR2L,EAC5CuN,EAAOlZ,GAAO6R,EAAMqH,EAAOlZ,GAAM2L,GAEjCuN,EAAOlZ,GAAO2L,EAIlB,IAAK,IAAI/L,EAAI,EAAG+Y,EAAI9Y,UAAUC,OAAQF,EAAI+Y,EAAG/Y,IAC3CgH,EAAQ/G,UAAUD,GAAIuZ,GAExB,OAAOD,GAyCPzH,OA9BF,SAAgB2H,EAAGC,EAAG1D,GAQpB,OAPA/O,EAAQyS,GAAG,SAAqB1N,EAAK3L,GAEjCoZ,EAAEpZ,GADA2V,GAA0B,oBAARhK,EACX5H,EAAK4H,EAAKgK,GAEVhK,KAGNyN,GAuBPZ,KA1IF,SAAcc,GACZ,OAAOA,EAAIxD,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,+ICjK3CyD,EAA+BC,EAAAA,YACnC,WAA4C9Y,GAA5C,IAAG+Y,EAAH,EAAGA,MAAOC,EAAV,EAAUA,KAAMC,EAAhB,EAAgBA,MAAOC,EAAvB,EAAuBA,QAAY5Y,GAAnC,mBACE,+BACE6Y,KAAMJ,EACNK,MAAM,6BACNC,QAAQ,YACRrZ,IAAKA,EACLoB,MAAO4X,EACPjY,OAAQiY,EACR,kBAAiBE,GACb5Y,GAEH2Y,EAAQ,yBAAOlG,GAAImG,GAAUD,GAAiB,KAC/C,wBACEK,EAAE,0HACFH,KAAK,SAKbN,EAA6BU,aAAe,CAC1CR,MAAO,eACPC,KAAM,GACNC,WAAOvJ,EACPwJ,aAASxJ,GAEXmJ,EAA6BW,UAAY,CACvCT,MAAOtQ,IAAAA,OACPuQ,KAAMvQ,IAAAA,OACNwQ,MAAOxQ,IAAAA,OACPyQ,QAASzQ,IAAAA,QAEX,gDC1BA,IAAIjC,EAAuBiT,EAAQ,OAEnC,SAAShT,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3CG,EAAOC,QAAU,WACf,SAASC,EAAKxG,EAAOyG,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWX,EAAf,CAIA,IAAIY,EAAM,IAAI1D,MACZ,mLAKF,MADA0D,EAAIvE,KAAO,sBACLuE,GAGR,SAASC,IACP,OAAOP,EAFTA,EAAKQ,WAAaR,EAMlB,IAAIS,EAAiB,CACnBC,MAAOV,EACPW,OAAQX,EACRY,KAAMZ,EACNa,KAAMb,EACNc,OAAQd,EACRe,OAAQf,EACRgB,OAAQhB,EACRiB,OAAQjB,EAERkB,IAAKlB,EACLmB,QAASZ,EACT7F,QAASsF,EACTX,YAAaW,EACboB,WAAYb,EACZ1C,KAAMmC,EACNqB,SAAUd,EACVe,MAAOf,EACPgB,UAAWhB,EACXiB,MAAOjB,EACPkB,MAAOlB,EAEPmB,eAAgB9B,EAChBC,kBAAmBF,GAKrB,OAFAc,EAAekB,UAAYlB,EAEpBA,0BC9CPX,EAAOC,QAAU4S,EAAQ,MAARA,mCCNnB7S,EAAOC,QAFoB,kPCJrB6S,GAAS5Z,EAAAA,EAAAA,aACb,WAAkDE,GAAS,IAAxDiE,EAAuD,EAAvDA,SAAU0V,EAA6C,EAA7CA,QAASC,EAAoC,EAApCA,UAAcC,GAAsB,YAClDC,EAAa,CAACC,EAAAA,EAAAA,IAAYA,EAAAA,EAAOJ,GAAUC,GAEjD,OACE,kCAAQ5Z,IAAKA,EAAK4Z,UAAWE,EAAW5O,KAAK,MAAU2O,GACpD5V,MAMTyV,EAAOF,UAAY,CACjBvV,SAAUwE,IAAAA,KAAAA,WACVkR,QAASlR,IAAAA,MAAgB,CACvB,UACA,UACA,kBACA,YACA,OACA,SAEFmR,UAAWnR,IAAAA,QAGbiR,EAAOH,aAAe,CACpBI,QAAS,UACTC,UAAW,MAGb,oDC9BMI,GAAala,EAAAA,EAAAA,aACjB,WAAwDE,GAAS,IAA9D+W,EAA6D,EAA7DA,KAAM9S,EAAuD,EAAvDA,SAAU0V,EAA6C,EAA7CA,QAASC,EAAoC,EAApCA,UAAcC,GAAsB,YACxDC,EAAa,CAACC,EAAAA,EAAAA,IAAYA,EAAAA,EAAOJ,GAAUC,GAEjD,OACE,6BAAG5Z,IAAKA,EAAK+W,KAAMA,EAAM6C,UAAWE,EAAW5O,KAAK,MAAU2O,GAC3D5V,MAMT+V,EAAWR,UAAY,CACrBzC,KAAMtO,IAAAA,OAAAA,WACNxE,SAAUwE,IAAAA,KAAAA,WACVkR,QAASlR,IAAAA,MAAgB,CACvB,UACA,UACA,kBACA,YACA,OACA,SAEFmR,UAAWnR,IAAAA,QAGbuR,EAAWT,aAAe,CACxBI,QAAS,UACTC,UAAW,MAGb,2UCjCWK,EAAc,kBAIdC,EAAiB,2BCSrB,SAASC,EAAa3V,EAAMoF,GAC/B,OCF2BwQ,EDELxQ,GAAgB,KCFGgC,EDEG,SAAUyO,GAAY,OAAO7V,EAAK0B,SAAQ,SAAUlG,GAAO,OEJpG,SAAmBA,EAAKkD,GAO3B,MANmB,oBAARlD,EACPA,EAAIkD,GAEClD,IACLA,EAAIwD,QAAUN,GAEXlD,EFHuGsD,CAAUtD,EAAKqa,QCDzHra,GAAM,IAAA6I,WAAS,WAAc,MAAO,CAEpC3F,MAAOkX,EAEPxO,SAAUA,EAEV0O,OAAQ,CACA9W,cACA,OAAOxD,EAAIkD,OAEXM,YAAQN,GACR,IAAIqX,EAAOva,EAAIkD,MACXqX,IAASrX,IACTlD,EAAIkD,MAAQA,EACZlD,EAAI4L,SAAS1I,EAAOqX,UAI7B,IAEH3O,SAAWA,EACR5L,EAAIsa,OAtBR,IAAwBF,EAAcxO,EACrC5L,EEdD,IAAIwa,EAAc,CACvBpZ,MAAO,MACPL,OAAQ,MACRG,QAAS,EACTD,SAAU,SACVE,SAAU,QACVsZ,IAAK,MACLC,KAAM,OAGJC,EAAe,SAAsB5a,GACvC,IAAIkE,EAAWlE,EAAKkE,SACpB,OAAoB,gBAAoB,WAAgB,KAAmB,gBAAoB,MAAO,CACpG3E,IAAK,cACL,oBAAoB,EACpB,yBAAyB,EACzBe,MAAOma,IACLvW,EAAUA,GAAyB,gBAAoB,MAAO,CAChE3E,IAAK,aACL,oBAAoB,EACpB,yBAAyB,EACzBe,MAAOma,MAIXG,EAAanB,UAET,GACJmB,EAAapB,aAAe,CAC1BtV,SAAU,MAEZ,eChCA,SAAS2W,EAAKlC,GACV,OAAOA,EAEX,SAASmC,EAAkBnK,EAAUoK,QACd,IAAfA,IAAyBA,EAAaF,GAC1C,IAAIlG,EAAS,GACTqG,GAAW,EA0Df,MAzDa,CACTtL,KAAM,WACF,GAAIsL,EACA,MAAM,IAAIrX,MAAM,oGAEpB,OAAIgR,EAAOtV,OACAsV,EAAOA,EAAOtV,OAAS,GAE3BsR,GAEXsK,UAAW,SAAU1N,GACjB,IAAI2N,EAAOH,EAAWxN,EAAMyN,GAE5B,OADArG,EAAOhC,KAAKuI,GACL,WACHvG,EAASA,EAAO1J,QAAO,SAAUkQ,GAAK,OAAOA,IAAMD,OAG3DE,iBAAkB,SAAUC,GAExB,IADAL,GAAW,EACJrG,EAAOtV,QAAQ,CAClB,IAAIic,EAAM3G,EACVA,EAAS,GACT2G,EAAInV,QAAQkV,GAEhB1G,EAAS,CACLhC,KAAM,SAAUwI,GAAK,OAAOE,EAAGF,IAC/BlQ,OAAQ,WAAc,OAAO0J,KAGrC4G,aAAc,SAAUF,GACpBL,GAAW,EACX,IAAIQ,EAAe,GACnB,GAAI7G,EAAOtV,OAAQ,CACf,IAAIic,EAAM3G,EACVA,EAAS,GACT2G,EAAInV,QAAQkV,GACZG,EAAe7G,EAEnB,IAAI8G,EAAe,WACf,IAAIH,EAAME,EACVA,EAAe,GACfF,EAAInV,QAAQkV,IAEZK,EAAQ,WAAc,OAAOvO,QAAQC,UAAUkD,KAAKmL,IACxDC,IACA/G,EAAS,CACLhC,KAAM,SAAUwI,GACZK,EAAa7I,KAAKwI,GAClBO,KAEJzQ,OAAQ,SAAUA,GAEd,OADAuQ,EAAeA,EAAavQ,OAAOA,GAC5B0J,MAOpB,SAASgH,EAAahL,EAAUoK,GAEnC,YADmB,IAAfA,IAAyBA,EAAaF,GACnCC,EAAkBnK,EAAUoK,GAGhC,SAASa,EAAoBC,QAChB,IAAZA,IAAsBA,EAAU,IACpC,IAAIC,EAAShB,EAAkB,MAE/B,OADAgB,EAAOD,SAAU,QAAS,CAAEE,OAAO,EAAMC,KAAK,GAASH,GAChDC,EC3EJ,IAAIG,EAAcN,EAAa,IAAI,SAAU3b,GAGlD,MAAO,CACLd,OAHWc,EAAKd,OAIhBgd,cAHkBlc,EAAKkc,kBAMhBC,EAAaR,IACbS,EAAeT,IACfU,EAAgBT,EAAoB,CAC7CG,OAAO,ICJLO,EAAa,GACbC,EAAyB,cAAiB,SAAqBhc,EAAOic,GACxE,IAAIC,EAEAC,EAAkB,aAClBC,EAAeD,EAAgB,GAC/BE,EAAcF,EAAgB,GAE9BG,EAAW,WACXC,EAAW,UAAa,GACxBC,EAAyB,SAAa,MACtC7Y,EAAW3D,EAAM2D,SACjB8Y,EAAWzc,EAAMyc,SACjBC,EAAgB1c,EAAM0c,cACtBC,EAAkB3c,EAAM2c,gBACxBC,EAAa5c,EAAM4c,WACnBC,EAAY7c,EAAM6c,UAElBC,GADqB9c,EAAM+c,mBACnB/c,EAAM8c,OACdxD,EAAYtZ,EAAMsZ,UAClB0D,EAAYhd,EAAMgd,UAClBC,EAAqBjd,EAAMid,mBAC3BC,EAAgBld,EAAMmd,OACtBA,OAA2B,IAAlBD,EAA2BnB,EAAamB,EACjDE,EAAYpd,EAAMJ,GAClByd,OAA0B,IAAdD,EAAuB,MAAQA,EAC3CE,EAAmBtd,EAAMud,UACzBC,OAAsC,IAArBF,EAA8B,GAAKA,EACpDG,EAAUzd,EAAM0d,QAChBC,EAAoB3d,EAAM4d,YAC1BC,EAAe7d,EAAM6d,aACrBC,EAAuB9d,EAAM+d,aAC7BC,EAAyBhe,EAAMie,eAG/BxL,EADmB,WAAe,IACZ,GAGtBsL,EAAe,eAAkB,WACnCvB,EAAuBtZ,QAAUsZ,EAAuBtZ,SAAW9B,UAAYA,SAAS8c,cAEpF5B,EAASpZ,SAAW4a,GACtBA,EAAqBxB,EAASpZ,SAGhCqZ,EAASrZ,SAAU,IAClB,CAAC4a,IACAG,EAAiB,eAAkB,WACrC1B,EAASrZ,SAAU,EAEf8a,GACFA,EAAuB1B,EAASpZ,WAEjC,CAAC8a,KACJ,IAAApZ,YAAU,WACH6X,IAGHD,EAAuBtZ,QAAU,QAElC,IACH,IAAI0a,EAAc,eAAkB,SAAUO,GAC5C,IAAIC,EAAgB5B,EAAuBtZ,QAE3C,GAAIkb,GAAiBA,EAAcC,MAAO,CACxC,IAAIC,EAAgD,oBAAtBX,EAAmCA,EAAkBS,GAAiBT,EAEpG,GAAIW,EAAkB,CACpB,IAAIC,EAAiD,kBAArBD,EAAgCA,OAAmBlP,EACnFoN,EAAuBtZ,QAAU,KAE7Bib,EAGFvR,QAAQC,UAAUkD,MAAK,WACrB,OAAOqO,EAAcC,MAAME,MAG7BH,EAAcC,MAAME,OAIzB,CAACZ,IAEAa,EAAU,eAAkB,SAAUjT,GACpCgR,EAASrZ,SACXwY,EAAYhB,UAAUnP,KAEvB,IACCkT,EAAS7C,EAAWlB,UAGpBgE,EAAiB,eAAkB,SAAUC,GAC3CrC,EAASpZ,UAAYyb,IACvBrC,EAASpZ,QAAUyb,EACnBtC,EAAYsC,MAEb,IAgBH,IAAIpB,GAAY,SAAUrB,EAAY,IAAc,GAA4BO,GAAY,WAAYP,EAAU,GAAyBY,EAAOZ,GAAYsB,GAE1JoB,GAAqC,IAAlBlC,EACnBmC,EAAmBD,GAAsC,SAAlBlC,EACvCoC,EAAYjF,EAAa,CAACoC,EAAWyC,IACzC,OAAoB,gBAAoB,WAAgB,KAAME,GAAoB,CAGlF,gBAAoB,MAAO,CACzB5f,IAAK,cACL,oBAAoB,EACpB+f,SAAUtC,GAAY,EAAI,EAC1B1c,MAAOma,IAET+C,EAAkC,gBAAoB,MAAO,CAC3Dje,IAAK,gBACL,oBAAoB,EACpB+f,SAAUtC,GAAY,EAAI,EAC1B1c,MAAOma,IACJ,OAAQuC,GAAyB,gBAAoBgB,EAAS,CACjEhL,GAAIA,EACJiL,QAAS5B,EACTQ,SAAUF,EACVK,SAAUA,EACVE,gBAAiBA,EACjBC,WAAYA,EACZC,UAAWA,EACXG,UAAWA,EACXG,OAAQA,EACRY,aAAcA,EACdE,eAAgBA,EAChBL,YAAaA,EACbC,aAAcA,IACC,gBAAoBR,GAAW,OAAS,CACvD3d,IAAKof,GACJvB,EAAW,CACZjE,UAAWA,EACXmF,OAAQA,EACRD,QAASA,IACP7a,GAAWkb,GAAiC,gBAAoB,MAAO,CACzE,oBAAoB,EACpBE,SAAUtC,GAAY,EAAI,EAC1B1c,MAAOma,QAGX8B,EAAU9C,UAoBN,GACJ8C,EAAU/C,aAAe,CACvBtV,cAAUyL,EACVqN,UAAU,EACVmB,aAAa,EACbC,kBAAczO,EACdsN,eAAe,EACfG,WAAW,EACXF,iBAAiB,EACjBC,YAAY,EACZK,wBAAoB7N,EACpB2N,wBAAoB3N,EACpB0N,WAAO1N,EACPkK,eAAWlK,EACX4N,eAAW5N,EACX+N,YAAQ/N,EACRxP,GAAI,MACJ2d,UAAW,GACXQ,kBAAc3O,EACd6O,oBAAgB7O,GAElB,6BCjIA,MA1EA,SAAwB4P,EAAoBC,GAe1C,OAAO,SAAcC,GAOnB,IACIC,EADAC,EAAmB,GAGvB,SAASC,IACPF,EAAQH,EAAmBI,EAAiBpZ,KAAI,SAAUwK,GACxD,OAAOA,EAASxQ,UAElBif,EAA0BE,GAG5B,IAAIG,EAA0B,SAAUC,GAGtC,SAASD,IACP,OAAOC,EAAengB,MAAMC,KAAMR,YAAcQ,MAHlD,OAAeigB,EAAYC,GAO3BD,EAAWE,KAAO,WAChB,OAAOL,GAGT,IAAIM,EAASH,EAAWrgB,UAqBxB,OAnBAwgB,EAAOC,kBAAoB,WACzBN,EAAiBhN,KAAK/S,MACtBggB,KAGFI,EAAOE,mBAAqB,WAC1BN,KAGFI,EAAOG,qBAAuB,WAC5B,IAAIC,EAAQT,EAAiBhf,QAAQf,MACrC+f,EAAiBU,OAAOD,EAAO,GAC/BR,KAGFI,EAAO3Z,OAAS,WACd,OAAoB,gBAAoBoZ,EAAkB7f,KAAKW,QAG1Dsf,EAjCqB,CAkC5B,EAAAS,eAIF,OAFA,OAAgBT,EAAY,cAAe,cAzD7C,SAAwBJ,GACtB,OAAOA,EAAiBzV,aAAeyV,EAAiB3c,MAAQ,YAwDLyd,CAAed,GAAoB,KAEvFI,IC7DPW,EAAgB,SAAU5b,GAE1B,OAAOA,EAAK6b,YAAc7b,EAAK6b,WAAWC,WAAaC,KAAKC,uBAEpDhc,EAAK6b,WAAWvJ,KAClBtS,EAAK6b,YAEXI,EAAY,SAAUjc,GAEtB,OAAOA,IAASjD,UAAaiD,GAAQA,EAAK8b,WAAaC,KAAKG,eAE5DC,EAAoB,SAAUnc,EAAMoc,GACpC,OAAQpc,GAAQic,EAAUjc,KAxBR,SAAUA,GAG5B,GAAIA,EAAK8b,WAAaC,KAAKM,aACvB,OAAO,EAEX,IAAIC,EAAgBxf,OAAOgJ,iBAAiB9F,EAAM,MAClD,SAAKsc,IAAkBA,EAAcvW,oBAGiB,SAA9CuW,EAAcvW,iBAAiB,YAA0E,WAAjDuW,EAAcvW,iBAAiB,eAc1DwW,CAAgBvc,IAASoc,EAAYR,EAAc5b,KAEjFwc,EAAkB,SAAUC,EAAiBzc,GACpD,IAAI0c,EAASD,EAAgBE,IAAI3c,GACjC,QAAe+K,IAAX2R,EACA,OAAOA,EAEX,IAAI7I,EAASsI,EAAkBnc,EAAMwc,EAAgB9d,UAAKqM,EAAW0R,IAErE,OADAA,EAAgB3V,IAAI9G,EAAM6T,GACnBA,GAKA+I,EAA2B,SAAUC,EAAO7c,GACnD,IAAI0c,EAASG,EAAMF,IAAI3c,GACvB,QAAe+K,IAAX2R,EACA,OAAOA,EAEX,IAAI7I,EARyB,SAAU7T,EAAMoc,GAC7C,QAAOpc,IAASic,EAAUjc,OAAS8c,EAAmB9c,IAAQoc,EAAYR,EAAc5b,IAO3E+c,CAA2B/c,EAAM4c,EAAyBle,UAAKqM,EAAW8R,IAEvF,OADAA,EAAM/V,IAAI9G,EAAM6T,GACTA,GAEAmJ,EAAa,SAAUhd,GAE9B,OAAOA,EAAKid,SAGLC,EAAqB,SAAUld,GAAQ,MAAwB,UAAjBA,EAAKmd,SACnDC,EAAiB,SAAUpd,GAClC,OAAOkd,EAAmBld,IAAuB,UAAdA,EAAKR,MAKjCsd,EAAqB,SAAU9c,GACtC,IAAIqd,EAAYrd,EAAKsd,aTxCO,qBSyC5B,OAAQ,EAAC,EAAM,OAAQ,IAAIC,SAASF,IAE7BG,EAAU,SAAUxd,GAAQ,IAAIyd,EAAI,OAAOC,QAAQ1d,IAAqC,QAA3Byd,EAAKT,EAAWhd,UAA0B,IAAPyd,OAAgB,EAASA,EAAGE,cAC5HC,EAAc,SAAU5d,GAAQ,OAAQwd,EAAQxd,IAChD6d,EAAY,SAAUtH,GAAK,OAAOmH,QAAQnH,IC3D1CuH,EAAc,SAAU9d,EAAM+d,GACrC,OAAIX,EAAepd,IAASA,EAAK9B,KAPb,SAAU8B,EAAM+d,GACpC,OAAOA,EACF1X,OAAO+W,GACP/W,QAAO,SAAU2X,GAAM,OAAOA,EAAG9f,OAAS8B,EAAK9B,QAC/CmI,QAAO,SAAU2X,GAAM,OAAOA,EAAGC,WAAY,IAAMje,EAI7Cke,CAAkBle,EAAM+d,GAE5B/d,GCVAme,EAAiB,SAAUJ,GAClC,OAAIA,EAAM,IAAMA,EAAMtjB,OAAS,EACpBqjB,EAAYC,EAAM,GAAIA,GAE1BA,EAAM,IAENK,EAAgB,SAAUL,EAAOvC,GACxC,OAAIuC,EAAMtjB,OAAS,EACRsjB,EAAMhiB,QAAQ+hB,EAAYC,EAAMvC,GAAQuC,IAE5CvC,GCRA6C,EAAY,YASZC,EAAW,SAAUC,EAAYC,EAAY3E,EAAe4E,GACnE,IAAIC,EAAMH,EAAW9jB,OACjBkkB,EAAaJ,EAAW,GACxBK,EAAYL,EAAWG,EAAM,GAC7BG,EAAYrB,EAAQ3D,GAExB,KAAIA,GAAiB0E,EAAWxiB,QAAQ8d,IAAkB,GAA1D,CAGA,IFJgCkE,EAE5Be,EEEAC,OAAgChU,IAAlB8O,EAA8B2E,EAAWziB,QAAQ8d,IAAkB,EACjFmF,EAAYP,EAAWD,EAAWziB,QAAQ0iB,GAAYM,EACtDE,EAAiBR,EAAWF,EAAWxiB,QAAQ0iB,IAAa,EAC5DS,EAAYH,EAAcC,EAC1BG,EAAiBX,EAAWziB,QAAQ4iB,GACpCS,EAAgBZ,EAAWziB,QAAQ6iB,GACnCS,GFV4BtB,EEUES,EFR9BM,EAAY,IAAIQ,IACpBvB,EAAMxc,SAAQ,SAAUvB,GAAQ,OAAO8e,EAAUS,IAAIzB,EAAY9d,EAAM+d,OAEhEA,EAAM1X,QAAO,SAAUrG,GAAQ,OAAO8e,EAAUU,IAAIxf,OEOvDyf,QADmC1U,IAAlB8O,EAA8BwF,EAAetjB,QAAQ8d,IAAkB,IACjD4E,EAAWY,EAAetjB,QAAQ0iB,GAAYM,GACrFW,EAAkBtB,EAAcG,EAAY,GAC5CoB,EAAiBvB,EAAcG,EAAYG,EAAM,GAErD,OAAqB,IAAjBK,IAA0C,IAApBE,EACfZ,GAGNa,GAAaD,GAAkB,EACzBA,EAGPF,GAAeI,GAAkBN,GAAapa,KAAKmb,IAAIV,GAAa,EAC7DS,EAGPZ,GAAeK,GAAiBP,GAAapa,KAAKmb,IAAIV,GAAa,EAC5DQ,EAGPR,GAAaza,KAAKmb,IAAIH,GAAsB,EACrCR,EAGPF,GAAeI,EACRQ,EAGPZ,EAAcK,EACPM,EAGPR,EACIza,KAAKmb,IAAIV,GAAa,EACfD,GAEHP,EAAMO,EAAiBC,GAAaR,OAJhD,IC1DOmB,EAAU,SAAU9L,GAE3B,IADA,IAAI+L,EAAMziB,MAAM0W,EAAEtZ,QACTF,EAAI,EAAGA,EAAIwZ,EAAEtZ,SAAUF,EAC5BulB,EAAIvlB,GAAKwZ,EAAExZ,GAEf,OAAOulB,GAEAC,EAAU,SAAUhM,GAAK,OAAQ1W,MAAMO,QAAQmW,GAAKA,EAAI,CAACA,ICTzDiM,EAAU,SAAUjM,EAAGC,GAC9B,IAAIiM,EAAUlM,EAAE2G,SAAW1G,EAAE0G,SACzBwE,EAAYnL,EAAEyH,MAAQxH,EAAEwH,MAC5B,GAAIyE,EAAS,CACT,IAAKlM,EAAE2G,SACH,OAAO,EAEX,IAAK1G,EAAE0G,SACH,OAAQ,EAGhB,OAAOuF,GAAWf,GAEXgB,EAAkB,SAAUnC,EAAOoC,EAAgBC,GAC1D,OAAOP,EAAQ9B,GACVpc,KAAI,SAAU3B,EAAMwb,GAAS,MAAO,CACrCxb,KAAMA,EACNwb,MAAOA,EACPd,SAAU0F,IAAiC,IAAnBpgB,EAAK0a,UAAoB1a,EAAKid,SAAW,IAAIU,WAAa,GAAK,EAAK3d,EAAK0a,aAEhGrU,QAAO,SAAUsC,GAAQ,OAAQwX,GAAkBxX,EAAK+R,UAAY,KACpE2F,KAAKL,ICnBVM,ECAmB,CACnB,iBACA,iBACA,mBACA,gBAGA,UACA,aACA,UACA,SACA,SACA,QACA,kBACA,kBACA,aACA,oBACA,eDjB2B/Z,KAAK,KAChCga,EAAsB,GAAGxb,OAAOub,EAAgB,wBAChDE,EAA6B,SAAUC,EAAQC,GAC/C,IAAIjD,EACJ,OAAOoC,GAAsC,QAA5BpC,EAAKgD,EAAOE,kBAA+B,IAAPlD,OAAgB,EAASA,EAAGne,WAAamhB,EAAOnhB,UAAUshB,QAAO,SAAUC,EAAKzgB,GACjI,OAAOygB,EAAI9b,OAAO3E,EAAM0gB,QAAQJ,EAAaH,EAAsBD,GAAkB,CAAClgB,GAAS,GAAIogB,EAA2BpgB,MAC/H,KAEI2gB,GAAgB,SAAUC,EAASN,GAC1C,OAAOM,EAAQJ,QAAO,SAAUC,EAAKJ,GACjC,OAAOI,EAAI9b,OAEXyb,EAA2BC,EAAQC,GAEnCD,EAAO5E,WACDgE,EAAQY,EAAO5E,WAAWoF,iBAAiBX,IAAiBja,QAAO,SAAUrG,GAAQ,OAAOA,IAASygB,KACrG,MACP,KEXIS,GAAkB,SAAUnD,EAAOtB,GAC1C,OAAOoD,EAAQ9B,GACV1X,QAAO,SAAUrG,GAAQ,OAAOwc,EAAgBC,EAAiBzc,MACjEqG,QAAO,SAAUrG,GAAQ,OR6CN,SAAUA,GAClC,SAAUkd,EAAmBld,IANA,SAAUA,GAAQ,MAAwB,WAAjBA,EAAKmd,QAMrBgE,CAAoBnhB,MAAyB,WAAdA,EAAKR,MAAqBQ,EAAKoY,WQ9C/DgJ,CAAephB,OAE7CqhB,GAAsB,SAAUtD,EAAOlB,GAE9C,YADc,IAAVA,IAAoBA,EAAQ,IAAIyE,KAC7BzB,EAAQ9B,GAAO1X,QAAO,SAAUrG,GAAQ,OAAO4c,EAAyBC,EAAO7c,OAM/EuhB,GAAmB,SAAUC,EAAU/E,EAAiBiE,GAC/D,OAAOR,EAAgBgB,GAAgBH,GAAcS,EAAUd,GAAajE,IAAkB,EAAMiE,IAM7Fe,GAAsB,SAAUD,EAAU/E,GACjD,OAAOyD,EAAgBgB,GAAgBH,GAAcS,GAAW/E,IAAkB,IAO3EiF,GAAuB,SAAUC,EAASlF,GACjD,OAAOyE,IFXHU,EEW2CD,EFXtBV,iBAAiB,IAAIlc,OfX1B,wBeW6C,MAC1D8a,EAAQ+B,GACVjgB,KAAI,SAAU3B,GAAQ,OAAO+gB,GAAc,CAAC/gB,OAC5C4gB,QAAO,SAAUC,EAAK9C,GAAS,OAAO8C,EAAI9b,OAAOgZ,KAAW,KEQRtB,GFZxB,IAC7BmF,GEgBGC,GAAW,SAAUC,EAAOjlB,GACnC,OAASilB,EAAMnB,WACTkB,GAASC,EAAMnB,WAAY9jB,GAC3BzC,OAAO2nB,eAAeD,GAAOD,SAAS/mB,KAAKgnB,EAAOjlB,KACpDgjB,EAAQiC,EAAMxiB,UAAU0iB,MAAK,SAAU5hB,GAAS,OAAOyhB,GAASzhB,EAAOvD,OCf3EolB,GAAe,SAAUjiB,GACzB,OAAOA,EAAK6b,WAAaoG,GAAajiB,EAAK6b,YAAc7b,GAOlDkiB,GAAsB,SAAUliB,GAEvC,OADY+f,EAAQ/f,GACPqG,OAAOqX,SAASkD,QAAO,SAAUC,EAAKsB,GAC/C,IAAI1J,EAAQ0J,EAAY7E,aAAahI,GAIrC,OAHAuL,EAAI9S,KAAKhT,MAAM8lB,EAAMpI,EAnCV,SAAUsF,GAGzB,IAFA,IAAIqE,EAAY,IAAI9C,IAChBhM,EAAIyK,EAAMtjB,OACLF,EAAI,EAAGA,EAAI+Y,EAAG/Y,GAAK,EACxB,IAAK,IAAI8nB,EAAI9nB,EAAI,EAAG8nB,EAAI/O,EAAG+O,GAAK,EAAG,CAC/B,IAAI7lB,EAAWuhB,EAAMxjB,GAAG+nB,wBAAwBvE,EAAMsE,KAEjD7lB,EAAWuf,KAAKwG,gCAAkC,GACnDH,EAAU7C,IAAI8C,IAEb7lB,EAAWuf,KAAKyG,4BAA8B,GAC/CJ,EAAU7C,IAAIhlB,GAK1B,OAAOwjB,EAAM1X,QAAO,SAAUoc,EAAGjH,GAAS,OAAQ4G,EAAU5C,IAAIhE,MAoBtDkH,CAAa7C,EAAQoC,GAAaE,GAAalB,iBAAiB,IAAIlc,OAAOuQ,EAAa,MAAOvQ,OAAO0T,EAAO,YAAa1T,OAAOwQ,EAAgB,oBACjJ,CAAC4M,IACAtB,IACR,KChDH8B,GAA+B,SAAUhC,GACzC,OAAOA,EAAW9G,cACZ8G,EAAW9G,cAAc8G,WACrBgC,GAA6BhC,EAAW9G,cAAc8G,YACtDA,EAAW9G,mBACf9O,GAKC6X,GAAmB,WAC1B,OAAQ7lB,SAAS8c,cACX9c,SAAS8c,cAAc8G,WACnBgC,GAA6B5lB,SAAS8c,cAAc8G,YACpD5jB,SAAS8c,mBACb9O,GCZN8X,GAAa,SAAU7iB,EAAMghB,GAM7B,YALgB,IAAZA,IAAsBA,EAAU,IACpCA,EAAQjT,KAAK/N,GACTA,EAAK6b,YACLgH,GAAW7iB,EAAK6b,WAAWvJ,MAAQtS,EAAK6b,WAAYmF,GAEjDA,GAQA8B,GAAkB,SAAUC,EAAOC,GAI1C,IAHA,IAAIC,EAAWJ,GAAWE,GACtBG,EAAWL,GAAWG,GAEjBzoB,EAAI,EAAGA,EAAI0oB,EAASxoB,OAAQF,GAAK,EAAG,CACzC,IAAI4oB,EAAgBF,EAAS1oB,GAC7B,GAAI2oB,EAASnnB,QAAQonB,IAAkB,EACnC,OAAOA,EAGf,OAAO,GAEAC,GAAqB,SAAUC,EAAmBC,EAAWC,GACpE,IAAIC,EAAiBzD,EAAQsD,GACzBI,EAAc1D,EAAQuD,GACtBzJ,EAAgB2J,EAAe,GAC/BE,GAAY,EAgBhB,OAfAD,EAAYpd,OAAOqX,SAASnc,SAAQ,SAAUoiB,GAC1CD,EAAYZ,GAAgBY,GAAaC,EAAOA,IAAUD,EAC1DH,EAAald,OAAOqX,SAASnc,SAAQ,SAAUqiB,GAC3C,IAAI7U,EAAS+T,GAAgBjJ,EAAe+J,GACxC7U,IAEI2U,GADCA,GAAa7B,GAAS9S,EAAQ2U,GACnB3U,EAGA+T,GAAgB/T,EAAQ2U,UAM7CA,GCzBAG,GAAgB,SAAUlC,EAASlD,GAC1C,IAAI5E,EAAgB9c,UAAY6lB,KAC5BkB,EAAU5B,GAAoBP,GAAStb,OAAOuX,GAC9CmG,EAAeX,GAAmBvJ,GAAiB8H,EAASA,EAASmC,GACrErH,EAAkB,IAAI6E,IACtB0C,EAAevC,GAAoBqC,EAASrH,GAC5CwH,EAAgB1C,GAAiBuC,EAASrH,GAAiBpW,QAAO,SAAUoX,GAC5E,IAAIzd,EAAOyd,EAAGzd,KACd,OAAO4d,EAAY5d,MAEvB,GAAKikB,EAAc,KACfA,EAAgBD,GACG,GAFvB,CAMA,IA5ByBE,EAAUC,EAC/BC,EANwBC,EAiCxB7F,EAAaiD,GAAoB,CAACsC,GAAetH,GAAiB9a,KAAI,SAAU8b,GAEhF,OADWA,EAAGzd,QAGdskB,GAhCqBJ,EAgCe1F,EAhCL2F,EAgCiBF,EA/BhDG,EAAQ,IAAI9C,IAEhB6C,EAAS5iB,SAAQ,SAAUgjB,GAAU,OAAOH,EAAMtd,IAAIyd,EAAOvkB,KAAMukB,MAE5DL,EAASviB,KAAI,SAAU3B,GAAQ,OAAOokB,EAAMzH,IAAI3c,MAAUqG,OAAOwX,IA4BpEU,EAAa+F,EAAqB3iB,KAAI,SAAU8b,GAEhD,OADWA,EAAGzd,QAGdwkB,EAAQlG,EAASC,EAAYC,EAAY3E,EAAe4E,GAC5D,GAAI+F,IAAUnG,EAAW,CACrB,IAAIoG,EAAgBpD,GAAoB2C,EAAariB,KAAI,SAAU8b,GAE/D,OADWA,EAAGzd,SAEdqG,QA/CoBge,EDiDK,SAAUP,EAASrH,GACpD,OAAOqH,EAAQlD,QAAO,SAAUC,EAAK7gB,GAAQ,OAAO6gB,EAAI9b,OAAO2c,GAAqB1hB,EAAMyc,MAAsB,ICHjFiI,CAAwBZ,EAASrH,GA9CzD,SAAUzc,GAAQ,IAAIyd,EAE7B,OAAOzd,EAAK2kB,cAA4C,QAA3BlH,EAAKT,EAAWhd,UAA0B,IAAPyd,OAAgB,EAASA,EAAGkH,YAAcN,EAAetoB,QAAQiE,IAAS,KA6CtI,MAAO,CACHA,KAAMykB,GAAiBA,EAAchqB,OAC/B0jB,EAAesG,GACftG,EAAekD,GAAoB9C,KAGjD,YAAcxT,IAAVyZ,EACOA,EAEJF,EAAqBE,KCvD5BI,GAAa,EACbC,IAAe,ECCnB,GDOsB,SAAUlD,EAASlD,EAAUxH,QAC/B,IAAZA,IAAsBA,EAAU,IACpC,IAnB2B3c,EAAQkf,EAmB/BsL,EAAYjB,GAAclC,EAASlD,GACvC,IAAIoG,IAGAC,EAAW,CACX,GAAIF,GAAa,EAQb,OANAG,QAAQjmB,MAAM,qJAEd+lB,IAAe,OACfvjB,YAAW,WACPujB,IAAe,IAChB,GAGPD,KAlCuBtqB,EAmCfwqB,EAAU9kB,KAnCawZ,EAmCPvC,EAAQuC,aAlChC,UAAWlf,GACXA,EAAO0f,MAAMR,GAEb,kBAAmBlf,GAAUA,EAAO0qB,eACpC1qB,EAAO0qB,cAAchL,QA+BrB4K,OEhCJK,GAAoB,SAAUtD,GAC9B,OAAOjE,QAAQmC,EAAQ8B,EAAQV,iBAAiB,WAAWe,MAAK,SAAUhiB,GAAQ,OAAoBA,IAFnDjD,SAAS8c,mBAOrDqL,GAAc,SAAUvD,GAC/B,IAAI9H,EAAgB9c,UAAY6lB,KAChC,SAAK/I,GAAkBA,EAAcoD,SAAWpD,EAAcoD,QAAQU,aAG/DuE,GAAoBP,GAASK,MAAK,SAAUhiB,GAAQ,OAAO6hB,GAAS7hB,EAAM6Z,IAAkBoL,GAAkBjlB,OCR9GmlB,GAAkB,SAAUxD,GACnC,IAAImC,EAAU5B,GAAoBP,GAAStb,OAAOuX,GAC9CmG,EAAeX,GAAmBzB,EAASA,EAASmC,GACpDrH,EAAkB,IAAI6E,IACtB9C,EAAa+C,GAAiB,CAACwC,GAAetH,GAAiB,GAC/DwH,EAAgB1C,GAAiBuC,EAASrH,GACzCpW,QAAO,SAAUoX,GAClB,IAAIzd,EAAOyd,EAAGzd,KACd,OAAO4d,EAAY5d,MAElB2B,KAAI,SAAU8b,GAEf,OADWA,EAAGzd,QAGlB,OAAOwe,EAAW7c,KAAI,SAAU8b,GAC5B,IAAIzd,EAAOyd,EAAGzd,KACd,MAAO,CACHA,KAAMA,EACNwb,MAHwBiC,EAAGjC,MAI3B4J,SAAUnB,EAAcloB,QAAQiE,IAAS,EACzCqlB,MAAO7H,EAAQxd,QC5BpB,SAASslB,GAAYC,GAE1B,IACIC,EADU1oB,OACa0oB,aAEC,qBAAjBA,EACTA,EAAaD,GAEbjkB,WAAWikB,EAAQ,GAGhB,ICCHE,GAAc,WAChB,OAJO1oB,UAAYA,SAAS8c,gBAAkB9c,SAASoE,SCCjD0Y,EAAgB9c,UAAY6lB,OAKzB/C,EAAQ9iB,SAASkkB,iBAAiB,IAAIlc,O5BJxB,qB4BI4C,OAAOid,MAAK,SAAUhiB,GAAQ,OAAO6hB,GAAS7hB,EAAM6Z,MAN9F,IACnBA,GDMJ6L,GAAiB,KACjBC,GAAkB,KAClBC,GAAsB,KACtBC,IAAwB,EAExBC,GAAmB,WACrB,OAAO,GAkBT,SAASC,GAAUC,EAAYC,EAAKC,EAAMC,GACxC,IAAIC,EAAY,KACZ7rB,EAAIyrB,EAER,EAAG,CACD,IAAI1P,EAAO6P,EAAS5rB,GAEpB,GAAI+b,EAAK+O,MACH/O,EAAKtW,KAAKid,QAAQoJ,iBACpBD,EAAY9P,OAET,KAAIA,EAAK8O,SAQd,MAPA,GAAI7qB,IAAMyrB,EAER,OAGFI,EAAY,aAIN7rB,GAAK2rB,KAAUD,GAErBG,IACFA,EAAUpmB,KAAK0a,SAAW,GAI9B,IAAI4L,GAAa,SAAoBjrB,GACnC,OAAOA,GAAO,YAAaA,EAAMA,EAAIwD,QAAUxD,GAa7CkrB,GAAc,SAASA,EAAYC,EAAOxI,EAAIyI,GAChD,OAAOzI,IACPA,EAAG1L,OAASkU,KAAWxI,EAAGnE,eAAiB4M,EAAS5E,SAAS7D,EAAGnE,iBAC7DmE,EAAGnC,YAAc0K,EAAYC,EAAOxI,EAAGnC,WAAY4K,KASpDC,GAAe,WACjB,IA3DqD7pB,EA2DjDgX,GAAS,EAEb,GAAI6R,GAAgB,CAClB,IAAIiB,EAAkBjB,GAClBzN,EAAW0O,EAAgB1O,SAC3BK,EAAkBqO,EAAgBrO,gBAClCE,EAAYmO,EAAgBnO,UAC5BM,EAAS6N,EAAgB7N,OACzBP,EAAaoO,EAAgBpO,WAC7BiB,EAAemN,EAAgBnN,aAC/BoN,EAAc3O,GAAY2N,IAAuBA,GAAoBiB,gBACrEhN,EAAgB9c,UAAYA,SAAS8c,cAEzC,GAAI+M,EAAa,CACf,IAAIE,EAAc,CAACF,GAAa7hB,OAAO+T,EAAOnX,IAAI2kB,IAAYjgB,OAAOqX,UA2BrE,GAzBK7D,IAtFY,SAA0BA,GAC/C,OAAQ6L,GAAe/M,WAAamN,IAAkBjM,GAqF5BkN,CAAiBlN,KACjCvB,IAAmCC,EArCpCmF,QAAQmI,IAIgB,cAA1BA,MAiCsDJ,OAAkBE,IAAmBnN,KACtFoO,KACJ1B,GAAY4B,IACZjN,GA3BO,SAAoBA,EAAeiN,GAClD,OAAOA,EAAY9E,MAAK,SAAUgF,GAChC,OAAOT,GAAY1M,EAAemN,EAAMA,MAyBjBC,CAAWpN,EAAeiN,KA/EEjqB,EA+EkCgd,EA9EhF+L,IAAuBA,GAAoBiB,kBAAoBhqB,MA+ExDE,WAAa4oB,IAAmB9L,IAAkBrB,GAEhDqB,EAAcqN,MAChBrN,EAAcqN,OAGhBnqB,SAASoE,KAAK6Y,UAEdnG,EAAS,GAAgBiT,EAAanB,GAAiB,CACrDnM,aAAcA,IAEhBoM,GAAsB,KAI1BC,IAAwB,EACxBF,GAAkB5oB,UAAYA,SAAS8c,eAIvC9c,SAAU,CACZ,IAAIoqB,EAAmBpqB,UAAYA,SAAS8c,cACxCsM,EAAWhB,GAAgB2B,GAC3BM,EAAejB,EAASxkB,KAAI,SAAUvG,GAExC,OADWA,EAAK4E,QAEfjE,QAAQorB,GAEPC,GAAgB,IAElBjB,EAAS9f,QAAO,SAAUghB,GACxB,IAAIhC,EAAQgC,EAAMhC,MACdrlB,EAAOqnB,EAAMrnB,KACjB,OAAOqlB,GAASrlB,EAAKid,QAAQoJ,kBAC5B9kB,SAAQ,SAAU+lB,GAEnB,OADWA,EAAMtnB,KACLunB,gBAAgB,eAE9BxB,GAAUqB,EAAcjB,EAAS1rB,OAAQ,EAAI0rB,GAC7CJ,GAAUqB,GAAe,GAAI,EAAGjB,MAMxC,OAAOtS,GAGL2T,GAAS,SAAgBtgB,GACvBwf,MAAkBxf,IAEpBA,EAAMugB,kBACNvgB,EAAMwgB,mBAINtN,GAAS,WACX,OAAOkL,GAAYoB,KAGjBvM,GAAU,SAAiBjT,GAE7B,IAAIxM,EAASwM,EAAM5M,OACf6nB,EAAcjb,EAAMoQ,cAEnB6K,EAAYN,SAASnnB,KAvJ1BkrB,GAAsB,CACpB+B,aAuJaxF,EAtJb0E,gBAsJ0BnsB,KAoB1BktB,GAAe,WACjB/B,GAAwB,OAExBvkB,YAAW,WACTukB,GAAwB,cACvB,IA6DLxO,EAAYb,iBAAiB2D,IAC7B5C,EAAWZ,aAAayD,IACxB5C,EAAab,cAAa,SAAUF,GAClC,OAAOA,EAAG,CACRoR,gBAAiB,GACjB3C,YAAaA,QAGjB,OAAe,GAtDf,SAA4B4C,GAC1B,OAAOA,EAAUzhB,QAAO,SAAU0hB,GAEhC,OADeA,EAAM3P,eAKzB,SAAmC4P,GACjC,IAAIC,EAAOD,EAAMhqB,OAAO,GAAG,GAEvBiqB,IAASvC,KArBb3oB,SAASsO,iBAAiB,UAAWmc,IACrCzqB,SAASsO,iBAAiB,WAAY+O,IACtCtd,OAAOuO,iBAAiB,OAAQuc,KAuBhC,IAAIM,EAAWxC,GACXyC,EAAWD,GAAYD,GAAQA,EAAK7Z,KAAO8Z,EAAS9Z,GACxDsX,GAAiBuC,EAEbC,IAAaC,IACfD,EAAStO,iBAEJoO,EAAM3hB,QAAO,SAAU+hB,GAE1B,OADSA,EAAMha,KACD8Z,EAAS9Z,MACtB3T,QAEDytB,EAAS3O,aAAa0O,IAItBA,GACFtC,GAAkB,KAEbwC,GAAYD,EAASjQ,WAAagQ,EAAKhQ,UAC1CgQ,EAAKvO,eAGPgN,KACApB,GAAYoB,MA3Cd3pB,SAASsrB,oBAAoB,UAAWb,IACxCzqB,SAASsrB,oBAAoB,WAAYjO,IACzCtd,OAAOurB,oBAAoB,OAAQT,IA4CjCjC,GAAkB,QAatB,EA1FmB,WACjB,OAAO,QE7KL2C,GAAoC,cAAiB,SAAgC3sB,EAAON,GAC9F,OAAoB,gBAAoB,GAAa,OAAS,CAC5Dge,QAAS,GACThe,IAAKA,GACJM,OAGDP,GAAO,aAAyB,GACtBA,GAAKie,SACH,OAA8Bje,GAAM,CAAC,YAErDktB,GAAqBzT,UAAgE,GACrF,ICxBA,GDwBA,GE1BW0T,GAAqB,4BACrBC,GAAqB,0BCArBC,GAAYzR,ICInB0R,GAAU,aAMVC,GAAe,cAAiB,SAAUhtB,EAAOic,GACjD,IAAIvc,EAAM,SAAa,MACnBoiB,EAAK,WAAe,CACpBmL,gBAAiBF,GACjBG,eAAgBH,GAChBI,mBAAoBJ,KACpBK,EAAYtL,EAAG,GAAIuL,EAAevL,EAAG,GACrCwL,EAAettB,EAAMstB,aAAc3pB,EAAW3D,EAAM2D,SAAU2V,EAAYtZ,EAAMsZ,UAAWiU,EAAkBvtB,EAAMutB,gBAAiBC,EAAUxtB,EAAMwtB,QAASrQ,EAASnd,EAAMmd,OAAQO,EAAU1d,EAAM0d,QAAS+P,EAAcztB,EAAMytB,YAAaC,EAAQ1tB,EAAM0tB,MAAOC,EAAiB3tB,EAAM2tB,eAAgBC,EAAK5tB,EAAMJ,GAAIyd,OAAmB,IAAPuQ,EAAgB,MAAQA,EAAIC,GAAO,QAAO7tB,EAAO,CAAC,eAAgB,WAAY,YAAa,kBAAmB,UAAW,SAAU,UAAW,cAAe,QAAS,iBAAkB,OAC7fyd,EAAUC,EACVoQ,EAAejU,EAAa,CAACna,EAAKuc,IAClCuB,GAAiB,SAAS,QAAS,GAAIqQ,GAAOT,GAClD,OAAQ,gBAAoB,WAAgB,KACxCI,GAAY,gBAAoB/P,EAAS,CAAEC,QAASoP,GAAWS,gBAAiBA,EAAiBpQ,OAAQA,EAAQsQ,YAAaA,EAAaC,MAAOA,EAAOL,aAAcA,EAAcM,iBAAkBA,EAAgBI,QAASruB,IAChO4tB,EAAgB,eAAmB,gBAAoB3pB,IAAW,SAAS,QAAS,GAAI6Z,GAAiB,CAAE9d,IAAKouB,KAAqB,gBAAoBzQ,GAAW,QAAS,GAAIG,EAAgB,CAAElE,UAAWA,EAAW5Z,IAAKouB,IAAiBnqB,OAEvPqpB,GAAa/T,aAAe,CACxBuU,SAAS,EACTD,iBAAiB,EACjBG,OAAO,GAEXV,GAAaxT,WAAa,CACtBwU,UAAWnB,GACXoB,UAAWrB,IC/Bf,ICFIsB,GDEAzQ,GAAU,SAAUqE,GACpB,IAAIpE,EAAUoE,EAAGpE,QAASmQ,GAAO,QAAO/L,EAAI,CAAC,YAC7C,IAAKpE,EACD,MAAM,IAAIta,MAAM,sEAEpB,IAAI+qB,EAASzQ,EAAQvO,OACrB,IAAKgf,EACD,MAAM,IAAI/qB,MAAM,4BAEpB,OAAO,gBAAoB+qB,GAAQ,QAAS,GAAIN,KAEpDpQ,GAAQ2Q,iBAAkB,EEZ1B,SAASC,KACL,IAAKjtB,SACD,OAAO,KACX,IAAIktB,EAAMltB,SAASd,cAAc,SACjCguB,EAAIzqB,KAAO,WACX,IAAI0qB,EDDAL,IAIO,KCCX,OAHIK,GACAD,EAAI/oB,aAAa,QAASgpB,GAEvBD,EAgBJ,IAAIE,GAAsB,WAC7B,IAAIC,EAAU,EACVC,EAAa,KACjB,MAAO,CACH9K,IAAK,SAAU7jB,GAlBvB,IAAsBuuB,EAAKK,EAmBA,GAAXF,IACKC,EAAaL,QApBPM,EAqBkB5uB,GArBvBuuB,EAqBWI,GAnBrBE,WAEJN,EAAIM,WAAWC,QAAUF,EAGzBL,EAAI7oB,YAAYrE,SAAS0tB,eAAeH,IAGhD,SAAwBL,IACTltB,SAAS2tB,MAAQ3tB,SAAS4tB,qBAAqB,QAAQ,IAC7DvpB,YAAY6oB,GAUDW,CAAeP,IAGvBD,KAEJxY,OAAQ,cACJwY,GACgBC,IACZA,EAAWxO,YAAcwO,EAAWxO,WAAW1X,YAAYkmB,GAC3DA,EAAa,SCpClBQ,GAAiB,WACxB,ICIIC,EDJAC,GCIAD,EAAQX,KACL,SAAU/U,EAAQ4V,GACrB,aAAgB,WAEZ,OADAF,EAAMvL,IAAInK,GACH,WACH0V,EAAMlZ,YAEX,CAACwD,GAAU4V,MDLlB,OALY,SAAUvN,GAClB,IAAIrI,EAASqI,EAAGrI,OAAQ6V,EAAUxN,EAAGwN,QAErC,OADAF,EAAS3V,EAAQ6V,GACV,OEZJC,GAAU,CACjBnV,KAAM,EACND,IAAK,EACLqV,MAAO,EACPC,IAAK,GAELhb,GAAQ,SAAUmG,GAAK,OAAO8U,SAAS9U,GAAK,GAAI,KAAO,GAahD+U,GAAc,SAAUC,GAE/B,QADgB,IAAZA,IAAsBA,EAAU,UACd,qBAAXzuB,OACP,OAAOouB,GAEX,IAAIM,EAjBQ,SAAUD,GACtB,IAAIE,EAAK3uB,OAAOgJ,iBAAiB/I,SAASoE,MAMtC4U,EAAO0V,EAAe,YAAZF,EAAwB,cAAgB,cAClDzV,EAAM2V,EAAe,YAAZF,EAAwB,aAAe,aAChDJ,EAAQM,EAAe,YAAZF,EAAwB,eAAiB,eACxD,MAAO,CAACnb,GAAM2F,GAAO3F,GAAM0F,GAAM1F,GAAM+a,IAOzBO,CAAUH,GACpBI,EAAgB5uB,SAAS6uB,gBAAgBC,YACzCC,EAAchvB,OAAOivB,WACzB,MAAO,CACHhW,KAAMyV,EAAQ,GACd1V,IAAK0V,EAAQ,GACbL,MAAOK,EAAQ,GACfJ,IAAK3mB,KAAKunB,IAAI,EAAGF,EAAcH,EAAgBH,EAAQ,GAAKA,EAAQ,MC3BxES,GAAQpB,KAIRqB,GAAY,SAAUzO,EAAI0O,EAAeZ,EAASa,GAClD,IAAIrW,EAAO0H,EAAG1H,KAAMD,EAAM2H,EAAG3H,IAAKqV,EAAQ1N,EAAG0N,MAAOC,EAAM3N,EAAG2N,IAE7D,YADgB,IAAZG,IAAsBA,EAAU,UAC7B,QAAQxmB,OTTgB,0BSSc,4BAA4BA,OAAOqnB,EAAW,yBAAyBrnB,OAAOqmB,EAAK,OAAOrmB,OAAOqnB,EAAW,2CAA2CrnB,OAAOqnB,EAAW,8CAA8CrnB,OAAO,CACvQonB,GAAiB,sBAAsBpnB,OAAOqnB,EAAW,KAC7C,WAAZb,GACI,uBAAuBxmB,OAAOgR,EAAM,0BAA0BhR,OAAO+Q,EAAK,4BAA4B/Q,OAAOomB,EAAO,kEAAkEpmB,OAAOqmB,EAAK,OAAOrmB,OAAOqnB,EAAW,WACnN,YAAZb,GAAyB,kBAAkBxmB,OAAOqmB,EAAK,OAAOrmB,OAAOqnB,EAAW,MAE/E/lB,OAAOqX,SACPnX,KAAK,IAAK,kBAAkBxB,OAAOwjB,GAAoB,mBAAmBxjB,OAAOqmB,EAAK,OAAOrmB,OAAOqnB,EAAW,mBAAmBrnB,OAAOyjB,GAAoB,0BAA0BzjB,OAAOqmB,EAAK,OAAOrmB,OAAOqnB,EAAW,mBAAmBrnB,OAAOwjB,GAAoB,MAAMxjB,OAAOwjB,GAAoB,qBAAqBxjB,OAAOqnB,EAAW,mBAAmBrnB,OAAOyjB,GAAoB,MAAMzjB,OAAOyjB,GAAoB,4BAA4BzjB,OAAOqnB,EAAW,8BAA8BrnB,OTXld,iCSWif,MAAMA,OAAOqmB,EAAK,eAK5hBiB,GAAkB,SAAU1wB,GACnC,IAAI2wB,EAAa3wB,EAAM2wB,WAAYC,EAAc5wB,EAAM4wB,YAAa9O,EAAK9hB,EAAM4vB,QAASA,OAAiB,IAAP9N,EAAgB,SAAWA,EACzH2N,EAAM,WAAc,WAAc,OAAOE,GAAYC,KAAa,CAACA,IACvE,OAAO,gBAAoBU,GAAO,CAAE7W,OAAQ8W,GAAUd,GAAMkB,EAAYf,EAAUgB,EAA6B,GAAf,iBC1BhGC,IAAmB,EACvB,GAAsB,qBAAX1vB,OACP,IACI,IAAIma,GAAU7c,OAAOqyB,eAAe,GAAI,UAAW,CAC/C9P,IAAK,WAED,OADA6P,IAAmB,GACZ,KAIf1vB,OAAOuO,iBAAiB,OAAQ4L,GAASA,IAEzCna,OAAOurB,oBAAoB,OAAQpR,GAASA,IAEhD,MAAOxU,IACH+pB,IAAmB,EAGpB,IAAIE,KAAaF,IAAmB,CAAEG,SAAS,GCdlDC,GAAuB,SAAU5sB,EAAM1D,GACvC,IAAI8Y,EAAStY,OAAOgJ,iBAAiB9F,GACrC,MAEqB,WAArBoV,EAAO9Y,MAED8Y,EAAOyX,YAAczX,EAAO0X,YAVX,SAAU9sB,GAEjC,MAAwB,aAAjBA,EAAKmd,QAQoC4P,CAAqB/sB,IAA8B,YAArBoV,EAAO9Y,KAI9E0wB,GAA0B,SAAUC,EAAMjtB,GACjD,IAAInB,EAAUmB,EACd,EAAG,CAMC,GAJ0B,qBAAfktB,YAA8BruB,aAAmBquB,aACxDruB,EAAUA,EAAQyT,MAEH6a,GAAuBF,EAAMpuB,GAC9B,CACd,IAAI4e,EAAK2P,GAAmBH,EAAMpuB,GAClC,GADgD4e,EAAG,GAAQA,EAAG,GAE1D,OAAO,EAGf5e,EAAUA,EAAQgd,iBACbhd,GAAWA,IAAY9B,SAASoE,MACzC,OAAO,GAkBPgsB,GAAyB,SAAUF,EAAMjtB,GACzC,MAAgB,MAATitB,EArCmB,SAAUjtB,GAAQ,OAAO4sB,GAAqB5sB,EAAM,aAqCxDqtB,CAAwBrtB,GApCpB,SAAUA,GAAQ,OAAO4sB,GAAqB5sB,EAAM,aAoCxBstB,CAAwBttB,IAE9EotB,GAAqB,SAAUH,EAAMjtB,GACrC,MAAgB,MAATitB,EAlBA,EAFyBxP,EAoBUzd,GAnBvButB,UAA0B9P,EAAG+P,aAA6B/P,EAAGgQ,cAO1D,SAAUhQ,GAEhC,MAAO,CADUA,EAAGiQ,WAA0BjQ,EAAGkQ,YAA2BlQ,EAAGoO,aAW7B+B,CAAoB5tB,GApBhD,IAAUyd,GC1BzBoQ,GAAa,SAAU3mB,GAC9B,MAAO,mBAAoBA,EAAQ,CAACA,EAAM4mB,eAAe,GAAGC,QAAS7mB,EAAM4mB,eAAe,GAAGE,SAAW,CAAC,EAAG,IAErGC,GAAa,SAAU/mB,GAAS,MAAO,CAACA,EAAMgnB,OAAQhnB,EAAMinB,SACnE,GAAa,SAAU9yB,GACvB,OAAOA,GAAO,YAAaA,EAAMA,EAAIwD,QAAUxD,GAG/C+yB,GAAgB,SAAUhgB,GAAM,MAAO,4BAA4BrJ,OAAOqJ,EAAI,qDAAqDrJ,OAAOqJ,EAAI,8BAC9IigB,GAAY,EACZC,GAAY,GCbhB,IVWsCC,GUXtC,IVWsCA,GSG/B,SAA6B5yB,GAChC,IAAI6yB,EAAqB,SAAa,IAClCC,EAAgB,SAAa,CAAC,EAAG,IACjCC,EAAa,WACbtgB,EAAK,WAAeigB,MAAa,GACjCpC,EAAQ,YAAe,WAAc,OAAOpB,QAAqB,GACjE8D,EAAY,SAAahzB,GAC7B,aAAgB,WACZgzB,EAAU9vB,QAAUlD,IACrB,CAACA,IACJ,aAAgB,WACZ,GAAIA,EAAM0tB,MAAO,CACbtsB,SAASoE,KAAKytB,UAAUrP,IAAI,uBAAuBxa,OAAOqJ,IAC1D,IAAIygB,GAAU,QAAc,CAAClzB,EAAM+tB,QAAQ7qB,UAAWlD,EAAMmd,QAAU,IAAInX,IAAI,KAAa,GAAM0E,OAAOqX,SAExG,OADAmR,EAAQttB,SAAQ,SAAUyc,GAAM,OAAOA,EAAG4Q,UAAUrP,IAAI,uBAAuBxa,OAAOqJ,OAC/E,WACHrR,SAASoE,KAAKytB,UAAUhd,OAAO,uBAAuB7M,OAAOqJ,IAC7DygB,EAAQttB,SAAQ,SAAUyc,GAAM,OAAOA,EAAG4Q,UAAUhd,OAAO,uBAAuB7M,OAAOqJ,WAIlG,CAACzS,EAAM0tB,MAAO1tB,EAAM+tB,QAAQ7qB,QAASlD,EAAMmd,SAC9C,IAAIgW,EAAoB,eAAkB,SAAU5nB,EAAOuZ,GACvD,GAAI,YAAavZ,GAAkC,IAAzBA,EAAM6nB,QAAQt0B,OACpC,OAAQk0B,EAAU9vB,QAAQyqB,eAE9B,IAII0F,EAJAC,EAAQpB,GAAW3mB,GACnBgoB,EAAaT,EAAc5vB,QAC3BqvB,EAAS,WAAYhnB,EAAQA,EAAMgnB,OAASgB,EAAW,GAAKD,EAAM,GAClEd,EAAS,WAAYjnB,EAAQA,EAAMinB,OAASe,EAAW,GAAKD,EAAM,GAElE30B,EAAS4M,EAAM5M,OACf60B,EAAgB1qB,KAAKmb,IAAIsO,GAAUzpB,KAAKmb,IAAIuO,GAAU,IAAM,IAEhE,GAAI,YAAajnB,GAA2B,MAAlBioB,GAAyC,UAAhB70B,EAAOkF,KACtD,OAAO,EAEX,IAAI4vB,EAA+BpC,GAAwBmC,EAAe70B,GAC1E,IAAK80B,EACD,OAAO,EAUX,GARIA,EACAJ,EAAcG,GAGdH,EAAgC,MAAlBG,EAAwB,IAAM,IAC5CC,EAA+BpC,GAAwBmC,EAAe70B,KAGrE80B,EACD,OAAO,EAKX,IAHKV,EAAW7vB,SAAW,mBAAoBqI,IAAUgnB,GAAUC,KAC/DO,EAAW7vB,QAAUmwB,IAEpBA,EACD,OAAO,EAEX,IAAIK,EAAgBX,EAAW7vB,SAAWmwB,EAC1C,ODdkB,SAAU/B,EAAMqC,EAAWpoB,EAAOqoB,EAAaC,GACrE,IAAIC,EATiB,SAAUxC,EAAMyC,GAMrC,MAAgB,MAATzC,GAA8B,QAAdyC,GAAuB,EAAI,EAG5BC,CAAmB1C,EAAMnwB,OAAOgJ,iBAAiBwpB,GAAWI,WAC9EE,EAAQH,EAAkBF,EAE1Bj1B,EAAS4M,EAAM5M,OACfu1B,EAAeP,EAAUzN,SAASvnB,GAClCw1B,GAAqB,EACrBC,EAAkBH,EAAQ,EAC1BI,EAAkB,EAClBC,EAAqB,EACzB,EAAG,CACC,IAAIxS,EAAK2P,GAAmBH,EAAM3yB,GAASkC,EAAWihB,EAAG,GACrDyS,EADoEzS,EAAG,GAAeA,EAAG,GACnDgS,EAAkBjzB,GACxDA,GAAY0zB,IACR/C,GAAuBF,EAAM3yB,KAC7B01B,GAAmBE,EACnBD,GAAsBzzB,GAG9BlC,EAASA,EAAOuhB,kBAGlBgU,GAAgBv1B,IAAWyC,SAASoE,MAEjC0uB,IAAiBP,EAAUzN,SAASvnB,IAAWg1B,IAAch1B,IAQlE,OAPIy1B,IAAqBP,GAAoC,IAApBQ,IAA4BR,GAAgBI,EAAQI,KAGnFD,IACJP,GAAuC,IAAvBS,IAA+BT,IAAiBI,EAAQK,MAH1EH,GAAqB,GAMlBA,EClBIK,CAAad,EAAe5O,EAAQvZ,EAAyB,MAAlBmoB,EAAwBnB,EAASC,GAAQ,KAC5F,IACCiC,EAAgB,eAAkB,SAAUC,GAC5C,IAAInpB,EAAQmpB,EACZ,GAAK/B,GAAU7zB,QAAU6zB,GAAUA,GAAU7zB,OAAS,KAAOwxB,EAA7D,CAIA,IAAI2D,EAAQ,WAAY1oB,EAAQ+mB,GAAW/mB,GAAS2mB,GAAW3mB,GAC3DopB,EAAc9B,EAAmB3vB,QAAQwH,QAAO,SAAU8E,GAAK,OAAOA,EAAEjN,OAASgJ,EAAM1H,MAAQ2L,EAAE7Q,SAAW4M,EAAM5M,SAxEjGic,EAwEwHpL,EAAEykB,MAxEvHjqB,EAwE8HiqB,EAxElHrZ,EAAE,KAAO5Q,EAAE,IAAM4Q,EAAE,KAAO5Q,EAAE,IAArD,IAAU4Q,EAAG5Q,KAwEyI,GAEjK,GAAI2qB,GAAeA,EAAYC,OACvBrpB,EAAMspB,YACNtpB,EAAMwgB,sBAKd,IAAK4I,EAAa,CACd,IAAIG,GAAc9B,EAAU9vB,QAAQia,QAAU,IACzCnX,IAAI,IACJ0E,OAAOqX,SACPrX,QAAO,SAAUrG,GAAQ,OAAOA,EAAK6hB,SAAS3a,EAAM5M,YACxCm2B,EAAWh2B,OAAS,EAAIq0B,EAAkB5nB,EAAOupB,EAAW,KAAO9B,EAAU9vB,QAAQuqB,cAE9FliB,EAAMspB,YACNtpB,EAAMwgB,qBAInB,IACCgJ,EAAe,eAAkB,SAAUxyB,EAAM0xB,EAAOt1B,EAAQi2B,GAChE,IAAIrpB,EAAQ,CAAEhJ,KAAMA,EAAM0xB,MAAOA,EAAOt1B,OAAQA,EAAQi2B,OAAQA,GAChE/B,EAAmB3vB,QAAQkP,KAAK7G,GAChC5F,YAAW,WACPktB,EAAmB3vB,QAAU2vB,EAAmB3vB,QAAQwH,QAAO,SAAU8E,GAAK,OAAOA,IAAMjE,OAC5F,KACJ,IACCypB,EAAmB,eAAkB,SAAUzpB,GAC/CunB,EAAc5vB,QAAUgvB,GAAW3mB,GACnCwnB,EAAW7vB,aAAUkM,IACtB,IACC6lB,EAAc,eAAkB,SAAU1pB,GAC1CwpB,EAAaxpB,EAAM1H,KAAMyuB,GAAW/mB,GAAQA,EAAM5M,OAAQw0B,EAAkB5nB,EAAOvL,EAAM+tB,QAAQ7qB,YAClG,IACCgyB,EAAkB,eAAkB,SAAU3pB,GAC9CwpB,EAAaxpB,EAAM1H,KAAMquB,GAAW3mB,GAAQA,EAAM5M,OAAQw0B,EAAkB5nB,EAAOvL,EAAM+tB,QAAQ7qB,YAClG,IACH,aAAgB,WAUZ,OATAyvB,GAAUvgB,KAAKke,GACftwB,EAAMqtB,aAAa,CACfJ,gBAAiBgI,EACjB/H,eAAgB+H,EAChB9H,mBAAoB+H,IAExB9zB,SAASsO,iBAAiB,QAAS+kB,EAAe1D,IAClD3vB,SAASsO,iBAAiB,YAAa+kB,EAAe1D,IACtD3vB,SAASsO,iBAAiB,aAAcslB,EAAkBjE,IACnD,WACH4B,GAAYA,GAAUjoB,QAAO,SAAUyqB,GAAQ,OAAOA,IAAS7E,KAC/DlvB,SAASsrB,oBAAoB,QAAS+H,EAAe1D,IACrD3vB,SAASsrB,oBAAoB,YAAa+H,EAAe1D,IACzD3vB,SAASsrB,oBAAoB,aAAcsI,EAAkBjE,OAElE,IACH,IAAIxD,EAAkBvtB,EAAMutB,gBAAiBG,EAAQ1tB,EAAM0tB,MAC3D,OAAQ,gBAAoB,WAAgB,KACxCA,EAAQ,gBAAoB4C,EAAO,CAAE7W,OAAQgZ,GAAchgB,KAAS,KACpE8a,EAAkB,gBAAoBmD,GAAiB,CAAEd,QAAS,WAAc,OC7I3D9C,GVYlBpS,UAAUkY,IACVnV,IWZP2X,GAAoB,cAAiB,SAAUp1B,EAAON,GAAO,OAAQ,gBAAoBstB,IAAc,QAAS,GAAIhtB,EAAO,CAAEN,IAAKA,EAAKge,QAAS,SACpJ0X,GAAkB5b,WAAawT,GAAaxT,WAC5C,iCCmBA,SAASnZ,GAA8BtB,EAAQkB,GAC7C,GAAc,MAAVlB,EAAgB,MAAO,GAC3B,IAEIC,EAAKJ,EAFLD,EAAS,GACTuB,EAAazB,OAAO0B,KAAKpB,GAG7B,IAAKH,EAAI,EAAGA,EAAIsB,EAAWpB,OAAQF,IACjCI,EAAMkB,EAAWtB,GACbqB,EAASG,QAAQpB,IAAQ,IAC7BL,EAAOK,GAAOD,EAAOC,IAGvB,OAAOL,EAIS,UACY,UACC,UAKlB,UARb,IAsBI02B,IAA6B,IAAA71B,aAAW,SAAuBC,EAAMiE,GACvE,IAAI4xB,EAAc71B,EAAK81B,OACnBA,OAAyB,IAAhBD,GAAgCA,EACzCt1B,EAAQK,GAA8BZ,EAAM,CAAC,WAoBjD,OAlBA,IAAAmF,YAAU,WACR,OAAO,QAAY,YAClB,KAIH,IAAAA,YAAU,WACJ2wB,EAEFp0B,OAAOq0B,0BAA2B,EAElCr0B,OAAOs0B,uBAAsB,WAG3Bt0B,OAAOq0B,0BAA2B,OAGrC,CAACD,IACGA,EAAS,gBAAoB,IAAQ,CAC1C,4BAA6B,IAC5B,gBAAoBG,GAAaj3B,OAAOC,OAAO,CAChDgB,IAAKgE,GACJ1D,KAAW,QAehB,IAAI01B,IAA2B,IAAAl2B,aAAW,SAAqBksB,EAAOhoB,GACpE,IAAIiqB,EAAiBjC,EAAMiC,eACvBgI,EAAwBjK,EAAMkK,2BAC9BA,OAAuD,IAA1BD,GAA2CA,EACxEE,EAAyBnK,EAAMoK,4BAC/BA,OAAyD,IAA3BD,GAA4CA,EAC1EE,EAAkBrK,EAAMqK,gBACxBC,EAAUtK,EAAMsK,QAChBC,EAAkBvK,EAAMwK,UACxBA,OAAgC,IAApBD,EAA6B,KAAOA,EAChDE,EAAYzK,EAAMyK,UAClBC,EAAc1K,EAAM0K,YACpBC,EAAwB3K,EAAM4K,+BAC9BA,OAA2D,IAA1BD,GAA0CA,EAC3Er2B,EAAQK,GAA8BqrB,EAAO,CAAC,iBAAkB,6BAA8B,8BAA+B,kBAAmB,UAAW,YAAa,YAAa,cAAe,mCAEpM6K,GAAkB,IAAAvyB,QAAO,MACzBwyB,GAAc,IAAAxyB,QAAO,MACrBtE,GAAM,QAAa82B,EAAa9yB,GAChC+yB,GAAoB,IAAAryB,cAAY,WAC9B2xB,GAAmBA,EAAgB7yB,SACrC6yB,EAAgB7yB,QAAQmb,UAEzB,CAAC0X,IAuBJ,OAHA,IAAAnxB,YAAU,WACR,OAAO4xB,EAAYtzB,QAiHvB,SAAyBwzB,GACvB,IAAIC,EAAiB,GACjBC,EAAY,GACZv1B,GAAgB,QAAiBq1B,IAAet1B,SAEpD,IAAKs1B,EAKH,OAAO,KAuBT,OApBAh1B,MAAMzC,UAAU2G,QAAQzG,KAAKkC,EAAcikB,iBAAiB,aAAa,SAAUjhB,GACjF,IAAIwyB,EAAuBC,EAI3B,GAAIzyB,KAFiE,QAAnDwyB,EAAwBH,EAAWxW,kBAAkD,IAA1B2W,GAA4G,QAA/DC,EAAyBD,EAAsB3W,kBAAmD,IAA3B4W,OAAjF,EAA8HA,EAAuB5W,YAErQ,CAIA,IAAI6W,EAAO1yB,EAAKsd,aAAa,eACA,OAAToV,GAA0B,UAATA,IAMrCJ,EAAevkB,KAAK2kB,GACpBH,EAAUxkB,KAAK/N,GACfA,EAAKkB,aAAa,cAAe,aAE5B,WACLqxB,EAAUhxB,SAAQ,SAAUvB,EAAMwb,GAChC,IAAImX,EAAgBL,EAAe9W,GAEb,OAAlBmX,EACF3yB,EAAKunB,gBAAgB,eAErBvnB,EAAKkB,aAAa,cAAeyxB,OAzJRC,CAAgBT,EAAYtzB,cAAW,IACnE,IACI,gBAAoB,GAAW,CACpC2Z,WAAW,EACXe,aAAa,EACbG,aAAc0Y,EACdha,SAAUmZ,EACVhZ,WAAY0Z,GACX,gBAAoB,GAAc,CACnC3I,eAAgBA,EAChBH,SAAUsI,GACT,gBAAoB,MAAOr3B,OAAOC,OAAO,GAAIsB,EAAO,CACrDN,IAAKA,EACL,4BAA6B,GAO7Bs2B,SAAS,QAAUA,GAvCrB,SAAqBzqB,GACfgrB,EAAgBrzB,UAAYqI,EAAM5M,SACpC4M,EAAMugB,kBACNoK,EAAU3qB,OAqCZ4qB,WAAW,QAAUA,GAjCvB,SAAuB5qB,GACH,WAAdA,EAAMvM,MACRuM,EAAMugB,kBACNoK,EAAU3qB,OA+BZ6qB,aAAa,QAAUA,GA3BzB,SAAyB7qB,GACvBgrB,EAAgBrzB,QAAUqI,EAAM5M,kBAoDpC,IAAIu4B,IAA6B,IAAA13B,aAAW,SAAuBmsB,EAAOjoB,GACxE,IAAIsyB,EAAUrK,EAAMqK,QAEhBh2B,GADY2rB,EAAMwK,UACV91B,GAA8BsrB,EAAO,CAAC,UAAW,eAE7D,OAAO,gBAAoB,MAAOltB,OAAOC,OAAO,CAC9C,aAAc,OACdqH,KAAM,SACNgZ,UAAW,GACV/e,EAAO,CACRN,IAAKgE,EACL,4BAA6B,GAC7BsyB,SAAS,QAAUA,GAAS,SAAUzqB,GACpCA,EAAMugB,2BAkHZ,wCClUA,GAA0B,wBAA1B,GAA2D,uBAA3D,GAA4I,6BAA5I,GAAiL,sBAAjL,GAA2P,2BAA3P,GAA6R,qBAA7R,GAA4T,6RCerT,SAASqL,GAAT,GAA+D,IAAvC7d,EAAsC,EAAtCA,UAAW3V,EAA2B,EAA3BA,SAAa4V,GAAc,aAC7DC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAGhB,gBAAC+b,IAAD,QAAe/b,UAAWE,EAAW5O,KAAK,MAAU2O,GACjD5V,GAoCA,SAASyzB,GAAT,GAA+D,IAAvC9d,EAAsC,EAAtCA,UAAW3V,EAA2B,EAA3BA,SAAa4V,GAAc,aAC7DC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAGhB,gBAAC4d,IAAD,QAAe5d,UAAWE,EAAW5O,KAAK,MAAU2O,GACjD5V,GA8BA,SAAS0zB,GAAT,GAA6D,IAAvC/d,EAAsC,EAAtCA,UAAW3V,EAA2B,EAA3BA,SAAa4V,GAAc,aAC3DC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAGhB,8BAAIA,UAAWE,EAAW5O,KAAK,MAAU2O,GACtC5V,GAkBA,SAAS2zB,GAAT,GAA+D,IAAvChe,EAAsC,EAAtCA,UAAW3V,EAA2B,EAA3BA,SAAa4V,GAAc,aAC7DC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAGhB,+BAAKA,UAAWE,EAAW5O,KAAK,MAAU2O,GACvC5V,GAkBA,SAAS4zB,GAAT,GAAiE,IAAvCje,EAAsC,EAAtCA,UAAWke,EAA2B,EAA3BA,IAAKC,EAAsB,EAAtBA,IAAQle,GAAc,aAC/DC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAGhB,+BAAKke,IAAKA,EAAKC,IAAKA,EAAKne,UAAWE,EAAW5O,KAAK,MAAU2O,IAkB3D,SAASme,GAAT,GAAkD,IAA7Bpe,EAA4B,EAA5BA,UAAcC,GAAc,aAChDC,EAAa,CAACC,IAIpB,OAHIH,GACFE,EAAWpH,KAAKkH,GAEX,+BAAKA,UAAWE,EAAW5O,KAAK,MAAU2O,IAgB5C,SAASoe,GAAT,GAAgE,IAApCre,EAAmC,EAAnCA,UAAWb,EAAwB,EAAxBA,MAAUc,GAAc,aACpE,OACE,gBAACH,GAAA,GAAD,QAAQvV,KAAK,SAASwV,QAAQ,OAAOC,UAAWA,GAAeC,GAC7D,gBAACqe,GAAA,QAAD,CAA2B/e,KAAMJ,GAASof,GAAAA,EAAAA,SAmBhD,SAASC,GAAT,GAQI,IAPFxe,EAOC,EAPDA,UACAic,EAMC,EANDA,OACAW,EAKC,EALDA,UACA6B,EAIC,EAJDA,SACAp0B,EAGC,EAHDA,SACAoyB,EAEC,EAFDA,gBACGxc,GACF,aACD,OACE,gBAAC4d,GAAD,CACE5B,OAAQA,EACRW,UAAWA,EACXH,gBAAiBA,GAEjB,gBAACqB,IAAD,QAAc9d,UAAWA,GAAeC,GACrCwe,GACC,gBAACJ,GAAD,CACEre,UAAWG,GACXuc,QAASE,IAGZvyB,IA9MT0xB,GAAc5rB,YAAc,eAE5B0tB,GAAale,aAAe,CAC1BK,UAAW,KACXic,QAAQ,EACRW,UAAW,aACXH,gBAAiB,aAEjBpI,gBAAgB,EAChBiI,4BAA4B,EAC5BE,6BAA6B,GAG/BqB,GAAaje,UAAY,CACvBvV,SAAUwE,IAAAA,KAAAA,WACVmR,UAAWnR,IAAAA,OACXotB,OAAQptB,IAAAA,KACR+tB,UAAW/tB,IAAAA,KACX4tB,gBAAiB5tB,IAAAA,KACjBwlB,eAAgBxlB,IAAAA,KAChBytB,2BAA4BztB,IAAAA,KAC5B2tB,4BAA6B3tB,IAAAA,MAsB/B+uB,GAAcztB,YAAc,eAE5B2tB,GAAane,aAAe,CAC1BK,UAAW,MAGb8d,GAAale,UAAY,CACvBvV,SAAUwE,IAAAA,KAAAA,WACVmR,UAAWnR,IAAAA,OAOX,aAAcA,IAAAA,OACd,kBAAmBA,IAAAA,QAoBrBkvB,GAAWpe,aAAe,CACxBK,UAAW,MAGb+d,GAAWne,UAAY,CACrBvV,SAAUwE,IAAAA,KAAAA,WACVmR,UAAWnR,IAAAA,QAmBbmvB,GAAare,aAAe,CAC1BK,UAAW,MAGbge,GAAape,UAAY,CACvBvV,SAAUwE,IAAAA,KAAAA,WACVmR,UAAWnR,IAAAA,QAiBbovB,GAAete,aAAe,CAC5BK,UAAW,MAGbie,GAAere,UAAY,CACzBI,UAAWnR,IAAAA,OACXqvB,IAAKrvB,IAAAA,OAAAA,WACLsvB,IAAKtvB,IAAAA,OAAAA,YAePuvB,GAAUze,aAAe,CACvBK,UAAW,MAGboe,GAAUxe,UAAY,CACpBI,UAAWnR,IAAAA,OACXxE,SAAUwE,IAAAA,KAAAA,YAeZwvB,GAAiB1e,aAAe,CAC9BK,UAAW,KACXb,MAAO,MAGTkf,GAAiBze,UAAY,CAC3BI,UAAWnR,IAAAA,OACXsQ,MAAOtQ,IAAAA,QAmCT2vB,GAAM7e,aAAe,CACnBK,UAAW,KACXic,QAAQ,EACRwC,UAAU,EACV7B,UAAW,aACXH,gBAAiB,cAGnB+B,GAAM5e,UAAY,CAIhBI,UAAWnR,IAAAA,OAKXotB,OAAQptB,IAAAA,KAKR+tB,UAAW/tB,IAAAA,KAKX4tB,gBAAiB5tB,IAAAA,KAKjB4vB,SAAU5vB,IAAAA,KAEVxE,SAAUwE,IAAAA,UAAoB,CAC5BA,IAAAA,QAAkBA,IAAAA,MAClBA,IAAAA,OACCnB,WAOH,aAAcmB,IAAAA,OACd,kBAAmBA,IAAAA,QAIrB,8CCjSA,SAAS6vB,EAAMC,GACb,IAAIC,EACFluB,EACAsO,EAAM,GAER,GAAmB,kBAAR2f,GAAmC,kBAARA,EACpC3f,GAAO2f,OACF,GAAmB,kBAARA,EAChB,GAAIv2B,MAAMO,QAAQg2B,GAChB,IAAKC,EAAI,EAAGA,EAAID,EAAIn5B,OAAQo5B,IACtBD,EAAIC,KACDluB,EAAIguB,EAAMC,EAAIC,OACjB5f,IAAQA,GAAO,KACfA,GAAOtO,QAKb,IAAKkuB,KAAKD,EACJA,EAAIC,KACN5f,IAAQA,GAAO,KACfA,GAAO4f,GAMf,OAAO5f,EAGM,SAAS,IAKtB,IAJA,IACE6f,EACAvd,EAFEhc,EAAI,EAGN0Z,EAAM,GACD1Z,EAAIC,UAAUC,SACdq5B,EAAMt5B,UAAUD,QACdgc,EAAIod,EAAMG,MACb7f,IAAQA,GAAO,KACfA,GAAOsC,GAIb,OAAOtC,oEC5CT,IAAe7Z,OAAO25B,OAAO,CAE3BC,kBAAmB,UACnBC,SAAU,UACVC,YAAa,UAGbC,MAAO,UACPC,MAAO,UAGPC,QAAS,UACTC,WAAY,UACZC,WAAY,UACZC,UAAW,UACXC,WAAY,UACZC,YAAa,UACbC,SAAU,UAGVC,eAAgB,UAGhBC,SAAU,UAGVC,cAAe,UACfC,WAAY,UACZC,cAAe,UACfC,aAAc,gDCpBhB,IAAIpzB,EAAuBiT,EAAQ,OAEnC,SAAShT,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3CG,EAAOC,QAAU,WACf,SAASC,EAAKxG,EAAOyG,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWX,EAAf,CAIA,IAAIY,EAAM,IAAI1D,MACZ,mLAKF,MADA0D,EAAIvE,KAAO,sBACLuE,GAGR,SAASC,IACP,OAAOP,EAFTA,EAAKQ,WAAaR,EAMlB,IAAIS,EAAiB,CACnBC,MAAOV,EACPW,OAAQX,EACRY,KAAMZ,EACNa,KAAMb,EACNc,OAAQd,EACRe,OAAQf,EACRgB,OAAQhB,EACRiB,OAAQjB,EAERkB,IAAKlB,EACLmB,QAASZ,EACT7F,QAASsF,EACTX,YAAaW,EACboB,WAAYb,EACZ1C,KAAMmC,EACNqB,SAAUd,EACVe,MAAOf,EACPgB,UAAWhB,EACXiB,MAAOjB,EACPkB,MAAOlB,EAEPmB,eAAgB9B,EAChBC,kBAAmBF,GAKrB,OAFAc,EAAekB,UAAYlB,EAEpBA,0BC9CPX,EAAOC,QAAU4S,EAAQ,MAARA,mCCNnB7S,EAAOC,QAFoB,+ECM3B,IAAIgzB,EAAkB,UAOtBjzB,EAAOC,QAUP,SAAoBiB,GAClB,IAOIgyB,EAPAlhB,EAAM,GAAK9Q,EACXsO,EAAQyjB,EAAgBE,KAAKnhB,GAEjC,IAAKxC,EACH,OAAOwC,EAIT,IAAIohB,EAAO,GACP7Z,EAAQ,EACRwD,EAAY,EAEhB,IAAKxD,EAAQ/J,EAAM+J,MAAOA,EAAQvH,EAAIxZ,OAAQ+gB,IAAS,CACrD,OAAQvH,EAAIqhB,WAAW9Z,IACrB,KAAK,GACH2Z,EAAS,SACT,MACF,KAAK,GACHA,EAAS,QACT,MACF,KAAK,GACHA,EAAS,QACT,MACF,KAAK,GACHA,EAAS,OACT,MACF,KAAK,GACHA,EAAS,OACT,MACF,QACE,SAGAnW,IAAcxD,IAChB6Z,GAAQphB,EAAIshB,UAAUvW,EAAWxD,IAGnCwD,EAAYxD,EAAQ,EACpB6Z,GAAQF,EAGV,OAAOnW,IAAcxD,EACjB6Z,EAAOphB,EAAIshB,UAAUvW,EAAWxD,GAChC6Z,2GC5EN,SAASr5B,EAA8BtB,EAAQkB,GAAY,GAAc,MAAVlB,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQuB,EAAazB,OAAO0B,KAAKpB,GAAqB,IAAKH,EAAI,EAAGA,EAAIsB,EAAWpB,OAAQF,IAAOI,EAAMkB,EAAWtB,GAAQqB,EAASG,QAAQpB,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAI1S,SAASk7B,EAAgBj4B,EAAGk4B,GAA+G,OAA1GD,EAAkBp7B,OAAOs7B,gBAAkB,SAAyBn4B,EAAGk4B,GAAsB,OAAjBl4B,EAAEo4B,UAAYF,EAAUl4B,GAAai4B,EAAgBj4B,EAAGk4B,GAErK,SAAS5d,IAA6Q,OAA/PA,EAAYzd,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAAkBud,EAAU9c,MAAMC,KAAMR,WAOnT,SAASL,IAeP,OAdAA,EAAWC,OAAOC,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,GAGFH,EAASY,MAAMC,KAAMR,WAG9B,SAASo7B,EAAQx6B,GACf,IAAIy6B,EAAkBz6B,EAAK06B,WACvBA,OAAiC,IAApBD,EAA6B,GAAKA,EAC/C5gB,EAAY7Z,EAAK6Z,UACjB8gB,EAAgB36B,EAAKkE,SACrBA,OAA6B,IAAlBy2B,EAA2B,KAAOA,EAC7CC,EAAiB56B,EAAK66B,UACtBA,OAA+B,IAAnBD,GAAoCA,EAEhDE,EADU96B,EAAK+hB,QAEnB,OAAO8Y,EAAyB,gBAAoBC,EAAK/7B,EAAS,CAChE8a,UAAWA,GACV6gB,IAA4B,gBAAoBI,EAAK/7B,EAAS,CAC/D8a,UAAWA,GACV6gB,GAAax2B,GAGlB,IAAI62B,EAAsB,WACxB,SAASA,KAET,IAAI/a,EAAS+a,EAAOv7B,UAiBpB,OAZAwgB,EAAOiC,UAAY,SAAmBnf,EAAMK,GAC1C,OAAOA,GAOT6c,EAAOpb,KAAO,SAAc9B,EAAMk4B,GAChC,OAAOA,GAGFD,EApBiB,GAkCtBE,EAAa,CACftiB,EAAG,CACDuiB,QAASC,EACT7xB,MAAM,EACNlF,KAAM+2B,KAERC,QAAS,CACPC,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,UAAW,QAAS,UAAW,MAAO,SAAU,UACzG/xB,MAAM,GAERgyB,MAAO,CACLp3B,SAAU,CAAC,QAAS,WAEtBq3B,GAAI,CACFn3B,KAAM+2B,EACNK,MAAM,GAERz1B,KAAM,CACJm1B,QAASC,KAEXM,OAAQ,CACNP,QA1BgB,EA2BhB92B,KAAM+2B,KAERO,QAAS,CACPR,QAjCY,EAkCZ7V,OAAQ,CAAC,UAEXsW,IAAK,CACHtW,OAAQ,CAAC,YACTmW,MAAM,GAERI,SAAU,CACR13B,SAAU,CAAC,OACXmhB,OAAQ,CAAC,UAEXwW,QAAS,CACP33B,SAAU,CAAC,WACXE,KAAM+2B,IAERW,GAAI,CACFZ,QAjDY,EAkDZ7V,OAAQ,CAAC,OAEX0W,GAAI,CACF73B,SAAU,CAAC,KAAM,MACjBE,KAtDY,GAwDd43B,GAAI,CACFd,QAzDY,EA0DZG,QAAS,CAAC,SAAU,UACpBhW,OAAQ,CAAC,OAEX4W,WAAY,CACVf,QA9DY,EA+DZ7V,OAAQ,CAAC,WAEX6W,OAAQ,CACNb,QAAS,CAAC,SAAU,WAEtBc,OAAQ,CACNd,QAAS,CAAC,SAAU,WAEtBe,GAAI,CACFh4B,KAxEY,EAyEZo3B,MAAM,GAERa,IAAK,CACHb,MAAM,GAERc,GAAI,CACFpB,QA/EY,EAgFZ7V,OAAQ,CAAC,KAAM,KAAM,SAEvBkX,KAAM,CACJjzB,MAAM,GAERkzB,GAAI,CACFt4B,SAAU,CAAC,MACXE,KAvFY,GAyFdq4B,QAAS,CACPv4B,SAAU,CAAC,SAAU,OACrBE,KAAM+2B,IAERuB,GAAI,CACFrX,OAAQ,CAAC,OAAQ,QAEnBsX,GAAI,CACFtX,OAAQ,CAAC,OAAQ,QAEnBuX,GAAI,CACF1B,QAjGgB,EAkGhB7V,OAAQ,CAAC,OAAQ,QAEnBwX,IAAK,CACH3B,QArGgB,EAsGhB7V,OAAQ,CAAC,SAEXyX,KAAM,CACJ54B,SAAU,CAAC,KAAM,KAAM,KAAM,QAE/B5E,OAAQ,CACN+lB,OAAQ,CAAC,QAAS,QAAS,WAC3BmW,MAAM,GAERuB,QAAS,CACP7B,QAhHgB,EAiHhB7V,OAAQ,CAAC,YAEX2X,MAAO,CACL94B,SAAU,CAAC,UAAW,WAAY,QAAS,QAAS,QAAS,MAC7DE,KAxHY,GA0Hd64B,MAAO,CACL5X,OAAQ,CAAC,SACTnhB,SAAU,CAAC,OAEbg5B,GAAI,CACFhC,QA/HY,EAgIZ7V,OAAQ,CAAC,OAEX8X,MAAO,CACL9X,OAAQ,CAAC,SACTnhB,SAAU,CAAC,OAEbk5B,GAAI,CACFlC,QAvIY,EAwIZ7V,OAAQ,CAAC,OAEXgY,MAAO,CACLhY,OAAQ,CAAC,SACTnhB,SAAU,CAAC,OAEbo5B,GAAI,CACFjY,OAAQ,CAAC,QAAS,QAAS,QAAS,SACpCnhB,SAAU,CAAC,KAAM,OAEnBq5B,MAAO,CACLlY,OAAQ,CAAC,QAAS,SAClBmW,MAAM,GAERgC,GAAI,CACFt5B,SAAU,CAAC,MACXE,KAxJY,GA0Jdq5B,MAAO,CACLv5B,SAAU,CAAC,QAAS,WAEtBw5B,IAAK,CACHt5B,KAAM+2B,EACNK,MAAM,IAIV,SAASmC,EAAoBzwB,GAC3B,OAAO,SAAU6U,GACfkZ,EAAWlZ,GAAWtF,EAAU,GAAIvP,EAAQ+tB,EAAWlZ,KAI3D,CAAC,UAAW,OAAQ,MAAO,SAAU,IAAK,OAAO5b,QAAQw3B,EAAoB,CAC3EzC,QA1Kc,EA2Kd92B,KAAM+2B,MAER,CAAC,OAAQ,IAAK,MAAO,MAAO,OAAQ,OAAQ,OAAQ,MAAO,KAAM,IAAK,MAAO,OAAQ,IAAK,OAAQ,OAAQ,SAAU,MAAO,MAAO,OAAQ,IAAK,OAAOh1B,QAAQw3B,EAAoB,CAChLzC,QA3KkB,EA4KlB92B,KAAM+2B,MAER,CAAC,IAAK,OAAOh1B,QAAQw3B,EAAoB,CACvCzC,QA/KkB,EAgLlB92B,KAAM+2B,MAER,CAAC,IAAK,QAAS,OAAQ,MAAO,OAAOh1B,QAAQw3B,EAAoB,CAC/DzC,QAnLkB,EAoLlB92B,KAAM+2B,KAER,CAAC,UAAW,QAAS,SAAU,SAAU,MAAO,UAAW,cAAch1B,QAAQw3B,EAAoB,CACnGzC,QA1Lc,EA2Ld92B,KAAM+2B,MAER,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMh1B,QAAQw3B,EAAoB,CAC/DzC,QA3LkB,EA4LlB92B,KAAM+2B,MAER,CAAC,QAAS,SAAU,SAAU,MAAO,SAASh1B,QAAQw3B,EAAoB,CACxEv5B,KAAM+2B,MAGR,IAAIyC,EAAO5+B,OAAO25B,OAAOsC,GAErB4C,EAAkB,CAAC,SAAU,OAAQ,OAAQ,UAAW,QAAS,QAAS,WAAY,OAAQ,OAAQ,OAAQ,OAAQ,WAAY,SAAU,SAAU,QAAS,SAC/JC,EAAmB9+B,OAAO0B,KAAKk9B,GAAM3yB,QAAO,SAAU4jB,GACxD,MAAe,WAARA,GAA4B,WAARA,KAUzBkP,EAAa/+B,OAAO25B,OAAO,CAC7BX,IARiB,EASjBgG,KATiB,EAUjBC,MAViB,EAWjBC,QATuB,EAUvBC,SATqB,EAUrBC,SAbiB,EAcjBC,QAXqB,EAYrBrhB,SAZqB,EAarBshB,IAhBiB,EAiBjBt9B,OAjBiB,EAkBjBgW,KAlBiB,EAmBjBhE,GAnBiB,EAoBjBurB,KApBiB,EAqBjBC,MArBiB,EAsBjBC,KAtBiB,EAuBjBC,QAvBiB,EAwBjBC,KArBqB,EAsBrBC,MAzBiB,EA0BjBC,MAvBqB,EAwBrBC,OA3BiB,EA4BjBx4B,KA5BiB,EA6BjBy4B,QA3BuB,EA4BvBrY,MA9BiB,EA+BjBsY,MA/BiB,EAgCjBC,KA9BuB,EA+BvBC,MA/BuB,EAgCvB5+B,MA9BmB,EA+BnBy3B,IAnCiB,EAoCjBoH,QApCiB,EAqCjBC,OArCiB,EAsCjBlgC,OAtCiB,EAuCjBga,MAvCiB,EAwCjB9U,KAxCiB,EAyCjB/C,MAzCiB,IA4Cfg+B,EAAsBrgC,OAAO25B,OAAO,CACtCsF,MAAO,YACPC,QAAS,UACTE,SAAU,WACVW,QAAS,UACTI,QAAS,UACTC,OAAQ,WAENE,EAAiB,2BAEjBC,EAA2B,SAAUC,GA1UzC,IAAwBC,EAAUC,EA6UhC,SAASH,IACP,OAAOC,EAAQ7/B,MAAMC,KAAMR,YAAcQ,KAkB3C,OAhWgC8/B,EA2UJF,GA3UNC,EA2UPF,GA3UwC//B,UAAYR,OAAOkS,OAAOwuB,EAAWlgC,WAAYigC,EAASjgC,UAAUqD,YAAc48B,EAAUrF,EAAgBqF,EAAUC,GAiV/JH,EAAY//B,UAElByiB,UAAY,SAAmBnf,EAAMK,GAU3C,MATa,UAATL,GACF9D,OAAO0B,KAAKyC,GAAOgD,SAAQ,SAAU5G,GAC/BogC,OAAOx8B,EAAM5D,IAAM8W,MAAMipB,WAEpBn8B,EAAM5D,MAKZ4D,GAGFo8B,EAtBsB,CAuB7BxE,GAME6E,EAAgB,uCAChBC,EAAgB,mDAChBC,EAAa,iBAEjB,SAASC,IAEP,GAAsB,qBAAXr+B,QAA8C,qBAAbC,SAI5C,OAAOA,SAASq+B,eAAeC,mBAAmB,cAGpD,IAAIC,EAAsB,WACxB,SAASA,EAAOC,EAAQ5/B,EAAO6/B,EAAUC,QACzB,IAAV9/B,IACFA,EAAQ,SAGO,IAAb6/B,IACFA,EAAW,SAGG,IAAZC,IACFA,EAAU,IAGZzgC,KAAK0gC,aAAU,EACf1gC,KAAK2gC,YAAS,EACd3gC,KAAK4gC,aAAU,EACf5gC,KAAK6gC,eAAY,EACjB7gC,KAAKs7B,QAAU,GACft7B,KAAKW,WAAQ,EACbX,KAAKwgC,cAAW,EAChBxgC,KAAKygC,aAAU,EACfzgC,KAAK8gC,cAAW,EAQhB9gC,KAAKW,MAAQA,EACbX,KAAKwgC,SAAWA,EAChBxgC,KAAKygC,QAAU,GAAG12B,OAAO02B,EAAS,CAAC,IAAId,IACvC3/B,KAAK8gC,UAAY,EACjB9gC,KAAK6gC,UAAY7gC,KAAK+gC,gBAAgBR,GAAU,IAChDvgC,KAAK0gC,QAAU,IAAIpc,IAAI3jB,EAAMqgC,WAAa9C,GAC1Cl+B,KAAK2gC,OAAS,IAAIrc,IAAI2Z,GACtBj+B,KAAK4gC,QAAU,IAAItc,IAAI3jB,EAAMsgC,WAO/B,IAAIC,EAAUZ,EAAO1gC,UAmhBrB,OAjhBAshC,EAAQC,sBAAwB,SAA+Bj+B,EAAMK,GACnE,OAAOvD,KAAKygC,QAAQ7a,QAAO,SAAUwb,EAAW/1B,GAC9C,OAAqB,OAAd+1B,GAAkD,oBAArB/1B,EAAOgX,UAA2BhX,EAAOgX,UAAUnf,EAAMk+B,GAAaA,IACzG79B,IAOL29B,EAAQG,iBAAmB,SAA0Bn+B,EAAM8B,GAEzD,OAAOhF,KAAKygC,QAAQ7a,QAAO,SAAU0b,EAAUj2B,GAC7C,OAAoB,OAAbi2B,GAA4C,oBAAhBj2B,EAAOrG,KAAsBqG,EAAOrG,KAAK9B,EAAMo+B,GAAYA,IAC7Ft8B,IASLk8B,EAAQK,cAAgB,SAAuBp5B,EAAQq5B,GACrD,IAAIC,EAAQzhC,KAER0hC,EAAW,GACX/gC,EAAQX,KAAKW,MACbghC,EAAgBx5B,EAChBy5B,EAAe,EACfjsB,EAAQ,KAmEZ,OAlEA3V,KAAKwgC,SAASj6B,SAAQ,SAAUs7B,GAC9B,IAAI1f,EAAU0f,EAAQC,QAAQ7xB,cAE1B3C,EAASm0B,EAAMM,aAAa5f,GAGhC,IAAIxhB,EAAMkhC,EAAQG,cAAiBP,EAAMQ,aAAa9f,IAKjDsf,EAAMS,eAAeV,EAAcl0B,GAAxC,CAOA,IAFA,IAAI60B,EAAkB,GAEfR,IAAkBhsB,EAAQksB,EAAQprB,MAAMkrB,KAAiB,CAC9D,IAAIS,EAASzsB,EACT6K,EAAQ4hB,EAAO5hB,MACf/gB,EAAS2iC,EAAO3iC,OAChB4iC,EAASD,EAAO3rB,MAChB6rB,EAAQF,EAAOE,MACfC,EAASH,EAAOxG,KAChB4G,EAAYxhC,EAA8BohC,EAAQ,CAAC,QAAS,SAAU,QAAS,QAAS,SAExFK,EAAYZ,EAAQz6B,SAAWw6B,EAE/BphB,EAAQ,IACV2hB,GAAmBR,EAAc3+B,MAAM,EAAGwd,IAGxC8hB,GACFH,GAAmBI,EAAS,MAAQE,EAAY,OAAS,MAAQA,EAAY,MAAQJ,EAAS,OAASI,EAAY,MACnHhB,EAAMX,UAAY,EAClBc,GAAgB,EAChBF,EAASe,GAAa,CACpBn+B,SAAU+9B,EACVR,QAASA,EACTlhC,MAAOkc,EAAU,GAAIlc,EAAO6hC,EAAW,CACrC7iC,IAAK8hC,EAAMX,aAIfqB,GAAmBE,EAKjBR,EAAQa,QACVf,EAAgBQ,EAAkBR,EAAc3+B,MAAMwd,EAAQ/gB,GAC9D0iC,EAAkB,IAGlBR,EAAgBA,EAAc3+B,MAAMwd,GAAS/gB,GAAU4iC,EAAO5iC,SAM7DoiC,EAAQa,SACXf,EAAgBQ,EAAkBR,OAIjB,IAAjBC,EACKz5B,EAGFnI,KAAK2iC,cAAchB,EAAeD,IAO3CR,EAAQgB,eAAiB,SAAwBV,EAAcoB,GAC7D,SAAKpB,EAAarf,UAAYygB,EAAYzgB,YAKtCqf,EAAa5F,OAKb4F,EAAal9B,SAAS7E,OAAS,EAC1B+hC,EAAal9B,SAASie,SAASqgB,EAAYzgB,WAGhDqf,EAAa/F,QAAQh8B,OAAS,GAAK+hC,EAAa/F,QAAQlZ,SAASqgB,EAAYzgB,YAK7EygB,EAAYnd,OAAOhmB,OAAS,EACvBmjC,EAAYnd,OAAOlD,SAASif,EAAarf,YAI7Cqf,EAAa93B,MAAQ83B,EAAarf,UAAYygB,EAAYzgB,UAKxDO,QAAQ8e,GAAgBA,EAAalG,QAAUsH,EAAYp+B,UASpE08B,EAAQ2B,kBAAoB,SAA2BtC,GACrD,IAAIuC,EAAc9iC,KAAKW,MACnBoiC,EAASD,EAAYC,OACrBC,EAAoBF,EAAYE,kBAEpC,GAAID,GAAUC,GAAqBzC,EAAO9pB,MAAM,qCAC9C,OAAO8pB,EAIT,IAAI0C,EAAa1C,EAAO9qB,QAAQ,QAAS,MAKzC,OADAwtB,GAFAA,EAAaA,EAAWxtB,QAAQ,UAAW,WAEnBA,QAAQ,MAAO,UAUzCyrB,EAAQH,gBAAkB,SAAyBR,GACjD,IACIv6B,GAD4B,qBAAX,EAAAk9B,GAA0B,EAAAA,EAAOC,yBAA2BhD,KAGjF,GAAKn6B,EAAL,CAIA,IAAIipB,EAAMjvB,KAAKW,MAAMyiC,kBAAoB,OACrCpgB,EAAa,SAARiM,GAA0B,aAARA,EAAqBjpB,EAAIG,KAAOH,EAAI/E,cAAcguB,GAU7E,OARIsR,EAAO9pB,MAAMupB,KAKfhd,EAAGqgB,UAAYrjC,KAAK6iC,kBAAkB7iC,KAAKW,MAAM2iC,WAAa,IAAW/C,GAAUA,IAG9Evd,IAQTke,EAAQqC,kBAAoB,SAA2Bv+B,GACrD,IAAIw+B,EAASxjC,KAETyjC,EAAkBzjC,KAAKW,MAAM8iC,gBAC7B3I,EAAa,GACb4I,EAAQ,EAEZ,OA1Qe,IA0QX1+B,EAAK8b,UAA8B9b,EAAK81B,YAI5Cz4B,MAAMc,KAAK6B,EAAK81B,YAAYv0B,SAAQ,SAAUmxB,GAC5C,IAAIx0B,EAAOw0B,EAAKx0B,KACZK,EAAQm0B,EAAKn0B,MACbogC,EAAUzgC,EAAK+M,cACf5E,EAAS8yB,EAAWwF,IAAYxF,EAAWj7B,GAE/C,GAAKsgC,EAAOI,OAAO5+B,KAMd2+B,EAAQltB,MAAMwpB,KACZwD,GAAqBp4B,GA3WhB,IA2W0BA,KAA2Bs4B,EAAQE,WAAW,QAAStgC,EAAMkS,QAAQ,uBAAwB,IAAIgB,MAAM,2CAD7I,CAOA,IAAIiE,EAAuB,UAAZipB,EAAsBH,EAAOM,sBAAsB9+B,GAAQzB,EA/WzD,IAiXb8H,EACFqP,GAAW,EAnXM,IAoXRrP,EACTqP,EAAWqpB,OAAOC,WAAWjE,OAAOrlB,IAnXvB,IAoXJrP,IACTqP,EAAWqlB,OAAOrlB,IAGpBogB,EAAW2E,EAAoBkE,IAAYA,GAAWH,EAAOrC,sBAAsBwC,EAASjpB,GAC5FgpB,GAAS,MAGG,IAAVA,EACK,KAGF5I,GAxCE,MA+CXoG,EAAQ4C,sBAAwB,SAA+B9+B,GAC7D,IAAIoV,EAAS,GAUb,OATA/X,MAAMc,KAAK6B,EAAKtE,OAAO6F,SAAQ,SAAU5G,GACvC,IAAI4D,EAAQyB,EAAKtE,MAAMf,GAEF,kBAAV4D,GAAuC,kBAAVA,IACtC6W,EAAOza,EAAI8V,QAAQ,aAAa,SAAUgB,EAAOwtB,GAC/C,OAAOA,EAAOz1B,kBACVjL,MAGH6W,GAOT8mB,EAAQa,aAAe,SAAsB5f,GAC3C,IAAIpO,EAAS,CACXzP,SAAU,GACVg3B,QAAS,EACTG,QAAS,GACThW,OAAQ,GACR/b,MAAM,EACNyY,QAAS,GACT3d,KAAM,EACNo3B,MAAM,GAKR,OAAIoC,EAAK7b,GACAtF,EAAU,GAAI9I,EAAQiqB,EAAK7b,GAAU,CAC1CA,QAASA,IAINpO,GAOTmtB,EAAQ0C,OAAS,SAAgB5+B,GAE/B,GAAiC,qBAAtBk/B,mBAAqCl/B,aAAgBk/B,kBAAmB,CACjF,IAAI9sB,EAAOpS,EAAKsd,aAAa,QAG7B,GAAIlL,GAA2B,MAAnBA,EAAKQ,OAAO,GACtB,OAAO,EAGT,IAAIP,EAAWrS,EAAKqS,SAASpH,cAC7B,MAAoB,MAAboH,GAAiC,UAAbA,GAAqC,WAAbA,GAAsC,YAAbA,GAAuC,SAAbA,EAGxG,OAAO,GAOT6pB,EAAQe,aAAe,SAAsB9f,GAC3C,OAAIniB,KAAK2gC,OAAOnc,IAAIrC,KAAYniB,KAAK4gC,QAAQpc,IAAIrC,KAI1CniB,KAAKW,MAAMwjC,eAAiBnkC,KAAK0gC,QAAQlc,IAAIrC,KAStD+e,EAAQ9rB,MAAQ,WACd,OAAKpV,KAAK6gC,UAIH7gC,KAAKokC,UAAUpkC,KAAK6gC,UAAW7gC,KAAK+hC,aAAa/hC,KAAK6gC,UAAUwD,SAASp0B,gBAHvE,IAWXixB,EAAQkD,UAAY,SAAmBvjB,EAAY2gB,GACjD,IAAI8C,EAAStkC,KAETukC,EAAevkC,KAAKW,MACpBoiC,EAASwB,EAAaxB,OACtByB,EAAuBD,EAAaC,qBACpCL,EAAgBI,EAAaJ,cAC7BM,EAAYF,EAAaE,UACzBC,EAAyBH,EAAaG,uBACtCpJ,EAAU,GACVqJ,EAAa,GA8FjB,OA7FAtiC,MAAMc,KAAK0d,EAAW+jB,YAAYr+B,SAAQ,SAAUvB,GAElD,GApaa,IAoaTA,EAAK8b,SAA2B,CAClC,IAAIqB,EAAUnd,EAAKq/B,SAASp0B,cAExB3C,EAASg3B,EAAOvC,aAAa5f,GAG7BwiB,IACFrJ,EAAQvoB,KAAK4xB,GACbA,EAAa,IAIf,IAOIrgC,EAPAg9B,EAAWgD,EAAOjD,iBAAiBlf,EAASnd,GAEhD,IAAKs8B,EACH,OAMF,GAAImD,KAAeC,GAA2BJ,EAAOrC,aAAa9f,IAAW,CAC3EmiB,EAAOxD,UAAY,EACnB,IAAInhC,EAAM2kC,EAAOxD,SAEjBx8B,EAAWggC,EAAOF,UAAU9C,EAAUh0B,GACtC,IAAIu3B,EAAcJ,EAAUnD,EAAUh9B,EAAUgJ,GAEhD,GAAoB,OAAhBu3B,EACF,OACK,GAA2B,qBAAhBA,EAIhB,YAHAvJ,EAAQvoB,KAAmB,eAAmB8xB,EAAa,CACzDllC,IAAKA,KAMT2kC,EAAOxD,SAAWnhC,EAAM,EAI1B,GAAI2kC,EAAO3D,OAAOnc,IAAIrC,GACpB,OAOF,GAAM4gB,GAAUyB,GAAoC,OAAZriB,IAAqBmiB,EAAOrC,aAAa9f,KAAagiB,IAAiBG,EAAOpC,eAAeV,EAAcl0B,GAuBjJguB,EAAUA,EAAQvxB,OAAOu6B,EAAOF,UAAU9C,EAAUh0B,EAAO6U,QAAU7U,EAASk0B,QAvB6E,CAC3J8C,EAAOxD,UAAY,EAEnB,IAAIhG,EAAawJ,EAAOf,kBAAkBjC,GAEtCwD,EAAe,CACjB3iB,QAASA,GAGP2Y,IACFgK,EAAahK,WAAaA,GAGxBxtB,EAAOsuB,OACTkJ,EAAa7J,UAAY3tB,EAAOsuB,MAGlCN,EAAQvoB,KAAmB,gBAAoB6nB,EAAS/d,EAAU,GAAIioB,EAAc,CAClFnlC,IAAK2kC,EAAOxD,WACVx8B,GAAYggC,EAAOF,UAAU9C,EAAUh0B,WAOxC,GA/eG,IA+eCtI,EAAK8b,SAAwB,CACtC,IAAIikB,EAAOhC,IAAWyB,EAAuBx/B,EAAKggC,YAAcV,EAAO/C,cAAcv8B,EAAKggC,aAAe,GAAIxD,GAEzGn/B,MAAMO,QAAQmiC,GAChBzJ,EAAUA,EAAQvxB,OAAOg7B,GAEzBJ,GAAcI,MAKhBJ,GACFrJ,EAAQvoB,KAAK4xB,GAGRrJ,GAQT4F,EAAQyB,cAAgB,SAAuBR,EAAiBT,GAC9D,IAAKS,EAAgB5f,SAAS,OAC5B,OAAO4f,EAOT,IAJA,IAAIpf,EAAQ,GACRgiB,EAAO5C,EACP7zB,EAAO,KAEJA,EAAOy2B,EAAKtuB,MAAMypB,IAAa,CACpC,IAAI+E,EAAQ32B,EACR42B,EAAUD,EAAM,GAChBxC,EAAYwC,EAAM,GAClBja,EAAa1c,EAAKkS,MAElB+hB,EAAS2C,EAAQ3iB,SAAS,KAE1B,EAOAyI,EAAa,IACfjI,EAAMhQ,KAAKgyB,EAAK/hC,MAAM,EAAGgoB,IAEzB+Z,EAAOA,EAAK/hC,MAAMgoB,IAGpB,IAAIma,EAAsBzD,EAASe,GAC/Bn+B,EAAW6gC,EAAoB7gC,SAC/Bu9B,EAAUsD,EAAoBtD,QAC9BiD,EAAeK,EAAoBxkC,MACnCykC,OAAW,EAEf,GAAI7C,EACF6C,EAAWF,EAAQzlC,OACnBsjB,EAAMhQ,KAAK8uB,EAAQ5gC,cAAcqD,EAAUwgC,QACtC,CACL,IAAIO,EAAQN,EAAKtuB,MAAM,IAAIC,OAAO,OAAS+rB,EAAY,QAEnD,EAMJ2C,EAAWC,EAAM7kB,MAAQ6kB,EAAM,GAAG5lC,OAClCsjB,EAAMhQ,KAAK8uB,EAAQ5gC,cAAcjB,KAAK2iC,cAAcoC,EAAK/hC,MAAMkiC,EAAQzlC,OAAQ4lC,EAAM7kB,OAAQkhB,GAAWoD,IAI1GC,EAAOA,EAAK/hC,MAAMoiC,GASpB,OALIL,EAAKtlC,OAAS,GAChBsjB,EAAMhQ,KAAKgyB,GAIQ,IAAjBhiB,EAAMtjB,OACD,GACmB,IAAjBsjB,EAAMtjB,QAAoC,kBAAbsjB,EAAM,GACrCA,EAAM,GAGRA,GAGFud,EA/jBiB,GAokB1B,SAASgF,EAAO3kC,GACd,IASI4kC,EATAzK,EAAan6B,EAAMm6B,WACnB7gB,EAAYtZ,EAAMsZ,UAClBmpB,EAAmBziC,EAAMyiC,iBACzB9H,EAAU36B,EAAM26B,QAChBkK,EAAe7kC,EAAM6kC,aACrBC,EAAgB9kC,EAAM8kC,cACtBtjB,EAAUxhB,EAAMwhB,QAChB8M,EAAMmU,GAAoBjhB,GAAW,OACrCujB,EAAiB,aAARzW,GAA4BtuB,EAAM+kC,OAG/C,GAAID,EACFF,EAAcE,MACT,CACL,IAAIlF,EAAS,IAAID,EAAOhF,GAAW,GAAI36B,GAAOyU,QAE1CmrB,EAAO9gC,OAAS,IAClB8lC,EAAchF,GAQlB,OAJKgF,IACHA,EAAcC,GAGZE,EAEkB,gBAAoB,WAAgB,KAAMH,GAG5C,gBAAoB3K,EAAS,CAC/CE,WAAYA,EACZ7gB,UAAWA,EACXkI,QAAS8M,GACRsW,uBCt9BLt+B,EAAOC,QAAU,SAAmBmR,GAClC,OAAc,MAAPA,GAAkC,MAAnBA,EAAIpV,aACY,oBAA7BoV,EAAIpV,YAAYyR,UAA2B2D,EAAIpV,YAAYyR,SAAS2D,kECL3EiO,GAAM,OAAU,IAAM,OAE1B,oECFIhC,GAAM,OAAU,IAAM,OAE1B,6CCHI5hB,WAAS,SAEb,wCCeA,IAXA,SAAkBmF,EAAO89B,GAKvB,IAJA,IAAInlB,GAAS,EACT/gB,EAAkB,MAAToI,EAAgB,EAAIA,EAAMpI,OACnCoZ,EAASxW,MAAM5C,KAEV+gB,EAAQ/gB,GACfoZ,EAAO2H,GAASmlB,EAAS99B,EAAM2Y,GAAQA,EAAO3Y,GAEhD,OAAOgR,qFCdL+sB,EAAcxmC,OAAOQ,UAGrB,EAAiBgmC,EAAY/lC,eAO7BgmC,EAAuBD,EAAY7iC,SAGnC+iC,EAAiB,IAAS,qBAAqB/1B,EA6BnD,MApBA,SAAmBxM,GACjB,IAAIwiC,EAAQ,EAAejmC,KAAKyD,EAAOuiC,GACnC7W,EAAM1rB,EAAMuiC,GAEhB,IACEviC,EAAMuiC,QAAkB/1B,EACxB,IAAIi2B,GAAW,EACf,MAAO71B,IAET,IAAI0I,EAASgtB,EAAqB/lC,KAAKyD,GAQvC,OAPIyiC,IACED,EACFxiC,EAAMuiC,GAAkB7W,SAEjB1rB,EAAMuiC,IAGVjtB,GClCL,EAPczZ,OAAOQ,UAOcmD,SAavC,MAJA,SAAwBQ,GACtB,OAAO,EAAqBzD,KAAKyD,ICT/B,EAAiB,IAAS,qBAAqBwM,EAkBnD,MATA,SAAoBxM,GAClB,OAAa,MAATA,OACewM,IAAVxM,EAdQ,qBADL,gBAiBJ,GAAkB,KAAkBnE,OAAOmE,GAC/C,EAAUA,GACV,EAAeA,qFCnBrB,GAFiB,aAAQnE,OAAO0B,KAAM1B,QCIlC,EAHcA,OAAOQ,UAGQC,eAsBjC,MAbA,SAAkBqI,GAChB,KAAK,OAAYA,GACf,OAAO,EAAWA,GAEpB,IAAI2Q,EAAS,GACb,IAAK,IAAIlZ,KAAOP,OAAO8I,GACjB,EAAepI,KAAKoI,EAAQvI,IAAe,eAAPA,GACtCkZ,EAAO9F,KAAKpT,GAGhB,OAAOkZ,qCCbT,IANA,SAAwB3Q,GACtB,OAAO,SAASvI,GACd,OAAiB,MAAVuI,OAAiB6H,EAAY7H,EAAOvI,uCCqB/C,IArBA,SAAmBkI,EAAOy3B,EAAOrU,GAC/B,IAAIzK,GAAS,EACT/gB,EAASoI,EAAMpI,OAEf6/B,EAAQ,IACVA,GAASA,EAAQ7/B,EAAS,EAAKA,EAAS6/B,IAE1CrU,EAAMA,EAAMxrB,EAASA,EAASwrB,GACpB,IACRA,GAAOxrB,GAETA,EAAS6/B,EAAQrU,EAAM,EAAMA,EAAMqU,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIzmB,EAASxW,MAAM5C,KACV+gB,EAAQ/gB,GACfoZ,EAAO2H,GAAS3Y,EAAM2Y,EAAQ8e,GAEhC,OAAOzmB,sFClBLotB,EAAc,IAAS,mBAAmBl2B,EAC1Cm2B,EAAiBD,EAAcA,EAAYljC,cAAWgN,EA0B1D,IAhBA,SAASo2B,EAAa5iC,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAI,OAAQA,GAEV,OAAO,OAASA,EAAO4iC,GAAgB,GAEzC,IAAI,OAAS5iC,GACX,OAAO2iC,EAAiBA,EAAepmC,KAAKyD,GAAS,GAEvD,IAAIsV,EAAUtV,EAAQ,GACtB,MAAkB,KAAVsV,GAAkB,EAAItV,IA3BjB,SA2BwC,KAAOsV,oCCpB9D,IANA,SAAmB7Q,GACjB,OAAO,SAASzE,GACd,OAAOyE,EAAKzE,wDCQhB,IANA,SAAmBsE,EAAOy3B,EAAOrU,GAC/B,IAAIxrB,EAASoI,EAAMpI,OAEnB,OADAwrB,OAAclb,IAARkb,EAAoBxrB,EAASwrB,GAC1BqU,GAASrU,GAAOxrB,EAAUoI,GAAQ,OAAUA,EAAOy3B,EAAOrU,wECWrE,MAbA,SAAqBpjB,EAAO89B,EAAUS,EAAaC,GACjD,IAAI7lB,GAAS,EACT/gB,EAAkB,MAAToI,EAAgB,EAAIA,EAAMpI,OAKvC,IAHI4mC,GAAa5mC,IACf2mC,EAAcv+B,IAAQ2Y,MAEfA,EAAQ/gB,GACf2mC,EAAcT,EAASS,EAAav+B,EAAM2Y,GAAQA,EAAO3Y,GAE3D,OAAOu+B,GCgDT,GAFmB,cAjEG,CAEpB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IACnC,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAER,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,iBCrDxBE,EAAU,8CAeVC,EAAc7vB,OANJ,kDAMoB,KAyBlC,MALA,SAAgBvO,GAEd,OADAA,GAAS,OAASA,KACDA,EAAOsN,QAAQ6wB,EAAS,GAAc7wB,QAAQ8wB,EAAa,KCxC1EC,EAAc,4CAalB,MAJA,SAAoBr+B,GAClB,OAAOA,EAAOsO,MAAM+vB,IAAgB,ICVlCC,EAAmB,qEAavB,MAJA,SAAwBt+B,GACtB,OAAOs+B,EAAiBrjC,KAAK+E,ICL3Bu+B,EAAiB,kBACjBC,EAAe,4BAKfC,EAAe,4BAEfC,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,oBACZC,EAAU,IAAMP,EAAe,IAC/BQ,EAAS,oBAAuBN,EAAeG,EAAWN,EAAiBC,EAAeC,EAAe,IAIzGQ,EAAa,kCACbC,EAAa,qCACbC,EAAU,IAAMV,EAAe,IAI/BW,EAAc,MAAQL,EAAU,IAAMC,EAAS,IAC/CK,EAAc,MAAQF,EAAU,IAAMH,EAAS,IAC/CM,EAAkB,qCAClBC,EAAkB,qCAClBC,EAAWC,gFACXC,EAAW,oBAIXC,EAAQD,EAAWF,GAHP,gBAAwB,CAbtB,qBAaoCP,EAAYC,GAAY97B,KAAK,KAAO,IAAMs8B,EAAWF,EAAW,MAIlHI,EAAU,MAAQ,CAACd,EAAWG,EAAYC,GAAY97B,KAAK,KAAO,IAAMu8B,EAGxEE,EAAgBtxB,OAAO,CACzB4wB,EAAU,IAAMJ,EAAU,IAAMO,EAAkB,MAAQ,CAACV,EAASO,EAAS,KAAK/7B,KAAK,KAAO,IAC9Fi8B,EAAc,IAAME,EAAkB,MAAQ,CAACX,EAASO,EAAUC,EAAa,KAAKh8B,KAAK,KAAO,IAChG+7B,EAAU,IAAMC,EAAc,IAAME,EACpCH,EAAU,IAAMI,EATD,mDADA,mDAafV,EACAe,GACAx8B,KAAK,KAAM,KAab,MAJA,SAAsBpD,GACpB,OAAOA,EAAOsO,MAAMuxB,IAAkB,IC/BxC,MAVA,SAAe7/B,EAAQ8/B,EAAS5d,GAI9B,OAHAliB,GAAS,OAASA,QAGF4H,KAFhBk4B,EAAU5d,OAAQta,EAAYk4B,GAGrB,EAAe9/B,GAAU,EAAaA,GAAU,EAAWA,GAE7DA,EAAOsO,MAAMwxB,IAAY,ICvB9BC,EAASxxB,OAHA,YAGe,KAe5B,MANA,SAA0BzK,GACxB,OAAO,SAAS9D,GACd,OAAO,EAAY,EAAM,EAAOA,GAAQsN,QAAQyyB,EAAQ,KAAMj8B,EAAU,0CClB5E,IAAIk8B,EAA8B,iBAAV,EAAAjF,GAAsB,EAAAA,GAAU,EAAAA,EAAO9jC,SAAWA,QAAU,EAAA8jC,EAEpF,8ECCMkF,aCCN,WAFiB,wBDAbC,GACED,EAAM,SAAShO,KAAK,GAAc,QAAmB,iBAA4B,KACvE,iBAAmBgO,EAAO,GAc1C,MAJA,SAAkBpgC,GAChB,QAASqgC,GAAeA,KAAcrgC,yBEJpCsgC,EAAe,8BAGfC,EAAYC,SAAS5oC,UACrBgmC,EAAcxmC,OAAOQ,UAGrB6oC,EAAeF,EAAUxlC,SAGzB,EAAiB6iC,EAAY/lC,eAG7B6oC,EAAahyB,OAAO,IACtB+xB,EAAa3oC,KAAK,GAAgB2V,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,MARA,SAAsBlS,GACpB,UAAK,EAAA0R,EAAA,GAAS1R,IAAU,EAASA,OAGnB,EAAAK,EAAA,GAAWL,GAASmlC,EAAaJ,GAChCllC,MAAK,OAASG,KC/B/B,MAJA,SAAkB2E,EAAQvI,GACxB,OAAiB,MAAVuI,OAAiB6H,EAAY7H,EAAOvI,ICO7C,MALA,SAAmBuI,EAAQvI,GACzB,IAAI4D,EAAQ,EAAS2E,EAAQvI,GAC7B,OAAO,EAAa4D,GAASA,OAAQwM,iGCPvC,GAFe,OAAU,IAAM,uBCE/B,GAFc,OAAU,IAAM,sBCE9B,GAFc,OAAU,IAAM,iCCK1B44B,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,GAAqB,OAAS,GAC9BC,GAAgB,OAAS,KACzBC,GAAoB,OAAS,GAC7BC,GAAgB,OAAS,KACzBC,GAAoB,OAAS,GAS7BC,EAAS,KAGR,GAAYA,EAAO,IAAI,EAAS,IAAI7wB,YAAY,MAAQuwB,GACxD,KAAOM,EAAO,IAAI,MAAQV,GAC1B,GAAWU,EAAO,cAAsBT,GACxC,KAAOS,EAAO,IAAI,MAAQR,GAC1B,GAAWQ,EAAO,IAAI,IAAYP,KACrCO,EAAS,SAAS9lC,GAChB,IAAIsV,GAAS,OAAWtV,GACpB+lC,EA/BQ,mBA+BDzwB,EAAsBtV,EAAMN,iBAAc8M,EACjDw5B,EAAaD,GAAO,OAASA,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKP,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAOjwB,IAIX,0CCxDA,IAWI2wB,EAAe9yB,OAAO,uFAa1B,IAJA,SAAoBvO,GAClB,OAAOqhC,EAAapmC,KAAK+E,sCCrB3B,IAGIshC,EAAW,mBAoBf,IAVA,SAAiBlmC,EAAO9D,GACtB,IAAI+E,SAAcjB,EAGlB,SAFA9D,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAAR+E,GACU,UAARA,GAAoBilC,EAASrmC,KAAKG,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ9D,sFCQjD,IAdA,SAAwB8D,EAAOid,EAAOtY,GACpC,KAAK,OAASA,GACZ,OAAO,EAET,IAAI1D,SAAcgc,EAClB,SAAY,UAARhc,GACK,OAAY0D,KAAW,OAAQsY,EAAOtY,EAAOzI,QACrC,UAAR+E,GAAoBgc,KAAStY,KAE7B,OAAGA,EAAOsY,GAAQjd,qCCvB7B,IAAIqiC,EAAcxmC,OAAOQ,UAgBzB,IAPA,SAAqB2D,GACnB,IAAI+lC,EAAO/lC,GAASA,EAAMN,YAG1B,OAAOM,KAFqB,mBAAR+lC,GAAsBA,EAAK1pC,WAAcgmC,kECT/D,IAAI8D,EAAgC,iBAAXxiC,SAAuBA,UAAYA,QAAQ4Z,UAAY5Z,QAG5EyiC,EAAaD,GAA4CziC,IAAWA,EAAO6Z,UAAY7Z,EAMvF2iC,EAHgBD,GAAcA,EAAWziC,UAAYwiC,GAGtB,YAG/BG,EAAY,WACd,IAEE,IAAIC,EAAQH,GAAcA,EAAW7vB,SAAW6vB,EAAW7vB,QAAQ,QAAQgwB,MAE3E,OAAIA,GAKGF,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,QACjE,MAAO55B,KAXI,GAcf,uCCfA,IANA,SAAiBnI,EAAMy8B,GACrB,OAAO,SAASuF,GACd,OAAOhiC,EAAKy8B,EAAUuF,yDCPtBC,EAA0B,iBAARvgC,MAAoBA,MAAQA,KAAKtK,SAAWA,QAAUsK,KAGxEwgC,EAAO,KAAcD,GAAYzB,SAAS,cAATA,GAErC,0ECGA,MAJA,SAAsBrgC,GACpB,OAAOA,EAAO8P,MAAM,gBCClBkyB,EAAW,oBACXC,EAAU,kDACVC,EAAS,2BAETC,EAAc,qBACdlD,EAAa,kCACbC,EAAa,qCAIbM,EAPa,MAAQyC,EAAU,IAAMC,EAAS,IAOtB,IACxBxC,EAAW,oBAEXC,EAAQD,EAAWF,GADP,gBAAwB,CAAC2C,EAAalD,EAAYC,GAAY97B,KAAK,KAAO,IAAMs8B,EAAWF,EAAW,MAElH4C,EAAW,MAAQ,CAACD,EAAcF,EAAU,IAAKA,EAAShD,EAAYC,EAAY8C,GAAU5+B,KAAK,KAAO,IAGxGi/B,EAAY9zB,OAAO2zB,EAAS,MAAQA,EAAS,KAAOE,EAAWzC,EAAO,KAa1E,MAJA,SAAwB3/B,GACtB,OAAOA,EAAOsO,MAAM+zB,IAAc,ICnBpC,MANA,SAAuBriC,GACrB,OAAO,OAAWA,GACd,EAAeA,GACf,EAAaA,sCCbnB,IAGIsgC,EAHYD,SAAS5oC,UAGImD,SAqB7B,IAZA,SAAkBiF,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOygC,EAAa3oC,KAAKkI,GACzB,MAAOmI,IACT,IACE,OAAQnI,EAAO,GACf,MAAOmI,KAEX,MAAO,sDCCLs6B,GAAY,eAAiB,SAAS5xB,EAAQ6xB,EAAMlqB,GAEtD,OADAkqB,EAAOA,EAAKz6B,cACL4I,GAAU2H,GAAQ,OAAWkqB,GAAQA,MAG9C,mECNA,IAJA,SAAoBviC,GAClB,OAAO,QAAW,OAASA,GAAQ8H,kDCiBrC,IAJA,SAAY1M,EAAOonC,GACjB,OAAOpnC,IAAUonC,GAAUpnC,IAAUA,GAASonC,IAAUA,iGChB1D,MAJA,SAAyBpnC,GACvB,OAAO,EAAAqnC,EAAA,GAAarnC,IAVR,uBAUkB,OAAWA,ICVvCqiC,EAAcxmC,OAAOQ,UAGrB,EAAiBgmC,EAAY/lC,eAG7BgrC,EAAuBjF,EAAYiF,qBAoBnCC,EAAc,EAAgB,WAAa,OAAOtrC,UAApB,IAAsC,EAAkB,SAAS+D,GACjG,OAAO,EAAAqnC,EAAA,GAAarnC,IAAU,EAAezD,KAAKyD,EAAO,YACtDsnC,EAAqB/qC,KAAKyD,EAAO,WAGtC,sCCZA,IAAIX,EAAUP,MAAMO,QAEpB,mECOA,IAJA,SAAqBW,GACnB,OAAgB,MAATA,IAAiB,OAASA,EAAM9D,WAAY,OAAW8D,uFCZhE,MAJA,WACE,OAAO,cCVT,IAAImmC,EAAgC,iBAAXxiC,SAAuBA,UAAYA,QAAQ4Z,UAAY5Z,QAG5EyiC,EAAaD,GAA4CziC,IAAWA,EAAO6Z,UAAY7Z,EAMvF8jC,EAHgBpB,GAAcA,EAAWziC,UAAYwiC,EAG5B,gBAAc35B,EAwB3C,GArBqBg7B,EAASA,EAAOr2B,cAAW3E,IAmBf,+HClB7BlQ,EAHcT,OAAOQ,UAGQC,eA2DjC,IAxBA,SAAiB0D,GACf,GAAa,MAATA,EACF,OAAO,EAET,IAAI,OAAYA,MACX,OAAQA,IAA0B,iBAATA,GAA4C,mBAAhBA,EAAMkd,SAC1D,OAASld,KAAU,OAAaA,KAAU,OAAYA,IAC1D,OAAQA,EAAM9D,OAEhB,IAAIwvB,GAAM,OAAO1rB,GACjB,GApDW,gBAoDP0rB,GAnDO,gBAmDUA,EACnB,OAAQ1rB,EAAM8V,KAEhB,IAAI,OAAY9V,GACd,QAAQ,OAASA,GAAO9D,OAE1B,IAAK,IAAIE,KAAO4D,EACd,GAAI1D,EAAeC,KAAKyD,EAAO5D,GAC7B,OAAO,EAGX,OAAO,iECrCT,IAVA,SAAoB4D,GAClB,KAAK,OAASA,GACZ,OAAO,EAIT,IAAI0rB,GAAM,OAAW1rB,GACrB,MA5BY,qBA4BL0rB,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,qCCC/D,IALA,SAAkB1rB,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,oDCuBvB,IAJA,SAAeA,GACb,OAAgB,MAATA,qCCST,IALA,SAAkBA,GAChB,IAAIiB,SAAcjB,EAClB,OAAgB,MAATA,IAA0B,UAARiB,GAA4B,YAARA,sCCC/C,IAJA,SAAsBjB,GACpB,OAAgB,MAATA,GAAiC,iBAATA,iECGjC,IALA,SAAkBA,GAChB,MAAuB,iBAATA,IACX,OAAaA,IArBF,oBAqBY,OAAWA,6GCOnCynC,EAAiB,GACrBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B,MALA,SAA0BznC,GACxB,OAAO,EAAAqnC,EAAA,GAAarnC,KAClB,EAAA0nC,EAAA,GAAS1nC,EAAM9D,WAAaurC,GAAe,OAAWznC,0BCnDtD2nC,EAAmB,KAAY,iBAqBnC,EAFmBA,GAAmB,OAAUA,GAAoB,qDCIpE,IAPA,WACE,IAAI//B,EAAO3L,UACP2I,GAAS,OAASgD,EAAK,IAE3B,OAAOA,EAAK1L,OAAS,EAAI0I,EAASA,EAAOsN,QAAQtK,EAAK,GAAIA,EAAK,+ICRjE,MAJA,SAAsB5H,GACpB,OAAO,EAAAqnC,EAAA,GAAarnC,IAVN,oBAUgB,OAAWA,yBCTvC4nC,EAAe,KAAY,aAqB/B,EAFeA,GAAe,OAAUA,GAAgB,wBC2BxD,MArBA,SAAehjC,EAAQijC,EAAWC,GAKhC,OAJIA,GAAyB,iBAATA,IAAqB,OAAeljC,EAAQijC,EAAWC,KACzED,EAAYC,OAAQt7B,IAEtBs7B,OAAkBt7B,IAAVs7B,EAzBa,WAyB4BA,IAAU,IAI3DljC,GAAS,OAASA,MAEQ,iBAAbijC,GACO,MAAbA,IAAsB,EAASA,OAEpCA,GAAY,OAAaA,MACP,OAAWjjC,IACpB,QAAU,OAAcA,GAAS,EAAGkjC,GAGxCljC,EAAO8P,MAAMmzB,EAAWC,GAZtB,uDCTX,IAJA,SAAkB9nC,GAChB,OAAgB,MAATA,EAAgB,IAAK,OAAaA,wHCQ3C,ICXA,EDTA,SAAyB+nC,GACvB,OAAO,SAASnjC,GACdA,GAAS,OAASA,GAElB,IAAIojC,GAAa,OAAWpjC,IACxB,OAAcA,QACd4H,EAEAy7B,EAAMD,EACNA,EAAW,GACXpjC,EAAOyP,OAAO,GAEd6zB,EAAWF,GACX,OAAUA,EAAY,GAAGhgC,KAAK,IAC9BpD,EAAOnF,MAAM,GAEjB,OAAOwoC,EAAIF,KAAgBG,GCTd,CAAgB,gDClBjC,KAAgB,IAAM,qBAAqB,QAAU,yBAAyB,QAAU,yBAAyB,kBAAkB,iCAAiC,eAAiB,iCAAiC,UAAY,2BAA2B,KAAO,sBAAsB,KAAO,oNC8B1R,IAAIC,EAAW,WAQlB,OAPAA,EAAWtsC,OAAOC,QAAU,SAAkBssC,GAC1C,IAAK,IAAIC,EAAGrsC,EAAI,EAAGuD,EAAItD,UAAUC,OAAQF,EAAIuD,EAAGvD,IAE5C,IAAK,IAAIk7B,KADTmR,EAAIpsC,UAAUD,GACOH,OAAOQ,UAAUC,eAAeC,KAAK8rC,EAAGnR,KAAIkR,EAAElR,GAAKmR,EAAEnR,IAE9E,OAAOkR,GAEJD,EAAS3rC,MAAMC,KAAMR,YAGzB,SAASqsC,EAAOD,EAAGz7B,GACtB,IAAIw7B,EAAI,GACR,IAAK,IAAIlR,KAAKmR,EAAOxsC,OAAOQ,UAAUC,eAAeC,KAAK8rC,EAAGnR,IAAMtqB,EAAEpP,QAAQ05B,GAAK,IAC9EkR,EAAElR,GAAKmR,EAAEnR,IACb,GAAS,MAALmR,GAAqD,oBAAjCxsC,OAAO0sC,sBACtB,KAAIvsC,EAAI,EAAb,IAAgBk7B,EAAIr7B,OAAO0sC,sBAAsBF,GAAIrsC,EAAIk7B,EAAEh7B,OAAQF,IAC3D4Q,EAAEpP,QAAQ05B,EAAEl7B,IAAM,GAAKH,OAAOQ,UAAUirC,qBAAqB/qC,KAAK8rC,EAAGnR,EAAEl7B,MACvEosC,EAAElR,EAAEl7B,IAAMqsC,EAAEnR,EAAEl7B,KAE1B,OAAOosC,EAkBJ,SAASI,EAAUz2B,EAAS02B,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAI1+B,WAAU,SAAUC,EAASC,GAC/C,SAASoF,EAAUtP,GAAS,IAAM2nB,EAAKghB,EAAUzoC,KAAKF,IAAW,MAAO4M,GAAK1C,EAAO0C,IACpF,SAAS2C,EAASvP,GAAS,IAAM2nB,EAAKghB,EAAiB,MAAE3oC,IAAW,MAAO4M,GAAK1C,EAAO0C,IACvF,SAAS+a,EAAKrS,GAJlB,IAAetV,EAIasV,EAAOvV,KAAOkK,EAAQqL,EAAOtV,QAJ1CA,EAIyDsV,EAAOtV,MAJhDA,aAAiB0oC,EAAI1oC,EAAQ,IAAI0oC,GAAE,SAAUz+B,GAAWA,EAAQjK,OAITmN,KAAKmC,EAAWC,GAClGoY,GAAMghB,EAAYA,EAAUnsC,MAAMuV,EAAS02B,GAAc,KAAKvoC,WAI/D,SAAS0oC,EAAY72B,EAASnP,GACjC,IAAsGimC,EAAGzhC,EAAGghC,EAAGzI,EAA3Gzb,EAAI,CAAEmX,MAAO,EAAGyN,KAAM,WAAa,GAAW,EAAPV,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOW,KAAM,GAAIC,IAAK,IAChG,OAAOrJ,EAAI,CAAEz/B,KAAM+oC,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX9pC,SAA0BwgC,EAAExgC,OAAOC,UAAY,WAAa,OAAO3C,OAAUkjC,EACvJ,SAASsJ,EAAK1pC,GAAK,OAAO,SAAU8S,GAAK,OACzC,SAAc62B,GACV,GAAIL,EAAG,MAAM,IAAI5oC,UAAU,mCAC3B,KAAOikB,OACH,GAAI2kB,EAAI,EAAGzhC,IAAMghC,EAAY,EAARc,EAAG,GAAS9hC,EAAU,OAAI8hC,EAAG,GAAK9hC,EAAS,SAAOghC,EAAIhhC,EAAU,SAAMghC,EAAE7rC,KAAK6K,GAAI,GAAKA,EAAElH,SAAWkoC,EAAIA,EAAE7rC,KAAK6K,EAAG8hC,EAAG,KAAKnpC,KAAM,OAAOqoC,EAE3J,OADIhhC,EAAI,EAAGghC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEpoC,QACzBkpC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXhlB,EAAEmX,QAAgB,CAAEr7B,MAAOkpC,EAAG,GAAInpC,MAAM,GAChD,KAAK,EAAGmkB,EAAEmX,QAASj0B,EAAI8hC,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKhlB,EAAE8kB,IAAIG,MAAOjlB,EAAE6kB,KAAKI,MAAO,SACxC,QACI,KAAkBf,GAAZA,EAAIlkB,EAAE6kB,MAAY7sC,OAAS,GAAKksC,EAAEA,EAAElsC,OAAS,MAAkB,IAAVgtC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEhlB,EAAI,EAAG,SACjG,GAAc,IAAVglB,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAElkB,EAAEmX,MAAQ6N,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYhlB,EAAEmX,MAAQ+M,EAAE,GAAI,CAAElkB,EAAEmX,MAAQ+M,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKlkB,EAAEmX,MAAQ+M,EAAE,GAAI,CAAElkB,EAAEmX,MAAQ+M,EAAE,GAAIlkB,EAAE8kB,IAAIx5B,KAAK05B,GAAK,MACvDd,EAAE,IAAIlkB,EAAE8kB,IAAIG,MAChBjlB,EAAE6kB,KAAKI,MAAO,SAEtBD,EAAKtmC,EAAKrG,KAAKwV,EAASmS,GAC1B,MAAOtX,GAAKs8B,EAAK,CAAC,EAAGt8B,GAAIxF,EAAI,EAAK,QAAUyhC,EAAIT,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElpC,MAAOkpC,EAAG,GAAKA,EAAG,QAAK,EAAQnpC,MAAM,GArB9B4nB,CAAK,CAACpoB,EAAG8S,MAyBhCxW,OAAOkS,OA4B7B,SAASq7B,EAAOpqC,EAAGO,GACtB,IAAI8pC,EAAsB,oBAAXlqC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKiqC,EAAG,OAAOrqC,EACf,IAAmBsqC,EAAY18B,EAA3B5Q,EAAIqtC,EAAE9sC,KAAKyC,GAAOuqC,EAAK,GAC3B,IACI,WAAc,IAANhqC,GAAgBA,KAAM,MAAQ+pC,EAAIttC,EAAEkE,QAAQH,MAAMwpC,EAAG/5B,KAAK85B,EAAEtpC,OAExE,MAAOO,GAASqM,EAAI,CAAErM,MAAOA,GAC7B,QACI,IACQ+oC,IAAMA,EAAEvpC,OAASspC,EAAIrtC,EAAU,SAAIqtC,EAAE9sC,KAAKP,GAElD,QAAU,GAAI4Q,EAAG,MAAMA,EAAErM,OAE7B,OAAOgpC,EAIJ,SAASC,IACZ,IAAK,IAAID,EAAK,GAAIvtC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAC3CutC,EAAKA,EAAG/iC,OAAO4iC,EAAOntC,UAAUD,KACpC,OAAOutC,EAYJ,SAASE,EAAcC,EAAI9pC,EAAM+pC,GACpC,GAAIA,GAA6B,IAArB1tC,UAAUC,OAAc,IAAK,IAA4BqtC,EAAxBvtC,EAAI,EAAG+Y,EAAInV,EAAK1D,OAAYF,EAAI+Y,EAAG/Y,KACxEutC,GAAQvtC,KAAK4D,IACR2pC,IAAIA,EAAKzqC,MAAMzC,UAAUoD,MAAMlD,KAAKqD,EAAM,EAAG5D,IAClDutC,EAAGvtC,GAAK4D,EAAK5D,IAGrB,OAAO0tC,EAAGljC,OAAO+iC,GAAMzqC,MAAMzC,UAAUoD,MAAMlD,KAAKqD,IAsC7B/D,OAAOkS,uCCrMhC,IAEI67B,EAAU,aA2CdlmC,EAAOC,QAAUimC,qCC7DF,SAASC,EAAgB/0B,EAAK1Y,EAAK4D,GAYhD,OAXI5D,KAAO0Y,EACTjZ,OAAOqyB,eAAepZ,EAAK1Y,EAAK,CAC9B4D,MAAOA,EACP8pC,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZl1B,EAAI1Y,GAAO4D,EAGN8U","sources":["webpack://StravaModern/./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js","webpack://StravaModern/./node_modules/@reach/alert/node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js","webpack://StravaModern/./node_modules/@reach/alert/node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js","webpack://StravaModern/./node_modules/@reach/alert/node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js","webpack://StravaModern/./node_modules/@reach/alert/node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js","webpack://StravaModern/./node_modules/@reach/alert/dist/reach-alert.esm.js","webpack://StravaModern/./node_modules/@reach/alert/node_modules/@reach/utils/use-previous/dist/reach-utils-use-previous.esm.js","webpack://StravaModern/./node_modules/@reach/dialog/node_modules/prop-types/factoryWithThrowingShims.js","webpack://StravaModern/./node_modules/@reach/dialog/node_modules/prop-types/index.js","webpack://StravaModern/./node_modules/@reach/dialog/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://StravaModern/./node_modules/@reach/portal/dist/portal.esm.js","webpack://StravaModern/./node_modules/@reach/utils/dist/utils.esm.js","webpack://StravaModern/./node_modules/axios/index.js","webpack://StravaModern/./node_modules/axios/lib/adapters/xhr.js","webpack://StravaModern/./node_modules/axios/lib/axios.js","webpack://StravaModern/./node_modules/axios/lib/cancel/Cancel.js","webpack://StravaModern/./node_modules/axios/lib/cancel/CancelToken.js","webpack://StravaModern/./node_modules/axios/lib/cancel/isCancel.js","webpack://StravaModern/./node_modules/axios/lib/core/Axios.js","webpack://StravaModern/./node_modules/axios/lib/core/InterceptorManager.js","webpack://StravaModern/./node_modules/axios/lib/core/createError.js","webpack://StravaModern/./node_modules/axios/lib/core/dispatchRequest.js","webpack://StravaModern/./node_modules/axios/lib/core/enhanceError.js","webpack://StravaModern/./node_modules/axios/lib/core/settle.js","webpack://StravaModern/./node_modules/axios/lib/core/transformData.js","webpack://StravaModern/./node_modules/axios/lib/defaults.js","webpack://StravaModern/./node_modules/axios/lib/helpers/bind.js","webpack://StravaModern/./node_modules/axios/lib/helpers/buildURL.js","webpack://StravaModern/./node_modules/axios/lib/helpers/combineURLs.js","webpack://StravaModern/./node_modules/axios/lib/helpers/cookies.js","webpack://StravaModern/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://StravaModern/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://StravaModern/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://StravaModern/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://StravaModern/./node_modules/axios/lib/helpers/spread.js","webpack://StravaModern/./node_modules/axios/lib/utils.js","webpack://StravaModern/./node_modules/@strava/icons/ActionsCancelNormalXsmall.js","webpack://StravaModern/./node_modules/@strava/icons/node_modules/prop-types/factoryWithThrowingShims.js","webpack://StravaModern/./node_modules/@strava/icons/node_modules/prop-types/index.js","webpack://StravaModern/./node_modules/@strava/icons/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://StravaModern/./node_modules/@strava/ui/Button/Button.js","webpack://StravaModern/./node_modules/@strava/ui/Button/LinkButton.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/constants.js","webpack://StravaModern/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://StravaModern/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://StravaModern/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://StravaModern/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://StravaModern/./node_modules/react-clientside-effect/lib/index.es.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/solver.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/index.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://StravaModern/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://StravaModern/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://StravaModern/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://StravaModern/./node_modules/use-sidecar/dist/es2015/exports.js","webpack://StravaModern/./node_modules/get-nonce/dist/es2015/index.js","webpack://StravaModern/./node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://StravaModern/./node_modules/react-style-singleton/dist/es2015/component.js","webpack://StravaModern/./node_modules/react-style-singleton/dist/es2015/hook.js","webpack://StravaModern/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://StravaModern/./node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://StravaModern/./node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://StravaModern/./node_modules/@reach/dialog/dist/dialog.esm.js","webpack://StravaModern/./node_modules/@strava/ui/Modal/styles.scss?b48f","webpack://StravaModern/./node_modules/@strava/ui/Modal/index.js","webpack://StravaModern/./node_modules/@strava/ui/clsx/clsx.js","webpack://StravaModern/./node_modules/@strava/ui/colors.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/prop-types/factoryWithThrowingShims.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/prop-types/index.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://StravaModern/./node_modules/escape-html/index.js","webpack://StravaModern/./node_modules/interweave/esm/index.js","webpack://StravaModern/./node_modules/is-buffer/index.js","webpack://StravaModern/./node_modules/lodash-es/_Map.js","webpack://StravaModern/./node_modules/lodash-es/_Set.js","webpack://StravaModern/./node_modules/lodash-es/_Symbol.js","webpack://StravaModern/./node_modules/lodash-es/_arrayMap.js","webpack://StravaModern/./node_modules/lodash-es/_getRawTag.js","webpack://StravaModern/./node_modules/lodash-es/_objectToString.js","webpack://StravaModern/./node_modules/lodash-es/_baseGetTag.js","webpack://StravaModern/./node_modules/lodash-es/_nativeKeys.js","webpack://StravaModern/./node_modules/lodash-es/_baseKeys.js","webpack://StravaModern/./node_modules/lodash-es/_basePropertyOf.js","webpack://StravaModern/./node_modules/lodash-es/_baseSlice.js","webpack://StravaModern/./node_modules/lodash-es/_baseToString.js","webpack://StravaModern/./node_modules/lodash-es/_baseUnary.js","webpack://StravaModern/./node_modules/lodash-es/_castSlice.js","webpack://StravaModern/./node_modules/lodash-es/_arrayReduce.js","webpack://StravaModern/./node_modules/lodash-es/_deburrLetter.js","webpack://StravaModern/./node_modules/lodash-es/deburr.js","webpack://StravaModern/./node_modules/lodash-es/_asciiWords.js","webpack://StravaModern/./node_modules/lodash-es/_hasUnicodeWord.js","webpack://StravaModern/./node_modules/lodash-es/_unicodeWords.js","webpack://StravaModern/./node_modules/lodash-es/words.js","webpack://StravaModern/./node_modules/lodash-es/_createCompounder.js","webpack://StravaModern/./node_modules/lodash-es/_freeGlobal.js","webpack://StravaModern/./node_modules/lodash-es/_isMasked.js","webpack://StravaModern/./node_modules/lodash-es/_coreJsData.js","webpack://StravaModern/./node_modules/lodash-es/_baseIsNative.js","webpack://StravaModern/./node_modules/lodash-es/_getValue.js","webpack://StravaModern/./node_modules/lodash-es/_getNative.js","webpack://StravaModern/./node_modules/lodash-es/_DataView.js","webpack://StravaModern/./node_modules/lodash-es/_Promise.js","webpack://StravaModern/./node_modules/lodash-es/_WeakMap.js","webpack://StravaModern/./node_modules/lodash-es/_getTag.js","webpack://StravaModern/./node_modules/lodash-es/_hasUnicode.js","webpack://StravaModern/./node_modules/lodash-es/_isIndex.js","webpack://StravaModern/./node_modules/lodash-es/_isIterateeCall.js","webpack://StravaModern/./node_modules/lodash-es/_isPrototype.js","webpack://StravaModern/./node_modules/lodash-es/_nodeUtil.js","webpack://StravaModern/./node_modules/lodash-es/_overArg.js","webpack://StravaModern/./node_modules/lodash-es/_root.js","webpack://StravaModern/./node_modules/lodash-es/_asciiToArray.js","webpack://StravaModern/./node_modules/lodash-es/_unicodeToArray.js","webpack://StravaModern/./node_modules/lodash-es/_stringToArray.js","webpack://StravaModern/./node_modules/lodash-es/_toSource.js","webpack://StravaModern/./node_modules/lodash-es/camelCase.js","webpack://StravaModern/./node_modules/lodash-es/capitalize.js","webpack://StravaModern/./node_modules/lodash-es/eq.js","webpack://StravaModern/./node_modules/lodash-es/_baseIsArguments.js","webpack://StravaModern/./node_modules/lodash-es/isArguments.js","webpack://StravaModern/./node_modules/lodash-es/isArray.js","webpack://StravaModern/./node_modules/lodash-es/isArrayLike.js","webpack://StravaModern/./node_modules/lodash-es/stubFalse.js","webpack://StravaModern/./node_modules/lodash-es/isBuffer.js","webpack://StravaModern/./node_modules/lodash-es/isEmpty.js","webpack://StravaModern/./node_modules/lodash-es/isFunction.js","webpack://StravaModern/./node_modules/lodash-es/isLength.js","webpack://StravaModern/./node_modules/lodash-es/isNil.js","webpack://StravaModern/./node_modules/lodash-es/isObject.js","webpack://StravaModern/./node_modules/lodash-es/isObjectLike.js","webpack://StravaModern/./node_modules/lodash-es/isSymbol.js","webpack://StravaModern/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://StravaModern/./node_modules/lodash-es/isTypedArray.js","webpack://StravaModern/./node_modules/lodash-es/replace.js","webpack://StravaModern/./node_modules/lodash-es/_baseIsRegExp.js","webpack://StravaModern/./node_modules/lodash-es/isRegExp.js","webpack://StravaModern/./node_modules/lodash-es/split.js","webpack://StravaModern/./node_modules/lodash-es/toString.js","webpack://StravaModern/./node_modules/lodash-es/_createCaseFirst.js","webpack://StravaModern/./node_modules/lodash-es/upperFirst.js","webpack://StravaModern/./node_modules/@strava/ui/Button/styles.scss?e572","webpack://StravaModern/./node_modules/tslib/tslib.es6.js","webpack://StravaModern/./node_modules/warning/warning.js","webpack://StravaModern/./node_modules/@babel/runtime/helpers/esm/defineProperty.js"],"sourcesContent":["import { forwardRef, createElement } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"as\", \"style\"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? \"span\" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/createElement(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n VisuallyHidden.propTypes = {\n as: PropTypes.any,\n children: PropTypes.node\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default VisuallyHidden;\nexport { VisuallyHidden };\n","import { canUseDOM } from '../../can-use-dom/dist/reach-utils-can-use-dom.esm.js';\n\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\nexport { getOwnerDocument, getOwnerWindow };\n","function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\nexport { canUseDOM };\n","import { useCallback } from 'react';\nimport { isFunction } from '../../type-check/dist/reach-utils-type-check.esm.js';\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useCallback(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\nexport { assignRef, useComposedRefs };\n","/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\nexport { isBoolean, isFunction, isNumber, isString };\n","import { forwardRef, useRef, useMemo, createElement, useEffect, cloneElement } from 'react';\nimport { render } from 'react-dom';\nimport { VisuallyHidden } from '@reach/visually-hidden';\nimport { usePrevious } from '@reach/utils/use-previous';\nimport { getOwnerDocument } from '@reach/utils/owner-document';\nimport { useComposedRefs } from '@reach/utils/compose-refs';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"as\", \"children\", \"type\"];\n\n/*\n * Singleton state is fine because you don't server render\n * an alert (SRs don't read them on first load anyway)\n */\nvar keys = {\n polite: -1,\n assertive: -1\n};\nvar elements = {\n polite: {},\n assertive: {}\n};\nvar liveRegions = {\n polite: null,\n assertive: null\n};\nvar renderTimer; ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Alert\n *\n * Screen-reader-friendly alert messages. In many apps developers add \"alert\"\n * messages when network events or other things happen. Users with assistive\n * technologies may not know about the message unless you develop for it.\n *\n * @see Docs https://reach.tech/alert\n */\n\nvar Alert = /*#__PURE__*/forwardRef(function Alert(_ref, forwardedRef) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? \"div\" : _ref$as,\n children = _ref.children,\n _ref$type = _ref.type,\n regionType = _ref$type === void 0 ? \"polite\" : _ref$type,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var ownRef = useRef(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var child = useMemo(function () {\n return /*#__PURE__*/createElement(Comp, _extends({}, props, {\n ref: ref,\n \"data-reach-alert\": true\n }), children);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [children, props]);\n useMirrorEffects(regionType, child, ownRef);\n return child;\n});\n/**\n * @see Docs https://reach.tech/alert#alert-props\n */\n\nif (process.env.NODE_ENV !== \"production\") {\n Alert.displayName = \"Alert\";\n Alert.propTypes = {\n children: PropTypes.node,\n type: /*#__PURE__*/PropTypes.oneOf([\"assertive\", \"polite\"])\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction createMirror(type, doc) {\n var key = ++keys[type];\n\n var mount = function mount(element) {\n if (liveRegions[type]) {\n elements[type][key] = element;\n renderAlerts();\n } else {\n var node = doc.createElement(\"div\");\n node.setAttribute(\"data-reach-live-\" + type, \"true\");\n liveRegions[type] = node;\n doc.body.appendChild(liveRegions[type]);\n mount(element);\n }\n };\n\n var update = function update(element) {\n elements[type][key] = element;\n renderAlerts();\n };\n\n var unmount = function unmount() {\n delete elements[type][key];\n renderAlerts();\n };\n\n return {\n mount: mount,\n update: update,\n unmount: unmount\n };\n}\n\nfunction renderAlerts() {\n if (renderTimer != null) {\n window.clearTimeout(renderTimer);\n }\n\n renderTimer = window.setTimeout(function () {\n Object.keys(elements).forEach(function (elementType) {\n var regionType = elementType;\n var container = liveRegions[regionType];\n\n if (container) {\n render( /*#__PURE__*/createElement(VisuallyHidden, {\n as: \"div\"\n }, /*#__PURE__*/createElement(\"div\", {\n // The status role is a type of live region and a container whose\n // content is advisory information for the user that is not\n // important enough to justify an alert, and is often presented as\n // a status bar. When the role is added to an element, the browser\n // will send out an accessible status event to assistive\n // technology products which can then notify the user about it.\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role\n role: regionType === \"assertive\" ? \"alert\" : \"status\",\n \"aria-live\": regionType\n }, Object.keys(elements[regionType]).map(function (key) {\n return /*#__PURE__*/cloneElement(elements[regionType][key], {\n key: key,\n ref: null\n });\n }))), liveRegions[regionType]);\n }\n });\n }, 500);\n}\n\nfunction useMirrorEffects(regionType, element, ref) {\n var prevType = usePrevious(regionType);\n var mirror = useRef(null);\n var mounted = useRef(false);\n useEffect(function () {\n var ownerDocument = getOwnerDocument(ref.current);\n\n if (!mounted.current) {\n mounted.current = true;\n mirror.current = createMirror(regionType, ownerDocument);\n mirror.current.mount(element);\n } else if (prevType !== regionType) {\n mirror.current && mirror.current.unmount();\n mirror.current = createMirror(regionType, ownerDocument);\n mirror.current.mount(element);\n } else {\n mirror.current && mirror.current.update(element);\n }\n }, [element, regionType, prevType, ref]);\n useEffect(function () {\n return function () {\n mirror.current && mirror.current.unmount();\n };\n }, []);\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default Alert;\nexport { Alert };\n","import { useRef, useEffect } from 'react';\n\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\n\nfunction usePrevious(value) {\n var ref = useRef(null);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nexport { usePrevious };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React, { useRef, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '@reach/utils';\nimport { createPortal } from 'react-dom';\n\n/**\r\n * Welcome to @reach/portal!\r\n *\r\n * Creates and appends a DOM node to the end of `document.body` and renders a\r\n * React tree into it. Useful for rendering a natural React element hierarchy\r\n * with a different DOM hierarchy to prevent parent styles from clipping or\r\n * hiding content (for popovers, dropdowns, and modals).\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/portal\r\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\r\n * @see React https://reactjs.org/docs/portals.html\r\n */\n/**\r\n * Portal\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/portal#portal\r\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"reach-portal\" : _ref$type;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n\n var _useState = useState(),\n forceUpdate = _useState[1];\n\n useIsomorphicLayoutEffect(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It's possible that the content of the portal has, itself, been portaled.\n // In that case, it's important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.createElement(type);\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, [type]);\n return portalNode.current ? createPortal(children, portalNode.current) : React.createElement(\"span\", {\n ref: mountNode\n });\n};\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport default Portal;\n//# sourceMappingURL=portal.esm.js.map\n","import React, { isValidElement, cloneElement, createContext, useRef, useState, useCallback, useEffect, useMemo } from 'react';\nexport { default as warning } from 'warning';\n\n/* eslint-disable no-restricted-globals, eqeqeq */\n/**\r\n * React currently throws a warning when using useLayoutEffect on the server.\r\n * To get around it, we can conditionally useEffect on the server (no-op) and\r\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\r\n * ensure we don't get a render flash for certain operations, but we may also\r\n * need affected components to render on the server. One example is when setting\r\n * a component's descendants to retrieve their index values.\r\n *\r\n * Important to note that using this hook as an escape hatch will break the\r\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\r\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\r\n * any server/client mismatch.\r\n *\r\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\r\n * likely that the component in question shouldn't be rendered on the server at\r\n * all, so a better approach would be to lazily render those in a parent\r\n * component after client-side hydration.\r\n *\r\n * TODO: We are calling useLayoutEffect in a couple of places that will likely\r\n * cause some issues for SSR users, whether the warning shows or not. Audit and\r\n * fix these.\r\n *\r\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\r\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\r\n *\r\n * @param effect\r\n * @param deps\r\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? React.useLayoutEffect : React.useEffect;\nvar checkedPkgs = {};\n/**\r\n * When in dev mode, checks that styles for a given @reach package are loaded.\r\n *\r\n * @param packageName Name of the package to check.\r\n * @example checkStyles(\"dialog\") will check for styles for @reach/dialog\r\n */\n// @ts-ignore\n\nvar checkStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n // In CJS files, process.env.NODE_ENV is stripped from our build, but we need\n // it to prevent style checks from clogging up user logs while testing.\n // This is a workaround until we can tweak the build a bit to accommodate.\n var _ref = typeof process !== \"undefined\" ? process : {\n env: {\n NODE_ENV: \"development\"\n }\n },\n env = _ref.env;\n\n checkStyles = function checkStyles(packageName) {\n // only check once per package\n if (checkedPkgs[packageName]) return;\n checkedPkgs[packageName] = true;\n\n if (env.NODE_ENV !== \"test\" && parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--reach-\" + packageName), 10) !== 1) {\n console.warn(\"@reach/\" + packageName + \" styles not found. If you are using a bundler like webpack or parcel include this in the entry file of your app before any of your own styles:\\n\\n import \\\"@reach/\" + packageName + \"/styles.css\\\";\\n\\n Otherwise you'll need to include them some other way:\\n\\n \\n\\n For more information visit https://ui.reach.tech/styling.\\n \");\n }\n };\n}\n/**\r\n * Ponyfill for the global object in some environments.\r\n *\r\n * @link https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\n */\n\nvar ponyfillGlobal = typeof window != \"undefined\" && window.Math == Math ? window : typeof self != \"undefined\" && self.Math == Math ? self :\n/*#__PURE__*/\n// eslint-disable-next-line no-new-func\nFunction(\"return this\")();\n/**\r\n * Passes or assigns an arbitrary value to a ref function or object.\r\n *\r\n * @param ref\r\n * @param value\r\n */\n\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\r\n * Checks true|\"true\" vs false|\"false\"\r\n *\r\n * @param value\r\n */\n\nfunction boolOrBoolString(value) {\n return value === \"true\" ? true : isBoolean(value) ? value : false;\n}\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n/**\r\n * Type-safe clone element\r\n *\r\n * @param element\r\n * @param props\r\n * @param children\r\n */\n\nfunction cloneValidElement(element, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return isValidElement(element) ? cloneElement.apply(void 0, [element, props].concat(children)) : element;\n}\nfunction createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n/**\r\n * This is a hack for sure. The thing is, getting a component to intelligently\r\n * infer props based on a component or JSX string passed into an `as` prop is\r\n * kind of a huge pain. Getting it to work and satisfy the constraints of\r\n * `forwardRef` seems dang near impossible. To avoid needing to do this awkward\r\n * type song-and-dance every time we want to forward a ref into a component\r\n * that accepts an `as` prop, we abstract all of that mess to this function for\r\n * the time time being.\r\n */\n\nfunction forwardRefWithAs(render) {\n return React.forwardRef(render);\n}\nfunction memoWithAs(Component, propsAreEqual) {\n return React.memo(Component, propsAreEqual);\n}\n/**\r\n * Get the size of the working document minus the scrollbar offset.\r\n *\r\n * @param element\r\n */\n\nfunction getDocumentDimensions(element) {\n if (!canUseDOM()) return {\n width: 0,\n height: 0\n };\n var doc = element ? getOwnerDocument(element) : document;\n var win = element ? getOwnerWindow(element) : window;\n return {\n width: doc.documentElement.clientWidth || win.innerWidth,\n height: doc.documentElement.clientHeight || win.innerHeight\n };\n}\n/**\r\n * Get the scoll position of the global window object relative to a given node.\r\n *\r\n * @param element\r\n */\n\nfunction getScrollPosition(element) {\n if (!canUseDOM()) return {\n scrollX: 0,\n scrollY: 0\n };\n var win = element ? getOwnerWindow(element) : window;\n return {\n scrollX: win.scrollX,\n scrollY: win.scrollY\n };\n}\n/**\r\n * Get a computed style value by property, backwards compatible with IE\r\n * @param element\r\n * @param styleProp\r\n */\n\nfunction getElementComputedStyle(element, styleProp) {\n var y = null;\n var doc = getOwnerDocument(element);\n\n if (element.currentStyle) {\n y = element.currentStyle[styleProp];\n } else if (doc && doc.defaultView && isFunction(doc.defaultView.getComputedStyle)) {\n y = doc.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);\n }\n\n return y;\n}\n/**\r\n * Get an element's owner document. Useful when components are used in iframes\r\n * or other environments like dev tools.\r\n *\r\n * @param element\r\n */\n\nfunction getOwnerDocument(element) {\n return element && element.ownerDocument ? element.ownerDocument : canUseDOM() ? document : null;\n}\nfunction getOwnerWindow(element) {\n var doc = element ? getOwnerDocument(element) : null;\n return doc ? doc.defaultView || window : null;\n}\n/**\r\n * Get the scrollbar offset distance.\r\n *\r\n * TODO: Remove in 1.0 (we used this in public examples)\r\n */\n\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {}\n\n return 0;\n}\n/**\r\n * Checks whether or not a value is a boolean.\r\n *\r\n * @param value\r\n */\n\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\r\n * Checks whether or not a value is a function.\r\n *\r\n * @param value\r\n */\n\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\r\n * Checks whether or not a value is a number.\r\n *\r\n * @param value\r\n */\n\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\n/**\r\n * Detects right clicks\r\n *\r\n * @param nativeEvent\r\n */\n\nfunction isRightClick(nativeEvent) {\n return nativeEvent.which === 3 || nativeEvent.button === 2;\n}\n/**\r\n * Checks whether or not a value is a string.\r\n *\r\n * @param value\r\n */\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n/**\r\n * Joins strings to format IDs for compound components.\r\n *\r\n * @param args\r\n */\n\nfunction makeId() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join(\"--\");\n}\n/**\r\n * No-op function.\r\n */\n\nfunction noop() {}\n/**\r\n * Convert our state strings for HTML data attributes.\r\n * No need for a fancy kebab-caser here, we know what our state strings are!\r\n *\r\n * @param state\r\n */\n\nfunction stateToAttributeString(state) {\n return String(state).replace(/([\\s_]+)/g, \"-\").toLowerCase();\n}\n/**\r\n * Check if a component is controlled or uncontrolled and return the correct\r\n * state value and setter accordingly. If the component state is controlled by\r\n * the app, the setter is a noop.\r\n *\r\n * @param controlledValue\r\n * @param defaultValue\r\n */\n\nfunction useControlledState(controlledValue, defaultValue) {\n var controlledRef = useRef(controlledValue != null);\n\n var _useState = useState(defaultValue),\n valueState = _useState[0],\n setValue = _useState[1];\n\n var set = useCallback(function (n) {\n if (!controlledRef.current) {\n setValue(n);\n }\n }, []);\n return [controlledRef.current ? controlledValue : valueState, set];\n}\n/**\r\n * Logs a warning in dev mode when a component switches from controlled to\r\n * uncontrolled, or vice versa\r\n *\r\n * A single prop should typically be used to determine whether or not a\r\n * component is controlled or not.\r\n *\r\n * @param controlledValue\r\n * @param controlledPropName\r\n * @param componentName\r\n */\n\nvar useControlledSwitchWarning = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useControlledSwitchWarning = function useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n var controlledRef = useRef(controlledValue != null);\n var nameCache = useRef({\n componentName: componentName,\n controlledPropName: controlledPropName\n });\n useEffect(function () {\n nameCache.current = {\n componentName: componentName,\n controlledPropName: controlledPropName\n };\n }, [componentName, controlledPropName]);\n useEffect(function () {\n var wasControlled = controlledRef.current;\n var _nameCache$current = nameCache.current,\n componentName = _nameCache$current.componentName,\n controlledPropName = _nameCache$current.controlledPropName;\n var isControlled = controlledValue != null;\n\n if (wasControlled !== isControlled) {\n console.error(\"A component is changing an \" + (wasControlled ? \"\" : \"un\") + \"controlled `\" + controlledPropName + \"` state of \" + componentName + \" to be \" + (wasControlled ? \"un\" : \"\") + \"controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled \" + componentName + \" element for the lifetime of the component.\\nMore info: https://fb.me/react-controlled-components\");\n }\n }, [controlledValue]);\n };\n}\nvar useCheckStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useCheckStyles = function useCheckStyles(pkg) {\n var name = useRef(pkg);\n useEffect(function () {\n return void (name.current = pkg);\n }, [pkg]);\n useEffect(function () {\n return checkStyles(name.current);\n }, []);\n };\n}\n/**\r\n * React hook for creating a value exactly once.\r\n * @see https://github.com/Andarist/use-constant\r\n */\n\nfunction useConstant(fn) {\n var ref = React.useRef();\n\n if (!ref.current) {\n ref.current = {\n v: fn()\n };\n }\n\n return ref.current.v;\n}\n/**\r\n * @param callback\r\n */\n\nfunction useEventCallback(callback) {\n var ref = useRef(callback);\n useIsomorphicLayoutEffect(function () {\n ref.current = callback;\n });\n return useCallback(function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return ref.current.apply(ref, [event].concat(args));\n }, []);\n}\n/**\r\n * @param callback\r\n */\n\nfunction useCallbackProp(callback) {\n var ref = useRef(callback);\n useEffect(function () {\n ref.current = callback;\n });\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, []);\n}\n/**\r\n * Adds a DOM event listener\r\n *\r\n * @param eventName\r\n * @param listener\r\n * @param element\r\n */\n\nfunction useEventListener(eventName, listener, element) {\n if (element === void 0) {\n element = window;\n }\n\n var savedHandler = useRef(listener);\n useEffect(function () {\n savedHandler.current = listener;\n }, [listener]);\n useEffect(function () {\n var isSupported = element && element.addEventListener;\n\n if (!isSupported) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"Event listener not supported on the element provided\");\n }\n\n return;\n }\n\n function eventListener(event) {\n savedHandler.current(event);\n }\n\n element.addEventListener(eventName, eventListener);\n return function () {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n/**\r\n * Detect when focus changes in our document.\r\n *\r\n * @param handleChange\r\n * @param when\r\n * @param ownerDocument\r\n */\n\nfunction useFocusChange(handleChange, when, ownerDocument) {\n if (handleChange === void 0) {\n handleChange = console.log;\n }\n\n if (when === void 0) {\n when = \"focus\";\n }\n\n if (ownerDocument === void 0) {\n ownerDocument = document;\n }\n\n var lastActiveElement = useRef(ownerDocument.activeElement);\n useEffect(function () {\n lastActiveElement.current = ownerDocument.activeElement;\n\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n\n ownerDocument.addEventListener(when, onChange, true);\n return function () {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n/**\r\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\r\n * dealing with components that need an explicit ref for DOM calculations but\r\n * also forwards refs assigned by an app.\r\n *\r\n * @param refs Refs to fork\r\n */\n\nfunction useForkedRef() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return useMemo(function () {\n if (refs.every(function (ref) {\n return ref == null;\n })) {\n return null;\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n assignRef(ref, node);\n });\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [].concat(refs));\n}\n/**\r\n * Returns the previous value of a reference after a component update.\r\n *\r\n * @param value\r\n */\n\nfunction usePrevious(value) {\n var ref = useRef(null);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n/**\r\n * Call an effect after a component update, skipping the initial mount.\r\n *\r\n * @param effect Effect to call\r\n * @param deps Effect dependency list\r\n */\n\nfunction useUpdateEffect(effect, deps) {\n var mounted = useRef(false);\n useEffect(function () {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, deps);\n}\n/**\r\n * Just a lil state logger\r\n *\r\n * @param state\r\n * @param DEBUG\r\n */\n\nvar useStateLogger = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useStateLogger = function useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n var debugRef = useRef(DEBUG);\n useEffect(function () {\n debugRef.current = DEBUG;\n }, [DEBUG]);\n useEffect(function () {\n if (debugRef.current) {\n console.group(\"State Updated\");\n console.log(\"%c\" + state, \"font-weight: normal; font-size: 120%; font-style: italic;\");\n console.groupEnd();\n }\n }, [state]);\n };\n}\n/**\r\n * Wraps a lib-defined event handler and a user-defined event handler, returning\r\n * a single handler that allows a user to prevent lib-defined handlers from\r\n * firing.\r\n *\r\n * @param theirHandler User-supplied event handler\r\n * @param ourHandler Library-supplied event handler\r\n */\n\nfunction wrapEvent(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport { assignRef, boolOrBoolString, canUseDOM, checkStyles, cloneValidElement, createNamedContext, forwardRefWithAs, getDocumentDimensions, getElementComputedStyle, getOwnerDocument, getOwnerWindow, getScrollPosition, getScrollbarOffset, isBoolean, isFunction, isNumber, isRightClick, isString, makeId, memoWithAs, noop, ponyfillGlobal, stateToAttributeString, useCallbackProp, useCheckStyles, useConstant, useControlledState, useControlledSwitchWarning, useEventCallback, useEventListener, useFocusChange, useForkedRef, useIsomorphicLayoutEffect, usePrevious, useStateLogger, useUpdateEffect, wrapEvent };\n//# sourceMappingURL=utils.esm.js.map\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\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\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 || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\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\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? 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 // 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 reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, '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 var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && 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 (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\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 === undefined) {\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 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(utils.merge(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\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 defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\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 = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\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(utils.merge(config || {}, {\n method: method,\n url: url\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(utils.merge(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) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\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 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');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\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 // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\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(\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(\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 error.request = request;\n error.response = response;\n return error;\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 // Note: status is not exposed by XDomainRequest\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');\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 /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\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') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\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)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\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\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(/%40/gi, '@').\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 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\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 bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\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 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 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 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 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.replace(/^\\s*/, '').replace(/\\s*$/, '');\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\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 (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\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\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 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};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgActionsCancelNormalXsmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n )\n);\nSvgActionsCancelNormalXsmall.defaultProps = {\n color: 'currentColor',\n size: 16,\n title: undefined,\n titleId: undefined\n};\nSvgActionsCancelNormalXsmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string\n};\nexport default SvgActionsCancelNormalXsmall;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './styles.scss';\n\nconst Button = forwardRef(\n ({ children, variant, className, ...otherProps }, ref) => {\n const classNames = [styles.btn, styles[variant], className];\n\n return (\n \n );\n }\n);\n\nButton.propTypes = {\n children: PropTypes.node.isRequired,\n variant: PropTypes.oneOf([\n 'default',\n 'primary',\n 'primary-outline',\n 'secondary',\n 'icon',\n 'text'\n ]),\n className: PropTypes.string\n};\n\nButton.defaultProps = {\n variant: 'default',\n className: null\n};\n\nexport default Button;\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './styles.scss';\n\nconst LinkButton = forwardRef(\n ({ href, children, variant, className, ...otherProps }, ref) => {\n const classNames = [styles.btn, styles[variant], className];\n\n return (\n \n {children}\n \n );\n }\n);\n\nLinkButton.propTypes = {\n href: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n variant: PropTypes.oneOf([\n 'default',\n 'primary',\n 'primary-outline',\n 'secondary',\n 'icon',\n 'text'\n ]),\n className: PropTypes.string\n};\n\nLinkButton.defaultProps = {\n variant: 'default',\n className: null\n};\n\nexport default LinkButton;\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n if (!observed.current) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\n hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { isRadioElement } from './is';\nvar findSelectedRadio = function (node, nodes) {\n return nodes\n .filter(isRadioElement)\n .filter(function (el) { return el.name === node.name; })\n .filter(function (el) { return el.checked; })[0] || node;\n};\nexport var correctNode = function (node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\nexport var correctNodes = function (nodes) {\n // IE11 has no Set(array) constructor\n var resultSet = new Set();\n nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); });\n // using filter to support IE11\n return nodes.filter(function (node) { return resultSet.has(node); });\n};\n","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n return nodes[0];\n};\nexport var pickFocusable = function (nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n return index;\n};\n","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n // focus is inside\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n // new focus\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n if (!b.tabIndex) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n return toArray(nodes)\n .map(function (node, index) { return ({\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? ((node.dataset || {}).focusGuard ? 0 : -1) : node.tabIndex,\n }); })\n .filter(function (data) { return !filterNegative || data.tabIndex >= 0; })\n .sort(tabSort);\n};\n","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n var _a;\n return toArray(((_a = parent.shadowRoot) === null || _a === void 0 ? void 0 : _a.children) || parent.children).reduce(function (acc, child) {\n return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n }, []);\n};\nexport var getFocusables = function (parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat(\n // add all tabbables inside and within shadow DOMs in DOM order\n getFocusablesWithShadowDom(parent, withGuards), \n // add if node is tabbable itself\n parent.parentNode\n ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) { return node === parent; })\n : []);\n }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\nexport var getParentAutofocusables = function (parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus)\n .map(function (node) { return getFocusables([node]); })\n .reduce(function (acc, nodes) { return acc.concat(nodes); }, []);\n};\n","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n // elements with explicit roles will also use explicit tabindex\n // '[role=\"button\"]',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n];\n","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\nexport var filterFocusable = function (nodes, visibilityCache) {\n return toArray(nodes)\n .filter(function (node) { return isVisibleCached(visibilityCache, node); })\n .filter(function (node) { return notHiddenInput(node); });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n if (cache === void 0) { cache = new Map(); }\n return toArray(nodes).filter(function (node) { return isAutoFocusAllowedCached(cache, node); });\n};\n/**\n * only tabbable ones\n * (but with guards which would be ignored)\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * actually anything \"focusable\", not only tabbable\n * (without guards, as long as they are not expected to be focused)\n */\nexport var getAllTabbableNodes = function (topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\nexport var contains = function (scope, element) {\n return ((scope.shadowRoot\n ? contains(scope.shadowRoot, element)\n : Object.getPrototypeOf(scope).contains.call(scope, element)) ||\n toArray(scope.children).some(function (child) { return contains(child, element); }));\n};\n","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\nvar filterNested = function (nodes) {\n var contained = new Set();\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n /* eslint-disable no-bitwise */\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n /* eslint-enable */\n }\n }\n return nodes.filter(function (_, index) { return !contained.has(index); });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\nvar getTopParent = function (node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node\n * @returns {T}\n */\nexport var getAllAffectedNodes = function (node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, (group\n ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\"))))\n : [currentNode]));\n return acc;\n }, []);\n};\n","var getNestedShadowActiveElement = function (shadowRoot) {\n return shadowRoot.activeElement\n ? shadowRoot.activeElement.shadowRoot\n ? getNestedShadowActiveElement(shadowRoot.activeElement.shadowRoot)\n : shadowRoot.activeElement\n : undefined;\n};\n/**\n * returns active element from document or from nested shadowdoms\n */\nexport var getActiveElement = function () {\n return (document.activeElement\n ? document.activeElement.shadowRoot\n ? getNestedShadowActiveElement(document.activeElement.shadowRoot)\n : document.activeElement\n : undefined); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n};\n","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\nvar getParents = function (node, parents) {\n if (parents === void 0) { parents = []; }\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode.host || node.parentNode, parents);\n }\n return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\nexport var getCommonParent = function (nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || contains(common, topCommon)) {\n topCommon = common;\n }\n else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n // TODO: add assert here?\n return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n return entries.reduce(function (acc, node) { return acc.concat(parentAutofocusables(node, visibilityCache)); }, []);\n};\n","import { NEW_FOCUS, newFocus } from './solver';\nimport { filterAutoFocusable, getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { getDataset, isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\nvar findAutoFocused = function (autoFocusables) {\n return function (node) { var _a; \n // @ts-expect-error\n return node.autofocus || !!((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus) || autoFocusables.indexOf(node) >= 0; };\n};\nvar reorderNodes = function (srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); });\n // remap to dstNodes\n return srcNodes.map(function (node) { return remap.get(node); }).filter(isDefined);\n};\n/**\n * given top node(s) and the last active element return the element to be focused next\n * @param topNode\n * @param lastNode\n */\nexport var getFocusMerge = function (topNode, lastNode) {\n var activeElement = document && getActiveElement();\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n if (!innerElements[0]) {\n return undefined;\n }\n }\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n if (newId === NEW_FOCUS) {\n var autoFocusable = filterAutoFocusable(anyFocusable.map(function (_a) {\n var node = _a.node;\n return node;\n })).filter(findAutoFocused(allParentAutofocusables(entries, visibilityCache)));\n return {\n node: autoFocusable && autoFocusable.length\n ? pickFirstFocus(autoFocusable)\n : pickFirstFocus(filterAutoFocusable(innerNodes)),\n };\n }\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function (target, focusOptions) {\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * Sets focus at a given node. The last focused element will help to determine which element(first or last) should be focused.\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @param topNode\n * @param lastNode\n * @param options\n */\nexport var setFocus = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = getFocusMerge(topNode, lastNode);\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n if (guardCount > 2) {\n // tslint:disable-next-line:no-console\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' +\n 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};\n","import * as constants from './constants';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { getFocusabledIn, getFocusableIn } from './focusables';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getActiveElement } from './utils/getActiveElement';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusableIn, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement, getActiveElement, };\nexport default setFocus;\n//\n","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nvar focusInFrame = function (frame) { return frame === document.activeElement; };\nvar focusInsideIframe = function (topNode) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node); }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes\n */\nexport var focusInside = function (topNode) {\n var activeElement = document && getActiveElement();\n if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {\n return false;\n }\n return getAllAffectedNodes(topNode).some(function (node) { return contains(node, activeElement) || focusInsideIframe(node); });\n};\n","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\n/**\n * return list of focusable elements inside a given top node\n * @deprecated use {@link getFocusableIn}. Yep, there is typo in the function name\n */\nexport var getFocusabledIn = function (topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache)\n .filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n })\n .map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node, index = _a.index;\n return ({\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node),\n });\n });\n};\n/**\n * return list of focusable elements inside a given top node\n */\nexport var getFocusableIn = getFocusabledIn;\n","export function deferAction(action) {\n // Hidding setImmediate from Webpack to avoid inserting polyfill\n var _window = window,\n setImmediate = _window.setImmediate;\n\n if (typeof setImmediate !== 'undefined') {\n setImmediate(action);\n } else {\n setTimeout(action, 1);\n }\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && ( // find host equal to active element and check nested active element\n el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n setTimeout(function () {\n focusWasOutsideWindow = 'meanwhile';\n }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n * @returns {boolean} focus is currently is in \"allow\" area\n */\nexport var focusIsHidden = function () {\n var activeElement = document && getActiveElement();\n if (!activeElement) {\n return false;\n }\n // this does not support setting FOCUS_ALLOW within shadow dom\n return toArray(document.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) { return contains(node, activeElement); });\n};\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return ;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\n\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import FocusLock from './Combination';\nexport * from './UI';\nexport default FocusLock;","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n if (process.env.NODE_ENV !== 'production') {\n if (cs.overflowY === 'hidden') {\n console.error('react-remove-scroll-bar: cannot calculate scrollbar size because it is removed (overflow:hidden on body');\n }\n }\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];\n if (s > d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import React, { forwardRef, useEffect, useRef, useCallback } from 'react';\nimport Portal from '@reach/portal';\nimport { checkStyles, useForkedRef, wrapEvent, getOwnerDocument, noop, isString } from '@reach/utils';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport PropTypes from 'prop-types';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar overlayPropTypes = {\n allowPinchZoom: PropTypes.bool,\n dangerouslyBypassFocusLock: PropTypes.bool,\n dangerouslyBypassScrollLock: PropTypes.bool,\n // TODO:\n initialFocusRef: function initialFocusRef() {\n return null;\n },\n onDismiss: PropTypes.func\n}; ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * DialogOverlay\r\n *\r\n * Low-level component if you need more control over the styles or rendering of\r\n * the dialog overlay.\r\n *\r\n * Note: You must render a `DialogContent` inside.\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/dialog#dialogoverlay\r\n */\n\nvar DialogOverlay = /*#__PURE__*/forwardRef(function DialogOverlay(_ref, forwardedRef) {\n var _ref$isOpen = _ref.isOpen,\n isOpen = _ref$isOpen === void 0 ? true : _ref$isOpen,\n props = _objectWithoutPropertiesLoose(_ref, [\"isOpen\"]);\n\n useEffect(function () {\n return checkStyles(\"dialog\");\n }, []); // We want to ignore the immediate focus of a tooltip so it doesn't pop\n // up again when the menu closes, only pops up when focus returns again\n // to the tooltip (like native OS tooltips).\n\n useEffect(function () {\n if (isOpen) {\n // @ts-ignore\n window.__REACH_DISABLE_TOOLTIPS = true;\n } else {\n window.requestAnimationFrame(function () {\n // Wait a frame so that this doesn't fire before tooltip does\n // @ts-ignore\n window.__REACH_DISABLE_TOOLTIPS = false;\n });\n }\n }, [isOpen]);\n return isOpen ? React.createElement(Portal, {\n \"data-reach-dialog-wrapper\": \"\"\n }, React.createElement(DialogInner, Object.assign({\n ref: forwardedRef\n }, props))) : null;\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogOverlay.displayName = \"DialogOverlay\";\n DialogOverlay.propTypes = /*#__PURE__*/_extends({}, overlayPropTypes, {\n isOpen: PropTypes.bool\n });\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * DialogInner\r\n */\n\n\nvar DialogInner = /*#__PURE__*/forwardRef(function DialogInner(_ref2, forwardedRef) {\n var allowPinchZoom = _ref2.allowPinchZoom,\n _ref2$dangerouslyBypa = _ref2.dangerouslyBypassFocusLock,\n dangerouslyBypassFocusLock = _ref2$dangerouslyBypa === void 0 ? false : _ref2$dangerouslyBypa,\n _ref2$dangerouslyBypa2 = _ref2.dangerouslyBypassScrollLock,\n dangerouslyBypassScrollLock = _ref2$dangerouslyBypa2 === void 0 ? false : _ref2$dangerouslyBypa2,\n initialFocusRef = _ref2.initialFocusRef,\n onClick = _ref2.onClick,\n _ref2$onDismiss = _ref2.onDismiss,\n onDismiss = _ref2$onDismiss === void 0 ? noop : _ref2$onDismiss,\n onKeyDown = _ref2.onKeyDown,\n onMouseDown = _ref2.onMouseDown,\n _ref2$unstable_lockFo = _ref2.unstable_lockFocusAcrossFrames,\n unstable_lockFocusAcrossFrames = _ref2$unstable_lockFo === void 0 ? true : _ref2$unstable_lockFo,\n props = _objectWithoutPropertiesLoose(_ref2, [\"allowPinchZoom\", \"dangerouslyBypassFocusLock\", \"dangerouslyBypassScrollLock\", \"initialFocusRef\", \"onClick\", \"onDismiss\", \"onKeyDown\", \"onMouseDown\", \"unstable_lockFocusAcrossFrames\"]);\n\n var mouseDownTarget = useRef(null);\n var overlayNode = useRef(null);\n var ref = useForkedRef(overlayNode, forwardedRef);\n var activateFocusLock = useCallback(function () {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, [initialFocusRef]);\n\n function handleClick(event) {\n if (mouseDownTarget.current === event.target) {\n event.stopPropagation();\n onDismiss(event);\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n onDismiss(event);\n }\n }\n\n function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n }\n\n useEffect(function () {\n return overlayNode.current ? createAriaHider(overlayNode.current) : void null;\n }, []);\n return React.createElement(FocusLock, {\n autoFocus: true,\n returnFocus: true,\n onActivation: activateFocusLock,\n disabled: dangerouslyBypassFocusLock,\n crossFrame: unstable_lockFocusAcrossFrames\n }, React.createElement(RemoveScroll, {\n allowPinchZoom: allowPinchZoom,\n enabled: !dangerouslyBypassScrollLock\n }, React.createElement(\"div\", Object.assign({}, props, {\n ref: ref,\n \"data-reach-dialog-overlay\": \"\",\n\n /*\r\n * We can ignore the `no-static-element-interactions` warning here\r\n * because our overlay is only designed to capture any outside\r\n * clicks, not to serve as a clickable element itself.\r\n */\n onClick: wrapEvent(onClick, handleClick),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown)\n }))));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogOverlay.displayName = \"DialogOverlay\";\n DialogOverlay.propTypes = /*#__PURE__*/_extends({}, overlayPropTypes);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * DialogContent\r\n *\r\n * Low-level component if you need more control over the styles or rendering of\r\n * the dialog content.\r\n *\r\n * Note: Must be a child of `DialogOverlay`.\r\n *\r\n * Note: You only need to use this when you are also styling `DialogOverlay`,\r\n * otherwise you can use the high-level `Dialog` component and pass the props\r\n * to it. Any props passed to `Dialog` component (besides `isOpen` and\r\n * `onDismiss`) will be spread onto `DialogContent`.\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/dialog#dialogcontent\r\n */\n\n\nvar DialogContent = /*#__PURE__*/forwardRef(function DialogContent(_ref3, forwardedRef) {\n var onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n props = _objectWithoutPropertiesLoose(_ref3, [\"onClick\", \"onKeyDown\"]);\n\n return React.createElement(\"div\", Object.assign({\n \"aria-modal\": \"true\",\n role: \"dialog\",\n tabIndex: -1\n }, props, {\n ref: forwardedRef,\n \"data-reach-dialog-content\": \"\",\n onClick: wrapEvent(onClick, function (event) {\n event.stopPropagation();\n })\n }));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogContent.displayName = \"DialogContent\";\n DialogContent.propTypes = {\n \"aria-label\": ariaLabelType,\n \"aria-labelledby\": ariaLabelType\n };\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\r\n * Dialog\r\n *\r\n * High-level component to render a modal dialog window over the top of the page\r\n * (or another dialog).\r\n *\r\n * @see Docs https://reacttraining.com/reach-ui/dialog#dialog\r\n */\n\n\nvar Dialog = /*#__PURE__*/forwardRef(function Dialog(_ref4, forwardedRef) {\n var _ref4$allowPinchZoom = _ref4.allowPinchZoom,\n allowPinchZoom = _ref4$allowPinchZoom === void 0 ? false : _ref4$allowPinchZoom,\n initialFocusRef = _ref4.initialFocusRef,\n isOpen = _ref4.isOpen,\n _ref4$onDismiss = _ref4.onDismiss,\n onDismiss = _ref4$onDismiss === void 0 ? noop : _ref4$onDismiss,\n props = _objectWithoutPropertiesLoose(_ref4, [\"allowPinchZoom\", \"initialFocusRef\", \"isOpen\", \"onDismiss\"]);\n\n return React.createElement(DialogOverlay, {\n allowPinchZoom: allowPinchZoom,\n initialFocusRef: initialFocusRef,\n isOpen: isOpen,\n onDismiss: onDismiss\n }, React.createElement(DialogContent, Object.assign({\n ref: forwardedRef\n }, props)));\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n Dialog.propTypes = {\n isOpen: PropTypes.bool,\n onDismiss: PropTypes.func,\n \"aria-label\": ariaLabelType,\n \"aria-labelledby\": ariaLabelType\n };\n}\n\nfunction createAriaHider(dialogNode) {\n var originalValues = [];\n var rootNodes = [];\n var ownerDocument = getOwnerDocument(dialogNode) || document;\n\n if (!dialogNode) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"A ref has not yet been attached to a dialog node when attempting to call `createAriaHider`.\");\n }\n\n return noop;\n }\n\n Array.prototype.forEach.call(ownerDocument.querySelectorAll(\"body > *\"), function (node) {\n var _dialogNode$parentNod, _dialogNode$parentNod2;\n\n var portalNode = (_dialogNode$parentNod = dialogNode.parentNode) === null || _dialogNode$parentNod === void 0 ? void 0 : (_dialogNode$parentNod2 = _dialogNode$parentNod.parentNode) === null || _dialogNode$parentNod2 === void 0 ? void 0 : _dialogNode$parentNod2.parentNode;\n\n if (node === portalNode) {\n return;\n }\n\n var attr = node.getAttribute(\"aria-hidden\");\n var alreadyHidden = attr !== null && attr !== \"false\";\n\n if (alreadyHidden) {\n return;\n }\n\n originalValues.push(attr);\n rootNodes.push(node);\n node.setAttribute(\"aria-hidden\", \"true\");\n });\n return function () {\n rootNodes.forEach(function (node, index) {\n var originalValue = originalValues[index];\n\n if (originalValue === null) {\n node.removeAttribute(\"aria-hidden\");\n } else {\n node.setAttribute(\"aria-hidden\", originalValue);\n }\n });\n };\n}\n\nfunction ariaLabelType(props, propName, compName, location, propFullName) {\n var details = \"\\nSee https://www.w3.org/TR/wai-aria/#aria-label for details.\";\n\n if (!props[\"aria-label\"] && !props[\"aria-labelledby\"]) {\n return new Error(\"A <\" + compName + \"> must have either an `aria-label` or `aria-labelledby` prop.\\n \" + details);\n }\n\n if (props[\"aria-label\"] && props[\"aria-labelledby\"]) {\n return new Error(\"You provided both `aria-label` and `aria-labelledby` props to a <\" + compName + \">. If the a label for this component is visible on the screen, that label's component should be given a unique ID prop, and that ID should be passed as the `aria-labelledby` prop into <\" + compName + \">. If the label cannot be determined programmatically from the content of the element, an alternative label should be provided as the `aria-label` prop, which will be used as an `aria-label` on the HTML tag.\" + details);\n } else if (props[propName] != null && !isString(props[propName])) {\n return new Error(\"Invalid prop `\" + propName + \"` supplied to `\" + compName + \"`. Expected `string`, received `\" + (Array.isArray(propFullName) ? \"array\" : typeof propFullName) + \"`.\");\n }\n\n return null;\n}\n\nexport default Dialog;\nexport { Dialog, DialogContent, DialogOverlay };\n//# sourceMappingURL=dialog.esm.js.map\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"Modal--overlay--datCD\",\"dialog\":\"Modal--dialog--NJuNP\",\"close-button\":\"Modal--close-button--54bUs\",\"closeButton\":\"Modal--close-button--54bUs\",\"title\":\"Modal--title--sH-CW\",\"hero-image\":\"Modal--hero-image--jNDsp\",\"heroImage\":\"Modal--hero-image--jNDsp\",\"body\":\"Modal--body--X1CY9\",\"actions\":\"Modal--actions--Ld-Kr\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DialogOverlay, DialogContent } from '@reach/dialog';\n\nimport ActionsCancelNormalXsmall from '@strava/icons/ActionsCancelNormalXsmall';\nimport colors from '../colors';\nimport Button from '../Button';\n\nimport styles from './styles.scss';\n\n//\n// ModalOverlay\n//\n// Reach UI docs: https://reach.tech/dialog/#dialogoverlay\n// --------------------\n\nexport function ModalOverlay({ className, children, ...otherProps }) {\n const classNames = [styles.overlay];\n if (className) {\n classNames.push(className);\n }\n return (\n \n {children}\n \n );\n}\n\n// Override DialogContent display name so that error from prop types show 'ModalOverlay'\nDialogOverlay.displayName = 'ModalOverlay';\n\nModalOverlay.defaultProps = {\n className: null,\n isOpen: false,\n onDismiss: () => {},\n initialFocusRef: () => {},\n\n allowPinchZoom: false,\n dangerouslyBypassFocusLock: false,\n dangerouslyBypassScrollLock: false\n};\n\nModalOverlay.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n isOpen: PropTypes.bool,\n onDismiss: PropTypes.func,\n initialFocusRef: PropTypes.func,\n allowPinchZoom: PropTypes.bool,\n dangerouslyBypassFocusLock: PropTypes.bool,\n dangerouslyBypassScrollLock: PropTypes.bool\n};\n\n//\n// ModalContent\n//\n// Reach UI docs: https://reach.tech/dialog/#dialogcontent\n// --------------------\n\nexport function ModalContent({ className, children, ...otherProps }) {\n const classNames = [styles.dialog];\n if (className) {\n classNames.push(className);\n }\n return (\n \n {children}\n \n );\n}\n\n// Override DialogContent display name so that error from prop types show 'ModalContent'\nDialogContent.displayName = 'ModalContent';\n\nModalContent.defaultProps = {\n className: null\n};\n\nModalContent.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n\n //\n // @reach/dialog will handle prop-type validation for us, but in order for this\n // props to show up in Storybook we need to add them here.\n //\n /* eslint-disable react/require-default-props */\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n /* eslint-enable react/require-default-props */\n};\n\n//\n// ModalTitle\n// --------------------\n\nexport function ModalTitle({ className, children, ...otherProps }) {\n const classNames = [styles.title];\n if (className) {\n classNames.push(className);\n }\n return (\n