{"version":3,"file":"js/2804-109f0ee38daaf5dc055c.js","mappings":";kVACO,SAASA,IAEZ,IADA,IAAIC,EAAQ,GACHC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAMC,GAAMC,UAAUD,GAE1B,OAAqB,IAAjBD,EAAMG,OACC,SAAUC,GAAO,OAAOA,CAAK,EAEnB,IAAjBJ,EAAMG,OACCH,EAAM,GAEVA,EAAMK,QAAO,SAAUC,EAAGC,GAAK,OAAO,WAEzC,IADA,IAAIC,EAAO,GACFP,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCO,EAAKP,GAAMC,UAAUD,GAEzB,OAAOK,EAAEC,EAAEE,WAAM,GAAQ,QAAc,IAAI,QAAOD,IAAO,IAC7D,CAAG,GACP,CCnBO,SAASE,EAAgBC,GAC5B,GAAKA,EAQL,OANAC,OAAOC,KAAKF,GAAKG,SAAQ,SAAUC,GACT,kBAAXJ,EAAII,KACXJ,EAAII,GAAKC,KAAKC,UAAUN,EAAII,KAEhCJ,EAAII,GAAKG,OAAOP,EAAII,GACxB,IACOJ,CACX,CACO,SAASQ,EAAUR,GACtB,GAAKA,EAUL,OARAC,OAAOC,KAAKF,GAAKG,SAAQ,SAAUC,GACT,kBAAXJ,EAAII,IACO,mBAAXJ,EAAII,IACO,kBAAXJ,EAAII,KAGfJ,EAAII,GAAKC,KAAKC,UAAUN,EAAII,IAChC,IACOJ,CACX,CCvBO,SAASS,EAAQC,GACpB,MAAyB,kBAAVA,GAA+C,qBAAlBA,EAAMC,OACtD,CACO,SAASC,EAAcF,GAC1B,GAAgC,qBAArBA,EAAMG,YACuB,qBAA7BH,EAAM,mBAAoC,CACjD,IAAII,EAAKJ,EAAMG,WACf,YAD+C,IAAPC,EAAgB,GAAKA,GAExDC,MAAM,MACNC,QAAO,SAAUC,GAAQ,MAAgB,KAATA,CAAa,GACtD,CACK,GAAIP,EAAMQ,MAAO,CAClB,IAAIC,EAAKT,EAAMQ,MACf,YADqC,IAAPC,EAAgB,GAAKA,GACtCJ,MAAM,MAAMC,QAAO,SAAUC,GAAQ,MAAgB,KAATA,CAAa,GAC1E,CAEI,MAAO,CAAC,0BAEhB,CClBO,SAASG,EAAUC,GACtB,OAAOpB,OAAOC,KAAKmB,GACdC,KAAI,SAAUC,GAAO,MAAO,GAAGC,OAAOC,mBAAmBF,GAAM,KAAKC,OAAOC,mBAAmBJ,EAAOE,IAAQ,IAC7GG,KAAK,IACd,CCJO,SAASC,IACZ,MAAyF,qBAAjF1B,OAAO2B,UAAUC,SAASC,KAAwB,qBAAZC,QAA0BA,QAAU,EACtF,CACO,SAASC,IACZ,OAAQL,IACF,EAAAM,EACkB,qBAAXC,OACHA,OACgB,qBAATC,KACHA,KACA,CAAC,CACnB,CCXA,IAAIC,EAAgB,WAChB,SAASA,EAAaC,GAClBC,KAAKC,MAAQF,CACjB,CAOA,OANAD,EAAaR,UAAUY,OAAS,WAC5B,OAAOnC,KAAKC,UAAUgC,KAAKC,MAC/B,EACAH,EAAaR,UAAUa,UAAY,WAC/B,OAAOH,KAAKC,KAChB,EACOH,CACX,CAXmB,gGCCfM,EAAe,WACf,SAASA,IACT,CA6CA,OA5CAA,EAAYD,UAAY,WACpB,MAAO,CACHE,UAAWL,KAAKK,YAChBC,OAAQN,KAAKM,SAErB,EACAF,EAAYE,OAAS,WACjB,IAAIC,GAAU,UACd,OAAKA,EAAQC,SAGLD,EAAQC,SAASF,QACrB,GAAGpB,OAAOqB,EAAQC,SAASC,SAAU,MAAMvB,OAAOqB,EAAQC,SAASE,UAH5D,EAIf,EACAN,EAAYC,UAAY,WACpB,IAAIE,GAAU,UACd,OAAI,WAA+B,qBAATI,KACf,WAEFJ,EAAQK,eACN,iBAEFL,EAAQM,iBAAmBN,EAAQO,MACjC,iBAGA,OAEf,EACAV,EAAYW,iBAAmB,WAC3B,IAOYC,EAPRT,GAAU,UACd,MAAQ,YAAaA,GACjB,YAAaA,EAAQU,SACrB,WAAYV,EAAQU,SACpB,QAASV,EAAQU,SACjB,SAAUV,EAAQU,UAGd,IAAIV,EAAQU,SAAQ,SAAUC,GAC1BF,EAAUE,CACd,IAC0B,oBAAZF,EAE1B,EACOZ,CACX,CAhDkB,GCDde,EAAoB,WACpB,SAASA,EAAiBC,GACtBpB,KAAKoB,IAAMA,CACf,CAmBA,OAlBAD,EAAiB7B,UAAU+B,KAAO,SAAUtB,GACxC,IAAIuB,EAAQtB,KACZ,OAAO,IAAIiB,SAAQ,SAAUD,EAASO,GAClC,IAAI/C,EACAgD,EAAM,IAAIZ,eACVa,EAAK,IAAIC,OAAO,YACpBF,EAAIG,OAAS,WAAc,OAAOX,EAAQ,CAAC,EAAI,EAC/CQ,EAAII,KAAK,OAAQN,EAAMF,IAAIS,QAAQJ,EAA+E,QAA1EjD,EAAgB,OAAXoB,aAA8B,IAAXA,YAAoB,EAASA,OAAOY,gBAA6B,IAAPhC,OAAgB,EAASA,EAAGiC,WACtJqB,YAAW,WACP,IACIN,EAAIH,KAAKtB,EACb,CACA,MAAOgC,GACHR,EAAOQ,EACX,CACJ,GAAG,EACP,GACJ,EACOZ,CACX,CAvBuB,GCAnBa,EAAgB,WAChB,SAASA,EAAaZ,GAClBpB,KAAKoB,IAAMA,CACf,CAmBA,OAlBAY,EAAa1C,UAAU+B,KAAO,SAAUtB,GACpC,IAAIuB,EAAQtB,KACZ,OAAO,IAAIiB,SAAQ,SAAUD,EAASO,GAClC,IACI,IAAIU,EAAQ,IAAIpB,eAChBoB,EAAMC,mBAAqB,WACnBD,EAAME,aAAetB,eAAeuB,MACpCpB,EAAQ,CAAC,EAEjB,EACAiB,EAAML,KAAK,OAAQN,EAAMF,KACzBa,EAAMZ,KAAKtB,EACf,CACA,MAAOgC,GACHR,EAAOQ,EACX,CACJ,GACJ,EACOC,CACX,CAvBmB,GCCfK,EAAkB,WAClB,SAASA,EAAejB,EAAKkB,GACzBtC,KAAKoB,IAAMA,CACf,CAkBA,OAjBAiB,EAAe/C,UAAU+B,KAAO,SAAUtB,GACtC,OAAO,QAAUC,UAAM,OAAQ,GAAQ,WACnC,IAAIuC,EAAKC,EACT,OAAO,QAAYxC,MAAM,SAAUxB,GAC/B,OAAQA,EAAGiE,OACP,KAAK,EAAG,MAAO,CAAC,EAAG3B,MAAMd,KAAKoB,IAAK,CAC3BsB,OAAQ,OACRC,KAAM5C,KAEd,KAAK,EAGD,OAFAwC,EAAM/D,EAAGoE,OACTJ,EAAaD,EAAIC,WACV,CAAC,EAD0BD,EAAIM,GACtB5B,QAAQD,QAAQ,CAAC,GAAKC,QAAQM,OAAO,CAAEiB,WAAYA,KAE/E,GACJ,GACJ,EACOH,CACX,CAtBqB,GCDjBS,EAAiB,WACjB,SAASA,EAAc1B,GACnBpB,KAAKoB,IAAMA,EACXpB,KAAK+C,MAAQ,oCACjB,CA0BA,OAzBAD,EAAcxD,UAAU+B,KAAO,SAAUtB,GACrC,IAAIuB,EAAQtB,KACRgD,EAAU,CACVN,OAAQ,OACRJ,QAAS,CACL,eAAgB,mBAChB,iBAAkBvC,EAAK7C,SAG/B,OAAO,IAAI+D,SAAQ,SAAUD,EAASO,GAClCD,EAAMyB,MACDE,MAAK,SAAUF,GAChB,IAAIvB,EAAMuB,EACLG,QAAQ5B,EAAMF,IAAK4B,GAAS,WAAc,IAC1CG,GAAG,SAAS,SAAU/E,GAAS,OAAOmD,EAAOnD,EAAQ,IAC1DoD,EAAI4B,MAAMrD,GACVyB,EAAI6B,MACJrC,EAAQ,CAAC,EACb,IACKsC,OAAM,SAAUC,GACjBC,QAAQC,KAAK,+GACblC,EAAOgC,EACX,GACJ,GACJ,EACOT,CACX,CA/BoB,GCOhBY,EAAW,WACX,SAASA,EAAQV,GACbhD,KAAK2D,KAAOX,EAAQY,KAAO,yCAC3B5D,KAAK6D,QAAUb,EAAQ/D,IACvBe,KAAK8D,eAAiBd,EAAQe,QAC9B/D,KAAKgE,WAAahE,KAAKiE,iBAAiBjE,KAAKkE,OACjD,CAmCA,OAlCAR,EAAQpE,UAAU6E,KAAO,SAAUC,GAC/B,OAAO,QAAUpE,UAAM,OAAQ,GAAQ,WACnC,OAAO,QAAYA,MAAM,SAAUxB,GAC/B,OAAQA,EAAGiE,OACP,KAAK,EAAG,MAAO,CAAC,EAAGzC,KAAKgE,WAAW3C,KAAK+C,EAAKlE,WAC7C,KAAK,EAED,OADA1B,EAAGoE,OACI,CAAC,EAAGwB,GAEvB,GACJ,GACJ,EACAV,EAAQpE,UAAU2E,iBAAmB,SAAU7C,GAC3C,OAAQhB,EAAYC,aAChB,IAAK,iBACD,OAAO,IAAIc,EAAiBC,GAChC,IAAK,iBACD,OAAO,IAAIY,EAAaZ,GAC5B,IAAK,WACD,OAAO,IAAI0B,EAAc1B,GAC7B,QACI,OAAO,IAAIiB,EAAejB,GAEtC,EACAsC,EAAQpE,UAAU4E,KAAO,WACrB,IAAIG,EAAOrE,KAAKsE,iBAChB,MAAO,GAAGpF,OAAOc,KAAK2D,KAAM,KAAKzE,QAAO,QAAUmF,GACtD,EACAX,EAAQpE,UAAUgF,eAAiB,WAC/B,MAAO,CACHC,QAASvE,KAAK6D,QACdE,QAAS/D,KAAK8D,eAEtB,EACOJ,CACX,CA1Cc,GCLVc,EAAQ,SAAUC,GAElB,SAASD,EAAKJ,GACV,OAAOK,EAAOjF,KAAKQ,MAAM,QAAS,CAAE0E,UAAWC,KAAKC,OAAM,IAAIC,MAAOC,UAAY,KAAOC,UAAW,WAAY3G,MAAO,CAC9G4G,KAAM,YACN3G,QAAS,wBACT4G,UAAW,KACVb,KAAUpE,IACvB,CAqCA,OA5CA,QAAUwE,EAAMC,GAQhBD,EAAKlF,UAAU4F,UAAY,SAAUF,GACjC,OAAKA,GAAwB,kBAATA,GAGpBhF,KAAKC,MAAMkF,OAASH,EACbhF,MAHIA,IAIf,EACAwE,EAAKlF,UAAU8F,aAAe,SAAUJ,GACpC,OAAKA,GAAwB,kBAATA,GAGpBhF,KAAKC,MAAM8E,UAAYC,EAChBhF,MAHIA,IAIf,EACAwE,EAAKlF,UAAU+F,SAAW,SAAUjH,GAChC,OAAKA,IAAU,QAAQA,IAEvB4B,KAAKC,MAAM7B,MAAQ,CACf4G,KAAM5G,EAAM4G,MAAQ,YACpB3G,QAASD,EAAMC,QACf4G,WAAW,QAAc7G,IAEtB4B,MANIA,IAOf,EACAwE,EAAKlF,UAAUgG,QAAU,SAAUC,GAE/B,OADAvF,KAAKC,MAAMsF,MAAO,SAAS,QAAS,CAAC,EAAGvF,KAAKC,MAAMsF,OAAO,QAAgBA,IACnEvF,IACX,EACAwE,EAAKlF,UAAUkG,UAAY,SAAUC,GAEjC,OADAzF,KAAKC,MAAMwF,QAAS,SAAS,QAAS,CAAC,EAAGzF,KAAKC,MAAMwF,QAASA,GACvDzF,IACX,EACAwE,EAAKlF,UAAUoG,eAAiB,SAAUC,GAEtC,OADA3F,KAAKC,MAAM0F,YAAcA,EAClB3F,IACX,EACOwE,CACX,CA9CW,CA8CT,MC/CEoB,EAAS,WACT,SAASA,EAAM7F,GACXC,KAAKC,MAAQF,GAAQ,EACzB,CAyBA,OAxBA6F,EAAMtG,UAAUuG,MAAQ,WACpB7F,KAAKC,MAAQ,EACjB,EACA2F,EAAMtG,UAAUwG,OAAS,WACrB,OAAO9F,KAAKC,KAChB,EACA2F,EAAMtG,UAAU6E,KAAO,SAAU4B,GAC7B,IAAIvH,EACJ,OAAOwH,MAAMC,QAAQF,IACdvH,EAAKwB,KAAKC,OAAOkE,KAAK3G,MAAMgB,GAAI,QAAc,IAAI,QAAOuH,IAAO,IAAU/F,KAAKC,MAAMkE,KAAK4B,EACrG,EACAH,EAAMtG,UAAU4G,MAAQ,WACpB,OAAO,QAAYlG,MAAM,SAAUxB,GAC/B,OAAQA,EAAGiE,OACP,KAAK,EACD,OAAMzC,KAAKC,MAAM/C,OAAS,EACnB,CAAC,EAAG8C,KAAKC,MAAMkG,SADe,CAAC,EAAG,GAE7C,KAAK,EAED,OADA3H,EAAGoE,OACI,CAAC,EAAG,GACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,EACOgD,CACX,CA7BY,GCCRQ,EAAc,WACd,SAASA,EAAWC,EAAOC,EAAKtD,GAC5BhD,KAAKuG,SAAW,EAChBvG,KAAKwG,SAAW,EAChBxG,KAAKyG,UAAY,EACjBzG,KAAK0G,KAAOJ,EACZtG,KAAK2G,OAASN,EACdrG,KAAKgD,SAAU,QAAS,CAAE4D,MAAO,EAAGC,gBAAiB,KAAQ7D,GAC7DhD,KAAK8G,OACT,CAkEA,OAjEAV,EAAW9G,UAAUyH,SAAW,SAAUC,GACtC,IAAI1F,EAAQtB,UACC,IAATgH,IAAmBA,EAAOhH,KAAKyG,WACnC,IAAIlG,GAAU,UAuDd,OAAOA,EAAQuB,YArDN,WAAc,OAAO,QAAUR,OAAO,OAAQ,GAAQ,WAC3D,IAAI9C,EAAIK,EAAIuF,EAAW6C,EAAaC,EAChCC,EAAKC,EACT,OAAO,QAAYpH,MAAM,SAAUqH,GAC/B,OAAQA,EAAG5E,OACP,KAAK,EACD4E,EAAGC,KAAKnD,KAAK,CAAC,EAAG,EAAG,EAAG,IACvB3F,GAAK,QAASwB,KAAK2G,OAAOT,SAAUrH,EAAKL,EAAG+I,OAC5CF,EAAG5E,MAAQ,EACf,KAAK,EACD,GAAM5D,EAAG2I,KAAM,MAAO,CAAC,EAAG,GAE1B,KADApD,EAAOvF,EAAG4I,OAEN,MAAO,CAAC,GACZJ,EAAG5E,MAAQ,EACf,KAAK,EAED,OADA4E,EAAGC,KAAKnD,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAGnE,KAAK0G,KAAKvC,KAAKC,IAC9B,KAAK,EAED,OADAiD,EAAGzE,OACI,CAAC,EAAG,GACf,KAAK,EAWD,OAVMyE,EAAGzE,OACTqE,EAActC,KAAK+C,MAAM/C,KAAKgD,IAAIX,EAxB7B,MAyBLhH,KAAKuG,SAAWvG,KAAKuG,SAAW,EACV,IAAlBvG,KAAKuG,SACLvG,KAAK8G,SAGL9G,KAAK2G,OAAOxC,KAAKC,GACjBpE,KAAKwG,SAAWxG,KAAK+G,SAASE,IAE3B,CAAC,GACZ,KAAK,EAED,OADApI,EAAKL,EAAG+I,OACD,CAAC,EAAG,GACf,KAAK,EAAG,MAAO,CAAC,EAAG,GACnB,KAAK,EAGD,OAFAL,EAAQG,EAAGzE,OACXuE,EAAM,CAAE/I,MAAO8I,GACR,CAAC,EAAG,GACf,KAAK,EACD,IACQrI,IAAOA,EAAG2I,OAASJ,EAAK5I,EAAGoJ,SAASR,EAAG5H,KAAKhB,EACpD,CACA,QAAU,GAAI2I,EAAK,MAAMA,EAAI/I,KAAO,CACpC,MAAO,CAAC,GACZ,KAAK,EAED,OADA4B,KAAK8G,QACE,CAAC,GAEpB,GACJ,GAAI,GAC0BE,EAClC,EACAZ,EAAW9G,UAAUwH,MAAQ,WACzB,IAAItI,EAAKwB,KAAKgD,QAAS4D,EAAQpI,EAAGoI,MAAOC,EAAkBrI,EAAGqI,gBAC9D7G,KAAKuG,SAAWK,EAChB5G,KAAKyG,UAAYI,CACrB,EACOT,CACX,CA5EiB,GCkLjB,EA5KiB,WACb,SAASyB,EAAU7E,GACfhD,KAAK8H,QCVQ,SDWb9H,KAAK+H,QAAU,GACf/H,KAAKgI,aAAe,GACpBhI,KAAKiI,OAAS,CACVC,WAAYlC,QACZmC,UAAWnC,SAEfhG,KAAKoI,KAAOhI,EAAYD,YACxBH,KAAK2G,OAAS,IAAIf,EAAM,IACxB,IAAIpH,EAAKwE,EAAQ/D,IAAKA,OAAa,IAAPT,EAAgB,GAAKA,EAAIoF,EAAMZ,EAAQY,IAAKyE,EAAWrF,EAAQqF,SAAUC,EAAetF,EAAQsF,aACxHD,GAAgC,kBAAbA,IACnBrF,EAAQqF,SAAWpK,OAAOoK,IAElB,KAARpJ,GACAuE,QAAQ+E,KAAK,6CAEjBvI,KAAK0G,KAAO,IAAIhD,EAAQ,CACpBzE,IAAKA,EACL2E,IAAKA,EACLG,QAAS/D,KAAK8H,UAEdQ,GAAgBtC,MAAMC,QAAQqC,KAC9BtI,KAAK+H,QAAUO,GAEnBtI,KAAKwI,YAAc,IAAIpC,EAAWpG,KAAK2G,OAAQ3G,KAAK0G,MACpD1G,KAAKyI,SAAWzF,CACpB,CA8IA,OA7IA6E,EAAUvI,UAAU+B,KAAO,SAAUtB,EAAM2I,EAAU3D,GACjD,IAAIzD,EAAQtB,KACZ,GAAMD,aAAgB4I,OAAY5I,aAAgByE,EAAlD,CAIA,GAA4B,IAAxBxE,KAAK+H,QAAQ7K,OAAc,CAC3B,GAAI6C,aAAgB4I,OAChB3I,KAAK+H,QAAQa,MAAK,SAAUC,GAAM,OAAOA,EAAGC,KAAK/I,EAAK1B,QAAU,IAEhE,YADAmF,QAAQC,KAAK,kCAAkCvE,OAAOa,EAAK1B,UAG/D,GAAI0B,aAAgByE,EAAM,CACtB,IAAIuE,EAAUhJ,EAAKI,YAAY/B,MAC/B,GAAI2K,EAAQ1K,SAAW2B,KAAK+H,QAAQa,MAAK,SAAUC,GAAM,OAAOA,EAAGC,KAAKC,EAAQ1K,QAAU,IAEtF,YADAmF,QAAQC,KAAK,gCAAgCvE,OAAO6J,EAAQ1K,SAGpE,CACJ,CACA,IAAI+F,EAAOrE,aAAgByE,EAAOzE,EAAOC,KAAKgJ,qBAAqBjJ,GAInE,GAHIC,KAAKiI,OAAOC,WAAWhL,OAAS,GAChC,KAAQM,WAAM,GAAQ,QAAc,IAAI,QAAOwC,KAAKiI,OAAOC,aAAa,GAAxE,CAAgF9D,GAEhFsE,EACA,GAAwB,oBAAbA,EAAyB,CACjBA,EACNtE,EACb,KACK,CACDZ,QAAQC,KAAK,yIACb,IAAI8B,GAAQ,QAAUmD,IAAa,CAAC,EACpCtE,EAAKkB,QAAQC,EACjB,CAWJ,GATIR,IACAvB,QAAQC,KAAK,uIACbW,EAAKgB,aAAaL,IAElB/E,KAAKgI,aAAa9K,OAAS,GAC3BkH,EAAKsB,eAAe1F,KAAKgI,cACzBhI,KAAKiI,OAAOE,UAAUjL,OAAS,GAC/B,KAAQM,WAAM,GAAQ,QAAc,IAAI,QAAOwC,KAAKiI,OAAOE,YAAY,GAAvE,CAA+E/D,GAE/EhE,EAAYW,mBAAhB,CAEI,GADAf,KAAKgI,aAAe,GACfhI,KAAKyI,SAASxJ,IAOf,OAAOe,KAAK0G,KAAKvC,KAAKC,GAAMd,OAAM,WAC9BhC,EAAMqF,OAAOxC,KAAKC,GAClBtC,YAAW,WAAc,OAAOR,EAAMkH,YAAYzB,UAAY,GAAG,EACrE,IARA,GADAvD,QAAQC,KAAK,gEAAiEW,GAC1ErE,aAAgB4I,MAChB,MAAM5I,CAalB,MAFIyD,QAAQpF,MAAM,+DAvDlB,MAFIoF,QAAQpF,MAAM,iEA4DtB,EACAyJ,EAAUvI,UAAU2J,UAAY,SAAU7K,EAAOsK,EAAU3D,GACvD,OAAO/E,KAAKqB,KAAKjD,EAAOsK,EAAU3D,EACtC,EACA8C,EAAUvI,UAAU4J,IAAM,SAAUC,GAChCA,EAAO3J,KAAKQ,KAChB,EACA6H,EAAUvI,UAAU8J,WAAa,SAAUC,GACvC,IAAI7K,EAAKwB,KAAKyI,SAAU5J,EAAKL,EAAG6J,SAAUA,OAAkB,IAAPxJ,EAAgB,GAAKA,EAAIkG,EAAYvG,EAAGuG,UACzFX,EAAO,IAAII,EAAK,CAChB8E,YAAatJ,KAAKoI,KAClBC,SAAUA,IAMd,OAJItD,GACAX,EAAKgB,aAAaL,GAClBsE,GAAoB,oBAAPA,GACbA,EAAGjF,GACAA,CACX,EACAyD,EAAUvI,UAAUiK,KAAO,SAAUF,EAAIX,EAAU3D,GAC/C,OAAO,QAAU/E,UAAM,OAAQ,GAAQ,WACnC,IAAIwJ,EACJ,OAAO,QAAYxJ,MAAM,SAAUxB,GAC/B,OAAQA,EAAGiE,OACP,KAAK,EAED,OADAjE,EAAG8I,KAAKnD,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAGkF,KACf,KAAK,EAAG,MAAO,CAAC,EAAG7K,EAAGoE,QACtB,KAAK,EAED,OADA4G,EAAMhL,EAAGoE,OACF,CAAC,EAAG5C,KAAKiJ,UAAUO,EAAKd,EAAU3D,IAC7C,KAAK,EAED,OADAvG,EAAGoE,OACI,CAAC,EAAG3B,QAAQM,OAAOiI,IAC9B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACA3B,EAAUvI,UAAUmK,aAAe,SAAUC,GACzC1J,KAAKiI,OAAOC,WAAW/D,KAAKuF,EAChC,EACA7B,EAAUvI,UAAUqK,YAAc,SAAUC,GACxC5J,KAAKiI,OAAOE,UAAUhE,KAAKyF,EAC/B,EACA/B,EAAUvI,UAAUuK,KAAO,WACvB,IAAIzF,EAAOpE,KAAKgJ,qBAAqB,IAAIL,MAAM,mEAC/CvE,EACKc,UAAU,cACVM,UAAU,CACXsE,KAAM,SACNpH,OAAQ,QAEP4C,QAAQ,CACTyE,YAAa,SAEjB/J,KAAKqB,KAAK+C,EACd,EACAyD,EAAUvI,UAAU0K,cAAgB,SAAUC,GAC1C,IAAIC,GAAQ,SAAS,QAAS,CAAExF,UAAWC,KAAKC,OAAM,IAAIC,MAAOC,UAAY,MAASmF,GAAa,CAAEE,UAAU,QAAUF,EAAWE,YAC/HD,EAAME,SAINF,EAAM/E,QAIsB,KAA7BnF,KAAKgI,aAAa9K,QAClB8C,KAAKgI,aAAaqC,MAEtBrK,KAAKgI,aAAasC,QAAQJ,IANtB1G,QAAQC,KAAK,2DAJbD,QAAQC,KAAK,4DAWrB,EACAoE,EAAUvI,UAAU0J,qBAAuB,SAAU5K,GACjD,IAAImM,EAAQvK,KAAKoJ,aAEjB,OADAmB,EAAMlF,SAASjH,GACRmM,CACX,EACO1C,CACX,CA3KgB,uEERhB,IAAI2C,EAA4B,CAAC,MAAO,QAAS,OAAQ,OAAQ,SA6D1D,IAAIrB,EA5DX,SAAkCnG,GAC9B,IAAIyH,EAAsBD,EAA0B9L,QAAO,SAAUgE,GACjE,MAA0B,qBAAZc,SACiB,oBAApBA,QAAQd,EACvB,IACA,OAAO,WACH,IAAI7C,EAAOG,KACXyK,EAAoB5M,SAAQ,SAAU6E,GAClC,IAAIgI,EAAclH,QAAQd,GAqB1Bc,QAAQd,GApBR,WAEI,IADA,IAAInF,EAAO,GACFP,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCO,EAAKP,GAAMC,UAAUD,GAEzB,IAAIiN,EAAa,CACb9E,OAAQ5H,EAAKL,OAAS,EAChB,6BACA,yBACNkN,SAAU,WAAWlL,OAAOwD,GAC5ByH,SAAU,CAAC,GAEf5M,EAAKM,SAAQ,SAAUV,EAAKwN,GACxB,OAAQV,EAAWE,SAAS,WAAWjL,OAAOyL,IAWlE,SAAwBlD,EAAO/E,GAC3B,cAAe+E,GACX,IAAK,SACD,OAAOA,EACX,IAAK,YACD,MAAO,YACX,QACI,OAAO1J,KAAKC,UAAUyJ,GAI1BmD,EAAY,GACZC,EAAU,GACP,SAAU5L,EAAKwI,GAClB,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,CAC7C,IAAIkD,EAAIC,EAAUE,QAAQrD,GAC1B,IAAW,IAAPkD,EACA,MAAO,kBAAkBzL,OAAO2L,EAAQF,IAAM,cAAe,KAG7DC,EAAUzG,KAAKsD,GACfoD,EAAQ1G,KAAKlF,EAErB,CACA,OAAOwI,CACX,IAfJ,IACQmD,EACAC,CAHR,CAnBwBE,CAAe5N,EACvB,IACA0C,EAAKmK,cAAcC,GACnBS,EAAYlN,MAAMgG,QAASjG,EAC/B,CAGJ,GACJ,CACJ,sECjCA,IAAIyN,EAAsC,WAStC,OARAA,EAAWrN,OAAOsN,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGR,EAAI,EAAGS,EAAInO,UAAUC,OAAQyN,EAAIS,EAAGT,IAE5C,IAAK,IAAIU,KADTF,EAAIlO,UAAU0N,GACOhN,OAAO2B,UAAUgM,eAAe9L,KAAK2L,EAAGE,KACzDH,EAAEG,GAAKF,EAAEE,IAEjB,OAAOH,CACX,EACOF,EAASxN,MAAMwC,KAAM/C,UAChC,EACIsO,EAAW,CACXC,YAAY,EACZC,cAAc,EACdC,WAAY,IAiFT,IAAIvC,EA/EX,SAAkCnG,GAC9B,IAAI2I,EAAOX,EAASA,EAAS,CAAC,EAAGO,GAAWvI,GACxCwI,EAAaG,EAAKH,WAAYC,EAAeE,EAAKF,aAAcC,EAAaC,EAAKD,WAClFE,IAAeJ,GAAa,mBAAoB5L,OAChDiM,IAAiBJ,GAAe,UAAW7L,OAC/C,OAAO,WACH,IAEQkM,EA8BAC,EAhCJC,EAAYhM,KAmEZ4L,IAjEIE,EAAWjL,eAAevB,UAAUsC,KA2BxCf,eAAevB,UAAUsC,KA1BzB,SAAcc,EAAQtB,GAClB,IAAI+I,EAAW,CAAEzH,OAAQA,EAAQtB,IAAKA,GAqBtCpB,KAAKiM,iBAAiB,QApBtB,WACSP,EAAW9C,MAAK,SAAUC,GAAM,OAAOA,EAAGC,KAAK1H,EAAM,KACtD4K,EAAUhC,cAAc,CACpB7E,OAAQnF,KAAKkM,QAAU,IACjB,4BAA4BhN,OAAOc,KAAKkM,QACxC,iCAAiChN,OAAOc,KAAKkM,QACnD9B,SAAU,iBACVD,SAAUA,GAGtB,IAWAnK,KAAKiM,iBAAiB,SAVtB,WACSP,EAAW9C,MAAK,SAAUC,GAAM,OAAOA,EAAGC,KAAK1H,EAAM,KACtD4K,EAAUhC,cAAc,CACpB7E,OAAQ,iBACRiF,SAAU,iBACVD,SAAUA,GAGtB,IAGA2B,EAAStO,MAAMwC,KAAM/C,UACzB,GAyCA4O,IArCIE,EAAgBnM,OAAOkB,MAiC3BlB,OAAOkB,MAhCP,SAAeqL,EAAOC,GAClB,IAAIhL,EAAuB,kBAAV+K,EAAqBA,EAAQA,EAAM/K,IAIhD+I,EAAW,CACXzH,OAJ2B,kBAAVyJ,GAAsBA,EAAMzJ,QAC5C0J,GAAQA,EAAK1J,QACd,MAGAtB,IAAKA,GAET,OAAIsK,EAAW9C,MAAK,SAAUC,GAAM,OAAOA,EAAGC,KAAK1H,EAAM,IAC9C2K,EAAcvO,MAAMoC,OAAQ3C,WAEhC8O,EACFvO,MAAMoC,OAAQ3C,WACdgG,MAAK,SAAUoJ,GAChB,IAAIC,EAAaD,EAASH,OAM1B,OALAF,EAAUhC,cAAc,CACpB7E,OAAQ,iCAAiCjG,OAAOoN,GAChDlC,SAAU,QACVD,SAAUA,IAEPkC,CACX,IACK/I,OAAM,SAAUlF,GAMjB,MALA4N,EAAUhC,cAAc,CACpB7E,OAAQ,iBACRiF,SAAU,QACVD,SAAUA,IAER/L,CACV,GACJ,EAOR,CACJ,sECtFO,IAAI+K,EARX,SAA6BnG,GACzB,OAAO,WAIHhD,KAAKyJ,cAHW,SAAUrF,GACtB,OAAOA,EAAKkB,QAAQ,CAAEwE,KAAMlK,OAAOY,SAAS+L,UAChD,GAEJ,CACJ,oFCPIvB,EAAsC,WAStC,OARAA,EAAWrN,OAAOsN,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGR,EAAI,EAAGS,EAAInO,UAAUC,OAAQyN,EAAIS,EAAGT,IAE5C,IAAK,IAAIU,KADTF,EAAIlO,UAAU0N,GACOhN,OAAO2B,UAAUgM,eAAe9L,KAAK2L,EAAGE,KACzDH,EAAEG,GAAKF,EAAEE,IAEjB,OAAOH,CACX,EACOF,EAASxN,MAAMwC,KAAM/C,UAChC,EAyFO,IAAIkM,EAvFX,SAA4BnG,GACxB,IAAIwJ,EAAM5M,OACN+L,EAAOX,EAAS,CAAEyB,SAAS,EAAMC,sBAAsB,GAAQ1J,GACnE,OAAO,WACH,IAAInD,EAAOG,KACP2M,EAAO,CACPC,QAASJ,EAAIC,QACbI,mBAAoBL,EAAIE,sBA8CxBf,EAAKc,UACLD,EAAIC,QA7CR,SAAyBlC,EAAOuC,EAAQC,EAAQC,EAAO5O,GACnD,IAAIgG,EAAOvE,EAAKuJ,aACK,kBAAVmB,GACI,IAAXwC,GACA,kBAAkBjE,KAAKyB,GACvB/G,QAAQC,KAAK,2EAGTrF,EACAgG,EAAKiB,SAASjH,GAGdgG,EAAKiB,SAAS,CACVL,KAAM,QACN3G,QAA0B,kBAAVkM,EACVA,EACA,+CACN3L,MAAO,MAAMM,OAAO4N,EAAQ,KAAK5N,OAAO6N,GAAQ7N,OAAO8N,EAAQ,IAAI9N,OAAO8N,GAAS,MAG3FnN,EAAKwB,KAAK+C,IAEc,oBAAjBuI,EAAKC,SACZD,EAAKC,QAAQpP,MAAMwC,KAAM/C,UAEjC,GAsBI0O,EAAKe,uBACLF,EAAIE,qBAtBR,SAAsCnC,GAClC,IACInM,EADAgG,EAAOvE,EAAKuJ,aAGZhL,EADAmM,GAASA,EAAMhH,SAAU,QAAQgH,EAAMhH,QAC/BgH,EAAMhH,OAGN,CACJyB,KAAM,iCACN3G,QAAS4O,EAAiB1C,IAGlCnG,EAAKiB,SAASjH,GACdyB,EAAKwB,KAAK+C,GAC6B,oBAA5BuI,EAAKE,oBACZF,EAAKE,mBAAmBrP,MAAMwC,KAAM/C,UAE5C,EAOJ,EACA,SAASgQ,EAAiB1C,GACtB,OAAKA,GAAUA,EAAMhH,OAGO,kBAAjBgH,EAAMhH,OACNgH,EAAMhH,OAEVxF,KAAKC,UAAUuM,EAAMhH,QAGxBqH,EAAY,GACZC,EAAU,GACP,SAAU5L,EAAKwI,GAClB,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,CAC7C,IAAIkD,EAAIC,EAAUE,QAAQrD,GAC1B,IAAW,IAAPkD,EACA,MAAO,kBAAkBzL,OAAO2L,EAAQF,IAAM,cAAe,KAG7DC,EAAUzG,KAAKsD,GACfoD,EAAQ1G,KAAKlF,EAErB,CACA,OAAOwI,CACX,IAtBW,GAOf,IACQmD,EACAC,CAHR,CAkBJ,uEC7CA,IAAIqC,EAA0B,WAE5B,SAASA,EAAWlK,GAClB,IAAI1B,EAAQtB,KAEZA,KAAKmN,WAAa,SAAUC,GAC1B,IAAIC,EAIAA,EAFsB,IAAtB/L,EAAMiE,KAAKrI,OACToE,EAAMgM,eACChM,EAAMgM,eAAeC,YACrBjM,EAAMkM,QACNlM,EAAMmM,UAAUC,WAEhBpM,EAAM+L,OAGR/L,EAAMiE,KAAKjE,EAAMiE,KAAKrI,OAAS,GAAGqQ,YAG7CjM,EAAMmM,UAAUE,aAAaP,EAAKC,GAElC/L,EAAMiE,KAAKpB,KAAKiJ,EAClB,EAEApN,KAAK4N,cAA8BC,IAAnB7K,EAAQ8K,QAA+D9K,EAAQ8K,OAC/F9N,KAAKuF,KAAO,GACZvF,KAAK+N,IAAM,EACX/N,KAAKgO,MAAQhL,EAAQgL,MAErBhO,KAAKf,IAAM+D,EAAQ/D,IACnBe,KAAKyN,UAAYzK,EAAQyK,UACzBzN,KAAKwN,QAAUxK,EAAQwK,QACvBxN,KAAKsN,eAAiBtK,EAAQsK,eAC9BtN,KAAKqN,OAAS,IAChB,CAEA,IAAIY,EAASf,EAAW5N,UA4DxB,OA1DA2O,EAAOC,QAAU,SAAiBC,GAChCA,EAAMtQ,QAAQmC,KAAKmN,WACrB,EAEAc,EAAOG,OAAS,SAAgBC,GAI1BrO,KAAK+N,KAAO/N,KAAK4N,SAAW,KAAQ,KAAO,GAC7C5N,KAAKmN,WA7DX,SAA4BnK,GAC1B,IAAIoK,EAAMkB,SAASC,cAAc,SASjC,OARAnB,EAAIoB,aAAa,eAAgBxL,EAAQ/D,UAEnB4O,IAAlB7K,EAAQgL,OACVZ,EAAIoB,aAAa,QAASxL,EAAQgL,OAGpCZ,EAAIqB,YAAYH,SAASI,eAAe,KACxCtB,EAAIoB,aAAa,SAAU,IACpBpB,CACT,CAkDsBuB,CAAmB3O,OAGrC,IAAIoN,EAAMpN,KAAKuF,KAAKvF,KAAKuF,KAAKrI,OAAS,GAcvC,GAAI8C,KAAK4N,SAAU,CACjB,IAAIgB,EAhGV,SAAqBxB,GACnB,GAAIA,EAAIwB,MAEN,OAAOxB,EAAIwB,MAMb,IAAK,IAAIjE,EAAI,EAAGA,EAAI2D,SAASO,YAAY3R,OAAQyN,IAC/C,GAAI2D,SAASO,YAAYlE,GAAGmE,YAAc1B,EAExC,OAAOkB,SAASO,YAAYlE,EAGlC,CAiFkBoE,CAAY3B,GAExB,IAGEwB,EAAMI,WAAWX,EAAMO,EAAMK,SAAS/R,OACxC,CAAE,MAAO6E,GACH,CAGN,CACF,MACEqL,EAAIqB,YAAYH,SAASI,eAAeL,IAG1CrO,KAAK+N,KACP,EAEAE,EAAOiB,MAAQ,WAEblP,KAAKuF,KAAK1H,SAAQ,SAAUuP,GAC1B,OAAOA,EAAI+B,YAAc/B,EAAI+B,WAAWC,YAAYhC,EACtD,IACApN,KAAKuF,KAAO,GACZvF,KAAK+N,IAAM,CAKb,EAEOb,CACT,CAlG8B,GCjDnBmC,EAAM1K,KAAK0K,IAMX,EAAOpR,OAAOqR,aAMd,EAAS3R,OAAOsN,OAepB,SAASsE,EAAM9H,GACrB,OAAOA,EAAM8H,MACd,CAiBO,SAAS,EAAS9H,EAAO+H,EAASC,GACxC,OAAOhI,EAAM5F,QAAQ2N,EAASC,EAC/B,CAOO,SAASC,EAASjI,EAAOkI,GAC/B,OAAOlI,EAAMqD,QAAQ6E,EACtB,CAOO,SAAS,EAAQlI,EAAOmI,GAC9B,OAAiC,EAA1BnI,EAAMoI,WAAWD,EACzB,CAQO,SAAS,EAAQnI,EAAOqI,EAAOzM,GACrC,OAAOoE,EAAMsI,MAAMD,EAAOzM,EAC3B,CAMO,SAAS,EAAQoE,GACvB,OAAOA,EAAMvK,MACd,CAMO,SAAS,EAAQuK,GACvB,OAAOA,EAAMvK,MACd,CAOO,SAAS,EAAQuK,EAAOuI,GAC9B,OAAOA,EAAM7L,KAAKsD,GAAQA,CAC3B,CCvGO,IAAI9I,EAAO,EACPsR,EAAS,EACT,EAAS,EACTC,EAAW,EACXC,EAAY,EACZC,EAAa,GAWjB,SAASC,EAAM5I,EAAO6I,EAAMC,EAAQC,EAAMC,EAAOC,EAAUxT,GACjE,MAAO,CAACuK,MAAOA,EAAO6I,KAAMA,EAAMC,OAAQA,EAAQC,KAAMA,EAAMC,MAAOA,EAAOC,SAAUA,EAAU/R,KAAMA,EAAMsR,OAAQA,EAAQ/S,OAAQA,EAAQ0K,OAAQ,GACrJ,CAOO,SAAS,EAAM0I,EAAMG,GAC3B,OAAO,EAAOJ,EAAK,GAAI,KAAM,KAAM,GAAI,KAAM,KAAM,GAAIC,EAAM,CAACpT,QAASoT,EAAKpT,QAASuT,EACtF,CAYO,SAAS9D,IAMf,OALAwD,EAAYD,EAAW,EAAI,EAAOE,IAAcF,GAAY,EAExDD,IAAwB,KAAdE,IACbF,EAAS,EAAGtR,KAENwR,CACR,CAKO,SAAS5I,IAMf,OALA4I,EAAYD,EAAW,EAAS,EAAOE,EAAYF,KAAc,EAE7DD,IAAwB,KAAdE,IACbF,EAAS,EAAGtR,KAENwR,CACR,CAKO,SAASQ,IACf,OAAO,EAAOP,EAAYF,EAC3B,CAKO,SAASU,IACf,OAAOV,CACR,CAOO,SAASH,EAAOD,EAAOzM,GAC7B,OAAO,EAAO+M,EAAYN,EAAOzM,EAClC,CAMO,SAASwN,EAAOL,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAASM,EAAOrJ,GACtB,OAAO9I,EAAOsR,EAAS,EAAG,EAAS,EAAOG,EAAa3I,GAAQyI,EAAW,EAAG,EAC9E,CAMO,SAASa,EAAStJ,GACxB,OAAO2I,EAAa,GAAI3I,CACzB,CAMO,SAASuJ,EAASR,GACxB,OAAOjB,EAAKQ,EAAMG,EAAW,EAAGe,EAAmB,KAATT,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAASU,EAAYV,GAC3B,MAAOL,EAAYQ,MACdR,EAAY,IACf5I,IAIF,OAAOsJ,EAAML,GAAQ,GAAKK,EAAMV,GAAa,EAAI,GAAK,GACvD,CAwBO,SAASgB,EAAUvB,EAAOwB,GAChC,OAASA,GAAS7J,OAEb4I,EAAY,IAAMA,EAAY,KAAQA,EAAY,IAAMA,EAAY,IAAQA,EAAY,IAAMA,EAAY,MAG/G,OAAOJ,EAAMH,EAAOgB,KAAWQ,EAAQ,GAAe,IAAVT,KAA0B,IAAVpJ,KAC7D,CAMO,SAAS0J,EAAWT,GAC1B,KAAOjJ,YACE4I,GAEP,KAAKK,EACJ,OAAON,EAER,KAAK,GAAI,KAAK,GACA,KAATM,GAAwB,KAATA,GAClBS,EAAUd,GACX,MAED,KAAK,GACS,KAATK,GACHS,EAAUT,GACX,MAED,KAAK,GACJjJ,IAIH,OAAO2I,CACR,CAOO,SAASmB,EAAWb,EAAMZ,GAChC,KAAOrI,KAEFiJ,EAAOL,IAAc,KAGhBK,EAAOL,IAAc,IAAsB,KAAXQ,OAG1C,MAAO,KAAOZ,EAAMH,EAAOM,EAAW,GAAK,IAAM,EAAc,KAATM,EAAcA,EAAOjJ,IAC5E,CAMO,SAAS+J,EAAY1B,GAC3B,MAAQiB,EAAMF,MACbpJ,IAED,OAAOwI,EAAMH,EAAOM,EACrB,CCrPO,IAAI,EAAK,OACL,EAAM,QACN,EAAS,WAETqB,EAAU,OACV,EAAU,OACV,EAAc,OAUd,EAAY,aCRhB,SAAS,EAAWb,EAAUc,GAIpC,IAHA,IAAIC,EAAS,GACTvU,EAAS,EAAOwT,GAEX/F,EAAI,EAAGA,EAAIzN,EAAQyN,IAC3B8G,GAAUD,EAASd,EAAS/F,GAAIA,EAAG+F,EAAUc,IAAa,GAE3D,OAAOC,CACR,CASO,SAASzT,EAAW0T,EAAS9B,EAAOc,EAAUc,GACpD,OAAQE,EAAQlB,MACf,IDPiB,SCOL,GAAIkB,EAAQhB,SAASxT,OAAQ,MACzC,IDlBkB,UCkBL,KAAK,EAAa,OAAOwU,EAAQ9J,OAAS8J,EAAQ9J,QAAU8J,EAAQjK,MACjF,KAAK8J,EAAS,MAAO,GACrB,KAAK,EAAW,OAAOG,EAAQ9J,OAAS8J,EAAQjK,MAAQ,IAAM,EAAUiK,EAAQhB,SAAUc,GAAY,IACtG,KAAK,EAASE,EAAQjK,MAAQiK,EAAQjB,MAAMrR,KAAK,KAGlD,OAAO,EAAOsR,EAAW,EAAUgB,EAAQhB,SAAUc,IAAaE,EAAQ9J,OAAS8J,EAAQjK,MAAQ,IAAMiJ,EAAW,IAAM,EAC3H,CC3BO,SAASiB,EAASlK,GACxB,OAAOsJ,EAAQa,EAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAKnK,EAAQqJ,EAAMrJ,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAASmK,EAAOnK,EAAO6I,EAAMC,EAAQlC,EAAMwD,EAAOC,EAAUC,EAAQC,EAAQC,GAiBlF,IAhBA,IAAIrC,EAAQ,EACRsC,EAAS,EACThV,EAAS6U,EACTI,EAAS,EACTC,EAAW,EACXC,EAAW,EACXC,EAAW,EACXC,EAAW,EACXC,EAAY,EACZrC,EAAY,EACZK,EAAO,GACPC,EAAQoB,EACRnB,EAAWoB,EACXW,EAAYpE,EACZ+B,EAAaI,EAEV+B,UACEF,EAAWlC,EAAWA,EAAY5I,KAEzC,KAAK,GACJ,GAAgB,KAAZ8K,GAAqD,IAAlC,EAAOjC,EAAYlT,EAAS,GAAU,EACkB,GAA1EwS,EAAQU,GAAc,EAAQY,EAAQb,GAAY,IAAK,OAAQ,SAClEqC,GAAa,GACd,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBpC,GAAcY,EAAQb,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAcc,EAAWmB,GACzB,MAED,KAAK,GACJjC,GAAce,EAASP,IAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQD,KACP,KAAK,GAAI,KAAK,GACb,EAAO+B,EAAQrB,EAAU9J,IAAQqJ,KAAUN,EAAMC,GAAS0B,GAC1D,MACD,QACC7B,GAAc,IAEhB,MAED,KAAK,IAAMkC,EACVN,EAAOpC,KAAW,EAAOQ,GAAcoC,EAExC,KAAK,IAAMF,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQnC,GAEP,KAAK,EAAG,KAAK,IAAKoC,EAAW,EAE7B,KAAK,GAAKL,GAA0B,GAAdM,IAAiBpC,EAAa,EAAQA,EAAY,MAAO,KAC1EgC,EAAW,GAAM,EAAOhC,GAAclT,GACzC,EAAOkV,EAAW,GAAKO,EAAYvC,EAAa,IAAK/B,EAAMkC,EAAQrT,EAAS,GAAKyV,EAAY,EAAQvC,EAAY,IAAK,IAAM,IAAK/B,EAAMkC,EAAQrT,EAAS,GAAI+U,GAC7J,MAED,KAAK,GAAI7B,GAAc,IAEvB,QAGC,GAFA,EAAOqC,EAAYG,EAAQxC,EAAYE,EAAMC,EAAQX,EAAOsC,EAAQL,EAAOG,EAAQxB,EAAMC,EAAQ,GAAIC,EAAW,GAAIxT,GAAS4U,GAE3G,MAAd3B,EACH,GAAe,IAAX+B,EACHN,EAAMxB,EAAYE,EAAMmC,EAAWA,EAAWhC,EAAOqB,EAAU5U,EAAQ8U,EAAQtB,QAE/E,OAAmB,KAAXyB,GAA2C,MAA1B,EAAO/B,EAAY,GAAa,IAAM+B,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClCP,EAAMnK,EAAOgL,EAAWA,EAAWpE,GAAQ,EAAOuE,EAAQnL,EAAOgL,EAAWA,EAAW,EAAG,EAAGZ,EAAOG,EAAQxB,EAAMqB,EAAOpB,EAAQ,GAAIvT,GAASwT,GAAWmB,EAAOnB,EAAUxT,EAAQ8U,EAAQ3D,EAAOoC,EAAQC,GACzM,MACD,QACCkB,EAAMxB,EAAYqC,EAAWA,EAAWA,EAAW,CAAC,IAAK/B,EAAU,EAAGsB,EAAQtB,IAIpFd,EAAQsC,EAASE,EAAW,EAAGE,EAAWE,EAAY,EAAGhC,EAAOJ,EAAa,GAAIlT,EAAS6U,EAC1F,MAED,KAAK,GACJ7U,EAAS,EAAI,EAAOkT,GAAagC,EAAWC,EAC7C,QACC,GAAIC,EAAW,EACd,GAAiB,KAAbnC,IACDmC,OACE,GAAiB,KAAbnC,GAAkC,GAAdmC,KAA6B,KAAV3F,IAC/C,SAEF,OAAQyD,GAAc,EAAKD,GAAYA,EAAYmC,GAElD,KAAK,GACJE,EAAYN,EAAS,EAAI,GAAK9B,GAAc,MAAO,GACnD,MAED,KAAK,GACJ4B,EAAOpC,MAAY,EAAOQ,GAAc,GAAKoC,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAX7B,MACHP,GAAcY,EAAQzJ,MAEvB4K,EAASxB,IAAQuB,EAAShV,EAAS,EAAOsT,EAAOJ,GAAckB,EAAWV,MAAWT,IACrF,MAED,KAAK,GACa,KAAbkC,GAAyC,GAAtB,EAAOjC,KAC7BkC,EAAW,IAIjB,OAAOR,CACR,CAgBO,SAASc,EAASnL,EAAO6I,EAAMC,EAAQX,EAAOsC,EAAQL,EAAOG,EAAQxB,EAAMC,EAAOC,EAAUxT,GAKlG,IAJA,IAAI2V,EAAOX,EAAS,EAChB7D,EAAkB,IAAX6D,EAAeL,EAAQ,CAAC,IAC/BiB,EAAO,EAAOzE,GAET1D,EAAI,EAAGoI,EAAI,EAAGjV,EAAI,EAAG6M,EAAIiF,IAASjF,EAC1C,IAAK,IAAIqI,EAAI,EAAGC,EAAI,EAAOxL,EAAOoL,EAAO,EAAGA,EAAOxD,EAAI0D,EAAIf,EAAOrH,KAAMuI,EAAIzL,EAAOuL,EAAIF,IAAQE,GAC1FE,EAAI3D,EAAKwD,EAAI,EAAI1E,EAAK2E,GAAK,IAAMC,EAAI,EAAQA,EAAG,OAAQ5E,EAAK2E,QAChEvC,EAAM3S,KAAOoV,GAEhB,OAAO7C,EAAK5I,EAAO6I,EAAMC,EAAmB,IAAX2B,EAAe,EAAU1B,EAAMC,EAAOC,EAAUxT,EAClF,CAQO,SAASwV,EAASjL,EAAO6I,EAAMC,GACrC,OAAOF,EAAK5I,EAAO6I,EAAMC,EAAQgB,EAAS,EH/InCpB,GG+IiD,EAAO1I,EAAO,GAAI,GAAI,EAC/E,CASO,SAASkL,EAAalL,EAAO6I,EAAMC,EAAQrT,GACjD,OAAOmT,EAAK5I,EAAO6I,EAAMC,EAAQ,EAAa,EAAO9I,EAAO,EAAGvK,GAAS,EAAOuK,EAAOvK,EAAS,GAAI,GAAIA,EACxG,CCzLA,IAAIiW,EAA8B,SAAqCrD,EAAOkC,EAAQpC,GAIpF,IAHA,IAAIyC,EAAW,EACXlC,EAAY,EAGdkC,EAAWlC,EACXA,EAAYQ,IAEK,KAAb0B,GAAiC,KAAdlC,IACrB6B,EAAOpC,GAAS,IAGdiB,EAAMV,IAIV5I,IAGF,OAAOwI,EAAMD,EAAOI,EACtB,EA6CIkD,EAAW,SAAkB3L,EAAOuK,GACtC,OAAOjB,EA5CK,SAAiBsC,EAAQrB,GAErC,IAAIpC,GAAS,EACTO,EAAY,GAEhB,GACE,OAAQU,EAAMV,IACZ,KAAK,EAEe,KAAdA,GAA+B,KAAXQ,MAKtBqB,EAAOpC,GAAS,GAGlByD,EAAOzD,IAAUuD,EAA4BjD,EAAW,EAAG8B,EAAQpC,GACnE,MAEF,KAAK,EACHyD,EAAOzD,IAAUoB,EAAQb,GACzB,MAEF,KAAK,EAEH,GAAkB,KAAdA,EAAkB,CAEpBkD,IAASzD,GAAoB,KAAXe,IAAgB,MAAQ,GAC1CqB,EAAOpC,GAASyD,EAAOzD,GAAO1S,OAC9B,KACF,CAIF,QACEmW,EAAOzD,IAAU,EAAKO,UAEnBA,EAAY5I,KAErB,OAAO8L,CACT,CAGiBC,CAAQxC,EAAMrJ,GAAQuK,GACvC,EAGIuB,EAA+B,IAAIC,QACnCC,GAAS,SAAgB/B,GAC3B,GAAqB,SAAjBA,EAAQlB,MAAoBkB,EAAQnB,UAExCmB,EAAQxU,OAAS,GAFjB,CAUA,IAJA,IAAIuK,EAAQiK,EAAQjK,MAChB8I,EAASmB,EAAQnB,OACjBmD,EAAiBhC,EAAQzB,SAAWM,EAAON,QAAUyB,EAAQ/S,OAAS4R,EAAO5R,KAE1D,SAAhB4R,EAAOC,MAEZ,KADAD,EAASA,EAAOA,QACH,OAIf,IAA6B,IAAzBmB,EAAQjB,MAAMvT,QAAwC,KAAxBuK,EAAMoI,WAAW,IAE/C0D,EAAcI,IAAIpD,MAMlBmD,EAAJ,CAIAH,EAAcK,IAAIlC,GAAS,GAK3B,IAJA,IAAIM,EAAS,GACTH,EAAQuB,EAAS3L,EAAOuK,GACxB6B,EAActD,EAAOE,MAEhB9F,EAAI,EAAG7M,EAAI,EAAG6M,EAAIkH,EAAM3U,OAAQyN,IACvC,IAAK,IAAIoI,EAAI,EAAGA,EAAIc,EAAY3W,OAAQ6V,IAAKjV,IAC3C4T,EAAQjB,MAAM3S,GAAKkU,EAAOrH,GAAKkH,EAAMlH,GAAG9I,QAAQ,OAAQgS,EAAYd,IAAMc,EAAYd,GAAK,IAAMlB,EAAMlH,EAT3G,CAtBA,CAkCF,EACImJ,GAAc,SAAqBpC,GACrC,GAAqB,SAAjBA,EAAQlB,KAAiB,CAC3B,IAAI/I,EAAQiK,EAAQjK,MAGI,MAAxBA,EAAMoI,WAAW,IACO,KAAxBpI,EAAMoI,WAAW,KAEf6B,EAAgB,OAAI,GACpBA,EAAQjK,MAAQ,GAEpB,CACF,EAgHA,SAAS,GAAOA,EAAOvK,GACrB,OL1NK,SAAeuK,EAAOvK,GAC5B,OAA0B,GAAnB,EAAOuK,EAAO,MAAiBvK,GAAU,EAAK,EAAOuK,EAAO,KAAO,EAAK,EAAOA,EAAO,KAAO,EAAK,EAAOA,EAAO,KAAO,EAAK,EAAOA,EAAO,GAAK,CACvJ,CKwNUsM,CAAKtM,EAAOvK,IAElB,KAAK,KACH,OAAO,EAAS,SAAWuK,EAAQA,EAGrC,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO,EAASA,EAAQA,EAG1B,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO,EAASA,EAAQ,EAAMA,EAAQ,EAAKA,EAAQA,EAGrD,KAAK,KACL,KAAK,KACH,OAAO,EAASA,EAAQ,EAAKA,EAAQA,EAGvC,KAAK,KACH,OAAO,EAASA,EAAQ,EAAK,QAAUA,EAAQA,EAGjD,KAAK,KACH,OAAO,EAASA,EAAQ,EAAQA,EAAO,iBAAkB,EAAS,WAAa,EAAK,aAAeA,EAGrG,KAAK,KACH,OAAO,EAASA,EAAQ,EAAK,aAAe,EAAQA,EAAO,cAAe,IAAMA,EAGlF,KAAK,KACH,OAAO,EAASA,EAAQ,EAAK,iBAAmB,EAAQA,EAAO,4BAA6B,IAAMA,EAGpG,KAAK,KACH,OAAO,EAASA,EAAQ,EAAK,EAAQA,EAAO,SAAU,YAAcA,EAGtE,KAAK,KACH,OAAO,EAASA,EAAQ,EAAK,EAAQA,EAAO,QAAS,kBAAoBA,EAG3E,KAAK,KACH,OAAO,EAAS,OAAS,EAAQA,EAAO,QAAS,IAAM,EAASA,EAAQ,EAAK,EAAQA,EAAO,OAAQ,YAAcA,EAGpH,KAAK,KACH,OAAO,EAAS,EAAQA,EAAO,qBAAsB,KAAO,EAAS,MAAQA,EAG/E,KAAK,KACH,OAAO,EAAQ,EAAQ,EAAQA,EAAO,eAAgB,EAAS,MAAO,cAAe,EAAS,MAAOA,EAAO,IAAMA,EAGpH,KAAK,KACL,KAAK,KACH,OAAO,EAAQA,EAAO,oBAAqB,YAG7C,KAAK,KACH,OAAO,EAAQ,EAAQA,EAAO,oBAAqB,EAAS,cAAgB,EAAK,gBAAiB,aAAc,WAAa,EAASA,EAAQA,EAGhJ,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACH,OAAO,EAAQA,EAAO,kBAAmB,EAAS,QAAUA,EAG9D,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KACL,KAAK,KAEH,GAAI,EAAOA,GAAS,EAAIvK,EAAS,EAAG,OAAQ,EAAOuK,EAAOvK,EAAS,IAEjE,KAAK,IAEH,GAAkC,KAA9B,EAAOuK,EAAOvK,EAAS,GAAW,MAGxC,KAAK,IACH,OAAO,EAAQuK,EAAO,mBAAoB,KAAO,EAAP,UAAiC,GAAoC,KAA7B,EAAOA,EAAOvK,EAAS,GAAY,KAAO,UAAYuK,EAG1I,KAAK,IACH,OAAQiI,EAAQjI,EAAO,WAAa,GAAO,EAAQA,EAAO,UAAW,kBAAmBvK,GAAUuK,EAAQA,EAE9G,MAGF,KAAK,KAEH,GAAkC,MAA9B,EAAOA,EAAOvK,EAAS,GAAY,MAGzC,KAAK,KACH,OAAQ,EAAOuK,EAAO,EAAOA,GAAS,IAAMiI,EAAQjI,EAAO,eAAiB,MAE1E,KAAK,IACH,OAAO,EAAQA,EAAO,IAAK,IAAM,GAAUA,EAG7C,KAAK,IACH,OAAO,EAAQA,EAAO,wBAAyB,KAAO,GAAgC,KAAtB,EAAOA,EAAO,IAAa,UAAY,IAAxD,UAA+E,EAA/E,SAAwG,EAAK,WAAaA,EAG7K,MAGF,KAAK,KACH,OAAQ,EAAOA,EAAOvK,EAAS,KAE7B,KAAK,IACH,OAAO,EAASuK,EAAQ,EAAK,EAAQA,EAAO,qBAAsB,MAAQA,EAG5E,KAAK,IACH,OAAO,EAASA,EAAQ,EAAK,EAAQA,EAAO,qBAAsB,SAAWA,EAG/E,KAAK,GACH,OAAO,EAASA,EAAQ,EAAK,EAAQA,EAAO,qBAAsB,MAAQA,EAG9E,OAAO,EAASA,EAAQ,EAAKA,EAAQA,EAGzC,OAAOA,CACT,CAEA,IAqCIuM,GAAuB,CArCZ,SAAkBtC,EAAS9B,EAAOc,EAAUc,GACzD,GAAIE,EAAQxU,QAAU,IAAQwU,EAAgB,OAAG,OAAQA,EAAQlB,MAC/D,KAAK,EACHkB,EAAgB,OAAI,GAAOA,EAAQjK,MAAOiK,EAAQxU,QAClD,MAEF,KAAK,EACH,OAAO,EAAU,CAAC,EAAKwU,EAAS,CAC9BjK,MAAO,EAAQiK,EAAQjK,MAAO,IAAK,IAAM,MACtC+J,GAEP,KAAK,EACH,GAAIE,EAAQxU,OAAQ,OLzTnB,SAAkB8S,EAAOwB,GAC/B,OAAOxB,EAAMhR,IAAIwS,GAAUpS,KAAK,GACjC,CKuTiC,CAAQsS,EAAQjB,OAAO,SAAUhJ,GAC1D,OLlYD,SAAgBA,EAAO+H,GAC7B,OAAQ/H,EAAQ+H,EAAQyE,KAAKxM,IAAUA,EAAM,GAAKA,CACnD,CKgYgB,CAAMA,EAAO,0BAEnB,IAAK,aACL,IAAK,cACH,OAAO,EAAU,CAAC,EAAKiK,EAAS,CAC9BjB,MAAO,CAAC,EAAQhJ,EAAO,cAAe,gBACnC+J,GAGP,IAAK,gBACH,OAAO,EAAU,CAAC,EAAKE,EAAS,CAC9BjB,MAAO,CAAC,EAAQhJ,EAAO,aAAc,IAAM,EAAS,eAClD,EAAKiK,EAAS,CAChBjB,MAAO,CAAC,EAAQhJ,EAAO,aAAc,eACnC,EAAKiK,EAAS,CAChBjB,MAAO,CAAC,EAAQhJ,EAAO,aAAc,EAAK,gBACvC+J,GAGT,MAAO,EACT,IAEN,GAII0C,GAAc,SAAqBlR,GACrC,IAAI/D,EAAM+D,EAAQ/D,IAMlB,GAAY,QAARA,EAAe,CACjB,IAAIkV,EAAY7F,SAAS8F,iBAAiB,qCAK1CpO,MAAM1G,UAAUzB,QAAQ2B,KAAK2U,GAAW,SAAU9D,IASL,IAFhBA,EAAKgE,aAAa,gBAEpBvJ,QAAQ,OAGjCwD,SAASgG,KAAK7F,YAAY4B,GAC1BA,EAAK7B,aAAa,SAAU,IAC9B,GACF,CAEA,IAAI+F,EAAgBvR,EAAQuR,eAAiBP,GAS7C,IACIvG,EAkBA+G,EAnBAC,EAAW,CAAC,EAEZC,EAAiB,GAGnBjH,EAAYzK,EAAQyK,WAAaa,SAASgG,KAC1CtO,MAAM1G,UAAUzB,QAAQ2B,KAExB8O,SAAS8F,iBAAiB,wBAA2BnV,EAAM,QAAS,SAAUoR,GAG5E,IAFA,IAAIsE,EAAStE,EAAKgE,aAAa,gBAAgB5V,MAAM,KAE5CkM,EAAI,EAAGA,EAAIgK,EAAOzX,OAAQyN,IACjC8J,EAASE,EAAOhK,KAAM,EAGxB+J,EAAevQ,KAAKkM,EACtB,IAiBA,IAAIuE,EClgBoBC,EACvB3X,EAgBsBsU,EDkfnBsD,EAAoB,CAAC9W,GClfFwT,ED4fT,SAAUnD,GACtBuG,EAAaxG,OAAOC,EACtB,EC7fI,SAAUqD,GACXA,EAAQpB,OACRoB,EAAUA,EAAQ9J,SACrB4J,EAASE,EACZ,ID0fOqD,GChhBoBF,EDsfD,CAACpB,GAAQK,IA0Be5U,OAAOqV,EAAeO,GC/gBpE5X,EAAS,EAAO2X,GAEb,SAAUnD,EAAS9B,EAAOc,EAAUc,GAG1C,IAFA,IAAIC,EAAS,GAEJ9G,EAAI,EAAGA,EAAIzN,EAAQyN,IAC3B8G,GAAUoD,EAAWlK,GAAG+G,EAAS9B,EAAOc,EAAUc,IAAa,GAEhE,OAAOC,CACR,GD4gBG+C,EAAU,SAAgBQ,EAAUC,EAAYrG,EAAOsG,GACrDN,EAAehG,EAJR,EAAU+C,EAcVqD,EAAWA,EAAW,IAAMC,EAAWE,OAAS,IAAMF,EAAWE,QAdtCJ,GAgB9BG,IACFE,EAAMX,SAASQ,EAAWjQ,OAAQ,EAEtC,EAGF,IAAIoQ,EAAQ,CACVnW,IAAKA,EACL2P,MAAO,IAAI1B,EAAW,CACpBjO,IAAKA,EACLwO,UAAWA,EACXO,MAAOhL,EAAQgL,MACfF,OAAQ9K,EAAQ8K,OAChBN,QAASxK,EAAQwK,QACjBF,eAAgBtK,EAAQsK,iBAE1BU,MAAOhL,EAAQgL,MACfyG,SAAUA,EACVY,WAAY,CAAC,EACbjH,OAAQoG,GAGV,OADAY,EAAMxG,MAAMV,QAAQwG,GACbU,CACT,0JExjBA,IAAI,EAAiB,SAAwBA,EAAOH,EAAYK,GAC9D,IAAIC,EAAYH,EAAMnW,IAAM,IAAMgW,EAAWjQ,MAO5B,IAAhBsQ,QAIwDzH,IAAhCuH,EAAMC,WAAWE,KACxCH,EAAMC,WAAWE,GAAaN,EAAWE,OAE7C,EC3BA,IAAIK,EAAe,CACjBC,wBAAyB,EACzBC,YAAa,EACbC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,cCzCXC,EAAiB,aACjBC,EAAiB,8BAEjBC,EAAmB,SAA0BrG,GAC/C,OAAkC,KAA3BA,EAASvC,WAAW,EAC7B,EAEI6I,EAAqB,SAA4BjR,GACnD,OAAgB,MAATA,GAAkC,mBAAVA,CACjC,EAEIkR,GAAkC,QAAQ,SAAUC,GACtD,OAAOH,EAAiBG,GAAaA,EAAYA,EAAU/W,QAAQ0W,EAAgB,OAAOM,aAC5F,IAEIC,EAAoB,SAA2B7Z,EAAKwI,GACtD,OAAQxI,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,kBAAVwI,EACT,OAAOA,EAAM5F,QAAQ2W,GAAgB,SAAUO,EAAOC,EAAIC,GAMxD,OALAC,EAAS,CACPlU,KAAMgU,EACN7D,OAAQ8D,EACR1R,KAAM2R,GAEDF,CACT,IAKR,OAAsB,IAAlB,EAAS/Z,IAAewZ,EAAiBxZ,IAAyB,kBAAVwI,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,IAInB,EAgCA,SAAS0R,EAAoBC,EAAa/D,EAAYgE,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,QAAuCxL,IAAnCwL,EAAcC,iBAKhB,OAAOD,EAGT,cAAeA,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,GAA2B,IAAvBA,EAAcE,KAMhB,OALAL,EAAS,CACPlU,KAAMqU,EAAcrU,KACpBmQ,OAAQkE,EAAclE,OACtB5N,KAAM2R,GAEDG,EAAcrU,KAGvB,QAA6B6I,IAAzBwL,EAAclE,OAAsB,CACtC,IAAI5N,EAAO8R,EAAc9R,KAEzB,QAAasG,IAATtG,EAGF,UAAgBsG,IAATtG,GACL2R,EAAS,CACPlU,KAAMuC,EAAKvC,KACXmQ,OAAQ5N,EAAK4N,OACb5N,KAAM2R,GAER3R,EAAOA,EAAKA,KAUhB,OANa8R,EAAclE,OAAS,GAOtC,CAEA,OA2CR,SAAgCiE,EAAa/D,EAAY3X,GACvD,IAAI8b,EAAS,GAEb,GAAIxT,MAAMC,QAAQvI,GAChB,IAAK,IAAIiN,EAAI,EAAGA,EAAIjN,EAAIR,OAAQyN,IAC9B6O,GAAUL,EAAoBC,EAAa/D,EAAY3X,EAAIiN,IAAM,SAGnE,IAAK,IAAI8O,KAAQ/b,EAAK,CACpB,IAAI+J,EAAQ/J,EAAI+b,GAEhB,GAAqB,kBAAVhS,EACS,MAAd4N,QAA4CxH,IAAtBwH,EAAW5N,GACnC+R,GAAUC,EAAO,IAAMpE,EAAW5N,GAAS,IAClCiR,EAAmBjR,KAC5B+R,GAAUb,EAAiBc,GAAQ,IAAMX,EAAkBW,EAAMhS,GAAS,UAO5E,IAAIzB,MAAMC,QAAQwB,IAA8B,kBAAbA,EAAM,IAAkC,MAAd4N,QAA+CxH,IAAzBwH,EAAW5N,EAAM,IAM7F,CACL,IAAIiS,EAAeP,EAAoBC,EAAa/D,EAAY5N,GAEhE,OAAQgS,GACN,IAAK,YACL,IAAK,gBAEDD,GAAUb,EAAiBc,GAAQ,IAAMC,EAAe,IACxD,MAGJ,QAMIF,GAAUC,EAAO,IAAMC,EAAe,IAG9C,MAzBE,IAAK,IAAI1c,EAAK,EAAGA,EAAKyK,EAAMvK,OAAQF,IAC9B0b,EAAmBjR,EAAMzK,MAC3Bwc,GAAUb,EAAiBc,GAAQ,IAAMX,EAAkBW,EAAMhS,EAAMzK,IAAO,IAyBxF,CAGF,OAAOwc,CACT,CAjGeG,CAAuBP,EAAa/D,EAAYgE,GAG3D,IAAK,WAED,QAAoBxL,IAAhBuL,EAA2B,CAC7B,IAAIQ,EAAiBV,EACjBW,EAASR,EAAcD,GAE3B,OADAF,EAASU,EACFT,EAAoBC,EAAa/D,EAAYwE,EACtD,EAyBN,GAAkB,MAAdxE,EACF,OAAOgE,EAGT,IAAIS,EAASzE,EAAWgE,GACxB,YAAkBxL,IAAXiM,EAAuBA,EAAST,CACzC,CA0DA,IASIH,EATAa,EAAe,iCAUnB,IAAI,EAAkB,SAAyBxc,EAAM8X,EAAY+D,GAC/D,GAAoB,IAAhB7b,EAAKL,QAAmC,kBAAZK,EAAK,IAA+B,OAAZA,EAAK,SAAkCsQ,IAAnBtQ,EAAK,GAAG4X,OAClF,OAAO5X,EAAK,GAGd,IAAIyc,GAAa,EACb7E,EAAS,GACb+D,OAASrL,EACT,IAAIoM,EAAU1c,EAAK,GAEJ,MAAX0c,QAAmCpM,IAAhBoM,EAAQC,KAC7BF,GAAa,EACb7E,GAAUgE,EAAoBC,EAAa/D,EAAY4E,IAMvD9E,GAAU8E,EAAQ,GAIpB,IAAK,IAAItP,EAAI,EAAGA,EAAIpN,EAAKL,OAAQyN,IAC/BwK,GAAUgE,EAAoBC,EAAa/D,EAAY9X,EAAKoN,IAExDqP,IAKF7E,GAAU8E,EAAQtP,IActBoP,EAAaI,UAAY,EAIzB,IAHA,IACIpB,EADAqB,EAAiB,GAG0B,QAAvCrB,EAAQgB,EAAa9F,KAAKkB,KAChCiF,GAAkB,IAClBrB,EAAM,GAGR,IAAI/T,EClSN,SAAiBqV,GAYf,IANA,IAEIvc,EAFAwc,EAAI,EAGJ3P,EAAI,EACJ4P,EAAMF,EAAInd,OAEPqd,GAAO,IAAK5P,EAAG4P,GAAO,EAE3Bzc,EAEe,YAAV,OAHLA,EAAwB,IAApBuc,EAAIxK,WAAWlF,IAAmC,IAAtB0P,EAAIxK,aAAalF,KAAc,GAA2B,IAAtB0P,EAAIxK,aAAalF,KAAc,IAA4B,IAAtB0P,EAAIxK,aAAalF,KAAc,MAG9F,OAAZ7M,IAAM,KAAgB,IAIpDwc,EAEe,YAAV,OALLxc,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJwc,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQC,GACN,KAAK,EACHD,IAA8B,IAAxBD,EAAIxK,WAAWlF,EAAI,KAAc,GAEzC,KAAK,EACH2P,IAA8B,IAAxBD,EAAIxK,WAAWlF,EAAI,KAAc,EAEzC,KAAK,EAEH2P,EAEe,YAAV,OAHLA,GAAyB,IAApBD,EAAIxK,WAAWlF,MAGsB,OAAZ2P,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAG/a,SAAS,GACzC,CDiPa,CAAW4V,GAAUiF,EAehC,MAAO,CACLpV,KAAMA,EACNmQ,OAAQA,EACR5N,KAAM2R,EAEV,EEnTIsB,IAAqB,EAA+B,oBAAI,EAA+B,mBACvF,EAA2CA,GAL5B,SAAsBC,GACvC,OAAOA,GACT,ECOIC,GDHuCF,GAAsB,kBCGpD,CAAC,EAAElP,gBAEZqP,EAAqC,gBAMlB,qBAAhBC,aAA6C,OAAY,CAC9D3b,IAAK,QACF,MAMe0b,EAAoBE,SAAxC,IAKI,EAAmB,SAA0BC,GAE/C,OAAoB,IAAAC,aAAW,SAAUtK,EAAOuK,GAE9C,IAAI5F,GAAQ,IAAA6F,YAAWN,GACvB,OAAOG,EAAKrK,EAAO2E,EAAO4F,EAC5B,GACF,EA0BA,IAAI,EAA8B,gBAAoB,CAAC,GA6DvD,IA2CIE,EAAe,qCA2BfC,EAAY,SAAmBC,GACjC,IAAIhG,EAAQgG,EAAKhG,MACbH,EAAamG,EAAKnG,WAClBK,EAAc8F,EAAK9F,YAMvB,OALA,EAAeF,EAAOH,EAAYK,GAClC,GAAyC,WACvC,OL9Ke,SAAsBF,EAAOH,EAAYK,GAC1D,EAAeF,EAAOH,EAAYK,GAClC,IAAIC,EAAYH,EAAMnW,IAAM,IAAMgW,EAAWjQ,KAE7C,QAAwC6I,IAApCuH,EAAMX,SAASQ,EAAWjQ,MAAqB,CACjD,IAAIqW,EAAUpG,EAEd,GACEG,EAAMhH,OAAO6G,IAAeoG,EAAU,IAAM9F,EAAY,GAAI8F,EAASjG,EAAMxG,OAAO,GAElFyM,EAAUA,EAAQ9T,gBACCsG,IAAZwN,EACX,CACF,CKiKW,CAAajG,EAAOH,EAAYK,EACzC,IAEO,IACT,EAqDA,IAAIgG,EAnDyB,GAAiB,SAAU7K,EAAO2E,EAAO4F,GACpE,IAAIO,EAAU9K,EAAM+K,IAIG,kBAAZD,QAAsD1N,IAA9BuH,EAAMC,WAAWkG,KAClDA,EAAUnG,EAAMC,WAAWkG,IAG7B,IAAIE,EAAmBhL,EAAMyK,GACzBQ,EAAmB,CAACH,GACpBhG,EAAY,GAEe,kBAApB9E,EAAM8E,UACfA,EL7NJ,SAA6BF,EAAYqG,EAAkBC,GACzD,IAAIC,EAAe,GAQnB,OAPAD,EAAWld,MAAM,KAAKZ,SAAQ,SAAU0X,QACR1H,IAA1BwH,EAAWE,GACbmG,EAAiBvX,KAAKkR,EAAWE,GAAa,KAE9CqG,GAAgBrG,EAAY,GAEhC,IACOqG,CACT,CKmNgB,CAAoBxG,EAAMC,WAAYqG,EAAkBjL,EAAM8E,WAC9C,MAAnB9E,EAAM8E,YACfA,EAAY9E,EAAM8E,UAAY,KAGhC,IAAIN,EAAa,EAAgByG,OAAkB7N,EAAW,aAAiB,IAU/E0H,GAAaH,EAAMnW,IAAM,IAAMgW,EAAWjQ,KAC1C,IAAI6W,EAAW,CAAC,EAEhB,IAAK,IAAI5c,KAAOwR,EACViK,EAAOlb,KAAKiR,EAAOxR,IAAgB,QAARA,GAAiBA,IAAQic,IACtDW,EAAS5c,GAAOwR,EAAMxR,IAM1B,OAFA4c,EAASb,IAAMA,EACfa,EAAStG,UAAYA,EACD,gBAAoB,WAAgB,KAAmB,gBAAoB4F,EAAW,CACxG/F,MAAOA,EACPH,WAAYA,EACZK,YAAyC,kBAArBmG,IACL,gBAAoBA,EAAkBI,GACzD,IC7GIC,WAAM,SAAatL,EAAMC,GAC3B,IAAIlT,EAAON,UAEX,GAAa,MAATwT,IAAkBiK,EAAOlb,KAAKiR,EAAO,OAEvC,OAAO,gBAAoBjT,WAAMqQ,EAAWtQ,GAG9C,IAAIwe,EAAaxe,EAAKL,OAClB8e,EAAwB,IAAIhW,MAAM+V,GACtCC,EAAsB,GAAK,EAC3BA,EAAsB,GDgBC,SAA4BxL,EAAMC,GAMzD,IAAIoL,EAAW,CAAC,EAEhB,IAAK,IAAI5c,KAAOwR,EACViK,EAAOlb,KAAKiR,EAAOxR,KACrB4c,EAAS5c,GAAOwR,EAAMxR,IAY1B,OARA4c,EAASX,GAAgB1K,EAQlBqL,CACT,CCvC6BI,CAAmBzL,EAAMC,GAEpD,IAAK,IAAI9F,EAAI,EAAGA,EAAIoR,EAAYpR,IAC9BqR,EAAsBrR,GAAKpN,EAAKoN,GAIlC,OAAO,gBAAoBnN,MAAM,KAAMwe,EACzC,GAgHA,SAASR,IACP,IAAK,IAAIU,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAGzB,OAAO,EAAgBlc,EACzB,CAEA,IAAI4e,EAAY,WACd,IAAIC,EAAaZ,EAAIhe,WAAM,EAAQP,WAC/B+H,EAAO,aAAeoX,EAAWpX,KAErC,MAAO,CACLA,KAAMA,EACNmQ,OAAQ,cAAgBnQ,EAAO,IAAMoX,EAAWjH,OAAS,IACzDoE,KAAM,EACNha,SAAU,WACR,MAAO,QAAUS,KAAKgF,KAAO,IAAMhF,KAAKmV,OAAS,OACnD,EAEJ,4IC7QO,IAAIkH,EAA2B,SAAUC,GAG9C,SAASD,IAGP,IAFA,IAAI/a,EAEK4a,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAKzB,OAFAnY,EAAQgb,EAAiB9c,KAAKhC,MAAM8e,EAAkB,CAACtc,MAAMd,OAAO3B,KAAUyC,MACxEuc,cAAW,EACVjb,CACT,EAZA,OAAe+a,EAAaC,GAc5B,IAAIrO,EAASoO,EAAY/c,UA4CzB,OA1CA2O,EAAOuO,kBAAoB,WACzB,IAAIC,EAAc,cAAqBzc,MAQvCA,KAAKuc,SAAWE,GAChB,OAAUzc,KAAKyQ,MAAMiM,SAAUD,EACjC,EAEAxO,EAAO0O,mBAAqB,SAA4BC,GACtD,IAAIH,EAAc,cAAqBzc,MAQnCA,KAAKuc,WAAaE,IACpBzc,KAAKuc,SAAWE,GAChB,OAAUzc,KAAKyQ,MAAMiM,SAAUD,IAG7BG,EAAUF,WAAa1c,KAAKyQ,MAAMiM,WACpC,OAAU1c,KAAKyQ,MAAMiM,SAAUD,EAEnC,EAEAxO,EAAO4O,qBAAuB,YAC5B,OAAU7c,KAAKyQ,MAAMiM,SAAU,aACxB1c,KAAKuc,QACd,EAEAtO,EAAO6O,OAAS,WAEd,OADe9c,KAAKyQ,MAAMC,QAE5B,EAEO2L,CACT,CA5DsC,CA4DpC,aCnFSU,EAA0B,SAAUT,GAG7C,SAASS,IAGP,IAFA,IAAIzb,EAEK4a,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAezB,OAZAnY,EAAQgb,EAAiB9c,KAAKhC,MAAM8e,EAAkB,CAACtc,MAAMd,OAAO3B,KAAUyC,MACxEyc,iBAAc,EAEpBnb,EAAM0b,kBAAoB,SAAU3M,GAClC,IAAI4M,EAAc3b,EAAMmP,MACpBC,EAAWuM,EAAYvM,SACvBgM,EAAWO,EAAYP,UAC3B,OAAUhM,EAASsK,IAAK3K,IACxB,OAAUqM,EAAUrM,GACpB/O,EAAMmb,YAAcpM,CACtB,EAEO/O,CACT,EAtBA,OAAeyb,EAAYT,GAwB3B,IAAIrO,EAAS8O,EAAWzd,UAmBxB,OAjBA2O,EAAO0O,mBAAqB,SAA4BC,GAClDA,EAAUF,WAAa1c,KAAKyQ,MAAMiM,WACpC,OAAU1c,KAAKyQ,MAAMiM,SAAU1c,KAAKyc,YAExC,EAEAxO,EAAO4O,qBAAuB,kBACrB7c,KAAKyc,WACd,EAEAxO,EAAO6O,OAAS,WACd,IAAIpM,EAAW1Q,KAAKyQ,MAAMC,SAC1B,OAAoB,eAAmBA,EAAU,CAC/CsK,IAAKhb,KAAKgd,mBAEd,EAEOD,CACT,CA7CqC,CA6CnC,aC/CEG,EAAY,CAAC,WAAY,YAKlBC,EAAM,SAAa1M,GAC5B,IAAIC,EAAWD,EAAMC,SACjBgM,EAAWjM,EAAMiM,SACjBU,GAAO,OAA8B3M,EAAOyM,GAE5CG,EAAQ,WAAeC,KAAK5M,GAC5B6M,EAAc,eAAqBF,GAASN,EAAaV,EACzDmB,EAAiBH,GAASD,GAAQzf,OAAOC,KAAKwf,GAAMlgB,OAAS,EAAiB,eAAmBmgB,EAAOD,GAAQC,EACpH,OAAoB,gBAAoBE,EAAa,CACnDb,SAAUA,GACTc,EACL,6FCXO,IAAIC,EAAY,SAAmBzC,EAAK3K,GAO1B,oBAAR2K,EAKC,OAARA,GAA+B,kBAARA,IAGzBA,EAAIK,QAAUhL,GAPd2K,EAAI3K,EASR,EAGWqN,EAAc,SAAqB1C,GAC5C,OACU,OAARA,GAA+B,kBAARA,GAAoBA,EAAI1P,eAAe,UAElE,sCC9Ba3N,OAAOggB,eAAeC,EAAtB,cAA4CnW,OAAM,IAAK,IAAIoW,EAAI,EAAQ,OAAS,EAAQ,MAAc,IAAIC,EAAM,EAAQ,OAAS,SAASC,EAAQhc,GAAG,OAAOgc,EAAQ,mBAAmBC,QAAQ,iBAAiBA,OAAOC,SAAS,SAASlc,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBic,QAAQjc,EAAEmc,cAAcF,QAAQjc,IAAIic,OAAO1e,UAAU,gBAAgByC,CAAC,GAAGA,EAAE,CAAC,SAASoc,EAAgBpc,EAAEmJ,GAAG,KAAKnJ,aAAamJ,GAAG,MAAM,IAAIkT,UAAU,oCAAoC,CAAC,SAASC,EAAkBtc,EAAEmJ,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEF,EAAEhO,OAAOkO,IAAI,CAAC,IAAIlK,EAAEgK,EAAEE,GAAGlK,EAAEod,WAAWpd,EAAEod,aAAY,EAAGpd,EAAEqd,cAAa,EAAG,UAAUrd,IAAIA,EAAEsd,UAAS,GAAI7gB,OAAOggB,eAAe5b,EAAEb,EAAEjC,IAAIiC,EAAE,CAAC,CAAC,SAASud,EAAa1c,EAAEmJ,EAAEE,GAAG,OAAOF,GAAGmT,EAAkBtc,EAAEzC,UAAU4L,GAAGE,GAAGiT,EAAkBtc,EAAEqJ,GAAGrJ,CAAC,CAAC,SAAS2c,EAAgB3c,EAAEmJ,EAAEE,GAAG,OAAOF,KAAKnJ,EAAEpE,OAAOggB,eAAe5b,EAAEmJ,EAAE,CAACzD,MAAM2D,EAAEkT,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKzc,EAAEmJ,GAAGE,EAAErJ,CAAC,CAAC,SAAS4c,EAAU5c,EAAEmJ,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAIkT,UAAU,sDAAsDrc,EAAEzC,UAAU3B,OAAO8c,OAAOvP,GAAGA,EAAE5L,UAAU,CAAC4e,YAAY,CAACzW,MAAM1F,EAAEyc,UAAS,EAAGD,cAAa,KAAMrT,GAAG0T,EAAgB7c,EAAEmJ,EAAE,CAAC,SAAS2T,EAAgB9c,GAAG,OAAO8c,EAAgBlhB,OAAOmhB,eAAenhB,OAAOohB,eAAe,SAAShd,GAAG,OAAOA,EAAEid,WAAWrhB,OAAOohB,eAAehd,EAAE,GAAGA,EAAE,CAAC,SAAS6c,EAAgB7c,EAAEmJ,GAAG,OAAO0T,EAAgBjhB,OAAOmhB,gBAAgB,SAAS/c,EAAEmJ,GAAG,OAAOnJ,EAAEid,UAAU9T,EAAEnJ,CAAC,GAAGA,EAAEmJ,EAAE,CAAiJ,SAAS+T,EAA2Bld,EAAEmJ,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,mBAAmBA,EAA1O,SAAgCnJ,GAAG,QAAG,IAASA,EAAE,MAAM,IAAImd,eAAe,6DAA6D,OAAOnd,CAAC,CAA6Fod,CAAuBpd,GAAGmJ,CAAC,CAAC,IAAIkU,EAAS,WAAW,SAASrd,EAAEmJ,GAAGiT,EAAgBne,KAAK+B,GAAG2c,EAAgB1e,KAAK,gBAAW,GAAQA,KAAKqf,SAASnU,EAAE6E,MAAM,EAAE,CAAC,OAAO0O,EAAa1c,EAAE,CAAC,CAAC9C,IAAI,cAAcwI,MAAM,SAASyD,GAAG,IAAI,IAAIE,EAAEpL,KAAKqf,SAAStP,MAAM,GAAG7O,EAAEgK,EAAEhO,OAAOoiB,EAAE,EAAEA,EAAEpe,EAAEoe,GAAG,EAAElU,EAAEjH,KAAK+G,EAAEoU,IAAI,OAAO,IAAIvd,EAAEqJ,EAAE,GAAG,CAACnM,IAAI,gBAAgBwI,MAAM,SAAS1F,EAAEmJ,GAAG,IAAIE,EAAEpL,KAAKqf,SAASniB,OAAO,EAAE,GAAGgO,EAAE,CAAC,IAAI,IAAIhK,EAAEkK,EAAElK,GAAG,EAAEA,GAAG,EAAElB,KAAKqf,SAASne,GAAGqe,SAASvf,KAAKqf,SAASne,GAAGqe,QAAO,EAAGvf,KAAKqf,SAASne,GAAGa,IAAI,IAAI,IAAIud,EAAElU,EAAEkU,GAAG,EAAEA,GAAG,EAAEtf,KAAKqf,SAASC,GAAGC,QAAO,CAAE,MAAM,EAAGvf,KAAKqf,SAASjU,IAAIrJ,EAAG,GAAG,CAAC9C,IAAI,cAAcwI,MAAM,WAAW,OAAOzH,KAAKqf,SAASniB,OAAO,CAAC,GAAG,CAAC+B,IAAI,iBAAiBwI,MAAM,SAASyD,GAAG,IAAI,IAAIE,EAAE,GAAGlK,EAAElB,KAAKqf,SAASniB,OAAOoiB,EAAE,EAAEA,EAAEpe,EAAEoe,GAAG,EAAE,CAAC,IAAIjiB,EAAE2C,KAAKqf,SAASC,IAAI,IAAIpU,EAAEJ,QAAQzN,IAAI+N,EAAEjH,KAAK9G,EAAE,CAAC,OAAO,IAAI0E,EAAEqJ,EAAE,KAAKrJ,CAAC,CAA1uB,GAA8uB,SAASyd,EAASzd,GAAG,IAAImJ,EAAE,IAAIuU,IAAI,OAAO1d,EAAElE,SAAQ,SAASkE,EAAEqJ,GAAGF,EAAE0I,IAAIxI,EAAErJ,EAAE,IAAGmJ,CAAC,CAAC,SAASwU,EAAkB3d,GAAG,OAAOiE,MAAMC,QAAQlE,GAAGA,EAAE,CAACA,EAAE,CAAkG,SAAS4d,EAAgB5d,GAAG,MAAM,aAAaA,EAAEuM,SAAS,WAAWvM,EAAEnC,OAAxJ,SAASmC,GAAG,OAAO,OAAOA,GAAG,WAAWgc,EAAQhc,IAAIA,EAAEuJ,eAAe,UAAU,CAAgFoS,CAAY3b,GAAGA,EAAEsZ,SAAS/M,SAASvM,GAAGuM,QAAQ,CAAC,IAAIsR,EAAU,WAAW,SAAS7d,EAAEmJ,EAAEE,GAAG+S,EAAgBne,KAAK+B,GAAG2c,EAAgB1e,KAAK,mBAAc,GAAQ0e,EAAgB1e,KAAK,gBAAW,GAAQA,KAAK6f,YAAYzU,EAAEpL,KAAK8f,SAAS5U,CAAC,CAAC,OAAOuT,EAAa1c,EAAE,CAAC,CAAC9C,IAAI,cAAcwI,MAAM,SAASyD,EAAEE,GAAG,IAAIlK,EAAEse,EAASxf,KAAK6f,aAAa,GAAG3e,EAAE6e,IAAI7U,GAAG,CAAC,IAAIoU,EAAEpe,EAAEyS,IAAIzI,GAAGhK,EAAE0S,IAAI1I,EAAEoU,EAAEU,YAAY5U,GAAG,MAAMlK,EAAE0S,IAAI1I,EAAE,IAAIkU,EAAShU,IAAI,OAAO,IAAIrJ,EAAE/B,KAAK8f,SAAS5e,EAAE,GAAG,CAACjC,IAAI,gBAAgBwI,MAAM,SAAS1F,EAAEmJ,GAAG,IAAIE,EAAEpL,KAAK6f,YAAYlM,IAAI5R,GAAGb,EAAE,YAAYlB,KAAK8f,SAAS1U,GAAGA,EAAE6U,cAAc/U,EAAEhK,EAAE,GAAG,CAACjC,IAAI,cAAcwI,MAAM,SAAS1F,GAAG,IAAIA,EAAE,OAAO/B,KAAK6f,YAAY/M,KAAK,EAAE,IAAI5H,EAAElL,KAAK6f,YAAYlM,IAAI5R,GAAG,QAAQmJ,GAAGA,EAAEgV,aAAa,GAAG,CAACjhB,IAAI,iBAAiBwI,MAAM,SAASyD,EAAEE,GAAG,IAAIlK,EAAEse,EAASxf,KAAK6f,aAAa,IAAI3e,EAAE6e,IAAI7U,GAAG,OAAO,IAAInJ,EAAE/B,KAAK8f,SAAS5e,GAAG,IAAIoe,EAAEpe,EAAEyS,IAAIzI,GAAGiV,eAAe/U,GAAG,OAAOkU,EAAEY,cAAchf,EAAE0S,IAAI1I,EAAEoU,GAAGpe,EAAEkf,OAAOlV,GAAG,IAAInJ,EAAE/B,KAAK8f,SAAS5e,EAAE,KAAKa,CAAC,CAA/1B,GAAm2B2c,EAAgBkB,EAAU,gBAAe,SAAS7d,EAAEmJ,EAAEE,GAAG,IAAIlK,EAAE,IAAIue,IAAI,OAAOve,EAAE0S,IAAI1I,EAAE,IAAIkU,EAAShU,IAAI,IAAIwU,EAAU7d,EAAEb,EAAE,IAAG,IAAImf,EAAY,WAAW,SAASte,EAAEmJ,GAAG,IAAIE,EAAEpL,KAAKme,EAAgBne,KAAK+B,GAAG2c,EAAgB1e,KAAK,WAAW,IAAIyf,KAAKf,EAAgB1e,KAAK,QAAQ,IAAIyf,KAAKf,EAAgB1e,KAAK,cAAS,GAAQ0e,EAAgB1e,KAAK,iBAAgB,SAAS+B,GAAG,OAAO,SAASmJ,GAAGE,EAAEkV,MAAMziB,SAAQ,SAASuN,GAAGA,EAAE6U,cAAcle,EAAEmJ,EAAE,GAAE,CAAC,IAAGlL,KAAKugB,OAAOrV,CAAC,CAAC,OAAOuT,EAAa1c,EAAE,CAAC,CAAC9C,IAAI,cAAcwI,MAAM,SAAS1F,EAAEmJ,EAAEE,GAAG,GAAGpL,KAAKsgB,MAAMP,IAAIhe,GAAG,CAAC,IAAIb,EAAElB,KAAKsgB,MAAM3M,IAAI5R,GAAG/B,KAAKsgB,MAAM1M,IAAI7R,EAAEb,EAAE8e,YAAY9U,EAAEE,GAAG,MAAMpL,KAAKsgB,MAAM1M,IAAI7R,EAAE6d,EAAUY,aAAaze,EAAEmJ,EAAEE,IAAIpL,KAAKqf,SAASU,IAAI7U,IAAIlL,KAAKygB,iBAAiBvV,EAAE,GAAG,CAACjM,IAAI,cAAcwI,MAAM,WAAW,OAAOzH,KAAKqf,SAASvM,KAAK,CAAC,GAAG,CAAC7T,IAAI,iBAAiBwI,MAAM,SAAS1F,EAAEmJ,EAAEE,GAAG,GAAGpL,KAAKsgB,MAAMP,IAAIhe,GAAG,CAAC,IAAIb,EAAElB,KAAKsgB,MAAM3M,IAAI5R,GAAGoe,eAAejV,EAAEE,GAAGlK,EAAEgf,cAAclgB,KAAKsgB,MAAM1M,IAAI7R,EAAEb,GAAGlB,KAAKsgB,MAAMF,OAAOre,GAAG,IAAIud,GAAE,EAAGtf,KAAKsgB,MAAMziB,SAAQ,SAASkE,GAAG,OAAOud,EAAEA,GAAGvd,EAAEme,YAAYhV,EAAE,IAAGoU,GAAGtf,KAAK0gB,oBAAoBxV,EAAE,CAAC,GAAG,CAACjM,IAAI,mBAAmBwI,MAAM,SAAS1F,GAAG,IAAImJ,EAAElL,KAAK2gB,cAAc5e,GAAG/B,KAAKqf,SAASzL,IAAI7R,EAAEmJ,GAAGlL,KAAKugB,OAAOtU,iBAAiBlK,EAAEmJ,GAAE,EAAG,GAAG,CAACjM,IAAI,sBAAsBwI,MAAM,SAAS1F,GAAG/B,KAAKqf,SAASU,IAAIhe,KAAK/B,KAAKugB,OAAOK,oBAAoB7e,EAAE/B,KAAKqf,SAAS1L,IAAI5R,IAAG,GAAI/B,KAAKqf,SAASe,OAAOre,GAAG,KAAKA,CAAC,CAArqC,GAAyqC8e,EAAW,WAAW,SAAS9e,IAAI,IAAImJ,EAAElL,KAAKme,EAAgBne,KAAK+B,GAAG2c,EAAgB1e,KAAK,UAAU,IAAIyf,KAAKf,EAAgB1e,KAAK,aAAY,SAAS+B,GAAG,IAAIqJ,IAAInO,UAAUC,OAAO,QAAG,IAASD,UAAU,KAAKA,UAAU,GAAGiE,EAAEye,EAAgB5d,GAAG,GAAGmJ,EAAE4V,QAAQf,IAAI7e,GAAG,OAAOgK,EAAE4V,QAAQnN,IAAIzS,GAAG,IAAIkK,EAAE,OAAO,KAAK,IAAIkU,EAAE,IAAIe,EAAYnf,GAAG,OAAOgK,EAAE4V,QAAQlN,IAAI1S,EAAEoe,GAAGA,CAAC,IAAGZ,EAAgB1e,KAAK,gBAAe,SAAS+B,GAAGmJ,EAAE4V,QAAQV,OAAOT,EAAgB5d,GAAG,GAAE,CAAC,OAAO0c,EAAa1c,EAAE,CAAC,CAAC9C,IAAI,MAAMwI,MAAM,SAAS1F,EAAEmJ,GAAG,IAAIE,EAAEnO,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,GAAG4gB,EAAIkD,UAAU,CAAC,IAAI7f,EAAEkK,EAAEmV,OAAOjB,OAAE,IAASpe,EAAEoN,SAASpN,EAAE7D,EAAE+N,EAAE4V,KAAK7V,OAAE,IAAS9N,EAAE,UAAUA,EAAE2C,KAAKihB,UAAU3B,GAAGU,YAAY7U,EAAEpJ,EAAE2d,EAAkBxU,GAAG,CAAC,GAAG,CAACjM,IAAI,QAAQwI,MAAM,SAAS1F,EAAEmJ,GAAG,IAAIE,EAAEnO,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,GAAG4gB,EAAIkD,UAAU,CAAC,IAAI7f,EAAEkK,EAAEmV,OAAOjB,OAAE,IAASpe,EAAEoN,SAASpN,EAAE7D,EAAE+N,EAAE4V,KAAK7V,OAAE,IAAS9N,EAAE,UAAUA,EAAEsN,EAAE3K,KAAKihB,UAAU3B,GAAE,GAAI3U,IAAIA,EAAEwV,eAAehV,EAAEpJ,EAAE2d,EAAkBxU,IAAIP,EAAEuV,eAAelgB,KAAKkhB,aAAa5B,GAAG,CAAC,KAAKvd,CAAC,CAA7+B,GAAi/Bof,EAAS,IAAIN,EAAWO,EAAa,SAASrf,GAAG,SAASmJ,IAAI,OAAOiT,EAAgBne,KAAKkL,GAAG+T,EAA2Bjf,KAAK6e,EAAgB3T,GAAG1N,MAAMwC,KAAK/C,WAAW,CAAC,OAAO0hB,EAAUzT,EAAE4S,EAAMuD,eAAe5C,EAAavT,EAAE,CAAC,CAACjM,IAAI,oBAAoBwI,MAAM,WAAWzH,KAAKshB,UAAUthB,KAAKyQ,MAAM,GAAG,CAACxR,IAAI,qBAAqBwI,MAAM,SAAS1F,GAAG/B,KAAKuhB,YAAYxf,GAAG/B,KAAKshB,UAAUthB,KAAKyQ,MAAM,GAAG,CAACxR,IAAI,uBAAuBwI,MAAM,WAAWzH,KAAKuhB,YAAYvhB,KAAKyQ,MAAM,GAAG,CAACxR,IAAI,YAAYwI,MAAM,SAAS1F,GAAG,IAAImJ,EAAEnJ,EAAEiD,KAAKoG,EAAErJ,EAAEoB,GAAGjC,EAAEa,EAAEif,KAAK1B,EAAEvd,EAAEwe,OAAOY,EAASK,IAAItW,EAAEE,EAAE,CAAC4V,KAAK9f,EAAEqf,OAAOjB,GAAG,GAAG,CAACrgB,IAAI,cAAcwI,MAAM,SAAS1F,GAAG,IAAImJ,EAAEnJ,EAAEiD,KAAKoG,EAAErJ,EAAEoB,GAAGjC,EAAEa,EAAEif,KAAK1B,EAAEvd,EAAEwe,OAAOY,EAASM,MAAMvW,EAAEE,EAAE,CAAC4V,KAAK9f,EAAEqf,OAAOjB,GAAG,GAAG,CAACrgB,IAAI,SAASwI,MAAM,WAAW,OAAO,IAAI,KAAKyD,CAAC,CAAhsB,GAAosBwT,EAAgB0C,EAAa,eAAe,CAACJ,KAAK,UAAUT,OAAO,aAAaa,EAAaM,UAAU,CAAC,EAAE9D,EAAQuD,SAASA,EAASvD,EAAA,QAAgBwD,sCCGvyN,IAAIxiB,EAGFA,EAAQ,EAAQ,OAKlB+iB,EAAO/D,QAAUhf,EAAMgjB,QACvBD,EAAO/D,QAAQuD,SAAWviB,EAAMuiB,6CCVhC,SAASU,EAAiBC,GAAM,OAAQA,GAAqB,kBAAPA,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,CAAI,CAEjH,IAAIC,EAAaF,EAAgB,EAAQ,QACrCG,EAAOH,EAAgB,EAAQ,QAEnC,SAAS9D,EAAQrgB,GAWf,OATEqgB,EADoB,oBAAXC,QAAoD,kBAApBA,OAAOC,SACtC,SAAUvgB,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,oBAAXsgB,QAAyBtgB,EAAIwgB,cAAgBF,QAAUtgB,IAAQsgB,OAAO1e,UAAY,gBAAkB5B,CAC3H,EAGKqgB,EAAQrgB,EACjB,CAEA,SAASghB,EAAgBhhB,EAAKuB,EAAKwI,GAYjC,OAXIxI,KAAOvB,EACTC,OAAOggB,eAAejgB,EAAKuB,EAAK,CAC9BwI,MAAOA,EACP6W,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ9gB,EAAIuB,GAAOwI,EAGN/J,CACT,CAEA,SAASukB,EAAc1B,GACrB,IAAK,IAAI5V,EAAI,EAAGA,EAAI1N,UAAUC,OAAQyN,IAAK,CACzC,IAAImC,EAAyB,MAAhB7P,UAAU0N,GAAa1N,UAAU0N,GAAK,CAAC,EAChDuX,EAAUvkB,OAAOC,KAAKkP,GAEkB,oBAAjCnP,OAAOwkB,wBAChBD,EAAUA,EAAQhjB,OAAOvB,OAAOwkB,sBAAsBrV,GAAQpO,QAAO,SAAU0jB,GAC7E,OAAOzkB,OAAO0kB,yBAAyBvV,EAAQsV,GAAK9D,UACtD,MAGF4D,EAAQrkB,SAAQ,SAAUoB,GACxByf,EAAgB6B,EAAQthB,EAAK6N,EAAO7N,GACtC,GACF,CAEA,OAAOshB,CACT,CAEA,SAAS+B,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIvc,MAAMC,QAAQsc,GAAM,CACtB,IAAK,IAAI5X,EAAI,EAAG6X,EAAO,IAAIxc,MAAMuc,EAAIrlB,QAASyN,EAAI4X,EAAIrlB,OAAQyN,IAAK6X,EAAK7X,GAAK4X,EAAI5X,GAEjF,OAAO6X,CACT,CACF,CATSC,CAAmBF,IAW5B,SAA0BG,GACxB,GAAI1E,OAAOC,YAAYtgB,OAAO+kB,IAAkD,uBAAzC/kB,OAAO2B,UAAUC,SAASC,KAAKkjB,GAAgC,OAAO1c,MAAM2c,KAAKD,EAC1H,CAboCE,CAAiBL,IAerD,WACE,MAAM,IAAInE,UAAU,kDACtB,CAjB6DyE,EAC7D,CAuBA,IAAIC,EAAe,WAEfC,EAAwB,SAA+BhK,GAGzD,MAEE,IAAI7Z,OAAO6Z,EAAMF,cAErB,EAoBImK,EAAmB,CACrBvN,yBAAyB,EACzBE,mBAAmB,EACnBC,kBAAkB,EAClBC,kBAAkB,EAClBC,SAAS,EACTC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,EACbE,MAAM,EACNC,UAAU,EACVC,cAAc,EACdC,YAAY,EACZC,cAAc,EACdC,WAAW,EACXC,SAAS,EACTI,YAAY,EACZQ,YAAY,EACZ4L,WAAW,EACX3L,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,MAAM,EAENE,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,eAAe,EACfC,aAAa,GAqBf,IAAI4K,EAAW,CAAC,SAAU,KAAM,MAAO,KAIvCvlB,OAAOC,KAAKolB,GAAkBnlB,SAAQ,SAAUslB,GAC9CD,EAASrlB,SAAQ,SAAUulB,GACzBJ,EAhBJ,SAAmBI,EAAQnkB,GACzB,OAAOmkB,EAASnkB,EAAIokB,OAAO,GAAGC,cAAgBrkB,EAAIskB,UAAU,EAC9D,CAcqBC,CAAUJ,EAAQD,IAASH,EAAiBG,EAC/D,GACF,IACA,IAAIM,EAAiB,SAAwBxkB,EAE3CkkB,GAKA,MAAoB,kBAATA,EACLH,EAAiB/jB,GACZ,GAAKkkB,EAELA,EAAO,KAGT,GAAKA,CAEhB,EACIO,EAAgC,SAAuCzkB,EAEzEkkB,GAGA,OAEEQ,EAAaF,EAAexkB,EAAKkkB,GAErC,EAGIS,EAAa,SAAoBpK,EAEnCva,GAGA,OAEE8iB,EAAWvI,GAAQja,SAAS,GAEhC,EAmBIokB,EAAe,SAAsBnK,GAGvC,MAOiC,MAA/BA,EAAOA,EAAOtc,OAAS,KAAqC,gBAAtBsc,EAAOzJ,OAAO,IAAwByJ,EAAS,GAAGta,OAAOsa,EAAQ,cAE3G,EAGIqK,EAA4B,qBAARpE,IAEpBqE,EAEJ,WAKE,SAASA,IACP9jB,KAAK+jB,SAAW,CAAC,EACjB/jB,KAAKgkB,SAAW,EAClB,CAEA,IAAI/V,EAAS6V,EAAgBxkB,UAgG7B,OA9FA2O,EAAOpQ,QAAU,SAAiB2T,GAGhC,IAAK,IAAI7G,EAAI,EAAGA,EAAI3K,KAAKgkB,SAAS9mB,OAAQyN,IAExC6G,EAASxR,KAAK+jB,SAAS/jB,KAAKgkB,SAASrZ,IAAK3K,KAAKgkB,SAASrZ,GAE5D,EAEAsD,EAAO2F,IAAM,SAAa3U,EAExBwI,EAEAwc,GAGA,GAAKjkB,KAAK+jB,SAASzY,eAAerM,IAE3B,GAAIglB,EAAe,CACxB,IAAIrU,EAAQ5P,KAAKgkB,SAASlZ,QAAQ7L,GAClCe,KAAKgkB,SAASE,OAAOtU,EAAO,GAC5B5P,KAAKgkB,SAAS7f,KAAKlF,EACrB,OALEe,KAAKgkB,SAAS7f,KAAKlF,GAOrB,GAAa,MAATwI,EAAJ,CAKA,GAAIoc,GAAcpc,aAAiBgY,KAAOhY,aAAiBqc,EAAiB,CAG1E,IAAIK,EAASnkB,KAAK+jB,SAASzY,eAAerM,GAAOe,KAAK+jB,SAAS9kB,GAAO,IAAI6kB,EAK1E,OAJArc,EAAM5J,SAAQ,SAAU4J,EAAOxI,GAC7BklB,EAAOvQ,IAAI3U,EAAKwI,EAAOwc,EACzB,SACAjkB,KAAK+jB,SAAS9kB,GAAOklB,EAEvB,CAEA,GAAKne,MAAMC,QAAQwB,IAA6B,WAAnBsW,EAAQtW,GAerCzH,KAAK+jB,SAAS9kB,GAAOwI,MAfrB,CAOE,IAJA,IAAI2c,EAAUpkB,KAAK+jB,SAASzY,eAAerM,GAAOe,KAAK+jB,SAAS9kB,GAAO,IAAI6kB,EAEvElmB,EAAOD,OAAOC,KAAK6J,GAEdkD,EAAI,EAAGA,EAAI/M,EAAKV,OAAQyN,GAAK,EACpCyZ,EAAQxQ,IAAIhW,EAAK+M,GAAIlD,EAAM7J,EAAK+M,IAAKsZ,GAGvCjkB,KAAK+jB,SAAS9kB,GAAOmlB,CAEvB,CA1BA,MAFEpkB,KAAK+jB,SAAS9kB,GAAOwI,CA+BzB,EAEAwG,EAAO0F,IAAM,SAAa1U,GAKxB,OAAOe,KAAK+jB,SAAS9kB,EACvB,EAEAgP,EAAO8R,IAAM,SAAa9gB,GAKxB,OAAOe,KAAK+jB,SAASzY,eAAerM,EACtC,EAEAgP,EAAOoW,aAAe,SAAsBC,GAK1C,IAAIhjB,EAAQtB,KAEZ,GAAI6jB,GAAcS,aAAqB7E,KAAO6E,aAAqBR,EACjEQ,EAAUzmB,SAAQ,SAAU4J,EAAOxI,GACjCqC,EAAMsS,IAAI3U,EAAKwI,GAAO,EACxB,SAIA,IAFA,IAAI7J,EAAOD,OAAOC,KAAK0mB,GAEd3Z,EAAI,EAAGA,EAAI/M,EAAKV,OAAQyN,IAC/B3K,KAAK4T,IAAIhW,EAAK+M,GAAI2Z,EAAU1mB,EAAK+M,KAAK,EAG5C,EAEOmZ,CACT,CA3GA,GA6GA,SAASS,EAAevR,GACvB,OAAOA,GAAKA,EAAEwR,YAAc7mB,OAAO2B,UAAUgM,eAAe9L,KAAKwT,EAAG,WAAaA,EAAE4O,QAAU5O,CAC9F,CAEA,SAASyR,EAAqBpb,EAAIsY,GACjC,OAAiCtY,EAA1BsY,EAAS,CAAE/D,QAAS,CAAC,GAAgB+D,EAAO/D,SAAU+D,EAAO/D,OACrE,CAMA,IAAI8G,EAAqBD,GAAqB,SAAU9C,EAAQ/D,GAEhEjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QACR,SAA0BvH,GACxB,OAAOA,EAAIgJ,OAAO,GAAGC,cAAgBjJ,EAAItK,MAAM,EACjD,CACA,IAEAwU,EAAcG,GAEd,IAAIC,EAAmBF,GAAqB,SAAU9C,EAAQ/D,GAE9DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAQR,SAAwBgD,EAAkBxS,EAAUyS,GAClD,GAAID,EAAiBtZ,eAAe8G,GAAW,CAK7C,IAJA,IAAI0S,EAAW,CAAC,EACZC,EAAmBH,EAAiBxS,GACpC4S,GAAsB,EAAIC,EAAmBrD,SAASxP,GACtDxU,EAAOD,OAAOC,KAAKinB,GACdla,EAAI,EAAGA,EAAI/M,EAAKV,OAAQyN,IAAK,CACpC,IAAIua,EAAgBtnB,EAAK+M,GACzB,GAAIua,IAAkB9S,EACpB,IAAK,IAAIW,EAAI,EAAGA,EAAIgS,EAAiB7nB,OAAQ6V,IAC3C+R,EAASC,EAAiBhS,GAAKiS,GAAuBH,EAAMzS,GAGhE0S,EAASI,GAAiBL,EAAMK,EAClC,CACA,OAAOJ,CACT,CACA,OAAOD,CACT,EAtBA,IAEgCnnB,EAF5BunB,GAE4BvnB,EAFgBgnB,IAEKhnB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,EAqBvF,IAEA6mB,EAAcI,GAEd,IAAIQ,EAAgBV,GAAqB,SAAU9C,EAAQ/D,GAE3DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QACR,SAAqBwD,EAAShT,EAAU3K,EAAOod,EAAOQ,GACpD,IAAK,IAAI1a,EAAI,EAAG4P,EAAM6K,EAAQloB,OAAQyN,EAAI4P,IAAO5P,EAAG,CAClD,IAAI2a,EAAiBF,EAAQza,GAAGyH,EAAU3K,EAAOod,EAAOQ,GAIxD,GAAIC,EACF,OAAOA,CAEX,CACF,CACA,IAEAf,EAAcY,GAEd,IAAII,EAAqBd,GAAqB,SAAU9C,EAAQ/D,GAMhE,SAAS4H,EAASC,EAAMhe,IACO,IAAzBge,EAAK3a,QAAQrD,IACfge,EAAKthB,KAAKsD,EAEd,CARA9J,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAOR,SAA0B6D,EAAM3f,GAC9B,GAAIE,MAAMC,QAAQH,GAChB,IAAK,IAAI6E,EAAI,EAAG4P,EAAMzU,EAAO5I,OAAQyN,EAAI4P,IAAO5P,EAC9C6a,EAASC,EAAM3f,EAAO6E,SAGxB6a,EAASC,EAAM3f,EAEnB,CACA,IAEAye,EAAcgB,GAEd,IAAIG,EAAajB,GAAqB,SAAU9C,EAAQ/D,GAExDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QACR,SAAkBna,GAChB,OAAOA,aAAiB9J,SAAWqI,MAAMC,QAAQwB,EACnD,CACA,IAEA8c,EAAcmB,GAEd,IAAIC,EAAmBlB,GAAqB,SAAU9C,EAAQ/D,GAE9DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAoBR,SAAwBxG,GACtB,IAAIwK,EAAYxK,EAAKwK,UACjBR,EAAUhK,EAAKgK,QAEnB,OAAO,SAAShC,EAAOyB,GACrB,IAAK,IAAIzS,KAAYyS,EAAO,CAC1B,IAAIpd,EAAQod,EAAMzS,GAGlB,IAAI,EAAIyT,EAAWjE,SAASna,GAC1Bod,EAAMzS,GAAYgR,EAAO3b,QAEpB,GAAIzB,MAAMC,QAAQwB,GAAQ,CAG/B,IAFA,IAAIqe,EAAgB,GAEXnb,EAAI,EAAG4P,EAAM9S,EAAMvK,OAAQyN,EAAI4P,IAAO5P,EAAG,CAChD,IAAI2a,GAAiB,EAAIS,EAAcnE,SAASwD,EAAShT,EAAU3K,EAAMkD,GAAIka,EAAOe,IACpF,EAAII,EAAmBpE,SAASkE,EAAeR,GAAkB7d,EAAMkD,GACzE,CAIImb,EAAc5oB,OAAS,IACzB2nB,EAAMzS,GAAY0T,EAEtB,KAAO,CACL,IAAIG,GAAkB,EAAIF,EAAcnE,SAASwD,EAAShT,EAAU3K,EAAOod,EAAOe,GAI9EK,IACFpB,EAAMzS,GAAY6T,GAGpBpB,GAAQ,EAAIqB,EAAiBtE,SAASgE,EAAWxT,EAAUyS,EAC7D,CACF,CAEA,OAAOA,CACT,CACF,EAxDA,IAAIqB,EAAmBC,EAAuBxB,GAI1CoB,EAAgBI,EAAuBhB,GAIvCa,EAAqBG,EAAuBZ,GAI5CM,EAAaM,EAAuBT,GAExC,SAASS,EAAuBzoB,GAAO,OAAOA,GAAOA,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,EAAO,CA2C9F,IAEI0oB,EAAiB7B,EAAcoB,GAE/BU,EAAmB5B,GAAqB,SAAU9C,EAAQ/D,GAE9DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAGR,SAAwBxP,EAAU3K,GAChC,GAAqB,kBAAVA,GAAgC,SAAVA,EAC/B,MAAO,CAAC,eAAgB,OAE5B,CACA,IAEI6e,EAAiB/B,EAAc8B,GAE/BE,EAAoB9B,GAAqB,SAAU9C,EAAQ/D,GAE/DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAGR,SAAyBna,GACvB,MAAwB,kBAAVA,GAAsB+e,EAAM1d,KAAKrB,EACjD,EAJA,IAAI+e,EAAQ,sBAKZ7E,EAAO/D,QAAUA,EAAiB,OAClC,IAEA2G,EAAcgC,GAEd,IAAIE,EAAShC,GAAqB,SAAU9C,EAAQ/D,GAEpDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QASR,SAAcxP,EAAU3K,GACtB,GAAqB,kBAAVA,KAAuB,EAAIif,EAAkB9E,SAASna,IAAUA,EAAMqD,QAAQ,UAAY,EACnG,OAAOoY,EAASlkB,KAAI,SAAUokB,GAC5B,OAAO3b,EAAM5F,QAAQ,UAAWuhB,EAAS,QAC3C,GAEJ,EAXA,IAEgC1lB,EAF5BgpB,GAE4BhpB,EAFe6oB,IAEM7oB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAEvF,IAAIwlB,EAAW,CAAC,WAAY,QAAS,GAQrC,IAEIyD,EAAOpC,EAAckC,GAErBG,EAAcnC,GAAqB,SAAU9C,EAAQ/D,GAEzDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAUR,SAAmBxP,EAAU3K,GAC3B,GAAqB,kBAAVA,KAAuB,EAAIif,EAAkB9E,SAASna,IAAUA,EAAMqD,QAAQ,gBAAkB,EACzG,OAAOoY,EAASlkB,KAAI,SAAUokB,GAC5B,OAAO3b,EAAM5F,QAAQ,gBAAiBuhB,EAAS,cACjD,GAEJ,EAZA,IAEgC1lB,EAF5BgpB,GAE4BhpB,EAFe6oB,IAEM7oB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAGvF,IAAIwlB,EAAW,CAAC,WAAY,GAQ5B,IAEI2D,EAAYtC,EAAcqC,GAE1BE,EAAWrC,GAAqB,SAAU9C,EAAQ/D,GAEtDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAUR,SAAgBxP,EAAU3K,GACxB,GAAiB,WAAb2K,GAAyBtM,EAAOwF,eAAe7D,GACjD,OAAOyb,EAASlkB,KAAI,SAAUokB,GAC5B,OAAOA,EAAS3b,CAClB,GAEJ,EAfA,IAAIyb,EAAW,CAAC,WAAY,QAAS,IAEjCpd,EAAS,CACX,WAAW,EACX,YAAY,EACZihB,MAAM,EACNC,UAAU,EAUZ,IAEI9N,EAASqL,EAAcuC,GAEvBG,EAAWxC,GAAqB,SAAU9C,EAAQ/D,GAEtDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAUR,SAAgBxP,EAAU3K,GACxB,GAAqB,kBAAVA,KAAuB,EAAIif,EAAkB9E,SAASna,IAAUA,EAAMqD,QAAQ,YAAc,EACrG,OAAOoY,EAASlkB,KAAI,SAAUokB,GAC5B,OAAO3b,EAAM5F,QAAQ,YAAauhB,EAAS,UAC7C,GAEJ,EAZA,IAEgC1lB,EAF5BgpB,GAE4BhpB,EAFe6oB,IAEM7oB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAGvF,IAAIwlB,EAAW,CAAC,WAAY,GAQ5B,IAEIxkB,EAAS6lB,EAAc0C,GAEvBC,EAASzC,GAAqB,SAAU9C,EAAQ/D,GAEpDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAMR,SAAcxP,EAAU3K,GACtB,GAAiB,YAAb2K,GAA0BtM,EAAOwF,eAAe7D,GAClD,OAAO3B,EAAO2B,EAElB,EATA,IAAI3B,EAAS,CACXqQ,KAAM,CAAC,cAAe,WAAY,cAAe,eAAgB,QACjE,cAAe,CAAC,qBAAsB,kBAAmB,qBAAsB,sBAAuB,eAQxG,IAEIA,EAAOoO,EAAc2C,GAErBC,EAAc1C,GAAqB,SAAU9C,EAAQ/D,GAEzDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QA0BR,SAAmBxP,EAAU3K,EAAOod,GAC9BlnB,OAAO2B,UAAUgM,eAAe9L,KAAK4nB,EAAkBhV,KACzDyS,EAAMuC,EAAiBhV,IAAaiV,EAAkB5f,IAAUA,GAElE,GAAiB,SAAb2K,EAAqB,CAGvB,GAAIzU,OAAO2B,UAAUgM,eAAe9L,KAAK8nB,EAAuB7f,GAE9D,YADAod,EAAM0C,OAASD,EAAsB7f,IAKvC,GAAIub,EAAiBla,KAAKrB,GAExB,YADAod,EAAM0C,OAAS9f,EAAQ,SAKzB,IAAI+f,EAAa/f,EAAMhJ,MAAM,MAG7B,OAAQ+oB,EAAWtqB,QACjB,KAAK,EAEH,YADA2nB,EAAM0C,OAAS,OAAS9f,GAE1B,KAAK,EAUH,YALIub,EAAiBla,KAAK0e,EAAW,IACnC3C,EAAM0C,OAASC,EAAW,GAAK,IAAMA,EAAW,GAAK,MAErD3C,EAAM0C,OAASC,EAAW,GAAK,MAAQA,EAAW,IAGtD,QACE3C,EAAM0C,OAAS9f,EAErB,CACF,EAlEA,IAAI4f,EAAoB,CACtB,eAAgB,aAChB,gBAAiB,UACjB,aAAc,QACd,WAAY,OAEVD,EAAmB,CACrBK,aAAc,iBACdC,UAAW,kBACXC,WAAY,cACZC,eAAgB,aAChBpQ,MAAO,cACPpB,SAAU,iBACVE,WAAY,iBACZuR,UAAW,uBAEPP,EAAwB,CAC5BQ,KAAM,WACNC,QAAS,UACTC,QAAS,WACTC,KAAM,WACNC,MAAO,SAELlF,EAAmB,eA4CvB,IAEImF,EAAY5D,EAAc4C,GAE1BiB,EAAe3D,GAAqB,SAAU9C,EAAQ/D,GAE1DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAiBR,SAAoBxP,EAAU3K,EAAOod,GAClB,kBAAbzS,GAAiD,kBAAV3K,IACrCA,EAAMqD,QAAQ,WAAa,EAC7B+Z,EAAMwD,gBAAkB,WAExBxD,EAAMwD,gBAAkB,aAEtB5gB,EAAMqD,QAAQ,YAAc,EAC9B+Z,EAAMyD,mBAAqB,UAE3BzD,EAAMyD,mBAAqB,UAG3BlB,EAAiB9b,eAAe8G,KAClCyS,EAAMuC,EAAiBhV,IAAaiV,EAAkB5f,IAAUA,EAEpE,EAhCA,IAAI4f,EAAoB,CACtB,eAAgB,UAChB,gBAAiB,UACjB,aAAc,QACd,WAAY,MACZ,eAAgB,WAChB9d,KAAM,YAGJ6d,EAAmB,CACrBO,WAAY,iBACZC,eAAgB,gBAChBW,SAAU,iBACVnS,SAAU,gBAoBZ,IAEIoS,EAAajE,EAAc6D,GAE3BK,EAAahE,GAAqB,SAAU9C,EAAQ/D,GAExDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAYR,SAAkBxP,EAAU3K,GAC1B,GAAqB,kBAAVA,KAAuB,EAAIif,EAAkB9E,SAASna,IAAU3B,EAAOgD,KAAKrB,GACrF,OAAOyb,EAASlkB,KAAI,SAAUokB,GAC5B,OAAO3b,EAAM5F,QAAQiE,GAAQ,SAAU4iB,GACrC,OAAOtF,EAASsF,CAClB,GACF,GAEJ,EAhBA,IAEgChrB,EAF5BgpB,GAE4BhpB,EAFe6oB,IAEM7oB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAEvF,IAAIwlB,EAAW,CAAC,WAAY,QAAS,IAEjCpd,EAAS,uFAWb,IAEI6iB,EAAWpE,EAAckE,GAEzBG,EAASnE,GAAqB,SAAU9C,EAAQ/D,GAEpDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAGT,IAAIohB,EAAgb,SAAUtG,EAAK5X,GAAK,GAAI3E,MAAMC,QAAQsc,GAAQ,OAAOA,EAAY,GAAIvE,OAAOC,YAAYtgB,OAAO4kB,GAAQ,OAAxf,SAAuBA,EAAK5X,GAAK,IAAIme,EAAO,GAAQC,GAAK,EAAU1hB,GAAK,EAAW2hB,OAAKnb,EAAW,IAAM,IAAK,IAAiCob,EAA7BjsB,EAAKulB,EAAIvE,OAAOC,cAAmB8K,GAAME,EAAKjsB,EAAGuK,QAAQC,QAAoBshB,EAAK3kB,KAAK8kB,EAAGxhB,QAAYkD,GAAKme,EAAK5rB,SAAWyN,GAA3Doe,GAAK,GAAkE,CAAE,MAAOG,GAAO7hB,GAAK,EAAM2hB,EAAKE,CAAK,CAAE,QAAU,KAAWH,GAAM/rB,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIqK,EAAI,MAAM2hB,CAAI,CAAE,CAAE,OAAOF,CAAM,CAAuHK,CAAc5G,EAAK5X,GAAa,MAAM,IAAIyT,UAAU,uDAA2D,EAGjpB,SAASgL,EAAsB3hB,GAC7B,MAAwB,kBAAVA,IAAuB4hB,MAAM5hB,EAC7C,CAHAmW,EAAQgE,QA8FR,SAAcxP,EAAU3K,EAAOod,GAC7B,GAAiB,YAAbzS,GAA0B3K,KAAS6hB,EACrC,OAAOA,EAAc7hB,GAGvB,GAAI2K,KAAYmX,EAAoB,EAElCC,EADwBD,EAAmBnX,IACzB3K,EAAOod,EAC3B,CACF,EAlGA,IAAI4E,EAAkB,CAAC,SAAU,MAAO,QAAS,WAE7CH,EAAgB,CAClB,cAAe,CAAC,kBAAmB,eACnCI,KAAM,CAAC,WAAY,SAGjBH,EAAqB,CACvB7B,UAAW,SAAmBjgB,EAAOod,GAC/B4E,EAAgB3e,QAAQrD,IAAU,IACpCod,EAAM8E,eAAiBliB,EAE3B,EAEAoP,WAAY,SAAoBpP,EAAOod,GACrC,GAAIuE,EAAsB3hB,GACxBod,EAAM1N,aAAe1P,MAChB,CACL,IAAImiB,EAAmBniB,EAAMhJ,MAAM,KAAKO,KAAI,SAAUkR,GACpD,OAAQA,CACV,IACI2Z,EAAoBhB,EAAee,EAAkB,GACrDE,EAAQD,EAAkB,GAC1BxmB,EAAMwmB,EAAkB,GAE5BN,EAAmBvS,gBAAgB8S,EAAOjF,GAC1C0E,EAAmBzS,cAAczT,EAAKwhB,EACxC,CACF,EAEA/N,cAAe,SAAuBrP,EAAOod,GAC3C,IAAI1N,EAAe0N,EAAM1N,aAErBiS,EAAsB3hB,IAAU2hB,EAAsBjS,KACxD0N,EAAMzN,iBAAmB3P,EAAQ0P,EAErC,EAEAH,gBAAiB,SAAyBvP,EAAOod,GAC3CuE,EAAsB3hB,KACxBod,EAAM1N,aAAe1P,EAEzB,EAEAgP,QAAS,SAAiBhP,EAAOod,GAC/B,GAAIuE,EAAsB3hB,GACxBod,EAAM5N,UAAYxP,MACb,CACL,IAAIsiB,EAAoBtiB,EAAMhJ,MAAM,KAAKO,KAAI,SAAUkR,GACrD,OAAQA,CACV,IACI8Z,EAAoBnB,EAAekB,EAAmB,GACtDD,EAAQE,EAAkB,GAC1B3mB,EAAM2mB,EAAkB,GAE5BT,EAAmB3S,aAAakT,EAAOjF,GACvC0E,EAAmB7S,WAAWrT,EAAKwhB,EACrC,CACF,EAEAnO,WAAY,SAAoBjP,EAAOod,GACrC,IAAI5N,EAAY4N,EAAM5N,UAElBmS,EAAsB3hB,IAAU2hB,EAAsBnS,KACxD4N,EAAM3N,cAAgBzP,EAAQwP,EAElC,EAEAL,aAAc,SAAsBnP,EAAOod,GACrCuE,EAAsB3hB,KACxBod,EAAM5N,UAAYxP,EAEtB,EAEAwiB,oBAAqB,SAA6BxiB,EAAOod,GACvDA,EAAMqF,cAAgBziB,CACxB,EAEA0iB,iBAAkB,SAA0B1iB,EAAOod,GACjDA,EAAMuF,WAAa3iB,CACrB,EAEA4iB,YAAa,SAAqB5iB,EAAOod,GACnC4E,EAAgB3e,QAAQrD,IAAU,IACpCod,EAAMyF,kBAAoB7iB,EAE9B,EAaF,IAEIiiB,EAAOnF,EAAcqE,GAErB2B,EAAa9F,GAAqB,SAAU9C,EAAQ/D,GAExDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAUR,SAAkBxP,EAAU3K,GAC1B,GAAqB,kBAAVA,KAAuB,EAAIif,EAAkB9E,SAASna,IAAUA,EAAMqD,QAAQ,eAAiB,EACxG,OAAOoY,EAASlkB,KAAI,SAAUokB,GAC5B,OAAO3b,EAAM5F,QAAQ,eAAgBuhB,EAAS,aAChD,GAEJ,EAZA,IAEgC1lB,EAF5BgpB,GAE4BhpB,EAFe6oB,IAEM7oB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAGvF,IAAIwlB,EAAW,CAAC,WAAY,GAQ5B,IAEIsH,EAAWjG,EAAcgG,GAEzBE,EAAYhG,GAAqB,SAAU9C,EAAQ/D,GAEvDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QA4BR,SAAiBxP,EAAU3K,EAAOod,GAChC,GAAIlnB,OAAO2B,UAAUgM,eAAe9L,KAAK4nB,EAAkBhV,GAEzD,IADA,IAAIsY,EAAsBtD,EAAiBhV,GAClCzH,EAAI,EAAG4P,EAAMmQ,EAAoBxtB,OAAQyN,EAAI4P,IAAO5P,EAC3Dka,EAAM6F,EAAoB/f,IAAMlD,CAGtC,EAlCA,IAAI2f,EAAmB,CACrBuD,iBAAkB,CAAC,sBACnBC,eAAgB,CAAC,qBACjBC,kBAAmB,CAAC,oBAAqB,kBACzCC,gBAAiB,CAAC,kBAAmB,gBACrCC,kBAAmB,CAAC,uBACpBC,gBAAiB,CAAC,sBAClBC,mBAAoB,CAAC,qBAAsB,mBAC3CC,iBAAkB,CAAC,mBAAoB,iBACvCC,iBAAkB,CAAC,sBACnBC,sBAAuB,CAAC,2BACxBC,sBAAuB,CAAC,2BACxBC,sBAAuB,CAAC,2BACxBC,eAAgB,CAAC,qBACjBC,oBAAqB,CAAC,0BACtBC,oBAAqB,CAAC,0BACtBC,oBAAqB,CAAC,0BACtBC,kBAAmB,CAAC,oBAAqB,kBACzCC,uBAAwB,CAAC,yBAA0B,uBACnDC,uBAAwB,CAAC,yBAA0B,uBACnDC,uBAAwB,CAAC,yBAA0B,uBACnDC,gBAAiB,CAAC,kBAAmB,gBACrCC,qBAAsB,CAAC,uBAAwB,qBAC/CC,qBAAsB,CAAC,uBAAwB,qBAC/CC,qBAAsB,CAAC,uBAAwB,qBAWjD,IAEIC,EAAU5H,EAAckG,GAExB2B,GAAa3H,GAAqB,SAAU9C,EAAQ/D,GAExDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QACR,SAAkBxP,EAAU3K,GAC1B,GAAiB,aAAb2K,GAAqC,WAAV3K,EAC7B,MAAO,CAAC,iBAAkB,SAE9B,CACA,IAEIyI,GAAWqU,EAAc6H,IAEzBC,GAAW5H,GAAqB,SAAU9C,EAAQ/D,GAEtDjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAoBR,SAAgBxP,EAAU3K,GACxB,GAAI6kB,EAAWhhB,eAAe8G,IAAatM,EAAOwF,eAAe7D,GAC/D,OAAOyb,EAASlkB,KAAI,SAAUokB,GAC5B,OAAOA,EAAS3b,CAClB,GAEJ,EAzBA,IAAIyb,EAAW,CAAC,WAAY,QAAS,IAEjCoJ,EAAa,CACfC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,UAAU,EACVC,WAAW,GAET/mB,EAAS,CACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAUpB,IAEIgnB,GAASvI,EAAc8H,IAGvBU,GAAmB,SACnBC,GAAY,OACZ5X,GAAQ,CAAC,EAEb,SAAS6X,GAAclU,GACrB,MAAO,IAAMA,EAAMF,aACrB,CAWA,IAxuBoCzN,GA4uBhC8hB,IA5uBgC9hB,GAwuBIzN,OAAOwvB,OAAO,CACpDvL,QAVF,SAA4B5c,GAC1B,GAAIoQ,GAAM9J,eAAetG,GACvB,OAAOoQ,GAAMpQ,GAGf,IAAIooB,EAAQpoB,EAAKnD,QAAQkrB,GAAkBE,IAC3C,OAAQ7X,GAAMpQ,GAAQgoB,GAAUlkB,KAAKskB,GAAS,IAAMA,EAAQA,CAC9D,MAruBahiB,GAAEwW,SAAWxW,GA6uBtBiiB,GAAsB5I,GAAqB,SAAU9C,EAAQ/D,GAEjEjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QAQR,SAA2BxP,GACzB,OAAO,EAAIkb,EAAqB1L,SAASxP,EAC3C,EANA,IAEgC1U,EAF5B4vB,GAE4B5vB,EAFkBwvB,KAEGxvB,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,GAKvFikB,EAAO/D,QAAUA,EAAiB,OAClC,IAEA2G,EAAc8I,IAEd,IAAIE,GAAe9I,GAAqB,SAAU9C,EAAQ/D,GAE1DjgB,OAAOggB,eAAeC,EAAS,aAAc,CAC3CnW,OAAO,IAETmW,EAAQgE,QA6DR,SAAoBxP,EAAU3K,EAAOod,EAAO2I,GAE1C,GAAqB,kBAAV/lB,GAAsB6kB,EAAWhhB,eAAe8G,GAAW,CACpE,IAAIqb,EAhCR,SAAqBhmB,EAAO+lB,GAC1B,IAAI,EAAI9G,EAAkB9E,SAASna,GACjC,OAAOA,EAMT,IAFA,IAAIimB,EAAiBjmB,EAAMhJ,MAAM,iCAExBkM,EAAI,EAAG4P,EAAMmT,EAAexwB,OAAQyN,EAAI4P,IAAO5P,EAAG,CACzD,IAAIgjB,EAAcD,EAAe/iB,GAC7B7E,EAAS,CAAC6nB,GACd,IAAK,IAAIvb,KAAYob,EAAmB,CACtC,IAAII,GAAmB,EAAIC,EAAoBjM,SAASxP,GAExD,GAAIub,EAAY7iB,QAAQ8iB,IAAqB,GAA0B,UAArBA,EAEhD,IADA,IAAI1K,EAAWsK,EAAkBpb,GACxBW,EAAI,EAAG+a,EAAO5K,EAAShmB,OAAQ6V,EAAI+a,IAAQ/a,EAElDjN,EAAOwE,QAAQqjB,EAAY9rB,QAAQ+rB,EAAkBG,EAAc7K,EAASnQ,IAAM6a,GAGxF,CAEAF,EAAe/iB,GAAK7E,EAAO1G,KAAK,IAClC,CAEA,OAAOsuB,EAAetuB,KAAK,IAC7B,CAKsB4uB,CAAYvmB,EAAO+lB,GAEjCS,EAAeR,EAAYhvB,MAAM,iCAAiCC,QAAO,SAAUwvB,GACrF,OAAQ,aAAaplB,KAAKolB,EAC5B,IAAG9uB,KAAK,KAER,GAAIgT,EAAStH,QAAQ,WAAa,EAChC,OAAOmjB,EAGT,IAAIE,EAAYV,EAAYhvB,MAAM,iCAAiCC,QAAO,SAAUwvB,GAClF,OAAQ,gBAAgBplB,KAAKolB,EAC/B,IAAG9uB,KAAK,KAER,OAAIgT,EAAStH,QAAQ,QAAU,EACtBqjB,GAGTtJ,EAAM,UAAW,EAAII,EAAmBrD,SAASxP,IAAa6b,EAC9DpJ,EAAM,OAAQ,EAAII,EAAmBrD,SAASxP,IAAa+b,EACpDV,EACT,CACF,EAlFA,IAAII,EAAsB1H,EAAuBkH,IAI7C3G,EAAoBP,EAAuBI,GAI3CtB,EAAqBkB,EAAuBzB,GAEhD,SAASyB,EAAuBzoB,GAAO,OAAOA,GAAOA,EAAI8mB,WAAa9mB,EAAM,CAAEkkB,QAASlkB,EAAO,CAE9F,IAAI4uB,EAAa,CACf8B,YAAY,EACZC,oBAAoB,EACpBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,eAAe,EACfC,uBAAuB,GAIrBV,EAAgB,CAClBW,OAAQ,WACRC,IAAK,QACLC,GAAI,OA0DN,IAIIC,GAAI,CAAC,UACLC,GAAI,CAAC,OACLF,GAAK,CAAC,MACNG,GAAK,CAAC,SAAU,OAChBC,GAAM,CAAC,SAAU,MACjBC,GAAO,CAAC,SAAU,MAAO,MAmHzBC,GAAY9I,EAlHC,CACfhB,QAAS,CAACkB,EAAgBK,EAAME,EAAW3N,EAAQxa,EAAQyX,EAAMgS,EAAWK,EAAYG,EAAUe,EAAMc,EAAU2B,EAASjc,GAAU4c,GATtHvI,EAAcgJ,KAU7B3H,UAAW,CACT,UAAaoJ,GACb,gBAAmBA,GACnB,iBAAoBA,GACpB,iBAAoBA,GACpB,mBAAsBH,GACtB,YAAeA,GACf,kBAAqBA,GACrB,eAAkBA,GAClB,iBAAoBA,GACpB,UAAaA,GACb,eAAkBA,GAClB,mBAAsBA,GACtB,kBAAqBA,GACrB,kBAAqBA,GACrB,wBAA2BA,GAC3B,cAAiBA,GACjB,mBAAsBA,GACtB,wBAA2BA,GAC3B,WAAcE,GACd,WAAcE,GACd,YAAeJ,GACf,qBAAwBA,GACxB,aAAgBA,GAChB,kBAAqBA,GACrB,kBAAqBA,GACrB,mBAAsBA,GACtB,SAAYA,GACZ,UAAaA,GACb,SAAYA,GACZ,WAAcA,GACd,aAAgBA,GAChB,SAAYA,GACZ,WAAcA,GACd,SAAYA,GACZ,cAAiBA,GACjB,KAAQA,GACR,iBAAoBA,GACpB,eAAkBA,GAClB,gBAAmBA,GACnB,gBAAmBA,GACnB,iBAAoBA,GACpB,iBAAoBA,GACpB,WAAcA,GACd,SAAYA,GACZ,oBAAuBE,GACvB,mBAAsBA,GACtB,mBAAsBA,GACtB,oBAAuBA,GACvB,OAAUF,GACV,oBAAuBE,GACvB,WAAcE,GACd,YAAeA,GACf,YAAeA,GACf,YAAeF,GACf,WAAcA,GACd,UAAaA,GACb,WAAcA,GACd,gBAAmBA,GACnB,gBAAmBA,GACnB,gBAAmBA,GACnB,QAAWA,GACX,WAAcA,GACd,YAAeA,GACf,YAAeC,GACf,KAAQA,GACR,UAAaH,GACb,cAAiBG,GACjB,SAAYH,GACZ,SAAYG,GACZ,WAAcH,GACd,SAAYG,GACZ,aAAgBH,GAChB,WAAcA,GACd,UAAaA,GACb,eAAkBA,GAClB,MAASA,GACT,gBAAmBA,GACnB,mBAAsBA,GACtB,mBAAsBA,GACtB,yBAA4BA,GAC5B,eAAkBA,GAClB,eAAkBG,GAClB,kBAAqBA,GACrB,kBAAqBA,GACrB,sBAAyBA,GACzB,qBAAwBA,GACxB,oBAAuBH,GACvB,iBAAoBA,GACpB,kBAAqBA,GACrB,QAAWI,GACX,SAAYD,GACZ,SAAYA,GACZ,eAAkBA,GAClB,gBAAmBH,GACnB,UAAaC,GACb,cAAiBA,GACjB,QAAWA,GACX,SAAYF,GACZ,YAAeA,GACf,WAAcA,GACd,YAAeA,GACf,eAAkBI,GAClB,YAAeH,GACf,kBAAqBA,GACrB,kBAAqBA,GACrB,iBAAoBA,GACpB,kBAAqBA,GACrB,iBAAoBA,MAkEpBM,GAEF,CACF,SAAyBna,EAAUoa,EAAcC,GAC/C,MAAoB,MAAhBra,EAAS,GACJ,KAGFqa,EAAsBD,EAAepa,EAC9C,EACA,SAAsBA,EAAUoa,EAAcC,GAC5C,GAAoB,MAAhBra,EAAS,GACX,OAAO,KAIT,IAAIsa,EAAYD,EAAsBD,GACtC,MAAO,CAAC,GAAGlwB,OAAO8V,EAAU,KAAK9V,OAAOowB,EAAUlwB,KAAK,IAAK,KAC9D,GA6CImwB,GAAc,SAASA,EAAYva,EAErCwa,EAEAC,EAEAC,EAEAC,GAOA,IAFA,IAAIC,EAAS,IAAI9L,EAERnZ,EAAI,EAAGA,EAAI6kB,EAAWtyB,OAAQyN,IACrCilB,EAAOvL,aAAamL,EAAW7kB,IAGjC,IAAIklB,EAAoB,IAAI/L,EACxBgM,EAAkB,GAEtBF,EAAO/xB,SAAQ,SAAUqwB,EAAKjvB,GAGTwwB,EAAiB7mB,MAAK,SAAUmnB,GACjD,IAAIlW,EAASkW,EAAQ9wB,EAAK+V,GAAU,SAAUgb,GAC5C,OAAOT,EAAYS,EAAa,CAAC9B,GAAMuB,EAAkBC,EAAgBC,EAC3E,IAEA,GAAc,MAAV9V,EAWF,OARI7T,MAAMC,QAAQ4T,GAChBiW,EAAgB3rB,KAAK3G,MAAMsyB,EAAiBxN,EAAmBzI,KAG/DrW,QAAQC,KAAK,yHAA+HssB,GAC5ID,EAAgB3rB,KAAK,eAAejF,OAAO2a,EAAQ,QAG9C,CAEX,KAIEgW,EAAkBjc,IAAI3U,EAAKivB,GAAK,EAEpC,IACA,IAAI+B,EAAmBC,GAAmBlb,EAAU6a,EAAmBH,EAAgBC,EAAcF,GAMrG,OAJIQ,GACFH,EAAgBxlB,QAAQ2lB,GAGnBH,CACT,EA4CIK,GAAgB,SAAuBlxB,EAEzCwI,EAEA2oB,GAGA,MAEE,GAAGlxB,QA19C4Csa,EA09CnBva,EAr9C1B4a,EAASL,EAAO3X,QAAQihB,EAAcC,GAExB,MAAdlJ,EAAO,IAA4B,MAAdA,EAAO,IAA4B,MAAdA,EAAO,GAC5C,IAAI3a,OAAO2a,GAGbA,GA+8C6B,KAAK3a,OAAOkxB,EAAenxB,EAAKwI,GAAQ,KA19CtD,IAA2B+R,EAK7CK,CAu9CN,EAEIwW,GAA2B,SAAkCC,EAAKpC,GAEpE,OADAoC,EAAIpC,IAAO,EACJoC,CACT,EAkCIJ,GAAqB,SAA4Blb,EAEnD/C,EAEAyd,EAEAC,EAEAF,IA9FsB,SAA2Bxd,EAEjDyd,EAEAD,GAKA,GAAKC,EAML,IAFA,IAAIa,EAAoB5yB,OAAOC,KAAK8xB,GAE3B/kB,EAAI,EAAGA,EAAI4lB,EAAkBrzB,OAAQyN,IAAK,CACjD,IAAI1L,EAAMsxB,EAAkB5lB,GAExBsH,EAAa8N,IAAI9gB,IAUnBgT,EAAa2B,IAAI3U,EAAKywB,EAAezwB,GAAKgT,EAAa0B,IAAI1U,GAAMwwB,IAGjE,EAEJ,CACF,CAkEEe,CAAkBve,EAAcyd,EAAgBD,GAChD,IAAIgB,EAAmB9yB,OAAOC,KAAKqU,EAAa8R,UAAU3mB,OAAOizB,GAA0B1yB,OAAO8c,OAAO,OAErGiW,EAAmBxB,GAAUjd,EAAa8R,UAC1C4M,EAAehzB,OAAOC,KAAK8yB,GAE/B,GAAIC,EAAazzB,SAAW+U,EAAa+R,SAAS9mB,OAOhD,IAAK,IAAIyN,EAAI,EAAGA,EAAIgmB,EAAazzB,OAAQyN,IACvC,IAAK8lB,EAAiBE,EAAahmB,IAAK,CAItC,IAAIimB,OAAgB,EAiBpB,IAZEA,EAHyB,MAAvBD,EAAahmB,GAAG,GAGFgmB,EAAahmB,GAAG,GAAGkO,cAAgB8X,EAAahmB,GAAGoF,MAAM,GACzC,MAAvB4gB,EAAahmB,GAAG,GAITgmB,EAAahmB,GAAG,GAAGkO,cAAgB8X,EAAahmB,GAAGoF,MAAM,GAIzD4gB,EAAahmB,GAAG,GAAGkO,cAAgB8X,EAAahmB,GAAGoF,MAAM,KAGtD0gB,EAAiBG,GAAgB,CACpD,IAAIC,EAAgB5e,EAAa+R,SAASlZ,QAAQ8lB,GAClD3e,EAAa+R,SAASE,OAAO2M,EAAe,EAAGF,EAAahmB,GAC9D,MAIEsH,EAAa+R,SAAS1Z,QAAQqmB,EAAahmB,GAE/C,CAOJ,IAHA,IAAIylB,GAAkC,IAAjBT,EAAyBlM,EAAiBC,EAC3D7R,EAAQ,GAEH7U,EAAK,EAAGA,EAAKiV,EAAa+R,SAAS9mB,OAAQF,IAAM,CACxD,IAAIiC,EAAMgT,EAAa+R,SAAShnB,GAC5ByK,EAAQipB,EAAiBzxB,GAE7B,GAAI+G,MAAMC,QAAQwB,GAIhB,IAAK,IAAIsL,EAAI,EAAGA,EAAItL,EAAMvK,OAAQ6V,IAChClB,EAAM1N,KAAKgsB,GAAclxB,EAAKwI,EAAMsL,GAAIqd,SAG1Cve,EAAM1N,KAAKgsB,GAAclxB,EAAKwI,EAAO2oB,GAEzC,CAEA,OAAIve,EAAM3U,OACD,GAAGgC,OAAO8V,EAAU,KAAK9V,OAAO2S,EAAMzS,KAAK,IAAK,KAEhD,EAEX,EAYI0xB,GAEF,KA+CEpB,GAAiB,CAKnBqB,WAAY,SAASA,EAAW7C,GAC9B,GAAIloB,MAAMC,QAAQioB,GAAM,CACtB,IAAI8C,EAAU,CAAC,EAIf,OAHA9C,EAAIrwB,SAAQ,SAAUozB,GACpBD,EAAQD,EAAWE,KAAM,CAC3B,IACOtzB,OAAOC,KAAKozB,GAAS5xB,KAAK,IACnC,CAAO,MAAqB,WAAjB2e,EAAQmQ,IACjBgD,GAAgBhD,EAAIiD,IAAK,aAAc,CAACjD,IAAM,GACvC,IAAKhvB,OAAOgvB,EAAI6C,WAAY,MAE5B7C,CAEX,EAqBAkD,cAAe,SAASA,EAAclD,EAAKuB,GACzC,GAAIzpB,MAAMC,QAAQioB,GAChB,OAAOA,EAAIlvB,KAAI,SAAUiyB,GACvB,OAAOG,EAAcH,EAAGxB,EAC1B,IAAGrwB,KAAK,KACH,GAAqB,WAAjB2e,EAAQmQ,GAAmB,CAKpC,IAAIlpB,EAAO,YAAY9F,QArkDQH,EAqkDUmvB,EAhkD3CtK,EAAW7lB,KAAKC,UAAUe,MAmkDpBsyB,EAAW,cAAcnyB,OAAO8F,EAAM,KAkB1C,OAZIkpB,aAAepK,EACjBoK,EAAIrwB,SAAQ,SAAUyzB,EAAQC,GAC5BF,GAAY9B,GAAYgC,EAAQ,CAACD,GAAS7B,EAAkBC,IAAgB,GAAOtwB,KAAK,GAC1F,IAEAzB,OAAOC,KAAKswB,GAAKrwB,SAAQ,SAAUoB,GACjCoyB,GAAY9B,GAAYtwB,EAAK,CAACivB,EAAIjvB,IAAOwwB,EAAkBC,IAAgB,GAAOtwB,KAAK,GACzF,IAIFoyB,GAAuBxsB,EAAM,CAD7BqsB,GAAY,MAELrsB,CACT,CACE,OAAOkpB,EA5lDI,IAAoBnvB,CA8lDnC,GAIE0yB,GAAkB,CAAC,EAEnBC,GAEF,GAIEC,IAAc,EAEdH,GAAyB,SAAgCvyB,EAAK2yB,GAChE,IAAIC,EAEJ,IAAIJ,GAAgBxyB,GAApB,CAIA,IAAK0yB,GAAa,CAGhB,GAAwB,qBAAbrjB,SACT,MAAM,IAAI3F,MAAM,kDAKlBgpB,IAAc,EACd3P,EAAK8P,GACP,EAECD,EAAmBH,IAAiBvtB,KAAK3G,MAAMq0B,EAAkBvP,EAAmBsP,IAErFH,GAAgBxyB,IAAO,CAjBvB,CAkBF,EAEIiyB,GAAkB,SAAyBjyB,EAE7C+V,EAEA+c,EAEApC,GAGA,IAAIF,EAEFxyB,UAAUC,OAAS,QAAsB2Q,IAAjB5Q,UAAU,GAAmBA,UAAU,GAAK,GAEtE,IAAIw0B,GAAgBxyB,GAApB,CAIA,IAAIqwB,EAAYC,GAAYva,EAAU+c,EAAatC,EAAkBC,GAAgBC,GACrF6B,GAAuBvyB,EAAKqwB,EAH5B,CAIF,EACIxoB,GAAQ,WACV4qB,GAAkB,GAClBD,GAAkB,CAAC,EACnBE,IAAc,EACdb,GAAW,IACb,EACIkB,GAAqB,SAA4B/yB,UAG5CwyB,GAAgBxyB,EACzB,EAYIgzB,GAAe,WACjBN,IAAc,EACd,IAAIO,EAAMR,GAEV,OADAA,GAAkB,GACXQ,CACT,EAKIJ,GAAkB,WACpB,IAAI7iB,EAAWgjB,KAEXhjB,EAAS/R,OAAS,GAjNH,SAAwB+R,GAG3C,GAAgB,MAAZ6hB,IAMc,OAJhBA,GAAWxiB,SAAS6jB,cAAc,0BAIZ,CAGpB,IAAI7d,EAAOhG,SAASgG,MAAQhG,SAAS8jB,qBAAqB,QAAQ,IAClEtB,GAAWxiB,SAASC,cAAc,UACzBiC,KAAO,WAChBsgB,GAAStiB,aAAa,iBAAkB,IACxC8F,EAAK7F,YAAYqiB,GACnB,CAIF,IAAIliB,EAAQkiB,GAASuB,YAAcvB,GAASliB,MAI5C,GAAIA,EAAMI,WAAY,CACpB,IAAIsjB,EAAW1jB,EAAMK,SAAS/R,OAC9B+R,EAASpR,SAAQ,SAAUwQ,GACzB,IACEO,EAAMI,WAAWX,EAAMikB,GACvBA,GAAY,CACd,CAAE,MAAOvwB,GACT,CACF,GACF,MACE+uB,GAASyB,WAAazB,GAASyB,WAAa,IAAMtjB,EAAS7P,KAAK,GAEpE,CA6KIozB,CAAevjB,EAEnB,EAoBIwjB,GAA0B,SAASA,EAAwBC,EAE7DC,EAEAC,EAEA11B,GAKA,IAAK,IAAIyN,EAAI,EAAGA,EAAI+nB,EAAiBx1B,OAAQyN,GAAK,EAGhD,GAAI+nB,EAAiB/nB,GACnB,GAAI3E,MAAMC,QAAQysB,EAAiB/nB,IAEjCzN,GAAUu1B,EAAwBC,EAAiB/nB,GAAIgoB,EAAeC,EAAgB11B,OACjF,MArBJ,gBAHoD21B,EAwBrBH,EAAiB/nB,KArBxB,UAAWkoB,GAAO,SAAUA,GA0BrD,MAAM,IAAIlqB,MAAM,0FAJhBgqB,EAAcxuB,KAAKuuB,EAAiB/nB,GAAGmoB,OACvCF,EAAezuB,KAAKuuB,EAAiB/nB,GAAGooB,aACxC71B,GAAUw1B,EAAiB/nB,GAAGuR,IAGhC,CA9BuB,IAAgC2W,EAkC3D,OAAO31B,CACT,EAaI81B,GAAwB,SAA+BrD,EAEzD+C,EAEAjD,GAKA,IAUIla,EAVAod,EAAgB,GAChBC,EAAiB,GAGjB11B,EAASu1B,GAAwBC,EAAkBC,EAAeC,EAAgB,GAEtF,OAA6B,IAAzBD,EAAcz1B,OACT,IAMPqY,EAAqC,IAAzBod,EAAcz1B,OAAe,IAAIgC,OAAOyzB,EAAc,IAAM,IAAIzzB,OAAO0kB,EAAW+O,EAAcvzB,SAASF,QAAQhC,EAAS,IAAIqC,SAAS,KAKrJ2xB,GAAgB3b,EAAW,IAAIrW,OAAOqW,GAAYqd,EAAgBjD,EAAcF,GACzEla,EACT,EAaI0d,GAAmB,SAA0B5Y,EAE/Cpb,GAGA,MAAO,GAAGC,OAAOD,EAAK,KAAKC,OAAO0kB,EAAWvJ,GAC/C,EAUI6Y,GAF6CtP,EAG7C1W,GAAa,CACfuN,OAAQ,SAAgB0Y,GAQtB,IAHA,IAAIC,EAAwB,CAAC,EACzBx1B,EAAOD,OAAOC,KAAKu1B,GAEdxoB,EAAI,EAAGA,EAAI/M,EAAKV,OAAQyN,GAAK,EAAG,CACvC,IAAI1L,EAAMrB,EAAK+M,GACXujB,EAAMiF,EAAgBl0B,GACtBo0B,EAAYt1B,KAAKC,UAAUkwB,GAC/BkF,EAAsBn0B,GAAO,CAC3Bid,KAAMmX,EAAUn2B,OAChB41B,MAAOI,GAAOG,EAAWp0B,GACzB8zB,YAAa7E,EAEjB,CAEA,OAAOkF,CACT,EACAE,UAAW,YAGPr2B,UAAUC,OAAS,QAAsB2Q,IAAjB5Q,UAAU,GAAmBA,UAAU,GAAK,IAzI7DY,SAAQ,SAAU0X,GAC3Bkc,GAAgBlc,IAAa,CAC/B,GAyIA,GAaEge,GAAqC,qBAAX3zB,OAAyB,KAAO,CAC5D4zB,aAAc,SAAsBC,GAOlC,OAJA3sB,KA7LiB,WACnB,GAAI6qB,GACF,MAAM,IAAIhpB,MAAM,yCAGlBgpB,IAAc,CAChB,CAwLI+B,GAGO,CACLC,KAHSF,IAITjY,IAAK,CACHoY,QApLC3B,KAAe7yB,KAAK,IAqLrBy0B,mBAzKCl2B,OAAOC,KAAK6zB,KA4KnB,GA2GF7T,EAAQkW,YA7DR,SAASA,EAAYnE,GAGnB,IAAIF,EAEFxyB,UAAUC,OAAS,QAAsB2Q,IAAjB5Q,UAAU,GAAmBA,UAAU,GAAKkyB,GACtE,MAAO,CACLjiB,WAAY+U,EAAc,CAAC,EAAG/U,GAAY,CAiBxC6mB,OAAQ,SAAgBC,GAGtB,IAAIC,EAA4BD,EAC/Bh1B,KAAI,SAAUk1B,GACb,OAAOA,EAAUC,eACnB,IACCz1B,QAAO,SAAUqxB,GAChB,OAAOA,CACT,IACA,OAAO+D,EAAYnE,EAAcF,EAAiBvwB,OAAO+0B,GAC3D,IAEFV,iBAAkBA,GAClBa,oBA5E8D,KA6E9DC,OAAQ,SAAgBC,GAGtBpB,GAASoB,EAAe1Q,EAAaqP,EACvC,EACAzX,IAAK,WAGH,IAAK,IAAIU,EAAOjf,UAAUC,OAAQw1B,EAAmB,IAAI1sB,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC3FiZ,EAAiBjZ,GAAQxc,UAAUwc,GAGrC,OAAOuZ,GAAsBrD,EAAc+C,EAAkBjD,EAC/D,EACAqC,gBAAiBA,GACjBkB,sBAAuBA,GACvB7D,wBAAyBA,GACzBroB,MAAOA,GACPkrB,mBAAoBA,GAExB,oCCjrEA,IAAIuC,EAAY,EAAQ,OACxB,EAAQ,OACR,EAAQ,OAGR,IAEIC,EAAYD,EAAUT,aAFP,GAGf5mB,EAAasnB,EAAUtnB,WACvBqmB,EAAmBiB,EAAUjB,iBAC7Ba,EAAsBI,EAAUJ,oBAChC5Y,EAAMgZ,EAAUhZ,IAChB6Y,EAASG,EAAUH,OACnBvC,EAAkB0C,EAAU1C,gBAC5BkB,EAAwBwB,EAAUxB,sBAClC7D,EAA0BqF,EAAUrF,wBACpCroB,EAAQ0tB,EAAU1tB,MAClBkrB,EAAqBwC,EAAUxC,mBAEnCpU,EAAQ1Q,WAAaA,EAGrB0Q,EAAQpC,IAAMA,yBC1BdmG,EAAO/D,QAAU,EAAjB,yCCGA,IAAI6W,EAAU,EAAQ,OAElBC,EAAY,GAGZC,EAAgB,GAChBC,EAAoBH,EAAQI,0BAEhC,WACI,GAAIF,EAAcz3B,OACd,MAAMy3B,EAAcxuB,OAE5B,IAWA,SAAS6b,EAAK8S,GACV,IAAIC,GAEAA,EADAL,EAAUx3B,OACAw3B,EAAUrqB,MAEV,IAAI2qB,GAEVF,KAAOA,EACfL,EAAQM,EACZ,CAIA,SAASC,IACLh1B,KAAK80B,KAAO,IAChB,CAhBAnT,EAAO/D,QAAUoE,EAoBjBgT,EAAQ11B,UAAUE,KAAO,WACrB,IACIQ,KAAK80B,KAAKt1B,MACd,CAAE,MAAOpB,GACD4jB,EAAKvV,QAILuV,EAAKvV,QAAQrO,IAKbu2B,EAAcxwB,KAAK/F,GACnBw2B,IAER,CAAE,QACE50B,KAAK80B,KAAO,KACZJ,EAAUA,EAAUx3B,QAAU8C,IAClC,CACJ,sCCpDA,SAASy0B,EAAQK,GACRzuB,EAAMnJ,SACP+3B,KACW,GAGf5uB,EAAMA,EAAMnJ,QAAU43B,CAC1B,CARAnT,EAAO/D,QAAU6W,EAUjB,IAOIQ,EAPA5uB,EAAQ,GAWRuJ,EAAQ,EAYZ,SAASV,IACL,KAAOU,EAAQvJ,EAAMnJ,QAAQ,CACzB,IAAIg4B,EAAetlB,EAUnB,GAPAA,GAAgB,EAChBvJ,EAAM6uB,GAAc11B,OAMhBoQ,EApBG,KAoBe,CAGlB,IAAK,IAAIulB,EAAO,EAAGC,EAAY/uB,EAAMnJ,OAAS0S,EAAOulB,EAAOC,EAAWD,IACnE9uB,EAAM8uB,GAAQ9uB,EAAM8uB,EAAOvlB,GAE/BvJ,EAAMnJ,QAAU0S,EAChBA,EAAQ,CACZ,CACJ,CACAvJ,EAAMnJ,OAAS,EACf0S,EAAQ,GACG,CACf,CAYA,IA0DQylB,EACAC,EACAjlB,EA5DJklB,EAA0B,qBAAX,EAAA51B,EAAyB,EAAAA,EAASE,KACjD21B,EAA0BD,EAAME,kBAAoBF,EAAMG,uBA2G9D,SAASb,EAAyBrjB,GAC9B,OAAO,WAKH,IAAImkB,EAAgB7zB,WAAW8zB,EAAa,GAIxCC,EAAiBC,YAAYF,EAAa,IAE9C,SAASA,IAGLG,aAAaJ,GACbK,cAAcH,GACdrkB,GACJ,CACJ,CACJ,CAlHuC,oBAA5BgkB,GA4CHH,EAAS,EACTC,EAAW,IAAIE,EA5CgCtmB,GA6C/CmB,EAAO/B,SAASI,eAAe,IACnC4mB,EAASW,QAAQ5lB,EAAM,CAAC6lB,eAAe,IA9CvCjB,EA+CO,WACHI,GAAUA,EACVhlB,EAAKtQ,KAAOs1B,CAChB,GApBAJ,EAAeJ,EAAyB3lB,GAQ5CulB,EAAQQ,aAAeA,EAgFvBR,EAAQI,yBAA2BA,kCCrNnClT,EAAO/D,QAEP,SAAgB9Q,EAAQqD,GACtB,IAEIP,EAFAnI,EAAQxJ,OAAO6O,GACfsE,EAAQ,EAGZ,GAAyB,kBAAdjB,EACT,MAAM,IAAIxH,MAAM,sBAGlBiH,EAAQnI,EAAMqD,QAAQqF,GAEtB,MAAkB,IAAXP,GACLwB,IACAxB,EAAQnI,EAAMqD,QAAQqF,EAAWP,EAAQO,EAAUjT,QAGrD,OAAOkU,CACT,sCCrBA,SAASlQ,EAAEa,GAAG,IAAImJ,EAAEirB,EAAE/qB,EAAE,GAAG,GAAG,iBAAiBrJ,GAAG,iBAAiBA,EAAEqJ,GAAGrJ,OAAO,GAAG,iBAAiBA,EAAE,GAAGiE,MAAMC,QAAQlE,GAAG,IAAImJ,EAAE,EAAEA,EAAEnJ,EAAE7E,OAAOgO,IAAInJ,EAAEmJ,KAAKirB,EAAEj1B,EAAEa,EAAEmJ,OAAOE,IAAIA,GAAG,KAAKA,GAAG+qB,QAAQ,IAAIjrB,KAAKnJ,EAAEA,EAAEmJ,KAAKE,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,CAAQ,SAASgrB,IAAO,IAAI,IAAIr0B,EAAEmJ,EAAEirB,EAAE,EAAE/qB,EAAE,GAAG+qB,EAAEl5B,UAAUC,SAAS6E,EAAE9E,UAAUk5B,QAAQjrB,EAAEhK,EAAEa,MAAMqJ,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,2CAAC,mDCE9VrL,EAAO,EAAQ,OAGfixB,EAAU,CAAC,EACXqF,EAAU,CAAC,EAGf,SAASC,EAAgBC,GACvBvF,EAAQuF,EAAQvxB,KAAK6T,eAAiB0d,EAAQC,KAC9CH,EAAQE,EAAQC,KAAK3d,eAAiB0d,EAAQvxB,IAChD,CALAjF,EAAKlC,QAAQy4B,GA8Cb1Y,EAAQ,GAAU,WAChB,OAAO7d,CACT,qBCvDoE4hB,EAAO/D,QAAkI,WAAY,aAAa,IAAI1S,EAAE,IAAInJ,EAAE,IAAIqJ,EAAE,KAAKlK,EAAE,cAAcyJ,EAAE,SAASQ,EAAE,SAASsrB,EAAE,OAAOp5B,EAAE,MAAMiiB,EAAE,OAAOoX,EAAE,QAAQP,EAAE,UAAU7b,EAAE,OAAOqc,EAAE,OAAOC,EAAE,eAAeC,EAAE,6FAA6F5jB,EAAE,sFAAsF6jB,EAAE,CAAC9xB,KAAK,KAAK+xB,SAAS,2DAA2Dt4B,MAAM,KAAKu4B,OAAO,wFAAwFv4B,MAAM,KAAKw4B,QAAQ,SAAS/rB,GAAG,IAAInJ,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMqJ,EAAEF,EAAE,IAAI,MAAM,IAAIA,GAAGnJ,GAAGqJ,EAAE,IAAI,KAAKrJ,EAAEqJ,IAAIrJ,EAAE,IAAI,GAAG,GAAG+sB,EAAE,SAAS5jB,EAAEnJ,EAAEqJ,GAAG,IAAIlK,EAAEjD,OAAOiN,GAAG,OAAOhK,GAAGA,EAAEhE,QAAQ6E,EAAEmJ,EAAE,GAAGlF,MAAMjE,EAAE,EAAEb,EAAEhE,QAAQkC,KAAKgM,GAAGF,CAAC,EAAE+lB,EAAE,CAAC9lB,EAAE2jB,EAAE5b,EAAE,SAAShI,GAAG,IAAInJ,GAAGmJ,EAAEgsB,YAAY9rB,EAAEzG,KAAK0K,IAAItN,GAAGb,EAAEyD,KAAK+C,MAAM0D,EAAE,IAAIT,EAAES,EAAE,GAAG,OAAOrJ,GAAG,EAAE,IAAI,KAAK+sB,EAAE5tB,EAAE,EAAE,KAAK,IAAI4tB,EAAEnkB,EAAE,EAAE,IAAI,EAAEmkB,EAAE,SAAS5jB,EAAEnJ,EAAEqJ,GAAG,GAAGrJ,EAAEo1B,OAAO/rB,EAAE+rB,OAAO,OAAOjsB,EAAEE,EAAErJ,GAAG,IAAIb,EAAE,IAAIkK,EAAEgsB,OAAOr1B,EAAEq1B,SAAShsB,EAAEisB,QAAQt1B,EAAEs1B,SAAS1sB,EAAE5I,EAAEu1B,QAAQC,IAAIr2B,EAAEw1B,GAAGvrB,EAAEC,EAAET,EAAE,EAAE8rB,EAAE10B,EAAEu1B,QAAQC,IAAIr2B,GAAGiK,GAAG,EAAE,GAAGurB,GAAG,UAAUx1B,GAAGkK,EAAET,IAAIQ,EAAER,EAAE8rB,EAAEA,EAAE9rB,KAAK,EAAE,EAAEtN,EAAE,SAAS6N,GAAG,OAAOA,EAAE,EAAEvG,KAAK6yB,KAAKtsB,IAAI,EAAEvG,KAAK+C,MAAMwD,EAAE,EAAEG,EAAE,SAASH,GAAG,MAAM,CAAC4rB,EAAEJ,EAAEzjB,EAAEqH,EAAEuU,EAAEvP,EAAEqX,EAAEt5B,EAAEo6B,EAAEd,EAAErc,EAAEmc,EAAE3H,EAAE3jB,EAAEA,EAAER,EAAEikB,GAAG1tB,EAAEw2B,EAAEvB,GAAGjrB,IAAIjN,OAAOiN,GAAG,IAAI2N,cAAchX,QAAQ,KAAK,GAAG,EAAE40B,EAAE,SAASvrB,GAAG,YAAO,IAASA,CAAC,GAAGvL,EAAE,KAAK83B,EAAE,CAAC,EAAEA,EAAE93B,GAAGm3B,EAAE,IAAIzrB,EAAE,iBAAiBssB,EAAE,SAASzsB,GAAG,OAAOA,aAAa0sB,MAAM1sB,IAAIA,EAAEG,GAAG,EAAEwjB,EAAE,SAAS3jB,EAAEnJ,EAAEqJ,EAAElK,GAAG,IAAIyJ,EAAE,IAAI5I,EAAE,OAAOpC,EAAE,GAAG,iBAAiBoC,EAAE,CAAC,IAAIoJ,EAAEpJ,EAAE8W,cAAc4e,EAAEtsB,KAAKR,EAAEQ,GAAGC,IAAIqsB,EAAEtsB,GAAGC,EAAET,EAAEQ,GAAG,IAAIsrB,EAAE10B,EAAEtD,MAAM,KAAK,IAAIkM,GAAG8rB,EAAEv5B,OAAO,EAAE,OAAOgO,EAAEurB,EAAE,GAAG,KAAK,CAAC,IAAIp5B,EAAE0E,EAAEiD,KAAKyyB,EAAEp6B,GAAG0E,EAAE4I,EAAEtN,CAAC,CAAC,OAAO6D,GAAGyJ,IAAIhL,EAAEgL,GAAGA,IAAIzJ,GAAGvB,CAAC,EAAEk4B,EAAE,SAAS3sB,EAAEnJ,GAAG,GAAG41B,EAAEzsB,GAAG,OAAOA,EAAEosB,QAAQ,IAAIlsB,EAAE,iBAAiBrJ,EAAEA,EAAE,CAAC,EAAE,OAAOqJ,EAAE+rB,KAAKjsB,EAAEE,EAAE7N,KAAKN,UAAU,IAAI26B,EAAExsB,EAAE,EAAE9N,EAAE2zB,EAAE3zB,EAAEs5B,EAAE/H,EAAEvxB,EAAEqN,EAAEgtB,EAAEr6B,EAAEuxB,EAAE,SAAS3jB,EAAEnJ,GAAG,OAAO81B,EAAE3sB,EAAE,CAAC4sB,OAAO/1B,EAAEg2B,GAAGC,IAAIj2B,EAAEk2B,GAAGjlB,EAAEjR,EAAEm2B,GAAGC,QAAQp2B,EAAEo2B,SAAS,EAAE,IAAIP,EAAE,WAAW,SAASd,EAAE5rB,GAAGlL,KAAK+3B,GAAGlJ,EAAE3jB,EAAE4sB,OAAO,MAAK,GAAI93B,KAAK4R,MAAM1G,GAAGlL,KAAKk4B,GAAGl4B,KAAKk4B,IAAIhtB,EAAE8H,GAAG,CAAC,EAAEhT,KAAKqL,IAAG,CAAE,CAAC,IAAIyjB,EAAEgI,EAAEx3B,UAAU,OAAOwvB,EAAEld,MAAM,SAAS1G,GAAGlL,KAAKo4B,GAAG,SAASltB,GAAG,IAAInJ,EAAEmJ,EAAEisB,KAAK/rB,EAAEF,EAAE8sB,IAAI,GAAG,OAAOj2B,EAAE,OAAO,IAAI8C,KAAKwzB,KAAK,GAAG/6B,EAAEm5B,EAAE10B,GAAG,OAAO,IAAI8C,KAAK,GAAG9C,aAAa8C,KAAK,OAAO,IAAIA,KAAK9C,GAAG,GAAG,iBAAiBA,IAAI,MAAM+G,KAAK/G,GAAG,CAAC,IAAIb,EAAEa,EAAEgX,MAAM8d,GAAG,GAAG31B,EAAE,CAAC,IAAIyJ,EAAEzJ,EAAE,GAAG,GAAG,EAAEiK,GAAGjK,EAAE,IAAI,KAAKqiB,UAAU,EAAE,GAAG,OAAOnY,EAAE,IAAIvG,KAAKA,KAAKyzB,IAAIp3B,EAAE,GAAGyJ,EAAEzJ,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEiK,IAAI,IAAItG,KAAK3D,EAAE,GAAGyJ,EAAEzJ,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEiK,EAAE,CAAC,CAAC,OAAO,IAAItG,KAAK9C,EAAE,CAA3X,CAA6XmJ,GAAGlL,KAAKoM,MAAM,EAAE0iB,EAAE1iB,KAAK,WAAW,IAAIlB,EAAElL,KAAKo4B,GAAGp4B,KAAKu4B,GAAGrtB,EAAEstB,cAAcx4B,KAAKy4B,GAAGvtB,EAAEwtB,WAAW14B,KAAK24B,GAAGztB,EAAE0tB,UAAU54B,KAAK64B,GAAG3tB,EAAE4tB,SAAS94B,KAAK+4B,GAAG7tB,EAAE8tB,WAAWh5B,KAAKi5B,GAAG/tB,EAAEguB,aAAal5B,KAAKm5B,GAAGjuB,EAAEkuB,aAAap5B,KAAKq5B,IAAInuB,EAAEouB,iBAAiB,EAAExK,EAAEyK,OAAO,WAAW,OAAOj8B,CAAC,EAAEwxB,EAAE0K,QAAQ,WAAW,QAAQx5B,KAAKo4B,GAAG74B,aAAaq3B,EAAE,EAAE9H,EAAE2K,OAAO,SAASvuB,EAAEnJ,GAAG,IAAIqJ,EAAEysB,EAAE3sB,GAAG,OAAOlL,KAAK05B,QAAQ33B,IAAIqJ,GAAGA,GAAGpL,KAAK25B,MAAM53B,EAAE,EAAE+sB,EAAE8K,QAAQ,SAAS1uB,EAAEnJ,GAAG,OAAO81B,EAAE3sB,GAAGlL,KAAK05B,QAAQ33B,EAAE,EAAE+sB,EAAE+K,SAAS,SAAS3uB,EAAEnJ,GAAG,OAAO/B,KAAK25B,MAAM53B,GAAG81B,EAAE3sB,EAAE,EAAE4jB,EAAEgL,GAAG,SAAS5uB,EAAEnJ,EAAEqJ,GAAG,OAAO9N,EAAEm5B,EAAEvrB,GAAGlL,KAAK+B,GAAG/B,KAAK4T,IAAIxI,EAAEF,EAAE,EAAE4jB,EAAEiL,KAAK,WAAW,OAAOp1B,KAAK+C,MAAM1H,KAAKg6B,UAAU,IAAI,EAAElL,EAAEkL,QAAQ,WAAW,OAAOh6B,KAAKo4B,GAAGtzB,SAAS,EAAEgqB,EAAE4K,QAAQ,SAASxuB,EAAEnJ,GAAG,IAAIqJ,EAAEpL,KAAKkB,IAAI5D,EAAEm5B,EAAE10B,IAAIA,EAAEo0B,EAAE74B,EAAE+N,EAAEH,GAAG0rB,EAAE,SAAS1rB,EAAEnJ,GAAG,IAAI4I,EAAErN,EAAEuxB,EAAEzjB,EAAE6sB,GAAGpzB,KAAKyzB,IAAIltB,EAAEmtB,GAAGx2B,EAAEmJ,GAAG,IAAIrG,KAAKuG,EAAEmtB,GAAGx2B,EAAEmJ,GAAGE,GAAG,OAAOlK,EAAEyJ,EAAEA,EAAEgvB,MAAMt8B,EAAE,EAAEw5B,EAAE,SAAS3rB,EAAEnJ,GAAG,OAAOzE,EAAEuxB,EAAEzjB,EAAE6uB,SAAS/uB,GAAG1N,MAAM4N,EAAE6uB,OAAO,MAAM/4B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM6O,MAAMhO,IAAIqJ,EAAE,EAAE6H,EAAEjT,KAAK64B,GAAG/B,EAAE92B,KAAKy4B,GAAG3J,EAAE9uB,KAAK24B,GAAG1H,EAAE,OAAOjxB,KAAKi4B,GAAG,MAAM,IAAI,OAAO9B,GAAG,KAAK7b,EAAE,OAAOpZ,EAAE01B,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAKF,EAAE,OAAOx1B,EAAE01B,EAAE,EAAEE,GAAGF,EAAE,EAAEE,EAAE,GAAG,KAAKxX,EAAE,IAAI3f,EAAEK,KAAKk6B,UAAUC,WAAW,EAAE1C,GAAGxkB,EAAEtT,EAAEsT,EAAE,EAAEA,GAAGtT,EAAE,OAAOi3B,EAAE11B,EAAE4tB,EAAE2I,EAAE3I,GAAG,EAAE2I,GAAGX,GAAG,KAAKz5B,EAAE,KAAKs5B,EAAE,OAAOE,EAAE5F,EAAE,QAAQ,GAAG,KAAKwF,EAAE,OAAOI,EAAE5F,EAAE,UAAU,GAAG,KAAK9lB,EAAE,OAAO0rB,EAAE5F,EAAE,UAAU,GAAG,KAAKtmB,EAAE,OAAOksB,EAAE5F,EAAE,eAAe,GAAG,QAAQ,OAAOjxB,KAAKs3B,QAAQ,EAAExI,EAAE6K,MAAM,SAASzuB,GAAG,OAAOlL,KAAK05B,QAAQxuB,GAAE,EAAG,EAAE4jB,EAAEsL,KAAK,SAASlvB,EAAEnJ,GAAG,IAAIqJ,EAAEkU,EAAEhiB,EAAE+N,EAAEH,GAAGirB,EAAE,OAAOn2B,KAAKi4B,GAAG,MAAM,IAAIrB,GAAGxrB,EAAE,CAAC,EAAEA,EAAE/N,GAAG84B,EAAE,OAAO/qB,EAAEurB,GAAGR,EAAE,OAAO/qB,EAAEsrB,GAAGP,EAAE,QAAQ/qB,EAAEkP,GAAG6b,EAAE,WAAW/qB,EAAEqrB,GAAGN,EAAE,QAAQ/qB,EAAED,GAAGgrB,EAAE,UAAU/qB,EAAET,GAAGwrB,EAAE,UAAU/qB,EAAElK,GAAGi1B,EAAE,eAAe/qB,GAAGkU,GAAGuX,EAAEvX,IAAIjiB,EAAE2C,KAAK24B,IAAI52B,EAAE/B,KAAK64B,IAAI92B,EAAE,GAAGud,IAAIoX,GAAGpX,IAAIhF,EAAE,CAAC,IAAIrH,EAAEjT,KAAKs3B,QAAQ1jB,IAAI+iB,EAAE,GAAG1jB,EAAEmlB,GAAGxB,GAAGC,GAAG5jB,EAAE7G,OAAOpM,KAAKo4B,GAAGnlB,EAAEW,IAAI+iB,EAAEhyB,KAAK01B,IAAIr6B,KAAK24B,GAAG1lB,EAAEqnB,gBAAgBlC,EAAE,MAAMxB,GAAG52B,KAAKo4B,GAAGxB,GAAGC,GAAG,OAAO72B,KAAKoM,OAAOpM,IAAI,EAAE8uB,EAAElb,IAAI,SAAS1I,EAAEnJ,GAAG,OAAO/B,KAAKs3B,QAAQ8C,KAAKlvB,EAAEnJ,EAAE,EAAE+sB,EAAEnb,IAAI,SAASzI,GAAG,OAAOlL,KAAK1C,EAAE+N,EAAEH,KAAK,EAAE4jB,EAAEyI,IAAI,SAASr2B,EAAEi1B,GAAG,IAAIQ,EAAEC,EAAE52B,KAAKkB,EAAEq5B,OAAOr5B,GAAG,IAAI21B,EAAEv5B,EAAE+N,EAAE8qB,GAAGljB,EAAE,SAAS/H,GAAG,IAAInJ,EAAE81B,EAAEjB,GAAG,OAAOt5B,EAAEuxB,EAAE9sB,EAAEo1B,KAAKp1B,EAAEo1B,OAAOxyB,KAAKC,MAAMsG,EAAEhK,IAAI01B,EAAE,EAAE,GAAGC,IAAIH,EAAE,OAAO12B,KAAK4T,IAAI8iB,EAAE12B,KAAKy4B,GAAGv3B,GAAG,GAAG21B,IAAIvc,EAAE,OAAOta,KAAK4T,IAAI0G,EAAEta,KAAKu4B,GAAGr3B,GAAG,GAAG21B,IAAIx5B,EAAE,OAAO4V,EAAE,GAAG,GAAG4jB,IAAIvX,EAAE,OAAOrM,EAAE,GAAG,IAAI6jB,GAAGH,EAAE,CAAC,EAAEA,EAAExrB,GAAGpJ,EAAE40B,EAAEF,GAAGrrB,EAAEurB,EAAEhsB,GAAGO,EAAEyrB,GAAGE,IAAI,EAAE/H,EAAE9uB,KAAKo4B,GAAGtzB,UAAU5D,EAAE41B,EAAE,OAAOx5B,EAAEuxB,EAAEC,EAAE9uB,KAAK,EAAE8uB,EAAE0L,SAAS,SAAStvB,EAAEnJ,GAAG,OAAO/B,KAAKu3B,KAAK,EAAErsB,EAAEnJ,EAAE,EAAE+sB,EAAE2L,OAAO,SAASvvB,GAAG,IAAInJ,EAAE/B,KAAKoL,EAAEpL,KAAKk6B,UAAU,IAAIl6B,KAAKw5B,UAAU,OAAOpuB,EAAEsvB,aAAa9D,EAAE,IAAI11B,EAAEgK,GAAG,uBAAuBP,EAAErN,EAAE4V,EAAElT,MAAMmL,EAAEnL,KAAK+4B,GAAGtC,EAAEz2B,KAAKi5B,GAAG57B,EAAE2C,KAAKy4B,GAAGnZ,EAAElU,EAAE2rB,SAASL,EAAEtrB,EAAE4rB,OAAOb,EAAE/qB,EAAEuvB,SAASrgB,EAAE,SAASpP,EAAEE,EAAET,EAAEQ,GAAG,OAAOD,IAAIA,EAAEE,IAAIF,EAAEnJ,EAAEb,KAAKyJ,EAAES,GAAG2E,MAAM,EAAE5E,EAAE,EAAEwrB,EAAE,SAASzrB,GAAG,OAAO5N,EAAE6N,EAAEA,EAAE,IAAI,GAAGD,EAAE,IAAI,EAAE2rB,EAAEV,GAAG,SAASjrB,EAAEnJ,EAAEqJ,GAAG,IAAIlK,EAAEgK,EAAE,GAAG,KAAK,KAAK,OAAOE,EAAElK,EAAE2X,cAAc3X,CAAC,EAAE,OAAOA,EAAEW,QAAQoR,GAAE,SAAU/H,EAAEhK,GAAG,OAAOA,GAAG,SAASgK,GAAG,OAAOA,GAAG,IAAI,KAAK,OAAOjN,OAAO8D,EAAEw2B,IAAIxoB,OAAO,GAAG,IAAI,OAAO,OAAOzS,EAAE6N,EAAEpJ,EAAEw2B,GAAG,EAAE,KAAK,IAAI,IAAI,OAAOl7B,EAAE,EAAE,IAAI,KAAK,OAAOC,EAAE6N,EAAE9N,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,OAAOid,EAAElP,EAAEwvB,YAAYv9B,EAAEq5B,EAAE,GAAG,IAAI,OAAO,OAAOpc,EAAEoc,EAAEr5B,GAAG,IAAI,IAAI,OAAO0E,EAAE42B,GAAG,IAAI,KAAK,OAAOr7B,EAAE6N,EAAEpJ,EAAE42B,GAAG,EAAE,KAAK,IAAI,IAAI,OAAO16B,OAAO8D,EAAE82B,IAAI,IAAI,KAAK,OAAOve,EAAElP,EAAEyvB,YAAY94B,EAAE82B,GAAGvZ,EAAE,GAAG,IAAI,MAAM,OAAOhF,EAAElP,EAAE0vB,cAAc/4B,EAAE82B,GAAGvZ,EAAE,GAAG,IAAI,OAAO,OAAOA,EAAEvd,EAAE82B,IAAI,IAAI,IAAI,OAAO56B,OAAOkN,GAAG,IAAI,KAAK,OAAO7N,EAAE6N,EAAEA,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOwrB,EAAE,GAAG,IAAI,KAAK,OAAOA,EAAE,GAAG,IAAI,IAAI,OAAOE,EAAE1rB,EAAEsrB,GAAE,GAAI,IAAI,IAAI,OAAOI,EAAE1rB,EAAEsrB,GAAE,GAAI,IAAI,IAAI,OAAOx4B,OAAOw4B,GAAG,IAAI,KAAK,OAAOn5B,EAAE6N,EAAEsrB,EAAE,EAAE,KAAK,IAAI,IAAI,OAAOx4B,OAAO8D,EAAEo3B,IAAI,IAAI,KAAK,OAAO77B,EAAE6N,EAAEpJ,EAAEo3B,GAAG,EAAE,KAAK,IAAI,MAAM,OAAO77B,EAAE6N,EAAEpJ,EAAEs3B,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO1uB,EAAE,OAAO,IAAI,CAAptB,CAAstBO,IAAIP,EAAE9I,QAAQ,IAAI,GAAI,GAAE,EAAEitB,EAAEoI,UAAU,WAAW,OAAO,IAAIvyB,KAAKC,MAAM5E,KAAKo4B,GAAG2C,oBAAoB,GAAG,EAAEjM,EAAEkM,KAAK,SAAS95B,EAAEy1B,EAAEC,GAAG,IAAIC,EAAE5jB,EAAEjT,KAAK82B,EAAEx5B,EAAE+N,EAAEsrB,GAAG7H,EAAE+I,EAAE32B,GAAG+vB,GAAGnC,EAAEoI,YAAYl3B,KAAKk3B,aAAan1B,EAAEpC,EAAEK,KAAK8uB,EAAE2I,EAAE,WAAW,OAAOn6B,EAAEwxB,EAAE7b,EAAE6b,EAAE,EAAE,OAAOgI,GAAG,KAAKxc,EAAEuc,EAAEY,IAAI,GAAG,MAAM,KAAKf,EAAEG,EAAEY,IAAI,MAAM,KAAKtB,EAAEU,EAAEY,IAAI,EAAE,MAAM,KAAKnY,EAAEuX,GAAGl3B,EAAEsxB,GAAG,OAAO,MAAM,KAAK5zB,EAAEw5B,GAAGl3B,EAAEsxB,GAAG,MAAM,MAAM,KAAKwF,EAAEI,EAAEl3B,EAAEyL,EAAE,MAAM,KAAKD,EAAE0rB,EAAEl3B,EAAEoC,EAAE,MAAM,KAAK4I,EAAEksB,EAAEl3B,EAAEuL,EAAE,MAAM,QAAQ2rB,EAAEl3B,EAAE,OAAOi3B,EAAEC,EAAEv5B,EAAED,EAAEw5B,EAAE,EAAE/H,EAAEwL,YAAY,WAAW,OAAOt6B,KAAK25B,MAAMjD,GAAGiC,EAAE,EAAE7J,EAAEoL,QAAQ,WAAW,OAAOzC,EAAEz3B,KAAK+3B,GAAG,EAAEjJ,EAAEgJ,OAAO,SAAS5sB,EAAEnJ,GAAG,IAAImJ,EAAE,OAAOlL,KAAK+3B,GAAG,IAAI3sB,EAAEpL,KAAKs3B,QAAQp2B,EAAE2tB,EAAE3jB,EAAEnJ,GAAE,GAAI,OAAOb,IAAIkK,EAAE2sB,GAAG72B,GAAGkK,CAAC,EAAE0jB,EAAEwI,MAAM,WAAW,OAAOh6B,EAAEuxB,EAAE7uB,KAAKo4B,GAAGp4B,KAAK,EAAE8uB,EAAEmL,OAAO,WAAW,OAAO,IAAIp1B,KAAK7E,KAAKg6B,UAAU,EAAElL,EAAE5uB,OAAO,WAAW,OAAOF,KAAKw5B,UAAUx5B,KAAKi7B,cAAc,IAAI,EAAEnM,EAAEmM,YAAY,WAAW,OAAOj7B,KAAKo4B,GAAG6C,aAAa,EAAEnM,EAAEvvB,SAAS,WAAW,OAAOS,KAAKo4B,GAAG8C,aAAa,EAAEpE,CAAC,CAA/sJ,GAAmtJh5B,EAAE85B,EAAEt4B,UAAU,OAAOu4B,EAAEv4B,UAAUxB,EAAE,CAAC,CAAC,MAAMoD,GAAG,CAAC,KAAKyJ,GAAG,CAAC,KAAKQ,GAAG,CAAC,KAAKsrB,GAAG,CAAC,KAAKp5B,GAAG,CAAC,KAAKq5B,GAAG,CAAC,KAAKpc,GAAG,CAAC,KAAKqc,IAAI94B,SAAQ,SAAUqN,GAAGpN,EAAEoN,EAAE,IAAI,SAASnJ,GAAG,OAAO/B,KAAK85B,GAAG/3B,EAAEmJ,EAAE,GAAGA,EAAE,GAAG,CAAE,IAAG2sB,EAAE9D,OAAO,SAAS7oB,EAAEnJ,GAAG,OAAOmJ,EAAEiwB,KAAKjwB,EAAEnJ,EAAE61B,EAAEC,GAAG3sB,EAAEiwB,IAAG,GAAItD,CAAC,EAAEA,EAAEC,OAAOjJ,EAAEgJ,EAAEuD,QAAQzD,EAAEE,EAAEkC,KAAK,SAAS7uB,GAAG,OAAO2sB,EAAE,IAAI3sB,EAAE,EAAE2sB,EAAEwD,GAAG5D,EAAE93B,GAAGk4B,EAAEyD,GAAG7D,EAAEI,EAAExsB,EAAE,CAAC,EAAEwsB,CAAE,CAAl6N91B,sBCAf4f,EAAO/D,QAAkJ,WAAY,aAAa,IAAI1S,EAAE,CAACksB,KAAK,EAAEC,MAAM,EAAEkE,IAAI,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,GAAG35B,EAAE,CAAC,EAAE,OAAO,SAASqJ,EAAET,EAAE2U,GAAG,IAAIpe,EAAE7D,EAAE,SAAS6N,EAAEE,EAAET,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAI2U,EAAE,IAAIza,KAAKqG,GAAGhK,EAAE,SAASgK,EAAEE,QAAG,IAASA,IAAIA,EAAE,CAAC,GAAG,IAAIT,EAAES,EAAEuwB,cAAc,QAAQrc,EAAEpU,EAAE,IAAIP,EAAEzJ,EAAEa,EAAEud,GAAG,OAAOpe,IAAIA,EAAE,IAAI06B,KAAKC,eAAe,QAAQ,CAACC,QAAO,EAAGC,SAAS7wB,EAAEksB,KAAK,UAAUC,MAAM,UAAUkE,IAAI,UAAUC,KAAK,UAAUC,OAAO,UAAUC,OAAO,UAAUC,aAAahxB,IAAI5I,EAAEud,GAAGpe,GAAGA,CAAC,CAA3Q,CAA6QkK,EAAET,GAAG,OAAOzJ,EAAE86B,cAAc1c,EAAE,EAAEmX,EAAE,SAAS10B,EAAEqJ,GAAG,IAAI,IAAIT,EAAEtN,EAAE0E,EAAEqJ,GAAGlK,EAAE,GAAGu1B,EAAE,EAAEA,EAAE9rB,EAAEzN,OAAOu5B,GAAG,EAAE,CAAC,IAAIN,EAAExrB,EAAE8rB,GAAGtrB,EAAEgrB,EAAE3lB,KAAKse,EAAEqH,EAAE1uB,MAAMivB,EAAExrB,EAAEC,GAAGurB,GAAG,IAAIx1B,EAAEw1B,GAAGuF,SAASnN,EAAE,IAAI,CAAC,IAAI6H,EAAEz1B,EAAE,GAAG01B,EAAE,KAAKD,EAAE,EAAEA,EAAErc,EAAEpZ,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAI01B,EAAE,IAAI11B,EAAE,GAAG,IAAIA,EAAE,GAAG,OAAO+vB,GAAGlvB,EAAE,OAAOud,EAAE0Y,IAAI1d,GAAG0f,WAAW/I,GAAGA,EAAE,MAAM,GAAG,EAAEkF,EAAExrB,EAAErL,UAAU62B,EAAE+F,GAAG,SAAShxB,EAAEnJ,QAAG,IAASmJ,IAAIA,EAAEhK,GAAG,IAAIkK,EAAET,EAAE3K,KAAKk3B,YAAY75B,EAAE2C,KAAKi6B,SAASxD,EAAEp5B,EAAE8+B,eAAe,QAAQ,CAACJ,SAAS7wB,IAAIirB,EAAExxB,KAAKC,OAAOvH,EAAE,IAAIwH,KAAK4xB,IAAI,IAAI,IAAItrB,EAAE,IAAIxG,KAAKC,MAAMvH,EAAE09B,oBAAoB,IAAI5E,EAAE,GAAIoE,OAAOpvB,IAA8B,GAAGC,EAAEkU,EAAEmX,EAAE,CAACqB,OAAO93B,KAAK+3B,KAAKqC,KAAK,cAAcp6B,KAAKq5B,KAAKnC,UAAU/rB,GAAE,GAAIpJ,EAAE,CAAC,IAAI+sB,EAAE1jB,EAAE8rB,YAAY9rB,EAAEA,EAAEmsB,IAAI5sB,EAAEmkB,EAAE,SAAS,OAA/I1jB,EAAEpL,KAAKk3B,UAAU,EAAEn1B,GAA6H,OAAOqJ,EAAE8sB,GAAGkE,UAAUlxB,EAAEE,CAAC,EAAE+qB,EAAEkG,WAAW,SAASnxB,GAAG,IAAInJ,EAAE/B,KAAKk4B,GAAGkE,WAAW9c,EAAE4c,GAAGI,QAAQlxB,EAAE/N,EAAE2C,KAAKg6B,UAAUj4B,EAAE,CAAC45B,aAAazwB,IAAIqxB,MAAK,SAAUrxB,GAAG,MAAM,iBAAiBA,EAAEsF,KAAKqI,aAAc,IAAG,OAAOzN,GAAGA,EAAE3D,KAAK,EAAE,IAAI0D,EAAEgrB,EAAEuD,QAAQvD,EAAEuD,QAAQ,SAASxuB,EAAEnJ,GAAG,IAAI/B,KAAKk4B,KAAKl4B,KAAKk4B,GAAGkE,UAAU,OAAOjxB,EAAE3L,KAAKQ,KAAKkL,EAAEnJ,GAAG,IAAIqJ,EAAEkU,EAAEtf,KAAKy6B,OAAO,2BAA2B,CAAC3C,OAAO93B,KAAK+3B,KAAK,OAAO5sB,EAAE3L,KAAK4L,EAAEF,EAAEnJ,GAAGm6B,GAAGl8B,KAAKk4B,GAAGkE,WAAU,EAAG,EAAE9c,EAAE4c,GAAG,SAAShxB,EAAEnJ,EAAEqJ,GAAG,IAAIT,EAAES,GAAGrJ,EAAE1E,EAAE+N,GAAGrJ,GAAGb,EAAEi1B,EAAEM,GAAGnX,IAAIjiB,GAAG,GAAG,iBAAiB6N,EAAE,OAAOoU,EAAEpU,GAAGgxB,GAAG7+B,GAAG,IAAI8N,EAAE,SAASD,EAAEnJ,EAAEqJ,GAAG,IAAIT,EAAEO,EAAE,GAAGnJ,EAAE,IAAIud,EAAEmX,EAAE9rB,EAAES,GAAG,GAAGrJ,IAAIud,EAAE,MAAM,CAAC3U,EAAE5I,GAAG,IAAIb,EAAEu1B,EAAE9rB,GAAG,IAAI2U,EAAEvd,GAAG,IAAIqJ,GAAG,OAAOkU,IAAIpe,EAAE,CAACyJ,EAAE2U,GAAG,CAACpU,EAAE,GAAGvG,KAAK01B,IAAI/a,EAAEpe,GAAG,IAAIyD,KAAK63B,IAAIld,EAAEpe,GAAG,CAAnJ,CAAqJoe,EAAE0Y,IAAI9sB,EAAEP,GAAGqvB,UAAU7D,EAAE94B,GAAGyxB,EAAE3jB,EAAE,GAAGurB,EAAEvrB,EAAE,GAAGwrB,EAAErX,EAAEwP,GAAGoI,UAAUR,GAAG,OAAOC,EAAEuB,GAAGkE,UAAU/+B,EAAEs5B,CAAC,EAAErX,EAAE4c,GAAGI,MAAM,WAAW,OAAOV,KAAKC,iBAAiBY,kBAAkBV,QAAQ,EAAEzc,EAAE4c,GAAGQ,WAAW,SAASxxB,GAAGhK,EAAEgK,CAAC,CAAC,CAAE,CAAxjEnJ,sBCAf4f,EAAO/D,QAA6I,WAAY,aAAa,IAAI1S,EAAE,SAASP,EAAE,uBAAuB5I,EAAE,eAAe,OAAO,SAASoJ,EAAEgrB,EAAE/qB,GAAG,IAAIqrB,EAAEN,EAAE72B,UAAU8L,EAAE4sB,IAAI,SAAS9sB,GAAwC,OAAO,IAAIirB,EAA1C,CAACgB,KAAKjsB,EAAE8sB,KAAI,EAAGz6B,KAAKN,WAA0B,EAAEw5B,EAAEuB,IAAI,SAASrtB,GAAG,IAAI5I,EAAEqJ,EAAEpL,KAAKi6B,SAAS,CAACnC,OAAO93B,KAAK+3B,GAAGC,KAAI,IAAK,OAAOrtB,EAAE5I,EAAEw1B,IAAIv3B,KAAKk3B,YAAYhsB,GAAGnJ,CAAC,EAAE00B,EAAEkG,MAAM,WAAW,OAAOvxB,EAAEpL,KAAKi6B,SAAS,CAACnC,OAAO93B,KAAK+3B,GAAGC,KAAI,GAAI,EAAE,IAAI1Y,EAAEmX,EAAE7kB,MAAM6kB,EAAE7kB,MAAM,SAAS1G,GAAGA,EAAE8sB,MAAMh4B,KAAKi4B,IAAG,GAAIj4B,KAAKu5B,SAAS9C,EAAEvrB,EAAEitB,WAAWn4B,KAAKm4B,QAAQjtB,EAAEitB,SAAS7Y,EAAE9f,KAAKQ,KAAKkL,EAAE,EAAE,IAAIhK,EAAEu1B,EAAErqB,KAAKqqB,EAAErqB,KAAK,WAAW,GAAGpM,KAAKi4B,GAAG,CAAC,IAAI/sB,EAAElL,KAAKo4B,GAAGp4B,KAAKu4B,GAAGrtB,EAAE0xB,iBAAiB58B,KAAKy4B,GAAGvtB,EAAE2xB,cAAc78B,KAAK24B,GAAGztB,EAAE4xB,aAAa98B,KAAK64B,GAAG3tB,EAAE6xB,YAAY/8B,KAAK+4B,GAAG7tB,EAAE8xB,cAAch9B,KAAKi5B,GAAG/tB,EAAE+xB,gBAAgBj9B,KAAKm5B,GAAGjuB,EAAEgyB,gBAAgBl9B,KAAKq5B,IAAInuB,EAAEiyB,oBAAoB,MAAMj8B,EAAE1B,KAAKQ,KAAK,EAAE,IAAI3C,EAAEo5B,EAAES,UAAUT,EAAES,UAAU,SAAS/rB,EAAEgrB,GAAG,IAAI/qB,EAAEpL,KAAKu5B,SAAS9C,EAAE,GAAGrrB,EAAED,GAAG,OAAOnL,KAAKi4B,GAAG,EAAE7sB,EAAEpL,KAAKm4B,SAAS96B,EAAEmC,KAAKQ,MAAMA,KAAKm4B,QAAQ,GAAG,iBAAiBhtB,IAAIA,EAAE,SAASD,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAIC,EAAED,EAAE6N,MAAMpO,GAAG,IAAIQ,EAAE,OAAO,KAAK,IAAIgrB,GAAG,GAAGhrB,EAAE,IAAI4N,MAAMhX,IAAI,CAAC,IAAI,EAAE,GAAGqJ,EAAE+qB,EAAE,GAAGM,EAAE,IAAIN,EAAE,KAAKA,EAAE,GAAG,OAAO,IAAIM,EAAE,EAAE,MAAMrrB,EAAEqrB,GAAGA,CAAC,CAA1J,CAA4JtrB,GAAG,OAAOA,GAAG,OAAOnL,KAAK,IAAIy2B,EAAE9xB,KAAK0K,IAAIlE,IAAI,GAAG,GAAGA,EAAEA,EAAEmU,EAAEtf,KAAK,GAAGm2B,EAAE,OAAO7W,EAAE6Y,QAAQ1B,EAAEnX,EAAE2Y,GAAG,IAAI9sB,EAAEmU,EAAE,GAAG,IAAInU,EAAE,CAAC,IAAIjK,EAAElB,KAAKi4B,GAAGj4B,KAAKi6B,SAASc,qBAAqB,EAAE/6B,KAAKk3B,aAAa5X,EAAEtf,KAAK28B,QAAQpF,IAAId,EAAEv1B,EAAEgK,IAAIitB,QAAQ1B,EAAEnX,EAAE4Y,GAAGkF,aAAal8B,CAAC,MAAMoe,EAAEtf,KAAKg4B,MAAM,OAAO1Y,CAAC,EAAE,IAAIhF,EAAEmc,EAAEgE,OAAOhE,EAAEgE,OAAO,SAASvvB,GAAG,IAAIP,EAAEO,IAAIlL,KAAKi4B,GAAG,yBAAyB,IAAI,OAAO3d,EAAE9a,KAAKQ,KAAK2K,EAAE,EAAE8rB,EAAEuD,QAAQ,WAAW,IAAI9uB,EAAElL,KAAKu5B,SAAS9C,EAAEz2B,KAAKm4B,SAAS,EAAEn4B,KAAKm4B,SAASn4B,KAAKk4B,GAAGkF,cAAcp9B,KAAKo4B,GAAG2C,qBAAqB,OAAO/6B,KAAKo4B,GAAG4B,UAAU,IAAI9uB,CAAC,EAAEurB,EAAE4G,MAAM,WAAW,QAAQr9B,KAAKi4B,EAAE,EAAExB,EAAEwE,YAAY,WAAW,OAAOj7B,KAAKi6B,SAASgB,aAAa,EAAExE,EAAEl3B,SAAS,WAAW,OAAOS,KAAKi6B,SAASiB,aAAa,EAAE,IAAItE,EAAEH,EAAEwD,OAAOxD,EAAEwD,OAAO,SAAS/uB,GAAG,MAAM,MAAMA,GAAGlL,KAAKm4B,QAAQ/sB,EAAEpL,KAAKy6B,OAAO,4BAA4BR,SAASrD,EAAEp3B,KAAKQ,KAAK,EAAE,IAAI02B,EAAED,EAAEuE,KAAKvE,EAAEuE,KAAK,SAAS9vB,EAAEP,EAAE5I,GAAG,GAAGmJ,GAAGlL,KAAKi4B,KAAK/sB,EAAE+sB,GAAG,OAAOvB,EAAEl3B,KAAKQ,KAAKkL,EAAEP,EAAE5I,GAAG,IAAIoJ,EAAEnL,KAAK28B,QAAQxG,EAAE/qB,EAAEF,GAAGyxB,QAAQ,OAAOjG,EAAEl3B,KAAK2L,EAAEgrB,EAAExrB,EAAE5I,EAAE,CAAC,CAAE,CAAvnE4I,mCCInFgX,EAAO/D,QAAU,SAAkBvU,GACjC,IAAIi0B,EAAOrgC,UAAUC,OAAS,QAAsB2Q,IAAjB5Q,UAAU,GAAmBA,UAAU,GAAK,EAC3E+F,EAAU/F,UAAUC,OAAS,QAAsB2Q,IAAjB5Q,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EsgC,OAAa,EACbC,OAAW,EACXC,OAAQ,EACRC,EAAc,GAClB,OAAO,WACL,IAAIC,EA+CR,SAAiBL,GACf,MAAuB,oBAATA,EAAsBA,IAASA,CAC/C,CAjDsBM,CAAQN,GACtBO,GAAc,IAAIh5B,MAAOC,UAEzBg5B,GAAUP,GAAcM,EAAcN,EAAaI,EAEvDJ,EAAaM,EAEb,IAAK,IAAI3hB,EAAOjf,UAAUC,OAAQK,EAAOyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC3Elc,EAAKkc,GAAQxc,UAAUwc,GAGzB,GAAIqkB,GAAU96B,EAAQ+6B,QACpB,OAAO/6B,EAAQg7B,WAAa/8B,QAAQD,QAAQqI,EAAG7J,KAAKQ,KAAM,CAACzC,KAAQ0F,MAAK,SAAU4W,GAChF,OAAOA,EAAO,EAChB,IAAK5Y,QAAQD,QAAQqI,EAAG7J,KAAKhC,MAAM6L,EAAI,CAACrJ,MAAMd,OAAO3B,KAYvD,GATIigC,EACFzH,aAAa0H,GAEbD,EA+BN,WACE,IAAIA,EAAW,CAAC,EAKhB,OAJAA,EAASS,QAAU,IAAIh9B,SAAQ,SAAUD,EAASO,GAChDi8B,EAASx8B,QAAUA,EACnBw8B,EAASj8B,OAASA,CACpB,IACOi8B,CACT,CAtCiBU,GAGbR,EAAYv5B,KAAK5G,GACjBkgC,EAAQ37B,WAAWoN,EAAMivB,KAAKn+B,MAAO29B,GAEjC36B,EAAQg7B,WAAY,CACtB,IAAII,EAAYV,EAAYxgC,OAAS,EACrC,OAAOsgC,EAASS,QAAQh7B,MAAK,SAAUo7B,GACrC,OAAOA,EAAQD,EACjB,GACF,CAEA,OAAOZ,EAASS,OAClB,EAEA,SAAS/uB,IACP,IAAIovB,EAAed,EACnBzH,aAAa0H,GAEbx8B,QAAQD,QAAQgC,EAAQg7B,WAAa30B,EAAG7J,KAAKQ,KAAM09B,GAAer0B,EAAG7L,MAAMwC,KAAM09B,EAAYA,EAAYxgC,OAAS,KAAK+F,KAAKq7B,EAAat9B,QAASs9B,EAAa/8B,QAE/Jm8B,EAAc,GACdF,EAAW,IACb,CACF,yBC1DA,OAOC,WACA,aAEA,IAAIzc,IACe,qBAAXnhB,SACPA,OAAO0O,WACP1O,OAAO0O,SAASC,eAGbgwB,EAAuB,CAE1Bxd,UAAWA,EAEXyd,cAAiC,qBAAXC,OAEtBC,qBACC3d,MAAgBnhB,OAAOqM,mBAAoBrM,OAAO++B,aAEnDC,eAAgB7d,KAAenhB,OAAOi/B,aAOrC,KAFD,aACC,OAAON,CACP,+BAOH,CAhCA,mCCLA,IAAI7jB,EAAS/c,OAAO2B,UAAUgM,eAC1BwzB,EAAQnhC,OAAO2B,UAAUC,SACzBoe,EAAiBhgB,OAAOggB,eACxBohB,EAAOphC,OAAO0kB,yBAEdpc,EAAU,SAAiBsc,GAC9B,MAA6B,oBAAlBvc,MAAMC,QACTD,MAAMC,QAAQsc,GAGK,mBAApBuc,EAAMt/B,KAAK+iB,EACnB,EAEIyc,EAAgB,SAAuBthC,GAC1C,IAAKA,GAA2B,oBAApBohC,EAAMt/B,KAAK9B,GACtB,OAAO,EAGR,IASIuB,EATAggC,EAAoBvkB,EAAOlb,KAAK9B,EAAK,eACrCwhC,EAAmBxhC,EAAIwgB,aAAexgB,EAAIwgB,YAAY5e,WAAaob,EAAOlb,KAAK9B,EAAIwgB,YAAY5e,UAAW,iBAE9G,GAAI5B,EAAIwgB,cAAgB+gB,IAAsBC,EAC7C,OAAO,EAMR,IAAKjgC,KAAOvB,GAEZ,MAAsB,qBAARuB,GAAuByb,EAAOlb,KAAK9B,EAAKuB,EACvD,EAGIkgC,EAAc,SAAqB5e,EAAQvd,GAC1C2a,GAAmC,cAAjB3a,EAAQgC,KAC7B2Y,EAAe4C,EAAQvd,EAAQgC,KAAM,CACpCsZ,YAAY,EACZC,cAAc,EACd9W,MAAOzE,EAAQo8B,SACf5gB,UAAU,IAGX+B,EAAOvd,EAAQgC,MAAQhC,EAAQo8B,QAEjC,EAGIC,EAAc,SAAqB3hC,EAAKsH,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAK0V,EAAOlb,KAAK9B,EAAKsH,GACrB,OACM,GAAI+5B,EAGV,OAAOA,EAAKrhC,EAAKsH,GAAMyC,KAEzB,CAEA,OAAO/J,EAAIsH,EACZ,EAEA2c,EAAO/D,QAAU,SAASmW,IACzB,IAAI/wB,EAASgC,EAAMmsB,EAAKmO,EAAMC,EAAajI,EACvC/W,EAAStjB,UAAU,GACnB0N,EAAI,EACJzN,EAASD,UAAUC,OACnBsiC,GAAO,EAaX,IAVsB,mBAAXjf,IACVif,EAAOjf,EACPA,EAAStjB,UAAU,IAAM,CAAC,EAE1B0N,EAAI,IAES,MAAV4V,GAAqC,kBAAXA,GAAyC,oBAAXA,KAC3DA,EAAS,CAAC,GAGJ5V,EAAIzN,IAAUyN,EAGpB,GAAe,OAFf3H,EAAU/F,UAAU0N,IAInB,IAAK3F,KAAQhC,EACZmuB,EAAMkO,EAAY9e,EAAQvb,GAItBub,KAHJ+e,EAAOD,EAAYr8B,EAASgC,MAKvBw6B,GAAQF,IAASN,EAAcM,KAAUC,EAAct5B,EAAQq5B,MAC9DC,GACHA,GAAc,EACdjI,EAAQnG,GAAOlrB,EAAQkrB,GAAOA,EAAM,IAEpCmG,EAAQnG,GAAO6N,EAAc7N,GAAOA,EAAM,CAAC,EAI5CgO,EAAY5e,EAAQ,CAAEvb,KAAMA,EAAMo6B,SAAUrL,EAAOyL,EAAMlI,EAAOgI,MAGtC,qBAATA,GACjBH,EAAY5e,EAAQ,CAAEvb,KAAMA,EAAMo6B,SAAUE,KAQjD,OAAO/e,CACR,sCC3GA,SAASta,EAAQwB,GACf,OAAQzB,MAAMC,QAEVD,MAAMC,QAAQwB,GADI,mBAAlBg4B,EAAOh4B,EAEb,iCAGA,MAAMi4B,EAAW,IAUjB,SAASngC,EAASkI,GAChB,OAAgB,MAATA,EAAgB,GAVzB,SAAsBA,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAIoS,EAASpS,EAAQ,GACrB,MAAiB,KAAVoS,GAAiB,EAAIpS,IAAUi4B,EAAW,KAAO7lB,CAC1D,CAG8B8lB,CAAal4B,EAC3C,CAEA,SAASm4B,EAASn4B,GAChB,MAAwB,kBAAVA,CAChB,CAEA,SAASo4B,EAASp4B,GAChB,MAAwB,kBAAVA,CAChB,CAGA,SAASq4B,EAAUr4B,GACjB,OACY,IAAVA,IACU,IAAVA,GAUJ,SAAsBA,GACpB,OAAOs4B,EAASt4B,IAAoB,OAAVA,CAC5B,CAXKu4B,CAAav4B,IAA2B,oBAAjBg4B,EAAOh4B,EAEnC,CAEA,SAASs4B,EAASt4B,GAChB,MAAwB,kBAAVA,CAChB,CAOA,SAASw4B,EAAUx4B,GACjB,YAAiBoG,IAAVpG,GAAiC,OAAVA,CAChC,CAEA,SAASy4B,EAAQz4B,GACf,OAAQA,EAAM8H,OAAOrS,MACvB,CAIA,SAASuiC,EAAOh4B,GACd,OAAgB,MAATA,OACOoG,IAAVpG,EACE,qBACA,gBACF9J,OAAO2B,UAAUC,SAASC,KAAKiI,EACrC,CAEA,MAUM04B,EAAwBn7B,GAAS,WAAWA,oBAE5Co7B,EAA4BnhC,GAChC,6BAA6BA,gCAEzByb,EAAS/c,OAAO2B,UAAUgM,eAEhC,MAAM+0B,EACJ,WAAAniB,CAAYtgB,GACVoC,KAAKsgC,MAAQ,GACbtgC,KAAKugC,QAAU,CAAC,EAEhB,IAAIC,EAAc,EAElB5iC,EAAKC,SAASoB,IACZ,IAAIvB,EAAM+iC,EAAUxhC,GAEpBuhC,GAAe9iC,EAAIgjC,OAEnB1gC,KAAKsgC,MAAMn8B,KAAKzG,GAChBsC,KAAKugC,QAAQ7iC,EAAIijC,IAAMjjC,EAEvB8iC,GAAe9iC,EAAIgjC,MAAM,IAI3B1gC,KAAKsgC,MAAMziC,SAASoB,IAClBA,EAAIyhC,QAAUF,CAAW,GAE7B,CACA,GAAA7sB,CAAIitB,GACF,OAAO5gC,KAAKugC,QAAQK,EACtB,CACA,IAAAhjC,GACE,OAAOoC,KAAKsgC,KACd,CACA,MAAApgC,GACE,OAAOnC,KAAKC,UAAUgC,KAAKsgC,MAC7B,EAGF,SAASG,EAAUxhC,GACjB,IAAI6K,EAAO,KACP62B,EAAK,KACLxP,EAAM,KACNuP,EAAS,EACTG,EAAQ,KAEZ,GAAIjB,EAAS3gC,IAAQgH,EAAQhH,GAC3BkyB,EAAMlyB,EACN6K,EAAOg3B,EAAc7hC,GACrB0hC,EAAKI,EAAY9hC,OACZ,CACL,IAAKyb,EAAOlb,KAAKP,EAAK,QACpB,MAAM,IAAI0J,MAAMw3B,EAAqB,SAGvC,MAAMn7B,EAAO/F,EAAI+F,KAGjB,GAFAmsB,EAAMnsB,EAEF0V,EAAOlb,KAAKP,EAAK,YACnByhC,EAASzhC,EAAIyhC,OAETA,GAAU,GACZ,MAAM,IAAI/3B,MAAMy3B,EAAyBp7B,IAI7C8E,EAAOg3B,EAAc97B,GACrB27B,EAAKI,EAAY/7B,GACjB67B,EAAQ5hC,EAAI4hC,KACd,CAEA,MAAO,CAAE/2B,OAAM62B,KAAID,SAAQvP,MAAK0P,QAClC,CAEA,SAASC,EAAc7hC,GACrB,OAAOgH,EAAQhH,GAAOA,EAAMA,EAAIR,MAAM,IACxC,CAEA,SAASsiC,EAAY9hC,GACnB,OAAOgH,EAAQhH,GAAOA,EAAIG,KAAK,KAAOH,CACxC,CA2GA,IAAI+hC,EAAS,CA5CXC,iBAAiB,EAEjBC,cAAc,EAEdtjC,KAAM,GAENujC,YAAY,EAEZC,OAAQ,CAAC/jC,EAAGC,IACVD,EAAEgkC,QAAU/jC,EAAE+jC,MAAShkC,EAAEikC,IAAMhkC,EAAEgkC,KAAO,EAAI,EAAKjkC,EAAEgkC,MAAQ/jC,EAAE+jC,OAAS,EAAI,EApB5EE,gBAAgB,EAGhBC,gBAAgB,EAEhBC,mBAAoB,EAoBpBjhC,SAAU,EAGVkhC,UAAW,GAMXC,SAAU,OAGY,CAEtBC,mBAAmB,EAGnBf,MA5FF,SAAanjC,EAAKoM,GAChB,IAAI2b,EAAO,GACPlD,GAAM,EAEV,MAAMsf,EAAU,CAACnkC,EAAKoM,EAAM8F,KAC1B,GAAKqwB,EAAUviC,GAGf,GAAKoM,EAAK8F,GAGH,CAGL,MAAMnI,EAAQ/J,EAFJoM,EAAK8F,IAIf,IAAKqwB,EAAUx4B,GACb,OAKF,GACEmI,IAAU9F,EAAK5M,OAAS,IACvB0iC,EAASn4B,IAAUo4B,EAASp4B,IAAUq4B,EAAUr4B,IAEjDge,EAAKthB,KAAK5E,EAASkI,SACd,GAAIxB,EAAQwB,GAAQ,CACzB8a,GAAM,EAEN,IAAK,IAAI5X,EAAI,EAAG4P,EAAM9S,EAAMvK,OAAQyN,EAAI4P,EAAK5P,GAAK,EAChDk3B,EAAQp6B,EAAMkD,GAAIb,EAAM8F,EAAQ,EAEpC,MAAW9F,EAAK5M,QAEd2kC,EAAQp6B,EAAOqC,EAAM8F,EAAQ,EAEjC,MA3BE6V,EAAKthB,KAAKzG,EA2BZ,EAMF,OAFAmkC,EAAQnkC,EAAKkiC,EAAS91B,GAAQA,EAAKrL,MAAM,KAAOqL,EAAM,GAE/CyY,EAAMkD,EAAOA,EAAK,EAC3B,EAoDEqc,gBAAgB,EAIhBC,iBAAiB,EAEjBC,gBAAiB,IAUnB,MAAMC,EAAQ,SAgCd,MAAMC,EACJ,WAAAhkB,EAAY,MACV2iB,EAAQG,EAAOH,MAAK,gBACpBmB,EAAkBhB,EAAOgB,iBACvB,CAAC,GACHhiC,KAAKmiC,KAjCT,SAAczB,EAAS,EAAG0B,EAAW,GACnC,MAAMhtB,EAAQ,IAAIqK,IACZqP,EAAInqB,KAAKgD,IAAI,GAAIy6B,GAEvB,MAAO,CACL,GAAAzuB,CAAIlM,GACF,MAAM46B,EAAY56B,EAAMsR,MAAMkpB,GAAO/kC,OAErC,GAAIkY,EAAM2K,IAAIsiB,GACZ,OAAOjtB,EAAMzB,IAAI0uB,GAInB,MAAMF,EAAO,EAAIx9B,KAAKgD,IAAI06B,EAAW,GAAM3B,GAGrCt1B,EAAIk3B,WAAW39B,KAAKC,MAAMu9B,EAAOrT,GAAKA,GAI5C,OAFA1Z,EAAMxB,IAAIyuB,EAAWj3B,GAEdA,CACT,EACA,KAAAvF,GACEuP,EAAMvP,OACR,EAEJ,CAOgBs8B,CAAKH,EAAiB,GAClChiC,KAAK6gC,MAAQA,EACb7gC,KAAKuiC,WAAY,EAEjBviC,KAAKwiC,iBACP,CACA,UAAAC,CAAWC,EAAO,IAChB1iC,KAAK0iC,KAAOA,CACd,CACA,eAAAF,CAAgBG,EAAU,IACxB3iC,KAAK2iC,QAAUA,CACjB,CACA,OAAAC,CAAQhlC,EAAO,IACboC,KAAKpC,KAAOA,EACZoC,KAAK6iC,SAAW,CAAC,EACjBjlC,EAAKC,SAAQ,CAACoB,EAAKqiC,KACjBthC,KAAK6iC,SAAS5jC,EAAI0hC,IAAMW,CAAG,GAE/B,CACA,MAAA7mB,IACMza,KAAKuiC,WAAcviC,KAAK0iC,KAAKxlC,SAIjC8C,KAAKuiC,WAAY,EAGb3C,EAAS5/B,KAAK0iC,KAAK,IACrB1iC,KAAK0iC,KAAK7kC,SAAQ,CAACilC,EAAKC,KACtB/iC,KAAKgjC,WAAWF,EAAKC,EAAS,IAIhC/iC,KAAK0iC,KAAK7kC,SAAQ,CAACilC,EAAKC,KACtB/iC,KAAKijC,WAAWH,EAAKC,EAAS,IAIlC/iC,KAAKmiC,KAAKt8B,QACZ,CAEA,GAAA0xB,CAAIuL,GACF,MAAMxB,EAAMthC,KAAK8S,OAEb8sB,EAASkD,GACX9iC,KAAKgjC,WAAWF,EAAKxB,GAErBthC,KAAKijC,WAAWH,EAAKxB,EAEzB,CAEA,QAAA4B,CAAS5B,GACPthC,KAAK2iC,QAAQze,OAAOod,EAAK,GAGzB,IAAK,IAAI32B,EAAI22B,EAAK/mB,EAAMva,KAAK8S,OAAQnI,EAAI4P,EAAK5P,GAAK,EACjD3K,KAAK2iC,QAAQh4B,GAAGA,GAAK,CAEzB,CACA,sBAAAw4B,CAAuBp9B,EAAM66B,GAC3B,OAAO76B,EAAK/F,KAAK6iC,SAASjC,GAC5B,CACA,IAAA9tB,GACE,OAAO9S,KAAK2iC,QAAQzlC,MACtB,CACA,UAAA8lC,CAAWF,EAAKC,GACd,IAAK9C,EAAU6C,IAAQ5C,EAAQ4C,GAC7B,OAGF,IAAIM,EAAS,CACXnS,EAAG6R,EACHn4B,EAAGo4B,EACH33B,EAAGpL,KAAKmiC,KAAKxuB,IAAImvB,IAGnB9iC,KAAK2iC,QAAQx+B,KAAKi/B,EACpB,CACA,UAAAH,CAAWH,EAAKC,GACd,IAAIK,EAAS,CAAEz4B,EAAGo4B,EAAUlM,EAAG,CAAC,GAGhC72B,KAAKpC,KAAKC,SAAQ,CAACoB,EAAKokC,KACtB,IAAI57B,EAAQxI,EAAI4hC,MAAQ5hC,EAAI4hC,MAAMiC,GAAO9iC,KAAK6gC,MAAMiC,EAAK7jC,EAAI6K,MAE7D,GAAKm2B,EAAUx4B,GAIf,GAAIxB,EAAQwB,GAAQ,CAClB,IAAI67B,EAAa,GACjB,MAAM1kC,EAAQ,CAAC,CAAE2kC,gBAAiB,EAAG97B,UAErC,KAAO7I,EAAM1B,QAAQ,CACnB,MAAM,eAAEqmC,EAAc,MAAE97B,GAAU7I,EAAMyL,MAExC,GAAK41B,EAAUx4B,GAIf,GAAIm4B,EAASn4B,KAAWy4B,EAAQz4B,GAAQ,CACtC,IAAI+7B,EAAY,CACdvS,EAAGxpB,EACHkD,EAAG44B,EACHn4B,EAAGpL,KAAKmiC,KAAKxuB,IAAIlM,IAGnB67B,EAAWn/B,KAAKq/B,EAClB,MAAWv9B,EAAQwB,IACjBA,EAAM5J,SAAQ,CAACkI,EAAMjI,KACnBc,EAAMuF,KAAK,CACTo/B,eAAgBzlC,EAChB2J,MAAO1B,GACP,GAGR,CACAq9B,EAAOvM,EAAEwM,GAAYC,CACvB,MAAO,GAAI1D,EAASn4B,KAAWy4B,EAAQz4B,GAAQ,CAC7C,IAAI+7B,EAAY,CACdvS,EAAGxpB,EACH2D,EAAGpL,KAAKmiC,KAAKxuB,IAAIlM,IAGnB27B,EAAOvM,EAAEwM,GAAYG,CACvB,KAGFxjC,KAAK2iC,QAAQx+B,KAAKi/B,EACpB,CACA,MAAAljC,GACE,MAAO,CACLtC,KAAMoC,KAAKpC,KACX+kC,QAAS3iC,KAAK2iC,QAElB,EAGF,SAASc,EACP7lC,EACA8kC,GACA,MAAE7B,EAAQG,EAAOH,MAAK,gBAAEmB,EAAkBhB,EAAOgB,iBAAoB,CAAC,GAEtE,MAAM0B,EAAU,IAAIxB,EAAU,CAAErB,QAAOmB,oBAIvC,OAHA0B,EAAQd,QAAQhlC,EAAKoB,IAAIyhC,IACzBiD,EAAQjB,WAAWC,GACnBgB,EAAQjpB,SACDipB,CACT,CAaA,SAASC,EACPn0B,GACA,OACEo0B,EAAS,EAAC,gBACVC,EAAkB,EAAC,iBACnBC,EAAmB,EAAC,SACpBnC,EAAWX,EAAOW,SAAQ,eAC1BG,EAAiBd,EAAOc,gBACtB,CAAC,GAEL,MAAMiC,EAAWH,EAASp0B,EAAQtS,OAElC,GAAI4kC,EACF,OAAOiC,EAGT,MAAMC,EAAYr/B,KAAK0K,IAAIy0B,EAAmBD,GAE9C,OAAKlC,EAKEoC,EAAWC,EAAYrC,EAHrBqC,EAAY,EAAMD,CAI7B,CAiCA,MAAME,EAAW,GAEjB,SAASt0B,EACPu0B,EACA10B,EACA20B,GACA,SACE3jC,EAAWwgC,EAAOxgC,SAAQ,SAC1BmhC,EAAWX,EAAOW,SAAQ,UAC1BD,EAAYV,EAAOU,UAAS,eAC5BF,EAAiBR,EAAOQ,eAAc,mBACtCC,EAAqBT,EAAOS,mBAAkB,eAC9CF,EAAiBP,EAAOO,eAAc,eACtCO,EAAiBd,EAAOc,gBACtB,CAAC,GAEL,GAAItyB,EAAQtS,OAAS+mC,EACnB,MAAM,IAAIt7B,MAtdZ,iCAsd2Cs7B,MAG3C,MAAMG,EAAa50B,EAAQtS,OAErBmnC,EAAUH,EAAKhnC,OAEf4mC,EAAmBn/B,KAAK63B,IAAI,EAAG73B,KAAK01B,IAAI75B,EAAU6jC,IAExD,IAAIC,EAAmB5C,EAEnB6C,EAAeT,EAInB,MAAMU,EAAiB/C,EAAqB,GAAKF,EAE3CkD,EAAYD,EAAiBx+B,MAAMq+B,GAAW,GAEpD,IAAIz0B,EAGJ,MAAQA,EAAQs0B,EAAKp5B,QAAQ0E,EAAS+0B,KAAkB,GAAG,CACzD,IAAIlD,EAAQsC,EAAen0B,EAAS,CAClCq0B,gBAAiBj0B,EACjBk0B,mBACAnC,WACAG,mBAMF,GAHAwC,EAAmB3/B,KAAK01B,IAAIgH,EAAOiD,GACnCC,EAAe30B,EAAQw0B,EAEnBI,EAAgB,CAClB,IAAI75B,EAAI,EACR,KAAOA,EAAIy5B,GACTK,EAAU70B,EAAQjF,GAAK,EACvBA,GAAK,CAET,CACF,CAGA45B,GAAgB,EAEhB,IAAIG,EAAa,GACbC,EAAa,EACbC,EAASR,EAAaC,EAE1B,MAAMQ,EAAO,GAAMT,EAAa,EAEhC,IAAK,IAAIz5B,EAAI,EAAGA,EAAIy5B,EAAYz5B,GAAK,EAAG,CAItC,IAAIm6B,EAAS,EACTC,EAASH,EAEb,KAAOE,EAASC,GAAQ,CACRpB,EAAen0B,EAAS,CACpCo0B,OAAQj5B,EACRk5B,gBAAiBC,EAAmBiB,EACpCjB,mBACAnC,WACAG,oBAGWwC,EACXQ,EAASC,EAETH,EAASG,EAGXA,EAASpgC,KAAK+C,OAAOk9B,EAASE,GAAU,EAAIA,EAC9C,CAGAF,EAASG,EAET,IAAIjb,EAAQnlB,KAAK63B,IAAI,EAAGsH,EAAmBiB,EAAS,GAChDC,EAASxD,EACT6C,EACA1/B,KAAK01B,IAAIyJ,EAAmBiB,EAAQV,GAAWD,EAG/Ca,EAASj/B,MAAMg/B,EAAS,GAE5BC,EAAOD,EAAS,IAAM,GAAKr6B,GAAK,EAEhC,IAAK,IAAIoI,EAAIiyB,EAAQjyB,GAAK+W,EAAO/W,GAAK,EAAG,CACvC,IAAI8wB,EAAkB9wB,EAAI,EACtBmyB,EAAYf,EAAgBD,EAAK7gB,OAAOwgB,IAgB5C,GAdIW,IAEFC,EAAUZ,MAAsBqB,GAIlCD,EAAOlyB,IAAOkyB,EAAOlyB,EAAI,IAAM,EAAK,GAAKmyB,EAGrCv6B,IACFs6B,EAAOlyB,KACH2xB,EAAW3xB,EAAI,GAAK2xB,EAAW3xB,KAAO,EAAK,EAAI2xB,EAAW3xB,EAAI,IAGhEkyB,EAAOlyB,GAAK8xB,IACdF,EAAahB,EAAen0B,EAAS,CACnCo0B,OAAQj5B,EACRk5B,kBACAC,mBACAnC,WACAG,mBAKE6C,GAAcL,GAAkB,CAMlC,GAJAA,EAAmBK,EACnBJ,EAAeV,EAGXU,GAAgBT,EAClB,MAIFha,EAAQnlB,KAAK63B,IAAI,EAAG,EAAIsH,EAAmBS,EAC7C,CAEJ,CAWA,GARcZ,EAAen0B,EAAS,CACpCo0B,OAAQj5B,EAAI,EACZk5B,gBAAiBC,EACjBA,mBACAnC,WACAG,mBAGUwC,EACV,MAGFI,EAAaO,CACf,CAEA,MAAMprB,EAAS,CACbsrB,QAASZ,GAAgB,EAEzBlD,MAAO18B,KAAK63B,IAAI,KAAOmI,IAGzB,GAAIH,EAAgB,CAClB,MAAMY,EA7MV,SACEC,EAAY,GACZ5D,EAAqBT,EAAOS,oBAE5B,IAAI2D,EAAU,GACVtb,GAAS,EACTzmB,GAAO,EACPsH,EAAI,EAER,IAAK,IAAI4P,EAAM8qB,EAAUnoC,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CAChD,IAAIoO,EAAQssB,EAAU16B,GAClBoO,IAAoB,IAAX+Q,EACXA,EAAQnf,EACEoO,IAAoB,IAAX+Q,IACnBzmB,EAAMsH,EAAI,EACNtH,EAAMymB,EAAQ,GAAK2X,GACrB2D,EAAQjhC,KAAK,CAAC2lB,EAAOzmB,IAEvBymB,GAAS,EAEb,CAOA,OAJIub,EAAU16B,EAAI,IAAMA,EAAImf,GAAS2X,GACnC2D,EAAQjhC,KAAK,CAAC2lB,EAAOnf,EAAI,IAGpBy6B,CACT,CAiLoBE,CAAqBb,EAAWhD,GAC3C2D,EAAQloC,OAEFqkC,IACT1nB,EAAOurB,QAAUA,GAFjBvrB,EAAOsrB,SAAU,CAIrB,CAEA,OAAOtrB,CACT,CAEA,SAAS0rB,EAAsB/1B,GAC7B,IAAIq1B,EAAO,CAAC,EAEZ,IAAK,IAAIl6B,EAAI,EAAG4P,EAAM/K,EAAQtS,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CACrD,MAAM66B,EAAOh2B,EAAQ6T,OAAO1Y,GAC5Bk6B,EAAKW,IAASX,EAAKW,IAAS,GAAM,GAAMjrB,EAAM5P,EAAI,CACpD,CAEA,OAAOk6B,CACT,CAEA,MAAMY,EACJ,WAAAvnB,CACE1O,GACA,SACEhP,EAAWwgC,EAAOxgC,SAAQ,UAC1BkhC,EAAYV,EAAOU,UAAS,SAC5BC,EAAWX,EAAOW,SAAQ,eAC1BJ,EAAiBP,EAAOO,eAAc,eACtCC,EAAiBR,EAAOQ,eAAc,mBACtCC,EAAqBT,EAAOS,mBAAkB,gBAC9CR,EAAkBD,EAAOC,gBAAe,eACxCa,EAAiBd,EAAOc,gBACtB,CAAC,GAiBL,GAfA9hC,KAAKgD,QAAU,CACbxC,WACAkhC,YACAC,WACAJ,iBACAC,iBACAC,qBACAR,kBACAa,kBAGF9hC,KAAKwP,QAAUyxB,EAAkBzxB,EAAUA,EAAQqJ,cAEnD7Y,KAAK0lC,OAAS,IAET1lC,KAAKwP,QAAQtS,OAChB,OAGF,MAAMyoC,EAAW,CAACn2B,EAASo2B,KACzB5lC,KAAK0lC,OAAOvhC,KAAK,CACfqL,UACAq2B,SAAUN,EAAsB/1B,GAChCo2B,cACA,EAGErrB,EAAMva,KAAKwP,QAAQtS,OAEzB,GAAIqd,EAAM0pB,EAAU,CAClB,IAAIt5B,EAAI,EACR,MAAMm7B,EAAYvrB,EAAM0pB,EAClB5gC,EAAMkX,EAAMurB,EAElB,KAAOn7B,EAAItH,GACTsiC,EAAS3lC,KAAKwP,QAAQu2B,OAAOp7B,EAAGs5B,GAAWt5B,GAC3CA,GAAKs5B,EAGP,GAAI6B,EAAW,CACb,MAAMF,EAAarrB,EAAM0pB,EACzB0B,EAAS3lC,KAAKwP,QAAQu2B,OAAOH,GAAaA,EAC5C,CACF,MACED,EAAS3lC,KAAKwP,QAAS,EAE3B,CAEA,QAAAw2B,CAAS9B,GACP,MAAM,gBAAEjD,EAAe,eAAEM,GAAmBvhC,KAAKgD,QAOjD,GALKi+B,IACHiD,EAAOA,EAAKrrB,eAIV7Y,KAAKwP,UAAY00B,EAAM,CACzB,IAAIrqB,EAAS,CACXsrB,SAAS,EACT9D,MAAO,GAOT,OAJIE,IACF1nB,EAAOurB,QAAU,CAAC,CAAC,EAAGlB,EAAKhnC,OAAS,KAG/B2c,CACT,CAGA,MAAM,SACJrZ,EAAQ,SACRmhC,EAAQ,UACRD,EAAS,eACTF,EAAc,mBACdC,EAAkB,eAClBK,GACE9hC,KAAKgD,QAET,IAAIijC,EAAa,GACbC,EAAa,EACbC,GAAa,EAEjBnmC,KAAK0lC,OAAO7nC,SAAQ,EAAG2R,UAASq2B,WAAUD,iBACxC,MAAM,QAAET,EAAO,MAAE9D,EAAK,QAAE+D,GAAYz1B,EAAOu0B,EAAM10B,EAASq2B,EAAU,CAClErlC,SAAUA,EAAWolC,EACrBjE,WACAD,YACAF,iBACAC,qBACAF,iBACAO,mBAGEqD,IACFgB,GAAa,GAGfD,GAAc7E,EAEV8D,GAAWC,IACba,EAAa,IAAIA,KAAeb,GAClC,IAGF,IAAIvrB,EAAS,CACXsrB,QAASgB,EACT9E,MAAO8E,EAAaD,EAAalmC,KAAK0lC,OAAOxoC,OAAS,GAOxD,OAJIipC,GAAc5E,IAChB1nB,EAAOurB,QAAUa,GAGZpsB,CACT,EAGF,MAAMusB,EACJ,WAAAloB,CAAY1O,GACVxP,KAAKwP,QAAUA,CACjB,CACA,mBAAO62B,CAAa72B,GAClB,OAAO82B,EAAS92B,EAASxP,KAAKumC,WAChC,CACA,oBAAOC,CAAch3B,GACnB,OAAO82B,EAAS92B,EAASxP,KAAKymC,YAChC,CACA,MAAA92B,GAAkB,EAGpB,SAAS22B,EAAS92B,EAASk3B,GACzB,MAAMC,EAAUn3B,EAAQuJ,MAAM2tB,GAC9B,OAAOC,EAAUA,EAAQ,GAAK,IAChC,CA8JA,MAAMC,UAAmBR,EACvB,WAAAloB,CACE1O,GACA,SACEhP,EAAWwgC,EAAOxgC,SAAQ,UAC1BkhC,EAAYV,EAAOU,UAAS,SAC5BC,EAAWX,EAAOW,SAAQ,eAC1BJ,EAAiBP,EAAOO,eAAc,eACtCC,EAAiBR,EAAOQ,eAAc,mBACtCC,EAAqBT,EAAOS,mBAAkB,gBAC9CR,EAAkBD,EAAOC,gBAAe,eACxCa,EAAiBd,EAAOc,gBACtB,CAAC,GAEL+E,MAAMr3B,GACNxP,KAAK8mC,aAAe,IAAIrB,EAAYj2B,EAAS,CAC3ChP,WACAkhC,YACAC,WACAJ,iBACAC,iBACAC,qBACAR,kBACAa,kBAEJ,CACA,eAAWtxB,GACT,MAAO,OACT,CACA,qBAAW+1B,GACT,MAAO,UACT,CACA,sBAAWE,GACT,MAAO,QACT,CACA,MAAA92B,CAAOu0B,GACL,OAAOlkC,KAAK8mC,aAAad,SAAS9B,EACpC,EAKF,MAAM6C,UAAqBX,EACzB,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,SACT,CACA,qBAAW+1B,GACT,MAAO,WACT,CACA,sBAAWE,GACT,MAAO,SACT,CACA,MAAA92B,CAAOu0B,GACL,IACIt0B,EADApP,EAAW,EAGf,MAAM4kC,EAAU,GACVhB,EAAapkC,KAAKwP,QAAQtS,OAGhC,MAAQ0S,EAAQs0B,EAAKp5B,QAAQ9K,KAAKwP,QAAShP,KAAc,GACvDA,EAAWoP,EAAQw0B,EACnBgB,EAAQjhC,KAAK,CAACyL,EAAOpP,EAAW,IAGlC,MAAM2kC,IAAYC,EAAQloC,OAE1B,MAAO,CACLioC,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,UAEJ,EAIF,MAAM4B,EAAY,CAzOlB,cAAyBZ,EACvB,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,OACT,CACA,qBAAW+1B,GACT,MAAO,WACT,CACA,sBAAWE,GACT,MAAO,SACT,CACA,MAAA92B,CAAOu0B,GACL,MAAMiB,EAAUjB,IAASlkC,KAAKwP,QAE9B,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAC,EAAGplC,KAAKwP,QAAQtS,OAAS,GAEvC,GAsNA6pC,EAtLF,cAA+BX,EAC7B,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,cACT,CACA,qBAAW+1B,GACT,MAAO,YACT,CACA,sBAAWE,GACT,MAAO,UACT,CACA,MAAA92B,CAAOu0B,GACL,MAAMiB,EAAUjB,EAAK+C,WAAWjnC,KAAKwP,SAErC,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAC,EAAGplC,KAAKwP,QAAQtS,OAAS,GAEvC,GAKF,cAAsCkpC,EACpC,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,sBACT,CACA,qBAAW+1B,GACT,MAAO,aACT,CACA,sBAAWE,GACT,MAAO,WACT,CACA,MAAA92B,CAAOu0B,GACL,MAAMiB,GAAWjB,EAAK+C,WAAWjnC,KAAKwP,SAEtC,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAC,EAAGlB,EAAKhnC,OAAS,GAE/B,GA+BF,cAAsCkpC,EACpC,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,sBACT,CACA,qBAAW+1B,GACT,MAAO,aACT,CACA,sBAAWE,GACT,MAAO,WACT,CACA,MAAA92B,CAAOu0B,GACL,MAAMiB,GAAWjB,EAAKgD,SAASlnC,KAAKwP,SACpC,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAC,EAAGlB,EAAKhnC,OAAS,GAE/B,GA9CF,cAA+BkpC,EAC7B,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,cACT,CACA,qBAAW+1B,GACT,MAAO,YACT,CACA,sBAAWE,GACT,MAAO,UACT,CACA,MAAA92B,CAAOu0B,GACL,MAAMiB,EAAUjB,EAAKgD,SAASlnC,KAAKwP,SAEnC,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAClB,EAAKhnC,OAAS8C,KAAKwP,QAAQtS,OAAQgnC,EAAKhnC,OAAS,GAE/D,GApGF,cAAgCkpC,EAC9B,WAAAloB,CAAY1O,GACVq3B,MAAMr3B,EACR,CACA,eAAWgB,GACT,MAAO,eACT,CACA,qBAAW+1B,GACT,MAAO,WACT,CACA,sBAAWE,GACT,MAAO,SACT,CACA,MAAA92B,CAAOu0B,GACL,MACMiB,GAAqB,IADbjB,EAAKp5B,QAAQ9K,KAAKwP,SAGhC,MAAO,CACL21B,UACA9D,MAAO8D,EAAU,EAAI,EACrBC,QAAS,CAAC,EAAGlB,EAAKhnC,OAAS,GAE/B,GAiMA0pC,GAGIO,EAAeH,EAAU9pC,OAGzBkqC,EAAW,qCAmDjB,MAAMC,EAAgB,IAAIC,IAAI,CAACV,EAAWp2B,KAAMu2B,EAAav2B,OA8B7D,MAAM+2B,EACJ,WAAArpB,CACE1O,GACA,gBACEyxB,EAAkBD,EAAOC,gBAAe,eACxCM,EAAiBP,EAAOO,eAAc,mBACtCE,EAAqBT,EAAOS,mBAAkB,eAC9CK,EAAiBd,EAAOc,eAAc,eACtCN,EAAiBR,EAAOQ,eAAc,SACtChhC,EAAWwgC,EAAOxgC,SAAQ,UAC1BkhC,EAAYV,EAAOU,UAAS,SAC5BC,EAAWX,EAAOW,UAChB,CAAC,GAEL3hC,KAAKwnC,MAAQ,KACbxnC,KAAKgD,QAAU,CACbi+B,kBACAM,iBACAE,qBACAD,iBACAM,iBACAthC,WACAkhC,YACAC,YAGF3hC,KAAKwP,QAAUyxB,EAAkBzxB,EAAUA,EAAQqJ,cACnD7Y,KAAKwnC,MAtGT,SAAoBh4B,EAASxM,EAAU,CAAC,GACtC,OAAOwM,EAAQ/Q,MANA,KAMgBO,KAAK+G,IAClC,IAAIyhC,EAAQzhC,EACTwJ,OACA9Q,MAAM2oC,GACN1oC,QAAQqH,GAASA,KAAUA,EAAKwJ,SAE/B8uB,EAAU,GACd,IAAK,IAAI1zB,EAAI,EAAG4P,EAAMitB,EAAMtqC,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CACnD,MAAM88B,EAAYD,EAAM78B,GAGxB,IAAI+8B,GAAQ,EACRpG,GAAO,EACX,MAAQoG,KAAWpG,EAAM6F,GAAc,CACrC,MAAMQ,EAAWX,EAAU1F,GAC3B,IAAIzwB,EAAQ82B,EAAStB,aAAaoB,GAC9B52B,IACFwtB,EAAQl6B,KAAK,IAAIwjC,EAAS92B,EAAO7N,IACjC0kC,GAAQ,EAEZ,CAEA,IAAIA,EAMJ,IADApG,GAAO,IACEA,EAAM6F,GAAc,CAC3B,MAAMQ,EAAWX,EAAU1F,GAC3B,IAAIzwB,EAAQ82B,EAASnB,cAAciB,GACnC,GAAI52B,EAAO,CACTwtB,EAAQl6B,KAAK,IAAIwjC,EAAS92B,EAAO7N,IACjC,KACF,CACF,CACF,CAEA,OAAOq7B,IAEX,CA6DiBuJ,CAAW5nC,KAAKwP,QAASxP,KAAKgD,QAC7C,CAEA,gBAAO6kC,CAAUjQ,EAAG50B,GAClB,OAAOA,EAAQ4+B,iBACjB,CAEA,QAAAoE,CAAS9B,GACP,MAAMsD,EAAQxnC,KAAKwnC,MAEnB,IAAKA,EACH,MAAO,CACLrC,SAAS,EACT9D,MAAO,GAIX,MAAM,eAAEE,EAAc,gBAAEN,GAAoBjhC,KAAKgD,QAEjDkhC,EAAOjD,EAAkBiD,EAAOA,EAAKrrB,cAErC,IAAIivB,EAAa,EACb7B,EAAa,GACbC,EAAa,EAGjB,IAAK,IAAIv7B,EAAI,EAAGo9B,EAAOP,EAAMtqC,OAAQyN,EAAIo9B,EAAMp9B,GAAK,EAAG,CACrD,MAAMq8B,EAAYQ,EAAM78B,GAGxBs7B,EAAW/oC,OAAS,EACpB4qC,EAAa,EAGb,IAAK,IAAI/0B,EAAI,EAAG+a,EAAOkZ,EAAU9pC,OAAQ6V,EAAI+a,EAAM/a,GAAK,EAAG,CACzD,MAAM40B,EAAWX,EAAUj0B,IACrB,QAAEoyB,EAAO,QAAEC,EAAO,MAAE/D,GAAUsG,EAASh4B,OAAOu0B,GAEpD,IAAIiB,EAWG,CACLe,EAAa,EACb4B,EAAa,EACb7B,EAAW/oC,OAAS,EACpB,KACF,CAbE,GAFA4qC,GAAc,EACd5B,GAAc7E,EACVE,EAAgB,CAClB,MAAM/wB,EAAOm3B,EAASzpB,YAAY1N,KAC9B62B,EAActnB,IAAIvP,GACpBy1B,EAAa,IAAIA,KAAeb,GAEhCa,EAAW9hC,KAAKihC,EAEpB,CAOJ,CAGA,GAAI0C,EAAY,CACd,IAAIjuB,EAAS,CACXsrB,SAAS,EACT9D,MAAO6E,EAAa4B,GAOtB,OAJIvG,IACF1nB,EAAOurB,QAAUa,GAGZpsB,CACT,CACF,CAGA,MAAO,CACLsrB,SAAS,EACT9D,MAAO,EAEX,EAGF,MAAM2G,EAAsB,GAM5B,SAASC,EAAez4B,EAASxM,GAC/B,IAAK,IAAI2H,EAAI,EAAG4P,EAAMytB,EAAoB9qC,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CACjE,IAAIu9B,EAAgBF,EAAoBr9B,GACxC,GAAIu9B,EAAcL,UAAUr4B,EAASxM,GACnC,OAAO,IAAIklC,EAAc14B,EAASxM,EAEtC,CAEA,OAAO,IAAIyiC,EAAYj2B,EAASxM,EAClC,CAEA,MAAMmlC,EACC,OADDA,EAEA,MAGAC,EACE,QADFA,EAEK,OAGLC,EAAgBb,MACjBA,EAAMW,KAAwBX,EAAMW,IAOnCG,EAAqBd,IAAU,CACnC,CAACW,GAAsBxqC,OAAOC,KAAK4pC,GAAOxoC,KAAKC,IAAQ,CACrD,CAACA,GAAMuoC,EAAMvoC,SAMjB,SAAS2S,EAAM41B,EAAOxkC,GAAS,KAAE8kB,GAAO,GAAS,CAAC,GAChD,MAAMvgB,EAAQigC,IACZ,IAAI5pC,EAAOD,OAAOC,KAAK4pC,GAEvB,MAAMe,EAjBK,CAACf,KAAYA,EAAMY,GAiBVI,CAAOhB,GAE3B,IAAKe,GAAe3qC,EAAKV,OAAS,IAAMmrC,EAAab,GACnD,OAAOjgC,EAAK+gC,EAAkBd,IAGhC,GArBW,CAACA,IACbvhC,EAAQuhC,IAAUzH,EAASyH,KAAWa,EAAab,GAoB9CiB,CAAOjB,GAAQ,CACjB,MAAMvoC,EAAMspC,EAAcf,EAAMY,GAAgBxqC,EAAK,GAE/C4R,EAAU+4B,EAAcf,EAAMY,GAAmBZ,EAAMvoC,GAE7D,IAAK2gC,EAASpwB,GACZ,MAAM,IAAI7G,MAnxC2B,CAAC1J,GAC5C,yBAAyBA,IAkxCHypC,CAAqCzpC,IAGvD,MAAMvB,EAAM,CACVkjC,MAAOG,EAAY9hC,GACnBuQ,WAOF,OAJIsY,IACFpqB,EAAIiqC,SAAWM,EAAez4B,EAASxM,IAGlCtF,CACT,CAEA,IAAI2S,EAAO,CACTK,SAAU,GACVi4B,SAAU/qC,EAAK,IAajB,OAVAA,EAAKC,SAASoB,IACZ,MAAMwI,EAAQ+/B,EAAMvoC,GAEhBgH,EAAQwB,IACVA,EAAM5J,SAASkI,IACbsK,EAAKK,SAASvM,KAAKoD,EAAKxB,GAAM,GAElC,IAGKsK,GAOT,OAJKg4B,EAAab,KAChBA,EAAQc,EAAkBd,IAGrBjgC,EAAKigC,EACd,CAuBA,SAASoB,EAAiB/uB,EAAQ9Z,GAChC,MAAM4mC,EAAU9sB,EAAO8sB,QACvB5mC,EAAK4mC,QAAU,GAEV1G,EAAU0G,IAIfA,EAAQ9oC,SAASkb,IACf,IAAKknB,EAAUlnB,EAAMqsB,WAAarsB,EAAMqsB,QAAQloC,OAC9C,OAGF,MAAM,QAAEkoC,EAAO,MAAE39B,GAAUsR,EAE3B,IAAIrb,EAAM,CACR0nC,UACA39B,SAGEsR,EAAM9Z,MACRvB,EAAIuB,IAAM8Z,EAAM9Z,IAAIkyB,KAGlBpY,EAAMuoB,KAAO,IACf5jC,EAAImrC,SAAW9vB,EAAMuoB,KAGvBvhC,EAAK4mC,QAAQxiC,KAAKzG,EAAI,GAE1B,CAEA,SAASorC,EAAejvB,EAAQ9Z,GAC9BA,EAAKshC,MAAQxnB,EAAOwnB,KACtB,CAiCA,MAAM0H,EACJ,WAAA7qB,CAAYwkB,EAAM1/B,EAAU,CAAC,EAAG4M,GAC9B5P,KAAKgD,QAAU,IAAKg+B,KAAWh+B,GAG7BhD,KAAKgD,QAAQ4+B,kBAMf5hC,KAAKgpC,UAAY,IAAI3I,EAASrgC,KAAKgD,QAAQpF,MAE3CoC,KAAKipC,cAAcvG,EAAM9yB,EAC3B,CAEA,aAAAq5B,CAAcvG,EAAM9yB,GAGlB,GAFA5P,KAAKkpC,MAAQxG,EAET9yB,KAAWA,aAAiBsyB,GAC9B,MAAM,IAAIv5B,MAz6Ca,0BA46CzB3I,KAAKmpC,SACHv5B,GACA6zB,EAAYzjC,KAAKgD,QAAQpF,KAAMoC,KAAKkpC,MAAO,CACzCrI,MAAO7gC,KAAKgD,QAAQ69B,MACpBmB,gBAAiBhiC,KAAKgD,QAAQg/B,iBAEpC,CAEA,GAAAzK,CAAIuL,GACG7C,EAAU6C,KAIf9iC,KAAKkpC,MAAM/kC,KAAK2+B,GAChB9iC,KAAKmpC,SAAS5R,IAAIuL,GACpB,CAEA,MAAAsG,CAAOC,EAAY,KAAoB,GACrC,MAAMhL,EAAU,GAEhB,IAAK,IAAI1zB,EAAI,EAAG4P,EAAMva,KAAKkpC,MAAMhsC,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CACxD,MAAMm4B,EAAM9iC,KAAKkpC,MAAMv+B,GACnB0+B,EAAUvG,EAAKn4B,KACjB3K,KAAKkjC,SAASv4B,GACdA,GAAK,EACL4P,GAAO,EAEP8jB,EAAQl6B,KAAK2+B,GAEjB,CAEA,OAAOzE,CACT,CAEA,QAAA6E,CAAS5B,GACPthC,KAAKkpC,MAAMhlB,OAAOod,EAAK,GACvBthC,KAAKmpC,SAASjG,SAAS5B,EACzB,CAEA,QAAAgI,GACE,OAAOtpC,KAAKmpC,QACd,CAEA,MAAAx5B,CAAO63B,GAAO,MAAE5gC,GAAQ,GAAO,CAAC,GAC9B,MAAM,eACJ26B,EAAc,aACdL,EAAY,WACZC,EAAU,OACVC,EAAM,gBACNW,GACE/hC,KAAKgD,QAET,IAAIq7B,EAAUuB,EAAS4H,GACnB5H,EAAS5/B,KAAKkpC,MAAM,IAClBlpC,KAAKupC,kBAAkB/B,GACvBxnC,KAAKwpC,kBAAkBhC,GACzBxnC,KAAKypC,eAAejC,GAYxB,OAlLJ,SACEnJ,GACA,gBAAE0D,EAAkBf,EAAOe,kBAE3B1D,EAAQxgC,SAASgc,IACf,IAAIqsB,EAAa,EAEjBrsB,EAAO8sB,QAAQ9oC,SAAQ,EAAGoB,MAAKkjC,OAAMd,YACnC,MAAMX,EAASzhC,EAAMA,EAAIyhC,OAAS,KAElCwF,GAAcvhC,KAAKgD,IACP,IAAV05B,GAAeX,EAASnG,OAAOmP,QAAUrI,GACxCX,GAAU,IAAMqB,EAAkB,EAAII,GACxC,IAGHtoB,EAAOwnB,MAAQ6E,CAAU,GAE7B,CAsJIyD,CAAatL,EAAS,CAAE0D,oBAEpBZ,GACF9C,EAAQuL,KAAKxI,GAGXvB,EAASj5B,IAAUA,GAAS,IAC9By3B,EAAUA,EAAQtuB,MAAM,EAAGnJ,IAvHjC,SACEy3B,EACAqE,GACA,eACEnB,EAAiBP,EAAOO,eAAc,aACtCL,EAAeF,EAAOE,cACpB,CAAC,GAEL,MAAM2I,EAAe,GAKrB,OAHItI,GAAgBsI,EAAa1lC,KAAKykC,GAClC1H,GAAc2I,EAAa1lC,KAAK2kC,GAE7BzK,EAAQr/B,KAAK6a,IAClB,MAAM,IAAEynB,GAAQznB,EAEV9Z,EAAO,CACXgG,KAAM28B,EAAKpB,GACXuH,SAAUvH,GASZ,OANIuI,EAAa3sC,QACf2sC,EAAahsC,SAASisC,IACpBA,EAAYjwB,EAAQ9Z,EAAK,IAItBA,IAEX,CA6FW06B,CAAO4D,EAASr+B,KAAKkpC,MAAO,CACjC3H,iBACAL,gBAEJ,CAEA,iBAAAqI,CAAkB/B,GAChB,MAAMG,EAAWM,EAAeT,EAAOxnC,KAAKgD,UACtC,QAAE2/B,GAAY3iC,KAAKmpC,SACnB9K,EAAU,GAmBhB,OAhBAsE,EAAQ9kC,SAAQ,EAAGozB,EAAGiT,EAAMv5B,EAAG22B,EAAKl2B,EAAG+2B,MACrC,IAAKlC,EAAUiE,GACb,OAGF,MAAM,QAAEiB,EAAO,MAAE9D,EAAK,QAAE+D,GAAYuC,EAAS3B,SAAS9B,GAElDiB,GACF9G,EAAQl6B,KAAK,CACX4B,KAAMm+B,EACN5C,MACAqF,QAAS,CAAC,CAAEtF,QAAO55B,MAAOy8B,EAAM/B,OAAMiD,aAE1C,IAGK/G,CACT,CAEA,cAAAoL,CAAejC,GAEb,MAAMuC,EAAan4B,EAAM41B,EAAOxnC,KAAKgD,SAE/BgnC,EAAW,CAAC35B,EAAMtK,EAAMu7B,KAC5B,IAAKjxB,EAAKK,SAAU,CAClB,MAAM,MAAEkwB,EAAK,SAAE+G,GAAat3B,EAEtBs2B,EAAU3mC,KAAKiqC,aAAa,CAChChrC,IAAKe,KAAKgpC,UAAUr1B,IAAIitB,GACxBn5B,MAAOzH,KAAKmpC,SAAShG,uBAAuBp9B,EAAM66B,GAClD+G,aAGF,OAAIhB,GAAWA,EAAQzpC,OACd,CACL,CACEokC,MACAv7B,OACA4gC,YAKC,EACT,CAEA,MAAMpkC,EAAM,GACZ,IAAK,IAAIoI,EAAI,EAAG4P,EAAMlK,EAAKK,SAASxT,OAAQyN,EAAI4P,EAAK5P,GAAK,EAAG,CAC3D,MAAM0S,EAAQhN,EAAKK,SAAS/F,GACtBkP,EAASmwB,EAAS3sB,EAAOtX,EAAMu7B,GACrC,GAAIznB,EAAO3c,OACTqF,EAAI4B,QAAQ0V,QACP,GAAIxJ,EAAKs4B,WAAaR,EAC3B,MAAO,EAEX,CACA,OAAO5lC,GAGHogC,EAAU3iC,KAAKmpC,SAASxG,QACxBuH,EAAY,CAAC,EACb7L,EAAU,GAmBhB,OAjBAsE,EAAQ9kC,SAAQ,EAAGg5B,EAAG9wB,EAAM4E,EAAG22B,MAC7B,GAAIrB,EAAUl6B,GAAO,CACnB,IAAIokC,EAAaH,EAASD,EAAYhkC,EAAMu7B,GAExC6I,EAAWjtC,SAERgtC,EAAU5I,KACb4I,EAAU5I,GAAO,CAAEA,MAAKv7B,OAAM4gC,QAAS,IACvCtI,EAAQl6B,KAAK+lC,EAAU5I,KAEzB6I,EAAWtsC,SAAQ,EAAG8oC,cACpBuD,EAAU5I,GAAKqF,QAAQxiC,QAAQwiC,EAAQ,IAG7C,KAGKtI,CACT,CAEA,iBAAAmL,CAAkBhC,GAChB,MAAMG,EAAWM,EAAeT,EAAOxnC,KAAKgD,UACtC,KAAEpF,EAAI,QAAE+kC,GAAY3iC,KAAKmpC,SACzB9K,EAAU,GA8BhB,OA3BAsE,EAAQ9kC,SAAQ,EAAGg5B,EAAG9wB,EAAM4E,EAAG22B,MAC7B,IAAKrB,EAAUl6B,GACb,OAGF,IAAI4gC,EAAU,GAGd/oC,EAAKC,SAAQ,CAACoB,EAAKokC,KACjBsD,EAAQxiC,QACHnE,KAAKiqC,aAAa,CACnBhrC,MACAwI,MAAO1B,EAAKs9B,GACZsE,aAEH,IAGChB,EAAQzpC,QACVmhC,EAAQl6B,KAAK,CACXm9B,MACAv7B,OACA4gC,WAEJ,IAGKtI,CACT,CACA,YAAA4L,EAAa,IAAEhrC,EAAG,MAAEwI,EAAK,SAAEkgC,IACzB,IAAK1H,EAAUx4B,GACb,MAAO,GAGT,IAAIk/B,EAAU,GAEd,GAAI1gC,EAAQwB,GACVA,EAAM5J,SAAQ,EAAGozB,EAAGiT,EAAMv5B,EAAG22B,EAAKl2B,EAAG+2B,MACnC,IAAKlC,EAAUiE,GACb,OAGF,MAAM,QAAEiB,EAAO,MAAE9D,EAAK,QAAE+D,GAAYuC,EAAS3B,SAAS9B,GAElDiB,GACFwB,EAAQxiC,KAAK,CACXk9B,QACApiC,MACAwI,MAAOy8B,EACP5C,MACAa,OACAiD,WAEJ,QAEG,CACL,MAAQnU,EAAGiT,EAAM94B,EAAG+2B,GAAS16B,GAEvB,QAAE09B,EAAO,MAAE9D,EAAK,QAAE+D,GAAYuC,EAAS3B,SAAS9B,GAElDiB,GACFwB,EAAQxiC,KAAK,CAAEk9B,QAAOpiC,MAAKwI,MAAOy8B,EAAM/B,OAAMiD,WAElD,CAEA,OAAOuB,CACT,EAGFoC,EAAKhlC,QAAU,QACfglC,EAAKtF,YAAcA,EACnBsF,EAAKqB,WArxCL,SACErqC,GACA,MAAE8gC,EAAQG,EAAOH,MAAK,gBAAEmB,EAAkBhB,EAAOgB,iBAAoB,CAAC,GAEtE,MAAM,KAAEpkC,EAAI,QAAE+kC,GAAY5iC,EACpB2jC,EAAU,IAAIxB,EAAU,CAAErB,QAAOmB,oBAGvC,OAFA0B,EAAQd,QAAQhlC,GAChB8lC,EAAQlB,gBAAgBG,GACjBe,CACT,EA6wCAqF,EAAKsB,OAASrJ,EAGZ+H,EAAKnB,WAAah2B,EApcpB,YAAqBrU,GACnByqC,EAAoB7jC,QAAQ5G,EAC9B,CAscE+sC,CAAS/C,+MChvDX,SAASgD,EAAWh+B,GAClB,MAA8B,MAAvBA,EAAS8W,OAAO,EACzB,CAGA,SAASmnB,EAAU/kB,EAAM7V,GACvB,IAAK,IAAIjF,EAAIiF,EAAO9R,EAAI6M,EAAI,EAAGS,EAAIqa,EAAKvoB,OAAQY,EAAIsN,EAAGT,GAAK,EAAG7M,GAAK,EAClE2nB,EAAK9a,GAAK8a,EAAK3nB,GAGjB2nB,EAAKpb,KACP,CA+DA,MA5DA,SAAyBogC,EAAI9nB,QACd9U,IAAT8U,IAAoBA,EAAO,IAE/B,IAkBI+nB,EAlBAC,EAAWF,GAAMA,EAAGhsC,MAAM,MAAS,GACnCmsC,EAAajoB,GAAQA,EAAKlkB,MAAM,MAAS,GAEzCosC,EAAUJ,GAAMF,EAAWE,GAC3BK,EAAYnoB,GAAQ4nB,EAAW5nB,GAC/BooB,EAAaF,GAAWC,EAW5B,GATIL,GAAMF,EAAWE,GAEnBG,EAAYD,EACHA,EAAQztC,SAEjB0tC,EAAUvgC,MACVugC,EAAYA,EAAU1rC,OAAOyrC,KAG1BC,EAAU1tC,OAAQ,MAAO,IAG9B,GAAI0tC,EAAU1tC,OAAQ,CACpB,IAAI8tC,EAAOJ,EAAUA,EAAU1tC,OAAS,GACxCwtC,EAA4B,MAATM,GAAyB,OAATA,GAA0B,KAATA,CACtD,MACEN,GAAmB,EAIrB,IADA,IAAIO,EAAK,EACAtgC,EAAIigC,EAAU1tC,OAAQyN,GAAK,EAAGA,IAAK,CAC1C,IAAIugC,EAAON,EAAUjgC,GAER,MAATugC,EACFV,EAAUI,EAAWjgC,GACH,OAATugC,GACTV,EAAUI,EAAWjgC,GACrBsgC,KACSA,IACTT,EAAUI,EAAWjgC,GACrBsgC,IAEJ,CAEA,IAAKF,EAAY,KAAOE,IAAMA,EAAIL,EAAUtgC,QAAQ,OAGlDygC,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOL,EAAWK,EAAU,KAExCA,EAAUtgC,QAAQ,IAEpB,IAAIuP,EAAS+wB,EAAUxrC,KAAK,KAI5B,OAFIsrC,GAA0C,MAAtB7wB,EAAOksB,QAAQ,KAAYlsB,GAAU,KAEtDA,CACT,ECxEA,SAAS,EAAQnc,GACf,OAAOA,EAAIs8B,QAAUt8B,EAAIs8B,UAAYr8B,OAAO2B,UAAU06B,QAAQx6B,KAAK9B,EACrE,CAiCA,MA/BA,SAASytC,EAAW9tC,EAAGC,GAErB,GAAID,IAAMC,EAAG,OAAO,EAGpB,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAI0I,MAAMC,QAAQ5I,GAChB,OACE2I,MAAMC,QAAQ3I,IACdD,EAAEH,SAAWI,EAAEJ,QACfG,EAAE+tC,OAAM,SAASrlC,EAAM6J,GACrB,OAAOu7B,EAAWplC,EAAMzI,EAAEsS,GAC5B,IAIJ,GAAiB,kBAANvS,GAA+B,kBAANC,EAAgB,CAClD,IAAI+tC,EAAS,EAAQhuC,GACjBiuC,EAAS,EAAQhuC,GAErB,OAAI+tC,IAAWhuC,GAAKiuC,IAAWhuC,EAAU6tC,EAAWE,EAAQC,GAErD3tC,OAAOC,KAAKD,OAAOsN,OAAO,CAAC,EAAG5N,EAAGC,IAAI8tC,OAAM,SAASnsC,GACzD,OAAOksC,EAAW9tC,EAAE4B,GAAM3B,EAAE2B,GAC9B,GACF,CAEA,OAAO,CACT,aC3BA,SAASssC,EAAgBzhC,GACvB,MAA0B,MAAnBA,EAAKuZ,OAAO,GAAavZ,EAAO,IAAMA,CAC/C,CACA,SAAS0hC,EAAkB1hC,GACzB,MAA0B,MAAnBA,EAAKuZ,OAAO,GAAavZ,EAAKi8B,OAAO,GAAKj8B,CACnD,CAIA,SAAS2hC,EAAc3hC,EAAMsZ,GAC3B,OAJF,SAAqBtZ,EAAMsZ,GACzB,OAA4D,IAArDtZ,EAAK+O,cAAc/N,QAAQsY,EAAOvK,iBAAuE,IAA/C,MAAM/N,QAAQhB,EAAKuZ,OAAOD,EAAOlmB,QACpG,CAESwuC,CAAY5hC,EAAMsZ,GAAUtZ,EAAKi8B,OAAO3iB,EAAOlmB,QAAU4M,CAClE,CACA,SAAS6hC,EAAmB7hC,GAC1B,MAAwC,MAAjCA,EAAKuZ,OAAOvZ,EAAK5M,OAAS,GAAa4M,EAAKiG,MAAM,GAAI,GAAKjG,CACpE,CAyBA,SAAS8hC,EAAWprC,GAClB,IAAI+L,EAAW/L,EAAS+L,SACpBoD,EAASnP,EAASmP,OAClBoE,EAAOvT,EAASuT,KAChBjK,EAAOyC,GAAY,IAGvB,OAFIoD,GAAqB,MAAXA,IAAgB7F,GAA6B,MAArB6F,EAAO0T,OAAO,GAAa1T,EAAS,IAAMA,GAC5EoE,GAAiB,MAATA,IAAcjK,GAA2B,MAAnBiK,EAAKsP,OAAO,GAAatP,EAAO,IAAMA,GACjEjK,CACT,CAEA,SAAS+hC,EAAe/hC,EAAMgiC,EAAO7sC,EAAK4kC,GACxC,IAAIrjC,EAEgB,kBAATsJ,GAETtJ,EAvCJ,SAAmBsJ,GACjB,IAAIyC,EAAWzC,GAAQ,IACnB6F,EAAS,GACToE,EAAO,GACPg4B,EAAYx/B,EAASzB,QAAQ,MAEd,IAAfihC,IACFh4B,EAAOxH,EAASw5B,OAAOgG,GACvBx/B,EAAWA,EAASw5B,OAAO,EAAGgG,IAGhC,IAAIC,EAAcz/B,EAASzB,QAAQ,KAOnC,OALqB,IAAjBkhC,IACFr8B,EAASpD,EAASw5B,OAAOiG,GACzBz/B,EAAWA,EAASw5B,OAAO,EAAGiG,IAGzB,CACLz/B,SAAUA,EACVoD,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BoE,KAAe,MAATA,EAAe,GAAKA,EAE9B,CAgBek4B,CAAUniC,GACrBtJ,EAASsrC,MAAQA,SAISj+B,KAD1BrN,GAAW,OAAS,CAAC,EAAGsJ,IACXyC,WAAwB/L,EAAS+L,SAAW,IAErD/L,EAASmP,OACuB,MAA9BnP,EAASmP,OAAO0T,OAAO,KAAY7iB,EAASmP,OAAS,IAAMnP,EAASmP,QAExEnP,EAASmP,OAAS,GAGhBnP,EAASuT,KACqB,MAA5BvT,EAASuT,KAAKsP,OAAO,KAAY7iB,EAASuT,KAAO,IAAMvT,EAASuT,MAEpEvT,EAASuT,KAAO,QAGJlG,IAAVi+B,QAA0Cj+B,IAAnBrN,EAASsrC,QAAqBtrC,EAASsrC,MAAQA,IAG5E,IACEtrC,EAAS+L,SAAW2/B,UAAU1rC,EAAS+L,SACzC,CAAE,MAAOxK,GACP,MAAIA,aAAaoqC,SACT,IAAIA,SAAS,aAAe3rC,EAAS+L,SAAxB,iFAEbxK,CAEV,CAkBA,OAhBI9C,IAAKuB,EAASvB,IAAMA,GAEpB4kC,EAEGrjC,EAAS+L,SAE6B,MAAhC/L,EAAS+L,SAAS8W,OAAO,KAClC7iB,EAAS+L,SAAW,EAAgB/L,EAAS+L,SAAUs3B,EAAgBt3B,WAFvE/L,EAAS+L,SAAWs3B,EAAgBt3B,SAMjC/L,EAAS+L,WACZ/L,EAAS+L,SAAW,KAIjB/L,CACT,CACA,SAAS4rC,EAAkB/uC,EAAGC,GAC5B,OAAOD,EAAEkP,WAAajP,EAAEiP,UAAYlP,EAAEsS,SAAWrS,EAAEqS,QAAUtS,EAAE0W,OAASzW,EAAEyW,MAAQ1W,EAAE4B,MAAQ3B,EAAE2B,KAAO,EAAW5B,EAAEyuC,MAAOxuC,EAAEwuC,MAC7H,CAEA,SAASO,IACP,IAAIC,EAAS,KAiCb,IAAIC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,KACtC,CACF,EAuDEI,oBArDF,SAA6BlsC,EAAU2E,EAAQwnC,EAAqBn7B,GAIlE,GAAc,MAAV86B,EAAgB,CAClB,IAAIzyB,EAA2B,oBAAXyyB,EAAwBA,EAAO9rC,EAAU2E,GAAUmnC,EAEjD,kBAAXzyB,EAC0B,oBAAxB8yB,EACTA,EAAoB9yB,EAAQrI,GAG5BA,GAAS,GAIXA,GAAoB,IAAXqI,EAEb,MACErI,GAAS,EAEb,EAiCEo7B,eA7BF,SAAwBvjC,GACtB,IAAIwjC,GAAW,EAEf,SAASC,IACHD,GAAUxjC,EAAG7L,WAAM,EAAQP,UACjC,CAGA,OADAsvC,EAAUpoC,KAAK2oC,GACR,WACLD,GAAW,EACXN,EAAYA,EAAU7tC,QAAO,SAAUqH,GACrC,OAAOA,IAAS+mC,CAClB,GACF,CACF,EAgBEC,gBAdF,WACE,IAAK,IAAI7wB,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAGzB8yB,EAAU1uC,SAAQ,SAAUivC,GAC1B,OAAOA,EAAStvC,WAAM,EAAQD,EAChC,GACF,EAQF,CAEA,IAAIwjB,IAAiC,qBAAXnhB,SAA0BA,OAAO0O,WAAY1O,OAAO0O,SAASC,eACvF,SAASy+B,EAAgB3uC,EAASmT,GAChCA,EAAS5R,OAAOqtC,QAAQ5uC,GAC1B,CAuCA,IAAI6uC,EAAgB,WAChBC,EAAkB,aAEtB,SAASC,IACP,IACE,OAAOxtC,OAAOytC,QAAQvB,OAAS,CAAC,CAClC,CAAE,MAAO/pC,GAGP,MAAO,CAAC,CACV,CACF,CAOA,SAASurC,EAAqB78B,QACd,IAAVA,IACFA,EAAQ,CAAC,GAGVsQ,IAAsG,QAAU,GACjH,IArDIwsB,EAqDAC,EAAgB5tC,OAAOytC,QACvBI,IArD+B,KAD/BF,EAAK3tC,OAAO8tC,UAAUC,WAClB7iC,QAAQ,gBAAuD,IAA/ByiC,EAAGziC,QAAQ,iBAA2D,IAAjCyiC,EAAGziC,QAAQ,mBAAqD,IAA1ByiC,EAAGziC,QAAQ,YAAqD,IAAjCyiC,EAAGziC,QAAQ,mBACtJlL,OAAOytC,SAAW,cAAeztC,OAAOytC,QAqD3CO,KA7CsD,IAAnDhuC,OAAO8tC,UAAUC,UAAU7iC,QAAQ,YA8CtC+iC,EAASp9B,EACTq9B,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOlB,oBAC/BA,OAAgD,IAA1BqB,EAAmChB,EAAkBgB,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAW19B,EAAM09B,SAAWxC,EAAmBJ,EAAgB96B,EAAM09B,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIjzB,EAAOizB,GAAgB,CAAC,EACxBpvC,EAAMmc,EAAKnc,IACX6sC,EAAQ1wB,EAAK0wB,MAEbwC,EAAmB1uC,OAAOY,SAI1BsJ,EAHWwkC,EAAiB/hC,SACnB+hC,EAAiB3+B,OACnB2+B,EAAiBv6B,KAI5B,OADIo6B,IAAUrkC,EAAO2hC,EAAc3hC,EAAMqkC,IAClCtC,EAAe/hC,EAAMgiC,EAAO7sC,EACrC,CAEA,SAASwhC,IACP,OAAO97B,KAAK4pC,SAAShvC,SAAS,IAAIwmC,OAAO,EAAGmI,EAC9C,CAEA,IAAIM,EAAoBnC,IAExB,SAASoC,EAASC,IAChB,OAASrB,EAASqB,GAElBrB,EAAQnwC,OAASswC,EAActwC,OAC/BsxC,EAAkBzB,gBAAgBM,EAAQ7sC,SAAU6sC,EAAQloC,OAC9D,CAEA,SAASwpC,EAAepkC,IApE1B,SAAmCA,GACjC,YAAuBsD,IAAhBtD,EAAMuhC,QAAiE,IAA1C4B,UAAUC,UAAU7iC,QAAQ,QAClE,EAoEQ8jC,CAA0BrkC,IAC9BskC,EAAUT,EAAe7jC,EAAMuhC,OACjC,CAEA,SAASgD,IACPD,EAAUT,EAAehB,KAC3B,CAEA,IAAI2B,GAAe,EAEnB,SAASF,EAAUruC,GACjB,GAAIuuC,EACFA,GAAe,EACfN,QACK,CAELD,EAAkB9B,oBAAoBlsC,EADzB,MAC2CmsC,GAAqB,SAAU9pC,GACjFA,EACF4rC,EAAS,CACPtpC,OAJO,MAKP3E,SAAUA,IASpB,SAAmBwuC,GACjB,IAAIC,EAAa5B,EAAQ7sC,SAIrB0uC,EAAUC,EAAQrkC,QAAQmkC,EAAWhwC,MACxB,IAAbiwC,IAAgBA,EAAU,GAC9B,IAAIE,EAAYD,EAAQrkC,QAAQkkC,EAAa/vC,MAC1B,IAAfmwC,IAAkBA,EAAY,GAClC,IAAIC,EAAQH,EAAUE,EAElBC,IACFN,GAAe,EACfO,EAAGD,GAEP,CArBQE,CAAU/uC,EAEd,GACF,CACF,CAmBA,IAAIgvC,EAAkBpB,EAAehB,KACjC+B,EAAU,CAACK,EAAgBvwC,KAE/B,SAASwwC,EAAWjvC,GAClB,OAAO2tC,EAAWvC,EAAWprC,EAC/B,CAsEA,SAAS8uC,EAAGlkC,GACVoiC,EAAc8B,GAAGlkC,EACnB,CAUA,IAAIskC,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,GACzBzvC,OAAOqM,iBAAiBihC,EAAeyB,GACnCf,GAAyBhuC,OAAOqM,iBAAiBkhC,EAAiB2B,IAC3C,IAAlBY,IACT9vC,OAAOghB,oBAAoBssB,EAAeyB,GACtCf,GAAyBhuC,OAAOghB,oBAAoBusB,EAAiB2B,GAE7E,CAEA,IAAIc,GAAY,EAiChB,IAAIvC,EAAU,CACZnwC,OAAQswC,EAActwC,OACtBiI,OAAQ,MACR3E,SAAUgvC,EACVC,WAAYA,EACZtrC,KApIF,SAAc2F,EAAMgiC,GAElB,IAAI3mC,EAAS,OACT3E,EAAWqrC,EAAe/hC,EAAMgiC,EAAOrL,IAAa4M,EAAQ7sC,UAChEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACrF,GAAKA,EAAL,CACA,IAAIgtC,EAAOJ,EAAWjvC,GAClBvB,EAAMuB,EAASvB,IACf6sC,EAAQtrC,EAASsrC,MAErB,GAAI2B,EAMF,GALAD,EAAcsC,UAAU,CACtB7wC,IAAKA,EACL6sC,MAAOA,GACN,KAAM+D,GAEL9B,EACFnuC,OAAOY,SAASqvC,KAAOA,MAClB,CACL,IAAIE,EAAYZ,EAAQrkC,QAAQuiC,EAAQ7sC,SAASvB,KAC7C+wC,EAAWb,EAAQp/B,MAAM,EAAGggC,EAAY,GAC5CC,EAAS7rC,KAAK3D,EAASvB,KACvBkwC,EAAUa,EACVvB,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,GAEd,MAGAZ,OAAOY,SAASqvC,KAAOA,CAzBV,CA2BjB,GACF,EAoGEhuC,QAlGF,SAAiBiI,EAAMgiC,GAErB,IAAI3mC,EAAS,UACT3E,EAAWqrC,EAAe/hC,EAAMgiC,EAAOrL,IAAa4M,EAAQ7sC,UAChEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACrF,GAAKA,EAAL,CACA,IAAIgtC,EAAOJ,EAAWjvC,GAClBvB,EAAMuB,EAASvB,IACf6sC,EAAQtrC,EAASsrC,MAErB,GAAI2B,EAMF,GALAD,EAAcyC,aAAa,CACzBhxC,IAAKA,EACL6sC,MAAOA,GACN,KAAM+D,GAEL9B,EACFnuC,OAAOY,SAASqB,QAAQguC,OACnB,CACL,IAAIE,EAAYZ,EAAQrkC,QAAQuiC,EAAQ7sC,SAASvB,MAC9B,IAAf8wC,IAAkBZ,EAAQY,GAAavvC,EAASvB,KACpDwvC,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,GAEd,MAGAZ,OAAOY,SAASqB,QAAQguC,EAvBX,CAyBjB,GACF,EAoEEP,GAAIA,EACJY,OA/DF,WACEZ,GAAI,EACN,EA8DEa,UA5DF,WACEb,EAAG,EACL,EA2DEc,MAzCF,SAAe9D,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI+D,EAAU7B,EAAkBhC,UAAUF,GAO1C,OALKsD,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdU,GACT,CACF,EAsBEC,OApBF,SAAgBxD,GACd,IAAIyD,EAAW/B,EAAkB5B,eAAeE,GAEhD,OADA6C,EAAkB,GACX,WACLA,GAAmB,GACnBY,GACF,CACF,GAeA,OAAOlD,CACT,CAEA,IAAImD,EAAoB,aACpBC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoB7mC,GAC9B,MAA0B,MAAnBA,EAAKuZ,OAAO,GAAavZ,EAAO,KAAO0hC,EAAkB1hC,EAClE,EACA8mC,WAAY,SAAoB9mC,GAC9B,MAA0B,MAAnBA,EAAKuZ,OAAO,GAAavZ,EAAKi8B,OAAO,GAAKj8B,CACnD,GAEF+mC,QAAS,CACPF,WAAYnF,EACZoF,WAAYrF,GAEduF,MAAO,CACLH,WAAYpF,EACZqF,WAAYrF,IAIhB,SAASwF,EAAU3vC,GACjB,IAAI2qC,EAAY3qC,EAAI0J,QAAQ,KAC5B,OAAsB,IAAfihC,EAAmB3qC,EAAMA,EAAI2O,MAAM,EAAGg8B,EAC/C,CAEA,SAASiF,IAGP,IAAInB,EAAOjwC,OAAOY,SAASqvC,KACvB9D,EAAY8D,EAAK/kC,QAAQ,KAC7B,OAAsB,IAAfihC,EAAmB,GAAK8D,EAAKtsB,UAAUwoB,EAAY,EAC5D,CAMA,SAASkF,EAAgBnnC,GACvBlK,OAAOY,SAASqB,QAAQkvC,EAAUnxC,OAAOY,SAASqvC,MAAQ,IAAM/lC,EAClE,CAEA,SAASonC,EAAkBzgC,QACX,IAAVA,IACFA,EAAQ,CAAC,GAGVsQ,IAAmG,QAAU,GAC9G,IAAIysB,EAAgB5tC,OAAOytC,QAEvBQ,GAnUGjuC,OAAO8tC,UAAUC,UAAU7iC,QAAQ,WAmU7B2F,GACTu9B,EAAwBH,EAAOlB,oBAC/BA,OAAgD,IAA1BqB,EAAmChB,EAAkBgB,EAC3EmD,EAAkBtD,EAAOuD,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDhD,EAAW19B,EAAM09B,SAAWxC,EAAmBJ,EAAgB96B,EAAM09B,WAAa,GAClFkD,EAAwBZ,EAAeW,GACvCT,EAAaU,EAAsBV,WACnCC,EAAaS,EAAsBT,WAEvC,SAASxC,IACP,IAAItkC,EAAO8mC,EAAWI,KAGtB,OADI7C,IAAUrkC,EAAO2hC,EAAc3hC,EAAMqkC,IAClCtC,EAAe/hC,EACxB,CAEA,IAAI0kC,EAAoBnC,IAExB,SAASoC,EAASC,IAChB,OAASrB,EAASqB,GAElBrB,EAAQnwC,OAASswC,EAActwC,OAC/BsxC,EAAkBzB,gBAAgBM,EAAQ7sC,SAAU6sC,EAAQloC,OAC9D,CAEA,IAAI4pC,GAAe,EACfuC,EAAa,KAMjB,SAASxC,IACP,IAL4BzxC,EAAGC,EAK3BwM,EAAOknC,IACPO,EAAcZ,EAAW7mC,GAE7B,GAAIA,IAASynC,EAEXN,EAAgBM,OACX,CACL,IAAI/wC,EAAW4tC,IACXoD,EAAenE,EAAQ7sC,SAC3B,IAAKuuC,IAdwBzxC,EAc2BkD,GAd9BnD,EAcgBm0C,GAbnCjlC,WAAajP,EAAEiP,UAAYlP,EAAEsS,SAAWrS,EAAEqS,QAAUtS,EAAE0W,OAASzW,EAAEyW,MAaL,OAEnE,GAAIu9B,IAAe1F,EAAWprC,GAAW,OAEzC8wC,EAAa,KAKjB,SAAmB9wC,GACjB,GAAIuuC,EACFA,GAAe,EACfN,QACK,CACL,IAAItpC,EAAS,MACbqpC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACjFA,EACF4rC,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,IASpB,SAAmBwuC,GACjB,IAAIC,EAAa5B,EAAQ7sC,SAIrB0uC,EAAUuC,EAASC,YAAY9F,EAAWqD,KAC7B,IAAbC,IAAgBA,EAAU,GAC9B,IAAIE,EAAYqC,EAASC,YAAY9F,EAAWoD,KAC7B,IAAfI,IAAkBA,EAAY,GAClC,IAAIC,EAAQH,EAAUE,EAElBC,IACFN,GAAe,EACfO,EAAGD,GAEP,CArBQE,CAAU/uC,EAEd,GACF,CACF,CArBIquC,CAAUruC,EACZ,CACF,CAuCA,IAAIsJ,EAAOknC,IACPO,EAAcZ,EAAW7mC,GACzBA,IAASynC,GAAaN,EAAgBM,GAC1C,IAAI/B,EAAkBpB,IAClBqD,EAAW,CAAC7F,EAAW4D,IAuE3B,SAASF,EAAGlkC,GAEVoiC,EAAc8B,GAAGlkC,EACnB,CAUA,IAAIskC,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,EACzBzvC,OAAOqM,iBAAiBukC,EAAmB1B,GAChB,IAAlBY,GACT9vC,OAAOghB,oBAAoB4vB,EAAmB1B,EAElD,CAEA,IAAIc,GAAY,EAiChB,IAAIvC,EAAU,CACZnwC,OAAQswC,EAActwC,OACtBiI,OAAQ,MACR3E,SAAUgvC,EACVC,WAnIF,SAAoBjvC,GAClB,IAAImxC,EAAUrjC,SAAS6jB,cAAc,QACjC0d,EAAO,GAMX,OAJI8B,GAAWA,EAAQt9B,aAAa,UAClCw7B,EAAOkB,EAAUnxC,OAAOY,SAASqvC,OAG5BA,EAAO,IAAMc,EAAWxC,EAAWvC,EAAWprC,GACvD,EA2HE2D,KAzHF,SAAc2F,EAAMgiC,GAElB,IAAI3mC,EAAS,OACT3E,EAAWqrC,EAAe/hC,OAAM+D,OAAWA,EAAWw/B,EAAQ7sC,UAClEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACrF,GAAKA,EAAL,CACA,IAAIiH,EAAO8hC,EAAWprC,GAClB+wC,EAAcZ,EAAWxC,EAAWrkC,GAGxC,GAFkBknC,MAAkBO,EAEnB,CAIfD,EAAaxnC,EAxIrB,SAAsBA,GACpBlK,OAAOY,SAASuT,KAAOjK,CACzB,CAuIQ8nC,CAAaL,GACb,IAAIxB,EAAY0B,EAASC,YAAY9F,EAAWyB,EAAQ7sC,WACpDqxC,EAAYJ,EAAS1hC,MAAM,EAAGggC,EAAY,GAC9C8B,EAAU1tC,KAAK2F,GACf2nC,EAAWI,EACXpD,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,GAEd,MAEEiuC,GArBa,CAuBjB,GACF,EA6FE5sC,QA3FF,SAAiBiI,EAAMgiC,GAErB,IAAI3mC,EAAS,UACT3E,EAAWqrC,EAAe/hC,OAAM+D,OAAWA,EAAWw/B,EAAQ7sC,UAClEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACrF,GAAKA,EAAL,CACA,IAAIiH,EAAO8hC,EAAWprC,GAClB+wC,EAAcZ,EAAWxC,EAAWrkC,GACtBknC,MAAkBO,IAMlCD,EAAaxnC,EACbmnC,EAAgBM,IAGlB,IAAIxB,EAAY0B,EAAS3mC,QAAQ8gC,EAAWyB,EAAQ7sC,YACjC,IAAfuvC,IAAkB0B,EAAS1B,GAAajmC,GAC5C2kC,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,GAjBG,CAmBjB,GACF,EAmEE8uC,GAAIA,EACJY,OA7DF,WACEZ,GAAI,EACN,EA4DEa,UA1DF,WACEb,EAAG,EACL,EAyDEc,MAzCF,SAAe9D,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI+D,EAAU7B,EAAkBhC,UAAUF,GAO1C,OALKsD,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdU,GACT,CACF,EAsBEC,OApBF,SAAgBxD,GACd,IAAIyD,EAAW/B,EAAkB5B,eAAeE,GAEhD,OADA6C,EAAkB,GACX,WACLA,GAAmB,GACnBY,GACF,CACF,GAeA,OAAOlD,CACT,CAEA,SAASyE,EAAM1mC,EAAG2mC,EAAYC,GAC5B,OAAOrtC,KAAK01B,IAAI11B,KAAK63B,IAAIpxB,EAAG2mC,GAAaC,EAC3C,CAMA,SAASC,EAAoBxhC,QACb,IAAVA,IACFA,EAAQ,CAAC,GAGX,IAAIo9B,EAASp9B,EACTk8B,EAAsBkB,EAAOlB,oBAC7BuF,EAAwBrE,EAAOsE,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBvE,EAAOwE,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDnE,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CO,EAAoBnC,IAExB,SAASoC,EAASC,IAChB,OAASrB,EAASqB,GAElBrB,EAAQnwC,OAASmwC,EAAQiF,QAAQp1C,OACjCsxC,EAAkBzB,gBAAgBM,EAAQ7sC,SAAU6sC,EAAQloC,OAC9D,CAEA,SAASs7B,IACP,OAAO97B,KAAK4pC,SAAShvC,SAAS,IAAIwmC,OAAO,EAAGmI,EAC9C,CAEA,IAAIt+B,EAAQkiC,EAAMO,EAAc,EAAGF,EAAej1C,OAAS,GACvDo1C,EAAUH,EAAenzC,KAAI,SAAUuzC,GACzC,OAAmC1G,EAAe0G,OAAO1kC,EAAjC,kBAAV0kC,EAAsD9R,IAAgD8R,EAAMtzC,KAAOwhC,IACnI,IAEIgP,EAAa7D,EAyCjB,SAAS0D,EAAGlkC,GACV,IAAIonC,EAAYV,EAAMzE,EAAQz9B,MAAQxE,EAAG,EAAGiiC,EAAQiF,QAAQp1C,OAAS,GAEjEsD,EAAW6sC,EAAQiF,QAAQE,GAC/BhE,EAAkB9B,oBAAoBlsC,EAFzB,MAE2CmsC,GAAqB,SAAU9pC,GACjFA,EACF4rC,EAAS,CACPtpC,OALO,MAMP3E,SAAUA,EACVoP,MAAO4iC,IAKT/D,GAEJ,GACF,CA2BA,IAAIpB,EAAU,CACZnwC,OAAQo1C,EAAQp1C,OAChBiI,OAAQ,MACR3E,SAAU8xC,EAAQ1iC,GAClBA,MAAOA,EACP0iC,QAASA,EACT7C,WAAYA,EACZtrC,KA1FF,SAAc2F,EAAMgiC,GAElB,IAAI3mC,EAAS,OACT3E,EAAWqrC,EAAe/hC,EAAMgiC,EAAOrL,IAAa4M,EAAQ7sC,UAChEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GACrF,GAAKA,EAAL,CACA,IACI2vC,EADYnF,EAAQz9B,MACI,EACxB6iC,EAAcpF,EAAQiF,QAAQviC,MAAM,GAEpC0iC,EAAYv1C,OAASs1C,EACvBC,EAAYvuB,OAAOsuB,EAAWC,EAAYv1C,OAASs1C,EAAWhyC,GAE9DiyC,EAAYtuC,KAAK3D,GAGnBiuC,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,EACVoP,MAAO4iC,EACPF,QAASG,GAfI,CAiBjB,GACF,EAoEE5wC,QAlEF,SAAiBiI,EAAMgiC,GAErB,IAAI3mC,EAAS,UACT3E,EAAWqrC,EAAe/hC,EAAMgiC,EAAOrL,IAAa4M,EAAQ7sC,UAChEguC,EAAkB9B,oBAAoBlsC,EAAU2E,EAAQwnC,GAAqB,SAAU9pC,GAChFA,IACLwqC,EAAQiF,QAAQjF,EAAQz9B,OAASpP,EACjCiuC,EAAS,CACPtpC,OAAQA,EACR3E,SAAUA,IAEd,GACF,EAuDE8uC,GAAIA,EACJY,OAnCF,WACEZ,GAAI,EACN,EAkCEa,UAhCF,WACEb,EAAG,EACL,EA+BEoD,MA7BF,SAAetnC,GACb,IAAIonC,EAAYnF,EAAQz9B,MAAQxE,EAChC,OAAOonC,GAAa,GAAKA,EAAYnF,EAAQiF,QAAQp1C,MACvD,EA2BEkzC,MAzBF,SAAe9D,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJkC,EAAkBhC,UAAUF,EACrC,EAoBEgE,OAlBF,SAAgBxD,GACd,OAAO0B,EAAkB5B,eAAeE,EAC1C,GAkBA,OAAOO,CACT,4JCn5BO,MAAMsF,EAAwB,CAACC,EAAM9a,KACxC,MAAM+a,EAAU,GACVptB,EAAO,GAwBb,OAvBAotB,EAAQ1uC,KAAK2zB,GACRA,GACD+a,EAAQ1uC,KAAKyuC,EAAK9a,QAElB8a,EAAKE,gBACLD,EAAQ1uC,KAAKyuC,EAAKG,eAEtBF,EACKn0C,OAAOs0C,SACPh0C,KAAKuzC,GAAUA,EAAMhzC,aACrB1B,SAAQ,SAAUo1C,GAInB,GAHKxtB,EAAKytB,SAASD,IACfxtB,EAAKthB,KAAK8uC,IAETL,EAAKE,eACN,OAEJ,MAAMK,EAAQF,EAAcx0C,MAAM,KACb,IAAjB00C,EAAMj2C,QACNuoB,EAAKthB,KAAK,GAAGgvC,EAAM,MAAMA,EAAM,MAEnC1tB,EAAKthB,KAAKgvC,EAAM,GACpB,IACO,IAAK1tB,EAAK,EAEd,MAAM2tB,EACT,WAAAl1B,CAAY00B,GACR5yC,KAAK4yC,KAAOA,EACZ5yC,KAAKqzC,SAAW,CAAC,EACjBrzC,KAAKsqC,SAAS,UAAWqI,EAC7B,CACA,QAAArI,CAASxS,EAAQwb,GACb,GAA8B,oBAAnBA,EAA+B,CACtC,MAAMz5B,EAASy5B,EACfA,EAAiB,IAAOz5B,CAC5B,CACA7Z,KAAKqzC,SAASvb,GAAUwb,CAC5B,CACA,GAAA3/B,CAAImkB,GACA,IAAI+a,EAAU7yC,KAAKqzC,SAASvb,IACxB93B,KAAKqzC,SAASrzC,KAAK4yC,KAAK9a,SACxB93B,KAAKqzC,SAASzxB,QAOlB,MANuB,oBAAZixB,IACPA,EAAUA,EAAQ7yC,KAAK4yC,KAAM9a,IAE3B+a,aAAmB7sC,QACrB6sC,EAAU,CAACA,IAERA,CACX,EC5CG,MAAMU,EARN,UAAuB,WAAEC,EAAU,YAAEC,GAAc,EAAI,QAAExc,GAAU,IACtE,OAAO,SAAUyc,EAAOtiC,GACpB,MAAO,CACHqiC,GAAyB,IAAVriC,EAAc,OAAS,GACtCoiC,EAAWpiC,EAAO6lB,IACpBv4B,OAAOs0C,QACb,CACJ,CACiCW,CAAc,CAC3CH,WCuKc,CAACpoC,EAAGwoC,KACpB,MAAMzoC,EAAIlN,OAAOmN,GAAG3M,MAAM,KAAMo1C,GAAM1oC,EAAE,GAAI2oC,EAAKvZ,OAAOpvB,EAAE,KAAOC,EAAG2oC,EAAMD,GAAM3oC,EAAE,GAAG4E,OAAO,GAAIikC,EAAOF,GAAM3oC,EAAE,GAAG4E,OAAO,GACzH,OAAI6jC,EAAmB,GAAPG,GAAoB,IAARC,EAAa,MAC9B,GAAPD,GAAoB,IAARC,EAAa,MAClB,GAAPD,GAAoB,IAARC,EAAa,MACzB,QACQ,GAAL5oC,GAAUyoC,EAAK,MAAQ,OAAO,ED5KnCJ,aAAa,IAEV,MAAMQ,EACT,WAAA/1B,CAAY00B,GACR5yC,KAAK4yC,KAAOA,EACZ5yC,KAAKqzC,SAAW,CAAC,EACjBrzC,KAAKsqC,SAAS,UAAWiJ,EAC7B,CACA,QAAAjJ,CAASxS,EAAQ0b,GACbxzC,KAAKqzC,SAASvb,GAAU0b,CAC5B,CACA,GAAA7/B,CAAImkB,GACA,OAAQ93B,KAAKqzC,SAASvb,IAClB93B,KAAKqzC,SAASrzC,KAAK4yC,KAAK9a,SACxB93B,KAAKqzC,SAAkB,OAC/B,0BEzBG,SAASa,EAAc3zB,GAC1B,OAAKA,EAGE5iB,OAAOC,KAAK2iB,GAAQnjB,QAAO,CAAC+2C,EAAQl1C,KACvCk1C,EAAO,IAAUl1C,IAAQshB,EAAOthB,GACzBk1C,IACR,CAAC,GALO,CAAC,CAMhB,CCTO,SAASC,EAAM3sC,GAClB,YAAiBoG,IAAVpG,GAAiC,OAAVA,CAClC,CC8CA,IACE4sC,EAAY,6CACZC,EAAW3vC,KAAK6yB,KAChB+c,EAAY5vC,KAAK+C,MAEjB8sC,EAAiB,qBACjBC,EAAgBD,EAAiB,yDAEjCE,EAAO,KACPC,EAAW,GACXC,EAAmB,iBAEnBC,EAAW,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAC7EC,EAAY,IAKZC,EAAM,IA0pFR,SAASC,EAAS5pC,GAChB,IAAIT,EAAQ,EAAJS,EACR,OAAOA,EAAI,GAAKA,IAAMT,EAAIA,EAAIA,EAAI,CACpC,CAIA,SAASsqC,EAAc53C,GAMrB,IALA,IAAI8N,EAAG+H,EACLvI,EAAI,EACJoI,EAAI1V,EAAEH,OACNgE,EAAI7D,EAAE,GAAK,GAENsN,EAAIoI,GAAI,CAGb,IAFA5H,EAAI9N,EAAEsN,KAAO,GACbuI,EAAIyhC,EAAWxpC,EAAEjO,OACVgW,IAAK/H,EAAI,IAAMA,GACtBjK,GAAKiK,CACP,CAGA,IAAK4H,EAAI7R,EAAEhE,OAA8B,KAAtBgE,EAAE2O,aAAakD,KAElC,OAAO7R,EAAE6O,MAAM,EAAGgD,EAAI,GAAK,EAC7B,CAIA,SAASmiC,EAAQliC,EAAGC,GAClB,IAAI5V,EAAGC,EACL63C,EAAKniC,EAAE0jB,EACP0e,EAAKniC,EAAEyjB,EACP/rB,EAAIqI,EAAE7H,EACN4H,EAAIE,EAAE9H,EACNrN,EAAIkV,EAAEjR,EACN60B,EAAI3jB,EAAElR,EAGR,IAAK4I,IAAMoI,EAAG,OAAO,KAMrB,GAJA1V,EAAI83C,IAAOA,EAAG,GACd73C,EAAI83C,IAAOA,EAAG,GAGV/3C,GAAKC,EAAG,OAAOD,EAAIC,EAAI,GAAKyV,EAAIpI,EAGpC,GAAIA,GAAKoI,EAAG,OAAOpI,EAMnB,GAJAtN,EAAIsN,EAAI,EACRrN,EAAIQ,GAAK84B,GAGJue,IAAOC,EAAI,OAAO93C,EAAI,GAAK63C,EAAK93C,EAAI,GAAK,EAG9C,IAAKC,EAAG,OAAOQ,EAAI84B,EAAIv5B,EAAI,GAAK,EAKhC,IAHA0V,GAAKjV,EAAIq3C,EAAGj4C,SAAW05B,EAAIwe,EAAGl4C,QAAUY,EAAI84B,EAGvCjsB,EAAI,EAAGA,EAAIoI,EAAGpI,IAAK,GAAIwqC,EAAGxqC,IAAMyqC,EAAGzqC,GAAI,OAAOwqC,EAAGxqC,GAAKyqC,EAAGzqC,GAAKtN,EAAI,GAAK,EAG5E,OAAOS,GAAK84B,EAAI,EAAI94B,EAAI84B,EAAIv5B,EAAI,GAAK,CACvC,CAMA,SAASg4C,EAASjqC,EAAGivB,EAAKmC,EAAKx3B,GAC7B,GAAIoG,EAAIivB,GAAOjvB,EAAIoxB,GAAOpxB,IAAMmpC,EAAUnpC,GACxC,MAAMzC,MACJ6rC,GAAkBxvC,GAAQ,aAA2B,iBAALoG,EAC7CA,EAAIivB,GAAOjvB,EAAIoxB,EAAM,kBAAoB,oBACzC,6BAA+Bv+B,OAAOmN,GAE/C,CAIA,SAASkqC,EAAMlqC,GACb,IAAItN,EAAIsN,EAAEsrB,EAAEx5B,OAAS,EACrB,OAAO83C,EAAS5pC,EAAErJ,EAAI4yC,IAAa72C,GAAKsN,EAAEsrB,EAAE54B,GAAK,GAAK,CACxD,CAGA,SAASy3C,EAAcl7B,EAAKtY,GAC1B,OAAQsY,EAAInd,OAAS,EAAImd,EAAIgJ,OAAO,GAAK,IAAMhJ,EAAItK,MAAM,GAAKsK,IAC5DtY,EAAI,EAAI,IAAM,MAAQA,CAC1B,CAGA,SAASyzC,EAAan7B,EAAKtY,EAAGmR,GAC5B,IAAIqH,EAAKk7B,EAGT,GAAI1zC,EAAI,EAAG,CAGT,IAAK0zC,EAAKviC,EAAI,MAAOnR,EAAG0zC,GAAMviC,GAC9BmH,EAAMo7B,EAAKp7B,CAGb,MAIE,KAAMtY,GAHNwY,EAAMF,EAAInd,QAGK,CACb,IAAKu4C,EAAKviC,EAAGnR,GAAKwY,IAAOxY,EAAG0zC,GAAMviC,GAClCmH,GAAOo7B,CACT,MAAW1zC,EAAIwY,IACbF,EAAMA,EAAItK,MAAM,EAAGhO,GAAK,IAAMsY,EAAItK,MAAMhO,IAI5C,OAAOsY,CACT,CAMO,ICv1FHq7B,EDu1FOC,EAhxFX,SAASre,EAAMse,GACb,IAAIC,EAAKC,EAAaC,EA4kBhBC,EAMAC,EAoqBAC,EACFC,EACAC,EACAC,EACAC,EAzvCFC,EAAIZ,EAAUr2C,UAAY,CAAE4e,YAAay3B,EAAWp2C,SAAU,KAAMy6B,QAAS,MAC7Ewc,EAAM,IAAIb,EAAU,GAUpBc,EAAiB,GAajBC,EAAgB,EAMhBC,GAAc,EAIdC,EAAa,GAMbC,GAAW,IAKXC,EAAU,IAGVC,GAAS,EAkBTC,EAAc,EAIdC,EAAgB,EAGhBC,EAAS,CACP9zB,OAAQ,GACR+zB,UAAW,EACXC,mBAAoB,EACpBC,eAAgB,IAChBC,iBAAkB,IAClBC,kBAAmB,EACnBC,uBAAwB,OACxBC,OAAQ,IAMVC,EAAW,uCACXC,GAAiC,EAgBnC,SAAShC,EAAU1kB,EAAG3zB,GACpB,IAAIuoC,EAAUnP,EAAGkhB,EAAa71C,EAAG4I,EAAGktC,EAAOt9B,EAAKF,EAC9CrH,EAAIhT,KAGN,KAAMgT,aAAa2iC,GAAY,OAAO,IAAIA,EAAU1kB,EAAG3zB,GAEvD,GAAS,MAALA,EAAW,CAEb,GAAI2zB,IAAwB,IAAnBA,EAAE6mB,aAYT,OAXA9kC,EAAE7H,EAAI8lB,EAAE9lB,QAEH8lB,EAAEyF,GAAKzF,EAAElvB,EAAI+0C,EAChB9jC,EAAE0jB,EAAI1jB,EAAEjR,EAAI,KACHkvB,EAAElvB,EAAI80C,EACf7jC,EAAE0jB,EAAI,CAAC1jB,EAAEjR,EAAI,IAEbiR,EAAEjR,EAAIkvB,EAAElvB,EACRiR,EAAE0jB,EAAIzF,EAAEyF,EAAE3mB,UAMd,IAAK8nC,EAAoB,iBAAL5mB,IAAsB,EAAJA,GAAS,EAAG,CAMhD,GAHAje,EAAE7H,EAAI,EAAI8lB,EAAI,GAAKA,GAAKA,GAAI,GAAK,EAG7BA,MAAQA,EAAG,CACb,IAAKlvB,EAAI,EAAG4I,EAAIsmB,EAAGtmB,GAAK,GAAIA,GAAK,GAAI5I,KASrC,YAPIA,EAAI+0C,EACN9jC,EAAE0jB,EAAI1jB,EAAEjR,EAAI,MAEZiR,EAAEjR,EAAIA,EACNiR,EAAE0jB,EAAI,CAACzF,IAIX,CAEA5W,EAAMpc,OAAOgzB,EACf,KAAO,CAEL,IAAKojB,EAAUvrC,KAAKuR,EAAMpc,OAAOgzB,IAAK,OAAO8kB,EAAa/iC,EAAGqH,EAAKw9B,GAElE7kC,EAAE7H,EAAyB,IAArBkP,EAAIxK,WAAW,IAAYwK,EAAMA,EAAItK,MAAM,IAAK,GAAK,CAC7D,EAGKhO,EAAIsY,EAAIvP,QAAQ,OAAS,IAAGuP,EAAMA,EAAIxY,QAAQ,IAAK,MAGnD8I,EAAI0P,EAAI1K,OAAO,OAAS,GAGvB5N,EAAI,IAAGA,EAAI4I,GACf5I,IAAMsY,EAAItK,MAAMpF,EAAI,GACpB0P,EAAMA,EAAIkJ,UAAU,EAAG5Y,IACd5I,EAAI,IAGbA,EAAIsY,EAAInd,OAGZ,KAAO,CAOL,GAJAm4C,EAAS/3C,EAAG,EAAGo6C,EAASx6C,OAAQ,QAIvB,IAALI,GAAWq6C,EAEb,OAAO/yC,EADPoO,EAAI,IAAI2iC,EAAU1kB,GACFwlB,EAAiBzjC,EAAEjR,EAAI,EAAG20C,GAK5C,GAFAr8B,EAAMpc,OAAOgzB,GAET4mB,EAAoB,iBAAL5mB,EAAe,CAGhC,GAAQ,EAAJA,GAAS,EAAG,OAAO8kB,EAAa/iC,EAAGqH,EAAKw9B,EAAOv6C,GAKnD,GAHA0V,EAAE7H,EAAI,EAAI8lB,EAAI,GAAK5W,EAAMA,EAAItK,MAAM,IAAK,GAAK,EAGzC4lC,EAAUoC,OAAS19B,EAAIxY,QAAQ,YAAa,IAAI3E,OAAS,GAC3D,MAAMyL,MACJ8rC,EAAgBxjB,EAEtB,MACEje,EAAE7H,EAA0B,KAAtBkP,EAAIxK,WAAW,IAAawK,EAAMA,EAAItK,MAAM,IAAK,GAAK,EAQ9D,IALA81B,EAAW6R,EAAS3nC,MAAM,EAAGzS,GAC7ByE,EAAI4I,EAAI,EAIH4P,EAAMF,EAAInd,OAAQyN,EAAI4P,EAAK5P,IAC9B,GAAIk7B,EAAS/6B,QAAQ4rB,EAAIrc,EAAIgJ,OAAO1Y,IAAM,EAAG,CAC3C,GAAS,KAAL+rB,GAGF,GAAI/rB,EAAI5I,EAAG,CACTA,EAAIwY,EACJ,QACF,OACK,IAAKq9B,IAGNv9B,GAAOA,EAAIiJ,gBAAkBjJ,EAAMA,EAAIxB,gBACvCwB,GAAOA,EAAIxB,gBAAkBwB,EAAMA,EAAIiJ,gBAAgB,CACzDs0B,GAAc,EACdjtC,GAAK,EACL5I,EAAI,EACJ,QACF,CAGF,OAAOg0C,EAAa/iC,EAAG/U,OAAOgzB,GAAI4mB,EAAOv6C,EAC3C,CAIFu6C,GAAQ,GAIH91C,GAHLsY,EAAMy7B,EAAYz7B,EAAK/c,EAAG,GAAI0V,EAAE7H,IAGnBL,QAAQ,OAAS,EAAGuP,EAAMA,EAAIxY,QAAQ,IAAK,IACnDE,EAAIsY,EAAInd,MACf,CAGA,IAAKyN,EAAI,EAAyB,KAAtB0P,EAAIxK,WAAWlF,GAAWA,KAGtC,IAAK4P,EAAMF,EAAInd,OAAkC,KAA1Bmd,EAAIxK,aAAa0K,KAExC,GAAIF,EAAMA,EAAItK,MAAMpF,IAAK4P,GAAM,CAI7B,GAHAA,GAAO5P,EAGHktC,GAASlC,EAAUoC,OACrBx9B,EAAM,KAAO0W,EAAI2jB,GAAoB3jB,IAAMsjB,EAAUtjB,IACnD,MAAMtoB,MACJ8rC,EAAiBzhC,EAAE7H,EAAI8lB,GAI7B,IAAKlvB,EAAIA,EAAI4I,EAAI,GAAKmsC,EAGpB9jC,EAAE0jB,EAAI1jB,EAAEjR,EAAI,UAGP,GAAIA,EAAI80C,EAGb7jC,EAAE0jB,EAAI,CAAC1jB,EAAEjR,EAAI,OACR,CAWL,GAVAiR,EAAEjR,EAAIA,EACNiR,EAAE0jB,EAAI,GAMN/rB,GAAK5I,EAAI,GAAK4yC,EACV5yC,EAAI,IAAG4I,GAAKgqC,GAEZhqC,EAAI4P,EAAK,CAGX,IAFI5P,GAAGqI,EAAE0jB,EAAEvyB,MAAMkW,EAAItK,MAAM,EAAGpF,IAEzB4P,GAAOo6B,EAAUhqC,EAAI4P,GACxBvH,EAAE0jB,EAAEvyB,MAAMkW,EAAItK,MAAMpF,EAAGA,GAAKgqC,IAG9BhqC,EAAIgqC,GAAYt6B,EAAMA,EAAItK,MAAMpF,IAAIzN,MACtC,MACEyN,GAAK4P,EAGP,KAAO5P,IAAK0P,GAAO,KACnBrH,EAAE0jB,EAAEvyB,MAAMkW,EACZ,CACF,MAGErH,EAAE0jB,EAAI,CAAC1jB,EAAEjR,EAAI,EAEjB,CA21BA,SAAS04B,EAAOrvB,EAAGT,EAAGqtC,EAAIrX,GACxB,IAAIsX,EAAIl2C,EAAGm2C,EAAI39B,EAAKF,EAKpB,GAHU,MAAN29B,EAAYA,EAAKtB,EAChBrB,EAAS2C,EAAI,EAAG,IAEhB5sC,EAAEsrB,EAAG,OAAOtrB,EAAE7L,WAKnB,GAHA04C,EAAK7sC,EAAEsrB,EAAE,GACTwhB,EAAK9sC,EAAErJ,EAEE,MAAL4I,EACF0P,EAAM46B,EAAc7pC,EAAEsrB,GACtBrc,EAAY,GAANsmB,GAAiB,GAANA,IAAYuX,GAAMvB,GAAcuB,GAAMtB,GACpDrB,EAAcl7B,EAAK69B,GACnB1C,EAAan7B,EAAK69B,EAAI,UAezB,GAVAn2C,GAHAqJ,EAAIxG,EAAM,IAAI+wC,EAAUvqC,GAAIT,EAAGqtC,IAGzBj2C,EAGNwY,GADAF,EAAM46B,EAAc7pC,EAAEsrB,IACZx5B,OAOA,GAANyjC,GAAiB,GAANA,IAAYh2B,GAAK5I,GAAKA,GAAK40C,GAAa,CAGrD,KAAOp8B,EAAM5P,EAAG0P,GAAO,IAAKE,KAC5BF,EAAMk7B,EAAcl7B,EAAKtY,EAG3B,MAKE,GAJA4I,GAAKutC,EACL79B,EAAMm7B,EAAan7B,EAAKtY,EAAG,KAGvBA,EAAI,EAAIwY,GACV,KAAM5P,EAAI,EAAG,IAAK0P,GAAO,IAAK1P,IAAK0P,GAAO,WAG1C,IADA1P,GAAK5I,EAAIwY,GACD,EAEN,IADIxY,EAAI,GAAKwY,IAAKF,GAAO,KAClB1P,IAAK0P,GAAO,KAM3B,OAAOjP,EAAED,EAAI,GAAK8sC,EAAK,IAAM59B,EAAMA,CACrC,CAKA,SAAS89B,EAAS56C,EAAM6N,GAKtB,IAJA,IAAItN,EAAGmV,EACLtI,EAAI,EACJqI,EAAI,IAAI2iC,EAAUp4C,EAAK,IAElBoN,EAAIpN,EAAKL,OAAQyN,OACtBsI,EAAI,IAAI0iC,EAAUp4C,EAAKoN,KAChBQ,IAAMrN,EAAIo3C,EAAQliC,EAAGC,MAAQ7H,GAAW,IAANtN,GAAWkV,EAAE7H,IAAMC,KAC1D4H,EAAIC,GAIR,OAAOD,CACT,CAOA,SAASolC,EAAUhtC,EAAGsrB,EAAG30B,GAKvB,IAJA,IAAI4I,EAAI,EACNoI,EAAI2jB,EAAEx5B,QAGAw5B,IAAI3jB,GAAI2jB,EAAErsB,OAGlB,IAAK0I,EAAI2jB,EAAE,GAAI3jB,GAAK,GAAIA,GAAK,GAAIpI,KAkBjC,OAfK5I,EAAI4I,EAAI5I,EAAI4yC,EAAW,GAAKmC,EAG/B1rC,EAAEsrB,EAAItrB,EAAErJ,EAAI,KAGHA,EAAI80C,EAGbzrC,EAAEsrB,EAAI,CAACtrB,EAAErJ,EAAI,IAEbqJ,EAAErJ,EAAIA,EACNqJ,EAAEsrB,EAAIA,GAGDtrB,CACT,CAyDA,SAASxG,EAAMoO,EAAGqlC,EAAIL,EAAI92C,GACxB,IAAIy1B,EAAGhsB,EAAGoI,EAAGjV,EAAGsN,EAAGktC,EAAIC,EACrBpD,EAAKniC,EAAE0jB,EACP8hB,EAAS3D,EAGX,GAAIM,EAAI,CAQNsD,EAAK,CAGH,IAAK9hB,EAAI,EAAG74B,EAAIq3C,EAAG,GAAIr3C,GAAK,GAAIA,GAAK,GAAI64B,KAIzC,IAHAhsB,EAAI0tC,EAAK1hB,GAGD,EACNhsB,GAAKgqC,EACL5hC,EAAIslC,EACJjtC,EAAI+pC,EAAGmD,EAAK,GAGZC,EAAKhE,EAAUnpC,EAAIotC,EAAO7hB,EAAI5jB,EAAI,GAAK,SAIvC,IAFAulC,EAAKhE,GAAU3pC,EAAI,GAAKgqC,KAEdQ,EAAGj4C,OAAQ,CAEnB,IAAIgE,EASF,MAAMu3C,EANN,KAAOtD,EAAGj4C,QAAUo7C,EAAInD,EAAGhxC,KAAK,IAChCiH,EAAImtC,EAAK,EACT5hB,EAAI,EAEJ5jB,GADApI,GAAKgqC,GACGA,EAAW,CAIvB,KAAO,CAIL,IAHAvpC,EAAItN,EAAIq3C,EAAGmD,GAGN3hB,EAAI,EAAG74B,GAAK,GAAIA,GAAK,GAAI64B,KAU9B4hB,GAHAxlC,GAJApI,GAAKgqC,GAIGA,EAAWhe,GAGV,EAAI,EAAI4d,EAAUnpC,EAAIotC,EAAO7hB,EAAI5jB,EAAI,GAAK,GACrD,CAkBF,GAfA7R,EAAIA,GAAKm3C,EAAK,GAKC,MAAdlD,EAAGmD,EAAK,KAAevlC,EAAI,EAAI3H,EAAIA,EAAIotC,EAAO7hB,EAAI5jB,EAAI,IAEvD7R,EAAI82C,EAAK,GACLO,GAAMr3C,KAAa,GAAN82C,GAAWA,IAAOhlC,EAAE7H,EAAI,EAAI,EAAI,IAC9CotC,EAAK,GAAW,GAANA,IAAkB,GAANP,GAAW92C,GAAW,GAAN82C,IAGrCrtC,EAAI,EAAIoI,EAAI,EAAI3H,EAAIotC,EAAO7hB,EAAI5jB,GAAK,EAAIoiC,EAAGmD,EAAK,IAAM,GAAM,GAC7DN,IAAOhlC,EAAE7H,EAAI,EAAI,EAAI,IAEpBktC,EAAK,IAAMlD,EAAG,GAiBhB,OAhBAA,EAAGj4C,OAAS,EAERgE,GAGFm3C,GAAMrlC,EAAEjR,EAAI,EAGZozC,EAAG,GAAKqD,GAAQ7D,EAAW0D,EAAK1D,GAAYA,GAC5C3hC,EAAEjR,GAAKs2C,GAAM,GAIblD,EAAG,GAAKniC,EAAEjR,EAAI,EAGTiR,EAkBT,GAdS,GAALrI,GACFwqC,EAAGj4C,OAASo7C,EACZx6C,EAAI,EACJw6C,MAEAnD,EAAGj4C,OAASo7C,EAAK,EACjBx6C,EAAI06C,EAAO7D,EAAWhqC,GAItBwqC,EAAGmD,GAAMvlC,EAAI,EAAIwhC,EAAUnpC,EAAIotC,EAAO7hB,EAAI5jB,GAAKylC,EAAOzlC,IAAMjV,EAAI,GAI9DoD,EAEF,OAAU,CAGR,GAAU,GAANo3C,EAAS,CAGX,IAAK3tC,EAAI,EAAGoI,EAAIoiC,EAAG,GAAIpiC,GAAK,GAAIA,GAAK,GAAIpI,KAEzC,IADAoI,EAAIoiC,EAAG,IAAMr3C,EACRA,EAAI,EAAGiV,GAAK,GAAIA,GAAK,GAAIjV,KAG1B6M,GAAK7M,IACPkV,EAAEjR,IACEozC,EAAG,IAAMT,IAAMS,EAAG,GAAK,IAG7B,KACF,CAEE,GADAA,EAAGmD,IAAOx6C,EACNq3C,EAAGmD,IAAO5D,EAAM,MACpBS,EAAGmD,KAAQ,EACXx6C,EAAI,CAER,CAIF,IAAK6M,EAAIwqC,EAAGj4C,OAAoB,IAAZi4C,IAAKxqC,GAAUwqC,EAAG9qC,OACxC,CAGI2I,EAAEjR,EAAI+0C,EACR9jC,EAAE0jB,EAAI1jB,EAAEjR,EAAI,KAGHiR,EAAEjR,EAAI80C,IACf7jC,EAAE0jB,EAAI,CAAC1jB,EAAEjR,EAAI,GAEjB,CAEA,OAAOiR,CACT,CAGA,SAASgnB,EAAQ5uB,GACf,IAAIiP,EACFtY,EAAIqJ,EAAErJ,EAER,OAAU,OAANA,EAAmBqJ,EAAE7L,YAEzB8a,EAAM46B,EAAc7pC,EAAEsrB,GAEtBrc,EAAMtY,GAAK40C,GAAc50C,GAAK60C,EAC1BrB,EAAcl7B,EAAKtY,GACnByzC,EAAan7B,EAAKtY,EAAG,KAElBqJ,EAAED,EAAI,EAAI,IAAMkP,EAAMA,EAC/B,CAorCA,OAx1EAs7B,EAAUre,MAAQA,EAElBqe,EAAU+C,SAAW,EACrB/C,EAAUgD,WAAa,EACvBhD,EAAUiD,WAAa,EACvBjD,EAAUkD,YAAc,EACxBlD,EAAUmD,cAAgB,EAC1BnD,EAAUoD,gBAAkB,EAC5BpD,EAAUqD,gBAAkB,EAC5BrD,EAAUsD,gBAAkB,EAC5BtD,EAAUuD,iBAAmB,EAC7BvD,EAAUwD,OAAS,EAqCnBxD,EAAUtL,OAASsL,EAAU/hC,IAAM,SAAUlW,GAC3C,IAAI2N,EAAG4lB,EAEP,GAAW,MAAPvzB,EAAa,CAEf,GAAkB,iBAAPA,EA4HT,MAAMiL,MACJ6rC,EAAiB,oBAAsB92C,GAvFzC,GAlCIA,EAAI4N,eAAeD,EAAI,oBAEzBgqC,EADApkB,EAAIvzB,EAAI2N,GACI,EAAG0pC,EAAK1pC,GACpBorC,EAAiBxlB,GAKfvzB,EAAI4N,eAAeD,EAAI,mBAEzBgqC,EADApkB,EAAIvzB,EAAI2N,GACI,EAAG,EAAGA,GAClBqrC,EAAgBzlB,GAOdvzB,EAAI4N,eAAeD,EAAI,qBACzB4lB,EAAIvzB,EAAI2N,KACC4lB,EAAE5mB,KACTgrC,EAASpkB,EAAE,IAAK8jB,EAAK,EAAG1pC,GACxBgqC,EAASpkB,EAAE,GAAI,EAAG8jB,EAAK1pC,GACvBsrC,EAAa1lB,EAAE,GACf2lB,EAAa3lB,EAAE,KAEfokB,EAASpkB,GAAI8jB,EAAKA,EAAK1pC,GACvBsrC,IAAeC,EAAa3lB,EAAI,GAAKA,EAAIA,KAOzCvzB,EAAI4N,eAAeD,EAAI,SAEzB,IADA4lB,EAAIvzB,EAAI2N,KACC4lB,EAAE5mB,IACTgrC,EAASpkB,EAAE,IAAK8jB,GAAM,EAAG1pC,GACzBgqC,EAASpkB,EAAE,GAAI,EAAG8jB,EAAK1pC,GACvBwrC,EAAU5lB,EAAE,GACZ6lB,EAAU7lB,EAAE,OACP,CAEL,GADAokB,EAASpkB,GAAI8jB,EAAKA,EAAK1pC,IACnB4lB,EAGF,MAAMtoB,MACJ6rC,EAAiBnpC,EAAI,oBAAsB4lB,GAH7C4lB,IAAYC,EAAU7lB,EAAI,GAAKA,EAAIA,EAKvC,CAMF,GAAIvzB,EAAI4N,eAAeD,EAAI,UAAW,CAEpC,IADA4lB,EAAIvzB,EAAI2N,QACI4lB,EAcV,MAAMtoB,MACJ6rC,EAAiBnpC,EAAI,uBAAyB4lB,GAdhD,GAAIA,EAAG,CACL,GAAqB,oBAAVmoB,SAAyBA,SAClCA,OAAOC,kBAAmBD,OAAOE,YAIjC,MADAvC,GAAU9lB,EACJtoB,MACJ6rC,EAAiB,sBAJnBuC,EAAS9lB,CAMb,MACE8lB,EAAS9lB,CAMf,CAoBA,GAhBIvzB,EAAI4N,eAAeD,EAAI,iBAEzBgqC,EADApkB,EAAIvzB,EAAI2N,GACI,EAAG,EAAGA,GAClB2rC,EAAc/lB,GAKZvzB,EAAI4N,eAAeD,EAAI,mBAEzBgqC,EADApkB,EAAIvzB,EAAI2N,GACI,EAAG0pC,EAAK1pC,GACpB4rC,EAAgBhmB,GAKdvzB,EAAI4N,eAAeD,EAAI,UAAW,CAEpC,GAAgB,iBADhB4lB,EAAIvzB,EAAI2N,IAEH,MAAM1C,MACT6rC,EAAiBnpC,EAAI,mBAAqB4lB,GAFlBimB,EAASjmB,CAGrC,CAIA,GAAIvzB,EAAI4N,eAAeD,EAAI,YAAa,CAKtC,GAAgB,iBAJhB4lB,EAAIvzB,EAAI2N,KAIqB,wBAAwBvC,KAAKmoB,GAIxD,MAAMtoB,MACJ6rC,EAAiBnpC,EAAI,aAAe4lB,GAJtC0mB,EAAmD,cAAlB1mB,EAAElhB,MAAM,EAAG,IAC5C2nC,EAAWzmB,CAKf,CAQJ,CAEA,MAAO,CACLwlB,eAAgBA,EAChBC,cAAeA,EACf6C,eAAgB,CAAC5C,EAAYC,GAC7B4C,MAAO,CAAC3C,EAASC,GACjBC,OAAQA,EACRC,YAAaA,EACbC,cAAeA,EACfC,OAAQA,EACRQ,SAAUA,EAEd,EAYA/B,EAAU8D,YAAc,SAAUxoB,GAChC,IAAKA,IAAwB,IAAnBA,EAAE6mB,aAAuB,OAAO,EAC1C,IAAKnC,EAAUoC,MAAO,OAAO,EAE7B,IAAIptC,EAAGS,EACLsrB,EAAIzF,EAAEyF,EACN30B,EAAIkvB,EAAElvB,EACNoJ,EAAI8lB,EAAE9lB,EAERstC,EAAK,GAA2B,kBAAvB,CAAC,EAAEl5C,SAASC,KAAKk3B,IAExB,IAAW,IAANvrB,IAAkB,IAAPA,IAAapJ,IAAMgzC,GAAOhzC,GAAKgzC,GAAOhzC,IAAMwyC,EAAUxyC,GAAI,CAGxE,GAAa,IAAT20B,EAAE,GAAU,CACd,GAAU,IAAN30B,GAAwB,IAAb20B,EAAEx5B,OAAc,OAAO,EACtC,MAAMu7C,CACR,CAQA,IALA9tC,GAAK5I,EAAI,GAAK4yC,GACN,IAAGhqC,GAAKgqC,GAIZ12C,OAAOy4B,EAAE,IAAIx5B,QAAUyN,EAAG,CAE5B,IAAKA,EAAI,EAAGA,EAAI+rB,EAAEx5B,OAAQyN,IAExB,IADAS,EAAIsrB,EAAE/rB,IACE,GAAKS,GAAKspC,GAAQtpC,IAAMmpC,EAAUnpC,GAAI,MAAMqtC,EAItD,GAAU,IAANrtC,EAAS,OAAO,CACtB,CACF,OAGK,GAAU,OAANsrB,GAAoB,OAAN30B,IAAqB,OAANoJ,GAAoB,IAANA,IAAkB,IAAPA,GAC/D,OAAO,EAGT,MAAMxC,MACH6rC,EAAiB,sBAAwBvjB,EAC9C,EAQA0kB,EAAU+D,QAAU/D,EAAUnZ,IAAM,WAClC,OAAO2b,EAASl7C,WAAY,EAC9B,EAQA04C,EAAUgE,QAAUhE,EAAUtb,IAAM,WAClC,OAAO8d,EAASl7C,UAAW,EAC7B,EAaA04C,EAAUpH,QACJyH,EAAU,iBAMVC,EAAkBtxC,KAAK4pC,SAAWyH,EAAW,QAC9C,WAAc,OAAOzB,EAAU5vC,KAAK4pC,SAAWyH,EAAU,EACzD,WAAc,OAA2C,SAAlB,WAAhBrxC,KAAK4pC,SAAwB,IACnC,QAAhB5pC,KAAK4pC,SAAsB,EAAI,EAE5B,SAAUqL,GACf,IAAIv8C,EAAGC,EAAGyE,EAAGjE,EAAGmzB,EACdtmB,EAAI,EACJ+rB,EAAI,GACJmjB,EAAO,IAAIlE,EAAUa,GAOvB,GALU,MAANoD,EAAYA,EAAKnD,EAChBpB,EAASuE,EAAI,EAAG7E,GAErBj3C,EAAIw2C,EAASsF,EAAKjF,GAEdoC,EAGF,GAAIqC,OAAOC,gBAAiB,CAI1B,IAFAh8C,EAAI+7C,OAAOC,gBAAgB,IAAIS,YAAYh8C,GAAK,IAEzC6M,EAAI7M,IAQTmzB,EAAW,OAAP5zB,EAAEsN,IAAgBtN,EAAEsN,EAAI,KAAO,MAM1B,MACPrN,EAAI87C,OAAOC,gBAAgB,IAAIS,YAAY,IAC3Cz8C,EAAEsN,GAAKrN,EAAE,GACTD,EAAEsN,EAAI,GAAKrN,EAAE,KAKbo5B,EAAEvyB,KAAK8sB,EAAI,MACXtmB,GAAK,GAGTA,EAAI7M,EAAI,CAGV,KAAO,KAAIs7C,OAAOE,YA2BhB,MADAvC,GAAS,EACHpuC,MACJ6rC,EAAiB,sBAvBnB,IAFAn3C,EAAI+7C,OAAOE,YAAYx7C,GAAK,GAErB6M,EAAI7M,IAMTmzB,EAAmB,iBAAN,GAAP5zB,EAAEsN,IAA0C,cAAXtN,EAAEsN,EAAI,GAC9B,WAAXtN,EAAEsN,EAAI,GAAgC,SAAXtN,EAAEsN,EAAI,IACjCtN,EAAEsN,EAAI,IAAM,KAAOtN,EAAEsN,EAAI,IAAM,GAAKtN,EAAEsN,EAAI,KAErC,KACPyuC,OAAOE,YAAY,GAAGha,KAAKjiC,EAAGsN,IAI9B+rB,EAAEvyB,KAAK8sB,EAAI,MACXtmB,GAAK,GAGTA,EAAI7M,EAAI,CAKV,CAIF,IAAKi5C,EAEH,KAAOpsC,EAAI7M,IACTmzB,EAAIglB,KACI,OAAMvf,EAAE/rB,KAAOsmB,EAAI,MAc/B,IAVAnzB,EAAI44B,IAAI/rB,GACRivC,GAAMjF,EAGF72C,GAAK87C,IACP3oB,EAAI4jB,EAASF,EAAWiF,GACxBljB,EAAE/rB,GAAK4pC,EAAUz2C,EAAImzB,GAAKA,GAIZ,IAATyF,EAAE/rB,GAAU+rB,EAAErsB,MAAOM,KAG5B,GAAIA,EAAI,EACN+rB,EAAI,CAAC30B,EAAI,OACJ,CAGL,IAAKA,GAAK,EAAa,IAAT20B,EAAE,GAAUA,EAAExS,OAAO,EAAG,GAAIniB,GAAK4yC,GAG/C,IAAKhqC,EAAI,EAAGsmB,EAAIyF,EAAE,GAAIzF,GAAK,GAAIA,GAAK,GAAItmB,KAGpCA,EAAIgqC,IAAU5yC,GAAK4yC,EAAWhqC,EACpC,CAIA,OAFAkvC,EAAK93C,EAAIA,EACT83C,EAAKnjB,EAAIA,EACFmjB,CACT,GASFlE,EAAUoE,IAAM,WAId,IAHA,IAAIpvC,EAAI,EACNpN,EAAON,UACP88C,EAAM,IAAIpE,EAAUp4C,EAAK,IACpBoN,EAAIpN,EAAKL,QAAS68C,EAAMA,EAAIC,KAAKz8C,EAAKoN,MAC7C,OAAOovC,CACT,EAOAjE,EAAc,WACZ,IAAImE,EAAU,aAOd,SAASC,EAAU7/B,EAAK8/B,EAAQC,EAASvU,GAOvC,IANA,IAAI9yB,EAEFsnC,EADA93B,EAAM,CAAC,GAEP5X,EAAI,EACJ4P,EAAMF,EAAInd,OAELyN,EAAI4P,GAAM,CACf,IAAK8/B,EAAO93B,EAAIrlB,OAAQm9C,IAAQ93B,EAAI83B,IAASF,GAI7C,IAFA53B,EAAI,IAAMsjB,EAAS/6B,QAAQuP,EAAIgJ,OAAO1Y,MAEjCoI,EAAI,EAAGA,EAAIwP,EAAIrlB,OAAQ6V,IAEtBwP,EAAIxP,GAAKqnC,EAAU,IACH,MAAd73B,EAAIxP,EAAI,KAAYwP,EAAIxP,EAAI,GAAK,GACrCwP,EAAIxP,EAAI,IAAMwP,EAAIxP,GAAKqnC,EAAU,EACjC73B,EAAIxP,IAAMqnC,EAGhB,CAEA,OAAO73B,EAAI+3B,SACb,CAKA,OAAO,SAAUjgC,EAAK8/B,EAAQC,EAASG,EAAMC,GAC3C,IAAI3U,EAAUlP,EAAG50B,EAAGjE,EAAGoD,EAAG8R,EAAGmiC,EAAIliC,EAC/BtI,EAAI0P,EAAIvP,QAAQ,KAChB8uC,EAAKnD,EACLuB,EAAKtB,EA+BP,IA5BI/rC,GAAK,IACP7M,EAAIm5C,EAGJA,EAAgB,EAChB58B,EAAMA,EAAIxY,QAAQ,IAAK,IAEvBmR,GADAC,EAAI,IAAI0iC,EAAUwE,IACZxyC,IAAI0S,EAAInd,OAASyN,GACvBssC,EAAgBn5C,EAKhBmV,EAAEyjB,EAAIwjB,EAAU1E,EAAaP,EAAcjiC,EAAE0jB,GAAI1jB,EAAEjR,EAAG,KACrD,GAAIq4C,EAASH,GACdhnC,EAAElR,EAAIkR,EAAEyjB,EAAEx5B,QAUZ6E,EAAIjE,GALJq3C,EAAK+E,EAAU7/B,EAAK8/B,EAAQC,EAASI,GACjC3U,EAAW6R,EAAUuC,IACrBpU,EAAWoU,EAASvC,KAGbx6C,OAGO,GAAXi4C,IAAKr3C,GAASq3C,EAAG9qC,OAGxB,IAAK8qC,EAAG,GAAI,OAAOtP,EAASxiB,OAAO,GAqCnC,GAlCI1Y,EAAI,IACJ5I,GAEFiR,EAAE0jB,EAAIye,EACNniC,EAAEjR,EAAIA,EAGNiR,EAAE7H,EAAIovC,EAENpF,GADAniC,EAAI6iC,EAAI7iC,EAAGC,EAAG2mC,EAAI5B,EAAIoC,IACf1jB,EACPx1B,EAAI8R,EAAE9R,EACNa,EAAIiR,EAAEjR,GASR4I,EAAIwqC,EAHJxe,EAAI50B,EAAI63C,EAAK,GAOb97C,EAAIs8C,EAAU,EACdl5C,EAAIA,GAAKy1B,EAAI,GAAkB,MAAbwe,EAAGxe,EAAI,GAEzBz1B,EAAI82C,EAAK,GAAU,MAALrtC,GAAazJ,KAAa,GAAN82C,GAAWA,IAAOhlC,EAAE7H,EAAI,EAAI,EAAI,IAC1DR,EAAI7M,GAAK6M,GAAK7M,IAAW,GAANk6C,GAAW92C,GAAW,GAAN82C,GAAuB,EAAZ7C,EAAGxe,EAAI,IACtDqhB,IAAOhlC,EAAE7H,EAAI,EAAI,EAAI,IAKxBwrB,EAAI,IAAMwe,EAAG,GAGf96B,EAAMnZ,EAAIs0C,EAAa3P,EAASxiB,OAAO,IAAKu2B,EAAI/T,EAASxiB,OAAO,IAAMwiB,EAASxiB,OAAO,OACjF,CAML,GAHA8xB,EAAGj4C,OAASy5B,EAGRz1B,EAGF,MAAOk5C,IAAWjF,IAAKxe,GAAKyjB,GAC1BjF,EAAGxe,GAAK,EAEHA,MACD50B,EACFozC,EAAK,CAAC,GAAGj2C,OAAOi2C,IAMtB,IAAKr3C,EAAIq3C,EAAGj4C,QAASi4C,IAAKr3C,KAG1B,IAAK6M,EAAI,EAAG0P,EAAM,GAAI1P,GAAK7M,EAAGuc,GAAOwrB,EAASxiB,OAAO8xB,EAAGxqC,OAGxD0P,EAAMm7B,EAAan7B,EAAKtY,EAAG8jC,EAASxiB,OAAO,GAC7C,CAGA,OAAOhJ,CACT,CACD,CAnJa,GAuJdw7B,EAAM,WAGJ,SAAS4E,EAASznC,EAAGlV,EAAG48C,GACtB,IAAI5rB,EAAG6rB,EAAMC,EAAKC,EAChBC,EAAQ,EACRnwC,EAAIqI,EAAE9V,OACN69C,EAAMj9C,EAAIg3C,EACVkG,EAAMl9C,EAAIg3C,EAAY,EAExB,IAAK9hC,EAAIA,EAAEjD,QAASpF,KAKlBmwC,IADAH,EAAOI,GAHPH,EAAM5nC,EAAErI,GAAKmqC,IAEbhmB,EAAIksB,EAAMJ,GADVC,EAAM7nC,EAAErI,GAAKmqC,EAAY,GACHiG,GACGjG,EAAaA,EAAagG,GACnCJ,EAAO,IAAM5rB,EAAIgmB,EAAY,GAAKkG,EAAMH,EACxD7nC,EAAErI,GAAKgwC,EAAOD,EAKhB,OAFII,IAAO9nC,EAAI,CAAC8nC,GAAO57C,OAAO8T,IAEvBA,CACT,CAEA,SAASkiC,EAAQ73C,EAAGC,EAAG29C,EAAIC,GACzB,IAAIvwC,EAAGwwC,EAEP,GAAIF,GAAMC,EACRC,EAAMF,EAAKC,EAAK,GAAK,OAGrB,IAAKvwC,EAAIwwC,EAAM,EAAGxwC,EAAIswC,EAAItwC,IAExB,GAAItN,EAAEsN,IAAMrN,EAAEqN,GAAI,CAChBwwC,EAAM99C,EAAEsN,GAAKrN,EAAEqN,GAAK,GAAK,EACzB,KACF,CAIJ,OAAOwwC,CACT,CAEA,SAAS3gB,EAASn9B,EAAGC,EAAG29C,EAAIP,GAI1B,IAHA,IAAI/vC,EAAI,EAGDswC,KACL59C,EAAE49C,IAAOtwC,EACTA,EAAItN,EAAE49C,GAAM39C,EAAE29C,GAAM,EAAI,EACxB59C,EAAE49C,GAAMtwC,EAAI+vC,EAAOr9C,EAAE49C,GAAM39C,EAAE29C,GAI/B,MAAQ59C,EAAE,IAAMA,EAAEH,OAAS,EAAGG,EAAE6mB,OAAO,EAAG,IAC5C,CAGA,OAAO,SAAUlR,EAAGC,EAAG2mC,EAAI5B,EAAI0C,GAC7B,IAAIS,EAAKp5C,EAAG4I,EAAGywC,EAAMhwC,EAAGiwC,EAAMC,EAAOC,EAAGC,EAAIC,EAAKC,EAAMC,EAAMC,EAAIC,EAAIC,EACnEC,EAAIC,EACJ7wC,EAAI6H,EAAE7H,GAAK8H,EAAE9H,EAAI,GAAK,EACtBgqC,EAAKniC,EAAE0jB,EACP0e,EAAKniC,EAAEyjB,EAGT,IAAKye,IAAOA,EAAG,KAAOC,IAAOA,EAAG,GAE9B,OAAO,IAAIO,EAGT3iC,EAAE7H,GAAM8H,EAAE9H,IAAMgqC,GAAKC,GAAMD,EAAG,IAAMC,EAAG,GAAMA,GAG7CD,GAAe,GAATA,EAAG,KAAYC,EAAS,EAAJjqC,EAAQA,EAAI,EAHaktB,KAoBvD,IAZAmjB,GADAD,EAAI,IAAI5F,EAAUxqC,IACXurB,EAAI,GAEXvrB,EAAIyuC,GADJ73C,EAAIiR,EAAEjR,EAAIkR,EAAElR,GACC,EAER24C,IACHA,EAAOhG,EACP3yC,EAAIizC,EAAShiC,EAAEjR,EAAI4yC,GAAYK,EAAS/hC,EAAElR,EAAI4yC,GAC9CxpC,EAAIA,EAAIwpC,EAAW,GAKhBhqC,EAAI,EAAGyqC,EAAGzqC,KAAOwqC,EAAGxqC,IAAM,GAAIA,KAInC,GAFIyqC,EAAGzqC,IAAMwqC,EAAGxqC,IAAM,IAAI5I,IAEtBoJ,EAAI,EACNqwC,EAAGr3C,KAAK,GACRi3C,GAAO,MACF,CAwBL,IAvBAS,EAAK1G,EAAGj4C,OACR6+C,EAAK3G,EAAGl4C,OACRyN,EAAI,EACJQ,GAAK,GAILC,EAAImpC,EAAUmG,GAAQtF,EAAG,GAAK,KAItB,IACNA,EAAKqF,EAASrF,EAAIhqC,EAAGsvC,GACrBvF,EAAKsF,EAAStF,EAAI/pC,EAAGsvC,GACrBqB,EAAK3G,EAAGl4C,OACR2+C,EAAK1G,EAAGj4C,QAGV0+C,EAAKG,EAELL,GADAD,EAAMtG,EAAGplC,MAAM,EAAGgsC,IACP7+C,OAGJw+C,EAAOK,EAAIN,EAAIC,KAAU,GAChCM,EAAK5G,EAAGrlC,QACRisC,EAAK,CAAC,GAAG98C,OAAO88C,GAChBF,EAAM1G,EAAG,GACLA,EAAG,IAAMsF,EAAO,GAAGoB,IAIvB,EAAG,CAOD,GANA1wC,EAAI,GAGJ+vC,EAAMjG,EAAQE,EAAIqG,EAAKM,EAAIL,IAGjB,EAAG,CAqBX,GAjBAC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOjB,GAAQe,EAAI,IAAM,KAGhDrwC,EAAImpC,EAAUoH,EAAOG,IAab,EAcN,IAXI1wC,GAAKsvC,IAAMtvC,EAAIsvC,EAAO,GAI1BY,GADAD,EAAOZ,EAASrF,EAAIhqC,EAAGsvC,IACVx9C,OACbw+C,EAAOD,EAAIv+C,OAM+B,GAAnCg4C,EAAQmG,EAAMI,EAAKH,EAAOI,IAC/BtwC,IAGAovB,EAAS6gB,EAAMU,EAAKT,EAAQU,EAAK5G,EAAIkG,EAAOZ,GAC5CY,EAAQD,EAAKn+C,OACbi+C,EAAM,OAQC,GAAL/vC,IAGF+vC,EAAM/vC,EAAI,GAKZkwC,GADAD,EAAOjG,EAAGrlC,SACG7S,OAUf,GAPIo+C,EAAQI,IAAML,EAAO,CAAC,GAAGn8C,OAAOm8C,IAGpC7gB,EAASihB,EAAKJ,EAAMK,EAAMhB,GAC1BgB,EAAOD,EAAIv+C,QAGC,GAARi+C,EAMF,KAAOjG,EAAQE,EAAIqG,EAAKM,EAAIL,GAAQ,GAClCtwC,IAGAovB,EAASihB,EAAKM,EAAKL,EAAOM,EAAK5G,EAAIsG,EAAMhB,GACzCgB,EAAOD,EAAIv+C,MAGjB,MAAmB,IAARi+C,IACT/vC,IACAqwC,EAAM,CAAC,IAITD,EAAG7wC,KAAOS,EAGNqwC,EAAI,GACNA,EAAIC,KAAUvG,EAAGyG,IAAO,GAExBH,EAAM,CAACtG,EAAGyG,IACVF,EAAO,EAEX,QAAUE,IAAOC,GAAgB,MAAVJ,EAAI,KAAetwC,KAE1CiwC,EAAiB,MAAVK,EAAI,GAGND,EAAG,IAAIA,EAAGt3B,OAAO,EAAG,EAC3B,CAEA,GAAIw2B,GAAQhG,EAAM,CAGhB,IAAK/pC,EAAI,EAAGQ,EAAIqwC,EAAG,GAAIrwC,GAAK,GAAIA,GAAK,GAAIR,KAEzC/F,EAAM22C,EAAG3B,GAAM2B,EAAEx5C,EAAI4I,EAAI5I,EAAI4yC,EAAW,GAAK,EAAGqD,EAAIoD,EAGtD,MACEG,EAAEx5C,EAAIA,EACNw5C,EAAEr6C,GAAKk6C,EAGT,OAAOG,CACT,CACD,CAhQK,GA4XArF,EAAa,8BACfC,EAAW,cACXC,EAAY,cACZC,EAAkB,qBAClBC,EAAmB,6BALvBP,EAOS,SAAU/iC,EAAGqH,EAAKw9B,EAAOv6C,GAC9B,IAAIo9C,EACFvvC,EAAI0sC,EAAQx9B,EAAMA,EAAIxY,QAAQy0C,EAAkB,IAGlD,GAAID,EAAgBvtC,KAAKqC,GACvB6H,EAAE7H,EAAIke,MAAMle,GAAK,KAAOA,EAAI,GAAK,EAAI,MAChC,CACL,IAAK0sC,IAGH1sC,EAAIA,EAAEtJ,QAAQq0C,GAAY,SAAUpnB,EAAG9V,EAAIC,GAEzC,OADAyhC,EAAkC,MAA1BzhC,EAAKA,EAAGJ,eAAwB,GAAW,KAANI,EAAY,EAAI,EACrD3b,GAAKA,GAAKo9C,EAAY5rB,EAAL9V,CAC3B,IAEI1b,IACFo9C,EAAOp9C,EAGP6N,EAAIA,EAAEtJ,QAAQs0C,EAAU,MAAMt0C,QAAQu0C,EAAW,SAG/C/7B,GAAOlP,GAAG,OAAO,IAAIwqC,EAAUxqC,EAAGuvC,GAKxC,GAAI/E,EAAUoC,MACZ,MAAMpvC,MACH6rC,EAAiB,SAAWl3C,EAAI,SAAWA,EAAI,IAAM,YAAc+c,GAIxErH,EAAE7H,EAAI,IACR,CAEA6H,EAAE0jB,EAAI1jB,EAAEjR,EAAI,IACd,EA4LFw0C,EAAE0F,cAAgB1F,EAAElnC,IAAM,WACxB,IAAI2D,EAAI,IAAI2iC,EAAU31C,MAEtB,OADIgT,EAAE7H,EAAI,IAAG6H,EAAE7H,EAAI,GACZ6H,CACT,EAUAujC,EAAE2F,WAAa,SAAUjpC,EAAG3V,GAC1B,OAAO43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,GACxC,EAgBAi5C,EAAE4F,cAAgB5F,EAAEqD,GAAK,SAAUA,EAAI5B,GACrC,IAAIthB,EAAGtrB,EAAG6lB,EACRje,EAAIhT,KAEN,GAAU,MAAN45C,EAKF,OAJAvE,EAASuE,EAAI,EAAG7E,GACN,MAANiD,EAAYA,EAAKtB,EAChBrB,EAAS2C,EAAI,EAAG,GAEdpzC,EAAM,IAAI+wC,EAAU3iC,GAAI4mC,EAAK5mC,EAAEjR,EAAI,EAAGi2C,GAG/C,KAAMthB,EAAI1jB,EAAE0jB,GAAI,OAAO,KAIvB,GAHAtrB,IAAM6lB,EAAIyF,EAAEx5B,OAAS,GAAK83C,EAASh1C,KAAK+B,EAAI4yC,IAAaA,EAGrD1jB,EAAIyF,EAAEzF,GAAI,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI7lB,KAG3C,OAFIA,EAAI,IAAGA,EAAI,GAERA,CACT,EAuBAmrC,EAAE6F,UAAY7F,EAAEV,IAAM,SAAU5iC,EAAG3V,GACjC,OAAOu4C,EAAI71C,KAAM,IAAI21C,EAAU1iC,EAAG3V,GAAIm5C,EAAgBC,EACxD,EAOAH,EAAE8F,mBAAqB9F,EAAE+F,KAAO,SAAUrpC,EAAG3V,GAC3C,OAAOu4C,EAAI71C,KAAM,IAAI21C,EAAU1iC,EAAG3V,GAAI,EAAG,EAC3C,EAkBAi5C,EAAEgG,gBAAkBhG,EAAE5uC,IAAM,SAAUyD,EAAG0jB,GACvC,IAAI0tB,EAAMC,EAAU9xC,EAAG7M,EAAS4+C,EAAQC,EAAQC,EAAQ3pC,EACtDD,EAAIhT,KAKN,IAHAoL,EAAI,IAAIuqC,EAAUvqC,IAGZsrB,IAAMtrB,EAAEyxC,YACZ,MAAMl0C,MACH6rC,EAAiB,4BAA8Bxa,EAAQ5uB,IAS5D,GANS,MAAL0jB,IAAWA,EAAI,IAAI6mB,EAAU7mB,IAGjC4tB,EAAStxC,EAAErJ,EAAI,IAGViR,EAAE0jB,IAAM1jB,EAAE0jB,EAAE,IAAgB,GAAV1jB,EAAE0jB,EAAE,KAAY1jB,EAAEjR,GAAmB,GAAdiR,EAAE0jB,EAAEx5B,SAAgBkO,EAAEsrB,IAAMtrB,EAAEsrB,EAAE,GAK5E,OADAzjB,EAAI,IAAI0iC,EAAUhxC,KAAKgD,KAAKqyB,EAAQhnB,GAAI0pC,EAAStxC,EAAED,GAAK,EAAImqC,EAAMlqC,KAAO4uB,EAAQ5uB,KAC1E0jB,EAAI7b,EAAE6pC,IAAIhuB,GAAK7b,EAKxB,GAFA0pC,EAASvxC,EAAED,EAAI,EAEX2jB,EAAG,CAGL,GAAIA,EAAE4H,GAAK5H,EAAE4H,EAAE,IAAM5H,EAAE3jB,EAAG,OAAO,IAAIwqC,EAAUtd,MAE/CokB,GAAYE,GAAU3pC,EAAE6pC,aAAe/tB,EAAE+tB,eAE3B7pC,EAAIA,EAAE8pC,IAAIhuB,GAI1B,KAAO,IAAI1jB,EAAErJ,EAAI,IAAMiR,EAAEjR,EAAI,GAAKiR,EAAEjR,GAAK,IAAa,GAAPiR,EAAEjR,EAE7CiR,EAAE0jB,EAAE,GAAK,GAAKgmB,GAAU1pC,EAAE0jB,EAAE,IAAM,KAElC1jB,EAAE0jB,EAAE,GAAK,MAAQgmB,GAAU1pC,EAAE0jB,EAAE,IAAM,YASvC,OANA54B,EAAIkV,EAAE7H,EAAI,GAAKmqC,EAAMlqC,IAAM,EAAI,EAG3B4H,EAAEjR,GAAK,IAAGjE,EAAI,EAAIA,GAGf,IAAI63C,EAAUgH,EAAS,EAAI7+C,EAAIA,GAE7Bm5C,IAKTn5C,EAAIw2C,EAAS2C,EAAgBtC,EAAW,GAC1C,CAcA,IAZI+H,GACFF,EAAO,IAAI7G,EAAU,IACjBgH,IAAQvxC,EAAED,EAAI,GAClByxC,EAAStH,EAAMlqC,IAGfwxC,GADAjyC,EAAIhG,KAAK0K,KAAK2qB,EAAQ5uB,KACT,EAGf6H,EAAI,IAAI0iC,EAAUa,KAGR,CAER,GAAIoG,EAAQ,CAEV,KADA3pC,EAAIA,EAAE8pC,MAAM/pC,IACL0jB,EAAG,MAEN54B,EACEmV,EAAEyjB,EAAEx5B,OAASY,IAAGmV,EAAEyjB,EAAEx5B,OAASY,GACxB2+C,IACTxpC,EAAIA,EAAE6pC,IAAIhuB,GAEd,CAEA,GAAInkB,EAAG,CAEL,GAAU,KADVA,EAAI4pC,EAAU5pC,EAAI,IACL,MACbiyC,EAASjyC,EAAI,CACf,MAIE,GAFA/F,EADAwG,EAAIA,EAAE2xC,MAAMP,GACHpxC,EAAErJ,EAAI,EAAG,GAEdqJ,EAAErJ,EAAI,GACR66C,EAAStH,EAAMlqC,OACV,CAEL,GAAU,KADVT,GAAKqvB,EAAQ5uB,IACA,MACbwxC,EAASjyC,EAAI,CACf,CAGFqI,EAAIA,EAAE+pC,MAAM/pC,GAERlV,EACEkV,EAAE0jB,GAAK1jB,EAAE0jB,EAAEx5B,OAASY,IAAGkV,EAAE0jB,EAAEx5B,OAASY,GAC/B2+C,IACTzpC,EAAIA,EAAE8pC,IAAIhuB,GAEd,CAEA,OAAI2tB,EAAiBxpC,GACjB0pC,IAAQ1pC,EAAIujC,EAAIX,IAAI5iC,IAEjB6b,EAAI7b,EAAE6pC,IAAIhuB,GAAKhxB,EAAI8G,EAAMqO,EAAGgkC,EAAeP,EAnHxB0E,WAmH+CnoC,EAC3E,EAWAsjC,EAAEyG,aAAe,SAAUhF,GACzB,IAAI5sC,EAAI,IAAIuqC,EAAU31C,MAGtB,OAFU,MAANg4C,EAAYA,EAAKtB,EAChBrB,EAAS2C,EAAI,EAAG,GACdpzC,EAAMwG,EAAGA,EAAErJ,EAAI,EAAGi2C,EAC3B,EAOAzB,EAAE0G,UAAY1G,EAAE2G,GAAK,SAAUjqC,EAAG3V,GAChC,OAA8C,IAAvC43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,GACxC,EAMAi5C,EAAE4G,SAAW,WACX,QAASn9C,KAAK02B,CAChB,EAOA6f,EAAE6G,cAAgB7G,EAAE8G,GAAK,SAAUpqC,EAAG3V,GACpC,OAAO43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,IAAM,CAC9C,EAOAi5C,EAAE+G,uBAAyB/G,EAAEgH,IAAM,SAAUtqC,EAAG3V,GAC9C,OAAoD,KAA5CA,EAAI43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,MAAoB,IAANA,CAE3D,EAMAi5C,EAAEsG,UAAY,WACZ,QAAS78C,KAAK02B,GAAKse,EAASh1C,KAAK+B,EAAI4yC,GAAY30C,KAAK02B,EAAEx5B,OAAS,CACnE,EAOAq5C,EAAEiH,WAAajH,EAAEkH,GAAK,SAAUxqC,EAAG3V,GACjC,OAAO43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,IAAM,CAC9C,EAOAi5C,EAAEmH,oBAAsBnH,EAAEoH,IAAM,SAAU1qC,EAAG3V,GAC3C,OAAqD,KAA7CA,EAAI43C,EAAQl1C,KAAM,IAAI21C,EAAU1iC,EAAG3V,MAAqB,IAANA,CAC5D,EAMAi5C,EAAEltB,MAAQ,WACR,OAAQrpB,KAAKmL,CACf,EAMAorC,EAAEqH,WAAa,WACb,OAAO59C,KAAKmL,EAAI,CAClB,EAMAorC,EAAEsH,WAAa,WACb,OAAO79C,KAAKmL,EAAI,CAClB,EAMAorC,EAAEuH,OAAS,WACT,QAAS99C,KAAK02B,GAAkB,GAAb12B,KAAK02B,EAAE,EAC5B,EAuBA6f,EAAEwH,MAAQ,SAAU9qC,EAAG3V,GACrB,IAAIqN,EAAGoI,EAAG7H,EAAG8yC,EACXhrC,EAAIhT,KACJ3C,EAAI2V,EAAE7H,EAMR,GAHA7N,GADA2V,EAAI,IAAI0iC,EAAU1iC,EAAG3V,IACf6N,GAGD9N,IAAMC,EAAG,OAAO,IAAIq4C,EAAUtd,KAGnC,GAAIh7B,GAAKC,EAEP,OADA2V,EAAE9H,GAAK7N,EACA0V,EAAEgnC,KAAK/mC,GAGhB,IAAIgrC,EAAKjrC,EAAEjR,EAAI4yC,EACbuJ,EAAKjrC,EAAElR,EAAI4yC,EACXQ,EAAKniC,EAAE0jB,EACP0e,EAAKniC,EAAEyjB,EAET,IAAKunB,IAAOC,EAAI,CAGd,IAAK/I,IAAOC,EAAI,OAAOD,GAAMliC,EAAE9H,GAAK7N,EAAG2V,GAAK,IAAI0iC,EAAUP,EAAKpiC,EAAIqlB,KAGnE,IAAK8c,EAAG,KAAOC,EAAG,GAGhB,OAAOA,EAAG,IAAMniC,EAAE9H,GAAK7N,EAAG2V,GAAK,IAAI0iC,EAAUR,EAAG,GAAKniC,EAGnC,GAAjB0jC,GAAsB,EAAI,EAE/B,CAOA,GALAuH,EAAKjJ,EAASiJ,GACdC,EAAKlJ,EAASkJ,GACd/I,EAAKA,EAAGplC,QAGJ1S,EAAI4gD,EAAKC,EAAI,CAaf,KAXIF,EAAO3gD,EAAI,IACbA,GAAKA,EACL6N,EAAIiqC,IAEJ+I,EAAKD,EACL/yC,EAAIkqC,GAGNlqC,EAAEovC,UAGGh9C,EAAID,EAAGC,IAAK4N,EAAE/G,KAAK,IACxB+G,EAAEovC,SACJ,MAKE,IAFAvnC,GAAKirC,GAAQ3gD,EAAI83C,EAAGj4C,SAAWI,EAAI83C,EAAGl4C,SAAWG,EAAIC,EAEhDD,EAAIC,EAAI,EAAGA,EAAIyV,EAAGzV,IAErB,GAAI63C,EAAG73C,IAAM83C,EAAG93C,GAAI,CAClB0gD,EAAO7I,EAAG73C,GAAK83C,EAAG93C,GAClB,KACF,CAgBJ,GAXI0gD,IACF9yC,EAAIiqC,EACJA,EAAKC,EACLA,EAAKlqC,EACL+H,EAAE9H,GAAK8H,EAAE9H,IAGX7N,GAAKyV,EAAIqiC,EAAGl4C,SAAWyN,EAAIwqC,EAAGj4C,SAItB,EAAG,KAAOI,IAAK63C,EAAGxqC,KAAO,GAIjC,IAHArN,EAAIo3C,EAAO,EAGJ3hC,EAAI1V,GAAI,CAEb,GAAI83C,IAAKpiC,GAAKqiC,EAAGriC,GAAI,CACnB,IAAKpI,EAAIoI,EAAGpI,IAAMwqC,IAAKxqC,GAAIwqC,EAAGxqC,GAAKrN,KACjC63C,EAAGxqC,GACLwqC,EAAGpiC,IAAM2hC,CACX,CAEAS,EAAGpiC,IAAMqiC,EAAGriC,EACd,CAGA,KAAgB,GAAToiC,EAAG,GAASA,EAAGjxB,OAAO,EAAG,KAAMg6B,GAGtC,OAAK/I,EAAG,GAWDiD,EAAUnlC,EAAGkiC,EAAI+I,IAPtBjrC,EAAE9H,EAAqB,GAAjBurC,GAAsB,EAAI,EAChCzjC,EAAEyjB,EAAI,CAACzjB,EAAElR,EAAI,GACNkR,EAMX,EAwBAsjC,EAAE4H,OAAS5H,EAAEuG,IAAM,SAAU7pC,EAAG3V,GAC9B,IAAIi+C,EAAGpwC,EACL6H,EAAIhT,KAKN,OAHAiT,EAAI,IAAI0iC,EAAU1iC,EAAG3V,IAGhB0V,EAAE0jB,IAAMzjB,EAAE9H,GAAK8H,EAAEyjB,IAAMzjB,EAAEyjB,EAAE,GACvB,IAAIif,EAAUtd,MAGXplB,EAAEyjB,GAAK1jB,EAAE0jB,IAAM1jB,EAAE0jB,EAAE,GACtB,IAAIif,EAAU3iC,IAGJ,GAAfgkC,GAIF7rC,EAAI8H,EAAE9H,EACN8H,EAAE9H,EAAI,EACNowC,EAAI1F,EAAI7iC,EAAGC,EAAG,EAAG,GACjBA,EAAE9H,EAAIA,EACNowC,EAAEpwC,GAAKA,GAEPowC,EAAI1F,EAAI7iC,EAAGC,EAAG,EAAG+jC,IAGnB/jC,EAAID,EAAE+qC,MAAMxC,EAAEwB,MAAM9pC,KAGbyjB,EAAE,IAAqB,GAAfsgB,IAAkB/jC,EAAE9H,EAAI6H,EAAE7H,GAElC8H,EACT,EAuBAsjC,EAAE6H,aAAe7H,EAAEwG,MAAQ,SAAU9pC,EAAG3V,GACtC,IAAIo5B,EAAG30B,EAAG4I,EAAGoI,EAAGjV,EAAGgxB,EAAGuvB,EAAKzD,EAAKC,EAAKyD,EAAKC,EAAKC,EAAKC,EAClD/D,EAAMgE,EACN1rC,EAAIhT,KACJm1C,EAAKniC,EAAE0jB,EACP0e,GAAMniC,EAAI,IAAI0iC,EAAU1iC,EAAG3V,IAAIo5B,EAGjC,IAAKye,IAAOC,IAAOD,EAAG,KAAOC,EAAG,GAmB9B,OAhBKpiC,EAAE7H,IAAM8H,EAAE9H,GAAKgqC,IAAOA,EAAG,KAAOC,GAAMA,IAAOA,EAAG,KAAOD,EAC1DliC,EAAEyjB,EAAIzjB,EAAElR,EAAIkR,EAAE9H,EAAI,MAElB8H,EAAE9H,GAAK6H,EAAE7H,EAGJgqC,GAAOC,GAKVniC,EAAEyjB,EAAI,CAAC,GACPzjB,EAAElR,EAAI,GALNkR,EAAEyjB,EAAIzjB,EAAElR,EAAI,MASTkR,EAmBT,IAhBAlR,EAAIizC,EAAShiC,EAAEjR,EAAI4yC,GAAYK,EAAS/hC,EAAElR,EAAI4yC,GAC9C1hC,EAAE9H,GAAK6H,EAAE7H,GACTkzC,EAAMlJ,EAAGj4C,SACTohD,EAAMlJ,EAAGl4C,UAIPuhD,EAAKtJ,EACLA,EAAKC,EACLA,EAAKqJ,EACL9zC,EAAI0zC,EACJA,EAAMC,EACNA,EAAM3zC,GAIHA,EAAI0zC,EAAMC,EAAKG,EAAK,GAAI9zC,IAAK8zC,EAAGt6C,KAAK,IAK1C,IAHAu2C,EAAOhG,EACPgK,EAAW5J,EAENnqC,EAAI2zC,IAAO3zC,GAAK,GAAI,CAKvB,IAJA+rB,EAAI,EACJ6nB,EAAMnJ,EAAGzqC,GAAK+zC,EACdF,EAAMpJ,EAAGzqC,GAAK+zC,EAAW,EAEX3rC,EAAIpI,GAAb7M,EAAIugD,GAAgBtrC,EAAIpI,GAK3B+rB,IADAkkB,EAAM2D,GAHN3D,EAAMzF,IAAKr3C,GAAK4gD,IAEhB5vB,EAAI0vB,EAAM5D,GADVC,EAAM1F,EAAGr3C,GAAK4gD,EAAW,GACHH,GACEG,EAAYA,EAAYD,EAAG1rC,GAAK2jB,GAC7CgkB,EAAO,IAAM5rB,EAAI4vB,EAAW,GAAKF,EAAM3D,EAClD4D,EAAG1rC,KAAO6nC,EAAMF,EAGlB+D,EAAG1rC,GAAK2jB,CACV,CAQA,OANIA,IACA30B,EAEF08C,EAAGv6B,OAAO,EAAG,GAGRk0B,EAAUnlC,EAAGwrC,EAAI18C,EAC1B,EAOAw0C,EAAEoI,QAAU,WACV,IAAI3rC,EAAI,IAAI2iC,EAAU31C,MAEtB,OADAgT,EAAE7H,GAAK6H,EAAE7H,GAAK,KACP6H,CACT,EAuBAujC,EAAEyD,KAAO,SAAU/mC,EAAG3V,GACpB,IAAI4N,EACF8H,EAAIhT,KACJ3C,EAAI2V,EAAE7H,EAMR,GAHA7N,GADA2V,EAAI,IAAI0iC,EAAU1iC,EAAG3V,IACf6N,GAGD9N,IAAMC,EAAG,OAAO,IAAIq4C,EAAUtd,KAGlC,GAAIh7B,GAAKC,EAER,OADA2V,EAAE9H,GAAK7N,EACA0V,EAAE+qC,MAAM9qC,GAGjB,IAAIgrC,EAAKjrC,EAAEjR,EAAI4yC,EACbuJ,EAAKjrC,EAAElR,EAAI4yC,EACXQ,EAAKniC,EAAE0jB,EACP0e,EAAKniC,EAAEyjB,EAET,IAAKunB,IAAOC,EAAI,CAGd,IAAK/I,IAAOC,EAAI,OAAO,IAAIO,EAAUt4C,EAAI,GAIzC,IAAK83C,EAAG,KAAOC,EAAG,GAAI,OAAOA,EAAG,GAAKniC,EAAI,IAAI0iC,EAAUR,EAAG,GAAKniC,EAAQ,EAAJ3V,EACrE,CAOA,GALA4gD,EAAKjJ,EAASiJ,GACdC,EAAKlJ,EAASkJ,GACd/I,EAAKA,EAAGplC,QAGJ1S,EAAI4gD,EAAKC,EAAI,CAUf,IATI7gD,EAAI,GACN6gD,EAAKD,EACL/yC,EAAIkqC,IAEJ/3C,GAAKA,EACL6N,EAAIiqC,GAGNjqC,EAAEovC,UACKj9C,IAAK6N,EAAE/G,KAAK,IACnB+G,EAAEovC,SACJ,CAcA,KAZAj9C,EAAI83C,EAAGj4C,SACPI,EAAI83C,EAAGl4C,QAGK,IACVgO,EAAIkqC,EACJA,EAAKD,EACLA,EAAKjqC,EACL5N,EAAID,GAIDA,EAAI,EAAGC,GACVD,GAAK83C,IAAK73C,GAAK63C,EAAG73C,GAAK83C,EAAG93C,GAAKD,GAAKq3C,EAAO,EAC3CS,EAAG73C,GAAKo3C,IAASS,EAAG73C,GAAK,EAAI63C,EAAG73C,GAAKo3C,EAUvC,OAPIr3C,IACF83C,EAAK,CAAC93C,GAAG6B,OAAOi2C,KACd+I,GAKG9F,EAAUnlC,EAAGkiC,EAAI+I,EAC1B,EAkBA3H,EAAEqI,UAAYrI,EAAE8B,GAAK,SAAUA,EAAIL,GACjC,IAAIthB,EAAGtrB,EAAG6lB,EACRje,EAAIhT,KAEN,GAAU,MAANq4C,GAAcA,MAASA,EAKzB,OAJAhD,EAASgD,EAAI,EAAGtD,GACN,MAANiD,EAAYA,EAAKtB,EAChBrB,EAAS2C,EAAI,EAAG,GAEdpzC,EAAM,IAAI+wC,EAAU3iC,GAAIqlC,EAAIL,GAGrC,KAAMthB,EAAI1jB,EAAE0jB,GAAI,OAAO,KAIvB,GAFAtrB,GADA6lB,EAAIyF,EAAEx5B,OAAS,GACPy3C,EAAW,EAEf1jB,EAAIyF,EAAEzF,GAAI,CAGZ,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI7lB,KAG7B,IAAK6lB,EAAIyF,EAAE,GAAIzF,GAAK,GAAIA,GAAK,GAAI7lB,KACnC,CAIA,OAFIitC,GAAMrlC,EAAEjR,EAAI,EAAIqJ,IAAGA,EAAI4H,EAAEjR,EAAI,GAE1BqJ,CACT,EAWAmrC,EAAEsI,UAAY,SAAU/gD,GAEtB,OADAu3C,EAASv3C,GAAG,iBAAmB82C,GACxB50C,KAAK+8C,MAAM,KAAOj/C,EAC3B,EAcAy4C,EAAEuI,WAAavI,EAAEwI,KAAO,WACtB,IAAIjwB,EAAG1jB,EAAGlK,EAAG89C,EAAK9zC,EAChB8H,EAAIhT,KACJ02B,EAAI1jB,EAAE0jB,EACNvrB,EAAI6H,EAAE7H,EACNpJ,EAAIiR,EAAEjR,EACN63C,EAAKnD,EAAiB,EACtB+F,EAAO,IAAI7G,EAAU,OAGvB,GAAU,IAANxqC,IAAYurB,IAAMA,EAAE,GACtB,OAAO,IAAIif,GAAWxqC,GAAKA,EAAI,KAAOurB,GAAKA,EAAE,IAAM2B,IAAM3B,EAAI1jB,EAAI,KA8BnE,GAtBS,IAJT7H,EAAIxG,KAAKo6C,MAAM/kB,EAAQhnB,MAIT7H,GAAK,OACjBC,EAAI6pC,EAAcve,IACXx5B,OAAS6E,GAAK,GAAK,IAAGqJ,GAAK,KAClCD,EAAIxG,KAAKo6C,MAAM3zC,GACfrJ,EAAIizC,GAAUjzC,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS1Cb,EAAI,IAAIy0C,EANNvqC,EADED,GAAK,IACH,KAAOpJ,GAEXqJ,EAAID,EAAEoqC,iBACAxlC,MAAM,EAAG3E,EAAEN,QAAQ,KAAO,GAAK/I,IAKvCb,EAAI,IAAIy0C,EAAUxqC,EAAI,IAOpBjK,EAAEw1B,EAAE,GAMN,KAJAvrB,GADApJ,EAAIb,EAAEa,GACE63C,GACA,IAAGzuC,EAAI,KAOb,GAHAD,EAAIhK,EACJA,EAAIs7C,EAAKO,MAAM7xC,EAAE8uC,KAAKnE,EAAI7iC,EAAG9H,EAAG0uC,EAAI,KAEhC3E,EAAc/pC,EAAEwrB,GAAG3mB,MAAM,EAAG5E,MAAQC,EAAI6pC,EAAc/zC,EAAEw1B,IAAI3mB,MAAM,EAAG5E,GAAI,CAW3E,GANIjK,EAAEa,EAAIA,KAAKoJ,EAMN,SALTC,EAAIA,EAAE2E,MAAM5E,EAAI,EAAGA,EAAI,MAKH6zC,GAAY,QAAL5zC,GAgBpB,EAICA,KAAOA,EAAE2E,MAAM,IAAqB,KAAf3E,EAAEiY,OAAO,MAGlCze,EAAM1D,EAAGA,EAAEa,EAAI00C,EAAiB,EAAG,GACnC3nB,GAAK5tB,EAAE67C,MAAM77C,GAAGg8C,GAAGlqC,IAGrB,KACF,CAxBE,IAAKgsC,IACHp6C,EAAMsG,EAAGA,EAAEnJ,EAAI00C,EAAiB,EAAG,GAE/BvrC,EAAE6xC,MAAM7xC,GAAGgyC,GAAGlqC,IAAI,CACpB9R,EAAIgK,EACJ,KACF,CAGF0uC,GAAM,EACNzuC,GAAK,EACL6zC,EAAM,CAcV,CAIJ,OAAOp6C,EAAM1D,EAAGA,EAAEa,EAAI00C,EAAiB,EAAGC,EAAe5nB,EAC3D,EAYAynB,EAAEhB,cAAgB,SAAUqE,EAAI5B,GAK9B,OAJU,MAAN4B,IACFvE,EAASuE,EAAI,EAAG7E,GAChB6E,KAEKnf,EAAOz6B,KAAM45C,EAAI5B,EAAI,EAC9B,EAeAzB,EAAE0I,QAAU,SAAUrF,EAAI5B,GAKxB,OAJU,MAAN4B,IACFvE,EAASuE,EAAI,EAAG7E,GAChB6E,EAAKA,EAAK55C,KAAK+B,EAAI,GAEd04B,EAAOz6B,KAAM45C,EAAI5B,EAC1B,EA4BAzB,EAAE2I,SAAW,SAAUtF,EAAI5B,EAAIvd,GAC7B,IAAIpgB,EACFrH,EAAIhT,KAEN,GAAc,MAAVy6B,EACQ,MAANmf,GAAc5B,GAAmB,iBAANA,GAC7Bvd,EAASud,EACTA,EAAK,MACI4B,GAAmB,iBAANA,GACtBnf,EAASmf,EACTA,EAAK5B,EAAK,MAEVvd,EAASyc,OAEN,GAAqB,iBAAVzc,EAChB,MAAM9xB,MACH6rC,EAAiB,2BAA6B/Z,GAKnD,GAFApgB,EAAMrH,EAAEisC,QAAQrF,EAAI5B,GAEhBhlC,EAAE0jB,EAAG,CACP,IAAI/rB,EACF4X,EAAMlI,EAAI5b,MAAM,KAChB0gD,GAAM1kB,EAAO0c,UACbiI,GAAM3kB,EAAO2c,mBACbC,EAAiB5c,EAAO4c,gBAAkB,GAC1CgI,EAAU98B,EAAI,GACd+8B,EAAe/8B,EAAI,GACnBg9B,EAAQvsC,EAAE7H,EAAI,EACdq0C,EAAYD,EAAQF,EAAQtvC,MAAM,GAAKsvC,EACvC9kC,EAAMilC,EAAUtiD,OASlB,GAPIkiD,IACFz0C,EAAIw0C,EACJA,EAAKC,EACLA,EAAKz0C,EACL4P,GAAO5P,GAGLw0C,EAAK,GAAK5kC,EAAM,EAAG,CAGrB,IAFA5P,EAAI4P,EAAM4kC,GAAMA,EAChBE,EAAUG,EAAUzZ,OAAO,EAAGp7B,GACvBA,EAAI4P,EAAK5P,GAAKw0C,EAAIE,GAAWhI,EAAiBmI,EAAUzZ,OAAOp7B,EAAGw0C,GACrEC,EAAK,IAAGC,GAAWhI,EAAiBmI,EAAUzvC,MAAMpF,IACpD40C,IAAOF,EAAU,IAAMA,EAC7B,CAEAhlC,EAAMilC,EACHD,GAAW5kB,EAAO6c,kBAAoB,MAAQ8H,GAAM3kB,EAAO8c,mBAC1D+H,EAAaz9C,QAAQ,IAAIH,OAAO,OAAS09C,EAAK,OAAQ,KACvD,MAAQ3kB,EAAO+c,wBAA0B,KACxC8H,GACDD,CACL,CAEA,OAAQ5kB,EAAOrX,QAAU,IAAM/I,GAAOogB,EAAOgd,QAAU,GACzD,EAcAlB,EAAEkJ,WAAa,SAAUC,GACvB,IAAI/oB,EAAGgpB,EAAIC,EAAIC,EAAI99C,EAAG2kC,EAAKt7B,EAAG00C,EAAIC,EAAIxE,EAAGr6C,EAAGiK,EAC1C6H,EAAIhT,KACJm1C,EAAKniC,EAAE0jB,EAET,GAAU,MAANgpB,MACFt0C,EAAI,IAAIuqC,EAAU+J,IAGX7C,cAAgBzxC,EAAEsrB,GAAa,IAARtrB,EAAED,IAAYC,EAAEqyC,GAAGjH,IAC/C,MAAM7tC,MACH6rC,EAAiB,aACfppC,EAAEyxC,YAAc,iBAAmB,oBAAsB7iB,EAAQ5uB,IAI1E,IAAK+pC,EAAI,OAAO,IAAIQ,EAAU3iC,GAoB9B,IAlBA2jB,EAAI,IAAIgf,EAAUa,GAClBuJ,EAAKJ,EAAK,IAAIhK,EAAUa,GACxBoJ,EAAKE,EAAK,IAAInK,EAAUa,GACxBrrC,EAAI8pC,EAAcE,GAIlBpzC,EAAI40B,EAAE50B,EAAIoJ,EAAEjO,OAAS8V,EAAEjR,EAAI,EAC3B40B,EAAED,EAAE,GAAKme,GAAUnO,EAAM3kC,EAAI4yC,GAAY,EAAIA,EAAWjO,EAAMA,GAC9DgZ,GAAMA,GAAMt0C,EAAE8wC,WAAWvlB,GAAK,EAAK50B,EAAI,EAAI40B,EAAIopB,EAAM30C,EAErDs7B,EAAMoQ,EACNA,EAAU,IACV1rC,EAAI,IAAIuqC,EAAUxqC,GAGlB20C,EAAGppB,EAAE,GAAK,EAGR6kB,EAAI1F,EAAIzqC,EAAGurB,EAAG,EAAG,GAEQ,IADzBkpB,EAAKF,EAAG3F,KAAKuB,EAAEwB,MAAM6C,KACd1D,WAAWwD,IAClBC,EAAKC,EACLA,EAAKC,EACLE,EAAKD,EAAG9F,KAAKuB,EAAEwB,MAAM8C,EAAKE,IAC1BD,EAAKD,EACLlpB,EAAIvrB,EAAE2yC,MAAMxC,EAAEwB,MAAM8C,EAAKlpB,IACzBvrB,EAAIy0C,EAeN,OAZAA,EAAKhK,EAAI6J,EAAG3B,MAAM4B,GAAKC,EAAI,EAAG,GAC9BE,EAAKA,EAAG9F,KAAK6F,EAAG9C,MAAMgD,IACtBJ,EAAKA,EAAG3F,KAAK6F,EAAG9C,MAAM6C,IACtBE,EAAG30C,EAAI40C,EAAG50C,EAAI6H,EAAE7H,EAIhBjK,EAAI20C,EAAIkK,EAAIH,EAHZ79C,GAAQ,EAGW20C,GAAeqH,MAAM/qC,GAAG3D,MAAM6sC,WAC7CrG,EAAIiK,EAAIH,EAAI59C,EAAG20C,GAAeqH,MAAM/qC,GAAG3D,OAAS,EAAI,CAAC0wC,EAAIH,GAAM,CAACE,EAAIH,GAExE7I,EAAUpQ,EAEHxlC,CACT,EAMAq1C,EAAEyJ,SAAW,WACX,OAAQhmB,EAAQh6B,KAClB,EAcAu2C,EAAE0J,YAAc,SAAU5H,EAAIL,GAE5B,OADU,MAANK,GAAYhD,EAASgD,EAAI,EAAGtD,GACzBta,EAAOz6B,KAAMq4C,EAAIL,EAAI,EAC9B,EAcAzB,EAAEh3C,SAAW,SAAUjC,GACrB,IAAI+c,EACFjP,EAAIpL,KACJmL,EAAIC,EAAED,EACNpJ,EAAIqJ,EAAErJ,EA0BR,OAvBU,OAANA,EACEoJ,GACFkP,EAAM,WACFlP,EAAI,IAAGkP,EAAM,IAAMA,IAEvBA,EAAM,OAGC,MAAL/c,EACF+c,EAAMtY,GAAK40C,GAAc50C,GAAK60C,EAC3BrB,EAAcN,EAAc7pC,EAAEsrB,GAAI30B,GAClCyzC,EAAaP,EAAc7pC,EAAEsrB,GAAI30B,EAAG,KACxB,KAANzE,GAAYq6C,EAErBt9B,EAAMm7B,EAAaP,GADnB7pC,EAAIxG,EAAM,IAAI+wC,EAAUvqC,GAAIqrC,EAAiB10C,EAAI,EAAG20C,IACjBhgB,GAAItrB,EAAErJ,EAAG,MAE5CszC,EAAS/3C,EAAG,EAAGo6C,EAASx6C,OAAQ,QAChCmd,EAAMy7B,EAAYN,EAAaP,EAAc7pC,EAAEsrB,GAAI30B,EAAG,KAAM,GAAIzE,EAAG6N,GAAG,IAGpEA,EAAI,GAAKC,EAAEsrB,EAAE,KAAIrc,EAAM,IAAMA,IAG5BA,CACT,EAOAk8B,EAAEvc,QAAUuc,EAAEr2C,OAAS,WACrB,OAAO85B,EAAQh6B,KACjB,EAGAu2C,EAAEuB,cAAe,EAEjBvB,EAAEv4B,OAAOkiC,aAAe,YAGxB3J,EAAEv4B,OAAOmiC,IAAI,+BAAiC5J,EAAEvc,QAE5B,MAAhB4b,GAAsBD,EAAU/hC,IAAIgiC,GAEjCD,CACT,CAqIuBre,GAEvB,IC30FO,SAAS8oB,EAAgBC,GAC5B,IAAI7hD,EACJ,OAA8C,QAArCA,EAAKk3C,EAAgB2K,UAA+B,IAAP7hD,EAAgBA,EAAKk3C,EAAgB9zB,OAC/F,EAhBA,SAAW8zB,GACPA,EAAgBA,EAAoB,GAAI,EAAUgD,UAAY,KAC9DhD,EAAgBA,EAAsB,KAAI,EAAUiD,YAAc,OAClEjD,EAAgBA,EAA0B,SAAI,EAAUiD,YAAc,WACtEjD,EAAgBA,EAAwB,OAAI,EAAUoD,eAAiB,SACvEpD,EAAgBA,EAAyB,QAAI,EAAUoD,eAAiB,UACxEpD,EAAgBA,EAA0B,SAAI,EAAUqD,iBAAmB,WAC3ErD,EAAgBA,EAA0B,SAAI,EAAUsD,iBAAmB,WAC3EtD,EAAgBA,EAAwB,OAAI,EAAUsD,iBAAmB,SACzEtD,EAAgBA,EAAyB,QAAI,EAAUkD,YAAc,UACrElD,EAAgBA,EAAsB,KAAI,EAAUkD,YAAc,OAClElD,EAAgBA,EAAuB,MAAI,EAAUmD,aAAe,OACvE,CAZD,CAYGnD,IAAoBA,EAAkB,CAAC,4BCN1C,SAAS4K,EAAqBC,GAAS,UAAE3B,EAAS,YAAE4B,IAChD,OAAIA,GAA6B,OAAd5B,GAAsBA,EAAY,EAC1CA,EARf,SAAoB2B,GAChB,OAAIA,EAAQzC,SACD,EAEJn5C,KAAK+C,MAAM/C,KAAK87C,MAAMF,EAAQlxC,MAAM2wC,YAAc,EAC7D,CAG2BU,CAAWH,GAE3B3B,CACX,CACO,SAAS+B,EAAYJ,EAASv9C,GACjC,MAAM47C,EAAY0B,EAAqBC,EAASv9C,GAChD,GAAkB,OAAd47C,EACA,OAAO2B,EAAQhhD,WAEnB,MAAM8gD,EAAYD,EAAgBp9C,EAAQq9C,WAC1C,GAAIzB,GAAa,EACb,OAAO2B,EAAQtB,QAAQL,EAAWyB,GAEtC,MAAMO,EAAUj8C,KAAKgD,IAAI,GAAIhD,KAAK0K,IAAIuvC,IAEtC,OADA2B,EAAU,IAAI,EAAUA,EAAQ1K,IAAI+K,GAAS3B,QAAQ,EAAGoB,IAAYtD,MAAM6D,IAC3DrhD,UACnB,CCbO,SAASshD,EAAa10C,EAAOnJ,GAChC,IAAIxE,EAAIK,EAAIuI,EACZ,MAAM05C,EAAiB,IAAI,EAAU30C,GACrC,GAAInJ,EAAQ+9C,QAAUD,EAAe3D,WACjC,MAAM,IAAIx0C,MAAM,IAAIwD,mCAExB,MAAM60C,EAAgBL,EAAYG,EAAgB99C,GAC5Cu9C,EAAU,IAAI,EAAUS,GACxBpD,EAAa2C,EAAQ9C,GAAG,GACxBK,EAASyC,EAAQzC,SACvB,IAAKmD,EAAOC,GAAeF,EAAcviD,MAAM,KAC/C,MAAM01C,EAAS,GACf,IAAIgN,EACJ,MAAMC,EAA2C,QAAzB5iD,EAAKwE,EAAQy3B,cAA2B,IAAPj8B,EAAgBA,EAAK,KACxE6iD,EAAmD,QAAjCxiD,EAAKmE,EAAQq+C,sBAAmC,IAAPxiD,EAAgBA,EAAK,IAAIuiD,IACpF3mB,EAASmjB,IAAeE,EAASuD,EAAiBD,EAExD,IADAH,EAAQA,EAAMp/C,QAAQ,IAAK,IACpBo/C,EAAM/jD,OAAS,GAClBi3C,EAAO7pC,QAAQ22C,EAAMlb,OAAOphC,KAAK63B,IAAI,EAAGykB,EAAM/jD,OAAS,GAAI,IAC3D+jD,EAAQA,EAAMlb,OAAO,EAAGkb,EAAM/jD,OAAS,GAuB3C,OArBA+jD,EAAQ9M,EAAO/0C,KAAK,IACpB+hD,EAAkBhN,EAAO/0C,KAAK4D,EAAQiO,WAElCiwC,EADAl+C,EAAQw9C,YA9BhB,UAA4B,YAAEU,EAAW,MAAED,EAAK,UAAErC,IAC9C,GAAc,MAAVqC,GAA+B,OAAdrC,EACjB,OAAOsC,EAEX,MAAMt6C,EAAQjC,KAAK63B,IAAI,EAAGoiB,EAAYqC,EAAM/jD,QAC5C,OAAwB,OAAhBgkD,QAAwC,IAAhBA,EAAyBA,EAAc,IAAInb,OAAO,EAAGn/B,EACzF,CAyBsB06C,CAAmB,CAC7BL,QACAC,cACAtC,UAAW57C,EAAQ47C,YAIO,OAAhBsC,QAAwC,IAAhBA,EAAyBA,EAAc,IAAO,IAAkC,QAA5B95C,EAAKpE,EAAQ47C,iBAA8B,IAAPx3C,EAAgBA,EAAK,GAEnJpE,EAAQu+C,yBAA2BL,IACnCA,EAAcA,EAAYr/C,QAAQ,MAAO,KAEzCi/C,EAAez3B,UACf83B,EAAkBh1C,EAAM5M,YAExB2hD,GAAeJ,EAAe3D,aAC9BgE,IAAoBn+C,EAAQw+C,WAAa,KAAON,GAlDxD,SAAyBzmB,GAAQ,gBAAE0mB,EAAe,KAAEM,IAChD,OAAOhnB,EAAO54B,QAAQ,KAAMs/C,GAAiBt/C,QAAQ,KAAM4/C,EAC/D,CAkDWC,CAAgBjnB,EAAQ,CAC3B0mB,kBACAM,KAAMz+C,EAAQy+C,MAEtB,CC3DO,SAASE,EAAa/O,EAAMrd,EAAOvyB,GACtC,IAAI6W,EAAS,GAUb,OATI0b,aAAiBt3B,QAA2B,kBAAVs3B,KAClC1b,EAAS0b,GAETA,aAAiBvvB,QACjB6T,EAAS0b,EAAMn2B,KAAKwzC,EAAKgP,mBAEzB5+C,EAAQuyB,QACR1b,EAAS,CAAC7W,EAAQuyB,MAAO1b,GAAQza,KAAKwzC,EAAKgP,mBAExC/nC,CACX,CCZO,SAASgoC,EAAU1gC,GACtB,IAAI3iB,EAAIK,EACR,GAAiB,OAAbsiB,EACA,MAAO,OAEX,MAAM3Q,SAAc2Q,EACpB,MAAa,WAAT3Q,EACOA,GAEqI,QAAvI3R,EAAyF,QAAnFL,EAAkB,OAAb2iB,QAAkC,IAAbA,OAAsB,EAASA,EAASjD,mBAAgC,IAAP1f,OAAgB,EAASA,EAAGwG,YAAyB,IAAPnG,OAAgB,EAASA,EAAGga,gBAAkB,QAC1M,CCTO,SAASipC,EAAYlP,EAAMv0C,EAAS2E,GACvCA,EAAUrF,OAAOC,KAAKoF,GAAS5F,QAAO,CAAC+2C,EAAQl1C,KAC3Ck1C,EAAOvB,EAAKmP,aAAa9iD,IAAQ+D,EAAQ/D,GAClCk1C,IACR,CAAC,GACJ,MAAMxN,EAAUtoC,EAAQ0a,MAAM65B,EAAKoP,aACnC,IAAKrb,EACD,OAAOtoC,EAEX,KAAOsoC,EAAQzpC,QAAQ,CACnB,IAAIuK,EACJ,MAAMu6C,EAAcrb,EAAQxgC,QACtBnB,EAAOg9C,EAAYngD,QAAQ+wC,EAAKoP,YAAa,MAE/Cv6C,EADA2sC,EAAMpxC,EAAQgC,IACNhC,EAAQgC,GAAMzF,WAAWsC,QAAQ,OAAQ,SAE5CmD,KAAQhC,EACL4vC,EAAKqP,gBAAgBrP,EAAMoP,EAAa3jD,EAAS2E,GAGjD4vC,EAAKsP,mBAAmBtP,EAAMoP,EAAa3jD,EAAS2E,GAEhE,MAAMwjB,EAAQ,IAAI9kB,OAAOsgD,EAAYngD,QAAQ,OAAQ,OAAOA,QAAQ,OAAQ,QAC5ExD,EAAUA,EAAQwD,QAAQ2kB,EAAO/e,EACrC,CACA,OAAOpJ,EAAQwD,QAAQ,UAAW,IACtC,CCxBO,SAASsgD,EAAOvP,EAAMrd,EAAOvyB,EAAU,CAAC,GAE3C,MAAM80B,EAAS,WADf90B,EAAUrF,OAAOsN,OAAO,CAAC,EAAGjI,IACSA,EAAQ80B,OAAS8a,EAAK9a,OACrDsqB,EAAaP,EAAU/pB,GACvB+a,EAAUD,EAAKC,QAChBl/B,IAAmB,WAAfyuC,EAA0BtqB,SAAgBA,GAC9C/nB,QACCnS,EAAO+jD,EAAa/O,EAAMrd,EAAOvyB,GAClCvE,MAAMm0C,EAAKgP,kBACX5iD,KAAKqjD,GAAczP,EAAKmP,aAAaM,KACpC/P,EAAUO,EAAQ7zC,KAAK84B,GAAWl6B,EAAKR,QAAO,CAAC0M,EAAM7K,IAAQ6K,GAAQA,EAAK7K,IAAM2zC,EAAK0P,aAAaxqB,MAExG,OADAwa,EAAQnuC,KAAKnB,EAAQu/C,cACdjQ,EAAQ/V,MAAMgW,GAAU6B,EAAM7B,IACzC,oCCTA,MAAMiQ,EAAgB,CAClB,EAAK,OACL,EAAK,MACL,EAAK,UACL,EAAK,WACL,EAAK,UACL,EAAK,UACL,GAAM,WACN,GAAM,cACN,KAAM,OACN,KAAM,QACN,KAAM,OACN,KAAM,QACN,KAAM,OACN,MAAO,OACP,MAAO,SAELC,SAAyB,GAAU9kD,OAAOmI,OAAO08C,GAAgB7kD,OAAOC,KAAK4kD,GAAexjD,KAAKC,GAAQg9B,SAASh9B,EAAK,OACtH,SAASyjD,GAAc9P,EAAMzmC,EAAOnJ,GACvC,MAAM2/C,EAAe,CACjBtC,UAAWr9C,EAAQq9C,UACnBzB,UAAW57C,EAAQ47C,UACnB4B,YAAax9C,EAAQw9C,aAEzB,IAAIoC,EACJ,GAAiC,WAA7Bf,EAAU7+C,EAAQ4/C,OAAqB,CACvC,MAAMrtB,EAAQvyB,EAAQ4/C,MAEtB,GADAA,EAAQT,EAAOvP,EAAMrd,IAChBqtB,EACD,MAAM,IAAIj6C,MAAM,cAAciqC,EAAK9a,SAAS8a,EAAKgP,mBAAmBD,EAAa/O,EAAMrd,EAAO,CAAC,wBAEvG,MAEIqtB,EAAQ5/C,EAAQ4/C,MAEpB,IAAIzB,EAAkBR,EAAY,IAAI,EAAUx0C,GAAQw2C,GACxD,MAWME,EAVoB,EAACC,EAAKF,KAC5B,MAAMC,EAAWC,EAAIhF,SACf,EACAn5C,KAAK+C,MAAM/C,KAAK87C,MAAMqC,EAAIzzC,MAAM2wC,aACtC,MALkB,CAAC4C,GAAU,IAAOjlD,OAAOC,KAAKglD,GAAO5jD,KAAKgG,GAASy9C,GAAuBz9C,MAASu7C,IAAuB,EAAXA,IAK1GwC,CAAcH,GAAOrmB,MAAMmK,GAAQmc,GAAYnc,KAAQ,CAAC,EAMlDsc,CAAkB,IAAI,EAAU7B,GAAkByB,GAC7DnB,EALgB,EAACmB,EAAOC,IAEnBD,EADSJ,EAAcK,EAAStjD,cACd,GAGhB0jD,CAAcL,EAAOC,GAElC,GADA1B,EAAkBR,EAAY,IAAI,EAAUQ,GAAiBtL,IAAIlxC,KAAKgD,IAAI,GAAIk7C,IAAYF,GACtF3/C,EAAQu+C,wBAAyB,CACjC,IAAKN,EAAOC,GAAeC,EAAgB1iD,MAAM,KACjDyiD,GAAeA,GAAe,IAAIr/C,QAAQ,MAAO,IACjDs/C,EAAkBF,EACdC,IACAC,GAAmB,GAAGn+C,EAAQw+C,YAAYN,IAElD,CACA,OAAOl+C,EAAQy3B,OACV54B,QAAQ,KAAMs/C,GAAmB,KACjCt/C,QAAQ,KAAM4/C,GACdlyC,MACT,CClEA,MAAM2zC,GAAgB,CAAC,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,MCHtD,SAASC,GAAUh3C,GACtB,GAAIA,aAAiBtH,KACjB,OAAOsH,EAEX,GAAqB,kBAAVA,EAAoB,CAC3B,MAAMgrB,EAAO,IAAItyB,KAEjB,OADAsyB,EAAKisB,QAAQj3C,GACNgrB,CACX,CACA,MAAMwP,EAAU,IAAI1oC,OAAOkO,GAAO4M,MAAM,0FACxC,GAAI4tB,EAAS,CACT,MAAM0c,EAAQ1c,EAAQ52B,MAAM,EAAG,GAAG/Q,KAAK+Z,GAAUkjB,SAASljB,EAAO,KAAO,IACxEsqC,EAAM,IAAM,EACZ,MAAOjsB,EAAMC,EAAOkE,EAAKC,EAAMC,EAAQC,EAAQ4nB,GAAgBD,EAE/D,OADiB1c,EAAQ,GAEd,IAAI9hC,KAAKA,KAAKyzB,IAAIlB,EAAMC,EAAOkE,EAAKC,EAAMC,EAAQC,EAAQ4nB,IAG1D,IAAIz+C,KAAKuyB,EAAMC,EAAOkE,EAAKC,EAAMC,EAAQC,EAAQ4nB,EAEhE,CACA,GAAIn3C,EAAM4M,MAAM,uEAAwE,EACvE,IAAIlU,MACZu+C,QAAQv+C,KAAK+M,MAAM,CAAClQ,OAAO6hD,GAAI7hD,OAAO8hD,GAAI9hD,OAAO+hD,GAAI/hD,OAAOgiD,GAAIhiD,OAAOiiD,GAAIjiD,OAAOkiD,IAAIxkD,KAAK,MACpG,CACA,MAAM+3B,EAAO,IAAItyB,KAEjB,OADAsyB,EAAKisB,QAAQv+C,KAAK+M,MAAMzF,IACjBgrB,CACX,CC3BO,SAAS0sB,IAAU,KAAEjR,EAAI,MAAExhC,EAAK,MAAEmkB,EAAK,QAAEvyB,EAAO,UAAE8gD,IAErD,IAAIxB,EACAjkD,EAOJ,GATA2E,EAAUrF,OAAOsN,OAAO,CAAC,EAAGjI,GAIxBs/C,EADiB,kBAAV/sB,GAAsBA,EACdA,EAGA4sB,EAAOvP,EAAMrd,EAAOvyB,IAElCs/C,EACD,OAAO1P,EAAKmR,mBAAmBpwC,IAAI4hB,EAAOvyB,GAE9C,MACMpF,EADag1C,EAAKoR,cAAcrwC,IAAI3Q,EAAQ80B,OACrC0b,CAAWZ,EAAMxhC,GACxB6yC,EAAc,GACpB,KAAOrmD,EAAKV,QAAQ,CAChB,MAAM+B,EAAMrB,EAAKuI,QACjB,GAAIiuC,EAAMkO,EAAarjD,IAAO,CAC1BZ,EAAUikD,EAAarjD,GACvB,KACJ,CACAglD,EAAY9/C,KAAKlF,EACrB,CACA,OAAKm1C,EAAM/1C,IAGX2E,EAAQoO,MAAQA,EACTwhC,EAAKkP,YAAYlP,EAAMv0C,EAAS2E,IAH5B4vC,EAAKmR,mBAAmBpwC,IAAImwC,EAAUrlD,MAAMm0C,EAAKgP,kBAAkB1iD,OAAO,CAAC+kD,EAAY,KAAMjhD,EAI5G,CC/BA,MAAMkhD,GAAkB,CACpBC,SAAU,CAAEC,GAAI,KAAMC,GAAI,MAC1BC,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,YAEJC,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACzDC,WAAY,CACR,KACA,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJC,eAAgB,CACZ,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,mCCtCR,MAAMC,GAAS,CAAC56B,EAAOzmB,EAAKshD,IAAWA,GAAU76B,GAAS66B,GAAUthD,ECD7D,MAAMuhD,GAAgB,SAAUhS,EAAMrd,GACrCA,aAAiBvvB,QACjBuvB,EAAQA,EAAMn2B,KAAKwzC,EAAKgP,mBAE5B,MAAMvjD,EAAUk3B,EAAM92B,MAAMm0C,EAAKgP,kBAAkB7xC,OAAO,GAAG,GAC7D,OAAQ6iC,EAAKiS,yBACTxmD,EACKwD,QAAQ,IAAK,KACbA,QAAQ,mBAAmB,CAACijD,EAAQ9rC,EAAIC,IAAO,GAAGD,KAAMC,EAAGJ,iBACxE,EACaksC,GAAkB,CAACnS,EAAMrd,EAAOvyB,KACzC,MAAMgiD,EAAYrD,EAAa/O,EAAMrd,EAAOvyB,GACtC80B,EAAS,WAAY90B,EAAUA,EAAQ80B,OAAS8a,EAAK9a,OACrDsqB,EAAaP,EAAU/pB,GAK7B,MAAO,aAJqB,CACV,UAAdsqB,EAAyBtqB,EAASsqB,EAClC4C,GACF5lD,KAAKwzC,EAAKgP,iCAC2C,EAE9CqD,GAAgB,CAACrS,EAAMrd,EAAOvyB,KACvC,MAAMgiD,EAAYrD,EAAa/O,EAAMrd,EAAOvyB,GACtCkiD,EAAsB,CAACtS,EAAK9a,OAAQktB,GAAW5lD,KAAKwzC,EAAKgP,kBAC/D,MAAM,IAAIj5C,MAAM,wBAAwBu8C,IAAsB,EAE3D,MAAMC,GACT,WAAAjnC,CAAY00B,GACR5yC,KAAK4yC,KAAOA,EACZ5yC,KAAKqzC,SAAW,CAAC,EACjBrzC,KAAKsqC,SAAS,QAASsa,IACvB5kD,KAAKsqC,SAAS,UAAWya,IACzB/kD,KAAKsqC,SAAS,QAAS2a,GAC3B,CACA,QAAA3a,CAAStlC,EAAMogD,GACXplD,KAAKqzC,SAASruC,GAAQogD,CAC1B,CACA,GAAAzxC,CAAI4hB,EAAOvyB,GACP,IAAIxE,EACJ,OAAOwB,KAAKqzC,SAA4C,QAAlC70C,EAAKwE,EAAQqiD,uBAAoC,IAAP7mD,EAAgBA,EAAKwB,KAAK4yC,KAAKyS,iBAAiBrlD,KAAK4yC,KAAMrd,EAAOvyB,EACtI,ECxCJ,IAAIsiD,GAAwC,SAAUC,EAASC,EAAYjP,EAAGkP,GAE1E,OAAO,IAAKlP,IAAMA,EAAIt1C,WAAU,SAAUD,EAASO,GAC/C,SAASmkD,EAAUj+C,GAAS,IAAMk+C,EAAKF,EAAUl+C,KAAKE,GAAS,CAAE,MAAO1F,GAAKR,EAAOQ,EAAI,CAAE,CAC1F,SAAS6jD,EAASn+C,GAAS,IAAMk+C,EAAKF,EAAiB,MAAEh+C,GAAS,CAAE,MAAO1F,GAAKR,EAAOQ,EAAI,CAAE,CAC7F,SAAS4jD,EAAK9rC,GAJlB,IAAepS,EAIaoS,EAAOrS,KAAOxG,EAAQ6Y,EAAOpS,QAJ1CA,EAIyDoS,EAAOpS,MAJhDA,aAAiB8uC,EAAI9uC,EAAQ,IAAI8uC,GAAE,SAAUv1C,GAAWA,EAAQyG,EAAQ,KAIjBxE,KAAKyiD,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUjoD,MAAM+nD,EAASC,GAAc,KAAKj+C,OAClE,GACJ,EAQA,MAAMs+C,GAAuB,CACzB9S,cAAe,KACf+S,iBAAkB,CAAC,MACnBhuB,OAAQ,KACR8pB,iBAAkB,IAClBI,YAAa,+BACblP,gBAAgB,EAChBuS,gBAAiB,UACjBR,yBAA0B,GAC1B3C,mBAAoB,CAACxO,EAAOsO,IAAgB,aAAaA,YACzDC,gBAAiB,CAACrP,EAAMoP,EAAa3jD,EAAS2E,IAAY4vC,EAAKsP,mBAAmBtP,EAAMoP,EAAa3jD,EAAS2E,GAC9G++C,aAAe9iD,GAAQA,GAEpB,MAAM8mD,GACT,WAAA7nC,CAAYokC,EAAe,CAAC,EAAGt/C,EAAU,CAAC,GACtChD,KAAKgmD,QAAUH,GAAqB/tB,OACpC93B,KAAKimD,eAAiBJ,GAAqB9S,cAC3C/yC,KAAKkmD,SAAW,EAChBlmD,KAAKmmD,iBAAmB,GACxBnmD,KAAKsiD,aAAe,CAAC,EACrBtiD,KAAK8lD,iBAAmB,GACxB9lD,KAAKkL,EAAIlL,KAAKomD,UACdpmD,KAAKqL,EAAIrL,KAAK6jD,UACd7jD,KAAK42B,EAAI52B,KAAKqmD,SACdrmD,KAAKsmD,sBAAwBtmD,KAAKumD,eAClC,MAAM,OAAEzuB,EAAM,eAAEgb,EAAc,gBAAEuS,EAAe,yBAAER,EAAwB,mBAAE3C,EAAkB,gBAAED,EAAe,cAAElP,EAAa,iBAAE6O,EAAgB,YAAEI,EAAW,aAAED,GAAkBpkD,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAC,EAAG46C,IAAuB7iD,GACvOhD,KAAK83B,OAASA,EACd93B,KAAK+yC,cAAgBA,EACrB/yC,KAAK4hD,iBAAmBA,EACxB5hD,KAAK8yC,eAAiBA,EACtB9yC,KAAK83B,OAASA,EACd93B,KAAKqlD,gBAAkBA,EACvBrlD,KAAK6kD,yBAA2BA,EAChC7kD,KAAKkiD,mBAAqBA,EAC1BliD,KAAKiiD,gBAAkBA,EACvBjiD,KAAKgiD,YAAcA,EACnBhiD,KAAKgkD,cAAgB,IAAI/P,EAAcj0C,MACvCA,KAAK6yC,QAAU,IAAIO,EAAQpzC,MAC3BA,KAAK+jD,mBAAqB,IAAIoB,GAAmBnlD,MACjDA,KAAK+hD,aAAeA,EACpB/hD,KAAK8hD,YAAcA,EACnB9hD,KAAKwmD,MAAMlE,EACf,CACA,KAAAkE,CAAMlE,GACF,IAAMtiD,KAAKsiD,aAAcA,GACzBtiD,KAAKymD,YACT,CACA,UAAI3uB,GACA,OAAO93B,KAAKgmD,SAAWhmD,KAAK+yC,eAAiB,IACjD,CACA,UAAIjb,CAAO4uB,GACP,GAAyB,kBAAdA,EACP,MAAM,IAAI/9C,MAAM,0CAA0Ck5C,EAAU6E,MAExE,MAAMC,EAAU3mD,KAAKgmD,UAAYU,EACjC1mD,KAAKgmD,QAAUU,EACXC,GACA3mD,KAAKymD,YAEb,CACA,iBAAI1T,GACA,OAAO/yC,KAAKimD,gBAAkB,IAClC,CACA,iBAAIlT,CAAc2T,GACd,GAAyB,kBAAdA,EACP,MAAM,IAAI/9C,MAAM,0CAA0Ck5C,EAAU6E,MAExE,MAAMC,EAAU3mD,KAAKimD,iBAAmBS,EACxC1mD,KAAKimD,eAAiBS,EAClBC,GACA3mD,KAAKymD,YAEb,CACA,SAAAL,CAAU7wB,EAAOvyB,GAEb,MAAM4jD,EC1FP,SAAkChU,EAAMrd,EAAOvyB,GAClD,IAAI4jD,EAAqB,CAAC,CAAErxB,UAI5B,GAHI6e,EAAMpxC,EAAQ6jD,YACdD,EAAqBA,EAAmB1nD,OAAO8D,EAAQ6jD,WAEvDzS,EAAMpxC,EAAQu/C,cAAe,CAC7B,MAAMlkD,EAA0C,oBAAzB2E,EAAQu/C,aACzBv/C,EAAQu/C,aAAa3P,EAAMrd,EAAOvyB,GAClCA,EAAQu/C,aACdqE,EAAmBziD,KAAK,CAAE9F,mBACnB2E,EAAQu/C,YACnB,CACA,OAAOqE,CACX,CD6EmCE,CAAyB9mD,KAAMu1B,EAD1DvyB,EAAUrF,OAAOsN,OAAO,CAAC,EAAGjI,IAE5B,IAAI+jD,EAUJ,OAT4BH,EAAmBh+C,MAAMo+C,IAC7C5S,EAAM4S,EAAkBzxB,OACxBwxB,EAAc5E,EAAOniD,KAAMgnD,EAAkBzxB,MAAOvyB,GAE/CoxC,EAAM4S,EAAkB3oD,WAC7B0oD,EAAcC,EAAkB3oD,cAEbwP,IAAhBk5C,GAA6C,OAAhBA,MAKb,kBAAhBA,EACPA,EAAc/mD,KAAK8hD,YAAY9hD,KAAM+mD,EAAa/jD,GAEtB,kBAAhB+jD,GACZA,GACA3S,EAAMpxC,EAAQoO,SACd21C,EAAclD,GAAU,CACpBjR,KAAM5yC,KACNoR,MAAOpO,EAAQoO,OAAS,EACxBmkB,MAAOwxB,EACP/jD,UACA8gD,UAAWnC,EAAa3hD,KAAMu1B,EAAOvyB,MAGzCA,GAAW+jD,aAAuB/gD,QAClC+gD,EAAcA,EAAY/nD,KAAKuzC,GAA2B,kBAAVA,EAC1CuP,EAAY9hD,KAAMuyC,EAAOvvC,GACzBuvC,KAEHwU,GArBI/mD,KAAK+jD,mBAAmBpwC,IAAI4hB,EAAOvyB,EAsBlD,CACA,SAAA6gD,CAAUzyC,EAAOmkB,EAAOvyB,GACpB,OAAO6gD,GAAU,CACbjR,KAAM5yC,KACNoR,QACAmkB,QACAvyB,QAASrF,OAAOsN,OAAO,CAAC,EAAGjI,GAC3B8gD,UAAWnC,EAAa3hD,KAAMu1B,EAAmB,OAAZvyB,QAAgC,IAAZA,EAAqBA,EAAU,CAAC,IAEjG,CACA,QAAAqjD,CAAS71C,EAAM/I,EAAOzE,GAElB,GADAA,EAAUrF,OAAOsN,OAAO,CAAC,EAAGjI,QACd6K,IAAVpG,GAAiC,OAAVA,EACvB,MAAO,GAEX,OAAQ+I,GACJ,IAAK,WACD,OAAOxQ,KAAKinD,iBAAiBx/C,GACjC,IAAK,SACD,OAAOo5C,EAAap5C,EAAO9J,OAAOsN,OAAO,CAAEgG,UAAW,IAAK2tC,UAAW,EAAG4C,UAAW,IAAKhB,aAAa,EAAOe,yBAAyB,GAASY,EAAOniD,KAAM,mBAChK,IAAK,aACD,OAAOA,KAAKknD,mBAAmBz/C,GACnC,QAAS,CACL,IAAI0/C,EAOJ,OALIA,EADA32C,EAAKuI,MAAM,gBACM/Y,KAAKonD,OAAO52C,EAAM/I,GAGlBA,EAAMlI,WAEpBuiD,EAAY9hD,KAAMmnD,EAAgBnkD,EAC7C,EAER,CACA,MAAAokD,CAAO7xB,EAAOppB,GACV,MAAMgrB,EAAOgsB,GAAUh3C,GACjBsuB,EAAS0nB,EAAOniD,KAAMu1B,GAC5B,OAAI4B,EAAK53B,WAAWwZ,MAAM,YACfoe,EAAK53B,WAEXk7B,EAGEz6B,KAAKqnD,SAASlwB,EAAMsD,GAFhBtD,EAAK53B,UAGpB,CACA,gBAAA0nD,CAAiB96C,EAAOnJ,EAAU,CAAC,GAC/B,OAAO69C,EAAa10C,EAAOxO,OAAOsN,OAAOtN,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEgG,UAAW,IAAKwpB,OAAQ,OAAQmkB,UAAW,EAAG4C,UAAW,IAAKhB,aAAa,EAAOe,yBAAyB,EAAOE,KAAM,KAAOvN,EAAcl0C,KAAK2T,IAAI,mBAAoBugC,EAAcl0C,KAAK2T,IAAI,4BAA6B3Q,GACzS,CACA,kBAAAkkD,CAAmB/6C,EAAOnJ,EAAU,CAAC,GACjC,OAAO69C,EAAa10C,EAAOxO,OAAOsN,OAAOtN,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEgG,UAAW,GAAIwpB,OAAQ,MAAOmkB,UAAW,EAAG2C,yBAAyB,EAAOC,UAAW,IAAKhB,aAAa,GAAStM,EAAcl0C,KAAK2T,IAAI,mBAAoBugC,EAAcl0C,KAAK2T,IAAI,8BAA+B3Q,GAC9R,CACA,iBAAAskD,CAAkBn7C,EAAOnJ,EAAU,CAAC,GAChC,ON7KD,SAA2B4vC,EAAMzmC,EAAOnJ,GAC3C,MAAMq9C,EAAYD,EAAgBp9C,EAAQq9C,WACpC3F,EAAO,KACPoI,EAAM,IAAI,EAAU32C,GAAOkD,MAC3Bk4C,EAAkBzE,EAAIrF,GAAG/C,GAC/B,IAAI8M,EACJ,MAYM3E,EAZkB,EAACtC,EAASqC,KAC9B,MAAMpmB,EAAMomB,EAAM1lD,OAAS,EACrBwpC,EAAM,IAAI,EAAU/hC,KAAK8iD,IAAIlH,EAAQP,aACtCnK,IAAIlxC,KAAK8iD,IAAI/M,IACbsC,aAAa,EAAUrE,YACvBqH,WACL,OAAOr7C,KAAK01B,IAAImC,EAAKkK,EAAI,EAMZghB,CAAgB5E,EAAKI,IAElCsE,EADAD,EACsBzE,EAAI9F,eAGJ,IAAI,EAAU2D,EAAYmC,EAAIjN,IAAIlxC,KAAKgD,IAAI+yC,EAAMmI,IAAY,CAC/ErC,YAAax9C,EAAQw9C,YACrB5B,UAAW57C,EAAQ47C,UACnByB,UAAWr9C,EAAQq9C,aAG3B,MAAM5lB,EAASmY,EAAKwT,UAAU,oCAAqC,CAC/D7D,aAAc,UAEZd,EAAO7O,EAAKwT,WAlBMxD,EAkBmBM,GAhBhC,oCADQqE,EAAkB,OAAS3E,EAAMC,MAiBO,CACvDzxC,MAAO0xC,EAAI9F,eAAegD,aAnBP,IAAC4C,EAqBxB,IAAIzB,EAAkBqG,EAAoBvI,QAAQj8C,EAAQ47C,UAAWyB,GAMrE,OALIr9C,EAAQu+C,0BACRJ,EAAkBA,EACbt/C,QAAQ,aAAc,MACtBA,QAAQ,MAAO,KAEjB44B,EAAO54B,QAAQ,KAAMs/C,GAAiBt/C,QAAQ,KAAM4/C,EAC/D,CMmIe6F,CAAkBtnD,KAAMmM,EAAOxO,OAAOsN,OAAOtN,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEgG,UAAW,GAAI2tC,UAAW,EAAG4B,aAAa,EAAMe,yBAAyB,EAAMqB,MAAO,CAChK+E,QAAS,UACTC,QAAS,UACTC,YAAa,cACbC,SAAU,WACVC,SAAU,WACVtG,KAAM,KACLvN,EAAcl0C,KAAK2T,IAAI,yBAA0BugC,EAAcl0C,KAAK2T,IAAI,gCAAiC3Q,GACtH,CACA,aAAA0/C,CAAcv2C,EAAOnJ,EAAU,CAAC,GAC5B,OAAO0/C,GAAc1iD,KAAMmM,EAAOxO,OAAOsN,OAAOtN,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEgG,UAAW,GAAIuwC,UAAW,IAAK5C,UAAW,EAAG4B,aAAa,EAAMe,yBAAyB,EAAM9mB,OAAQ,QAAS4lB,UAAW,UAAWuC,MAAO,CACnN+E,QAAS,UACTC,QAAS,UACTC,YAAa,cACbC,SAAU,WACVC,SAAU,WACVtG,KAAM,KACLvN,EAAcl0C,KAAK2T,IAAI,yBAA0BugC,EAAcl0C,KAAK2T,IAAI,gCAAiC3Q,GACtH,CACA,eAAAglD,CAAgB77C,EAAOnJ,GACnB,OAAO69C,EAAa10C,EAAOxO,OAAOsN,OAAO,CAAEw2C,KAAM,GAAI7C,UAAW,EAAG4B,aAAa,EAAOgB,UAAW,IAAKvwC,UAAW,GAAIswC,yBAAyB,GAASv+C,GAC5J,CACA,iBAAAilD,CAAkB97C,EAAOnJ,EAAU,CAAC,GAChC,OEvMD,SAA2BmJ,EAAOnJ,GACrC,MAAMu9C,EAAU,IAAI,EAAUp0C,GAC9B,IAAKo0C,EAAQpD,WACT,OAAOhxC,EAAM5M,WAEjB,IAAKyD,EAAQklD,iBAAiBC,OAC1B,MAAM,IAAIx/C,MAAM,0EAA0E3F,EAAQklD,oBAEtG,IAAKE,EAAMC,GAAS9H,EAAQhhD,WAAWd,MAAM,KAE7C,OADA2pD,EAAOA,EAAKvmD,QAAQmB,EAAQklD,kBAAmBI,GAAqB,GAAGA,IAAmBtlD,EAAQiO,cAC3F,CAACm3C,EAAMC,GAAO3pD,OAAOs0C,SAAS5zC,KAAK4D,EAAQw+C,UACtD,CF4LeyG,CAAkB97C,EAAOxO,OAAOsN,OAAO,CAAEi9C,iBAAkB,2BAA4Bj3C,UAAW,IAAKuwC,UAAW,KAAOx+C,GACpI,CACA,UAAAulD,CAAWzwB,EAAQtmB,GACf,OAAO8zC,GAAUtlD,UAAM,OAAQ,GAAQ,YACnC,MAAMwoD,EAAiBxoD,KAAK83B,OAC5B,IACI93B,KAAK83B,OAASA,QACRtmB,GACV,CACA,QACIxR,KAAK83B,OAAS0wB,CAClB,CACJ,GACJ,CACA,QAAAnB,CAASlwB,EAAMsD,EAAQz3B,EAAU,CAAC,GAC9B,OH5KD,SAAkBm0B,EAAMsD,EAAQz3B,EAAU,CAAC,GAC9C,MAAM,aAAEuhD,EAAY,SAAED,EAAQ,eAAEG,EAAc,WAAED,EAAYL,SAAUsE,GAAW9qD,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAC,EAAGi5C,IAAkBlhD,GACnI,GAAIqmB,MAAM8N,EAAKryB,WACX,MAAM,IAAI6D,MAAM,0EAEpB,MAAM+/C,EAAUvxB,EAAK2B,SACfyC,EAAMpE,EAAKyB,UACXxB,EAAOD,EAAKqB,cACZnB,EAAQF,EAAKuB,WAAa,EAC1B8C,EAAOrE,EAAK6B,WAClB,IAAI8C,EAASN,EACb,MAAM2oB,EAAW3oB,EAAO,GAAK,KAAO,KAC9BmtB,EAAOxxB,EAAKiC,aACZwvB,EAAOzxB,EAAK+B,aACZhnB,EAASilB,EAAK4D,oBACd8tB,EAAiBlkD,KAAK+C,MAAM/C,KAAK0K,IAAI6C,EAAS,KAC9C42C,EAAmBnkD,KAAK0K,IAAI6C,GAA2B,GAAjB22C,EACtCE,GAAkB72C,EAAS,EAAI,IAAM,MACtC22C,EAAetpD,WAAWrC,OAAS,EAC9B,IAAM2rD,EACNA,IACLC,EAAiBvpD,WAAWrC,OAAS,EAChC,IAAM4rD,EACNA,GAiCV,OAhCIhtB,EAAS,GACTA,GAAkB,GAEF,IAAXA,IACLA,EAAS,KA0BbrB,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAASA,EAAO54B,QAAQ,KAAM0iD,EAAamE,KAC3B7mD,QAAQ,KAAMyiD,EAASoE,KACvB7mD,QAAQ,KAAM4iD,EAAeptB,KAC7Bx1B,QAAQ,KAAM2iD,EAAWntB,KACzBx1B,QAAQ,KAAM05B,EAAIh8B,WAAWypD,SAAS,EAAG,OACzCnnD,QAAQ,KAAM05B,EAAIh8B,aAClBsC,QAAQ,MAAO05B,EAAIh8B,aACnBsC,QAAQ,KAAM25B,EAAKj8B,WAAWypD,SAAS,EAAG,OAC1CnnD,QAAQ,MAAO25B,EAAKj8B,aACpBsC,QAAQ,KAAM25B,EAAKj8B,aACnBsC,QAAQ,KAAMi6B,EAAOv8B,WAAWypD,SAAS,EAAG,OAC5CnnD,QAAQ,MAAOi6B,EAAOv8B,aACtBsC,QAAQ,KAAMi6B,EAAOv8B,aACrBsC,QAAQ,KAAMw1B,EAAM93B,WAAWypD,SAAS,EAAG,OAC3CnnD,QAAQ,MAAOw1B,EAAM93B,aACrBsC,QAAQ,KAAM+mD,EAAKrpD,WAAWypD,SAAS,EAAG,OAC1CnnD,QAAQ,MAAO+mD,EAAKrpD,aACpBsC,QAAQ,KAAM4mD,EAAMtE,KACpBtiD,QAAQ,KAAM4mD,EAAMtE,GAAUtrC,gBAC9BhX,QAAQ,KAAM8mD,EAAKppD,WAAWypD,SAAS,EAAG,OAC1CnnD,QAAQ,MAAO8mD,EAAKppD,aACpBsC,QAAQ,KAAM6mD,EAAQnpD,aACtBsC,QAAQ,KAAMu1B,EAAK73B,WAAWypD,SAAS,EAAG,KAAKjjB,QAAQ,KACvDlkC,QAAQ,MAAOu1B,EAAK73B,WAAWypD,SAAS,EAAG,KAAKjjB,QAAQ,GAAGlkC,QAAQ,MAAO,MAC1EA,QAAQ,KAAMu1B,EAAK73B,aACnBsC,QAAQ,MAAOknD,EAEnC,CGmHe1B,CAASlwB,EAAMsD,EAAQ98B,OAAOsN,OAAOtN,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAC,EAAGipC,EAAciO,EAAOniD,KAAM,UAAW,CAAEmkD,SAAU,CACtHC,GAAIjC,EAAOniD,KAAM,YAAc,KAC/BqkD,GAAIlC,EAAOniD,KAAM,YAAc,QAC7BgD,GACd,CACA,MAAAimD,CAAOn/C,EAAMF,EAAU5G,EAAU,CAAEkmD,QAAQ,IACvC,GAAIlmD,EAAQkmD,SAAW,IAAIlpD,KAAKsiD,aAAcx4C,GAC1C,MAAM,IAAInB,MAAM,aAAamB,+BAEjC,MAAM2S,EAAc,IAAIzc,KAAKsiD,aAAcx4C,GACrCq/C,EAActH,EAAUplC,GACxB2sC,EAAevH,EAAUj4C,GAC/B,GAAI5G,EAAQkmD,QAAUC,IAAgBC,EAClC,MAAM,IAAIzgD,MAAM,yBAAyBmB,UAAaq/C,8CAAwDC,MAElH,IAAIC,EAEAA,EADiB,WAAjBD,EACUzrD,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAC,EAAGwR,GAAc7S,GAG9CA,EAEd,MAAM0/C,EAAax/C,EAAKrL,MAAMuB,KAAK4hD,kBAC7Bz+B,EAAOmmC,EAAWj/C,MACxB,IAAI8pC,EAASn0C,KAAKsiD,aAClB,IAAK,MAAMD,KAAaiH,EACfnV,EAAOkO,KACRlO,EAAOkO,GAAa,CAAC,GAEzBlO,EAASA,EAAOkO,GAEpBlO,EAAOhxB,GAAQkmC,EACfrpD,KAAKymD,YACT,CACA,UAAA8C,CAAWC,EAAOxmD,EAAU,CAAC,GACzB,MAAM,eAAEymD,EAAc,kBAAEC,EAAiB,kBAAEC,GAAsBhsD,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEw+C,eAAgB,KAAMC,kBAAmB,QAASC,kBAAmB,UAAYzV,EAAciO,EAAOniD,KAAM,mBAAoBgD,GACzN8P,EAAO02C,EAAMtsD,OACnB,OAAQ4V,GACJ,KAAK,EACD,MAAO,GACX,KAAK,EACD,MAAO,GAAG02C,EAAM,KACpB,KAAK,EACD,OAAOA,EAAMpqD,KAAKsqD,GACtB,QACI,MAAO,CACHF,EAAMz5C,MAAM,EAAG+C,EAAO,GAAG1T,KAAKqqD,GAC9BE,EACAH,EAAM12C,EAAO,IACf1T,KAAK,IAEnB,CACA,cAAAmnD,CAAeqD,EAAUxC,EAAQpkD,EAAU,CAAC,GACxC,OFzQD,SAAwB4vC,EAAMgX,EAAUxC,EAAQpkD,EAAU,CAAC,GAC9D,MAAMuyB,EAAQvyB,EAAQuyB,OAAS,6BACzBrqB,EAAI,CAAClG,EAAMoM,EAAQ,IAAMwhC,EAAK1nC,EAAElG,EAAM,CAAEoM,QAAOmkB,UACrDq0B,EAAWzG,GAAUyG,GACrBxC,EAASjE,GAAUiE,GACnB,IAAIyC,EAAgBD,EAAS9kD,UAAY,IACrCglD,EAAc1C,EAAOtiD,UAAY,IACjC+kD,EAAgBC,KACfF,EAAUxC,EAAQyC,EAAeC,GAAe,CAC7C1C,EACAwC,EACAE,EACAD,IAGR,MAAME,EAAoBplD,KAAKC,MAAMklD,EAAcD,GAC7CG,EAAoBrlD,KAAKC,OAAOklD,EAAcD,GAAiB,IAE/DI,EADkBD,EAAoB,GACH,GACnCE,EAAyBvlD,KAAKC,MAAMolD,EAAoB,IACxDG,EAAwBxlD,KAAKC,MAAMqlD,GACnCG,EAA0BzlD,KAAKC,MAAMulD,EAAwB,IACnE,GAAIzF,GAAO,EAAG,EAAGsF,GACb,OAAKhnD,EAAQqnD,eAKT3F,GAAO,EAAG,EAAGqF,GACN7+C,EAAE,sBAAuB,GAEhCw5C,GAAO,EAAG,EAAGqF,GACN7+C,EAAE,sBAAuB,IAEhCw5C,GAAO,GAAI,GAAIqF,GACR7+C,EAAE,sBAAuB,IAEhCw5C,GAAO,GAAI,GAAIqF,GACR7+C,EAAE,iBAETw5C,GAAO,GAAI,GAAIqF,GACR7+C,EAAE,sBAAuB,GAE7BA,EAAE,YAAa,GAnBW,IAAtB8+C,EACD9+C,EAAE,sBAAuB,GACzBA,EAAE,YAAa8+C,GAmB7B,GAAItF,GAAO,EAAG,GAAIsF,GACd,OAAO9+C,EAAE,YAAa8+C,GAE1B,GAAItF,GAAO,GAAI,GAAIsF,GACf,OAAO9+C,EAAE,gBAAiB,GAE9B,GAAIw5C,GAAO,GAAI,KAAMsF,GACjB,OAAO9+C,EAAE,gBAAiBg/C,GAE9B,GAAIxF,GAAO,KAAM,KAAMsF,GACnB,OAAO9+C,EAAE,SAAU,GAEvB,GAAIw5C,GAAO,KAAM,MAAOsF,GACpB,OAAO9+C,EAAE,SAAUi/C,GAEvB,GAAIzF,GAAO,MAAO,MAAOsF,GACrB,OAAO9+C,EAAE,iBAAkBvG,KAAKC,MAAMolD,EAAoB,QAE9D,GAAItF,GAAO,MAAO,OAAQsF,GACtB,OAAO9+C,EAAE,WAAYk/C,GAEzB,IAAIE,EAAWV,EAASpxB,cACpBoxB,EAASlxB,WAAa,GAAK,IAC3B4xB,GAAY,GAEhB,IAAIC,EAASnD,EAAO5uB,cAChB4uB,EAAO1uB,WAAa,EAAI,IACxB6xB,GAAU,GAEd,MAGMC,EAAgB,OAEhBC,EAAoBT,EADkB,MAJ1BM,EAAWC,EACvB,EACA,KAAMD,EAAUC,GAAQ7rD,QAAQ04B,GAA6C,GAApC,IAAIvyB,KAAKuyB,EAAM,EAAG,IAAIsB,aAAiBx7B,QAIhFwtD,EAAkB/lD,KAAKgmD,MAAMF,EAAoBD,GACjDxvB,EAAOsH,YAAYmoB,EAAoBD,EAAgBE,GAAiBzK,YAAY,IAC1F,OAAIjlB,EAAO,IACA9vB,EAAE,gBAAiBw/C,GAE1B1vB,EAAO,IACA9vB,EAAE,eAAgBw/C,GAEtBx/C,EAAE,iBAAkBw/C,EAAkB,EACjD,CEgLenE,CAAevmD,KAAM4pD,EAAUxC,EAAQpkD,EAClD,CACA,QAAA4nD,CAASp5C,GAEL,OADAxR,KAAKmmD,iBAAiBhiD,KAAKqN,GACpB,KACHxR,KAAKmmD,iBAAiBjiC,OAAOlkB,KAAKmmD,iBAAiBr7C,QAAQ0G,GAAW,EAAE,CAEhF,CACA,WAAIzN,GACA,OAAO/D,KAAKkmD,QAChB,CACA,YAAArF,CAAa10C,EAAOnJ,EAAU,CAAC,GAE3B,OAAO69C,EAAa10C,EADpBnJ,EAAUrF,OAAOsN,OAAOtN,OAAOsN,OAAO,CAAEgG,UAAW,IAAK2tC,UAAW,EAAG4C,UAAW,IAAKC,KAAM,GAAIhnB,OAAQ,OAAQ+lB,aAAa,EAAOe,yBAAyB,GAASrN,EAAcl0C,KAAK2T,IAAI,mBAAoB3Q,GAErN,CACA,GAAA2Q,CAAI4hB,GACA,OAAO4sB,EAAOniD,KAAMu1B,EACxB,CACA,YAAAs1B,GACI7qD,KAAKmmD,iBAAiBtoD,SAAS2T,GAAaA,EAASxR,OACzD,CACA,UAAAymD,GACIzmD,KAAKkmD,UAAY,EACjBlmD,KAAK6qD,cACT,sBGlSJ,IAAIC,EAAgB,kCAEhBC,EAAgB,MAChBC,EAAmB,OAGnBC,EAAiB,yCACjBC,EAAc,QACdC,EAAc,uDACdC,EAAkB,UAGlBC,EAAa,aAMbC,EAAe,GA8OnB,SAAS/7C,EAAK8K,GACZ,OAAOA,EAAMA,EAAIxY,QAAQwpD,EAAYC,GAAgBA,CACvD,CAnOA3pC,EAAO/D,QAAU,SAASiH,EAAO7hB,GAC/B,GAAqB,kBAAV6hB,EACT,MAAM,IAAIzG,UAAU,mCAGtB,IAAKyG,EAAO,MAAO,GAEnB7hB,EAAUA,GAAW,CAAC,EAKtB,IAAI+J,EAAS,EACTkD,EAAS,EAOb,SAASs7C,EAAelxC,GACtB,IAAImxC,EAAQnxC,EAAItB,MAAMgyC,GAClBS,IAAOz+C,GAAUy+C,EAAMtuD,QAC3B,IAAIyN,EAAI0P,EAAIq3B,YAvCF,MAwCVzhC,GAAUtF,EAAI0P,EAAInd,OAASyN,EAAIsF,EAASoK,EAAInd,MAC9C,CAOA,SAASgT,IACP,IAAI4Z,EAAQ,CAAEnrB,KAAMoO,EAAQkD,OAAQA,GACpC,OAAO,SAASI,GAGd,OAFAA,EAAKH,SAAW,IAAIu7C,EAAS3hC,GAC7B5Y,IACOb,CACT,CACF,CAUA,SAASo7C,EAAS3hC,GAChB9pB,KAAK8pB,MAAQA,EACb9pB,KAAKqD,IAAM,CAAE1E,KAAMoO,EAAQkD,OAAQA,GACnCjQ,KAAK8M,OAAS9J,EAAQ8J,MACxB,CAKA2+C,EAASnsD,UAAUs0B,QAAU/O,EAE7B,IAAI6mC,EAAa,GAQjB,SAASttD,EAAMutD,GACb,IAAIziC,EAAM,IAAIvgB,MACZ3F,EAAQ8J,OAAS,IAAMC,EAAS,IAAMkD,EAAS,KAAO07C,GAQxD,GANAziC,EAAI3lB,OAASooD,EACbziC,EAAI0iC,SAAW5oD,EAAQ8J,OACvBoc,EAAIvqB,KAAOoO,EACXmc,EAAIjZ,OAASA,EACbiZ,EAAIpc,OAAS+X,GAET7hB,EAAQ6oD,OAGV,MAAM3iC,EAFNwiC,EAAWvnD,KAAK+kB,EAIpB,CAQA,SAASnQ,EAAM+yC,GACb,IAAIh9B,EAAIg9B,EAAG73C,KAAK4Q,GAChB,GAAKiK,EAAL,CACA,IAAIzU,EAAMyU,EAAE,GAGZ,OAFAy8B,EAAelxC,GACfwK,EAAQA,EAAM9U,MAAMsK,EAAInd,QACjB4xB,CAJO,CAKhB,CAKA,SAAS5d,IACP6H,EAAMiyC,EACR,CAQA,SAASe,EAASl6C,GAChB,IAAI6kB,EAEJ,IADA7kB,EAAQA,GAAS,GACT6kB,EAAIhkB,MACA,IAANgkB,GACF7kB,EAAM1N,KAAKuyB,GAGf,OAAO7kB,CACT,CAQA,SAASa,IACP,IAAIs5C,EAAM97C,IACV,GAnJgB,KAmJK2U,EAAMxB,OAAO,IAlJvB,KAkJyCwB,EAAMxB,OAAO,GAAjE,CAGA,IADA,IAAI1Y,EAAI,EAEN2gD,GAAgBzmC,EAAMxB,OAAO1Y,KAtJpB,KAuJIka,EAAMxB,OAAO1Y,IAxJZ,KAwJmCka,EAAMxB,OAAO1Y,EAAI,OAEhEA,EAIJ,GAFAA,GAAK,EAED2gD,IAAiBzmC,EAAMxB,OAAO1Y,EAAI,GACpC,OAAOvM,EAAM,0BAGf,IAAIic,EAAMwK,EAAM9U,MAAM,EAAGpF,EAAI,GAM7B,OALAsF,GAAU,EACVs7C,EAAelxC,GACfwK,EAAQA,EAAM9U,MAAMpF,GACpBsF,GAAU,EAEH+7C,EAAI,CACTx7C,KApKa,UAqKbkC,QAAS2H,GAvBgE,CAyB7E,CAQA,SAAS1H,IACP,IAAIq5C,EAAM97C,IAGNiT,EAAOpK,EAAMkyC,GACjB,GAAK9nC,EAAL,CAIA,GAHAzQ,KAGKqG,EAAMmyC,GAAc,OAAO9sD,EAAM,wBAGtC,IAAI8vB,EAAMnV,EAAMoyC,GAEZj5B,EAAM85B,EAAI,CACZx7C,KA7LiB,cA8LjB4B,SAAU7C,EAAK4T,EAAK,GAAGthB,QAAQipD,EAAeQ,IAC9C7jD,MAAOymB,EACH3e,EAAK2e,EAAI,GAAGrsB,QAAQipD,EAAeQ,IACnCA,IAMN,OAFAvyC,EAAMqyC,GAECl5B,CApBU,CAqBnB,CAyBA,OADAhhB,IAjBA,WACE,IAKI+6C,EALAC,EAAQ,GAMZ,IAJAH,EAASG,GAIDD,EAAOt5C,MACA,IAATs5C,IACFC,EAAM/nD,KAAK8nD,GACXF,EAASG,IAIb,OAAOA,CACT,CAGOj6C,EACT,qBCnPA0P,EAAO/D,QAAU,SAAmBlgB,GAClC,OAAc,MAAPA,GAAkC,MAAnBA,EAAIwgB,aACY,oBAA7BxgB,EAAIwgB,YAAYiuC,UAA2BzuD,EAAIwgB,YAAYiuC,SAASzuD,EAC/E,kCCsEA,IA9EA,IAAIqiC,EAAW,SAAkB7R,GAC/B,OAAe,OAARA,IAAiBloB,MAAMC,QAAQioB,IAAuB,kBAARA,CACvD,EAEIilB,EAAQ,CAIV,EAAG,SACH,EAAG,OACH,EAAG,YACH,EAAG,MACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,MACJ,GAAI,QACJ,GAAI,WACJ,GAAI,SACJ,GAAI,UACJ,GAAI,aACJ,GAAI,SACJ,GAAI,aACJ,GAAI,IACJ,GAAI,SACJ,GAAI,WACJ,GAAI,MACJ,GAAI,OACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,cACJ,GAAI,SACJ,GAAI,SACJ,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,CAAC,IAAK,KACV,GAAI,KACJ,GAAI,cACJ,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,KAAM,KACZ,IAAK,CAAC,IAAK,KACX,IAAK,CAAC,IAAK,KACX,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,OACL,IAAK,WAIExoC,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3BwoC,EAAM,IAAMxoC,GAAK,KAAOA,EAAI,GAI9B,IAAK,IAAIoI,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,IAAI3H,EAAI2H,EAAI,GACZogC,EAAM/nC,GAAK,CAACnN,OAAOqR,aAAalE,EAAI,IAAKnN,OAAOqR,aAAalE,GAC/D,CAEA,IAAIghD,EAAc,CAChBjZ,MAAOA,EAUPkZ,QAAS,SAAiBC,GACxB,OAAIvsB,EAASusB,GACJA,EAAWC,SAAWD,EAAWE,OAASxsD,KAAKssD,EAAWrtD,KAE5De,KAAKssD,EACd,EAWAG,OAAQ,SAAgBC,GACtB,IAAIC,EAAU5sB,EAAS2sB,GAGvB,GAAIC,GAAWD,EAAYztD,IACzB,OAAOytD,EAAYztD,IAGrB,IAAI+F,EAAOmuC,EAAMwZ,EAAUD,EAAYH,SAAWG,EAAYF,MAAQE,GAUtE,OARI1mD,MAAMC,QAAQjB,KAEdA,EADE2nD,EACK3nD,EAAK0nD,EAAYE,SAAW,EAAI,GAEhC5nD,EAAK,IAITA,CACT,EAMA6nD,OAAQ,EACRC,KAAM,EACNC,UAAW,EACXC,IAAK,EACLC,MAAO,GACPC,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,IAAK,GACLC,MAAO,GACPC,SAAU,GACVC,OAAQ,GACRC,QAAS,GACTC,WAAY,GACZC,OAAQ,GACRC,WAAY,GACZ,IAAK,GACLC,OAAQ,GACRC,SAAU,GACVC,IAAK,GACLC,KAAM,GACNC,UAAW,GACXC,QAAS,GACTC,WAAY,GACZC,UAAW,GACXC,OAAQ,GACRC,MAAO,GACPC,QAAS,GACTC,YAAa,GACbC,OAAQ,GACRC,OAAQ,GACR,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH73B,EAAG,GACH,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACL,EAAG,GACH,IAAK,GACLx5B,EAAG,GACHsxD,EAAG,GACHrxD,EAAG,GACHsxD,EAAG,GACHl4B,EAAG,GACHm4B,EAAG,GACHl4B,EAAG,GACHc,EAAG,GACH11B,EAAG,GACH+sD,EAAG,GACH34B,EAAG,GACH44B,EAAG,GACHpvD,EAAG,GACHqvD,EAAG,GACH10C,EAAG,GACH20C,EAAG,GACHtkD,EAAG,GACHukD,EAAG,GACHn8C,EAAG,GACHo8C,EAAG,GACHrxD,EAAG,GACHsxD,EAAG,GACHx4B,EAAG,GACHy4B,EAAG,GACHvgC,EAAG,GACHgI,EAAG,GACH1rB,EAAG,GACHkkD,EAAG,GACHhwC,EAAG,GACHuY,EAAG,GACHxsB,EAAG,GACHkrC,EAAG,GACHgF,EAAG,GACH7jB,EAAG,GACHx2B,EAAG,GACHquD,EAAG,GACHpkD,EAAG,GACHwsB,EAAG,GACHzsB,EAAG,GACHskD,EAAG,GACH/4B,EAAG,GACHg5B,EAAG,GACHx+B,EAAG,GACHy+B,EAAG,GACH7gC,EAAG,GACH8gC,EAAG,GACH38C,EAAG,GACH48C,EAAG,GACH38C,EAAG,GACH48C,EAAG,GACH38C,EAAG,GACH48C,EAAG,GACHC,GAAI,GACJC,YAAa,GACbC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,QAAS,IACTC,WAAY,IACZC,WAAY,IACZC,WAAY,IACZC,SAAU,IACV,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACLj6B,EAAG,IACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACLk6B,KAAM,IACNC,SAAU,IACVC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,SAAU,IACVC,KAAM,IACNC,QAAS,KAOXjG,EAAYkG,SAAWlG,EAAY,KACnCA,EAAYmG,OAASnG,EAAY,GACjCA,EAAYoG,OAASpG,EAAY,GACjCA,EAAYqG,OAASrG,EAAY,GACjCA,EAAYsG,OAAStG,EAAY,GACjCA,EAAYuG,OAASvG,EAAY,GACjCA,EAAYwG,OAASxG,EAAY,GACjCA,EAAYyG,OAASzG,EAAY,GACjCA,EAAY0G,OAAS1G,EAAY,GACjCA,EAAY2G,OAAS3G,EAAY,GACjCA,EAAY4G,OAAS5G,EAAY,GACjCA,EAAY6G,MAAQ7G,EAAY,KAChCA,EAAY8G,YAAc9G,EAAY,KACtCA,EAAY+G,iBAAmB/G,EAAY,KAC3CA,EAAYgH,OAAShH,EAAY,KACjCA,EAAYiH,UAAYjH,EAAY,KACpCA,EAAYkH,YAAclH,EAAY,KACtCA,EAAYmH,MAAQnH,EAAY,KAChCA,EAAYoH,UAAYpH,EAAY,KACpCA,EAAYqH,SAAWrH,EAAY,KACnCA,EAAYsH,UAAYtH,EAAY,KACpCA,EAAYuH,WAAavH,EAAY,KACrCA,EAAYwH,aAAexH,EAAY,KACvCA,EAAYyH,mBAAqBzH,EAAY,KAC7CA,EAAY0H,MAAQ1H,EAAY,KAChCA,EAAY2H,QAAU3H,EAAY,KAClCA,EAAY4H,MAAQ5H,EAAY,KAChCA,EAAY6H,UAAY7H,EAAY,KACpCA,EAAY8H,KAAO9H,EAAY,KAC/BA,EAAY+H,UAAY/H,EAAY,MACpCA,EAAYgI,aAAehI,EAAY,KACvCA,EAAYiI,YAAcjI,EAAY,KACtCA,EAAYkI,YAAclI,EAAY,KACtCA,EAAYmI,eAAiBnI,EAAY,KACzCA,EAAYoI,gBAAkBpI,EAAY,KAC1CA,EAAYqI,gBAAkBrI,EAAY,KAC1CA,EAAYsI,iBAAmBtI,EAAY,KAC3CA,EAAYuI,iBAAmBvI,EAAY,KAC3CA,EAAYwI,kBAAoBxI,EAAY,KAC5CA,EAAYyI,kBAAoBzI,EAAY,KAC5CA,EAAY0I,mBAAqB1I,EAAY,KAE7CzqC,EAAO/D,QAAUwuC,yBClWjB,IAII2I,EAJY,EAAQ,MAITC,CAHJ,EAAQ,MAGY,YAE/BrzC,EAAO/D,QAAUm3C,yBCNjB,IAAIE,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBC,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAStB,SAASC,EAAKhjB,GACZ,IAAI1iC,GAAS,EACT1S,EAAoB,MAAXo1C,EAAkB,EAAIA,EAAQp1C,OAG3C,IADA8C,KAAK6F,UACI+J,EAAQ1S,GAAQ,CACvB,IAAIq1C,EAAQD,EAAQ1iC,GACpB5P,KAAK4T,IAAI2+B,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGA+iB,EAAKh2D,UAAUuG,MAAQovD,EACvBK,EAAKh2D,UAAkB,OAAI41D,EAC3BI,EAAKh2D,UAAUqU,IAAMwhD,EACrBG,EAAKh2D,UAAUygB,IAAMq1C,EACrBE,EAAKh2D,UAAUsU,IAAMyhD,EAErB1zC,EAAO/D,QAAU03C,yBC/BjB,IAAIC,EAAiB,EAAQ,OACzBC,EAAkB,EAAQ,OAC1BC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OACvBC,EAAe,EAAQ,OAS3B,SAASC,EAAUtjB,GACjB,IAAI1iC,GAAS,EACT1S,EAAoB,MAAXo1C,EAAkB,EAAIA,EAAQp1C,OAG3C,IADA8C,KAAK6F,UACI+J,EAAQ1S,GAAQ,CACvB,IAAIq1C,EAAQD,EAAQ1iC,GACpB5P,KAAK4T,IAAI2+B,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAqjB,EAAUt2D,UAAUuG,MAAQ0vD,EAC5BK,EAAUt2D,UAAkB,OAAIk2D,EAChCI,EAAUt2D,UAAUqU,IAAM8hD,EAC1BG,EAAUt2D,UAAUygB,IAAM21C,EAC1BE,EAAUt2D,UAAUsU,IAAM+hD,EAE1Bh0C,EAAO/D,QAAUg4C,yBC/BjB,IAIIn2C,EAJY,EAAQ,MAIdu1C,CAHC,EAAQ,MAGO,OAE1BrzC,EAAO/D,QAAU6B,yBCNjB,IAAIo2C,EAAgB,EAAQ,OACxBC,EAAiB,EAAQ,OACzBC,EAAc,EAAQ,OACtBC,EAAc,EAAQ,MACtBC,EAAc,EAAQ,OAS1B,SAASC,EAAS5jB,GAChB,IAAI1iC,GAAS,EACT1S,EAAoB,MAAXo1C,EAAkB,EAAIA,EAAQp1C,OAG3C,IADA8C,KAAK6F,UACI+J,EAAQ1S,GAAQ,CACvB,IAAIq1C,EAAQD,EAAQ1iC,GACpB5P,KAAK4T,IAAI2+B,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGA2jB,EAAS52D,UAAUuG,MAAQgwD,EAC3BK,EAAS52D,UAAkB,OAAIw2D,EAC/BI,EAAS52D,UAAUqU,IAAMoiD,EACzBG,EAAS52D,UAAUygB,IAAMi2C,EACzBE,EAAS52D,UAAUsU,IAAMqiD,EAEzBt0C,EAAO/D,QAAUs4C,yBC/BjB,IAIIj1D,EAJY,EAAQ,MAIV+zD,CAHH,EAAQ,MAGW,WAE9BrzC,EAAO/D,QAAU3c,yBCNjB,IAIIqmC,EAJY,EAAQ,MAId0tB,CAHC,EAAQ,MAGO,OAE1BrzC,EAAO/D,QAAU0pB,yBCNjB,IAAI4uB,EAAW,EAAQ,OACnBC,EAAc,EAAQ,OACtBC,EAAc,EAAQ,OAU1B,SAASC,EAASvwD,GAChB,IAAI8J,GAAS,EACT1S,EAAmB,MAAV4I,EAAiB,EAAIA,EAAO5I,OAGzC,IADA8C,KAAKs2D,SAAW,IAAIJ,IACXtmD,EAAQ1S,GACf8C,KAAKu3B,IAAIzxB,EAAO8J,GAEpB,CAGAymD,EAAS/2D,UAAUi4B,IAAM8+B,EAAS/2D,UAAU6E,KAAOgyD,EACnDE,EAAS/2D,UAAUygB,IAAMq2C,EAEzBz0C,EAAO/D,QAAUy4C,yBC1BjB,IAAIT,EAAY,EAAQ,OACpBW,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAW,EAAQ,OACnBC,EAAW,EAAQ,OACnBC,EAAW,EAAQ,OASvB,SAASC,EAAMtkB,GACb,IAAIvyC,EAAOC,KAAKs2D,SAAW,IAAIV,EAAUtjB,GACzCtyC,KAAK8S,KAAO/S,EAAK+S,IACnB,CAGA8jD,EAAMt3D,UAAUuG,MAAQ0wD,EACxBK,EAAMt3D,UAAkB,OAAIk3D,EAC5BI,EAAMt3D,UAAUqU,IAAM8iD,EACtBG,EAAMt3D,UAAUygB,IAAM22C,EACtBE,EAAMt3D,UAAUsU,IAAM+iD,EAEtBh1C,EAAO/D,QAAUg5C,yBC1BjB,IAGI54C,EAHO,EAAQ,MAGDA,OAElB2D,EAAO/D,QAAUI,yBCLjB,IAGI64C,EAHO,EAAQ,MAGGA,WAEtBl1C,EAAO/D,QAAUi5C,yBCLjB,IAIIrjD,EAJY,EAAQ,MAIVwhD,CAHH,EAAQ,MAGW,WAE9BrzC,EAAO/D,QAAUpK,qBCcjBmO,EAAO/D,QAVP,SAAe9C,EAAMyqC,EAAShoD,GAC5B,OAAQA,EAAKL,QACX,KAAK,EAAG,OAAO4d,EAAKtb,KAAK+lD,GACzB,KAAK,EAAG,OAAOzqC,EAAKtb,KAAK+lD,EAAShoD,EAAK,IACvC,KAAK,EAAG,OAAOud,EAAKtb,KAAK+lD,EAAShoD,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOud,EAAKtb,KAAK+lD,EAAShoD,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOud,EAAKtd,MAAM+nD,EAAShoD,EAC7B,qBCMAokB,EAAO/D,QAfP,SAAqB5N,EAAOq5B,GAM1B,IALA,IAAIz5B,GAAS,EACT1S,EAAkB,MAAT8S,EAAgB,EAAIA,EAAM9S,OACnC45D,EAAW,EACXj9C,EAAS,KAEJjK,EAAQ1S,GAAQ,CACvB,IAAIuK,EAAQuI,EAAMJ,GACdy5B,EAAU5hC,EAAOmI,EAAOI,KAC1B6J,EAAOi9C,KAAcrvD,EAEzB,CACA,OAAOoS,CACT,yBCtBA,IAAIk9C,EAAc,EAAQ,OAgB1Bp1C,EAAO/D,QALP,SAAuB5N,EAAOvI,GAE5B,SADsB,MAATuI,EAAgB,EAAIA,EAAM9S,SACpB65D,EAAY/mD,EAAOvI,EAAO,IAAM,CACrD,qBCOAka,EAAO/D,QAZP,SAA2B5N,EAAOvI,EAAOuvD,GAIvC,IAHA,IAAIpnD,GAAS,EACT1S,EAAkB,MAAT8S,EAAgB,EAAIA,EAAM9S,SAE9B0S,EAAQ1S,GACf,GAAI85D,EAAWvvD,EAAOuI,EAAMJ,IAC1B,OAAO,EAGX,OAAO,CACT,yBCnBA,IAAIqnD,EAAY,EAAQ,OACpBC,EAAc,EAAQ,OACtBjxD,EAAU,EAAQ,OAClBkmD,EAAW,EAAQ,MACnBgL,EAAU,EAAQ,OAClBC,EAAe,EAAQ,OAMvB9rD,EAHc3N,OAAO2B,UAGQgM,eAqCjCqW,EAAO/D,QA3BP,SAAuBnW,EAAO4vD,GAC5B,IAAIC,EAAQrxD,EAAQwB,GAChB8vD,GAASD,GAASJ,EAAYzvD,GAC9B+vD,GAAUF,IAAUC,GAASpL,EAAS1kD,GACtCgwD,GAAUH,IAAUC,IAAUC,GAAUJ,EAAa3vD,GACrDiwD,EAAcJ,GAASC,GAASC,GAAUC,EAC1C59C,EAAS69C,EAAcT,EAAUxvD,EAAMvK,OAAQe,QAAU,GACzDf,EAAS2c,EAAO3c,OAEpB,IAAK,IAAI+B,KAAOwI,GACT4vD,IAAa/rD,EAAe9L,KAAKiI,EAAOxI,IACvCy4D,IAEQ,UAAPz4D,GAECu4D,IAAkB,UAAPv4D,GAA0B,UAAPA,IAE9Bw4D,IAAkB,UAAPx4D,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDk4D,EAAQl4D,EAAK/B,KAElB2c,EAAO1V,KAAKlF,GAGhB,OAAO4a,CACT,qBC1BA8H,EAAO/D,QAXP,SAAkB5N,EAAO2nD,GAKvB,IAJA,IAAI/nD,GAAS,EACT1S,EAAkB,MAAT8S,EAAgB,EAAIA,EAAM9S,OACnC2c,EAAS7T,MAAM9I,KAEV0S,EAAQ1S,GACf2c,EAAOjK,GAAS+nD,EAAS3nD,EAAMJ,GAAQA,EAAOI,GAEhD,OAAO6J,CACT,qBCCA8H,EAAO/D,QAXP,SAAmB5N,EAAOlK,GAKxB,IAJA,IAAI8J,GAAS,EACT1S,EAAS4I,EAAO5I,OAChBgV,EAASlC,EAAM9S,SAEV0S,EAAQ1S,GACf8S,EAAMkC,EAAStC,GAAS9J,EAAO8J,GAEjC,OAAOI,CACT,qBCQA2R,EAAO/D,QAbP,SAAqB5N,EAAO2nD,EAAUC,EAAaC,GACjD,IAAIjoD,GAAS,EACT1S,EAAkB,MAAT8S,EAAgB,EAAIA,EAAM9S,OAKvC,IAHI26D,GAAa36D,IACf06D,EAAc5nD,IAAQJ,MAEfA,EAAQ1S,GACf06D,EAAcD,EAASC,EAAa5nD,EAAMJ,GAAQA,EAAOI,GAE3D,OAAO4nD,CACT,qBCDAj2C,EAAO/D,QAZP,SAAmB5N,EAAOq5B,GAIxB,IAHA,IAAIz5B,GAAS,EACT1S,EAAkB,MAAT8S,EAAgB,EAAIA,EAAM9S,SAE9B0S,EAAQ1S,GACf,GAAImsC,EAAUr5B,EAAMJ,GAAQA,EAAOI,GACjC,OAAO,EAGX,OAAO,CACT,qBCTA2R,EAAO/D,QAJP,SAAsBpE,GACpB,OAAOA,EAAO/a,MAAM,GACtB,oBCRA,IAAIq5D,EAAc,4CAalBn2C,EAAO/D,QAJP,SAAoBpE,GAClB,OAAOA,EAAOT,MAAM++C,IAAgB,EACtC,yBCZA,IAAIC,EAAkB,EAAQ,OAC1B7a,EAAK,EAAQ,OAkBjBv7B,EAAO/D,QAPP,SAA0B7e,EAAQE,EAAKwI,SACtBoG,IAAVpG,IAAwBy1C,EAAGn+C,EAAOE,GAAMwI,SAC9BoG,IAAVpG,KAAyBxI,KAAOF,KACnCg5D,EAAgBh5D,EAAQE,EAAKwI,EAEjC,yBCjBA,IAAIswD,EAAkB,EAAQ,OAC1B7a,EAAK,EAAQ,OAMb5xC,EAHc3N,OAAO2B,UAGQgM,eAoBjCqW,EAAO/D,QARP,SAAqB7e,EAAQE,EAAKwI,GAChC,IAAIuwD,EAAWj5D,EAAOE,GAChBqM,EAAe9L,KAAKT,EAAQE,IAAQi+C,EAAG8a,EAAUvwD,UACxCoG,IAAVpG,GAAyBxI,KAAOF,IACnCg5D,EAAgBh5D,EAAQE,EAAKwI,EAEjC,yBCzBA,IAAIy1C,EAAK,EAAQ,OAoBjBv7B,EAAO/D,QAVP,SAAsB5N,EAAO/Q,GAE3B,IADA,IAAI/B,EAAS8S,EAAM9S,OACZA,KACL,GAAIggD,EAAGltC,EAAM9S,GAAQ,GAAI+B,GACvB,OAAO/B,EAGX,OAAQ,CACV,yBClBA,IAAIygB,EAAiB,EAAQ,OAwB7BgE,EAAO/D,QAbP,SAAyB7e,EAAQE,EAAKwI,GACzB,aAAPxI,GAAsB0e,EACxBA,EAAe5e,EAAQE,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASwI,EACT,UAAY,IAGd1I,EAAOE,GAAOwI,CAElB,yBCtBA,IAAIs4B,EAAW,EAAQ,OAGnBk4B,EAAet6D,OAAO8c,OAUtBy9C,EAAc,WAChB,SAASn5D,IAAU,CACnB,OAAO,SAASo5D,GACd,IAAKp4B,EAASo4B,GACZ,MAAO,CAAC,EAEV,GAAIF,EACF,OAAOA,EAAaE,GAEtBp5D,EAAOO,UAAY64D,EACnB,IAAIt+C,EAAS,IAAI9a,EAEjB,OADAA,EAAOO,eAAYuO,EACZgM,CACT,CACF,CAdiB,GAgBjB8H,EAAO/D,QAAUs6C,yBC7BjB,IAAIE,EAAa,EAAQ,OAWrBC,EAViB,EAAQ,MAUdC,CAAeF,GAE9Bz2C,EAAO/D,QAAUy6C,oBCUjB12C,EAAO/D,QAZP,SAAuB5N,EAAOq5B,EAAW+F,EAAWmpB,GAIlD,IAHA,IAAIr7D,EAAS8S,EAAM9S,OACf0S,EAAQw/B,GAAampB,EAAY,GAAK,GAElCA,EAAY3oD,MAAYA,EAAQ1S,GACtC,GAAImsC,EAAUr5B,EAAMJ,GAAQA,EAAOI,GACjC,OAAOJ,EAGX,OAAQ,CACV,yBCrBA,IAAI4oD,EAAY,EAAQ,OACpBC,EAAgB,EAAQ,OAoC5B92C,EAAO/D,QAvBP,SAAS86C,EAAY1oD,EAAO2oD,EAAOtvB,EAAWuvB,EAAU/+C,GACtD,IAAIjK,GAAS,EACT1S,EAAS8S,EAAM9S,OAKnB,IAHAmsC,IAAcA,EAAYovB,GAC1B5+C,IAAWA,EAAS,MAEXjK,EAAQ1S,GAAQ,CACvB,IAAIuK,EAAQuI,EAAMJ,GACd+oD,EAAQ,GAAKtvB,EAAU5hC,GACrBkxD,EAAQ,EAEVD,EAAYjxD,EAAOkxD,EAAQ,EAAGtvB,EAAWuvB,EAAU/+C,GAEnD2+C,EAAU3+C,EAAQpS,GAEVmxD,IACV/+C,EAAOA,EAAO3c,QAAUuK,EAE5B,CACA,OAAOoS,CACT,yBCnCA,IAaIg/C,EAbgB,EAAQ,MAadC,GAEdn3C,EAAO/D,QAAUi7C,yBCfjB,IAAIA,EAAU,EAAQ,OAClBj7D,EAAO,EAAQ,OAcnB+jB,EAAO/D,QAJP,SAAoB7e,EAAQ44D,GAC1B,OAAO54D,GAAU85D,EAAQ95D,EAAQ44D,EAAU/5D,EAC7C,yBCbA,IAAIm7D,EAAW,EAAQ,OACnBC,EAAQ,EAAQ,OAsBpBr3C,EAAO/D,QAZP,SAAiB7e,EAAQ+K,GAMvB,IAHA,IAAI8F,EAAQ,EACR1S,GAHJ4M,EAAOivD,EAASjvD,EAAM/K,IAGJ7B,OAED,MAAV6B,GAAkB6Q,EAAQ1S,GAC/B6B,EAASA,EAAOi6D,EAAMlvD,EAAK8F,OAE7B,OAAQA,GAASA,GAAS1S,EAAU6B,OAAS8O,CAC/C,yBCrBA,IAAI2qD,EAAY,EAAQ,OACpBvyD,EAAU,EAAQ,OAkBtB0b,EAAO/D,QALP,SAAwB7e,EAAQk6D,EAAUC,GACxC,IAAIr/C,EAASo/C,EAASl6D,GACtB,OAAOkH,EAAQlH,GAAU8a,EAAS2+C,EAAU3+C,EAAQq/C,EAAYn6D,GAClE,yBCjBA,IAAIif,EAAS,EAAQ,OACjBm7C,EAAY,EAAQ,KACpBC,EAAiB,EAAQ,OAOzBC,EAAiBr7C,EAASA,EAAOkiC,iBAAcryC,EAkBnD8T,EAAO/D,QATP,SAAoBnW,GAClB,OAAa,MAATA,OACeoG,IAAVpG,EAdQ,qBADL,gBAiBJ4xD,GAAkBA,KAAkB17D,OAAO8J,GAC/C0xD,EAAU1xD,GACV2xD,EAAe3xD,EACrB,qBCxBA,IAGI6D,EAHc3N,OAAO2B,UAGQgM,eAcjCqW,EAAO/D,QAJP,SAAiB7e,EAAQE,GACvB,OAAiB,MAAVF,GAAkBuM,EAAe9L,KAAKT,EAAQE,EACvD,qBCJA0iB,EAAO/D,QAJP,SAAmB7e,EAAQE,GACzB,OAAiB,MAAVF,GAAkBE,KAAOtB,OAAOoB,EACzC,yBCVA,IAAIu6D,EAAgB,EAAQ,MACxBC,EAAY,EAAQ,OACpBC,EAAgB,EAAQ,OAiB5B73C,EAAO/D,QANP,SAAqB5N,EAAOvI,EAAO2nC,GACjC,OAAO3nC,IAAUA,EACb+xD,EAAcxpD,EAAOvI,EAAO2nC,GAC5BkqB,EAActpD,EAAOupD,EAAWnqB,EACtC,yBCjBA,IAAIqqB,EAAa,EAAQ,OACrBz5B,EAAe,EAAQ,OAgB3Bre,EAAO/D,QAJP,SAAyBnW,GACvB,OAAOu4B,EAAav4B,IAVR,sBAUkBgyD,EAAWhyD,EAC3C,yBCfA,IAAIiyD,EAAkB,EAAQ,OAC1B15B,EAAe,EAAQ,OA0B3Bre,EAAO/D,QAVP,SAAS+7C,EAAYlyD,EAAOmyD,EAAOC,EAASC,EAAYl7D,GACtD,OAAI6I,IAAUmyD,IAGD,MAATnyD,GAA0B,MAATmyD,IAAmB55B,EAAav4B,KAAWu4B,EAAa45B,GACpEnyD,IAAUA,GAASmyD,IAAUA,EAE/BF,EAAgBjyD,EAAOmyD,EAAOC,EAASC,EAAYH,EAAa/6D,GACzE,yBCzBA,IAAIg4D,EAAQ,EAAQ,OAChBmD,EAAc,EAAQ,OACtBC,EAAa,EAAQ,OACrBC,EAAe,EAAQ,OACvBx6B,EAAS,EAAQ,MACjBx5B,EAAU,EAAQ,OAClBkmD,EAAW,EAAQ,MACnBiL,EAAe,EAAQ,OAMvB8C,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ9uD,EAHc3N,OAAO2B,UAGQgM,eA6DjCqW,EAAO/D,QA7CP,SAAyB7e,EAAQ66D,EAAOC,EAASC,EAAYO,EAAWz7D,GACtE,IAAI07D,EAAWr0D,EAAQlH,GACnBw7D,EAAWt0D,EAAQ2zD,GACnBY,EAASF,EAAWH,EAAW16B,EAAO1gC,GACtC07D,EAASF,EAAWJ,EAAW16B,EAAOm6B,GAKtCc,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,GAHJF,EAASA,GAAUP,EAAUE,EAAYK,IAGhBL,EACrBQ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAazO,EAASptD,GAAS,CACjC,IAAKotD,EAASyN,GACZ,OAAO,EAETU,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADA97D,IAAUA,EAAQ,IAAIg4D,GACd0D,GAAYlD,EAAar4D,GAC7Bg7D,EAAYh7D,EAAQ66D,EAAOC,EAASC,EAAYO,EAAWz7D,GAC3Do7D,EAAWj7D,EAAQ66D,EAAOY,EAAQX,EAASC,EAAYO,EAAWz7D,GAExE,KArDyB,EAqDnBi7D,GAAiC,CACrC,IAAIgB,EAAeH,GAAYpvD,EAAe9L,KAAKT,EAAQ,eACvD+7D,EAAeH,GAAYrvD,EAAe9L,KAAKo6D,EAAO,eAE1D,GAAIiB,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe97D,EAAO0I,QAAU1I,EAC/Ci8D,EAAeF,EAAelB,EAAMnyD,QAAUmyD,EAGlD,OADAh7D,IAAUA,EAAQ,IAAIg4D,GACfyD,EAAUU,EAAcC,EAAcnB,EAASC,EAAYl7D,EACpE,CACF,CACA,QAAKg8D,IAGLh8D,IAAUA,EAAQ,IAAIg4D,GACfqD,EAAal7D,EAAQ66D,EAAOC,EAASC,EAAYO,EAAWz7D,GACrE,yBChFA,IAAIg4D,EAAQ,EAAQ,OAChB+C,EAAc,EAAQ,OA4D1Bh4C,EAAO/D,QA5CP,SAAqB7e,EAAQ+N,EAAQmuD,EAAWnB,GAC9C,IAAIlqD,EAAQqrD,EAAU/9D,OAClBA,EAAS0S,EACTsrD,GAAgBpB,EAEpB,GAAc,MAAV/6D,EACF,OAAQ7B,EAGV,IADA6B,EAASpB,OAAOoB,GACT6Q,KAAS,CACd,IAAI7P,EAAOk7D,EAAUrrD,GACrB,GAAKsrD,GAAgBn7D,EAAK,GAClBA,EAAK,KAAOhB,EAAOgB,EAAK,MACtBA,EAAK,KAAMhB,GAEnB,OAAO,CAEX,CACA,OAAS6Q,EAAQ1S,GAAQ,CAEvB,IAAI+B,GADJc,EAAOk7D,EAAUrrD,IACF,GACXooD,EAAWj5D,EAAOE,GAClBk8D,EAAWp7D,EAAK,GAEpB,GAAIm7D,GAAgBn7D,EAAK,IACvB,QAAiB8N,IAAbmqD,KAA4B/4D,KAAOF,GACrC,OAAO,MAEJ,CACL,IAAIH,EAAQ,IAAIg4D,EAChB,GAAIkD,EACF,IAAIjgD,EAASigD,EAAW9B,EAAUmD,EAAUl8D,EAAKF,EAAQ+N,EAAQlO,GAEnE,UAAiBiP,IAAXgM,EACE8/C,EAAYwB,EAAUnD,EAAUoD,EAA+CtB,EAAYl7D,GAC3Fib,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,qBChDA8H,EAAO/D,QAJP,SAAmBnW,GACjB,OAAOA,IAAUA,CACnB,yBCTA,IAAI4zD,EAAa,EAAQ,MACrBC,EAAW,EAAQ,OACnBv7B,EAAW,EAAQ,OACnBw7B,EAAW,EAAQ,OASnBC,EAAe,8BAGfC,EAAYC,SAASp8D,UACrBq8D,EAAch+D,OAAO2B,UAGrBs8D,EAAeH,EAAUl8D,SAGzB+L,EAAiBqwD,EAAYrwD,eAG7BuwD,EAAan6D,OAAO,IACtBk6D,EAAap8D,KAAK8L,GAAgBzJ,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF8f,EAAO/D,QARP,SAAsBnW,GACpB,SAAKs4B,EAASt4B,IAAU6zD,EAAS7zD,MAGnB4zD,EAAW5zD,GAASo0D,EAAaL,GAChC1yD,KAAKyyD,EAAS9zD,GAC/B,wBC5CA,IAAIgyD,EAAa,EAAQ,OACrBqC,EAAW,EAAQ,OACnB97B,EAAe,EAAQ,OA8BvB+7B,EAAiB,CAAC,EACtBA,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,EAc7Bp6C,EAAO/D,QALP,SAA0BnW,GACxB,OAAOu4B,EAAav4B,IAClBq0D,EAASr0D,EAAMvK,WAAa6+D,EAAetC,EAAWhyD,GAC1D,yBCzDA,IAAIu0D,EAAc,EAAQ,OACtBC,EAAsB,EAAQ,OAC9BC,EAAW,EAAQ,OACnBj2D,EAAU,EAAQ,OAClBmM,EAAW,EAAQ,OA0BvBuP,EAAO/D,QAjBP,SAAsBnW,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKy0D,EAEW,iBAATz0D,EACFxB,EAAQwB,GACXw0D,EAAoBx0D,EAAM,GAAIA,EAAM,IACpCu0D,EAAYv0D,GAEX2K,EAAS3K,EAClB,yBC5BA,IAAI00D,EAAc,EAAQ,OACtBC,EAAa,EAAQ,MAMrB9wD,EAHc3N,OAAO2B,UAGQgM,eAsBjCqW,EAAO/D,QAbP,SAAkB7e,GAChB,IAAKo9D,EAAYp9D,GACf,OAAOq9D,EAAWr9D,GAEpB,IAAI8a,EAAS,GACb,IAAK,IAAI5a,KAAOtB,OAAOoB,GACjBuM,EAAe9L,KAAKT,EAAQE,IAAe,eAAPA,GACtC4a,EAAO1V,KAAKlF,GAGhB,OAAO4a,CACT,yBC3BA,IAAIkmB,EAAW,EAAQ,OACnBo8B,EAAc,EAAQ,OACtBE,EAAe,EAAQ,OAMvB/wD,EAHc3N,OAAO2B,UAGQgM,eAwBjCqW,EAAO/D,QAfP,SAAoB7e,GAClB,IAAKghC,EAAShhC,GACZ,OAAOs9D,EAAat9D,GAEtB,IAAIu9D,EAAUH,EAAYp9D,GACtB8a,EAAS,GAEb,IAAK,IAAI5a,KAAOF,GACD,eAAPE,IAAyBq9D,GAAYhxD,EAAe9L,KAAKT,EAAQE,KACrE4a,EAAO1V,KAAKlF,GAGhB,OAAO4a,CACT,wBC9BA,IAAIw+C,EAAW,EAAQ,OACnBkE,EAAc,EAAQ,OAoB1B56C,EAAO/D,QAVP,SAAiB/I,EAAY8iD,GAC3B,IAAI/nD,GAAS,EACTiK,EAAS0iD,EAAY1nD,GAAc7O,MAAM6O,EAAW3X,QAAU,GAKlE,OAHAm7D,EAASxjD,GAAY,SAASpN,EAAOxI,EAAK4V,GACxCgF,IAASjK,GAAS+nD,EAASlwD,EAAOxI,EAAK4V,EACzC,IACOgF,CACT,yBCnBA,IAAI2iD,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OACvBC,EAA0B,EAAQ,OAmBtC/6C,EAAO/D,QAVP,SAAqB9Q,GACnB,IAAImuD,EAAYwB,EAAa3vD,GAC7B,OAAwB,GAApBmuD,EAAU/9D,QAAe+9D,EAAU,GAAG,GACjCyB,EAAwBzB,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASl8D,GACd,OAAOA,IAAW+N,GAAU0vD,EAAYz9D,EAAQ+N,EAAQmuD,EAC1D,CACF,yBCnBA,IAAItB,EAAc,EAAQ,OACtBhmD,EAAM,EAAQ,OACdgpD,EAAQ,EAAQ,OAChBC,EAAQ,EAAQ,OAChBC,EAAqB,EAAQ,OAC7BH,EAA0B,EAAQ,OAClC1D,EAAQ,EAAQ,OA0BpBr3C,EAAO/D,QAZP,SAA6B9T,EAAMqxD,GACjC,OAAIyB,EAAM9yD,IAAS+yD,EAAmB1B,GAC7BuB,EAAwB1D,EAAMlvD,GAAOqxD,GAEvC,SAASp8D,GACd,IAAIi5D,EAAWrkD,EAAI5U,EAAQ+K,GAC3B,YAAqB+D,IAAbmqD,GAA0BA,IAAamD,EAC3CwB,EAAM59D,EAAQ+K,GACd6vD,EAAYwB,EAAUnD,EAAUoD,EACtC,CACF,yBC9BA,IAAIxE,EAAQ,EAAQ,OAChBkG,EAAmB,EAAQ,OAC3BjE,EAAU,EAAQ,OAClBkE,EAAgB,EAAQ,OACxBh9B,EAAW,EAAQ,OACnBi9B,EAAS,EAAQ,OACjBC,EAAU,EAAQ,OAmCtBt7C,EAAO/D,QAtBP,SAASs/C,EAAUn+D,EAAQ+N,EAAQqwD,EAAUrD,EAAYl7D,GACnDG,IAAW+N,GAGf+rD,EAAQ/rD,GAAQ,SAASquD,EAAUl8D,GAEjC,GADAL,IAAUA,EAAQ,IAAIg4D,GAClB72B,EAASo7B,GACX4B,EAAch+D,EAAQ+N,EAAQ7N,EAAKk+D,EAAUD,EAAWpD,EAAYl7D,OAEjE,CACH,IAAIwgC,EAAW06B,EACXA,EAAWmD,EAAQl+D,EAAQE,GAAMk8D,EAAWl8D,EAAM,GAAKF,EAAQ+N,EAAQlO,QACvEiP,OAEaA,IAAbuxB,IACFA,EAAW+7B,GAEb2B,EAAiB/9D,EAAQE,EAAKmgC,EAChC,CACF,GAAG49B,EACL,yBCvCA,IAAIF,EAAmB,EAAQ,OAC3BM,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAC1BC,EAAY,EAAQ,OACpBC,EAAkB,EAAQ,OAC1BrG,EAAc,EAAQ,OACtBjxD,EAAU,EAAQ,OAClBu3D,EAAoB,EAAQ,OAC5BrR,EAAW,EAAQ,MACnBkP,EAAa,EAAQ,MACrBt7B,EAAW,EAAQ,OACnBf,EAAgB,EAAQ,OACxBo4B,EAAe,EAAQ,OACvB6F,EAAU,EAAQ,OAClBQ,EAAgB,EAAQ,OA+E5B97C,EAAO/D,QA9DP,SAAuB7e,EAAQ+N,EAAQ7N,EAAKk+D,EAAUO,EAAW5D,EAAYl7D,GAC3E,IAAIo5D,EAAWiF,EAAQl+D,EAAQE,GAC3Bk8D,EAAW8B,EAAQnwD,EAAQ7N,GAC3B0+D,EAAU/+D,EAAM+U,IAAIwnD,GAExB,GAAIwC,EACFb,EAAiB/9D,EAAQE,EAAK0+D,OADhC,CAIA,IAAIv+B,EAAW06B,EACXA,EAAW9B,EAAUmD,EAAWl8D,EAAM,GAAKF,EAAQ+N,EAAQlO,QAC3DiP,EAEA+vD,OAAwB/vD,IAAbuxB,EAEf,GAAIw+B,EAAU,CACZ,IAAItG,EAAQrxD,EAAQk1D,GAChB3D,GAAUF,GAASnL,EAASgP,GAC5B0C,GAAWvG,IAAUE,GAAUJ,EAAa+D,GAEhD/7B,EAAW+7B,EACP7D,GAASE,GAAUqG,EACjB53D,EAAQ+xD,GACV54B,EAAW44B,EAEJwF,EAAkBxF,GACzB54B,EAAWk+B,EAAUtF,GAEdR,GACPoG,GAAW,EACXx+B,EAAWg+B,EAAYjC,GAAU,IAE1B0C,GACPD,GAAW,EACXx+B,EAAWi+B,EAAgBlC,GAAU,IAGrC/7B,EAAW,GAGNJ,EAAcm8B,IAAajE,EAAYiE,IAC9C/7B,EAAW44B,EACPd,EAAYc,GACd54B,EAAWq+B,EAAczF,GAEjBj4B,EAASi4B,KAAaqD,EAAWrD,KACzC54B,EAAWm+B,EAAgBpC,KAI7ByC,GAAW,CAEf,CACIA,IAEFh/D,EAAMgV,IAAIunD,EAAU/7B,GACpBs+B,EAAUt+B,EAAU+7B,EAAUgC,EAAUrD,EAAYl7D,GACpDA,EAAc,OAAEu8D,IAElB2B,EAAiB/9D,EAAQE,EAAKmgC,EAnD9B,CAoDF,yBC3FA,IAAI0+B,EAAW,EAAQ,OACnBC,EAAU,EAAQ,OAClBC,EAAe,EAAQ,OACvBC,EAAU,EAAQ,MAClBC,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OACpBC,EAAkB,EAAQ,OAC1BlC,EAAW,EAAQ,OACnBj2D,EAAU,EAAQ,OAwCtB0b,EAAO/D,QA7BP,SAAqB/I,EAAYwpD,EAAWC,GAExCD,EADEA,EAAUnhE,OACA4gE,EAASO,GAAW,SAAS1G,GACvC,OAAI1xD,EAAQ0xD,GACH,SAASlwD,GACd,OAAOs2D,EAAQt2D,EAA2B,IAApBkwD,EAASz6D,OAAey6D,EAAS,GAAKA,EAC9D,EAEKA,CACT,IAEY,CAACuE,GAGf,IAAItsD,GAAS,EACbyuD,EAAYP,EAASO,EAAWF,EAAUH,IAE1C,IAAInkD,EAASokD,EAAQppD,GAAY,SAASpN,EAAOxI,EAAK4V,GAIpD,MAAO,CAAE,SAHMipD,EAASO,GAAW,SAAS1G,GAC1C,OAAOA,EAASlwD,EAClB,IAC+B,QAAWmI,EAAO,MAASnI,EAC5D,IAEA,OAAOy2D,EAAWrkD,GAAQ,SAAS9a,EAAQ66D,GACzC,OAAOwE,EAAgBr/D,EAAQ66D,EAAO0E,EACxC,GACF,qBCjCA38C,EAAO/D,QANP,SAAsB3e,GACpB,OAAO,SAASF,GACd,OAAiB,MAAVA,OAAiB8O,EAAY9O,EAAOE,EAC7C,CACF,yBCXA,IAAI8+D,EAAU,EAAQ,OAetBp8C,EAAO/D,QANP,SAA0B9T,GACxB,OAAO,SAAS/K,GACd,OAAOg/D,EAAQh/D,EAAQ+K,EACzB,CACF,qBCAA6X,EAAO/D,QANP,SAAwB7e,GACtB,OAAO,SAASE,GACd,OAAiB,MAAVF,OAAiB8O,EAAY9O,EAAOE,EAC7C,CACF,qBCVA,IAAIs/D,EAAa55D,KAAK6yB,KAClBgnC,EAAY75D,KAAK63B,IAyBrB7a,EAAO/D,QAZP,SAAmBkM,EAAOzmB,EAAKsiD,EAAM4S,GAKnC,IAJA,IAAI3oD,GAAS,EACT1S,EAASshE,EAAUD,GAAYl7D,EAAMymB,IAAU67B,GAAQ,IAAK,GAC5D9rC,EAAS7T,MAAM9I,GAEZA,KACL2c,EAAO0+C,EAAYr7D,IAAW0S,GAASka,EACvCA,GAAS67B,EAEX,OAAO9rC,CACT,qBCxBA,IAGI4kD,EAAc95D,KAAK+C,MA8BvBia,EAAO/D,QApBP,SAAoBpE,EAAQpO,GAC1B,IAAIyO,EAAS,GACb,IAAKL,GAAUpO,EAAI,GAAKA,EAfH,iBAgBnB,OAAOyO,EAIT,GACMzO,EAAI,IACNyO,GAAUL,IAEZpO,EAAIqzD,EAAYrzD,EAAI,MAElBoO,GAAUA,SAELpO,GAET,OAAOyO,CACT,yBChCA,IAAIqiD,EAAW,EAAQ,OACnBwC,EAAW,EAAQ,OACnBC,EAAc,EAAQ,OAc1Bh9C,EAAO/D,QAJP,SAAkB9C,EAAMgP,GACtB,OAAO60C,EAAYD,EAAS5jD,EAAMgP,EAAOoyC,GAAWphD,EAAO,GAC7D,yBCdA,IAAI8jD,EAAW,EAAQ,OACnBjhD,EAAiB,EAAQ,OACzBu+C,EAAW,EAAQ,OAUnB2C,EAAmBlhD,EAA4B,SAAS7C,EAAMtB,GAChE,OAAOmE,EAAe7C,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS8jD,EAASplD,GAClB,UAAY,GAEhB,EAPwC0iD,EASxCv6C,EAAO/D,QAAUihD,qBCSjBl9C,EAAO/D,QArBP,SAAmB5N,EAAO8Z,EAAOzmB,GAC/B,IAAIuM,GAAS,EACT1S,EAAS8S,EAAM9S,OAEf4sB,EAAQ,IACVA,GAASA,EAAQ5sB,EAAS,EAAKA,EAAS4sB,IAE1CzmB,EAAMA,EAAMnG,EAASA,EAASmG,GACpB,IACRA,GAAOnG,GAETA,EAAS4sB,EAAQzmB,EAAM,EAAMA,EAAMymB,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIjQ,EAAS7T,MAAM9I,KACV0S,EAAQ1S,GACf2c,EAAOjK,GAASI,EAAMJ,EAAQka,GAEhC,OAAOjQ,CACT,qBCRA8H,EAAO/D,QAVP,SAAoB5N,EAAO8uD,GACzB,IAAI5hE,EAAS8S,EAAM9S,OAGnB,IADA8S,EAAM45B,KAAKk1B,GACJ5hE,KACL8S,EAAM9S,GAAU8S,EAAM9S,GAAQuK,MAEhC,OAAOuI,CACT,qBCCA2R,EAAO/D,QAVP,SAAmBxS,EAAGusD,GAIpB,IAHA,IAAI/nD,GAAS,EACTiK,EAAS7T,MAAMoF,KAEVwE,EAAQxE,GACfyO,EAAOjK,GAAS+nD,EAAS/nD,GAE3B,OAAOiK,CACT,yBCjBA,IAAImE,EAAS,EAAQ,OACjB8/C,EAAW,EAAQ,OACnB73D,EAAU,EAAQ,OAClB84D,EAAW,EAAQ,OAMnBC,EAAchhD,EAASA,EAAO1e,eAAYuO,EAC1CoxD,EAAiBD,EAAcA,EAAYz/D,cAAWsO,EA0B1D8T,EAAO/D,QAhBP,SAAS+hB,EAAal4B,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIxB,EAAQwB,GAEV,OAAOq2D,EAASr2D,EAAOk4B,GAAgB,GAEzC,GAAIo/B,EAASt3D,GACX,OAAOw3D,EAAiBA,EAAez/D,KAAKiI,GAAS,GAEvD,IAAIoS,EAAUpS,EAAQ,GACtB,MAAkB,KAAVoS,GAAkB,EAAIpS,IAAU,IAAa,KAAOoS,CAC9D,yBClCA,IAAIqlD,EAAkB,EAAQ,OAG1BC,EAAc,OAelBx9C,EAAO/D,QANP,SAAkBpE,GAChB,OAAOA,EACHA,EAAOzJ,MAAM,EAAGmvD,EAAgB1lD,GAAU,GAAG3X,QAAQs9D,EAAa,IAClE3lD,CACN,qBCHAmI,EAAO/D,QANP,SAAmB9C,GACjB,OAAO,SAASrT,GACd,OAAOqT,EAAKrT,EACd,CACF,yBCXA,IAAI4uD,EAAW,EAAQ,OACnB+I,EAAgB,EAAQ,OACxBC,EAAoB,EAAQ,OAC5BC,EAAW,EAAQ,OACnBC,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OAkEzB79C,EAAO/D,QApDP,SAAkB5N,EAAO2nD,EAAUX,GACjC,IAAIpnD,GAAS,EACTsjC,EAAWksB,EACXliE,EAAS8S,EAAM9S,OACf0gE,GAAW,EACX/jD,EAAS,GACT4lD,EAAO5lD,EAEX,GAAIm9C,EACF4G,GAAW,EACX1qB,EAAWmsB,OAER,GAAIniE,GAvBY,IAuBgB,CACnC,IAAI0W,EAAM+jD,EAAW,KAAO4H,EAAUvvD,GACtC,GAAI4D,EACF,OAAO4rD,EAAW5rD,GAEpBgqD,GAAW,EACX1qB,EAAWosB,EACXG,EAAO,IAAIpJ,CACb,MAEEoJ,EAAO9H,EAAW,GAAK99C,EAEzB6lD,EACA,OAAS9vD,EAAQ1S,GAAQ,CACvB,IAAIuK,EAAQuI,EAAMJ,GACd+vD,EAAWhI,EAAWA,EAASlwD,GAASA,EAG5C,GADAA,EAASuvD,GAAwB,IAAVvvD,EAAeA,EAAQ,EAC1Cm2D,GAAY+B,IAAaA,EAAU,CAErC,IADA,IAAIC,EAAYH,EAAKviE,OACd0iE,KACL,GAAIH,EAAKG,KAAeD,EACtB,SAASD,EAGT/H,GACF8H,EAAKt7D,KAAKw7D,GAEZ9lD,EAAO1V,KAAKsD,EACd,MACUyrC,EAASusB,EAAME,EAAU3I,KAC7ByI,IAAS5lD,GACX4lD,EAAKt7D,KAAKw7D,GAEZ9lD,EAAO1V,KAAKsD,GAEhB,CACA,OAAOoS,CACT,qBC/CA8H,EAAO/D,QAbP,SAAuBnN,EAAO3K,EAAQ+5D,GAMpC,IALA,IAAIjwD,GAAS,EACT1S,EAASuT,EAAMvT,OACf4iE,EAAah6D,EAAO5I,OACpB2c,EAAS,CAAC,IAELjK,EAAQ1S,GAAQ,CACvB,IAAIuK,EAAQmI,EAAQkwD,EAAah6D,EAAO8J,QAAS/B,EACjDgyD,EAAWhmD,EAAQpJ,EAAMb,GAAQnI,EACnC,CACA,OAAOoS,CACT,qBCRA8H,EAAO/D,QAJP,SAAkBxI,EAAOnW,GACvB,OAAOmW,EAAM2K,IAAI9gB,EACnB,yBCVA,IAAIgH,EAAU,EAAQ,OAClB22D,EAAQ,EAAQ,OAChBmD,EAAe,EAAQ,OACvBxgE,EAAW,EAAQ,OAiBvBoiB,EAAO/D,QAPP,SAAkBnW,EAAO1I,GACvB,OAAIkH,EAAQwB,GACHA,EAEFm1D,EAAMn1D,EAAO1I,GAAU,CAAC0I,GAASs4D,EAAaxgE,EAASkI,GAChE,yBClBA,IAAIu4D,EAAY,EAAQ,OAiBxBr+C,EAAO/D,QANP,SAAmB5N,EAAO8Z,EAAOzmB,GAC/B,IAAInG,EAAS8S,EAAM9S,OAEnB,OADAmG,OAAcwK,IAARxK,EAAoBnG,EAASmG,GAC1BymB,GAASzmB,GAAOnG,EAAU8S,EAAQgwD,EAAUhwD,EAAO8Z,EAAOzmB,EACrE,yBCfA,IAAIwzD,EAAa,EAAQ,OAezBl1C,EAAO/D,QANP,SAA0BqiD,GACxB,IAAIpmD,EAAS,IAAIomD,EAAY/hD,YAAY+hD,EAAYC,YAErD,OADA,IAAIrJ,EAAWh9C,GAAQjG,IAAI,IAAIijD,EAAWoJ,IACnCpmD,CACT,oCCbA,IAAIvJ,EAAO,EAAQ,MAGf6vD,EAA4CviD,IAAYA,EAAQwiD,UAAYxiD,EAG5EyiD,EAAaF,GAA4Cx+C,IAAWA,EAAOy+C,UAAYz+C,EAMvF2+C,EAHgBD,GAAcA,EAAWziD,UAAYuiD,EAG5B7vD,EAAKgwD,YAASzyD,EACvC0yD,EAAcD,EAASA,EAAOC,iBAAc1yD,EAqBhD8T,EAAO/D,QAXP,SAAqBu2B,EAAQqsB,GAC3B,GAAIA,EACF,OAAOrsB,EAAOpkC,QAEhB,IAAI7S,EAASi3C,EAAOj3C,OAChB2c,EAAS0mD,EAAcA,EAAYrjE,GAAU,IAAIi3C,EAAOj2B,YAAYhhB,GAGxE,OADAi3C,EAAO7U,KAAKzlB,GACLA,CACT,yBChCA,IAAI4mD,EAAmB,EAAQ,OAe/B9+C,EAAO/D,QALP,SAAyB8iD,EAAYF,GACnC,IAAIrsB,EAASqsB,EAASC,EAAiBC,EAAWvsB,QAAUusB,EAAWvsB,OACvE,OAAO,IAAIusB,EAAWxiD,YAAYi2B,EAAQusB,EAAWC,WAAYD,EAAWxjE,OAC9E,yBCbA,IAAI6hE,EAAW,EAAQ,OAwCvBp9C,EAAO/D,QA9BP,SAA0BnW,EAAOmyD,GAC/B,GAAInyD,IAAUmyD,EAAO,CACnB,IAAIgH,OAAyB/yD,IAAVpG,EACfo5D,EAAsB,OAAVp5D,EACZq5D,EAAiBr5D,IAAUA,EAC3Bs5D,EAAchC,EAASt3D,GAEvBu5D,OAAyBnzD,IAAV+rD,EACfqH,EAAsB,OAAVrH,EACZsH,EAAiBtH,IAAUA,EAC3BuH,EAAcpC,EAASnF,GAE3B,IAAMqH,IAAcE,IAAgBJ,GAAet5D,EAAQmyD,GACtDmH,GAAeC,GAAgBE,IAAmBD,IAAcE,GAChEN,GAAaG,GAAgBE,IAC5BN,GAAgBM,IACjBJ,EACH,OAAO,EAET,IAAMD,IAAcE,IAAgBI,GAAe15D,EAAQmyD,GACtDuH,GAAeP,GAAgBE,IAAmBD,IAAcE,GAChEE,GAAaL,GAAgBE,IAC5BE,GAAgBF,IACjBI,EACH,OAAQ,CAEZ,CACA,OAAO,CACT,yBCtCA,IAAIE,EAAmB,EAAQ,OA2C/Bz/C,EAAO/D,QA3BP,SAAyB7e,EAAQ66D,EAAO0E,GAOtC,IANA,IAAI1uD,GAAS,EACTyxD,EAActiE,EAAOuiE,SACrBC,EAAc3H,EAAM0H,SACpBpkE,EAASmkE,EAAYnkE,OACrBskE,EAAelD,EAAOphE,SAEjB0S,EAAQ1S,GAAQ,CACvB,IAAI2c,EAASunD,EAAiBC,EAAYzxD,GAAQ2xD,EAAY3xD,IAC9D,GAAIiK,EACF,OAAIjK,GAAS4xD,EACJ3nD,EAGFA,GAAmB,QADdykD,EAAO1uD,IACiB,EAAI,EAE5C,CAQA,OAAO7Q,EAAO6Q,MAAQgqD,EAAMhqD,KAC9B,qBCtBA+R,EAAO/D,QAXP,SAAmB9Q,EAAQkD,GACzB,IAAIJ,GAAS,EACT1S,EAAS4P,EAAO5P,OAGpB,IADA8S,IAAUA,EAAQhK,MAAM9I,MACf0S,EAAQ1S,GACf8S,EAAMJ,GAAS9C,EAAO8C,GAExB,OAAOI,CACT,yBCjBA,IAAIyxD,EAAc,EAAQ,OACtB1J,EAAkB,EAAQ,OAsC9Bp2C,EAAO/D,QA1BP,SAAoB9Q,EAAQ2D,EAAO1R,EAAQ+6D,GACzC,IAAI4H,GAAS3iE,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAI6Q,GAAS,EACT1S,EAASuT,EAAMvT,SAEV0S,EAAQ1S,GAAQ,CACvB,IAAI+B,EAAMwR,EAAMb,GAEZwvB,EAAW06B,EACXA,EAAW/6D,EAAOE,GAAM6N,EAAO7N,GAAMA,EAAKF,EAAQ+N,QAClDe,OAEaA,IAAbuxB,IACFA,EAAWtyB,EAAO7N,IAEhByiE,EACF3J,EAAgBh5D,EAAQE,EAAKmgC,GAE7BqiC,EAAY1iE,EAAQE,EAAKmgC,EAE7B,CACA,OAAOrgC,CACT,yBCrCA,IAGI4iE,EAHO,EAAQ,MAGG,sBAEtBhgD,EAAO/D,QAAU+jD,yBCLjB,IAAIC,EAAW,EAAQ,OACnBC,EAAiB,EAAQ,OAmC7BlgD,EAAO/D,QA1BP,SAAwBkkD,GACtB,OAAOF,GAAS,SAAS7iE,EAAQgjE,GAC/B,IAAInyD,GAAS,EACT1S,EAAS6kE,EAAQ7kE,OACjB48D,EAAa58D,EAAS,EAAI6kE,EAAQ7kE,EAAS,QAAK2Q,EAChDm0D,EAAQ9kE,EAAS,EAAI6kE,EAAQ,QAAKl0D,EAWtC,IATAisD,EAAcgI,EAAS5kE,OAAS,GAA0B,mBAAd48D,GACvC58D,IAAU48D,QACXjsD,EAEAm0D,GAASH,EAAeE,EAAQ,GAAIA,EAAQ,GAAIC,KAClDlI,EAAa58D,EAAS,OAAI2Q,EAAYisD,EACtC58D,EAAS,GAEX6B,EAASpB,OAAOoB,KACP6Q,EAAQ1S,GAAQ,CACvB,IAAI4P,EAASi1D,EAAQnyD,GACjB9C,GACFg1D,EAAS/iE,EAAQ+N,EAAQ8C,EAAOkqD,EAEpC,CACA,OAAO/6D,CACT,GACF,yBClCA,IAAIw9D,EAAc,EAAQ,OA+B1B56C,EAAO/D,QArBP,SAAwBqkD,EAAU1J,GAChC,OAAO,SAAS1jD,EAAY8iD,GAC1B,GAAkB,MAAd9iD,EACF,OAAOA,EAET,IAAK0nD,EAAY1nD,GACf,OAAOotD,EAASptD,EAAY8iD,GAM9B,IAJA,IAAIz6D,EAAS2X,EAAW3X,OACpB0S,EAAQ2oD,EAAYr7D,GAAU,EAC9BglE,EAAWvkE,OAAOkX,IAEd0jD,EAAY3oD,MAAYA,EAAQ1S,KACa,IAA/Cy6D,EAASuK,EAAStyD,GAAQA,EAAOsyD,KAIvC,OAAOrtD,CACT,CACF,qBCLA8M,EAAO/D,QAjBP,SAAuB26C,GACrB,OAAO,SAASx5D,EAAQ44D,EAAUsB,GAMhC,IALA,IAAIrpD,GAAS,EACTsyD,EAAWvkE,OAAOoB,GAClB0R,EAAQwoD,EAASl6D,GACjB7B,EAASuT,EAAMvT,OAEZA,KAAU,CACf,IAAI+B,EAAMwR,EAAM8nD,EAAYr7D,IAAW0S,GACvC,IAA+C,IAA3C+nD,EAASuK,EAASjjE,GAAMA,EAAKijE,GAC/B,KAEJ,CACA,OAAOnjE,CACT,CACF,yBCtBA,IAAIojE,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBC,EAAgB,EAAQ,OACxB9iE,EAAW,EAAQ,OA6BvBoiB,EAAO/D,QApBP,SAAyB0kD,GACvB,OAAO,SAAS9oD,GACdA,EAASja,EAASia,GAElB,IAAI+oD,EAAaH,EAAW5oD,GACxB6oD,EAAc7oD,QACd3L,EAEA20D,EAAMD,EACNA,EAAW,GACX/oD,EAAO6J,OAAO,GAEdo/C,EAAWF,EACXJ,EAAUI,EAAY,GAAGnjE,KAAK,IAC9Boa,EAAOzJ,MAAM,GAEjB,OAAOyyD,EAAIF,KAAgBG,CAC7B,CACF,yBC9BA,IAAIC,EAAc,EAAQ,OACtBC,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAMhBC,EAASnhE,OAHA,YAGe,KAe5BigB,EAAO/D,QANP,SAA0BpM,GACxB,OAAO,SAASgI,GACd,OAAOkpD,EAAYE,EAAMD,EAAOnpD,GAAQ3X,QAAQghE,EAAQ,KAAMrxD,EAAU,GAC1E,CACF,yBCrBA,IAAIsxD,EAAY,EAAQ,OACpBjB,EAAiB,EAAQ,OACzBkB,EAAW,EAAQ,OA2BvBphD,EAAO/D,QAlBP,SAAqB26C,GACnB,OAAO,SAASzuC,EAAOzmB,EAAKsiD,GAa1B,OAZIA,GAAuB,iBAARA,GAAoBkc,EAAe/3C,EAAOzmB,EAAKsiD,KAChEtiD,EAAMsiD,OAAO93C,GAGfic,EAAQi5C,EAASj5C,QACLjc,IAARxK,GACFA,EAAMymB,EACNA,EAAQ,GAERzmB,EAAM0/D,EAAS1/D,GAEjBsiD,OAAgB93C,IAAT83C,EAAsB77B,EAAQzmB,EAAM,GAAK,EAAK0/D,EAASpd,GACvDmd,EAAUh5C,EAAOzmB,EAAKsiD,EAAM4S,EACrC,CACF,yBC3BA,IAAIjxB,EAAM,EAAQ,OACd07B,EAAO,EAAQ,OACfxD,EAAa,EAAQ,OAYrBD,EAAcj4B,GAAQ,EAAIk4B,EAAW,IAAIl4B,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAASxhC,GAC1F,OAAO,IAAIwhC,EAAIxhC,EACjB,EAF4Ek9D,EAI5ErhD,EAAO/D,QAAU2hD,yBClBjB,IAoEI0D,EApEiB,EAAQ,MAoEVC,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,MAa5BvhD,EAAO/D,QAAUqlD,yBCtEjB,IAAIjO,EAAY,EAAQ,OAEpBr3C,EAAkB,WACpB,IACE,IAAI7C,EAAOk6C,EAAUr3D,OAAQ,kBAE7B,OADAmd,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO/Y,GAAI,CACf,CANqB,GAQrB4f,EAAO/D,QAAUD,yBCVjB,IAAI04C,EAAW,EAAQ,OACnB8M,EAAY,EAAQ,OACpB7D,EAAW,EAAQ,OAiFvB39C,EAAO/D,QA9DP,SAAqB5N,EAAO4pD,EAAOC,EAASC,EAAYO,EAAWz7D,GACjE,IAAIwkE,EAjBqB,EAiBTvJ,EACZwJ,EAAYrzD,EAAM9S,OAClBomE,EAAY1J,EAAM18D,OAEtB,GAAImmE,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAa3kE,EAAM+U,IAAI3D,GACvBwzD,EAAa5kE,EAAM+U,IAAIimD,GAC3B,GAAI2J,GAAcC,EAChB,OAAOD,GAAc3J,GAAS4J,GAAcxzD,EAE9C,IAAIJ,GAAS,EACTiK,GAAS,EACT4lD,EA/BuB,EA+Bf5F,EAAoC,IAAIxD,OAAWxoD,EAM/D,IAJAjP,EAAMgV,IAAI5D,EAAO4pD,GACjBh7D,EAAMgV,IAAIgmD,EAAO5pD,KAGRJ,EAAQyzD,GAAW,CAC1B,IAAII,EAAWzzD,EAAMJ,GACjB8zD,EAAW9J,EAAMhqD,GAErB,GAAIkqD,EACF,IAAI6J,EAAWP,EACXtJ,EAAW4J,EAAUD,EAAU7zD,EAAOgqD,EAAO5pD,EAAOpR,GACpDk7D,EAAW2J,EAAUC,EAAU9zD,EAAOI,EAAO4pD,EAAOh7D,GAE1D,QAAiBiP,IAAb81D,EAAwB,CAC1B,GAAIA,EACF,SAEF9pD,GAAS,EACT,KACF,CAEA,GAAI4lD,GACF,IAAK0D,EAAUvJ,GAAO,SAAS8J,EAAUE,GACnC,IAAKtE,EAASG,EAAMmE,KACfH,IAAaC,GAAYrJ,EAAUoJ,EAAUC,EAAU7J,EAASC,EAAYl7D,IAC/E,OAAO6gE,EAAKt7D,KAAKy/D,EAErB,IAAI,CACN/pD,GAAS,EACT,KACF,OACK,GACD4pD,IAAaC,IACXrJ,EAAUoJ,EAAUC,EAAU7J,EAASC,EAAYl7D,GACpD,CACLib,GAAS,EACT,KACF,CACF,CAGA,OAFAjb,EAAc,OAAEoR,GAChBpR,EAAc,OAAEg7D,GACT//C,CACT,yBCjFA,IAAImE,EAAS,EAAQ,OACjB64C,EAAa,EAAQ,OACrB3Z,EAAK,EAAQ,OACb6c,EAAc,EAAQ,OACtB8J,EAAa,EAAQ,OACrBrE,EAAa,EAAQ,OAqBrBR,EAAchhD,EAASA,EAAO1e,eAAYuO,EAC1Ci2D,EAAgB9E,EAAcA,EAAYhlC,aAAUnsB,EAoFxD8T,EAAO/D,QAjEP,SAAoB7e,EAAQ66D,EAAOxsD,EAAKysD,EAASC,EAAYO,EAAWz7D,GACtE,OAAQwO,GACN,IAzBc,oBA0BZ,GAAKrO,EAAOmhE,YAActG,EAAMsG,YAC3BnhE,EAAO4hE,YAAc/G,EAAM+G,WAC9B,OAAO,EAET5hE,EAASA,EAAOo1C,OAChBylB,EAAQA,EAAMzlB,OAEhB,IAlCiB,uBAmCf,QAAKp1C,EAAOmhE,YAActG,EAAMsG,aAC3B7F,EAAU,IAAIxD,EAAW93D,GAAS,IAAI83D,EAAW+C,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO1c,GAAIn+C,GAAS66D,GAEtB,IAxDW,iBAyDT,OAAO76D,EAAOiG,MAAQ40D,EAAM50D,MAAQjG,EAAOV,SAAWu7D,EAAMv7D,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOU,GAAW66D,EAAQ,GAE5B,IAjES,eAkEP,IAAImK,EAAUF,EAEhB,IAjES,eAkEP,IAAIT,EA5EiB,EA4ELvJ,EAGhB,GAFAkK,IAAYA,EAAUvE,GAElBzgE,EAAO+T,MAAQ8mD,EAAM9mD,OAASswD,EAChC,OAAO,EAGT,IAAIzF,EAAU/+D,EAAM+U,IAAI5U,GACxB,GAAI4+D,EACF,OAAOA,GAAW/D,EAEpBC,GAtFuB,EAyFvBj7D,EAAMgV,IAAI7U,EAAQ66D,GAClB,IAAI//C,EAASkgD,EAAYgK,EAAQhlE,GAASglE,EAAQnK,GAAQC,EAASC,EAAYO,EAAWz7D,GAE1F,OADAA,EAAc,OAAEG,GACT8a,EAET,IAnFY,kBAoFV,GAAIiqD,EACF,OAAOA,EAActkE,KAAKT,IAAW+kE,EAActkE,KAAKo6D,GAG9D,OAAO,CACT,yBC7GA,IAAIoK,EAAa,EAAQ,OASrB14D,EAHc3N,OAAO2B,UAGQgM,eAgFjCqW,EAAO/D,QAjEP,SAAsB7e,EAAQ66D,EAAOC,EAASC,EAAYO,EAAWz7D,GACnE,IAAIwkE,EAtBqB,EAsBTvJ,EACZoK,EAAWD,EAAWjlE,GACtBmlE,EAAYD,EAAS/mE,OAIzB,GAAIgnE,GAHWF,EAAWpK,GACD18D,SAEMkmE,EAC7B,OAAO,EAGT,IADA,IAAIxzD,EAAQs0D,EACLt0D,KAAS,CACd,IAAI3Q,EAAMglE,EAASr0D,GACnB,KAAMwzD,EAAYnkE,KAAO26D,EAAQtuD,EAAe9L,KAAKo6D,EAAO36D,IAC1D,OAAO,CAEX,CAEA,IAAIklE,EAAavlE,EAAM+U,IAAI5U,GACvBykE,EAAa5kE,EAAM+U,IAAIimD,GAC3B,GAAIuK,GAAcX,EAChB,OAAOW,GAAcvK,GAAS4J,GAAczkE,EAE9C,IAAI8a,GAAS,EACbjb,EAAMgV,IAAI7U,EAAQ66D,GAClBh7D,EAAMgV,IAAIgmD,EAAO76D,GAGjB,IADA,IAAIqlE,EAAWhB,IACNxzD,EAAQs0D,GAAW,CAE1B,IAAIlM,EAAWj5D,EADfE,EAAMglE,EAASr0D,IAEX8zD,EAAW9J,EAAM36D,GAErB,GAAI66D,EACF,IAAI6J,EAAWP,EACXtJ,EAAW4J,EAAU1L,EAAU/4D,EAAK26D,EAAO76D,EAAQH,GACnDk7D,EAAW9B,EAAU0L,EAAUzkE,EAAKF,EAAQ66D,EAAOh7D,GAGzD,UAAmBiP,IAAb81D,EACG3L,IAAa0L,GAAYrJ,EAAUrC,EAAU0L,EAAU7J,EAASC,EAAYl7D,GAC7E+kE,GACD,CACL9pD,GAAS,EACT,KACF,CACAuqD,IAAaA,EAAkB,eAAPnlE,EAC1B,CACA,GAAI4a,IAAWuqD,EAAU,CACvB,IAAIC,EAAUtlE,EAAOmf,YACjBomD,EAAU1K,EAAM17C,YAGhBmmD,GAAWC,KACV,gBAAiBvlE,MAAU,gBAAiB66D,IACzB,mBAAXyK,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDzqD,GAAS,EAEb,CAGA,OAFAjb,EAAc,OAAEG,GAChBH,EAAc,OAAEg7D,GACT//C,CACT,yBCtFA,IAAI0qD,EAA8B,iBAAV,EAAA5kE,GAAsB,EAAAA,GAAU,EAAAA,EAAOhC,SAAWA,QAAU,EAAAgC,EAEpFgiB,EAAO/D,QAAU2mD,yBCHjB,IAAIC,EAAiB,EAAQ,OACzBC,EAAa,EAAQ,MACrB7mE,EAAO,EAAQ,OAanB+jB,EAAO/D,QAJP,SAAoB7e,GAClB,OAAOylE,EAAezlE,EAAQnB,EAAM6mE,EACtC,yBCbA,IAAIC,EAAY,EAAQ,OAiBxB/iD,EAAO/D,QAPP,SAAoB5e,EAAKC,GACvB,IAAIc,EAAOf,EAAIs3D,SACf,OAAOoO,EAAUzlE,GACbc,EAAmB,iBAAPd,EAAkB,SAAW,QACzCc,EAAKf,GACX,yBCfA,IAAI69D,EAAqB,EAAQ,OAC7Bj/D,EAAO,EAAQ,OAsBnB+jB,EAAO/D,QAbP,SAAsB7e,GAIpB,IAHA,IAAI8a,EAASjc,EAAKmB,GACd7B,EAAS2c,EAAO3c,OAEbA,KAAU,CACf,IAAI+B,EAAM4a,EAAO3c,GACbuK,EAAQ1I,EAAOE,GAEnB4a,EAAO3c,GAAU,CAAC+B,EAAKwI,EAAOo1D,EAAmBp1D,GACnD,CACA,OAAOoS,CACT,yBCrBA,IAAI8qD,EAAe,EAAQ,OACvBC,EAAW,EAAQ,OAevBjjD,EAAO/D,QALP,SAAmB7e,EAAQE,GACzB,IAAIwI,EAAQm9D,EAAS7lE,EAAQE,GAC7B,OAAO0lE,EAAal9D,GAASA,OAAQoG,CACvC,yBCdA,IAGIg3D,EAHU,EAAQ,MAGHC,CAAQnnE,OAAOohB,eAAgBphB,QAElDgkB,EAAO/D,QAAUinD,uBCLjB,IAAI7mD,EAAS,EAAQ,OAGjB29C,EAAch+D,OAAO2B,UAGrBgM,EAAiBqwD,EAAYrwD,eAO7By5D,EAAuBpJ,EAAYp8D,SAGnC85D,EAAiBr7C,EAASA,EAAOkiC,iBAAcryC,EA6BnD8T,EAAO/D,QApBP,SAAmBnW,GACjB,IAAIu9D,EAAQ15D,EAAe9L,KAAKiI,EAAO4xD,GACnCjsD,EAAM3F,EAAM4xD,GAEhB,IACE5xD,EAAM4xD,QAAkBxrD,EACxB,IAAIo3D,GAAW,CACjB,CAAE,MAAOljE,GAAI,CAEb,IAAI8X,EAASkrD,EAAqBvlE,KAAKiI,GAQvC,OAPIw9D,IACED,EACFv9D,EAAM4xD,GAAkBjsD,SAEjB3F,EAAM4xD,IAGVx/C,CACT,wBC3CA,IAAIqrD,EAAc,EAAQ,OACtBC,EAAY,EAAQ,OAMpBC,EAHcznE,OAAO2B,UAGc8lE,qBAGnCC,EAAmB1nE,OAAOwkB,sBAS1BsiD,EAAcY,EAA+B,SAAStmE,GACxD,OAAc,MAAVA,EACK,IAETA,EAASpB,OAAOoB,GACTmmE,EAAYG,EAAiBtmE,IAAS,SAASumE,GACpD,OAAOF,EAAqB5lE,KAAKT,EAAQumE,EAC3C,IACF,EARqCH,EAUrCxjD,EAAO/D,QAAU6mD,wBC7BjB,IAAI1P,EAAW,EAAQ,OACnBt1C,EAAM,EAAQ,OACdxe,EAAU,EAAQ,OAClBqmC,EAAM,EAAQ,OACd9zB,EAAU,EAAQ,OAClBimD,EAAa,EAAQ,OACrB8B,EAAW,EAAQ,OAGnBgK,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBrK,EAASxG,GAC9B8Q,EAAgBtK,EAAS97C,GACzBqmD,EAAoBvK,EAASt6D,GAC7B8kE,EAAgBxK,EAASj0B,GACzB0+B,EAAoBzK,EAAS/nD,GAS7BisB,EAASg6B,GAGR1E,GAAYt1B,EAAO,IAAIs1B,EAAS,IAAIkR,YAAY,MAAQN,GACxDlmD,GAAOggB,EAAO,IAAIhgB,IAAQ8lD,GAC1BtkE,GAAWw+B,EAAOx+B,EAAQD,YAAcwkE,GACxCl+B,GAAO7H,EAAO,IAAI6H,IAAQm+B,GAC1BjyD,GAAWisB,EAAO,IAAIjsB,IAAYkyD,KACrCjmC,EAAS,SAASh4B,GAChB,IAAIoS,EAAS4/C,EAAWhyD,GACpBy+D,EA/BQ,mBA+BDrsD,EAAsBpS,EAAMyW,iBAAcrQ,EACjDs4D,EAAaD,EAAO3K,EAAS2K,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,OAAO7rD,CACT,GAGF8H,EAAO/D,QAAU6hB,qBC7CjB9d,EAAO/D,QAJP,SAAkB7e,EAAQE,GACxB,OAAiB,MAAVF,OAAiB8O,EAAY9O,EAAOE,EAC7C,yBCVA,IAAI85D,EAAW,EAAQ,OACnB7B,EAAc,EAAQ,OACtBjxD,EAAU,EAAQ,OAClBkxD,EAAU,EAAQ,OAClB2E,EAAW,EAAQ,OACnB9C,EAAQ,EAAQ,OAiCpBr3C,EAAO/D,QAtBP,SAAiB7e,EAAQ+K,EAAMs8D,GAO7B,IAJA,IAAIx2D,GAAS,EACT1S,GAHJ4M,EAAOivD,EAASjvD,EAAM/K,IAGJ7B,OACd2c,GAAS,IAEJjK,EAAQ1S,GAAQ,CACvB,IAAI+B,EAAM+5D,EAAMlvD,EAAK8F,IACrB,KAAMiK,EAAmB,MAAV9a,GAAkBqnE,EAAQrnE,EAAQE,IAC/C,MAEFF,EAASA,EAAOE,EAClB,CACA,OAAI4a,KAAYjK,GAAS1S,EAChB2c,KAET3c,EAAmB,MAAV6B,EAAiB,EAAIA,EAAO7B,SAClB4+D,EAAS5+D,IAAWi6D,EAAQl4D,EAAK/B,KACjD+I,EAAQlH,IAAWm4D,EAAYn4D,GACpC,qBCnCA,IAWIsnE,EAAe3kE,OAAO,uFAa1BigB,EAAO/D,QAJP,SAAoBpE,GAClB,OAAO6sD,EAAav9D,KAAK0Q,EAC3B,qBCtBA,IAAI8sD,EAAmB,qEAavB3kD,EAAO/D,QAJP,SAAwBpE,GACtB,OAAO8sD,EAAiBx9D,KAAK0Q,EAC/B,yBCZA,IAAI+sD,EAAe,EAAQ,OAc3B5kD,EAAO/D,QALP,WACE5d,KAAKs2D,SAAWiQ,EAAeA,EAAa,MAAQ,CAAC,EACrDvmE,KAAK8S,KAAO,CACd,qBCIA6O,EAAO/D,QANP,SAAoB3e,GAClB,IAAI4a,EAAS7Z,KAAK+f,IAAI9gB,WAAee,KAAKs2D,SAASr3D,GAEnD,OADAe,KAAK8S,MAAQ+G,EAAS,EAAI,EACnBA,CACT,yBCdA,IAAI0sD,EAAe,EAAQ,OASvBj7D,EAHc3N,OAAO2B,UAGQgM,eAoBjCqW,EAAO/D,QATP,SAAiB3e,GACf,IAAIc,EAAOC,KAAKs2D,SAChB,GAAIiQ,EAAc,CAChB,IAAI1sD,EAAS9Z,EAAKd,GAClB,MArBiB,8BAqBV4a,OAA4BhM,EAAYgM,CACjD,CACA,OAAOvO,EAAe9L,KAAKO,EAAMd,GAAOc,EAAKd,QAAO4O,CACtD,yBC3BA,IAAI04D,EAAe,EAAQ,OAMvBj7D,EAHc3N,OAAO2B,UAGQgM,eAgBjCqW,EAAO/D,QALP,SAAiB3e,GACf,IAAIc,EAAOC,KAAKs2D,SAChB,OAAOiQ,OAA8B14D,IAAd9N,EAAKd,GAAsBqM,EAAe9L,KAAKO,EAAMd,EAC9E,yBCpBA,IAAIsnE,EAAe,EAAQ,OAsB3B5kD,EAAO/D,QAPP,SAAiB3e,EAAKwI,GACpB,IAAI1H,EAAOC,KAAKs2D,SAGhB,OAFAt2D,KAAK8S,MAAQ9S,KAAK+f,IAAI9gB,GAAO,EAAI,EACjCc,EAAKd,GAAQsnE,QAA0B14D,IAAVpG,EAfV,4BAekDA,EAC9DzH,IACT,yBCpBA,IAAIk4D,EAAa,EAAQ,OACrB2M,EAAe,EAAQ,OACvB1I,EAAc,EAAQ,OAe1Bx6C,EAAO/D,QANP,SAAyB7e,GACvB,MAAqC,mBAAtBA,EAAOmf,aAA8Bi+C,EAAYp9D,GAE5D,CAAC,EADDm5D,EAAW2M,EAAa9lE,GAE9B,yBCfA,IAAIif,EAAS,EAAQ,OACjBk5C,EAAc,EAAQ,OACtBjxD,EAAU,EAAQ,OAGlBugE,EAAmBxoD,EAASA,EAAOyoD,wBAAqB54D,EAc5D8T,EAAO/D,QALP,SAAuBnW,GACrB,OAAOxB,EAAQwB,IAAUyvD,EAAYzvD,OAChC++D,GAAoB/+D,GAASA,EAAM++D,GAC1C,qBChBA,IAGIE,EAAW,mBAoBf/kD,EAAO/D,QAVP,SAAiBnW,EAAOvK,GACtB,IAAIsT,SAAc/I,EAGlB,SAFAvK,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARsT,GACU,UAARA,GAAoBk2D,EAAS59D,KAAKrB,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQvK,CACjD,yBCtBA,IAAIggD,EAAK,EAAQ,OACbqf,EAAc,EAAQ,OACtBpF,EAAU,EAAQ,OAClBp3B,EAAW,EAAQ,OA0BvBpe,EAAO/D,QAdP,SAAwBnW,EAAOmI,EAAO7Q,GACpC,IAAKghC,EAAShhC,GACZ,OAAO,EAET,IAAIyR,SAAcZ,EAClB,SAAY,UAARY,EACK+rD,EAAYx9D,IAAWo4D,EAAQvnD,EAAO7Q,EAAO7B,QACrC,UAARsT,GAAoBZ,KAAS7Q,IAE7Bm+C,EAAGn+C,EAAO6Q,GAAQnI,EAG7B,yBC3BA,IAAIxB,EAAU,EAAQ,OAClB84D,EAAW,EAAQ,OAGnB4H,EAAe,mDACfC,EAAgB,QAuBpBjlD,EAAO/D,QAbP,SAAenW,EAAO1I,GACpB,GAAIkH,EAAQwB,GACV,OAAO,EAET,IAAI+I,SAAc/I,EAClB,QAAY,UAAR+I,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT/I,IAAiBs3D,EAASt3D,MAGvBm/D,EAAc99D,KAAKrB,KAAWk/D,EAAa79D,KAAKrB,IAC1C,MAAV1I,GAAkB0I,KAAS9J,OAAOoB,GACvC,qBCZA4iB,EAAO/D,QAPP,SAAmBnW,GACjB,IAAI+I,SAAc/I,EAClB,MAAgB,UAAR+I,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV/I,EACU,OAAVA,CACP,yBCZA,IAIMo/D,EAJFlF,EAAa,EAAQ,OAGrBmF,GACED,EAAM,SAAS5yD,KAAK0tD,GAAcA,EAAW/jE,MAAQ+jE,EAAW/jE,KAAKmpE,UAAY,KACvE,iBAAmBF,EAAO,GAc1CllD,EAAO/D,QAJP,SAAkB9C,GAChB,QAASgsD,GAAeA,KAAchsD,CACxC,qBChBA,IAAI6gD,EAAch+D,OAAO2B,UAgBzBqiB,EAAO/D,QAPP,SAAqBnW,GACnB,IAAIy+D,EAAOz+D,GAASA,EAAMyW,YAG1B,OAAOzW,KAFqB,mBAARy+D,GAAsBA,EAAK5mE,WAAcq8D,EAG/D,yBCfA,IAAI57B,EAAW,EAAQ,OAcvBpe,EAAO/D,QAJP,SAA4BnW,GAC1B,OAAOA,IAAUA,IAAUs4B,EAASt4B,EACtC,qBCAAka,EAAO/D,QALP,WACE5d,KAAKs2D,SAAW,GAChBt2D,KAAK8S,KAAO,CACd,yBCVA,IAAIk0D,EAAe,EAAQ,OAMvB9iD,EAHale,MAAM1G,UAGC4kB,OA4BxBvC,EAAO/D,QAjBP,SAAyB3e,GACvB,IAAIc,EAAOC,KAAKs2D,SACZ1mD,EAAQo3D,EAAajnE,EAAMd,GAE/B,QAAI2Q,EAAQ,KAIRA,GADY7P,EAAK7C,OAAS,EAE5B6C,EAAKsK,MAEL6Z,EAAO1kB,KAAKO,EAAM6P,EAAO,KAEzB5P,KAAK8S,MACA,EACT,yBChCA,IAAIk0D,EAAe,EAAQ,OAkB3BrlD,EAAO/D,QAPP,SAAsB3e,GACpB,IAAIc,EAAOC,KAAKs2D,SACZ1mD,EAAQo3D,EAAajnE,EAAMd,GAE/B,OAAO2Q,EAAQ,OAAI/B,EAAY9N,EAAK6P,GAAO,EAC7C,yBChBA,IAAIo3D,EAAe,EAAQ,OAe3BrlD,EAAO/D,QAJP,SAAsB3e,GACpB,OAAO+nE,EAAahnE,KAAKs2D,SAAUr3D,IAAQ,CAC7C,yBCbA,IAAI+nE,EAAe,EAAQ,OAyB3BrlD,EAAO/D,QAbP,SAAsB3e,EAAKwI,GACzB,IAAI1H,EAAOC,KAAKs2D,SACZ1mD,EAAQo3D,EAAajnE,EAAMd,GAQ/B,OANI2Q,EAAQ,KACR5P,KAAK8S,KACP/S,EAAKoE,KAAK,CAAClF,EAAKwI,KAEhB1H,EAAK6P,GAAO,GAAKnI,EAEZzH,IACT,yBCvBA,IAAIs1D,EAAO,EAAQ,OACfM,EAAY,EAAQ,OACpBn2C,EAAM,EAAQ,OAkBlBkC,EAAO/D,QATP,WACE5d,KAAK8S,KAAO,EACZ9S,KAAKs2D,SAAW,CACd,KAAQ,IAAIhB,EACZ,IAAO,IAAK71C,GAAOm2C,GACnB,OAAU,IAAIN,EAElB,yBClBA,IAAI2R,EAAa,EAAQ,OAiBzBtlD,EAAO/D,QANP,SAAwB3e,GACtB,IAAI4a,EAASotD,EAAWjnE,KAAMf,GAAa,OAAEA,GAE7C,OADAe,KAAK8S,MAAQ+G,EAAS,EAAI,EACnBA,CACT,yBCfA,IAAIotD,EAAa,EAAQ,OAezBtlD,EAAO/D,QAJP,SAAqB3e,GACnB,OAAOgoE,EAAWjnE,KAAMf,GAAK0U,IAAI1U,EACnC,wBCbA,IAAIgoE,EAAa,EAAQ,OAezBtlD,EAAO/D,QAJP,SAAqB3e,GACnB,OAAOgoE,EAAWjnE,KAAMf,GAAK8gB,IAAI9gB,EACnC,yBCbA,IAAIgoE,EAAa,EAAQ,OAqBzBtlD,EAAO/D,QATP,SAAqB3e,EAAKwI,GACxB,IAAI1H,EAAOknE,EAAWjnE,KAAMf,GACxB6T,EAAO/S,EAAK+S,KAIhB,OAFA/S,EAAK6T,IAAI3U,EAAKwI,GACdzH,KAAK8S,MAAQ/S,EAAK+S,MAAQA,EAAO,EAAI,EAC9B9S,IACT,qBCFA2hB,EAAO/D,QAVP,SAAoB5e,GAClB,IAAI4Q,GAAS,EACTiK,EAAS7T,MAAMhH,EAAI8T,MAKvB,OAHA9T,EAAInB,SAAQ,SAAS4J,EAAOxI,GAC1B4a,IAASjK,GAAS,CAAC3Q,EAAKwI,EAC1B,IACOoS,CACT,qBCIA8H,EAAO/D,QAVP,SAAiC3e,EAAKk8D,GACpC,OAAO,SAASp8D,GACd,OAAc,MAAVA,IAGGA,EAAOE,KAASk8D,SACPttD,IAAbstD,GAA2Bl8D,KAAOtB,OAAOoB,IAC9C,CACF,yBCjBA,IAAImoE,EAAU,EAAQ,OAyBtBvlD,EAAO/D,QAZP,SAAuB9C,GACrB,IAAIjB,EAASqtD,EAAQpsD,GAAM,SAAS7b,GAIlC,OAfmB,MAYfmW,EAAMtC,MACRsC,EAAMvP,QAED5G,CACT,IAEImW,EAAQyE,EAAOzE,MACnB,OAAOyE,CACT,yBCvBA,IAGI0sD,EAHY,EAAQ,MAGLvR,CAAUr3D,OAAQ,UAErCgkB,EAAO/D,QAAU2oD,wBCLjB,IAGInK,EAHU,EAAQ,MAGL0I,CAAQnnE,OAAOC,KAAMD,QAEtCgkB,EAAO/D,QAAUw+C,qBCcjBz6C,EAAO/D,QAVP,SAAsB7e,GACpB,IAAI8a,EAAS,GACb,GAAc,MAAV9a,EACF,IAAK,IAAIE,KAAOtB,OAAOoB,GACrB8a,EAAO1V,KAAKlF,GAGhB,OAAO4a,CACT,oCCjBA,IAAI0qD,EAAa,EAAQ,OAGrBpE,EAA4CviD,IAAYA,EAAQwiD,UAAYxiD,EAG5EyiD,EAAaF,GAA4Cx+C,IAAWA,EAAOy+C,UAAYz+C,EAMvFwlD,EAHgB9G,GAAcA,EAAWziD,UAAYuiD,GAGtBoE,EAAW9kE,QAG1C2nE,EAAY,WACd,IAEE,IAAIC,EAAQhH,GAAcA,EAAWiH,SAAWjH,EAAWiH,QAAQ,QAAQD,MAE3E,OAAIA,GAKGF,GAAeA,EAAYI,SAAWJ,EAAYI,QAAQ,OACnE,CAAE,MAAOxlE,GAAI,CACf,CAZe,GAcf4f,EAAO/D,QAAUwpD,qBC5BjB,IAOIrC,EAPcpnE,OAAO2B,UAOcC,SAavCoiB,EAAO/D,QAJP,SAAwBnW,GACtB,OAAOs9D,EAAqBvlE,KAAKiI,EACnC,qBCLAka,EAAO/D,QANP,SAAiB9C,EAAM0sD,GACrB,OAAO,SAASrqE,GACd,OAAO2d,EAAK0sD,EAAUrqE,GACxB,CACF,yBCZA,IAAIK,EAAQ,EAAQ,OAGhBghE,EAAY75D,KAAK63B,IAgCrB7a,EAAO/D,QArBP,SAAkB9C,EAAMgP,EAAO09C,GAE7B,OADA19C,EAAQ00C,OAAoB3wD,IAAVic,EAAuBhP,EAAK5d,OAAS,EAAK4sB,EAAO,GAC5D,WAML,IALA,IAAIvsB,EAAON,UACP2S,GAAS,EACT1S,EAASshE,EAAUjhE,EAAKL,OAAS4sB,EAAO,GACxC9Z,EAAQhK,MAAM9I,KAET0S,EAAQ1S,GACf8S,EAAMJ,GAASrS,EAAKusB,EAAQla,GAE9BA,GAAS,EAET,IADA,IAAI63D,EAAYzhE,MAAM8jB,EAAQ,KACrBla,EAAQka,GACf29C,EAAU73D,GAASrS,EAAKqS,GAG1B,OADA63D,EAAU39C,GAAS09C,EAAUx3D,GACtBxS,EAAMsd,EAAM9a,KAAMynE,EAC3B,CACF,wBCjCA,IAAIlD,EAAa,EAAQ,OAGrBmD,EAA0B,iBAAR7nE,MAAoBA,MAAQA,KAAKlC,SAAWA,QAAUkC,KAGxEyQ,EAAOi0D,GAAcmD,GAAYhM,SAAS,cAATA,GAErC/5C,EAAO/D,QAAUtN,qBCYjBqR,EAAO/D,QAZP,SAAiB7e,EAAQE,GACvB,IAAY,gBAARA,GAAgD,oBAAhBF,EAAOE,KAIhC,aAAPA,EAIJ,OAAOF,EAAOE,EAChB,qBCAA0iB,EAAO/D,QALP,SAAqBnW,GAEnB,OADAzH,KAAKs2D,SAAS1iD,IAAInM,EAbC,6BAcZzH,IACT,qBCHA2hB,EAAO/D,QAJP,SAAqBnW,GACnB,OAAOzH,KAAKs2D,SAASv2C,IAAItY,EAC3B,qBCMAka,EAAO/D,QAVP,SAAoBhK,GAClB,IAAIhE,GAAS,EACTiK,EAAS7T,MAAM4N,EAAId,MAKvB,OAHAc,EAAI/V,SAAQ,SAAS4J,GACnBoS,IAASjK,GAASnI,CACpB,IACOoS,CACT,yBCfA,IAAIglD,EAAkB,EAAQ,OAW1BF,EAVW,EAAQ,MAULgJ,CAAS9I,GAE3Bl9C,EAAO/D,QAAU+gD,qBCZjB,IAIIiJ,EAAY/iE,KAAKgjE,IA+BrBlmD,EAAO/D,QApBP,SAAkB9C,GAChB,IAAI1J,EAAQ,EACR02D,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQH,IACRI,EApBO,IAoBiBD,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,KAAM52D,GAzBI,IA0BR,OAAOnU,UAAU,QAGnBmU,EAAQ,EAEV,OAAO0J,EAAKtd,WAAMqQ,EAAW5Q,UAC/B,CACF,yBClCA,IAAI24D,EAAY,EAAQ,OAcxBj0C,EAAO/D,QALP,WACE5d,KAAKs2D,SAAW,IAAIV,EACpB51D,KAAK8S,KAAO,CACd,qBCKA6O,EAAO/D,QARP,SAAqB3e,GACnB,IAAIc,EAAOC,KAAKs2D,SACZz8C,EAAS9Z,EAAa,OAAEd,GAG5B,OADAe,KAAK8S,KAAO/S,EAAK+S,KACV+G,CACT,qBCFA8H,EAAO/D,QAJP,SAAkB3e,GAChB,OAAOe,KAAKs2D,SAAS3iD,IAAI1U,EAC3B,qBCEA0iB,EAAO/D,QAJP,SAAkB3e,GAChB,OAAOe,KAAKs2D,SAASv2C,IAAI9gB,EAC3B,yBCXA,IAAI22D,EAAY,EAAQ,OACpBn2C,EAAM,EAAQ,OACdy2C,EAAW,EAAQ,OA+BvBv0C,EAAO/D,QAhBP,SAAkB3e,EAAKwI,GACrB,IAAI1H,EAAOC,KAAKs2D,SAChB,GAAIv2D,aAAgB61D,EAAW,CAC7B,IAAIqS,EAAQloE,EAAKu2D,SACjB,IAAK72C,GAAQwoD,EAAM/qE,OAASgrE,IAG1B,OAFAD,EAAM9jE,KAAK,CAAClF,EAAKwI,IACjBzH,KAAK8S,OAAS/S,EAAK+S,KACZ9S,KAETD,EAAOC,KAAKs2D,SAAW,IAAIJ,EAAS+R,EACtC,CAGA,OAFAloE,EAAK6T,IAAI3U,EAAKwI,GACdzH,KAAK8S,KAAO/S,EAAK+S,KACV9S,IACT,qBCTA2hB,EAAO/D,QAZP,SAAuB5N,EAAOvI,EAAO2nC,GAInC,IAHA,IAAIx/B,EAAQw/B,EAAY,EACpBlyC,EAAS8S,EAAM9S,SAEV0S,EAAQ1S,GACf,GAAI8S,EAAMJ,KAAWnI,EACnB,OAAOmI,EAGX,OAAQ,CACV,yBCpBA,IAAIu4D,EAAe,EAAQ,OACvB/F,EAAa,EAAQ,OACrBgG,EAAiB,EAAQ,OAe7BzmD,EAAO/D,QANP,SAAuBpE,GACrB,OAAO4oD,EAAW5oD,GACd4uD,EAAe5uD,GACf2uD,EAAa3uD,EACnB,yBCfA,IAAI6uD,EAAgB,EAAQ,OAGxBC,EAAa,mGAGbC,EAAe,WASfxI,EAAesI,GAAc,SAAS7uD,GACxC,IAAIK,EAAS,GAOb,OAN6B,KAAzBL,EAAO3J,WAAW,IACpBgK,EAAO1V,KAAK,IAEdqV,EAAO3X,QAAQymE,GAAY,SAASvvD,EAAOyvD,EAAQC,EAAOC,GACxD7uD,EAAO1V,KAAKskE,EAAQC,EAAU7mE,QAAQ0mE,EAAc,MAASC,GAAUzvD,EACzE,IACOc,CACT,IAEA8H,EAAO/D,QAAUmiD,yBC1BjB,IAAIhB,EAAW,EAAQ,OAoBvBp9C,EAAO/D,QARP,SAAenW,GACb,GAAoB,iBAATA,GAAqBs3D,EAASt3D,GACvC,OAAOA,EAET,IAAIoS,EAAUpS,EAAQ,GACtB,MAAkB,KAAVoS,GAAkB,EAAIpS,IAAU,IAAa,KAAOoS,CAC9D,qBCjBA,IAGI+hD,EAHYF,SAASp8D,UAGIC,SAqB7BoiB,EAAO/D,QAZP,SAAkB9C,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO8gD,EAAap8D,KAAKsb,EAC3B,CAAE,MAAO/Y,GAAI,CACb,IACE,OAAQ+Y,EAAO,EACjB,CAAE,MAAO/Y,GAAI,CACf,CACA,MAAO,EACT,qBCtBA,IAAI4mE,EAAe,KAiBnBhnD,EAAO/D,QAPP,SAAyBpE,GAGvB,IAFA,IAAI5J,EAAQ4J,EAAOtc,OAEZ0S,KAAW+4D,EAAa7/D,KAAK0Q,EAAO6J,OAAOzT,MAClD,OAAOA,CACT,qBCfA,IAAIg5D,EAAgB,kBAQhBC,EAAW,IAAMD,EAAgB,IACjCE,EAAU,kDACVC,EAAS,2BAETC,EAAc,KAAOJ,EAAgB,IACrCK,EAAa,kCACbC,EAAa,qCAIbC,EAPa,MAAQL,EAAU,IAAMC,EAAS,IAOtB,IACxBK,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACH,EAAaC,EAAYC,GAAY9pE,KAAK,KAAO,IAAMgqE,EAAWD,EAAW,MAElHG,EAAW,MAAQ,CAACN,EAAcF,EAAU,IAAKA,EAASG,EAAYC,EAAYL,GAAUzpE,KAAK,KAAO,IAGxGmqE,EAAY7nE,OAAOqnE,EAAS,MAAQA,EAAS,KAAOO,EAAWD,EAAO,KAa1E1nD,EAAO/D,QAJP,SAAwBpE,GACtB,OAAOA,EAAOT,MAAMwwD,IAAc,EACpC,qBCpCA,IAAIX,EAAgB,kBAKhBY,EAAiB,kBACjBC,EAAe,4BAKfC,EAAe,4BAEfC,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,IAAMP,EAAiB,IACnCQ,EAAU,IAAMP,EAAe,IAC/BQ,EAAS,KAAOrB,EAAgBe,EAAeG,EAAWN,EAAiBC,EAAeC,EAAe,IAIzGT,EAAa,kCACbC,EAAa,qCACbgB,EAAU,IAAMR,EAAe,IAI/BS,EAAc,MAAQH,EAAU,IAAMC,EAAS,IAC/CG,EAAc,MAAQF,EAAU,IAAMD,EAAS,IAC/CI,EAAkB,qCAClBC,EAAkB,qCAClBnB,EAAWoB,gFACXnB,EAAW,oBAIXC,EAAQD,EAAWD,GAHP,gBAAwB,CAbtB,KAAOP,EAAgB,IAaaK,EAAYC,GAAY9pE,KAAK,KAAO,IAAMgqE,EAAWD,EAAW,MAIlHqB,EAAU,MAAQ,CAACT,EAAWd,EAAYC,GAAY9pE,KAAK,KAAO,IAAMiqE,EAGxEoB,EAAgB/oE,OAAO,CACzBwoE,EAAU,IAAMF,EAAU,IAAMK,EAAkB,MAAQ,CAACR,EAASK,EAAS,KAAK9qE,KAAK,KAAO,IAC9FgrE,EAAc,IAAME,EAAkB,MAAQ,CAACT,EAASK,EAAUC,EAAa,KAAK/qE,KAAK,KAAO,IAChG8qE,EAAU,IAAMC,EAAc,IAAME,EACpCH,EAAU,IAAMI,EATD,mDADA,mDAafR,EACAU,GACAprE,KAAK,KAAM,KAabuiB,EAAO/D,QAJP,SAAsBpE,GACpB,OAAOA,EAAOT,MAAM0xD,IAAkB,EACxC,yBClEA,IAAIC,EAAa,EAAQ,OAuBrBC,EAtBmB,EAAQ,MAsBfC,EAAiB,SAAS/wD,EAAQgxD,EAAMj7D,GAEtD,OADAi7D,EAAOA,EAAKhyD,cACLgB,GAAUjK,EAAQ86D,EAAWG,GAAQA,EAC9C,IAEAlpD,EAAO/D,QAAU+sD,yBC5BjB,IAAIprE,EAAW,EAAQ,OACnBurE,EAAa,EAAQ,OAqBzBnpD,EAAO/D,QAJP,SAAoBpE,GAClB,OAAOsxD,EAAWvrE,EAASia,GAAQX,cACrC,qBCKA8I,EAAO/D,QANP,SAAkBnW,GAChB,OAAO,WACL,OAAOA,CACT,CACF,yBCvBA,IAAIw7D,EAAe,EAAQ,OACvB1jE,EAAW,EAAQ,OAGnBwrE,EAAU,8CAeVC,EAActpE,OANJ,kDAMoB,KAyBlCigB,EAAO/D,QALP,SAAgBpE,GAEd,OADAA,EAASja,EAASia,KACDA,EAAO3X,QAAQkpE,EAAS9H,GAAcphE,QAAQmpE,EAAa,GAC9E,qBCNArpD,EAAO/D,QAJP,SAAYnW,EAAOmyD,GACjB,OAAOnyD,IAAUmyD,GAAUnyD,IAAUA,GAASmyD,IAAUA,CAC1D,yBClCA,IAAImE,EAAU,EAAQ,OAgCtBp8C,EAAO/D,QALP,SAAa7e,EAAQ+K,EAAMy4C,GACzB,IAAI1oC,EAAmB,MAAV9a,OAAiB8O,EAAYkwD,EAAQh/D,EAAQ+K,GAC1D,YAAkB+D,IAAXgM,EAAuB0oC,EAAe1oC,CAC/C,yBC9BA,IAAIoxD,EAAU,EAAQ,OAClBC,EAAU,EAAQ,OAiCtBvpD,EAAO/D,QAJP,SAAa7e,EAAQ+K,GACnB,OAAiB,MAAV/K,GAAkBmsE,EAAQnsE,EAAQ+K,EAAMmhE,EACjD,yBChCA,IAAIE,EAAY,EAAQ,OACpBD,EAAU,EAAQ,OAgCtBvpD,EAAO/D,QAJP,SAAe7e,EAAQ+K,GACrB,OAAiB,MAAV/K,GAAkBmsE,EAAQnsE,EAAQ+K,EAAMqhE,EACjD,qBCXAxpD,EAAO/D,QAJP,SAAkBnW,GAChB,OAAOA,CACT,yBClBA,IAAI2jE,EAAkB,EAAQ,OAC1BprC,EAAe,EAAQ,OAGvB27B,EAAch+D,OAAO2B,UAGrBgM,EAAiBqwD,EAAYrwD,eAG7B85D,EAAuBzJ,EAAYyJ,qBAoBnClO,EAAckU,EAAgB,WAAa,OAAOnuE,SAAW,CAA/B,IAAsCmuE,EAAkB,SAAS3jE,GACjG,OAAOu4B,EAAav4B,IAAU6D,EAAe9L,KAAKiI,EAAO,YACtD29D,EAAqB5lE,KAAKiI,EAAO,SACtC,EAEAka,EAAO/D,QAAUs5C,qBCZjB,IAAIjxD,EAAUD,MAAMC,QAEpB0b,EAAO/D,QAAU3X,yBCzBjB,IAAIo1D,EAAa,EAAQ,MACrBS,EAAW,EAAQ,OA+BvBn6C,EAAO/D,QAJP,SAAqBnW,GACnB,OAAgB,MAATA,GAAiBq0D,EAASr0D,EAAMvK,UAAYm+D,EAAW5zD,EAChE,yBC9BA,IAAI80D,EAAc,EAAQ,OACtBv8B,EAAe,EAAQ,OA+B3Bre,EAAO/D,QAJP,SAA2BnW,GACzB,OAAOu4B,EAAav4B,IAAU80D,EAAY90D,EAC5C,mCC9BA,IAAI6I,EAAO,EAAQ,MACf+6D,EAAY,EAAQ,OAGpBlL,EAA4CviD,IAAYA,EAAQwiD,UAAYxiD,EAG5EyiD,EAAaF,GAA4Cx+C,IAAWA,EAAOy+C,UAAYz+C,EAMvF2+C,EAHgBD,GAAcA,EAAWziD,UAAYuiD,EAG5B7vD,EAAKgwD,YAASzyD,EAsBvCs+C,GAnBiBmU,EAASA,EAAOnU,cAAWt+C,IAmBfw9D,EAEjC1pD,EAAO/D,QAAUuuC,wBCrCjB,IAAIsN,EAAa,EAAQ,OACrB15B,EAAW,EAAQ,OAmCvBpe,EAAO/D,QAVP,SAAoBnW,GAClB,IAAKs4B,EAASt4B,GACZ,OAAO,EAIT,IAAI2F,EAAMqsD,EAAWhyD,GACrB,MA5BY,qBA4BL2F,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,qBCAAuU,EAAO/D,QALP,SAAkBnW,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,qBCFAka,EAAO/D,QALP,SAAkBnW,GAChB,IAAI+I,SAAc/I,EAClB,OAAgB,MAATA,IAA0B,UAAR+I,GAA4B,YAARA,EAC/C,qBCAAmR,EAAO/D,QAJP,SAAsBnW,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,yBC1BA,IAAIgyD,EAAa,EAAQ,OACrBoL,EAAe,EAAQ,OACvB7kC,EAAe,EAAQ,OAMvBy7B,EAAYC,SAASp8D,UACrBq8D,EAAch+D,OAAO2B,UAGrBs8D,EAAeH,EAAUl8D,SAGzB+L,EAAiBqwD,EAAYrwD,eAG7BggE,EAAmB1P,EAAap8D,KAAK7B,QA2CzCgkB,EAAO/D,QAbP,SAAuBnW,GACrB,IAAKu4B,EAAav4B,IA5CJ,mBA4CcgyD,EAAWhyD,GACrC,OAAO,EAET,IAAI0wD,EAAQ0M,EAAap9D,GACzB,GAAc,OAAV0wD,EACF,OAAO,EAET,IAAI+N,EAAO56D,EAAe9L,KAAK24D,EAAO,gBAAkBA,EAAMj6C,YAC9D,MAAsB,mBAARgoD,GAAsBA,aAAgBA,GAClDtK,EAAap8D,KAAK0mE,IAASoF,CAC/B,yBC3DA,IAAI7R,EAAa,EAAQ,OACrBz5B,EAAe,EAAQ,OA2B3Bre,EAAO/D,QALP,SAAkBnW,GAChB,MAAuB,iBAATA,GACXu4B,EAAav4B,IArBF,mBAqBYgyD,EAAWhyD,EACvC,yBC1BA,IAAI8jE,EAAmB,EAAQ,MAC3BpN,EAAY,EAAQ,OACpBiJ,EAAW,EAAQ,OAGnBoE,EAAmBpE,GAAYA,EAAShQ,aAmBxCA,EAAeoU,EAAmBrN,EAAUqN,GAAoBD,EAEpE5pD,EAAO/D,QAAUw5C,yBC1BjB,IAAIqU,EAAgB,EAAQ,OACxBC,EAAW,EAAQ,OACnBnP,EAAc,EAAQ,OAkC1B56C,EAAO/D,QAJP,SAAc7e,GACZ,OAAOw9D,EAAYx9D,GAAU0sE,EAAc1sE,GAAU2sE,EAAS3sE,EAChE,yBClCA,IAAI0sE,EAAgB,EAAQ,OACxBE,EAAa,EAAQ,OACrBpP,EAAc,EAAQ,OA6B1B56C,EAAO/D,QAJP,SAAgB7e,GACd,OAAOw9D,EAAYx9D,GAAU0sE,EAAc1sE,GAAQ,GAAQ4sE,EAAW5sE,EACxE,yBC7BA,IAAIm3D,EAAW,EAAQ,OAiDvB,SAASgR,EAAQpsD,EAAM8wD,GACrB,GAAmB,mBAAR9wD,GAAmC,MAAZ8wD,GAAuC,mBAAZA,EAC3D,MAAM,IAAIxtD,UAhDQ,uBAkDpB,IAAIytD,EAAW,WACb,IAAItuE,EAAON,UACPgC,EAAM2sE,EAAWA,EAASpuE,MAAMwC,KAAMzC,GAAQA,EAAK,GACnD6X,EAAQy2D,EAASz2D,MAErB,GAAIA,EAAM2K,IAAI9gB,GACZ,OAAOmW,EAAMzB,IAAI1U,GAEnB,IAAI4a,EAASiB,EAAKtd,MAAMwC,KAAMzC,GAE9B,OADAsuE,EAASz2D,MAAQA,EAAMxB,IAAI3U,EAAK4a,IAAWzE,EACpCyE,CACT,EAEA,OADAgyD,EAASz2D,MAAQ,IAAK8xD,EAAQ4E,OAAS5V,GAChC2V,CACT,CAGA3E,EAAQ4E,MAAQ5V,EAEhBv0C,EAAO/D,QAAUspD,yBCxEjB,IAAIhK,EAAY,EAAQ,OAkCpB6O,EAjCiB,EAAQ,MAiCjBC,EAAe,SAASjtE,EAAQ+N,EAAQqwD,GAClDD,EAAUn+D,EAAQ+N,EAAQqwD,EAC5B,IAEAx7C,EAAO/D,QAAUmuD,qBCtBjBpqD,EAAO/D,QAJP,WAEA,yBCdA,IAAIquD,EAAe,EAAQ,OACvBC,EAAmB,EAAQ,OAC3BtP,EAAQ,EAAQ,OAChB5D,EAAQ,EAAQ,OA4BpBr3C,EAAO/D,QAJP,SAAkB9T,GAChB,OAAO8yD,EAAM9yD,GAAQmiE,EAAajT,EAAMlvD,IAASoiE,EAAiBpiE,EACpE,yBC7BA,IA2CIqiE,EA3Cc,EAAQ,MA2CdC,GAEZzqD,EAAO/D,QAAUuuD,yBC7CjB,IAAIE,EAAa,EAAQ,OACrBxK,EAAiB,EAAQ,OACzByK,EAAY,EAAQ,OACpB/sE,EAAW,EAAQ,OAiCvBoiB,EAAO/D,QATP,SAAgBpE,EAAQpO,EAAG42D,GAMzB,OAJE52D,GADG42D,EAAQH,EAAeroD,EAAQpO,EAAG42D,QAAen0D,IAANzC,GAC1C,EAEAkhE,EAAUlhE,GAETihE,EAAW9sE,EAASia,GAASpO,EACtC,yBClCA,IAAIstD,EAAc,EAAQ,OACtB6T,EAAc,EAAQ,OACtB3K,EAAW,EAAQ,OACnBC,EAAiB,EAAQ,OA+BzB2K,EAAS5K,GAAS,SAAS/sD,EAAYwpD,GACzC,GAAkB,MAAdxpD,EACF,MAAO,GAET,IAAI3X,EAASmhE,EAAUnhE,OAMvB,OALIA,EAAS,GAAK2kE,EAAehtD,EAAYwpD,EAAU,GAAIA,EAAU,IACnEA,EAAY,GACHnhE,EAAS,GAAK2kE,EAAexD,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAC5EA,EAAY,CAACA,EAAU,KAElBkO,EAAY13D,EAAY6jD,EAAY2F,EAAW,GAAI,GAC5D,IAEA18C,EAAO/D,QAAU4uD,qBCzBjB7qD,EAAO/D,QAJP,WACE,MAAO,EACT,qBCHA+D,EAAO/D,QAJP,WACE,OAAO,CACT,yBCfA,IAAIoiC,EAAW,EAAQ,OAGnBtgB,EAAW,IAsCf/d,EAAO/D,QAZP,SAAkBnW,GAChB,OAAKA,GAGLA,EAAQu4C,EAASv4C,MACHi4B,GAAYj4B,KAAU,IA9BpB,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,IAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,CAQjC,yBCvCA,IAAIs7D,EAAW,EAAQ,OAmCvBphD,EAAO/D,QAPP,SAAmBnW,GACjB,IAAIoS,EAASkpD,EAASt7D,GAClBq+B,EAAYjsB,EAAS,EAEzB,OAAOA,IAAWA,EAAUisB,EAAYjsB,EAASisB,EAAYjsB,EAAU,CACzE,yBCjCA,IAAI4yD,EAAW,EAAQ,OACnB1sC,EAAW,EAAQ,OACnBg/B,EAAW,EAAQ,OAMnB2N,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAe5wC,SA8CnBta,EAAO/D,QArBP,SAAkBnW,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIs3D,EAASt3D,GACX,OA1CM,IA4CR,GAAIs4B,EAASt4B,GAAQ,CACnB,IAAImyD,EAAgC,mBAAjBnyD,EAAMuyB,QAAwBvyB,EAAMuyB,UAAYvyB,EACnEA,EAAQs4B,EAAS65B,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAATnyD,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQglE,EAAShlE,GACjB,IAAIqlE,EAAWH,EAAW7jE,KAAKrB,GAC/B,OAAQqlE,GAAYF,EAAU9jE,KAAKrB,GAC/BolE,EAAaplE,EAAMsI,MAAM,GAAI+8D,EAAW,EAAI,GAC3CJ,EAAW5jE,KAAKrB,GAvDb,KAuD6BA,CACvC,yBC7DA,IAAIslE,EAAa,EAAQ,OACrB/P,EAAS,EAAQ,OA8BrBr7C,EAAO/D,QAJP,SAAuBnW,GACrB,OAAOslE,EAAWtlE,EAAOu1D,EAAOv1D,GAClC,yBC7BA,IAAIk4B,EAAe,EAAQ,OA2B3Bhe,EAAO/D,QAJP,SAAkBnW,GAChB,OAAgB,MAATA,EAAgB,GAAKk4B,EAAal4B,EAC3C,yBCzBA,IAAIulE,EAAW,EAAQ,OAwBvBrrD,EAAO/D,QAJP,SAAc5N,GACZ,OAAQA,GAASA,EAAM9S,OAAU8vE,EAASh9D,GAAS,EACrD,yBCtBA,IAmBI86D,EAnBkB,EAAQ,MAmBbmC,CAAgB,eAEjCtrD,EAAO/D,QAAUktD,yBCrBjB,IAAIoC,EAAa,EAAQ,MACrBC,EAAiB,EAAQ,OACzB5tE,EAAW,EAAQ,OACnB6tE,EAAe,EAAQ,OA+B3BzrD,EAAO/D,QAVP,SAAepE,EAAQhK,EAASwyD,GAI9B,OAHAxoD,EAASja,EAASia,QAGF3L,KAFhB2B,EAAUwyD,OAAQn0D,EAAY2B,GAGrB29D,EAAe3zD,GAAU4zD,EAAa5zD,GAAU0zD,EAAW1zD,GAE7DA,EAAOT,MAAMvJ,IAAY,EAClC,yBChCA,IAAIiyD,EAAc,EAAQ,OACtB4L,EAAgB,EAAQ,OAsB5B1rD,EAAO/D,QAJP,SAAmBnN,EAAO3K,GACxB,OAAOunE,EAAc58D,GAAS,GAAI3K,GAAU,GAAI27D,EAClD,sCCnBA,IAAI6L,EAAS,EAAQ,OAErB3rD,EAAO/D,QAoBP,SAAuB2vD,EAAOvqE,GAC5B,IAgBIwqE,EACAC,EACAC,EACAC,EACA76D,EACA86D,EACApiB,EACA7sD,EACA0O,EACAwgE,EACAr3C,EA1BAs3C,EAAW9qE,GAAW,CAAC,EACvB+qE,GAA+B,IAArBD,EAASC,QACnBjkD,GAAoC,IAA5BgkD,EAASE,eACjB3qE,GAAgC,IAA1ByqE,EAASG,aACfC,GAASJ,EAASI,OAAS,IAAIhvE,SAC/BivE,GAA+C,IAA7BL,EAASK,gBAC3BC,EAAa,GACbC,EAAeP,EAASO,cAAgBC,EACxCC,GAAY,EACZC,EAAYjB,EAAMrwE,OAClBuxE,EAAa,GACbC,EAAa,GACbC,EAAM,GACNC,EAAQ,GACRC,EAAsB,GACtBC,EAAkB,EAetB,OAASP,EAAWC,GAAW,CAW7B,IATAf,GAAe,EAEfkB,EAAM,GACNC,EAAQ,IAFRlB,GAFAF,EAAQD,EAAMgB,IAEOrxE,QAIF4xE,IACjBA,EAAkBpB,KAGXD,EAAcC,GACrBE,EAoKa,QADAnmE,EAnKI+lE,EAAMC,UAoKQ5/D,IAAVpG,EAAsB,GAAKxJ,OAAOwJ,IAlK/B,IAApB0mE,IACFr7D,EAAOu7D,EAAaT,GACpBgB,EAAMnB,GAAe36D,QAILjF,KAFhB8/D,EAAUkB,EAAoBpB,KAED36D,EAAO66D,KAClCkB,EAAoBpB,GAAe36D,IAIvC67D,EAAIxqE,KAAKypE,GAGXa,EAAWF,GAAYI,EACvBD,EAAWH,GAAYK,CACzB,CAiJF,IAAmBnnE,EA3IjB,GAHAgmE,GAAe,EACfC,EAAeoB,EAEM,kBAAVZ,GAAsB,WAAYA,EAC3C,OAAST,EAAcC,GACrBU,EAAWX,GAAesB,EAAYb,EAAMT,SAK9C,IAFAj3C,EAAOu4C,EAAYb,KAEVT,EAAcC,GACrBU,EAAWX,GAAej3C,EAK9Bi3C,GAAe,EACfC,EAAeoB,EACfH,EAAM,GACNC,EAAQ,GAER,OAASnB,EAAcC,GAErBrgE,EAAS,GACTwgE,EAAQ,IAFRr3C,EAAO43C,EAAWX,MAIL72C,EACXvpB,EAAS2hE,EACAx4C,IAASt1B,EAClB2sE,EAAQmB,EACCx4C,IAASE,IAClBrpB,EAAS2hE,EACTnB,EAAQmB,GAIVl8D,EAAOq7D,EACHxpE,KAAK63B,IACH,EACAqyC,EAAoBpB,GAAepgE,EAAOnQ,OAAS2wE,EAAM3wE,QAE3D,EAEJ0wE,EAAOvgE,EAASigE,EAAO2B,EAAMn8D,GAAQ+6D,GAEb,IAApBM,KACFr7D,EAAOzF,EAAOnQ,OAAS4V,EAAO+6D,EAAM3wE,QAEzB2xE,EAAoBpB,KAC7BoB,EAAoBpB,GAAe36D,GAGrC87D,EAAMnB,GAAe36D,GAGvB67D,EAAIlB,GAAeG,EAIrBa,EAAWvqD,OAAO,EAAG,EAAGyqD,GACxBD,EAAWxqD,OAAO,EAAG,EAAG0qD,GAExBL,GAAY,EACZC,EAAYC,EAAWvxE,OACvBsuD,EAAQ,GAER,OAAS+iB,EAAWC,GAAW,CAO7B,IANAG,EAAMF,EAAWF,GACjBK,EAAQF,EAAWH,GACnBd,GAAe,EACfC,EAAeoB,EACfnwE,EAAO,KAEE8uE,EAAcC,GACrBE,EAAOe,EAAIlB,IAAgB,GAC3BpgE,EAAS,GACTwgE,EAAQ,IAEgB,IAApBM,IACFr7D,EAAO+7D,EAAoBpB,IAAgBmB,EAAMnB,IAAgB,IACjEj3C,EAAO43C,EAAWX,MAELvsE,EACXmM,EAASigE,EAAO4B,EAAOp8D,GACd0jB,IAASE,EACd5jB,EAAO,IAAM,EAEf+6D,EADAxgE,EAASigE,EAAO4B,EAAOp8D,EAAO,IAG9BzF,EAASigE,EAAO4B,EAAOp8D,EAAO,EAAI,IAClC+6D,EAAQP,EAAO4B,EAAOp8D,EAAO,EAAI,KAGnC+6D,EAAQP,EAAO4B,EAAOp8D,KAIZ,IAAVgX,GAAkC,IAAhB2jD,GACpB9uE,EAAKwF,KAAKgrE,IAIE,IAAZpB,IAGsB,IAApBI,GAAsC,KAATP,IACpB,IAAV9jD,GAAkC,IAAhB2jD,GAEnB9uE,EAAKwF,KAAK+qE,IAGY,IAApBf,GACFxvE,EAAKwF,KAAKkJ,GAGZ1O,EAAKwF,KAAKypE,IAEc,IAApBO,GACFxvE,EAAKwF,KAAK0pE,IAGI,IAAZE,GACFpvE,EAAKwF,KAAK+qE,IAGA,IAAR7rE,GAAgBoqE,IAAgBC,EAAe,GACjD/uE,EAAKwF,KAAKgrE,GAIdxwE,EAAOA,EAAKS,KAAK,KAEL,IAARiE,IACF1E,EAAOA,EAAKkD,QAAQutE,EAAoB,KAG1C5jB,EAAMrnD,KAAKxF,EACb,CAEA,OAAO6sD,EAAMpsD,KAAKiwE,EACpB,EA9NA,IAAID,EAAqB,MAGrBF,EAAQ,IACRG,EAAW,KACXJ,EAAO,IACPD,EAAQ,IACRG,EAAc,IAEdn8D,EAAI,EACJ67C,EAAI,GACJQ,EAAI,GACJE,EAAI,GACJ74B,EAAI,GACJE,EAAI,IACJ11B,EAAI,IAqNR,SAASotE,EAAoB7mE,GAC3B,OAAOA,EAAMvK,MACf,CAEA,SAAS6xE,EAAYtnE,GACnB,IAAI+uB,EAAwB,kBAAV/uB,EAAqBA,EAAMoI,WAAW,GAAKmD,EAE7D,OAAOwjB,IAAS64B,GAAK74B,IAASI,EAC1BA,EACAJ,IAAS+4B,GAAK/4B,IAASt1B,EACvBA,EACAs1B,IAASq4B,GAAKr4B,IAASE,EACvBA,EACA1jB,CACN,sCCtPA2O,EAAO/D,QAQP,SAAwB0xD,EAAM/yC,EAAM16B,EAASmB,GAC3C,IAAI8qE,EACAyB,EAEgB,kBAAThzC,GAAsBA,GAA6B,oBAAdA,EAAKtoB,KACnDs7D,EAAS,CAAC,CAAChzC,EAAM16B,KAEjB0tE,EAAShzC,EACTv5B,EAAUnB,GAOZ,OAFA8N,EAAO2/D,EAFPxB,EAAW9qE,GAAW,CAAC,EAMvB,SAASwsE,EAAevH,GACtB,IAAIwH,EAAOxH,EAAM,GAEjB,OAAOl4C,EAEP,SAASA,EAAQ1f,EAAME,GACrB,IAKIL,EACA6I,EACA22D,EACAjoE,EARA80B,EAAOkzC,EAAK,GACZ5tE,EAAU4tE,EAAK,GACfthE,EAAQ,GACR2b,EAAQ,EACRla,EAAQW,EAAOG,SAAS5F,QAAQuF,GAUpC,IAJAksB,EAAKpiB,UAAY,EAEjBpB,EAAQwjB,EAAKtoB,KAAK5D,EAAK5I,OAEhBsR,IACL7I,EAAW6I,EAAMnJ,OAMH,KALdnI,EAAQ5F,EAAQrE,MACd,KACA,GAAG0B,OAAO6Z,EAAO,CAACnJ,MAAOmJ,EAAMnJ,MAAOzD,MAAO4M,EAAM5M,YAI/C2d,IAAU5Z,GACZ/B,EAAMhK,KAAK,CAACqM,KAAM,OAAQ/I,MAAO4I,EAAK5I,MAAMsI,MAAM+Z,EAAO5Z,KAGtC,kBAAVzI,GAAsBA,EAAMvK,OAAS,IAC9CuK,EAAQ,CAAC+I,KAAM,OAAQ/I,MAAOA,IAG5BA,IACF0G,EAAQ,GAAGjP,OAAOiP,EAAO1G,IAG3BqiB,EAAQ5Z,EAAW6I,EAAM,GAAG7b,QAGzBq/B,EAAK4rB,SAIVpvC,EAAQwjB,EAAKtoB,KAAK5D,EAAK5I,OAezB,QAZiBoG,IAAbqC,GACF/B,EAAQ,CAACkC,GACTT,MAEIka,EAAQzZ,EAAK5I,MAAMvK,QACrBiR,EAAMhK,KAAK,CAACqM,KAAM,OAAQ/I,MAAO4I,EAAK5I,MAAMsI,MAAM+Z,KAGpD3b,EAAM7D,QAAQsF,EAAO,GACrBsU,EAAO1mB,MAAM+S,EAAOG,SAAUvC,IAG5B85D,EAAM/qE,OAAS,EAIjB,IAHAwyE,EAAaF,EAAevH,EAAMl4D,MAAM,IACxCG,GAAY,IAEHA,EAAW/B,EAAMjR,QAGN,UAFlBmT,EAAOlC,EAAM+B,IAEJM,KACPk/D,EAAWr/D,EAAME,GAEjBZ,EAAOU,EAAMy9D,EAAU4B,GAK7B,OAAO9/D,EAAQzB,EAAMjR,OAAS,CAChC,CACF,CAnFuBsyE,CAuHzB,SAAiBD,GACf,IACItwE,EACA2Q,EAFAiK,EAAS,GAIb,GAAsB,kBAAX01D,EACT,MAAM,IAAI5mE,MAAM,sCAGlB,GAAI,WAAY4mE,EAGd,IAFA3/D,GAAS,IAEAA,EAAQ2/D,EAAOryE,QACtB2c,EAAO1V,KAAK,CACVwrE,EAAaJ,EAAO3/D,GAAO,IAC3BggE,EAAWL,EAAO3/D,GAAO,WAI7B,IAAK3Q,KAAOswE,EACV11D,EAAO1V,KAAK,CAACwrE,EAAa1wE,GAAM2wE,EAAWL,EAAOtwE,MAItD,OAAO4a,CACT,CAhJwCg2D,CAAQN,KAEvCD,CAkFT,EAvGA,IAAIQ,EAAQ,EAAQ,MAChB/L,EAAU,EAAQ,OAClBgM,EAAS,EAAQ,OAEjB7rD,EAAS,GAAGA,OAqGhB,SAASvU,EAAO2/D,EAAMxB,EAAU/9C,GAC9B,IAAIhoB,EAAUg8D,EAAQ+J,EAASkC,QAAU,IAKzC,OAFAF,EAAMR,EAAM,QAIZ,SAAiBj/D,EAAM4/D,GACrB,IACI1/D,EACA2/D,EAFAtgE,GAAS,EAIb,OAASA,EAAQqgE,EAAQ/yE,QAAQ,CAG/B,GAFAqT,EAAS0/D,EAAQrgE,GAGf7H,EACEwI,EACA2/D,EAAcA,EAAYx/D,SAAS5F,QAAQyF,QAAU1C,EACrDqiE,GAGF,OAGFA,EAAc3/D,CAChB,CAEA,OAAOwf,EAAQ1f,EAAM6/D,EACvB,IA5Ba,EA6Bf,CA6BA,SAASP,EAAapzC,GACpB,MAAuB,kBAATA,EAAoB,IAAI76B,OAAOquE,EAAOxzC,GAAO,KAAOA,CACpE,CAEA,SAASqzC,EAAW/tE,GAClB,MAA0B,oBAAZA,EAAyBA,EAEvC,WACE,OAAOA,CACT,CACF,kCCjLA8f,EAAO/D,QAAUpE,IAChB,GAAsB,kBAAXA,EACV,MAAM,IAAI4E,UAAU,qBAKrB,OAAO5E,EACL3X,QAAQ,sBAAuB,QAC/BA,QAAQ,KAAM,QAAQ,kCCPzB,SAASkiE,EAAQj7D,GACf,GAAY,MAARA,EACF,OAAOjG,EAGT,GAAoB,kBAATiG,EACT,OAuDJ,SAAqBA,GACnB,OAAO0H,EAEP,SAASA,EAAKH,GACZ,OAAO2iC,QAAQ3iC,GAAQA,EAAKG,OAAS1H,EACvC,CACF,CA7DWqnE,CAAYrnE,GAGrB,GAAoB,kBAATA,EACT,MAAO,WAAYA,EA0BvB,SAAoBsnE,GAClB,IAAIC,EAAS,GACTzgE,GAAS,EAEb,OAASA,EAAQwgE,EAAMlzE,QACrBmzE,EAAOzgE,GAASm0D,EAAQqM,EAAMxgE,IAGhC,OAAO0gE,EAEP,SAASA,IAGP,IAFA,IAAI1gE,GAAS,IAEJA,EAAQygE,EAAOnzE,QACtB,GAAImzE,EAAOzgE,GAAOpS,MAAMwC,KAAM/C,WAC5B,OAAO,EAIX,OAAO,CACT,CACF,CA/C8BszE,CAAWznE,GAYzC,SAAoBA,GAClB,OAAO0nE,EAEP,SAASA,EAAIngE,GACX,IAAIpR,EAEJ,IAAKA,KAAO6J,EACV,GAAIuH,EAAKpR,KAAS6J,EAAK7J,GAAM,OAAO,EAGtC,OAAO,CACT,CACF,CAxBiDwxE,CAAW3nE,GAG1D,GAAoB,oBAATA,EACT,OAAOA,EAGT,MAAM,IAAIH,MAAM,+CAClB,CAoDA,SAAS9F,IACP,OAAO,CACT,CA1EA8e,EAAO/D,QAAUmmD,qBCFjBpiD,EAAO/D,QACP,SAAkB+Y,GAChB,OAAOA,CACT,qCCDAhV,EAAO/D,QAAU8yD,EAEjB,IAAI3M,EAAU,EAAQ,OAClB4M,EAAQ,EAAQ,OAEhBC,GAAW,EACXC,EAAO,OACPC,GAAO,EAMX,SAASJ,EAAapB,EAAMxmE,EAAMioE,EAASz2B,GACzC,IAAIqL,EACAqrB,EAEgB,oBAATloE,GAA0C,oBAAZioE,IACvCz2B,EAAUy2B,EACVA,EAAUjoE,EACVA,EAAO,MAGTkoE,EAAKjN,EAAQj7D,GACb68C,EAAOrL,GAAW,EAAI,EAItB,SAAS22B,EAAQ5gE,EAAMT,EAAOqgE,GAC5B,IACIjrE,EADAyC,EAAwB,kBAAT4I,GAA8B,OAATA,EAAgBA,EAAO,CAAC,EAGtC,kBAAf5I,EAAM+I,OACfxL,EAC2B,kBAAlByC,EAAMypE,QACTzpE,EAAMypE,QACgB,kBAAfzpE,EAAMzC,KACbyC,EAAMzC,UACN6I,EAENiiE,EAAMqB,YACJ,SAAWR,EAAMlpE,EAAM+I,MAAQxL,EAAO,IAAMA,EAAO,IAAM,KAAO,KAGpE,OAAO8qE,EAEP,SAASA,IACP,IAEIsB,EACAl/D,EAHAm/D,EAAepB,EAAQ/wE,OAAOmR,GAC9BwJ,EAAS,GAIb,KAAK/Q,GAAQkoE,EAAG3gE,EAAMT,EAAOqgE,EAAQA,EAAQ/yE,OAAS,IAAM,SAC1D2c,EA2BR,SAAkBpS,GAChB,GAAc,OAAVA,GAAmC,kBAAVA,GAAsB,WAAYA,EAC7D,OAAOA,EAGT,GAAqB,kBAAVA,EACT,MAAO,CAACmpE,EAAUnpE,GAGpB,MAAO,CAACA,EACV,CArCiB6pE,CAASP,EAAQ1gE,EAAM4/D,IAE5Bp2D,EAAO,KAAOi3D,GAChB,OAAOj3D,EAIX,GAAIxJ,EAAKK,UAAYmJ,EAAO,KAAOg3D,EAGjC,IAFA3+D,GAAUooC,EAAUjqC,EAAKK,SAASxT,QAAU,GAAKyoD,EAE1CzzC,GAAU,GAAKA,EAAS7B,EAAKK,SAASxT,QAAQ,CAGnD,IAFAk0E,EAAYH,EAAQ5gE,EAAKK,SAASwB,GAASA,EAAQm/D,EAAvCJ,IAEE,KAAOH,EACnB,OAAOM,EAGTl/D,EAC0B,kBAAjBk/D,EAAU,GAAkBA,EAAU,GAAKl/D,EAASyzC,CAC/D,CAGF,OAAO9rC,CACT,CACF,CAnDAo3D,CAAQ3B,EAAM,KAAM,GAApB2B,EAoDF,CArEAP,EAAaE,SAAWA,EACxBF,EAAaG,KAAOA,EACpBH,EAAaI,KAAOA,yBCbpB,IAAIS,EAAS,EAAQ,OACjBC,EAAiB,EAAQ,OACzBC,EAAqB,EAAQ,OAC7BC,EAAoB,EAAQ,MAoBhC,SAASC,EAA0B9gE,GACjC7Q,KAAKqqC,OAAOunC,MAAMC,iBAAiBryE,KAAKQ,KAAM6Q,EAChD,CA8BA,SAASihE,EAAQC,EAAItxE,EAAUuxE,EAAQloE,EAAMiP,GAC3C,IACIsqC,EACAxpC,EAFAuJ,EAAS,GAKb,QAAK/Q,EAAS0G,KAKV,MAAMjQ,KAAKrI,KACbuxE,EAASvxE,EAAWuxE,EACpBvxE,EAAW,GACX2iB,EAAS,aAuCb,SAAyB4uD,GACvB,IAAI3uB,EAAQ2uB,EAAOvzE,MAAM,KAEzB,GACE4kD,EAAMnmD,OAAS,GACdmmD,EAAMA,EAAMnmD,OAAS,KACnB,IAAI4L,KAAKu6C,EAAMA,EAAMnmD,OAAS,MAC5B,aAAa4L,KAAKu6C,EAAMA,EAAMnmD,OAAS,MAC3CmmD,EAAMA,EAAMnmD,OAAS,KACnB,IAAI4L,KAAKu6C,EAAMA,EAAMnmD,OAAS,MAC5B,aAAa4L,KAAKu6C,EAAMA,EAAMnmD,OAAS,KAE5C,OAAO,EAGT,OAAO,CACT,CApDO+0E,CAAgBD,QAIrB3uB,EAkDF,SAAkBjiD,GAChB,IACI8wE,EACAC,EACAC,EAHAC,EAAQ,sBAAsBp+D,KAAK7S,GAKvC,GAAIixE,EAOF,IANAjxE,EAAMA,EAAI2O,MAAM,EAAGsiE,EAAMziE,OAEzBsiE,GADAG,EAAQA,EAAM,IACYvnE,QAAQ,KAClCqnE,EAAgBZ,EAAOnwE,EAAK,KAC5BgxE,EAAgBb,EAAOnwE,EAAK,MAEE,IAAvB8wE,GAA4BC,EAAgBC,GACjDhxE,GAAOixE,EAAMtiE,MAAM,EAAGmiE,EAAoB,GAE1CA,GADAG,EAAQA,EAAMtiE,MAAMmiE,EAAoB,IACdpnE,QAAQ,KAClCsnE,IAIJ,MAAO,CAAChxE,EAAKixE,EACf,CAxEUC,CAASN,EAASloE,IAEf,KAEX+P,EAAS,CACPrJ,KAAM,OACN+hE,MAAO,KACPnxE,IAAKgiB,EAAS3iB,EAAW4iD,EAAM,GAC/B3yC,SAAU,CAAC,CAACF,KAAM,OAAQ/I,MAAOhH,EAAW4iD,EAAM,MAGhDA,EAAM,KACRxpC,EAAS,CAACA,EAAQ,CAACrJ,KAAM,OAAQ/I,MAAO47C,EAAM,MAGzCxpC,IACT,CAEA,SAAS24D,EAAUT,EAAIU,EAAOhwE,EAAOsW,GAEnC,SAAK1G,EAAS0G,GAAO,IAAS,QAAQjQ,KAAKrG,KAIpC,CACL+N,KAAM,OACN+hE,MAAO,KACPnxE,IAAK,UAAYqxE,EAAQ,IAAMhwE,EAC/BiO,SAAU,CAAC,CAACF,KAAM,OAAQ/I,MAAOgrE,EAAQ,IAAMhwE,IAEnD,CA4CA,SAAS4P,EAAS0G,EAAO25D,GACvB,IAAIl8C,EAAOzd,EAAM5M,MAAM0D,WAAWkJ,EAAMnJ,MAAQ,GAChD,OACG4mB,IAASA,GAAQk7C,EAAkBl7C,IAASi7C,EAAmBj7C,OAC9Dk8C,GAAkB,KAATl8C,EAEf,CAvJA5Y,EAAQ+0D,WAAa,CAuCrB,SAAsCrD,GACpCkC,EACElC,EACA,CACE,CAAC,iDAAkDwC,GACnD,CAAC,mCAAoCU,IAEvC,CAACxC,OAAQ,CAAC,OAAQ,kBAEtB,GA/CApyD,EAAQg0D,MAAQ,CACdgB,gBAYF,SAA8B/hE,GAC5B7Q,KAAK4xE,MAAM,CAACphE,KAAM,OAAQ+hE,MAAO,KAAMnxE,IAAK,GAAIsP,SAAU,IAAKG,EACjE,EAbEgiE,qBAAsBlB,EACtBmB,oBAAqBnB,EACrBoB,mBAAoBpB,GAEtB/zD,EAAQo1D,KAAO,CACbJ,gBA2BF,SAA6B/hE,GAC3B7Q,KAAKgzE,KAAKniE,EACZ,EA5BEgiE,qBAsBF,SAAkChiE,GAChC7Q,KAAKqqC,OAAO2oC,KAAKC,cAAczzE,KAAKQ,KAAM6Q,EAC5C,EAvBEiiE,oBAYF,SAAiCjiE,GAC/B7Q,KAAKqqC,OAAO2oC,KAAKnB,iBAAiBryE,KAAKQ,KAAM6Q,EAC/C,EAbEkiE,mBAeF,SAAgCliE,GAC9B7Q,KAAKqqC,OAAO2oC,KAAKjzE,KAAKP,KAAKQ,KAAM6Q,GACjC7Q,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAS,GAAGkE,IAAM,UAAYpB,KAAKkzE,eAAeriE,EAC1E,wBClCA,IAAIsiE,EAAc,WACdC,EAAiB,CAAC,WAAY,OAAQ,QAAS,SAEnDx1D,EAAQy1D,OAAS,CACf,CACEljE,UAAW,IACX9C,OAAQ,aACRwgE,MAAO,YACPsF,YAAaA,EACbC,eAAgBA,GAElB,CACEjjE,UAAW,IACX9C,OAAQ,OACRwgE,MAAO,YACPsF,YAAaA,EACbC,eAAgBA,GAElB,CACEjjE,UAAW,IACX9C,OAAQ,OACRwgE,MAAO,MACPsF,YAAaA,EACbC,eAAgBA,yBCvBpBx1D,EAAQ01D,eAAiB,CAAC,UAC1B11D,EAAQg0D,MAAQ,CAAC2B,cAGjB,SAA4B1iE,GAC1B7Q,KAAK4xE,MAAM,CAACphE,KAAM,SAAUE,SAAU,IAAKG,EAC7C,GAJA+M,EAAQo1D,KAAO,CAACO,cAMhB,SAA2B1iE,GACzB7Q,KAAKgzE,KAAKniE,EACZ,0BCVA,IAAI2iE,EAAW,EAAQ,OAOvB,SAASC,EAAapjE,EAAMunB,EAAG87C,GAC7B,IAAIV,EAAOU,EAAQ9B,MAAM,YACrBnqE,EAAQ+rE,EAASnjE,EAAMqjE,EAAS,CAACrmE,OAAQ,IAAKwgE,MAAO,MAEzD,OADAmF,IACO,KAAOvrE,EAAQ,IACxB,CAVAmW,EAAQy1D,OAAS,CAAC,CAACljE,UAAW,IAAKgjE,YAAa,aAChDv1D,EAAQyB,SAAW,CAACe,OAAQqzD,GAE5BA,EAAa9iE,KASb,WACE,MAAO,GACT,uBCYA,SAASqiE,EAAKniE,GACZ7Q,KAAKgzE,KAAKniE,EACZ,CAEA,SAAS8iE,EAAU9iE,GACjB7Q,KAAK4xE,MAAM,CAACphE,KAAM,YAAaE,SAAU,IAAKG,EAChD,CAeA,SAAShP,EAAQkwE,EAAIxuB,GAEnB,MAAc,MAAPA,EAAaA,EAAKwuB,CAC3B,CApDAn0D,EAAQg0D,MAAQ,CACdrE,MAaF,SAAoB18D,GAClB7Q,KAAK4xE,MAAM,CAACphE,KAAM,QAAS09D,MAAOr9D,EAAM+iE,OAAQljE,SAAU,IAAKG,GAC/D7Q,KAAK6zE,QAAQ,WAAW,EAC1B,EAfEC,UAAWH,EACXI,YAAaJ,EACbK,SAoBF,SAAkBnjE,GAChB7Q,KAAK4xE,MAAM,CAACphE,KAAM,WAAYE,SAAU,IAAKG,EAC/C,GApBA+M,EAAQo1D,KAAO,CACbiB,SA+BF,SAAsBpjE,GACpB,IAAIpJ,EAAQzH,KAAKk0E,SAEbl0E,KAAKm0E,QAAQ,aACf1sE,EAAQA,EAAM5F,QAAQ,aAAcA,IAGtC7B,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAS,GAAGuK,MAAQA,EAC1CzH,KAAKgzE,KAAKniE,EACZ,EAvCE08D,MAWF,SAAmB18D,GACjB7Q,KAAKgzE,KAAKniE,GACV7Q,KAAK6zE,QAAQ,UACf,EAbEC,UAAWd,EACXe,YAAaf,EACbgB,SAAUhB,0BCXZ,IAAIQ,EAAW,EAAQ,OACnBY,EAAoB,EAAQ,OAC5BC,EAAgB,EAAQ,OAE5B1yD,EAAO/D,QAEP,SAAoB5a,GAClB,IAAI8qE,EAAW9qE,GAAW,CAAC,EACvB+qE,EAAUD,EAASwG,iBACnBnG,EAAkBL,EAASyG,eAC3BlG,EAAeP,EAASO,aACxBmG,EAASzG,EAAU,IAAM,IAE7B,MAAO,CACLsF,OAAQ,CACN,CAACljE,UAAW,KAAMgjE,YAAa,aAC/B,CAAChjE,UAAW,KAAMgjE,YAAa,aAG/B,CAACsB,SAAS,EAAMtkE,UAAW,IAAK09D,MAAO,WAEvC,CAAC19D,UAAW,IAAKgjE,YAAa,aAG9B,CAACsB,SAAS,EAAMtkE,UAAW,IAAK09D,MAAO,KAMvC,CAAC4G,SAAS,EAAMtkE,UAAW,IAAK09D,MAAO,UAEzCxuD,SAAU,CACRkuD,MAOJ,SAAqBl9D,EAAMunB,EAAG87C,GAC5B,OAAOgB,EA6BT,SAA2BrkE,EAAMqjE,GAC/B,IAAIhjE,EAAWL,EAAKK,SAChBd,GAAS,EACT1S,EAASwT,EAASxT,OAClB2c,EAAS,GACT86D,EAAUjB,EAAQ9B,MAAM,SAE5B,OAAShiE,EAAQ1S,GACf2c,EAAOjK,GAASglE,EAAqBlkE,EAASd,GAAQ8jE,GAKxD,OAFAiB,IAEO96D,CACT,CA3CuBg7D,CAAkBxkE,EAAMqjE,GAAUrjE,EAAK69D,MAC9D,EARI8F,SAaJ,SAAwB3jE,EAAMunB,EAAG87C,GAC/B,IAEIjsE,EAAQitE,EAAc,CAFhBE,EAAqBvkE,EAAMqjE,KAGrC,OAAOjsE,EAAMsI,MAAM,EAAGtI,EAAMqD,QAAQ,MACtC,EAjBIgqE,UAAWC,EACXC,WAkEJ,SAA6B3kE,EAAME,EAAQmjE,GACzC,IAAIjsE,EAAQ2sE,EAAkB/jE,EAAME,EAAQmjE,IAEA,IAAxCA,EAAQ90E,MAAMkM,QAAQ,eACxBrD,EAAQA,EAAM5F,QAAQ,MAAO,SAG/B,OAAO4F,CACT,IAxDA,SAASstE,EAAgB1kE,EAAMunB,EAAG87C,GAChC,IAAIV,EAAOU,EAAQ9B,MAAM,aACrBnqE,EAAQ+rE,EAASnjE,EAAMqjE,EAAS,CAACrmE,OAAQmnE,EAAQ3G,MAAO2G,IAE5D,OADAxB,IACOvrE,CACT,CAEA,SAASitE,EAAcO,EAAQ/G,GAC7B,OAAOmG,EAAcY,EAAQ,CAC3B/G,MAAOA,EACPC,gBAAiBA,EACjBJ,QAASA,EACTM,aAAcA,GAElB,CAkBA,SAASuG,EAAqBvkE,EAAMqjE,GAOlC,IANA,IAAIhjE,EAAWL,EAAKK,SAChBd,GAAS,EACT1S,EAASwT,EAASxT,OAClB2c,EAAS,GACT86D,EAAUjB,EAAQ9B,MAAM,cAEnBhiE,EAAQ1S,GACf2c,EAAOjK,GAASmlE,EAAgBrkE,EAASd,GAAQS,EAAMqjE,GAKzD,OAFAiB,IAEO96D,CACT,CAWF,uBCzGA,SAASq7D,EAAUrkE,GAEjB7Q,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAS,GAAGi4E,QACjB,8BAAftkE,EAAML,IACV,CAVAoN,EAAQo1D,KAAO,CACboC,0BAA2BF,EAC3BG,4BAA6BH,EAC7BI,UASF,SAAuCzkE,GACrC,IAKI0kE,EALAhlE,EAASvQ,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAS,GACxCmT,EAAOrQ,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAS,GACtCs4E,EAAWjlE,EAAOG,SAClB4D,EAAOjE,EAAKK,SAAS,GACrBd,GAAS,EAGb,GACEW,GACgB,aAAhBA,EAAOC,MACmB,mBAAnBD,EAAO4kE,SACd7gE,GACc,SAAdA,EAAK9D,KACL,CACA,OAASZ,EAAQ4lE,EAASt4E,QACxB,GAA6B,cAAzBs4E,EAAS5lE,GAAOY,KAAsB,CACxC+kE,EAAkBC,EAAS5lE,GAC3B,KACF,CAGE2lE,IAAoBllE,IAEtBiE,EAAK7M,MAAQ6M,EAAK7M,MAAMsI,MAAM,GAEJ,IAAtBuE,EAAK7M,MAAMvK,OACbmT,EAAKK,SAASvK,SAEdmO,EAAKpE,SAAS4Z,MAAM7Z,SACpBqE,EAAKpE,SAAS4Z,MAAM5X,SACpB7B,EAAKH,SAAS4Z,MAAQnsB,OAAOsN,OAAO,CAAC,EAAGqJ,EAAKpE,SAAS4Z,QAG5D,CAEA9pB,KAAKgzE,KAAKniE,EACZ,0BCjDA,IAAI4kE,EAAkB,EAAQ,OAE9B73D,EAAQy1D,OAAS,CAAC,CAACoB,SAAS,EAAMtkE,UAAW,IAAK09D,MAAO,UAEzDjwD,EAAQyB,SAAW,CACjBq2D,SAGF,SAAkCrlE,EAAME,EAAQmjE,GAC9C,IAAIjsE,EAAQguE,EAAgBplE,EAAME,EAAQmjE,GACtCp/D,EAAOjE,EAAKK,SAAS,GAEG,mBAAjBL,EAAK8kE,SAAyB7gE,GAAsB,cAAdA,EAAK9D,OACpD/I,EAAQA,EAAM5F,QAAQ,mCAKxB,SAAekwE,GACb,OAAOA,EAAK,KAAO1hE,EAAK8kE,QAAU,IAAM,KAAO,IACjD,KAJA,OAAO1tE,CAKT,0BCrBA,IAAIkuE,EAAkB,EAAQ,OAC1BpC,EAAgB,EAAQ,OACxBhG,EAAQ,EAAQ,OAChBqI,EAAe,EAAQ,OAEvBC,EAAM,CAAC,EAAEvqE,eAqBb,SAAS4oB,EAAUmW,EAAQnW,GACzB,IAAIj1B,EACAmpD,EACAC,EAEJ,IAAKppD,KAAOi1B,EACVk0B,EAAOytB,EAAIr2E,KAAK6qC,EAAQprC,GAAOorC,EAAOprC,GAAQorC,EAAOprC,GAAO,CAAC,EAC7DopD,EAAQn0B,EAAUj1B,GAEN,mBAARA,GAAoC,eAARA,EAC9BorC,EAAOprC,GAAO,GAAGC,OAAOkpD,EAAMC,GAE9B1qD,OAAOsN,OAAOm9C,EAAMC,EAG1B,CAlCA1mC,EAAO/D,QAOP,SAAmBoW,GACjB,IAAIqW,EAAS,CAACsoC,WAAY,GAAIW,eAAgB,IAC1Cp2E,EAAS82B,EAAW92B,OACpB0S,GAAS,EAEb,OAASA,EAAQ1S,GACfg3B,EAAUmW,EAAQrW,EAAWpkB,IAG/B,OAAOy6B,CACT,CAjBiByrC,CAAU,CACzBH,EACApC,EACAhG,EACAqI,2BCXF,IAAID,EAAkB,EAAQ,OAC1BpC,EAAgB,EAAQ,OACxBhG,EAAQ,EAAQ,OAChBqI,EAAe,EAAQ,OACvBE,EAAY,EAAQ,OAExBn0D,EAAO/D,QAEP,SAAoB5a,GAClB,IAAIqnC,EAASyrC,EACX,CAACz2D,SAAU,CAAC,EAAGjgB,KAAM,GAAIi0E,OAAQ,GAAIrwE,QAAS,CAAC,GAC/C,CACEgxB,WAAY,CAAC2hD,EAAiBpC,EAAehG,EAAMvqE,GAAU4yE,KAIjE,OAAOj4E,OAAOsN,OAAOo/B,EAAOrnC,QAAS,CACnCqc,SAAUgrB,EAAOhrB,SACjBjgB,KAAMirC,EAAOjrC,KACbi0E,OAAQhpC,EAAOgpC,QAEnB,qBCrBA1xD,EAAO/D,QAEP,SAASk4D,EAAUp7B,EAAMxmB,GACvB,IACIj1B,EADA2Q,GAAS,EAIb,GAAIskB,EAAUF,WACZ,OAASpkB,EAAQskB,EAAUF,WAAW92B,QACpC44E,EAAUp7B,EAAMxmB,EAAUF,WAAWpkB,IAIzC,IAAK3Q,KAAOi1B,EACE,eAARj1B,IAEe,WAARA,GAA4B,SAARA,EAC7By7C,EAAKz7C,GAAOy7C,EAAKz7C,GAAKC,OAAOg1B,EAAUj1B,IAAQ,IAC9B,aAARA,EACTy7C,EAAKz7C,GAAOtB,OAAOsN,OAAOyvC,EAAKz7C,GAAMi1B,EAAUj1B,IAAQ,CAAC,GAExDy7C,EAAK13C,QAAQ/D,GAAOi1B,EAAUj1B,IAIlC,OAAOy7C,CACT,yBC1BA/4B,EAAO/D,QAAUo3D,EACjBA,EAAWrkE,KAiEX,WACE,MAAO,GACT,EAjEA,IAAIolE,EAAiB,EAAQ,OAE7B,SAASf,EAAW3kE,EAAME,EAAQmjE,GAYhC,IAXA,IAGIlkE,EACAu6B,EACAhxB,EACA7I,EANAzI,EAAQ4I,EAAK5I,OAAS,GACtBuuE,EAAW,IACXpmE,GAAS,EASN,IAAIlO,OAAO,WAAas0E,EAAW,YAAYltE,KAAKrB,IACzDuuE,GAAY,IAoBd,IAdE,WAAWltE,KAAKrB,KACf,WAAWqB,KAAKrB,EAAM4b,OAAO,KAC5B,WAAWva,KAAKrB,EAAM4b,OAAO5b,EAAMvK,OAAS,OAE9CuK,EAAQ,IAAMA,EAAQ,OAUfmI,EAAQ8jE,EAAQL,OAAOn2E,QAM9B,IALAsS,EAAUkkE,EAAQL,OAAOzjE,IAKZ6kE,QAIb,IAFA1qC,EAAagsC,EAAevmE,GAEpBuJ,EAAQgxB,EAAW91B,KAAKxM,IAC9ByI,EAAW6I,EAAMnJ,MAIgB,KAA/BnI,EAAMoI,WAAWK,IACkB,KAAnCzI,EAAMoI,WAAWK,EAAW,IAE5BA,IAGFzI,EAAQA,EAAMsI,MAAM,EAAGG,GAAY,IAAMzI,EAAMsI,MAAMgJ,EAAMnJ,MAAQ,GAIvE,OAAOomE,EAAWvuE,EAAQuuE,CAC5B,yBChEAr0D,EAAO/D,QAQP,SAAkBvN,EAAME,EAAQmjE,GAC9B,IAEI5gE,EACArL,EACAurE,EAJAiD,EAASC,EAAYxC,GACrByC,EAAiBC,EAAoB1C,GAKrCnjE,GAAUA,EAAO8lE,UACnBJ,GACG1lE,EAAOuZ,OAAS,EAAIvZ,EAAOuZ,MAAQ,KACK,IAAxC4pD,EAAQ1wE,QAAQszE,oBACb,EACA/lE,EAAOG,SAAS5F,QAAQuF,IAC5B,KAGJyC,EAAOmjE,EAAO/4E,OAAS,GAGF,QAAnBi5E,GACoB,UAAnBA,IAAgC5lE,GAAUA,EAAOgmE,QAAWlmE,EAAKkmE,WAElEzjE,EAA6B,EAAtBnO,KAAK6yB,KAAK1kB,EAAO,IAO1B,OAJAkgE,EAAOU,EAAQ9B,MAAM,YACrBnqE,EAAQ+uE,EAAYC,EAAKpmE,EAAMqjE,IAK/B,SAAa/0E,EAAMiR,EAAO8mE,GACxB,GAAI9mE,EACF,OAAQ8mE,EAAQ,GAAKpJ,EAAO,IAAKx6D,IAASnU,EAG5C,OAAQ+3E,EAAQT,EAASA,EAAS3I,EAAO,IAAKx6D,EAAOmjE,EAAO/4E,SAAWyB,CACzE,IAVAq0E,IAEOvrE,CAST,EA5CA,IAAI6lE,EAAS,EAAQ,OACjB4I,EAAc,EAAQ,OACtBE,EAAsB,EAAQ,OAC9BK,EAAO,EAAQ,OACfD,EAAc,EAAQ,0BCN1B70D,EAAO/D,QAEP,SAAqB81D,GACnB,IAAIiD,EAASjD,EAAQ1wE,QAAQizE,QAAU,IAEvC,GAAe,MAAXU,GAA6B,MAAXA,GAA6B,MAAXA,EACtC,MAAM,IAAIhuE,MACR,gCACEguE,EACA,qDAIN,OAAOA,CACT,qBCdAh1D,EAAO/D,QAEP,SAA6B81D,GAC3B,IAAI7uD,EAAQ6uD,EAAQ1wE,QAAQmzE,gBAAkB,MAE9C,GAAc,IAAVtxD,GAAyB,MAAVA,EACjB,MAAO,MAGT,GAAc,QAAVA,GAA6B,QAAVA,GAA6B,UAAVA,EACxC,MAAM,IAAIlc,MACR,gCACEkc,EACA,qEAIN,OAAOA,CACT,yBClBAlD,EAAO/D,QAIP,SAAcrN,EAAQmjE,GACpB,IAGIr2D,EAHA3M,EAAWH,EAAOG,UAAY,GAC9B2tB,EAAU,GACVzuB,GAAS,EAGb,OAASA,EAAQc,EAASxT,QACxBmgB,EAAQ3M,EAASd,GAEjByuB,EAAQl6B,KACNuvE,EAAQkD,OAAOv5D,EAAO9M,EAAQmjE,EAAS,CAACrmE,OAAQ,KAAMwgE,MAAO,QAG3Dj+D,EAAQ,EAAIc,EAASxT,QACvBmhC,EAAQl6B,KAAK0yE,EAAQx5D,EAAO3M,EAASd,EAAQ,KAIjD,OAAOyuB,EAAQj/B,KAAK,IAEpB,SAASy3E,EAAQzuB,EAAMC,GAIrB,IAHA,IACIxuC,EADAjK,GAAS,IAGJA,EAAQ8jE,EAAQt0E,KAAKlC,SAGb,KAFf2c,EAAS65D,EAAQt0E,KAAKwQ,GAAOw4C,EAAMC,EAAO93C,EAAQmjE,KAEhB,IAAX75D,GAHa,CAOpC,GAAsB,kBAAXA,EACT,OAAOyzD,EAAO,KAAM,EAAI/yC,OAAO1gB,IAGjC,IAAe,IAAXA,EACF,MAAO,uBAEX,CAEA,MAAO,MACT,CACF,EA5CA,IAAIyzD,EAAS,EAAQ,0BCFrB3rD,EAAO/D,QAEP,SAAkBrN,EAAQmjE,EAASoD,GACjC,IAIIjJ,EACA+I,EACAv5D,EANA3M,EAAWH,EAAOG,UAAY,GAC9B2tB,EAAU,GACVzuB,GAAS,EACTvC,EAASypE,EAAYzpE,OAKzB,OAASuC,EAAQc,EAASxT,QACxBmgB,EAAQ3M,EAASd,GAEbA,EAAQ,EAAIc,EAASxT,SACvB05E,EAASlD,EAAQkD,OAAOv3D,SAAS3O,EAASd,EAAQ,GAAGY,QACvComE,EAAOjmE,OAAMimE,EAASA,EAAOjmE,MAC3Ck9D,EAAQ+I,EACJA,EAAOlmE,EAASd,EAAQ,GAAIW,EAAQmjE,EAAS,CAC3CrmE,OAAQ,GACRwgE,MAAO,KACNxqD,OAAO,GACV,IAEJwqD,EAAQiJ,EAAYjJ,MAUpBxvC,EAAQnhC,OAAS,IACL,OAAXmQ,GAA8B,OAAXA,IACL,SAAfgQ,EAAM7M,OAEN6tB,EAAQA,EAAQnhC,OAAS,GAAKmhC,EAAQA,EAAQnhC,OAAS,GAAG2E,QACxD,cACA,KAEFwL,EAAS,KAGXgxB,EAAQl6B,KACNuvE,EAAQkD,OAAOv5D,EAAO9M,EAAQmjE,EAAS,CACrCrmE,OAAQA,EACRwgE,MAAOA,KAIXxgE,EAASgxB,EAAQA,EAAQnhC,OAAS,GAAG6S,OAAO,GAG9C,OAAOsuB,EAAQj/B,KAAK,GACtB,qBCxDAuiB,EAAO/D,QAIP,SAAqBnW,EAAOzI,GAC1B,IAGI+Z,EAHAc,EAAS,GACTiQ,EAAQ,EACRnrB,EAAO,EAGX,KAAQoa,EAAQg+D,EAAI9iE,KAAKxM,IACvBuvE,EAAIvvE,EAAMsI,MAAM+Z,EAAO/Q,EAAMnJ,QAC7BiK,EAAO1V,KAAK4U,EAAM,IAClB+Q,EAAQ/Q,EAAMnJ,MAAQmJ,EAAM,GAAG7b,OAC/ByB,IAKF,OAFAq4E,EAAIvvE,EAAMsI,MAAM+Z,IAETjQ,EAAOza,KAAK,IAEnB,SAAS43E,EAAIvvE,GACXoS,EAAO1V,KAAKnF,EAAIyI,EAAO9I,GAAO8I,GAChC,CACF,EAtBA,IAAIsvE,EAAM,+BCFVp1D,EAAO/D,QAEP,SAAwBpO,GACtB,IAAInC,EACAwgE,EAECr+D,EAAQynE,YACX5pE,EAASmC,EAAQnC,OAAS,MAAQmC,EAAQnC,OAAS,IAAM,GACzDwgE,EAAQr+D,EAAQq+D,MAAQ,MAAQr+D,EAAQq+D,MAAQ,IAAM,GAElDr+D,EAAQilE,UACVpnE,EAAS,kBAAoBA,GAG/BmC,EAAQynE,UAAY,IAAIv1E,QACrB2L,EAAS,IAAMA,EAAS,IAAM,KAC5B,sBAAsBvE,KAAK0G,EAAQW,WAAa,KAAO,IACxDX,EAAQW,WACP09D,GAAS,IACZ,MAIJ,OAAOr+D,EAAQynE,SACjB,yBCxBAt1D,EAAO/D,QAAU,EAAjB,0BCAA,IAAIs5D,EAAa,EAAQ,OACrBC,EAAoB,EAAQ,OAC5BC,EAAe,EAAQ,OACvBC,EAAqB,EAAQ,OAC7B5F,EAAqB,EAAQ,OAC7BC,EAAoB,EAAQ,MAE5B4F,EAAM,CAACC,SAoRX,SAAqBC,EAAS30E,EAAI40E,GAChC,OAEA,SAAejhD,GAGb,OADAghD,EAAQE,QAAQlhD,GACTmhD,CACT,EAEA,SAASA,EAAGnhD,GAEV,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACTohD,GAGFH,EAAIjhD,EACb,CAEA,SAASohD,EAAGphD,GAEV,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACTqhD,GAGFJ,EAAIjhD,EACb,CAEA,SAASqhD,EAAIrhD,GAEX,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACTq3C,GAGF4J,EAAIjhD,EACb,CAEA,SAASq3C,EAAMr3C,GACb,OAAgB,OAATA,GAAiB6gD,EAAmB7gD,GAAQihD,EAAIjhD,GAAQ3zB,EAAG2zB,EACpE,CACF,EA9TkCshD,SAAS,GACvC9F,EAAS,CAACuF,SA+Td,SAAwBC,EAAS30E,EAAI40E,GACnC,IAAIM,EACAC,EAEJ,OAAOhG,EAEP,SAASA,EAAOx7C,GAEd,OAAa,KAATA,EACKghD,EAAQS,MACbC,EACA1wE,EACA2wE,EAHKX,CAILhhD,GAGS,KAATA,GAAkC,KAATA,EACpBghD,EAAQS,MAAMG,EAAa5wE,EAAM2wE,EAAjCX,CAA0DhhD,GASjE4gD,EAAa5gD,IACbk7C,EAAkBl7C,IACR,KAATA,GAAyBi7C,EAAmBj7C,GAEtChvB,EAAKgvB,IAGdghD,EAAQE,QAAQlhD,GACTw7C,EACT,CAEA,SAASmG,EAAwB3hD,GAE/B,OAAa,KAATA,GACFwhD,EAAiCD,EACjCA,OAA6BlqE,EAC7B2pE,EAAQE,QAAQlhD,GACTw7C,IAII,KAATx7C,IAAauhD,GAA6B,GAE9CP,EAAQE,QAAQlhD,GACTw7C,EACT,CAEA,SAASxqE,EAAKgvB,GACZ,OAAKwhD,GAAmCD,EAIjCN,EAAIjhD,GAHF3zB,EAAG2zB,EAId,CACF,EA3XwCshD,SAAS,GAC7ChuE,EAAO,CAACytE,SA4XZ,SAAsBC,EAAS30E,GAC7B,IAAIw1E,EAAU,EAEd,OAAOC,EAEP,SAASA,EAAO9hD,GAEd,OAAa,KAATA,EACKghD,EAAQS,MACbC,EACAr1E,EACA01E,EAHKf,CAILhhD,IAIS,KAATA,GACF6hD,IAIW,KAAT7hD,EACKghD,EAAQS,MACbG,EACAI,EACAD,EAHKf,CAILhhD,GAGAiiD,EAAQjiD,GACH3zB,EAAG2zB,GAGRkiD,EAAoBliD,GACfghD,EAAQS,MAAMG,EAAav1E,EAAI01E,EAA/Bf,CAAqDhhD,IAG9DghD,EAAQE,QAAQlhD,GACT8hD,GACT,CAEA,SAASC,EAAqB/hD,GAE5B,OADAghD,EAAQE,QAAQlhD,GACT8hD,CACT,CAEA,SAASE,EAAehiD,GAEtB,QADA6hD,EACiB,EAAIx1E,EAAG2zB,GAAQ+hD,EAAqB/hD,EACvD,CACF,EA9aoCshD,SAAS,GACzCM,EAAc,CAACb,SA8cnB,SAA6BC,EAAS30E,EAAI40E,GACxC,OAEA,SAAejhD,GAGb,OADAghD,EAAQE,QAAQlhD,GACTq3C,CACT,EAEA,SAASA,EAAMr3C,GAEb,OAAIkiD,EAAoBliD,IACtBghD,EAAQE,QAAQlhD,GACTq3C,GAKF4K,EAAQjiD,GAAQ3zB,EAAG2zB,GAAQihD,EAAIjhD,EACxC,CACF,EAlekDshD,SAAS,GACvDI,EAA0B,CAC5BX,SA6aF,SAAyCC,EAAS30E,EAAI40E,GACpD,OAEA,SAAejhD,GAGb,OADAghD,EAAQE,QAAQlhD,GACTmiD,CACT,EAEA,SAASA,EAAOniD,GACd,OAAI0gD,EAAW1gD,IACbghD,EAAQE,QAAQlhD,GACTmiD,GAII,KAATniD,GACFghD,EAAQE,QAAQlhD,GACTq3C,GAGF4J,EAAIjhD,EACb,CAEA,SAASq3C,EAAMr3C,GAGb,OAAOiiD,EAAQjiD,GAAQ3zB,EAAG2zB,GAAQihD,EAAIjhD,EACxC,CACF,EAzcEshD,SAAS,GAGPc,EAAc,CAACrB,SA+HnB,SAA6BC,EAAS30E,EAAI40E,GACxC,IAAI53E,EAAOG,KAEX,OAEA,SAAew2B,GAEb,GACY,KAATA,GAAeA,EAAO,KAAO,KAC7BqiD,EAAYh5E,EAAKwS,WAClBA,EAASxS,EAAKi5E,QAEd,OAAOrB,EAAIjhD,GAQb,OALAghD,EAAQ5F,MAAM,mBACd4F,EAAQ5F,MAAM,sBAIP4F,EAAQS,MACbX,EACAE,EAAQuB,QAAQ/G,EAAQwF,EAAQuB,QAAQjvE,EAAMtC,GAAOiwE,GACrDA,EAHKD,CAILhhD,EACJ,EAEA,SAAShvB,EAAKgvB,GAGZ,OAFAghD,EAAQxE,KAAK,sBACbwE,EAAQxE,KAAK,mBACNnwE,EAAG2zB,EACZ,CACF,EA/JkDnkB,SAAUwmE,GACxDG,EAAe,CAACzB,SAgKpB,SAA8BC,EAAS30E,EAAI40E,GACzC,IAAI53E,EAAOG,KAEX,OAEA,SAAew2B,GAEb,GACY,KAATA,GAAeA,EAAO,KAAO,KAC7ByiD,EAAap5E,EAAKwS,WACnBA,EAASxS,EAAKi5E,QAEd,OAAOrB,EAAIjhD,GAMb,OAHAghD,EAAQ5F,MAAM,mBACd4F,EAAQ5F,MAAM,uBACd4F,EAAQE,QAAQlhD,GACT0iD,CACT,EAEA,SAASA,EAAG1iD,GAEV,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACT2iD,GAGF1B,EAAIjhD,EACb,CAEA,SAAS2iD,EAAG3iD,GAEV,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACTnrB,GAGFosE,EAAIjhD,EACb,CAEA,SAASnrB,EAAEmrB,GAET,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACTrrB,GAGFssE,EAAIjhD,EACb,CAEA,SAASrrB,EAAEqrB,GAET,OAAa,KAATA,GAAeA,EAAO,KAAO,IAC/BghD,EAAQE,QAAQlhD,GACTw4C,GAGFA,EAAMx4C,EACf,CAEA,SAASw4C,EAAMx4C,GAEb,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACT4iD,GAGF3B,EAAIjhD,EACb,CAEA,SAAS4iD,EAAO5iD,GAEd,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACT6iD,GAGF5B,EAAIjhD,EACb,CAEA,SAAS6iD,EAAO7iD,GAEd,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACTq3C,GAGF4J,EAAIjhD,EACb,CAEA,SAASq3C,EAAMr3C,GACb,OAAO4gD,EAAa5gD,IAClBk7C,EAAkBl7C,IAClBi7C,EAAmBj7C,GACjBihD,EAAIjhD,GACJghD,EAAQuB,QAAQ/G,EAAQwF,EAAQuB,QAAQjvE,EAAMtC,GAAOiwE,EAArDD,CAA0DhhD,EAChE,CAEA,SAAShvB,EAAKgvB,GAGZ,OAFAghD,EAAQxE,KAAK,uBACbwE,EAAQxE,KAAK,mBACNnwE,EAAG2zB,EACZ,CACF,EAxQoDnkB,SAAU4mE,GAC1DK,EAAgB,CAAC/B,SAmCrB,SAA+BC,EAAS30E,EAAI40E,GAC1C,IACI8B,EADA15E,EAAOG,KAGX,OAEA,SAAew2B,GAEb,IACGgjD,EAAShjD,KACTijD,EAAc55E,EAAKwS,WACpBA,EAASxS,EAAKi5E,QAEd,OAAOrB,EAAIjhD,GAKb,OAFAghD,EAAQ5F,MAAM,mBACd4F,EAAQ5F,MAAM,wBACPa,EAAMj8C,EACf,EAEA,SAASi8C,EAAMj8C,GACb,OAAIgjD,EAAShjD,IACXghD,EAAQE,QAAQlhD,GACTi8C,GAII,KAATj8C,GACFghD,EAAQE,QAAQlhD,GACT/zB,GAGFg1E,EAAIjhD,EACb,CAEA,SAAS/zB,EAAM+zB,GAEb,OAAa,KAATA,EACKghD,EAAQS,MAAMG,EAAa5wE,EAAMkyE,EAAjClC,CAAkDhhD,GAKhD,KAATA,GAES,KAATA,EAEOghD,EAAQS,MAAMG,EAAaX,EAAKkC,EAAhCnC,CAA8DhhD,GAGnE2gD,EAAkB3gD,IACpBghD,EAAQE,QAAQlhD,GACT/zB,GAGF+E,EAAKgvB,EACd,CAEA,SAASkjD,EAAgBljD,GAGvB,OAFAghD,EAAQE,QAAQlhD,GAChB+iD,GAAS,EACF92E,CACT,CAEA,SAASk3E,EAA6BnjD,GAEpC,OADAghD,EAAQE,QAAQlhD,GACTojD,CACT,CAEA,SAASA,EAAsBpjD,GAE7B,OAAa,KAATA,EACKghD,EAAQS,MAAMG,EAAaX,EAAKiC,EAAhClC,CAAiDhhD,GAGnD/zB,EAAM+zB,EACf,CAEA,SAAShvB,EAAKgvB,GACZ,OAAI+iD,GACF/B,EAAQxE,KAAK,wBACbwE,EAAQxE,KAAK,mBACNnwE,EAAG2zB,IAGLihD,EAAIjhD,EACb,CACF,EA3HsDnkB,SAAUonE,GAE5Dv1C,EAAO,CAAC,EAGZtmB,EAAQsmB,KAAOA,EAMf,IAHA,IAAI1N,EAAO,GAGJA,EAAO,KACZ0N,EAAK1N,GAAQ8iD,EAGA,OAFb9iD,EAEiBA,EAAO,GAEN,KAATA,IAAaA,EAAO,IA2c/B,SAASkiD,EAAoBliD,GAC3B,OAEW,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,KAATA,GAES,MAATA,CAEJ,CAEA,SAASiiD,EAAQjiD,GACf,OAEW,OAATA,GAEAA,EAAO,GAEE,KAATA,GAES,KAATA,CAEJ,CAEA,SAASgjD,EAAShjD,GAChB,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA2gD,EAAkB3gD,EAEtB,CAEA,SAASqiD,EAAYriD,GACnB,OACW,OAATA,GACAA,EAAO,GACE,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,MAATA,CAEJ,CAEA,SAASyiD,EAAaziD,GACpB,OAAgB,OAATA,IAAkB0gD,EAAW1gD,EACtC,CAEA,SAASijD,EAAcjjD,GACrB,OAAgB,KAATA,GAAyByiD,EAAaziD,EAC/C,CAEA,SAASnkB,EAASymE,GAGhB,IAFA,IAAIlpE,EAAQkpE,EAAO57E,OAEZ0S,KACL,IAC6B,cAA1BkpE,EAAOlpE,GAAO,GAAGY,MACU,eAA1BsoE,EAAOlpE,GAAO,GAAGY,QAClBsoE,EAAOlpE,GAAO,GAAGiqE,UAElB,OAAO,CAGb,CA7hBA31C,EAAK,IAAMo1C,EAEXp1C,EAAK,IAAMo1C,EAEXp1C,EAAK,IAAMo1C,EAEXp1C,EAAK,IAAMo1C,EAEXp1C,EAAK,IAAM,CAACo1C,EAAeN,GAC3B90C,EAAK,KAAO,CAACo1C,EAAeN,GAE5B90C,EAAK,IAAM,CAACo1C,EAAeV,GAC3B10C,EAAK,KAAO,CAACo1C,EAAeV,0BCnD5Bj3D,EAAO/D,QAOP,SAAgB5a,GACd,IACI82E,GADW92E,GAAW,CAAC,GACL+2E,YAClBC,EAAY,CACdzC,SA2GF,SAA+BC,EAAS30E,EAAI40E,GAC1C,IAAIplE,EAAWrS,KAAKqS,SAChBymE,EAAS94E,KAAK84E,OACdhmE,EAAO,EAEX,OAAOgX,EAEP,SAASA,EAAM0M,GACb,OACW,MAATA,GACc,MAAbnkB,GACuC,oBAAtCymE,EAAOA,EAAO57E,OAAS,GAAG,GAAGsT,KAExBinE,EAAIjhD,IAGbghD,EAAQ5F,MAAM,kCACPx2B,EAAK5kB,GACd,CAEA,SAAS4kB,EAAK5kB,GACZ,IACI3lB,EACAg9D,EAFAxgE,EAAS4sE,EAAkB5nE,GAI/B,OAAa,MAATmkB,EAEE1jB,EAAO,EAAU2kE,EAAIjhD,IACzBghD,EAAQE,QAAQlhD,GAChB1jB,IACOsoC,GAGLtoC,EAAO,IAAMgnE,EAAerC,EAAIjhD,IACpC3lB,EAAQ2mE,EAAQxE,KAAK,kCACrBnF,EAAQoM,EAAkBzjD,GAC1B3lB,EAAMqpE,OAASrM,GAAoB,IAAVA,GAAexgE,EACxCwD,EAAMspE,QAAU9sE,GAAsB,IAAXA,GAAgBwgE,EACpChrE,EAAG2zB,GACZ,CACF,EAlJE4jD,WAUF,SAAiCtB,EAAQpF,GACvC,IACIH,EACArvC,EACAtiC,EACAy4E,EAJAzqE,GAAS,EAOb,OAASA,EAAQkpE,EAAO57E,QAEtB,GACuB,UAArB47E,EAAOlpE,GAAO,IACY,mCAA1BkpE,EAAOlpE,GAAO,GAAGY,MACjBsoE,EAAOlpE,GAAO,GAAGuqE,OAKjB,IAHAv4E,EAAOgO,EAGAhO,KAEL,GACsB,SAApBk3E,EAAOl3E,GAAM,IACY,mCAAzBk3E,EAAOl3E,GAAM,GAAG4O,MAChBsoE,EAAOl3E,GAAM,GAAGs4E,OAEhBpB,EAAOlpE,GAAO,GAAGvM,IAAI6O,OAAS4mE,EAAOlpE,GAAO,GAAGka,MAAM5X,SACnD4mE,EAAOl3E,GAAM,GAAGyB,IAAI6O,OAAS4mE,EAAOl3E,GAAM,GAAGkoB,MAAM5X,OACrD,CACA4mE,EAAOlpE,GAAO,GAAGY,KAAO,wBACxBsoE,EAAOl3E,GAAM,GAAG4O,KAAO,wBAEvB+iE,EAAgB,CACd/iE,KAAM,gBACNsZ,MAAOwwD,EAAQxB,EAAOl3E,GAAM,GAAGkoB,OAC/BzmB,IAAKi3E,EAAQxB,EAAOlpE,GAAO,GAAGvM,MAGhC6gC,EAAO,CACL1zB,KAAM,oBACNsZ,MAAOwwD,EAAQxB,EAAOl3E,GAAM,GAAGyB,KAC/BA,IAAKi3E,EAAQxB,EAAOlpE,GAAO,GAAGka,QAIhCuwD,EAAa,CACX,CAAC,QAAS9G,EAAeG,GACzB,CAAC,QAASoF,EAAOl3E,GAAM,GAAI8xE,GAC3B,CAAC,OAAQoF,EAAOl3E,GAAM,GAAI8xE,GAC1B,CAAC,QAASxvC,EAAMwvC,IAIlB6G,EACEF,EACAA,EAAWn9E,OACX,EACAk9E,EACE1G,EAAQ8G,OAAOC,WAAWC,WAAWC,KACrC7B,EAAO/oE,MAAMnO,EAAO,EAAGgO,GACvB8jE,IAKJ6G,EAAcF,EAAYA,EAAWn9E,OAAQ,EAAG,CAC9C,CAAC,OAAQgnC,EAAMwvC,GACf,CAAC,QAASoF,EAAOlpE,GAAO,GAAI8jE,GAC5B,CAAC,OAAQoF,EAAOlpE,GAAO,GAAI8jE,GAC3B,CAAC,OAAQH,EAAeG,KAG1B6G,EAAczB,EAAQl3E,EAAO,EAAGgO,EAAQhO,EAAO,EAAGy4E,GAElDzqE,EAAQhO,EAAOy4E,EAAWn9E,OAAS,EACnC,KACF,CAKN,OAGF,SAAkC47E,GAChC,IAAIlpE,GAAS,EACT1S,EAAS47E,EAAO57E,OAEpB,OAAS0S,EAAQ1S,GACe,mCAA1B47E,EAAOlpE,GAAO,GAAGY,OACnBsoE,EAAOlpE,GAAO,GAAGY,KAAO,QAI5B,OAAOsoE,CACT,CAdS8B,CAAyB9B,EAClC,GAxFe,OAAXgB,QAA8BjsE,IAAXisE,IACrBA,GAAS,GAGX,MAAO,CAAC51C,KAAM,CAAC,IAAK81C,GAAYU,WAAY,CAACC,KAAMX,GA4IrD,EA7JA,IAAIC,EAAoB,EAAQ,OAC5BM,EAAgB,EAAQ,OACxBH,EAAa,EAAQ,OACrBE,EAAU,EAAQ,8BCLtB34D,EAAO/D,QAAU,EAAjB,4BCAAA,EAAQ64D,KAAO,CACbkE,KAAM,CAACpD,SAoHT,SAAuBC,EAAS30E,EAAI40E,GAClC,IAEIoD,EACAC,EAHA5M,EAAQ,GACR6M,EAAmB,EAIvB,OAEA,SAAevkD,GAEb,GAAa,OAATA,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EACjD,OAAOihD,EAAIjhD,GAQb,GALAghD,EAAQ5F,MAAM,SAASgC,OAAS1F,EAChCsJ,EAAQ5F,MAAM,aACd4F,EAAQ5F,MAAM,YAGD,MAATp7C,EACF,OAAOwkD,EAAgBxkD,GAMzB,OAHAukD,IACAvD,EAAQ5F,MAAM,6BAEPqJ,EAAkBzkD,EAC3B,EAEA,SAASwkD,EAAgBxkD,GAMvB,OAJAghD,EAAQ5F,MAAM,oBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,oBACb6H,GAAgB,EACTK,CACT,CAEA,SAASA,EAAc1kD,GAErB,OAAa,OAATA,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EA4DrD,SAAsBA,GACpB,GAAa,OAATA,EACF,OAAOihD,EAAIjhD,GAYb,OATAghD,EAAQxE,KAAK,YACbwE,EAAQxE,KAAK,aAGbwE,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,cAGNwE,EAAQS,MACbkD,EACA1D,EAEA2D,EAAY5D,EAAS6D,EAAmB,aAAc,GAE1D,CA/EWC,CAAa9kD,IAIR,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GACT+kD,IAGLV,IACFA,OAAgBhtE,EAChBktE,KAIW,MAATvkD,EACKwkD,EAAgBxkD,IAIzBghD,EAAQ5F,MAAM,6BACPqJ,EAAkBzkD,IAC3B,CAEA,SAAS+kD,EAAiB/kD,GAExB,OAAc,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQE,QAAQlhD,GACT+kD,IAGT/D,EAAQxE,KAAK,cACNkI,EAAc1kD,GACvB,CAEA,SAASykD,EAAkBzkD,GAEzB,OAAa,OAATA,GAAiBA,EAAO,GAAc,KAATA,GAAwB,MAATA,GAC9CghD,EAAQxE,KAAK,6BACNkI,EAAc1kD,KAGvBghD,EAAQE,QAAQlhD,GAEA,KAATA,EAAcglD,EAA0BP,EACjD,CAEA,SAASO,EAAwBhlD,GAE/B,OAAa,KAATA,GAAwB,MAATA,GACjBghD,EAAQE,QAAQlhD,GACTykD,GAIFA,EAAkBzkD,EAC3B,CAwBA,SAAS6kD,EAAkB7kD,GAEzB,OAAa,OAATA,GAAiBA,EAAO,GAAc,KAATA,EACxBihD,EAAIjhD,IAGbghD,EAAQ5F,MAAM,qBACP6J,EAAoBjlD,GAC7B,CAEA,SAASilD,EAAoBjlD,GAE3B,OAAa,OAATA,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EAC1CklD,EAAgBllD,IAIX,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GACTmlD,GAII,KAATnlD,GACFghD,EAAQ5F,MAAM,wBACd4F,EAAQE,QAAQlhD,GAChBskD,GAAU,EACV5M,EAAM/pE,KAAK,MACJy3E,GAII,KAATplD,GACFghD,EAAQ5F,MAAM,2BACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,2BACb9E,EAAM/pE,KAAK,QACJ03E,GAII,MAATrlD,GACFghD,EAAQ5F,MAAM,oBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,oBACNyI,GAGFhE,EAAIjhD,EACb,CAEA,SAASmlD,EAAsBnlD,GAE7B,OAAc,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQE,QAAQlhD,GACTmlD,IAGTnE,EAAQxE,KAAK,cACNyI,EAAoBjlD,GAC7B,CAEA,SAASolD,EAAkBplD,GAEzB,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACTolD,IAGTpE,EAAQxE,KAAK,wBAGA,KAATx8C,GACFghD,EAAQ5F,MAAM,2BACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,2BAEb9E,EAAMA,EAAMhxE,OAAS,GACS,SAA5BgxE,EAAMA,EAAMhxE,OAAS,GAAgB,SAAW,QAE3C4+E,GAGFL,EAAoBjlD,GAC7B,CAEA,SAASqlD,EAAmBrlD,GAE1B,OAAa,KAATA,GACFghD,EAAQ5F,MAAM,wBACd4F,EAAQE,QAAQlhD,GAChBskD,GAAU,EACHc,GAIFnE,EAAIjhD,EACb,CAEA,SAASslD,EAAoBtlD,GAE3B,OAAa,OAATA,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EAC1CklD,EAAgBllD,IAIX,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GACTmlD,GAII,MAATnlD,GACFghD,EAAQ5F,MAAM,oBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,oBACNyI,GAGFhE,EAAIjhD,EACb,CAEA,SAASklD,EAAgBllD,GAKvB,OAJAghD,EAAQxE,KAAK,qBAIR8H,GAAWC,IAAqB7M,EAAMhxE,OAI9B,OAATs5B,EACKulD,EAAWvlD,GAGbghD,EAAQS,MAAM+D,EAAqBD,EAAYE,EAA/CzE,CAA8DhhD,GAP5DihD,EAAIjhD,EAQf,CAEA,SAASulD,EAAWvlD,GAElB,OADAghD,EAAQxE,KAAK,SACNnwE,EAAG2zB,EACZ,CAEA,SAASylD,EAAczlD,GAOrB,OALAghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,cAGNoI,EAAY5D,EAAS0E,EAAW,aAAc,EACvD,CAEA,SAASA,EAAU1lD,GAEjB,OADAghD,EAAQ5F,MAAM,aACPuK,EAAa3lD,EACtB,CAEA,SAAS2lD,EAAa3lD,GAIpB,OAHAghD,EAAQ5F,MAAM,YAGD,MAATp7C,EACK4lD,EAAgB5lD,IAGzBghD,EAAQ5F,MAAM,6BAEPyK,EAAkB7lD,GAC3B,CAEA,SAAS4lD,EAAgB5lD,GAKvB,OAHAghD,EAAQ5F,MAAM,oBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,oBACNsJ,CACT,CAEA,SAASA,EAAc9lD,GAErB,OAAa,OAATA,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EAuDrD,SAAsBA,GAGpB,GAFAghD,EAAQxE,KAAK,YAEA,OAATx8C,EACF,OAAO+lD,EAAe/lD,GAGxB,OAAOghD,EAAQS,MACb+D,EACAO,EACAC,EAHKhF,CAILhhD,EACJ,CAlEWimD,CAAajmD,IAIR,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GACTkmD,GAII,MAATlmD,EACK4lD,EAAgB5lD,IAIzBghD,EAAQ5F,MAAM,6BACPyK,EAAkB7lD,GAC3B,CAEA,SAASkmD,EAAiBlmD,GAExB,OAAc,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQE,QAAQlhD,GACTkmD,IAGTlF,EAAQxE,KAAK,cACNsJ,EAAc9lD,GACvB,CAEA,SAAS6lD,EAAkB7lD,GAEzB,OAAa,OAATA,GAAiBA,EAAO,GAAc,KAATA,GAAwB,MAATA,GAC9CghD,EAAQxE,KAAK,6BACNsJ,EAAc9lD,KAGvBghD,EAAQE,QAAQlhD,GAEA,KAATA,EAAcmmD,EAA0BN,EACjD,CAEA,SAASM,EAAwBnmD,GAE/B,OAAa,KAATA,GAAwB,MAATA,GACjBghD,EAAQE,QAAQlhD,GACT6lD,GAIFA,EAAkB7lD,EAC3B,CAgBA,SAAS+lD,EAAe/lD,GAEtB,OADAghD,EAAQxE,KAAK,aACN+I,EAAWvlD,EACpB,CAEA,SAASgmD,EAAkBhmD,GAMzB,OAJAghD,EAAQ5F,MAAM,cACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,cAENoI,EAAY5D,EAAS2E,EAAc,aAAc,EAC1D,CACF,EAvfkCn7E,QAQlC,SAAsB83E,EAAQpF,GAC5B,IAEI7iE,EACA+rE,EACAC,EACAC,EACAlP,EACAh6C,EACAsQ,EACA64C,EACAC,EACAC,EAXA//E,EAAS47E,EAAO57E,OAChB0S,GAAS,EAYb,OAASA,EAAQ1S,GACf2T,EAAQioE,EAAOlpE,GAAO,GAElBktE,IACiB,8BAAfjsE,EAAML,OACRusE,EAAeA,GAAgBntE,EAC/BotE,EAAaptE,GAKG,qBAAfiB,EAAML,MAA8C,aAAfK,EAAML,OAC5CwsE,IAOA94C,EAAO,CACL1zB,KAAM,YACNsZ,OAPF8J,EAAU,CACRpjB,KAAM,eACNsZ,MAAOgvD,EAAOiE,GAAc,GAAGjzD,MAC/BzmB,IAAKy1E,EAAOkE,GAAY,GAAG35E,MAIZymB,MACfzmB,IAAKuwB,EAAQvwB,IACb65E,YAAa,QAGfpE,EAAO50D,OACL64D,EACAC,EAAaD,EAAe,EAC5B,CAAC,QAASnpD,EAAS8/C,GACnB,CAAC,QAASxvC,EAAMwvC,GAChB,CAAC,OAAQxvC,EAAMwvC,GACf,CAAC,OAAQ9/C,EAAS8/C,IAEpB9jE,GAASotE,EAAaD,EAAe,EACrC7/E,EAAS47E,EAAO57E,OAChB6/E,OAAelvE,EACfmvE,OAAanvE,IAKM,SAArBirE,EAAOlpE,GAAO,IACdqtE,GACAA,EAAY,EAAIrtE,IACA,qBAAfiB,EAAML,MACW,aAAfK,EAAML,OACJysE,EAAY,EAAIrtE,GACe,eAA9BkpE,EAAOmE,GAAW,GAAGzsE,SAE3Bo9D,EAAO,CACLp9D,KAAMqsE,EACF,iBACAD,EACA,cACA,YACJ9yD,MAAOgvD,EAAOmE,GAAW,GAAGnzD,MAC5BzmB,IAAKy1E,EAAOlpE,GAAO,GAAGvM,KAExBy1E,EAAO50D,OAAOtU,GAAwB,qBAAfiB,EAAML,KAA8B,EAAI,GAAI,EAAG,CACpE,OACAo9D,EACA8F,IAEFoF,EAAO50D,OAAO+4D,EAAW,EAAG,CAAC,QAASrP,EAAM8F,IAC5C9jE,GAAS,EACT1S,EAAS47E,EAAO57E,OAChB+/E,EAAYrtE,EAAQ,GAGH,aAAfiB,EAAML,OACRssE,EAA6B,UAArBhE,EAAOlpE,GAAO,MAGpBqtE,EAAYrtE,EAAQ,GAIL,sBAAfiB,EAAML,OACRqsE,EAAsC,UAArB/D,EAAOlpE,GAAO,MAG7BqtE,EAAYrtE,EAAQ,GAIL,cAAfiB,EAAML,OACRosE,EAA8B,UAArB9D,EAAOlpE,GAAO,IAI3B,OAAOkpE,CACT,EAlHyDqE,eAAe,IAGxE,IAAI/B,EAAc,EAAQ,OAEtBD,EAAsB,CAAC5D,SAuf3B,SAAqCC,EAAS30E,EAAI40E,GAChD,OAEA,SAAejhD,GAEb,GAAa,KAATA,EACF,OAAOihD,EAAIjhD,GAIb,OADAghD,EAAQ5F,MAAM,mBACPoE,EAASx/C,EAClB,EAEA,SAASw/C,EAASx/C,GAChB,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACTw/C,GAGF9kE,EAAWslB,EACpB,CAEA,SAAStlB,EAAWslB,GAClB,OAAc,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,GAChCghD,EAAQE,QAAQlhD,GACTtlB,GAGI,OAATslB,IAA2B,IAAVA,IAAyB,IAAVA,IAAyB,IAAVA,EAC1C3zB,EAAG2zB,GAGLihD,EAAIjhD,EACb,CACF,EAzhBkEshD,SAAS,GACvEkE,EAAsB,CAACzE,SA0hB3B,SAAqCC,EAAS30E,EAAI40E,GAChD,IAAI3kE,EAAO,EAEX,OAEA,SAAe0jB,GAMb,OAHAghD,EAAQ5F,MAAM,SAEd4F,EAAQE,QAAQlhD,GACTtlB,CACT,EAEA,SAASA,EAAWslB,GAElB,OAAc,IAAVA,GAAwB,KAATA,GACjBghD,EAAQE,QAAQlhD,GAEA,MADhB1jB,EACoBjQ,EAAKqO,GAId,OAATslB,GAAiBA,EAAO,EACnB3zB,EAAG2zB,GAILihD,EAAIjhD,EACb,CACF,EAxjBkEshD,SAAS,0BCP3En2D,EAAO/D,QAAU,EAAjB,8BCAA,IAAIw/D,EAA4B,EAAQ,OACpCC,EAAe,EAAQ,OACvBC,EAAa,EAAQ,OAErBC,EAAgB,CAAChG,SAIrB,SAA+BC,EAAS30E,EAAI40E,GAC1C,IAAI53E,EAAOG,KAEX,OAEA,SAAcw2B,GACZ,GAEW,KAATA,GAEkB,OAAlB32B,EAAKwS,WAGJxS,EAAK29E,mCAEN,OAAO/F,EAAIjhD,GAOb,OAJAghD,EAAQ5F,MAAM,iBACd4F,EAAQ5F,MAAM,uBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,uBACN2F,CACT,EAEA,SAASA,EAAOniD,GAEd,OAAc,IAAVA,GAAwB,KAATA,GACjBghD,EAAQ5F,MAAM,+BACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,+BACNyK,GAII,KAATjnD,GAAwB,MAATA,GACjBghD,EAAQ5F,MAAM,6BACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,6BACNyK,GAGFhG,EAAIjhD,EACb,CAEA,SAASinD,EAAMjnD,GAEb,OAAa,KAATA,GACFghD,EAAQ5F,MAAM,uBACd4F,EAAQE,QAAQlhD,GAChBghD,EAAQxE,KAAK,uBACbwE,EAAQxE,KAAK,iBACNwE,EAAQS,MAAM,CAACV,SAAUmG,GAAoB76E,EAAI40E,IAGnDA,EAAIjhD,EACb,CACF,GAEA,SAASknD,EAAkBlG,EAAS30E,EAAI40E,GACtC,IAAI53E,EAAOG,KAEX,OAAOq9E,EAAa7F,GAEpB,SAAehhD,GACb,OAAO8mD,EAAWz9E,EAAKi5E,OAAQ,eACpB,OAATtiD,IACC4mD,EAA0B5mD,GACzB3zB,EAAG2zB,GACHihD,EAAIjhD,EACV,GARoC,aAStC,CAzEA5Y,EAAQsmB,KAAO,CAAC,GAAIq5C,0BCNpB57D,EAAO/D,QAAU,EAAjB,8BCAA,IAAI+/D,EAAU,EAAQ,OAClBC,EAAW,EAAQ,OACnBrK,EAAgB,EAAQ,OACxBhG,EAAQ,EAAQ,OAChBsQ,EAAW,EAAQ,OAEvBl8D,EAAO/D,QAEP,SAAgB5a,GACd,OAAO26E,EAAQ,CAACC,EAAUrK,EAAcvwE,GAAUuqE,EAAOsQ,GAC3D,sCCRA,IAEI3G,EAFa,EAAQ,MAER4G,CAAW,YAE5Bn8D,EAAO/D,QAAUs5D,sCCJjB,IAEIC,EAFa,EAAQ,MAED2G,CAAW,cAEnCn8D,EAAO/D,QAAUu5D,kCCKjBx1D,EAAO/D,QARP,SAAsB4Y,GACpB,OAGEA,EAAO,IAAe,MAATA,CAEjB,kCCHA7U,EAAO/D,QAJP,SAAmC4Y,GACjC,OAAOA,EAAO,GAAc,KAATA,CACrB,kCCEA7U,EAAO/D,QAJP,SAA4B4Y,GAC1B,OAAOA,GAAQ,CACjB,kCCEA7U,EAAO/D,QAJP,SAAuB4Y,GACrB,OAAiB,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,CACvC,sCCFA,IAAIunD,EAA0B,EAAQ,OAKlCtM,EAJa,EAAQ,MAIAqM,CAAWC,GAEpCp8D,EAAO/D,QAAU6zD,qCCPjB,IAEIC,EAFa,EAAQ,MAEDoM,CAAW,MAEnCn8D,EAAO/D,QAAU8zD,kCCJjB,IAAIzmE,EAAStN,OAAOsN,OAEpB0W,EAAO/D,QAAU3S,kCCFjB,IAAIqE,EAAerR,OAAOqR,aAE1BqS,EAAO/D,QAAUtO,kCCFjB,IAAIumE,EAAM,CAAC,EAAEvqE,eAEbqW,EAAO/D,QAAUi4D,iCCFjB,IAAI3xD,EAAS,GAAGA,OAEhBvC,EAAO/D,QAAUsG,kCCMjBvC,EAAO/D,QAFkB,uxCCNzB,IAAIogE,EAAgB,EAAQ,OA2B5Br8D,EAAO/D,QAzBP,SAAsB45D,EAAS30E,EAAI2N,EAAMgsB,GACvC,IAAI51B,EAAQ41B,EAAMA,EAAM,EAAIyhD,IACxBnrE,EAAO,EACX,OAEA,SAAe0jB,GACb,GAAIwnD,EAAcxnD,GAEhB,OADAghD,EAAQ5F,MAAMphE,GACP4S,EAAOoT,GAGhB,OAAO3zB,EAAG2zB,EACZ,EAEA,SAASpT,EAAOoT,GACd,OAAIwnD,EAAcxnD,IAAS1jB,IAASlM,GAClC4wE,EAAQE,QAAQlhD,GACTpT,IAGTo0D,EAAQxE,KAAKxiE,GACN3N,EAAG2zB,GACZ,CACF,sCCzBA,IAAItS,EAAS,EAAQ,MAmCrBvC,EAAO/D,QA/BP,SAAuB6H,EAAMqE,EAAOsf,EAAQogB,GAC1C,IAEI00B,EAFA76E,EAAMoiB,EAAKvoB,OACXihF,EAAa,EAWjB,GAPEr0D,EADEA,EAAQ,GACDA,EAAQzmB,EAAM,EAAIA,EAAMymB,EAEzBA,EAAQzmB,EAAMA,EAAMymB,EAG9Bsf,EAASA,EAAS,EAAIA,EAAS,EAE3BogB,EAAMtsD,OAAS,KACjBghF,EAAal4E,MAAM2c,KAAK6mC,IACbl/C,QAAQwf,EAAOsf,GAC1BllB,EAAO1mB,MAAMioB,EAAMy4D,QAKnB,IAFI90C,GAAQllB,EAAO1mB,MAAMioB,EAAM,CAACqE,EAAOsf,IAEhC+0C,EAAa30B,EAAMtsD,SACxBghF,EAAa10B,EAAMz5C,MAAMouE,EAAYA,EAAa,MACvC7zE,QAAQwf,EAAO,GAC1B5F,EAAO1mB,MAAMioB,EAAMy4D,GACnBC,GAAc,IACdr0D,GAAS,GAGf,sCCjCA,IAAIszD,EAA4B,EAAQ,OACpC3L,EAAqB,EAAQ,OAC7BC,EAAoB,EAAQ,MAoBhC/vD,EAAO/D,QAdP,SAA2B4Y,GACzB,OACW,OAATA,GACA4mD,EAA0B5mD,IAC1Bk7C,EAAkBl7C,GAEX,EAGLi7C,EAAmBj7C,GACd,OADT,CAGF,sCCpBA,IAAIlrB,EAAiB,EAAQ,OACzBivE,EAAgB,EAAQ,OACxB6D,EAAW,EAAQ,OAavB,SAASlqD,EAAUs8C,EAAKt8C,GACtB,IAAImqD,EACAj2B,EACAC,EACA7xB,EAEJ,IAAK6nD,KAAQnqD,EAIX,IAAKsC,KAHL4xB,EAAO98C,EAAe9L,KAAKgxE,EAAK6N,GAAQ7N,EAAI6N,GAAS7N,EAAI6N,GAAQ,CAAC,EAClEh2B,EAAQn0B,EAAUmqD,GAGhBj2B,EAAK5xB,GAAQikD,EACX2D,EAAS/1B,EAAM7xB,IACflrB,EAAe9L,KAAK4oD,EAAM5xB,GAAQ4xB,EAAK5xB,GAAQ,GAIvD,CAEA,SAASikD,EAAWh1D,EAAM64D,GAIxB,IAHA,IAAI1uE,GAAS,EACTvC,EAAS,KAEJuC,EAAQ6V,EAAKvoB,SACE,UAApBuoB,EAAK7V,GAAO2nB,IAAkB+mD,EAAWjxE,GAAQlJ,KAAKshB,EAAK7V,IAI/D,OADA2qE,EAAc+D,EAAU,EAAG,EAAGjxE,GACvBixE,CACT,CAEA38D,EAAO/D,QA1CP,SAA2BoW,GAIzB,IAHA,IAAIw8C,EAAM,CAAC,EACP5gE,GAAS,IAEJA,EAAQokB,EAAW92B,QAC1Bg3B,EAAUs8C,EAAKx8C,EAAWpkB,IAG5B,OAAO4gE,CACT,kCCLA7uD,EAAO/D,QARP,SAAkBnW,GAChB,OAAiB,OAAVA,QAA4BoG,IAAVpG,EACrB,GACA,WAAYA,EACZA,EACA,CAACA,EACP,sCCNA,IAAI82E,EAAa,EAAQ,OAQzB58D,EAAO/D,QANP,SAAoBk7D,EAAQtoE,GAC1B,IAAIguE,EAAO1F,EAAOA,EAAO57E,OAAS,GAClC,OAAKshF,GAAQA,EAAK,GAAGhuE,OAASA,EACvB+tE,EAAWC,EAAK,GAAGC,YAAYD,EAAK,KADA,CAE7C,sCCNA,IAAIlvE,EAAe,EAAQ,OAU3BqS,EAAO/D,QARP,SAAoB4I,GAClB,OAEA,SAAegQ,GACb,OAAOhQ,EAAM1d,KAAKwG,EAAaknB,GACjC,CACF,kCCSA7U,EAAO/D,QAjBP,SAAoB68D,EAAY3B,EAAQpF,GAKtC,IAJA,IAEI1yE,EAFAue,EAAS,GACT3P,GAAS,IAGJA,EAAQ6qE,EAAWv9E,SAC1B8D,EAAUy5E,EAAW7qE,GAAOwqE,aAEb76D,EAAOzU,QAAQ9J,GAAW,IACvC83E,EAAS93E,EAAQ83E,EAAQpF,GACzBn0D,EAAOpb,KAAKnD,IAIhB,OAAO83E,CACT,sCCfA,IAAI7tE,EAAS,EAAQ,OAMrB0W,EAAO/D,QAJP,SAAiB7e,GACf,OAAOkM,EAAO,CAAC,EAAGlM,EACpB,kCCSA4iB,EAAO/D,QAXP,SAAoB8nB,GAIlB,IAHA,IAAI91B,GAAS,EACTkD,EAAO,IAEFlD,EAAQ81B,EAAOxoC,QACtB4V,GAAiC,kBAAlB4yB,EAAO91B,GAAsB81B,EAAO91B,GAAO1S,OAAS,EAGrE,OAAO4V,CACT,yBCbA,IAAI4rE,EAAU,EAAQ,OAKtB/8D,EAAO/D,QAAU+gE,EACjBh9D,EAAO/D,QAAQhM,MAAQA,EACvB+P,EAAO/D,QAAQjM,QAsGf,SAAkB0I,EAAKrX,GACrB,OAAO47E,EAAiBhtE,EAAMyI,EAAKrX,GAAUA,EAC/C,EAvGA2e,EAAO/D,QAAQghE,iBAAmBA,EAClCj9D,EAAO/D,QAAQihE,eAAiBA,EAOhC,IAAIC,EAAc,IAAIp9E,OAAO,CAG3B,UAOA,0GACAtC,KAAK,KAAM,KASb,SAASwS,EAAOyI,EAAKrX,GAQnB,IAPA,IAKIT,EALAw8E,EAAS,GACT9/E,EAAM,EACN2Q,EAAQ,EACR9F,EAAO,GACPk1E,EAAmBh8E,GAAWA,EAAQiO,WAAa,IAGf,OAAhC1O,EAAMu8E,EAAY7qE,KAAKoG,KAAe,CAC5C,IAAIyU,EAAIvsB,EAAI,GACR08E,EAAU18E,EAAI,GACd2P,EAAS3P,EAAIqN,MAKjB,GAJA9F,GAAQuQ,EAAItK,MAAMH,EAAOsC,GACzBtC,EAAQsC,EAAS4c,EAAE5xB,OAGf+hF,EACFn1E,GAAQm1E,EAAQ,OADlB,CAKA,IAAI13E,EAAO8S,EAAIzK,GACXwT,EAAS7gB,EAAI,GACbyC,EAAOzC,EAAI,GACX28E,EAAU38E,EAAI,GACd48E,EAAQ58E,EAAI,GACZ68E,EAAW78E,EAAI,GACf88E,EAAW98E,EAAI,GAGfuH,IACFi1E,EAAO56E,KAAK2F,GACZA,EAAO,IAGT,IAAIguE,EAAoB,MAAV10D,GAA0B,MAAR7b,GAAgBA,IAAS6b,EACrDkqD,EAAsB,MAAb8R,GAAiC,MAAbA,EAC7BE,EAAwB,MAAbF,GAAiC,MAAbA,EAC/BnuE,EAAY1O,EAAI,IAAMy8E,EACtBxvE,EAAU0vE,GAAWC,EAEzBJ,EAAO56E,KAAK,CACVa,KAAMA,GAAQ/F,IACdmkB,OAAQA,GAAU,GAClBnS,UAAWA,EACXquE,SAAUA,EACVhS,OAAQA,EACRwK,QAASA,EACTuH,WAAYA,EACZ7vE,QAASA,EAAU+vE,EAAY/vE,GAAY6vE,EAAW,KAAO,KAAOG,EAAavuE,GAAa,OA9BhG,CAgCF,CAYA,OATIrB,EAAQyK,EAAInd,SACd4M,GAAQuQ,EAAI0rB,OAAOn2B,IAIjB9F,GACFi1E,EAAO56E,KAAK2F,GAGPi1E,CACT,CAmBA,SAASU,EAA0BplE,GACjC,OAAOqlE,UAAUrlE,GAAKxY,QAAQ,WAAW,SAAU60B,GACjD,MAAO,IAAMA,EAAE7mB,WAAW,GAAGtQ,SAAS,IAAI+jB,aAC5C,GACF,CAiBA,SAASs7D,EAAkBG,EAAQ/7E,GAKjC,IAHA,IAAI2jC,EAAU,IAAI3gC,MAAM+4E,EAAO7hF,QAGtByN,EAAI,EAAGA,EAAIo0E,EAAO7hF,OAAQyN,IACR,kBAAdo0E,EAAOp0E,KAChBg8B,EAAQh8B,GAAK,IAAIjJ,OAAO,OAASq9E,EAAOp0E,GAAG6E,QAAU,KAAMmwE,EAAM38E,KAIrE,OAAO,SAAUtF,EAAKiO,GAMpB,IALA,IAAI7B,EAAO,GACP/J,EAAOrC,GAAO,CAAC,EAEfkiF,GADUj0E,GAAQ,CAAC,GACFk0E,OAASJ,EAA2BtgF,mBAEhDwL,EAAI,EAAGA,EAAIo0E,EAAO7hF,OAAQyN,IAAK,CACtC,IAAIkG,EAAQkuE,EAAOp0E,GAEnB,GAAqB,kBAAVkG,EAAX,CAMA,IACIivE,EADAr4E,EAAQ1H,EAAK8Q,EAAM7L,MAGvB,GAAa,MAATyC,EAAe,CACjB,GAAIoJ,EAAMyuE,SAAU,CAEdzuE,EAAMinE,UACRhuE,GAAQ+G,EAAMuS,QAGhB,QACF,CACE,MAAM,IAAIhF,UAAU,aAAevN,EAAM7L,KAAO,kBAEpD,CAEA,GAAI05E,EAAQj3E,GAAZ,CACE,IAAKoJ,EAAMy8D,OACT,MAAM,IAAIlvD,UAAU,aAAevN,EAAM7L,KAAO,kCAAoCjH,KAAKC,UAAUyJ,GAAS,KAG9G,GAAqB,IAAjBA,EAAMvK,OAAc,CACtB,GAAI2T,EAAMyuE,SACR,SAEA,MAAM,IAAIlhE,UAAU,aAAevN,EAAM7L,KAAO,oBAEpD,CAEA,IAAK,IAAI+N,EAAI,EAAGA,EAAItL,EAAMvK,OAAQ6V,IAAK,CAGrC,GAFA+sE,EAAUF,EAAOn4E,EAAMsL,KAElB4zB,EAAQh8B,GAAG7B,KAAKg3E,GACnB,MAAM,IAAI1hE,UAAU,iBAAmBvN,EAAM7L,KAAO,eAAiB6L,EAAMrB,QAAU,oBAAsBzR,KAAKC,UAAU8hF,GAAW,KAGvIh2E,IAAe,IAANiJ,EAAUlC,EAAMuS,OAASvS,EAAMI,WAAa6uE,CACvD,CAGF,KAxBA,CA4BA,GAFAA,EAAUjvE,EAAMwuE,SA5EbK,UA4EuCj4E,GA5ExB5F,QAAQ,SAAS,SAAU60B,GAC/C,MAAO,IAAMA,EAAE7mB,WAAW,GAAGtQ,SAAS,IAAI+jB,aAC5C,IA0EuDs8D,EAAOn4E,IAErDk/B,EAAQh8B,GAAG7B,KAAKg3E,GACnB,MAAM,IAAI1hE,UAAU,aAAevN,EAAM7L,KAAO,eAAiB6L,EAAMrB,QAAU,oBAAsBswE,EAAU,KAGnHh2E,GAAQ+G,EAAMuS,OAAS08D,CARvB,CA1CA,MAHEh2E,GAAQ+G,CAsDZ,CAEA,OAAO/G,CACT,CACF,CAQA,SAAS01E,EAAcnlE,GACrB,OAAOA,EAAIxY,QAAQ,6BAA8B,OACnD,CAQA,SAAS09E,EAAaJ,GACpB,OAAOA,EAAMt9E,QAAQ,gBAAiB,OACxC,CASA,SAASk+E,EAAYj0B,EAAIluD,GAEvB,OADAkuD,EAAGluD,KAAOA,EACHkuD,CACT,CAQA,SAAS6zB,EAAO38E,GACd,OAAOA,GAAWA,EAAQg9E,UAAY,GAAK,GAC7C,CAuEA,SAASnB,EAAgBE,EAAQnhF,EAAMoF,GAChC07E,EAAQ9gF,KACXoF,EAAkCpF,GAAQoF,EAC1CpF,EAAO,IAUT,IALA,IAAIsrD,GAFJlmD,EAAUA,GAAW,CAAC,GAEDkmD,OACjB7lD,GAAsB,IAAhBL,EAAQK,IACd48E,EAAQ,GAGHt1E,EAAI,EAAGA,EAAIo0E,EAAO7hF,OAAQyN,IAAK,CACtC,IAAIkG,EAAQkuE,EAAOp0E,GAEnB,GAAqB,kBAAVkG,EACTovE,GAAST,EAAa3uE,OACjB,CACL,IAAIuS,EAASo8D,EAAa3uE,EAAMuS,QAC5B87D,EAAU,MAAQruE,EAAMrB,QAAU,IAEtC5R,EAAKuG,KAAK0M,GAENA,EAAMy8D,SACR4R,GAAW,MAAQ97D,EAAS87D,EAAU,MAaxCe,GANIf,EAJAruE,EAAMyuE,SACHzuE,EAAMinE,QAGC10D,EAAS,IAAM87D,EAAU,KAFzB,MAAQ97D,EAAS,IAAM87D,EAAU,MAKnC97D,EAAS,IAAM87D,EAAU,GAIvC,CACF,CAEA,IAAIjuE,EAAYuuE,EAAax8E,EAAQiO,WAAa,KAC9CivE,EAAoBD,EAAMlwE,OAAOkB,EAAU/T,UAAY+T,EAkB3D,OAZKi4C,IACH+2B,GAASC,EAAoBD,EAAMlwE,MAAM,GAAIkB,EAAU/T,QAAU+iF,GAAS,MAAQhvE,EAAY,WAI9FgvE,GADE58E,EACO,IAIA6lD,GAAUg3B,EAAoB,GAAK,MAAQjvE,EAAY,MAG3D8uE,EAAW,IAAIr+E,OAAO,IAAMu+E,EAAON,EAAM38E,IAAWpF,EAC7D,CAcA,SAAS+gF,EAAc70E,EAAMlM,EAAMoF,GAQjC,OAPK07E,EAAQ9gF,KACXoF,EAAkCpF,GAAQoF,EAC1CpF,EAAO,IAGToF,EAAUA,GAAW,CAAC,EAElB8G,aAAgBpI,OAlJtB,SAAyBoI,EAAMlM,GAE7B,IAAIuiF,EAASr2E,EAAKgD,OAAOiM,MAAM,aAE/B,GAAIonE,EACF,IAAK,IAAIx1E,EAAI,EAAGA,EAAIw1E,EAAOjjF,OAAQyN,IACjC/M,EAAKuG,KAAK,CACRa,KAAM2F,EACNyY,OAAQ,KACRnS,UAAW,KACXquE,UAAU,EACVhS,QAAQ,EACRwK,SAAS,EACTuH,UAAU,EACV7vE,QAAS,OAKf,OAAOuwE,EAAWj2E,EAAMlM,EAC1B,CA+HWwiF,CAAet2E,EAA4B,GAGhD40E,EAAQ50E,GAxHd,SAAwBA,EAAMlM,EAAMoF,GAGlC,IAFA,IAAIqgD,EAAQ,GAEH14C,EAAI,EAAGA,EAAIb,EAAK5M,OAAQyN,IAC/B04C,EAAMl/C,KAAKw6E,EAAa70E,EAAKa,GAAI/M,EAAMoF,GAAS8J,QAKlD,OAAOizE,EAFM,IAAIr+E,OAAO,MAAQ2hD,EAAMjkD,KAAK,KAAO,IAAKugF,EAAM38E,IAEnCpF,EAC5B,CA+GWyiF,CAAoC,EAA8B,EAAQr9E,GArGrF,SAAyB8G,EAAMlM,EAAMoF,GACnC,OAAO67E,EAAejtE,EAAM9H,EAAM9G,GAAUpF,EAAMoF,EACpD,CAsGSs9E,CAAqC,EAA8B,EAAQt9E,EACpF,qBCzaA2e,EAAO/D,QAAU5X,MAAMC,SAAW,SAAUsc,GAC1C,MAA8C,kBAAvC5kB,OAAO2B,UAAUC,SAASC,KAAK+iB,EACxC,qCCOA,IAAIg+D,EAAuB,EAAQ,MAEnC,SAASC,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3C7+D,EAAO/D,QAAU,WACf,SAAS+iE,EAAKlwE,EAAOmwE,EAAUC,EAAergF,EAAUsgF,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIr3D,EAAM,IAAIvgB,MACZ,mLAKF,MADAugB,EAAIlkB,KAAO,sBACLkkB,CAPN,CAQF,CAEA,SAAS83D,IACP,OAAOL,CACT,CAHAA,EAAKM,WAAaN,EAMlB,IAAIO,EAAiB,CACnBlxE,MAAO2wE,EACPQ,OAAQR,EACRS,KAAMT,EACN7lE,KAAM6lE,EACNnY,OAAQmY,EACR5hF,OAAQ4hF,EACRnnE,OAAQmnE,EACRrb,OAAQqb,EAERrQ,IAAKqQ,EACLU,QAASL,EACTtvE,QAASivE,EACTW,YAAaX,EACbY,WAAYP,EACZ3wE,KAAMswE,EACNa,SAAUR,EACVS,MAAOT,EACPU,UAAWV,EACXW,MAAOX,EACPY,MAAOZ,EAEPa,eAAgBpB,EAChBC,kBAAmBF,GAKrB,OAFAU,EAAeY,UAAYZ,EAEpBA,CACT,wBC/CEv/D,EAAO/D,QAAU,EAAQ,KAAR,kCCNnB+D,EAAO/D,QAFoB,mFCDd,IAAIgZ,EAAE,EAAQ,OAAiB9H,EAAE,EAAQ,OAAS,SAASzjB,EAAEhO,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEq5B,EAAE,EAAEA,EAAEz5B,UAAUC,OAAOw5B,IAAIp5B,GAAG,WAAW6B,mBAAmBlC,UAAUy5B,IAAI,MAAM,yBAAyBr5B,EAAE,WAAWC,EAAE,gHAAgH,CAC1X,IAAIi+C,EAAE,MAAMr6C,EAAE,MAAMu1B,EAAE,MAAMvjB,EAAE,MAAM07C,EAAE,MAAMmzB,EAAG,MAAMC,EAAG,MAAMvqD,EAAE,MAAMwqD,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MACxI,GAAG,oBAAoBxkE,QAAQA,OAAOmiC,IAAI,CAAC,IAAI2O,EAAE9wC,OAAOmiC,IAAI5E,EAAEuT,EAAE,gBAAgB5tD,EAAE4tD,EAAE,kBAAkBr4B,EAAEq4B,EAAE,qBAAqB57C,EAAE47C,EAAE,kBAAkBF,EAAEE,EAAE,kBAAkBizB,EAAGjzB,EAAE,iBAAiBkzB,EAAGlzB,EAAE,qBAAqBr3B,EAAEq3B,EAAE,kBAAkBmzB,EAAGnzB,EAAE,uBAAuBozB,EAAGpzB,EAAE,cAAcqzB,EAAGrzB,EAAE,cAAcszB,EAAGtzB,EAAE,eAAeuzB,EAAGvzB,EAAE,qBAAqBwzB,EAAGxzB,EAAE,eAAeyzB,EAAGzzB,EAAE,0BAA0B0zB,EAAG1zB,EAAE,sBAAsB,CAC/a,SAASC,EAAE1xD,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE8zE,aAAa9zE,EAAE2H,MAAM,KAAK,GAAG,kBAAkB3H,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK6D,EAAE,MAAM,WAAW,KAAKq6C,EAAE,MAAM,SAAS,KAAKroC,EAAE,MAAM,WAAW,KAAKujB,EAAE,MAAM,aAAa,KAAKgB,EAAE,MAAM,WAAW,KAAKwqD,EAAG,MAAM,eAAe,GAAG,kBAAkB5kF,EAAE,OAAOA,EAAEolF,UAAU,KAAKV,EAAG,OAAO1kF,EAAE8zE,aAAa,WAAW,YAAY,KAAKviB,EAAE,OAAOvxD,EAAEqlF,SAASvR,aAAa,WAAW,YAAY,KAAK6Q,EAAG,IAAI1kF,EAAED,EAAEyf,OAAmC,OAA5Bxf,EAAEA,EAAE6zE,aAAa7zE,EAAE0H,MAAM,GAAU3H,EAAE8zE,cACvf,KAAK7zE,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK4kF,EAAG,OAAOnzB,EAAE1xD,EAAEmT,MAAM,KAAK4xE,EAAG,OAAOrzB,EAAE1xD,EAAEslF,SAAS,KAAKR,EAAG7kF,EAAED,EAAEulF,SAASvlF,EAAEA,EAAEwlF,MAAM,IAAI,OAAO9zB,EAAE1xD,EAAEC,GAAG,CAAC,MAAMo5B,GAAG,EAAE,OAAO,IAAI,CAAC,IAAIosD,EAAGh0D,EAAEi0D,mDAAmDC,EAAG,CAAC,EAAE,SAAS9zB,EAAE7xD,EAAEC,GAAG,IAAI,IAAIo5B,EAAiB,EAAfr5B,EAAE4lF,aAAevsD,GAAGp5B,EAAEo5B,IAAIr5B,EAAEq5B,GAAGr5B,EAAE6lF,eAAe7lF,EAAE4lF,aAAavsD,EAAE,CAAC,CACtU,IAAI,IAAIy4B,EAAE,IAAIg0B,YAAY,IAAI/zB,EAAE,EAAE,GAAGA,EAAEA,IAAID,EAAEC,GAAGA,EAAE,EAAED,EAAE,IAAI,EAAE,IAAIi0B,EAAG,8VAA8VC,EAAG1lF,OAAO2B,UAAUgM,eAAeg4E,EAAG,CAAC,EAAEC,EAAG,CAAC,EAC9c,SAASC,EAAGnmF,GAAG,QAAGgmF,EAAG7jF,KAAK+jF,EAAGlmF,KAAegmF,EAAG7jF,KAAK8jF,EAAGjmF,KAAe+lF,EAAGt6E,KAAKzL,GAAUkmF,EAAGlmF,IAAG,GAAGimF,EAAGjmF,IAAG,GAAS,GAAE,CACsG,SAASy5B,EAAEz5B,EAAEC,EAAEo5B,EAAEC,EAAER,EAAE7b,EAAEpP,GAAGlL,KAAKyjF,gBAAgB,IAAInmF,GAAG,IAAIA,GAAG,IAAIA,EAAE0C,KAAK0jF,cAAc/sD,EAAE32B,KAAK2jF,mBAAmBxtD,EAAEn2B,KAAK4jF,gBAAgBltD,EAAE12B,KAAK6jF,aAAaxmF,EAAE2C,KAAKwQ,KAAKlT,EAAE0C,KAAK8jF,YAAYxpE,EAAEta,KAAK+jF,kBAAkB74E,CAAC,CAAC,IAAIokD,EAAE,CAAC,EACpb,uIAAuI7wD,MAAM,KAAKZ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAeQ,SAAQ,SAASR,GAAG,IAAIC,EAAED,EAAE,GAAGiyD,EAAEhyD,GAAG,IAAIw5B,EAAEx5B,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAASQ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAEwb,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBhb,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OoB,MAAM,KAAKZ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAEwb,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYhb,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAYQ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQQ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAASQ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAEwb,cAAc,MAAK,GAAG,EAAG,IAAG,IAAImrE,EAAG,gBAAgB,SAASC,EAAG5mF,GAAG,OAAOA,EAAE,GAAGimB,aAAa,CACxZ,0jCAA0jC7kB,MAAM,KAAKZ,SAAQ,SAASR,GAAG,IAAIC,EAAED,EAAEwE,QAAQmiF,EACzmCC,GAAI30B,EAAEhyD,GAAG,IAAIw5B,EAAEx5B,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2EoB,MAAM,KAAKZ,SAAQ,SAASR,GAAG,IAAIC,EAAED,EAAEwE,QAAQmiF,EAAGC,GAAI30B,EAAEhyD,GAAG,IAAIw5B,EAAEx5B,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAaQ,SAAQ,SAASR,GAAG,IAAIC,EAAED,EAAEwE,QAAQmiF,EAAGC,GAAI30B,EAAEhyD,GAAG,IAAIw5B,EAAEx5B,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAeQ,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAEwb,cAAc,MAAK,GAAG,EAAG,IACldy2C,EAAE40B,UAAU,IAAIptD,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcj5B,SAAQ,SAASR,GAAGiyD,EAAEjyD,GAAG,IAAIy5B,EAAEz5B,EAAE,GAAE,EAAGA,EAAEwb,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIsrE,EAAG,UACtM,SAAStsD,EAAEx6B,GAAG,GAAG,mBAAmBA,GAAG,kBAAkBA,EAAE,MAAM,GAAGA,EAAEA,EAAE,GAAGA,EAAE,IAAIC,EAAE6mF,EAAGlwE,KAAK5W,GAAG,GAAGC,EAAE,CAAC,IAASq5B,EAALD,EAAE,GAAKP,EAAE,EAAE,IAAIQ,EAAEr5B,EAAEsS,MAAM+mB,EAAEt5B,EAAEH,OAAOy5B,IAAI,CAAC,OAAOt5B,EAAEwS,WAAW8mB,IAAI,KAAK,GAAGr5B,EAAE,SAAS,MAAM,KAAK,GAAGA,EAAE,QAAQ,MAAM,KAAK,GAAGA,EAAE,SAAS,MAAM,KAAK,GAAGA,EAAE,OAAO,MAAM,KAAK,GAAGA,EAAE,OAAO,MAAM,QAAQ,SAAS64B,IAAIQ,IAAID,GAAGr5B,EAAEkmB,UAAU4S,EAAEQ,IAAIR,EAAEQ,EAAE,EAAED,GAAGp5B,CAAC,CAACD,EAAE84B,IAAIQ,EAAED,EAAEr5B,EAAEkmB,UAAU4S,EAAEQ,GAAGD,CAAC,CAAC,OAAOr5B,CAAC,CAC/X,SAAS+mF,EAAG/mF,EAAEC,GAAG,IAAwCq5B,EAApCD,EAAE44B,EAAEhkD,eAAejO,GAAGiyD,EAAEjyD,GAAG,KAAsH,OAAxGs5B,EAAE,UAAUt5B,KAAEs5B,EAAE,OAAOD,EAAE,IAAIA,EAAElmB,KAAO,EAAEnT,EAAEH,SAAS,MAAMG,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,KAAYs5B,GARzK,SAAYt5B,EAAEC,EAAEo5B,EAAEC,GAAG,GAAG,OAAOr5B,GAAG,qBAAqBA,GAD4D,SAAYD,EAAEC,EAAEo5B,EAAEC,GAAG,GAAG,OAAOD,GAAG,IAAIA,EAAElmB,KAAK,OAAM,EAAG,cAAclT,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGq5B,IAAc,OAAOD,GAASA,EAAE+sD,gBAAmD,WAAnCpmF,EAAEA,EAAEwb,cAAc9I,MAAM,EAAE,KAAsB,UAAU1S,GAAE,QAAQ,OAAM,EAAG,CACtTgnF,CAAGhnF,EAAEC,EAAEo5B,EAAEC,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOD,EAAE,OAAOA,EAAElmB,MAAM,KAAK,EAAE,OAAOlT,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO+rB,MAAM/rB,GAAG,KAAK,EAAE,OAAO+rB,MAAM/rB,IAAI,EAAEA,EAAE,OAAM,CAAE,CAQ3CiwC,CAAGlwC,EAAEC,EAAEo5B,GAAE,GAAU,GAAM,OAAOA,GAAGr5B,EAAEq5B,EAAEgtD,cAA0B,KAAZ/sD,EAAED,EAAElmB,OAAe,IAAImmB,IAAG,IAAKr5B,EAASD,EAAE,OAAMq5B,EAAEotD,cAAcxmF,EAAE,GAAGA,GAAUD,EAAE,KAAMw6B,EAAEv6B,GAAG,MAAYkmF,EAAGnmF,GAAGA,EAAE,KAAMw6B,EAAEv6B,GAAG,IAAK,EAAE,CACnW,IAAIgnF,EAAG,oBAAoB3mF,OAAOqzE,GAAGrzE,OAAOqzE,GADwT,SAAY3zE,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,CAAC,EACjXi5C,EAAE,KAAK7e,EAAE,KAAK63B,EAAE,KAAK53B,GAAE,EAAG63B,GAAE,EAAGC,EAAE,KAAKC,EAAE,EAAE,SAASC,IAAI,GAAG,OAAOpZ,EAAE,MAAM5tC,MAAM0C,EAAE,MAAM,OAAOkrC,CAAC,CAAC,SAASguC,IAAK,GAAG,EAAE70B,EAAE,MAAM/mD,MAAM0C,EAAE,MAAM,MAAM,CAACm5E,cAAc,KAAKn+E,MAAM,KAAKkB,KAAK,KAAK,CAAC,SAASk9E,IAAqG,OAAhG,OAAOl1B,EAAE,OAAO73B,GAAGC,GAAE,EAAGD,EAAE63B,EAAEg1B,MAAO5sD,GAAE,EAAG43B,EAAE73B,GAAG,OAAO63B,EAAEhoD,MAAMowB,GAAE,EAAG43B,EAAEA,EAAEhoD,KAAKg9E,MAAO5sD,GAAE,EAAG43B,EAAEA,EAAEhoD,MAAagoD,CAAC,CAAC,SAASm1B,EAAGrnF,EAAEC,EAAEo5B,EAAEC,GAAG,KAAK64B,GAAGA,GAAE,EAAGE,GAAG,EAAEH,EAAE,KAAK74B,EAAEr5B,EAAEC,EAAEq5B,GAAQ,OAALguD,IAAYjuD,CAAC,CAAC,SAASiuD,IAAKpuC,EAAE,KAAKiZ,GAAE,EAAG93B,EAAE,KAAKg4B,EAAE,EAAEH,EAAEE,EAAE,IAAI,CACpd,SAASm1B,GAAGvnF,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,CAAC,CAAC,SAASunF,GAAGxnF,EAAEC,EAAEo5B,GAAgB,GAAb6f,EAAEoZ,IAAIJ,EAAEk1B,IAAQ9sD,EAAE,CAAC,IAAIhB,EAAE44B,EAAElpD,MAAmB,GAAb/I,EAAEq5B,EAAEmuD,SAAY,OAAOr1B,QAAe,KAAX/4B,EAAE+4B,EAAE97C,IAAIgjB,IAAe,CAAC84B,EAAErvC,OAAOuW,GAAGA,EAAE44B,EAAEi1B,cAAc,GAAG7tD,EAAEt5B,EAAEs5B,EAAED,EAAEvxB,QAAQuxB,EAAEA,EAAEnvB,WAAW,OAAOmvB,GAAqB,OAAlB64B,EAAEi1B,cAAc7tD,EAAQ,CAACA,EAAEr5B,EAAE,CAAC,MAAM,CAACiyD,EAAEi1B,cAAclnF,EAAE,CAA6I,OAA5ID,EAAEA,IAAIunF,GAAG,oBAAoBtnF,EAAEA,IAAIA,OAAE,IAASo5B,EAAEA,EAAEp5B,GAAGA,EAAEiyD,EAAEi1B,cAAcnnF,EAAsCA,GAApCA,EAAEkyD,EAAElpD,MAAM,CAAC2kC,KAAK,KAAK85C,SAAS,OAAUA,SAASC,GAAG5mD,KAAK,KAAKoY,EAAEl5C,GAAS,CAACkyD,EAAEi1B,cAAcnnF,EAAE,CAClc,SAAS2nF,GAAG3nF,EAAEC,GAAoC,GAAjCi5C,EAAEoZ,IAAWryD,OAAE,IAASA,EAAE,KAAKA,EAAK,QAA9BiyD,EAAEk1B,KAAqC,CAAC,IAAI/tD,EAAE64B,EAAEi1B,cAAc,GAAG,OAAO9tD,GAAG,OAAOp5B,EAAE,CAAC,IAAIq5B,EAAED,EAAE,GAAGr5B,EAAE,GAAG,OAAOs5B,EAAEA,GAAE,MAAO,CAAC,IAAI,IAAIR,EAAE,EAAEA,EAAEQ,EAAEz5B,QAAQi5B,EAAE74B,EAAEJ,OAAOi5B,IAAI,IAAImuD,EAAGhnF,EAAE64B,GAAGQ,EAAER,IAAI,CAACQ,GAAE,EAAG,MAAMt5B,CAAC,CAACs5B,GAAE,CAAE,CAAC,GAAGA,EAAE,OAAOD,EAAE,EAAE,CAAC,CAA6B,OAA5Br5B,EAAEA,IAAIkyD,EAAEi1B,cAAc,CAACnnF,EAAEC,GAAUD,CAAC,CAAC,SAAS0nF,GAAG1nF,EAAEC,EAAEo5B,GAAG,KAAK,GAAGg5B,GAAG,MAAM/mD,MAAM0C,EAAE,MAAM,GAAGhO,IAAIk5C,EAAE,GAAGiZ,GAAE,EAAGnyD,EAAE,CAAC8H,OAAOuxB,EAAEnvB,KAAK,MAAM,OAAOkoD,IAAIA,EAAE,IAAIhwC,UAAgB,KAAXiX,EAAE+4B,EAAE97C,IAAIrW,IAAcmyD,EAAE77C,IAAItW,EAAED,OAAO,CAAC,IAAIC,EAAEo5B,EAAE,OAAOp5B,EAAEiK,MAAMjK,EAAEA,EAAEiK,KAAKjK,EAAEiK,KAAKlK,CAAC,CAAC,CAAC,SAAS4nF,KAAK,CAChe,IAAIr1B,GAAE,KAAKs1B,GAAG,CAACC,YAAY,SAAS9nF,GAAG,IAAIC,EAAEsyD,GAAEw1B,SAAgB,OAAPl2B,EAAE7xD,EAAEC,GAAUD,EAAEC,EAAE,EAAE2d,WAAW,SAAS5d,GAAGsyD,IAAI,IAAIryD,EAAEsyD,GAAEw1B,SAAgB,OAAPl2B,EAAE7xD,EAAEC,GAAUD,EAAEC,EAAE,EAAE+nF,QAAQL,GAAGM,WAAWT,GAAGU,OAAO,SAASloF,GAAGk5C,EAAEoZ,IAAW,IAAIryD,GAAXiyD,EAAEk1B,KAAaD,cAAc,OAAO,OAAOlnF,GAAGD,EAAE,CAACge,QAAQhe,GAAGkyD,EAAEi1B,cAAcnnF,GAAGC,CAAC,EAAEkoF,SAAS,SAASnoF,GAAG,OAAOwnF,GAAGD,GAAGvnF,EAAE,EAAEooF,gBAAgB,WAAW,EAAEC,YAAY,SAASroF,EAAEC,GAAG,OAAO0nF,IAAG,WAAW,OAAO3nF,CAAC,GAAEC,EAAE,EAAEqoF,oBAAoBV,GAAGW,UAAUX,GAAGY,cAAcZ,GAAGa,iBAAiB,SAASzoF,GAAO,OAAJsyD,IAAWtyD,CAAC,EAAE0oF,cAAc,WAC9f,OADygBp2B,IACngB,CAAC,SAAStyD,GAAGA,GAAG,GAAE,EAAG,EAAE2oF,oBAAoB,WAAW,OAAOp2B,GAAEq2B,kBAAkB,IAAI,MAAMr2B,GAAEs2B,YAAY3mF,SAAS,GAAG,EAAE4mF,iBAAiB,SAAS9oF,EAAEC,GAAO,OAAJqyD,IAAWryD,EAAED,EAAE+oF,QAAQ,GAAGC,GAAS,+BAA6G,SAASC,GAAGjpF,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CACvd,IAAIkpF,GAAG,CAACC,MAAK,EAAG9rC,MAAK,EAAG+rC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAG16E,OAAM,EAAG26E,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGn6E,QAAO,EAAGo6E,OAAM,EAAGC,KAAI,GAAIC,GAAGxwD,EAAE,CAACywD,UAAS,GAAId,IAAI12B,GAAE,CAACp6C,yBAAwB,EAAGE,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAG8wE,UAAS,EAAG7wE,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAC7fC,iBAAgB,EAAGK,YAAW,EAAG4L,WAAU,EAAG3L,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGE,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIivE,GAAG,CAAC,SAAS,KAAK,MAAM,KAAK5pF,OAAOC,KAAKiyD,IAAGhyD,SAAQ,SAASR,GAAGkqF,GAAG1pF,SAAQ,SAASP,GAAGA,EAAEA,EAAED,EAAEgmB,OAAO,GAAGC,cAAcjmB,EAAEkmB,UAAU,GAAGssC,GAAEvyD,GAAGuyD,GAAExyD,EAAE,GAAE,IAC3Z,IAAImqF,GAAG,WAAWC,GAAG,OAAO33B,GAAEhhC,EAAE44D,SAASC,QAAQC,GAAG9E,EAAG+E,uBAAuBC,GAAG,CAACC,SAAQ,EAAGC,KAAI,EAAGC,UAAS,GAAIC,GAAG,8BAA8BC,GAAG,CAAC,EAAEC,GAAG,CAAC,EAAuH,IAAIC,GAAG1qF,OAAO2B,UAAUgM,eAAeg9E,GAAG,CAAC53E,SAAS,KAAK63E,wBAAwB,KAAKC,+BAA+B,KAAKC,yBAAyB,MAAM,SAASC,GAAGrrF,EAAEC,GAAG,QAAG,IAASD,EAAE,MAAMsL,MAAM0C,EAAE,IAAI0jD,EAAEzxD,IAAI,aAAc,CACjf,SAASqrF,GAAGtrF,EAAEC,EAAEo5B,GAAG,SAASC,EAAEA,EAAErc,GAAG,IAAIvY,EAAEuY,EAAEhb,WAAWgb,EAAEhb,UAAUspF,iBAAiBzyD,EApBoP,SAAY94B,EAAEC,EAAEo5B,EAAEC,GAAG,GAAGA,GAAoB,kBAAhBA,EAAEt5B,EAAEwrF,cAAiC,OAAOlyD,EAAG,OAAOu4B,EAAEv4B,EAAED,GAAGC,EAAED,GAAG,GAAGr5B,EAAEA,EAAEyrF,aAAa,CAAM,IAAI,IAAI3yD,KAAbO,EAAE,CAAC,EAAer5B,EAAEq5B,EAAEP,GAAG74B,EAAE64B,GAAG74B,EAAEo5B,CAAC,MAAMp5B,EAAE0lF,EAAG,OAAO1lF,CAAC,CAoBzZyrF,CAAGzuE,EAAEhd,EAAEo5B,EAAE30B,GAAGmJ,EAAE,GAAGvL,GAAE,EAAGyL,EAAE,CAAC49E,UAAU,WAAW,OAAM,CAAE,EAAEC,mBAAmB,WAAW,GAAG,OAAO/9E,EAAE,OAAO,IAAI,EAAEg+E,oBAAoB,SAAS7rF,EAAEq5B,GAAG/2B,GAAE,EAAGuL,EAAE,CAACwrB,EAAE,EAAEyyD,gBAAgB,SAAS9rF,EAAEq5B,GAAG,GAAG,OAAOxrB,EAAE,OAAO,KAAKA,EAAE/G,KAAKuyB,EAAE,GAAG,GAAG30B,GAAG,GAAGA,EAAE,IAAIuY,EAAEqc,EAAElmB,MAAM0lB,EAAE/qB,GAAG,oBAAoBkP,EAAE8uE,yBAAyB,CAAC,IAAItrF,EAAEwc,EAAE8uE,yBAAyB5pF,KAAK,KAAKm3B,EAAElmB,MAAM1O,EAAE+pC,OAAO,MAAMhuC,IAAIiE,EAAE+pC,MAAMlV,EAAE,CAAC,EAAE70B,EAAE+pC,MAAMhuC,GAAG,OAAO,GAAGy4C,EAAE,CAAC,EAAEx0C,EAAEuY,EAAEqc,EAAElmB,MACrf0lB,EAAE/qB,GAAuB,OAApBrJ,EAAE2iF,EAAGpqE,EAAEqc,EAAElmB,MAAM1O,EAAEo0B,KAAY,MAAMp0B,EAAE+a,OAAoB,YAAR4rE,GAAJrrF,EAAE0E,EAAOuY,GAAyF,GAA/EvY,EAAE0O,MAAMkmB,EAAElmB,MAAM1O,EAAE2xE,QAAQv9C,EAAEp0B,EAAEsnF,QAAQj+E,OAAY,KAAVA,EAAErJ,EAAE+pC,SAAmB/pC,EAAE+pC,MAAM1gC,EAAE,MAAS,oBAAoBrJ,EAAEunF,2BAA2B,oBAAoBvnF,EAAEwnF,mBAAmB,GAAG,oBAAoBxnF,EAAEwnF,oBAAoB,oBAAoBjvE,EAAE8uE,0BAA0BrnF,EAAEwnF,qBAAqB,oBAAoBxnF,EAAEunF,2BAA2B,oBAAoBhvE,EAAE8uE,0BAA0BrnF,EAAEunF,4BAA4Bp+E,EAAEhO,OAAO,CAACkO,EAAEF,EAAE,IAAI+lB,EACtftxB,EAAc,GAAZuL,EAAE,KAAKvL,GAAE,EAAMsxB,GAAG,IAAI7lB,EAAElO,OAAO6E,EAAE+pC,MAAM1gC,EAAE,OAAO,CAACtN,EAAEmzB,EAAE7lB,EAAE,GAAGrJ,EAAE+pC,MAAM,IAAImjB,GAAE,EAAG,IAAIh+B,EAAEA,EAAE,EAAE,EAAEA,EAAE7lB,EAAElO,OAAO+zB,IAAI,CAAC,IAAIje,EAAE5H,EAAE6lB,GAAmD,OAAhDje,EAAE,oBAAoBA,EAAEA,EAAExT,KAAKuC,EAAEjE,EAAE64B,EAAElmB,MAAM0lB,GAAGnjB,KAAYi8C,GAAGA,GAAE,EAAGnxD,EAAE84B,EAAE,CAAC,EAAE94B,EAAEkV,IAAI4jB,EAAE94B,EAAEkV,GAAG,CAACjR,EAAE+pC,MAAMhuC,CAAC,CAAC,MAAMoN,EAAE,KAA0B,GAARw9E,GAAbrrF,EAAE0E,EAAE+a,SAAcxC,GAAM,oBAAoBvY,EAAEynF,iBAAwC,kBAAtB7yD,EAAErc,EAAEmvE,mBAAuC,CAAC,IAAIx2E,EAAElR,EAAEynF,kBAAkB,IAAI,IAAI76B,KAAK17C,EAAE,KAAK07C,KAAKh4B,GAAG,MAAMhuB,MAAM0C,EAAE,IAAI0jD,EAAEz0C,IAAI,UAAUq0C,GAAI,CAAC17C,IAAI3V,EAAEs5B,EAAE,CAAC,EAAEt5B,EAAE2V,GAAG,CAAC,KAAK6b,EAAE46D,eAAersF,IAAI,CAAC,IAAI84B,EAAE94B,EAAEid,EAAE6b,EAAE3lB,KAAK,GAAG,oBACpe8J,EAAE,MAAMqc,EAAER,EAAE7b,EAAE,CAAC,MAAM,CAAC+C,MAAMhgB,EAAEq2E,QAAQp2E,EAAE,CAC/C,IAAIqsF,GAAG,WAAW,SAAStsF,EAAEA,EAAEC,EAAE64B,GAAGrH,EAAE46D,eAAersF,GAAGA,EAAEmT,OAAOtP,EAAE7D,EAAE,CAACA,IAAIA,EAAEA,EAAEoT,MAAMC,SAASrT,EAAEyxB,EAAE46D,eAAersF,GAAG,CAACA,GAAGyyD,GAAEzyD,IAAIA,EAAEyyD,GAAEzyD,GAAGA,EAAE,CAACmT,KAAK,KAAKo5E,aAAavD,GAAQ31E,SAASrT,EAAEwsF,WAAW,EAAEnW,QAAQsP,EAAG8G,OAAO,IAAI,IAAIpzD,EAAEy4B,EAAE,GAAG,GAAG,IAAIz4B,EAAE,CAAC,IAAIC,EAAEw4B,EAAiBxvD,EAAE,GAAjB+2B,EAAEC,EAAEz5B,QAAiB,KAAK,OAAOyC,GAAG,MAAMgJ,MAAM0C,EAAE,MAAM,IAAItJ,EAAE,IAAIohF,YAAYxjF,GAAyB,IAAtBoC,EAAE6R,IAAI+iB,IAAGw4B,EAAEptD,GAAI,GAAG20B,EAAE,EAAMC,EAAED,EAAEC,EAAEh3B,EAAE,EAAEg3B,IAAIw4B,EAAEx4B,GAAGA,EAAE,EAAEw4B,EAAExvD,EAAE,GAAG,CAAC,MAAMwvD,EAAE,GAAGA,EAAEz4B,GAAG12B,KAAKolF,SAAS1uD,EAAE12B,KAAKpB,MAAM,CAACvB,GAAG2C,KAAK+pF,WAAU,EAAG/pF,KAAKgqF,mBAAmB,KAAKhqF,KAAKiqF,qBAAoB,EAClfjqF,KAAKkqF,iBAAiB5sF,EAAE0C,KAAKmqF,cAAc,EAAEnqF,KAAKoqF,cAAc,EAAEpqF,KAAKqqF,aAAa,GAAGrqF,KAAKsqF,kBAAkB,GAAGtqF,KAAKkmF,SAAS,EAAElmF,KAAKimF,iBAAiB9vD,GAAGA,EAAE8vD,kBAAkB,EAAE,CAAC,IAAI3oF,EAAED,EAAEiC,UAYP,OAZiBhC,EAAEitF,QAAQ,WAAW,IAAIvqF,KAAK+pF,UAAU,CAAC/pF,KAAK+pF,WAAU,EAAG/pF,KAAKwqF,iBAAiB,IAAIntF,EAAE2C,KAAKolF,SAASj2B,EAAE9xD,GAAG8xD,EAAE,GAAGA,EAAE,GAAG9xD,CAAC,CAAC,EAAEC,EAAEmtF,aAAa,SAASptF,GAAG,IAAIC,IAAI0C,KAAKoqF,aAAa1zD,EAAEr5B,EAAEmT,KAAKkyE,SAASpoE,EAAEta,KAAKolF,SAASl2B,EAAEx4B,EAAEpc,GAAG,IAAIpP,EAAEwrB,EAAEpc,GAAGta,KAAKqqF,aAAa/sF,GAAGo5B,EAAE12B,KAAKsqF,kBAAkBhtF,GAAG4N,EAAEwrB,EAAEpc,GAAGjd,EAAEoT,MAAMhJ,KAAK,EAAEnK,EAAEotF,YAC7e,WAAW,IAAIrtF,EAAE2C,KAAKoqF,aAAa9sF,EAAE0C,KAAKqqF,aAAahtF,GAAG84B,EAAEn2B,KAAKsqF,kBAAkBjtF,GAAG2C,KAAKqqF,aAAahtF,GAAG,KAAK2C,KAAKsqF,kBAAkBjtF,GAAG,KAAK2C,KAAKoqF,eAAe9sF,EAAE0C,KAAKolF,UAAUjvD,CAAC,EAAE74B,EAAEktF,eAAe,WAAW,IAAI,IAAIntF,EAAE2C,KAAKoqF,aAAa,GAAG/sF,EAAEA,IAAI2C,KAAKqqF,aAAahtF,GAAG2C,KAAKolF,UAAUplF,KAAKsqF,kBAAkBjtF,EAAE,EAAEC,EAAEqtF,KAAK,SAASttF,GAAG,GAAG2C,KAAK+pF,UAAU,OAAO,KAAK,IAAIzsF,EAAEsyD,GAAEA,GAAE5vD,KAAK,IAAI02B,EAAEkxD,GAAGvsE,QAAQusE,GAAGvsE,QAAQ6pE,GAAG,IAAI,IAAI,IAAI5qE,EAAE,CAAC,IAAIpP,GAAE,EAAGoP,EAAE,GAAGpd,OAAOG,GAAG,CAAC,GAAG,IAAI2C,KAAKpB,MAAM1B,OAAO,CAAC8C,KAAK+pF,WAAU,EAAG,IAAIpqF,EAAEK,KAAKolF,SACrfj2B,EAAExvD,GAAGwvD,EAAE,GAAGA,EAAE,GAAGxvD,EAAE,KAAK,CAAC,IAAIoC,EAAE/B,KAAKpB,MAAMoB,KAAKpB,MAAM1B,OAAO,GAAG,GAAGgO,GAAGnJ,EAAE8nF,YAAY9nF,EAAE2O,SAASxT,OAAO,CAAC,IAAImyD,EAAEttD,EAAE+nF,OAA8D,GAAvD,KAAKz6B,IAAIrvD,KAAKiqF,qBAAoB,GAAIjqF,KAAKpB,MAAMyL,MAAS,WAAWtI,EAAEyO,KAAKxQ,KAAKgqF,mBAAmB,UAAU,GAAG,MAAMjoF,EAAEyO,MAAM,MAAMzO,EAAEyO,KAAKA,MAAMzO,EAAEyO,KAAKA,KAAKiyE,WAAW7zB,EAAE5uD,KAAK0qF,YAAY3oF,EAAEyO,WAAW,GAAGzO,EAAEyO,OAAOinB,EAAE,CAACz3B,KAAKmqF,gBAAgB,IAAIn7B,EAAE10C,EAAEjQ,MAAM,GAAGa,EAAE,CAACA,GAAE,EAAG,IAAI2jD,EAAE9sD,EAAE6oF,cAAc,IAAI/7B,EAAE,MAAMlmD,MAAM0C,EAAE,MAAMrL,KAAKpB,MAAMuF,KAAK0qD,GAAGv0C,EAAEta,KAAKmqF,gBAAgB,kBAAkB,QAAQ,CAAM7vE,EAAEta,KAAKmqF,gBAC1fn7B,CAAC,CAAC10C,EAAEta,KAAKmqF,gBAAgB96B,CAAC,KAAK,CAAC,IAAIjkD,EAAErJ,EAAE2O,SAAS3O,EAAE8nF,cAAc/rF,EAAE,GAAG,IAAIA,GAAGkC,KAAK8c,OAAO1R,EAAErJ,EAAE2xE,QAAQ3xE,EAAE6nF,aAAa,CAAC,MAAM34D,GAAG,GAAG,MAAMA,GAAG,oBAAoBA,EAAEhuB,KAAK,MAAM0F,MAAM0C,EAAE,MAAM,MAAM4lB,CAAE,CAAU3W,EAAEpd,QAAQ8C,KAAKmqF,eAAe7vE,EAAEnW,KAAK,IAAImW,EAAEta,KAAKmqF,gBAAgBrsF,CAAC,CAAC,CAAC,OAAOwc,EAAE,EAAE,CAAC,QAAQstE,GAAGvsE,QAAQqb,EAAEk5B,GAAEtyD,EAAEqnF,GAAI,CAAC,EAAErnF,EAAEwf,OAAO,SAASzf,EAAEC,EAAE64B,GAAG,GAAG,kBAAkB94B,GAAG,kBAAkBA,EAAU,MAAG,MAAV84B,EAAE,GAAG94B,GAAkB,GAAM2C,KAAKkqF,iBAAwBryD,EAAE1B,GAAMn2B,KAAKiqF,oBAA0B,iBAAiBpyD,EAAE1B,IACpfn2B,KAAKiqF,qBAAoB,EAAUpyD,EAAE1B,IAAiD,GAAtB94B,GAAxBC,EAAEqrF,GAAGtrF,EAAEC,EAAE0C,KAAKolF,WAAc/nE,MAAM/f,EAAEA,EAAEo2E,QAAW,OAAOr2E,IAAG,IAAKA,EAAE,MAAM,GAAG,IAAIyxB,EAAE46D,eAAersF,GAAG,CAAC,GAAG,MAAMA,GAAG,MAAMA,EAAEolF,SAAS,CAAc,IAAbtsD,EAAE94B,EAAEolF,YAAgBlnC,EAAE,MAAM5yC,MAAM0C,EAAE,MAAM,MAAM1C,MAAM0C,EAAE,IAAI8qB,EAAE52B,YAAa,CAAgG,OAA/FlC,EAAEyyD,GAAEzyD,GAAG2C,KAAKpB,MAAMuF,KAAK,CAACqM,KAAK,KAAKo5E,aAAazzD,EAAEzlB,SAASrT,EAAEwsF,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,KAAW,EAAE,CAAC,IAAIpzD,EAAEr5B,EAAEmT,KAAK,GAAG,kBAAkBkmB,EAAE,OAAO12B,KAAK6qF,UAAUxtF,EAAEC,EAAE64B,GAAG,OAAOO,GAAG,KAAK8rD,EAAG,KAAKD,EAAG,KAAK9rD,EAAE,KAAKvjB,EAAE,KAAK+uE,EAAG,KAAK/gF,EAAE,OAAO7D,EAAEyyD,GAAEzyD,EAAEoT,MAAMC,UAAU1Q,KAAKpB,MAAMuF,KAAK,CAACqM,KAAK,KACzgBo5E,aAAazzD,EAAEzlB,SAASrT,EAAEwsF,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,KAAK,GAAG,KAAKryD,EAAE,MAAM9uB,MAAM0C,EAAE,MAAM,KAAKi3E,EAAG,MAAM35E,MAAM0C,EAAE,MAAO,GAAG,kBAAkBqrB,GAAG,OAAOA,EAAE,OAAOA,EAAE+rD,UAAU,KAAKT,EAAGzrC,EAAE,CAAC,EAAE,IAAI5f,EAAED,EAAE5Z,OAAOzf,EAAEoT,MAAMpT,EAAE2d,KAAmI,OAA9H2b,EAAE+tD,EAAGhuD,EAAE5Z,OAAOzf,EAAEoT,MAAMkmB,EAAEt5B,EAAE2d,KAAK2b,EAAEm5B,GAAEn5B,GAAG32B,KAAKpB,MAAMuF,KAAK,CAACqM,KAAK,KAAKo5E,aAAazzD,EAAEzlB,SAASimB,EAAEkzD,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,KAAW,GAAG,KAAK5H,EAAG,OAAO7kF,EAAE,CAACyxB,EAAEvgB,cAAcmoB,EAAElmB,KAAKomB,EAAE,CAAC5b,IAAI3d,EAAE2d,KAAK3d,EAAEoT,SAASzQ,KAAKpB,MAAMuF,KAAK,CAACqM,KAAK,KAAKo5E,aAAazzD,EAAEzlB,SAASrT,EAAEwsF,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,KACnf,GAAG,KAAKl7B,EAAE,OAA6Bz4B,EAAE,CAAC3lB,KAAKnT,EAAEusF,aAAazzD,EAAEzlB,SAA/CgmB,EAAEo5B,GAAEzyD,EAAEoT,MAAMC,UAA8Cm5E,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,IAAI9pF,KAAKyqF,aAAaptF,GAAG2C,KAAKpB,MAAMuF,KAAKgyB,GAAG,GAAG,KAAK4rD,EAAGrrD,EAAEr5B,EAAEmT,KAAKmmB,EAAEt5B,EAAEoT,MAAM,IAAI9Q,EAAEK,KAAKolF,SAA2H,OAAlHl2B,EAAEx4B,EAAE/2B,GAAG+2B,EAAEo5B,GAAEn5B,EAAEjmB,SAASgmB,EAAE/2B,KAAKK,KAAKpB,MAAMuF,KAAK,CAACqM,KAAKnT,EAAEusF,aAAazzD,EAAEzlB,SAASgmB,EAAEmzD,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAO,KAAW,GAAG,KAAKzH,EAAG,MAAM15E,MAAM0C,EAAE,MAAM,KAAK82E,EAAG,OAA0BzrD,GAAVC,GAATD,EAAEr5B,EAAEmT,MAASqyE,OAAUnsD,EAAEksD,UAAUvlF,EAAE,CAACyxB,EAAEvgB,cAAcmoB,EAAEE,EAAE,CAAC5b,IAAI3d,EAAE2d,KAAK3d,EAAEoT,SAASzQ,KAAKpB,MAAMuF,KAAK,CAACqM,KAAK,KAAKo5E,aAAazzD,EAAEzlB,SAASrT,EAAEwsF,WAAW,EAC9fnW,QAAQp2E,EAAEwsF,OAAO,KAAK,GAAG,MAAMnhF,MAAM0C,EAAE,IAAI,MAAMqrB,EAAEA,SAASA,EAAE,IAAK,EAAEp5B,EAAEutF,UAAU,SAASxtF,EAAEC,EAAE64B,GAAG,IAAIO,EAAEr5B,EAAEmT,KAAKqI,cAAiC,GAAnBsd,IAAIkwD,IAASC,GAAG5vD,IAAOyxD,GAAG78E,eAAeorB,GAAG,CAAC,IAAIwxD,GAAGp/E,KAAK4tB,GAAG,MAAM/tB,MAAM0C,EAAE,GAAGqrB,IAAIyxD,GAAGzxD,IAAG,CAAE,CAAC,IAAIC,EAAEt5B,EAAEoT,MAAM,GAAG,UAAUimB,EAAEC,EAAEC,EAAE,CAACpmB,UAAK,GAAQmmB,EAAE,CAACm0D,oBAAe,EAAOvoC,kBAAa,EAAO96C,MAAM,MAAMkvB,EAAElvB,MAAMkvB,EAAElvB,MAAMkvB,EAAE4rB,aAAa4yB,QAAQ,MAAMx+C,EAAEw+C,QAAQx+C,EAAEw+C,QAAQx+C,EAAEm0D,sBAAsB,GAAG,aAAap0D,EAAE,CAAC,IAAI/2B,EAAEg3B,EAAElvB,MAAM,GAAG,MAAM9H,EAAE,CAACA,EAAEg3B,EAAE4rB,aAAa,IAAIxgD,EAAE40B,EAAEjmB,SAAS,GAAG,MAAM3O,EAAE,CAAC,GAAG,MACrfpC,EAAE,MAAMgJ,MAAM0C,EAAE,KAAK,GAAGrF,MAAMC,QAAQlE,GAAG,CAAC,KAAK,GAAGA,EAAE7E,QAAQ,MAAMyL,MAAM0C,EAAE,KAAKtJ,EAAEA,EAAE,EAAE,CAACpC,EAAE,GAAGoC,CAAC,CAAC,MAAMpC,IAAIA,EAAE,GAAG,CAACg3B,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAClvB,WAAM,EAAOiJ,SAAS,GAAG/Q,GAAG,MAAM,GAAG,WAAW+2B,EAAE12B,KAAKgqF,mBAAmB,MAAMrzD,EAAElvB,MAAMkvB,EAAElvB,MAAMkvB,EAAE4rB,aAAa5rB,EAAEC,EAAE,CAAC,EAAED,EAAE,CAAClvB,WAAM,SAAc,GAAG,WAAWivB,EAAE,CAAC30B,EAAE/B,KAAKgqF,mBAAmB,IAAI36B,EAdrJ,SAAYhyD,GAAG,QAAG,IAASA,GAAG,OAAOA,EAAE,OAAOA,EAAE,IAAIC,EAAE,GAAsD,OAAnDwxB,EAAE44D,SAAS7pF,QAAQR,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,EAAE,IAAUC,CAAC,CAcmCytF,CAAGp0D,EAAEjmB,UAAU,GAAG,MAAM3O,EAAE,CAAC,IAAIitD,EAAE,MAAMr4B,EAAElvB,MAAMkvB,EAAElvB,MAAM,GAAG4nD,EAAO,GAAL1vD,GAAE,EAAMqG,MAAMC,QAAQlE,IAAG,IAAI,IAAI8sD,EAAE,EAAEA,EAAE9sD,EAAE7E,OAAO2xD,IAAK,GAAG,GAAG9sD,EAAE8sD,KAAKG,EAAE,CAACrvD,GAAE,EAAG,KAAK,OAAOA,EAAE,GAAGoC,IAAIitD,EAAEr4B,EAAEC,EAAE,CAACo0D,cAAS,EAAOt6E,cAAS,GAChfimB,EAAE,CAACq0D,SAASrrF,EAAE+Q,SAAS2+C,GAAG,CAAC,CAAC,GAAG1vD,EAAEg3B,EAAE,CAAC,GAAGywD,GAAG1wD,KAAK,MAAM/2B,EAAE+Q,UAAU,MAAM/Q,EAAE4oF,yBAAyB,MAAM5/E,MAAM0C,EAAE,IAAIqrB,IAAI,GAAG,MAAM/2B,EAAE4oF,wBAAwB,CAAC,GAAG,MAAM5oF,EAAE+Q,SAAS,MAAM/H,MAAM0C,EAAE,KAAK,GAAK,kBAAkB1L,EAAE4oF,2BAAyB,WAAW5oF,EAAE4oF,yBAAyB,MAAM5/E,MAAM0C,EAAE,IAAK,CAAC,GAAG,MAAM1L,EAAEklB,OAAO,kBAAkBllB,EAAEklB,MAAM,MAAMlc,MAAM0C,EAAE,IAAK,CAAC1L,EAAEg3B,EAAE50B,EAAE/B,KAAKkqF,iBAAiB76B,EAAE,IAAIrvD,KAAKpB,MAAM1B,OAAO8xD,EAAE,IAAI3xD,EAAEmT,KAAKlT,EAAE,IAAI,IAAIo5B,EAAE5rB,QAAQ,KAAK+jD,EAAE,kBAAkBlvD,EAAEqxE,QAAQ,OAAOt6C,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgBm4B,GAC1pB,EAAG,MAAMvxD,EAAE,QAAQuxD,GAAE,EAAG,IAAIhgC,KAAKlvB,EAAE,GAAG0oF,GAAG7oF,KAAKG,EAAEkvB,GAAG,CAAC,IAAIzjB,EAAEzL,EAAEkvB,GAAG,GAAG,MAAMzjB,EAAE,CAAC,GAAG,UAAUyjB,EAAE,CAAC,IAAI/wB,OAAE,EAAOmzB,EAAE,GAAGg+B,EAAE,GAAG,IAAInxD,KAAKsN,EAAE,GAAGA,EAAEE,eAAexN,GAAG,CAAC,IAAIkV,EAAE,IAAIlV,EAAEgN,QAAQ,MAAMmI,EAAE7H,EAAEtN,GAAG,GAAG,MAAMmV,EAAE,CAAC,GAAGD,EAAE,IAAI27C,EAAE7wD,OAAO,GAAG6wD,EAAE7wD,EAAEsqF,GAAG98E,eAAeqjD,GAAGA,EAAEy5B,GAAGz5B,OAAO,CAAC,IAAIs8B,EAAGt8B,EAAE9sD,QAAQ2lF,GAAG,OAAO3uE,cAAchX,QAAQ4lF,GAAG,QAAQ94B,EAAEy5B,GAAGz5B,GAAGs8B,CAAE,CAACh6D,GAAGg+B,EAAEN,EAAE,IAAIM,EAAEnxD,EAA2HmzB,GAAzHje,EAAE,MAAMC,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGD,GAAG,kBAAkBC,GAAG,IAAIA,GAAG48C,GAAEvkD,eAAe2jD,IAAIY,GAAEZ,IAAI,GAAGh8C,GAAG1D,OAAO0D,EAAE,KAAUg8C,EAAE,GAAG,CAAC,CAAC7jD,EAAE6lB,GAAG,IAAI,CAACnzB,EAAE,KAAK+wD,EAAEy5B,GAAGh9E,eAAeujB,KACxf/wB,EAAE0lF,EAAN1lF,EAAE+wB,IAAW,MAAMzjB,EAAEtN,EAAE,KAAM+5B,EAAEzsB,GAAG,IAAK,IAAItN,EAAEsmF,EAAGv1D,EAAEzjB,GAAGtN,IAAIkxD,GAAG,IAAIlxD,EAAE,CAAC,CAACiE,GAAGstD,IAAIL,GAAG,sBAAsB,IAAIngC,EAAEmgC,EAAErvD,EAAE,GAAG4mF,GAAGj7E,eAAeorB,GAAG7H,GAAG,MAAMA,GAAG,IAAIlvB,EAAE,KAAKtC,EAAEmT,KAAK,KAAKnT,EAAE,CAA6B,GAAG,OAA/B0E,EAAE40B,EAAE4xD,0BAAoC,GAAG,MAAMxmF,EAAEmpF,OAAO,CAACnpF,EAAEA,EAAEmpF,OAAO,MAAM7tF,CAAC,OAAO,GAAgB,kBAAb0E,EAAE40B,EAAEjmB,WAA8B,kBAAkB3O,EAAE,CAACA,EAAE81B,EAAE91B,GAAG,MAAM1E,CAAC,CAAC0E,EAAE,IAAI,CACxK,OADyK,MAAMA,GAAG40B,EAAE,GAAGmxD,GAAGx8E,eAAeorB,IAAI,OAAO30B,EAAEshB,OAAO,KAAKwL,GAAG,MAAMA,GAAG9sB,GAAG40B,EAAEm5B,GAAEn5B,EAAEjmB,UAAUrT,EAAEA,EAAEmT,KAAK2lB,EAAE,MAAMA,GAAG,iCAAiCA,EAAEmwD,GAAGjpF,GAAG,+BACte84B,GAAG,kBAAkB94B,EAAE,+BAA+B84B,EAAEn2B,KAAKpB,MAAMuF,KAAK,CAACylF,aAAazzD,EAAE3lB,KAAKkmB,EAAEhmB,SAASimB,EAAEkzD,WAAW,EAAEnW,QAAQp2E,EAAEwsF,OAAOnqF,IAAIK,KAAKiqF,qBAAoB,EAAUp7D,CAAC,EAASxxB,CAAC,CAbnL,GAauLugB,EAAQutE,mBAAmB,WAAW,MAAMxiF,MAAM0C,EAAE,KAAM,EAAEuS,EAAQwtE,qBAAqB,SAAS/tF,EAAEC,GAAGD,EAAE,IAAIssF,GAAGtsF,GAAE,EAAGC,GAAG,IAAI,OAAOD,EAAEstF,KAAK1M,IAAS,CAAC,QAAQ5gF,EAAEktF,SAAS,CAAC,EAAE3sE,EAAQytE,yBAAyB,WAAW,MAAM1iF,MAAM0C,EAAE,KAAM,EAAEuS,EAAQ0tE,eAAe,SAASjuF,EAAEC,GAAGD,EAAE,IAAIssF,GAAGtsF,GAAE,EAAGC,GAAG,IAAI,OAAOD,EAAEstF,KAAK1M,IAAS,CAAC,QAAQ5gF,EAAEktF,SAAS,CAAC,EAChhB3sE,EAAQ7Z,QAAQ,6CC/Cd4d,EAAO/D,QAAU,EAAjB,0BCDF,IAAI2tE,EAAoC,qBAAZC,QACxBC,EAAwB,oBAARhsE,IAChBisE,EAAwB,oBAARpkD,IAChBqkD,EAAwC,oBAAhB1lB,eAAgCA,YAAY2lB,OAIxE,SAASC,EAAMxuF,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAE6gB,cAAgB5gB,EAAE4gB,YAAa,OAAO,EAE5C,IAAIhhB,EAAQyN,EAAG/M,EA6BXkuF,EA5BJ,GAAI9lF,MAAMC,QAAQ5I,GAAI,CAEpB,IADAH,EAASG,EAAEH,SACGI,EAAEJ,OAAQ,OAAO,EAC/B,IAAKyN,EAAIzN,EAAgB,IAARyN,KACf,IAAKkhF,EAAMxuF,EAAEsN,GAAIrN,EAAEqN,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAI8gF,GAAWpuF,aAAaoiB,KAASniB,aAAamiB,IAAM,CACtD,GAAIpiB,EAAEyV,OAASxV,EAAEwV,KAAM,OAAO,EAE9B,IADAg5E,EAAKzuF,EAAEi1C,YACE3nC,EAAImhF,EAAGvkF,QAAQC,UACjBlK,EAAEyiB,IAAIpV,EAAElD,MAAM,IAAK,OAAO,EAEjC,IADAqkF,EAAKzuF,EAAEi1C,YACE3nC,EAAImhF,EAAGvkF,QAAQC,UACjBqkF,EAAMlhF,EAAElD,MAAM,GAAInK,EAAEqW,IAAIhJ,EAAElD,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAIikF,GAAWruF,aAAaiqC,KAAShqC,aAAagqC,IAAM,CACtD,GAAIjqC,EAAEyV,OAASxV,EAAEwV,KAAM,OAAO,EAE9B,IADAg5E,EAAKzuF,EAAEi1C,YACE3nC,EAAImhF,EAAGvkF,QAAQC,UACjBlK,EAAEyiB,IAAIpV,EAAElD,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIkkF,GAAkB1lB,YAAY2lB,OAAOvuF,IAAM4oE,YAAY2lB,OAAOtuF,GAAI,CAEpE,IADAJ,EAASG,EAAEH,SACGI,EAAEJ,OAAQ,OAAO,EAC/B,IAAKyN,EAAIzN,EAAgB,IAARyN,KACf,GAAItN,EAAEsN,KAAOrN,EAAEqN,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAItN,EAAE6gB,cAAgBxc,OAAQ,OAAOrE,EAAEyP,SAAWxP,EAAEwP,QAAUzP,EAAEsiF,QAAUriF,EAAEqiF,MAK5E,GAAItiF,EAAE28B,UAAYr8B,OAAO2B,UAAU06B,SAAgC,oBAAd38B,EAAE28B,SAA+C,oBAAd18B,EAAE08B,QAAwB,OAAO38B,EAAE28B,YAAc18B,EAAE08B,UAC3I,GAAI38B,EAAEkC,WAAa5B,OAAO2B,UAAUC,UAAkC,oBAAflC,EAAEkC,UAAiD,oBAAfjC,EAAEiC,SAAyB,OAAOlC,EAAEkC,aAAejC,EAAEiC,WAKhJ,IADArC,GADAU,EAAOD,OAAOC,KAAKP,IACLH,UACCS,OAAOC,KAAKN,GAAGJ,OAAQ,OAAO,EAE7C,IAAKyN,EAAIzN,EAAgB,IAARyN,KACf,IAAKhN,OAAO2B,UAAUgM,eAAe9L,KAAKlC,EAAGM,EAAK+M,IAAK,OAAO,EAKhE,GAAI4gF,GAAkBluF,aAAamuF,QAAS,OAAO,EAGnD,IAAK7gF,EAAIzN,EAAgB,IAARyN,KACf,IAAiB,WAAZ/M,EAAK+M,IAA+B,QAAZ/M,EAAK+M,IAA4B,QAAZ/M,EAAK+M,KAAiBtN,EAAEolF,YAarEoJ,EAAMxuF,EAAEO,EAAK+M,IAAKrN,EAAEM,EAAK+M,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAOtN,IAAMA,GAAKC,IAAMA,CAC1B,CAGAqkB,EAAO/D,QAAU,SAAiBvgB,EAAGC,GACnC,IACE,OAAOuuF,EAAMxuF,EAAGC,EAClB,CAAE,MAAOc,GACP,IAAMA,EAAMC,SAAW,IAAI0a,MAAM,oBAO/B,OADAvV,QAAQC,KAAK,mDACN,EAGT,MAAMrF,CACR,CACF,oCCjIa,IAA4bq4B,EAAxbn5B,EAAE0gB,OAAOmiC,IAAI,iBAAiBzpB,EAAE1Y,OAAOmiC,IAAI,gBAAgBxpB,EAAE3Y,OAAOmiC,IAAI,kBAAkBp+C,EAAEic,OAAOmiC,IAAI,qBAAqBhqB,EAAEnY,OAAOmiC,IAAI,kBAAkBxgD,EAAEqe,OAAOmiC,IAAI,kBAAkB7lC,EAAE0D,OAAOmiC,IAAI,iBAAiBriD,EAAEkgB,OAAOmiC,IAAI,wBAAwBvpB,EAAE5Y,OAAOmiC,IAAI,qBAAqBrxB,EAAE9Q,OAAOmiC,IAAI,kBAAkB/0C,EAAE4S,OAAOmiC,IAAI,uBAAuB90C,EAAE2S,OAAOmiC,IAAI,cAAc5E,EAAEv9B,OAAOmiC,IAAI,cAAcj1C,EAAE8S,OAAOmiC,IAAI,mBACtb,SAASlvB,EAAE5zB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAI6D,EAAE7D,EAAEolF,SAAS,OAAOvhF,GAAG,KAAK5D,EAAE,OAAOD,EAAEA,EAAEmT,MAAQ,KAAKmmB,EAAE,KAAKR,EAAE,KAAKp0B,EAAE,KAAK+sB,EAAE,KAAK1jB,EAAE,OAAO/N,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEolF,UAAY,KAAK3kF,EAAE,KAAKwc,EAAE,KAAKsc,EAAE,KAAK2kB,EAAE,KAAKlwC,EAAE,KAAK1L,EAAE,OAAOtC,EAAE,QAAQ,OAAO6D,GAAG,KAAKw1B,EAAE,OAAOx1B,EAAE,CAAC,CADkMu1B,EAAEzY,OAAOmiC,IAAI,0BAC9MviC,EAAQmuE,gBAAgBzxE,EAAEsD,EAAQouE,gBAAgBrsF,EAAEie,EAAQ4tE,QAAQluF,EAAEsgB,EAAQquE,WAAWr1D,EAAEhZ,EAAQsuE,SAASv1D,EAAE/Y,EAAQuuE,KAAK5wC,EAAE39B,EAAQwuE,KAAK/gF,EAAEuS,EAAQyuE,OAAO31D,EAAE9Y,EAAQ0uE,SAASn2D,EAAEvY,EAAQ2uE,WAAWxqF,EAAE6b,EAAQ4uE,SAAS19D,EAChelR,EAAQ6uE,aAAarhF,EAAEwS,EAAQ8uE,YAAY,WAAW,OAAM,CAAE,EAAE9uE,EAAQ+uE,iBAAiB,WAAW,OAAM,CAAE,EAAE/uE,EAAQgvE,kBAAkB,SAASvvF,GAAG,OAAO4zB,EAAE5zB,KAAKid,CAAC,EAAEsD,EAAQivE,kBAAkB,SAASxvF,GAAG,OAAO4zB,EAAE5zB,KAAKsC,CAAC,EAAEie,EAAQkvE,UAAU,SAASzvF,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEolF,WAAWnlF,CAAC,EAAEsgB,EAAQmvE,aAAa,SAAS1vF,GAAG,OAAO4zB,EAAE5zB,KAAKu5B,CAAC,EAAEhZ,EAAQovE,WAAW,SAAS3vF,GAAG,OAAO4zB,EAAE5zB,KAAKs5B,CAAC,EAAE/Y,EAAQqvE,OAAO,SAAS5vF,GAAG,OAAO4zB,EAAE5zB,KAAKk+C,CAAC,EAAE39B,EAAQsvE,OAAO,SAAS7vF,GAAG,OAAO4zB,EAAE5zB,KAAKgO,CAAC,EACveuS,EAAQuvE,SAAS,SAAS9vF,GAAG,OAAO4zB,EAAE5zB,KAAKq5B,CAAC,EAAE9Y,EAAQwvE,WAAW,SAAS/vF,GAAG,OAAO4zB,EAAE5zB,KAAK84B,CAAC,EAAEvY,EAAQyvE,aAAa,SAAShwF,GAAG,OAAO4zB,EAAE5zB,KAAK0E,CAAC,EAAE6b,EAAQ0vE,WAAW,SAASjwF,GAAG,OAAO4zB,EAAE5zB,KAAKyxB,CAAC,EAAElR,EAAQ2vE,eAAe,SAASlwF,GAAG,OAAO4zB,EAAE5zB,KAAK+N,CAAC,EAClPwS,EAAQ4vE,mBAAmB,SAASnwF,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIs5B,GAAGt5B,IAAI84B,GAAG94B,IAAI0E,GAAG1E,IAAIyxB,GAAGzxB,IAAI+N,GAAG/N,IAAI6N,GAAG,kBAAkB7N,GAAG,OAAOA,IAAIA,EAAEolF,WAAWlnC,GAAGl+C,EAAEolF,WAAWp3E,GAAGhO,EAAEolF,WAAW9iF,GAAGtC,EAAEolF,WAAWnoE,GAAGjd,EAAEolF,WAAW7rD,GAAGv5B,EAAEolF,WAAWhsD,QAAG,IAASp5B,EAAEowF,YAAkB,EAAE7vE,EAAQ8vE,OAAOz8D,sCCV/StP,EAAO/D,QAAU,EAAjB,mNCFS+vE,EAAiC,gBAAoB,MCIhE,IAAIC,EAJJ,SAA0Bp8E,GACxBA,GACF,EAQWq8E,EAAW,WACpB,OAAOD,CACT,ECuDA,IAAIE,EAAgB,CAClBC,OAAQ,WAAmB,EAC3Bp6E,IAAK,WACH,MAAO,EACT,GAEK,SAASq6E,EAAmBxnC,EAAOynC,GACxC,IAAI1sE,EACAgrB,EAAYuhD,EAWhB,SAASI,IACHC,EAAaC,eACfD,EAAaC,eAEjB,CAMA,SAASC,IACF9sE,IACHA,EAAc0sE,EAAYA,EAAUK,aAAaJ,GAAuB1nC,EAAMllC,UAAU4sE,GACxF3hD,EAhGN,WACE,IAAIqhD,EAAQC,IACRU,EAAQ,KACRvjD,EAAO,KACX,MAAO,CACLnlC,MAAO,WACL0oF,EAAQ,KACRvjD,EAAO,IACT,EACA+iD,OAAQ,WACNH,GAAM,WAGJ,IAFA,IAAI9gD,EAAWyhD,EAERzhD,GACLA,EAASt7B,WACTs7B,EAAWA,EAASvlC,IAExB,GACF,EACAoM,IAAK,WAIH,IAHA,IAAI44B,EAAY,GACZO,EAAWyhD,EAERzhD,GACLP,EAAUpoC,KAAK2oC,GACfA,EAAWA,EAASvlC,KAGtB,OAAOglC,CACT,EACAjrB,UAAW,SAAmB9P,GAC5B,IAAIg9E,GAAe,EACf1hD,EAAW9B,EAAO,CACpBx5B,SAAUA,EACVjK,KAAM,KACNoF,KAAMq+B,GASR,OANI8B,EAASngC,KACXmgC,EAASngC,KAAKpF,KAAOulC,EAErByhD,EAAQzhD,EAGH,WACA0hD,GAA0B,OAAVD,IACrBC,GAAe,EAEX1hD,EAASvlC,KACXulC,EAASvlC,KAAKoF,KAAOmgC,EAASngC,KAE9Bq+B,EAAO8B,EAASngC,KAGdmgC,EAASngC,KACXmgC,EAASngC,KAAKpF,KAAOulC,EAASvlC,KAE9BgnF,EAAQzhD,EAASvlC,KAErB,CACF,EAEJ,CAkCkBknF,GAEhB,CAWA,IAAIN,EAAe,CACjBG,aApCF,SAAsBxhD,GAEpB,OADAuhD,IACO9hD,EAAUjrB,UAAUwrB,EAC7B,EAkCE4hD,iBAhCF,WACEniD,EAAUwhD,QACZ,EA+BEG,oBAAqBA,EACrBM,aAxBF,WACE,OAAOx7C,QAAQzxB,EACjB,EAuBE8sE,aAAcA,EACdM,eAfF,WACMptE,IACFA,IACAA,OAAc1T,EACd0+B,EAAU1mC,QACV0mC,EAAYuhD,EAEhB,EASEc,aAAc,WACZ,OAAOriD,CACT,GAEF,OAAO4hD,CACT,CCpHO,IAAIU,EAA8C,qBAAXjvF,QAAqD,qBAApBA,OAAO0O,UAAqE,qBAAlC1O,OAAO0O,SAASC,cAAgC,EAAAk3E,gBAAkB,EAAAG,UC2C3L,MA9CA,SAAkBxqE,GAChB,IAAIorC,EAAQprC,EAAKorC,MACbktB,EAAUt4D,EAAKs4D,QACfhjE,EAAW0K,EAAK1K,SAChBo+E,GAAe,IAAAzJ,UAAQ,WACzB,IAAI8I,EAAeH,EAAmBxnC,GACtC,MAAO,CACLA,MAAOA,EACP2nC,aAAcA,EAElB,GAAG,CAAC3nC,IACAuoC,GAAgB,IAAA1J,UAAQ,WAC1B,OAAO7+B,EAAMwoC,UACf,GAAG,CAACxoC,IACJqoC,GAA0B,WACxB,IAAIV,EAAeW,EAAaX,aAQhC,OAPAA,EAAaC,cAAgBD,EAAaO,iBAC1CP,EAAaE,eAETU,IAAkBvoC,EAAMwoC,YAC1Bb,EAAaO,mBAGR,WACLP,EAAaQ,iBACbR,EAAaC,cAAgB,IAC/B,CACF,GAAG,CAACU,EAAcC,IAClB,IAAIE,EAAUvb,GAAWia,EACzB,OAAoB,gBAAoBsB,EAAQp0E,SAAU,CACxDpT,MAAOqnF,GACNp+E,EACL,sDCpCIwM,EAAY,CAAC,iBAAkB,aAAc,kBAAmB,2BAA4B,WAAY,UAAW,aAAc,WACjIgyE,EAAa,CAAC,0BAQdC,EAAc,GACdC,EAAwB,CAAC,KAAM,MAUnC,SAASC,EAAyBvjD,EAAO3mC,GACvC,IAAImqF,EAAcxjD,EAAM,GACxB,MAAO,CAAC3mC,EAAOoqF,QAASD,EAAc,EACxC,CAEA,SAASE,EAAkCC,EAAYC,EAAYC,GACjEd,GAA0B,WACxB,OAAOY,EAAWjyF,WAAM,EAAQkyF,EAClC,GAAGC,EACL,CAEA,SAASC,EAAoBC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BxB,GAE3ImB,EAAiBx0E,QAAU20E,EAC3BF,EAAez0E,QAAU40E,EACzBF,EAAkB10E,SAAU,EAExB60E,EAA0B70E,UAC5B60E,EAA0B70E,QAAU,KACpCqzE,IAEJ,CAEA,SAASyB,EAAiBC,EAA0B5pC,EAAO2nC,EAAckC,EAAoBR,EAAkBC,EAAgBC,EAAmBG,EAA2BxB,EAAkB4B,GAE7L,GAAKF,EAAL,CAEA,IAAIG,GAAiB,EACjBC,EAAkB,KAElBC,EAAkB,WACpB,IAAIF,EAAJ,CAMA,IACIG,EAAetyF,EADfuyF,EAAmBnqC,EAAMwoC,WAG7B,IAGE0B,EAAgBL,EAAmBM,EAAkBd,EAAiBx0E,QACxE,CAAE,MAAOtZ,GACP3D,EAAQ2D,EACRyuF,EAAkBzuF,CACpB,CAEK3D,IACHoyF,EAAkB,MAIhBE,IAAkBZ,EAAez0E,QAC9B00E,EAAkB10E,SACrBqzE,KAOFoB,EAAez0E,QAAUq1E,EACzBR,EAA0B70E,QAAUq1E,EACpCX,EAAkB10E,SAAU,EAE5Bi1E,EAA6B,CAC3B9/E,KAAM,gBACN++E,QAAS,CACPnxF,MAAOA,KAnCb,CAuCF,EAGA+vF,EAAaC,cAAgBqC,EAC7BtC,EAAaE,eAGboC,IAiBA,OAfyB,WAKvB,GAJAF,GAAiB,EACjBpC,EAAaQ,iBACbR,EAAaC,cAAgB,KAEzBoC,EAMF,MAAMA,CAEV,CAvEqC,CA0EvC,CAEA,IAAII,EAAmB,WACrB,MAAO,CAAC,KAAM,EAChB,EAEe,SAASC,EAexBC,EACA11E,QACe,IAATA,IACFA,EAAO,CAAC,GAGV,IAAI21E,EAAQ31E,EACR41E,EAAuBD,EAAME,eAC7BA,OAA0C,IAAzBD,EAAkC,SAAUhsF,GAC/D,MAAO,mBAAqBA,EAAO,GACrC,EAAIgsF,EACAE,EAAmBH,EAAMzuB,WACzBA,OAAkC,IAArB4uB,EAA8B,kBAAoBA,EAC/DC,EAAwBJ,EAAMK,gBAC9BA,OAA4C,IAA1BD,OAAmCtjF,EAAYsjF,EACjEE,EAAwBN,EAAMX,yBAC9BA,OAAqD,IAA1BiB,GAA0CA,EACrEC,EAAiBP,EAAMQ,SACvBA,OAA8B,IAAnBD,EAA4B,QAAUA,EAGjDE,GAFgBT,EAAMU,QAEHV,EAAMh2E,YACzBA,OAAkC,IAArBy2E,GAAsCA,EACnDE,EAAgBX,EAAMrd,QACtBA,OAA4B,IAAlBge,EAA2B/D,EAAoB+D,EACzDC,GAAiB,OAA8BZ,EAAO7zE,GAkBtD+xE,EAAUvb,EACd,OAAO,SAAyBj4D,GAK9B,IAAIm2E,EAAuBn2E,EAAiB01D,aAAe11D,EAAiBzW,MAAQ,YAChFmsE,EAAc8f,EAAeW,GAE7BC,GAAyB,OAAS,CAAC,EAAGF,EAAgB,CACxDV,eAAgBA,EAChB3uB,WAAYA,EACZ8uB,gBAAiBA,EACjBhB,yBAA0BA,EAC1BmB,SAAUA,EACVpgB,YAAaA,EACbygB,qBAAsBA,EACtBn2E,iBAAkBA,IAGhBq2E,EAAOH,EAAeG,KAS1B,IAAIC,EAAkBD,EAAO,EAAAzM,QAAU,SAAU7zE,GAC/C,OAAOA,GACT,EAEA,SAASwgF,EAAgBvhF,GACvB,IAAIwhF,GAAW,IAAA5M,UAAQ,WAIrB,IAAI6M,EAAyBzhF,EAAMyhF,uBAC/BlC,GAAe,OAA8Bv/E,EAAOy+E,GAExD,MAAO,CAACz+E,EAAMijE,QAASwe,EAAwBlC,EACjD,GAAG,CAACv/E,IACA0hF,EAAeF,EAAS,GACxBC,EAAyBD,EAAS,GAClCjC,EAAeiC,EAAS,GAExBG,GAAe,IAAA/M,UAAQ,WAGzB,OAAO8M,GAAgBA,EAAaE,WAAY,IAAAzF,mBAAgC,gBAAoBuF,EAAaE,SAAU,OAASF,EAAelD,CACrJ,GAAG,CAACkD,EAAclD,IAEdH,GAAe,IAAA7zE,YAAWm3E,GAI1BE,EAAwBt/C,QAAQviC,EAAM+1C,QAAUxT,QAAQviC,EAAM+1C,MAAMwoC,WAAah8C,QAAQviC,EAAM+1C,MAAMs+B,UAC3E9xC,QAAQ87C,IAAiB97C,QAAQ87C,EAAatoC,OAO5E,IAAIA,EAAQ8rC,EAAwB7hF,EAAM+1C,MAAQsoC,EAAatoC,MAC3D6pC,GAAqB,IAAAhL,UAAQ,WAG/B,OA/CJ,SAA6B7+B,GAC3B,OAAOsqC,EAAgBtqC,EAAMs+B,SAAU+M,EACzC,CA6CWU,CAAoB/rC,EAC7B,GAAG,CAACA,IAEAgsC,GAAY,IAAAnN,UAAQ,WACtB,IAAK+K,EAA0B,OAAOhB,EAKtC,IAAIjB,EAAeH,EAAmBxnC,EAAO8rC,EAAwB,KAAOxD,EAAaX,cASrFO,EAAmBP,EAAaO,iBAAiBvwD,KAAKgwD,GAC1D,MAAO,CAACA,EAAcO,EACxB,GAAG,CAACloC,EAAO8rC,EAAuBxD,IAC9BX,EAAeqE,EAAU,GACzB9D,EAAmB8D,EAAU,GAI7BC,GAAyB,IAAApN,UAAQ,WACnC,OAAIiN,EAIKxD,GAKF,OAAS,CAAC,EAAGA,EAAc,CAChCX,aAAcA,GAElB,GAAG,CAACmE,EAAuBxD,EAAcX,IAGrCuE,GAAc,IAAApN,YAAW+J,EAA0BF,EAAayB,GAEhE+B,EADeD,EAAY,GACc,GACzCpC,EAA+BoC,EAAY,GAG/C,GAAIC,GAA6BA,EAA0Bv0F,MACzD,MAAMu0F,EAA0Bv0F,MAIlC,IAAI0xF,GAAiB,IAAAvK,UACjBsK,GAAmB,IAAAtK,QAAOyK,GAC1BE,GAA4B,IAAA3K,UAC5BwK,GAAoB,IAAAxK,SAAO,GAC3B0K,EAAmB8B,GAAgB,WAOrC,OAAI7B,EAA0B70E,SAAW20E,IAAiBH,EAAiBx0E,QAClE60E,EAA0B70E,QAO5Bg1E,EAAmB7pC,EAAMwoC,WAAYgB,EAC9C,GAAG,CAACxpC,EAAOmsC,EAA2B3C,IAItCR,EAAkCI,EAAqB,CAACC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BxB,IAExKc,EAAkCW,EAAkB,CAACC,EAA0B5pC,EAAO2nC,EAAckC,EAAoBR,EAAkBC,EAAgBC,EAAmBG,EAA2BxB,EAAkB4B,GAA+B,CAAC9pC,EAAO2nC,EAAckC,IAG/Q,IAAIuC,GAA2B,IAAAvN,UAAQ,WACrC,OAAoB,gBAAoB5pE,GAAkB,OAAS,CAAC,EAAGw0E,EAAkB,CACvFj1E,IAAKk3E,IAET,GAAG,CAACA,EAAwBz2E,EAAkBw0E,IAe9C,OAZoB,IAAA5K,UAAQ,WAC1B,OAAI+K,EAIkB,gBAAoBgC,EAAav3E,SAAU,CAC7DpT,MAAOgrF,GACNG,GAGEA,CACT,GAAG,CAACR,EAAcQ,EAA0BH,GAE9C,CAGA,IAAII,EAAUf,EAAO,OAAWE,GAAmBA,EAInD,GAHAa,EAAQp3E,iBAAmBA,EAC3Bo3E,EAAQ1hB,YAAc6gB,EAAgB7gB,YAAcA,EAEhDp2D,EAAY,CACd,IAAI+3E,EAAY,cAAiB,SAA2BriF,EAAOuK,GACjE,OAAoB,gBAAoB63E,GAAS,OAAS,CAAC,EAAGpiF,EAAO,CACnEyhF,uBAAwBl3E,IAE5B,IAGA,OAFA83E,EAAU3hB,YAAcA,EACxB2hB,EAAUr3E,iBAAmBA,EACtB,IAAaq3E,EAAWr3E,EACjC,CAEA,OAAO,IAAao3E,EAASp3E,EAC/B,CACF,CCxXA,SAASu1D,EAAGh+D,EAAGC,GACb,OAAID,IAAMC,EACK,IAAND,GAAiB,IAANC,GAAW,EAAID,IAAM,EAAIC,EAEpCD,IAAMA,GAAKC,IAAMA,CAE5B,CAEe,SAAS8/E,EAAaC,EAAMC,GACzC,GAAIjiB,EAAGgiB,EAAMC,GAAO,OAAO,EAE3B,GAAoB,kBAATD,GAA8B,OAATA,GAAiC,kBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,IAAIC,EAAQv1F,OAAOC,KAAKo1F,GACpBG,EAAQx1F,OAAOC,KAAKq1F,GACxB,GAAIC,EAAMh2F,SAAWi2F,EAAMj2F,OAAQ,OAAO,EAE1C,IAAK,IAAIyN,EAAI,EAAGA,EAAIuoF,EAAMh2F,OAAQyN,IAChC,IAAKhN,OAAO2B,UAAUgM,eAAe9L,KAAKyzF,EAAMC,EAAMvoF,MAAQqmE,EAAGgiB,EAAKE,EAAMvoF,IAAKsoF,EAAKC,EAAMvoF,KAC1F,OAAO,EAIX,OAAO,CACT,CCzBO,SAASyoF,EAAuBC,GACrC,OAAO,SAA8BvO,EAAU9hF,GAC7C,IAAI47D,EAAWy0B,EAAYvO,EAAU9hF,GAErC,SAASswF,IACP,OAAO10B,CACT,CAGA,OADA00B,EAAiBC,mBAAoB,EAC9BD,CACT,CACF,CAQO,SAASE,EAAqBC,GACnC,OAAwC,OAAjCA,EAAWF,wBAA+D1lF,IAAjC4lF,EAAWF,kBAAkCvgD,QAAQygD,EAAWF,mBAA2C,IAAtBE,EAAWv2F,MAClJ,CAaO,SAASw2F,EAAmBD,EAAYnxB,GAC7C,OAAO,SAA2BwiB,EAAU1pE,GACxBA,EAAK+1D,YAAvB,IAEIwiB,EAAQ,SAAyBC,EAAiBC,GACpD,OAAOF,EAAMJ,kBAAoBI,EAAMF,WAAWG,EAAiBC,GAAYF,EAAMF,WAAWG,EAClG,EAoBA,OAjBAD,EAAMJ,mBAAoB,EAE1BI,EAAMF,WAAa,SAAgCG,EAAiBC,GAClEF,EAAMF,WAAaA,EACnBE,EAAMJ,kBAAoBC,EAAqBC,GAC/C,IAAIhjF,EAAQkjF,EAAMC,EAAiBC,GASnC,MAPqB,oBAAVpjF,IACTkjF,EAAMF,WAAahjF,EACnBkjF,EAAMJ,kBAAoBC,EAAqB/iF,GAC/CA,EAAQkjF,EAAMC,EAAiBC,IAI1BpjF,CACT,EAEOkjF,CACT,CACF,CC9CA,OAfO,SAA0CG,GAC/C,MAAqC,oBAAvBA,EAAoCJ,EAAmBI,QAA4CjmF,CACnH,EACO,SAAyCimF,GAC9C,OAAQA,OAIHjmF,EAJwBulF,GAAuB,SAAUtO,GAC5D,MAAO,CACLA,SAAUA,EAEd,GACF,EACO,SAAwCgP,GAC7C,OAAOA,GAAoD,kBAAvBA,EAAkCV,GAAuB,SAAUtO,GACrG,OCdW,SAA4BiP,EAAgBjP,GACzD,IAAIkP,EAAsB,CAAC,EAEvBC,EAAQ,SAAeh1F,GACzB,IAAIi1F,EAAgBH,EAAe90F,GAEN,oBAAlBi1F,IACTF,EAAoB/0F,GAAO,WACzB,OAAO6lF,EAASoP,EAAc12F,WAAM,EAAQP,WAC9C,EAEJ,EAEA,IAAK,IAAIgC,KAAO80F,EACdE,EAAMh1F,GAGR,OAAO+0F,CACT,CDJWG,CAAmBL,EAAoBhP,EAChD,SAAKj3E,CACP,GEPA,OARO,SAAuCumF,GAC5C,MAAkC,oBAApBA,EAAiCV,EAAmBU,QAAsCvmF,CAC1G,EACO,SAAsCumF,GAC3C,OAAQA,OAEHvmF,EAFqBulF,GAAuB,WAC/C,MAAO,CAAC,CACV,GACF,GCNO,SAASiB,EAAkBC,EAAYC,EAAeV,GAC3D,OAAO,OAAS,CAAC,EAAGA,EAAUS,EAAYC,EAC5C,CA+BA,OARO,SAAkCC,GACvC,MAA6B,oBAAfA,EAvBT,SAA4BA,GACjC,OAAO,SAA6B1P,EAAU1pE,GAC1BA,EAAK+1D,YAAvB,IAII/3D,EAHA04E,EAAO12E,EAAK02E,KACZ2C,EAAsBr5E,EAAKq5E,oBAC3BC,GAAa,EAEjB,OAAO,SAAyBJ,EAAYC,EAAeV,GACzD,IAAIc,EAAkBH,EAAWF,EAAYC,EAAeV,GAU5D,OARIa,EACG5C,GAAS2C,EAAoBE,EAAiBv7E,KAAcA,EAAcu7E,IAE/ED,GAAa,EACbt7E,EAAcu7E,GAITv7E,CACT,CACF,CACF,CAE4Cw7E,CAAmBJ,QAAc3mF,CAC7E,EACO,SAAiC2mF,GACtC,OAAQA,OAEJ3mF,EAFiB,WACnB,OAAOwmF,CACT,CACF,GCjCI,EAAY,CAAC,sBAAuB,yBAA0B,kBAE3D,SAASQ,EAAgCT,EAAiBN,EAAoBU,EAAY1P,GAC/F,OAAO,SAAkCh5C,EAAO+nD,GAC9C,OAAOW,EAAWJ,EAAgBtoD,EAAO+nD,GAAWC,EAAmBhP,EAAU+O,GAAWA,EAC9F,CACF,CACO,SAASiB,EAA8BV,EAAiBN,EAAoBU,EAAY1P,EAAU1pE,GACvG,IAII0wB,EACA+nD,EACAS,EACAC,EACAn7E,EARA27E,EAAiB35E,EAAK25E,eACtBC,EAAmB55E,EAAK45E,iBACxBC,EAAqB75E,EAAK65E,mBAC1BC,GAAoB,EAuCxB,SAASC,EAAsBzmD,EAAW0mD,GACxC,IARIC,EACAC,EAOAC,GAAgBP,EAAiBI,EAAcvB,GAC/C2B,GAAgBT,EAAermD,EAAW5C,EAAOspD,EAAcvB,GAGnE,OAFA/nD,EAAQ4C,EACRmlD,EAAWuB,EACPG,GAAgBC,GA1BpBlB,EAAaF,EAAgBtoD,EAAO+nD,GAChCC,EAAmBP,oBAAmBgB,EAAgBT,EAAmBhP,EAAU+O,IACvFz6E,EAAco7E,EAAWF,EAAYC,EAAeV,IAyBhD0B,GApBAnB,EAAgBb,oBAAmBe,EAAaF,EAAgBtoD,EAAO+nD,IACvEC,EAAmBP,oBAAmBgB,EAAgBT,EAAmBhP,EAAU+O,IACvFz6E,EAAco7E,EAAWF,EAAYC,EAAeV,IAmBhD2B,GAdAH,EAAiBjB,EAAgBtoD,EAAO+nD,GACxCyB,GAAqBL,EAAmBI,EAAgBf,GAC5DA,EAAae,EACTC,IAAmBl8E,EAAco7E,EAAWF,EAAYC,EAAeV,IACpEz6E,GAWAA,CACT,CAEA,OAAO,SAAgCs1B,EAAW0mD,GAChD,OAAOF,EAAoBC,EAAsBzmD,EAAW0mD,IAzC5Dd,EAAaF,EAFbtoD,EA2C4F4C,EA1C5FmlD,EA0CuGuB,GAxCvGb,EAAgBT,EAAmBhP,EAAU+O,GAC7Cz6E,EAAco7E,EAAWF,EAAYC,EAAeV,GACpDqB,GAAoB,EACb97E,EAsCT,CACF,CAMe,SAASq8E,EAA0B3Q,EAAUiM,GAC1D,IAAI2E,EAAsB3E,EAAM2E,oBAC5BC,EAAyB5E,EAAM4E,uBAC/BC,EAAiB7E,EAAM6E,eACvB5yF,GAAU,OAA8B+tF,EAAO,GAE/CqD,EAAkBsB,EAAoB5Q,EAAU9hF,GAChD8wF,EAAqB6B,EAAuB7Q,EAAU9hF,GACtDwxF,EAAaoB,EAAe9Q,EAAU9hF,GAO1C,OADsBA,EAAQ8uF,KAAOgD,EAAgCD,GAC9CT,EAAiBN,EAAoBU,EAAY1P,EAAU9hF,EACpF,CCrFA,IAAI,EAAY,CAAC,OAAQ,iBAAkB,mBAAoB,qBAAsB,uBAwBrF,SAAS+V,EAAM5b,EAAK04F,EAAW7wF,GAC7B,IAAK,IAAI2F,EAAIkrF,EAAU34F,OAAS,EAAGyN,GAAK,EAAGA,IAAK,CAC9C,IAAIkP,EAASg8E,EAAUlrF,GAAGxN,GAC1B,GAAI0c,EAAQ,OAAOA,CACrB,CAEA,OAAO,SAAUirE,EAAU9hF,GACzB,MAAM,IAAI2F,MAAM,gCAAkCxL,EAAM,QAAU6H,EAAO,uCAAyChC,EAAQ4uF,qBAAuB,IACnJ,CACF,CAEA,SAASkE,EAAYz4F,EAAGC,GACtB,OAAOD,IAAMC,CACf,CAIO,SAASy4F,EAAcC,GAC5B,IAAI56E,OAAiB,IAAV46E,EAAmB,CAAC,EAAIA,EAC/BC,EAAkB76E,EAAK86E,WACvBA,OAAiC,IAApBD,EAA6BpF,EAAkBoF,EAC5DE,EAAwB/6E,EAAKg7E,yBAC7BA,OAAqD,IAA1BD,EAAmC,EAAkCA,EAChGE,EAAwBj7E,EAAKk7E,4BAC7BA,OAAwD,IAA1BD,EAAmC,EAAqCA,EACtGE,EAAwBn7E,EAAKo7E,oBAC7BA,OAAgD,IAA1BD,EAAmC,EAA6BA,EACtFE,EAAuBr7E,EAAK01E,gBAC5BA,OAA2C,IAAzB2F,EAAkC,EAAyBA,EAEjF,OAAO,SAAiBrC,EAAiBN,EAAoBU,EAAYzD,QACzD,IAAVA,IACFA,EAAQ,CAAC,GAGX,IAAI2F,EAAQ3F,EACR4F,EAAaD,EAAM5E,KACnBA,OAAsB,IAAf6E,GAA+BA,EACtCC,EAAuBF,EAAM3B,eAC7BA,OAA0C,IAAzB6B,EAAkCd,EAAcc,EACjEC,EAAwBH,EAAM1B,iBAC9BA,OAA6C,IAA1B6B,EAAmC9D,EAAe8D,EACrEC,EAAwBJ,EAAMzB,mBAC9BA,OAA+C,IAA1B6B,EAAmC/D,EAAe+D,EACvEC,EAAwBL,EAAMjC,oBAC9BA,OAAgD,IAA1BsC,EAAmChE,EAAegE,EACxEC,GAAe,OAA8BN,EAAO,GAEpDhB,EAAsB38E,EAAMq7E,EAAiBgC,EAA0B,mBACvET,EAAyB58E,EAAM+6E,EAAoBwC,EAA6B,sBAChFV,EAAiB78E,EAAMy7E,EAAYgC,EAAqB,cAC5D,OAAON,EAAWpF,GAAiB,OAAS,CAE1CxuB,WAAY,UAEZ2uB,eAAgB,SAAwBjsF,GACtC,MAAO,WAAaA,EAAO,GAC7B,EAEAorF,yBAA0Bp9C,QAAQohD,GAElCsB,oBAAqBA,EACrBC,uBAAwBA,EACxBC,eAAgBA,EAChB9D,KAAMA,EACNiD,eAAgBA,EAChBC,iBAAkBA,EAClBC,mBAAoBA,EACpBR,oBAAqBA,GACpBuC,GACL,CACF,CACA,MAA4BjB,IC/ErB,SAAS,IAOd,OANmB,IAAA96E,YAAW0yE,EAOhC,CCjBO,SAASsJ,EAAgBvjB,QACd,IAAZA,IACFA,EAAUia,GAGZ,IAAIuJ,EAAkBxjB,IAAYia,EAAoB,EAAyB,WAC7E,OAAO,IAAA1yE,YAAWy4D,EACpB,EACA,OAAO,WAIL,OAHuBwjB,IACM1wC,KAG/B,CACF,CAiBO,IAAI,EAAwBywC,IChC5B,SAASE,EAAmBzjB,QACjB,IAAZA,IACFA,EAAUia,GAGZ,IAAIyJ,EAAW1jB,IAAYia,EAAoB,EAAkBsJ,EAAgBvjB,GACjF,OAAO,WAEL,OADY0jB,IACCtS,QACf,CACF,CAuBO,IAAIuS,EAA2BF,ICpClCG,EAAc,SAAqBj6F,EAAGC,GACxC,OAAOD,IAAMC,CACf,EAyFO,SAASi6F,EAAmB7jB,QACjB,IAAZA,IACFA,EAAUia,GAGZ,IAAIuJ,EAAkBxjB,IAAYia,EAAoB,EAAyB,WAC7E,OAAO,IAAA1yE,YAAWy4D,EACpB,EACA,OAAO,SAAqB1+D,EAAUwiF,QACjB,IAAfA,IACFA,EAAaF,GAiBf,IAAIG,EAAmBP,IAInBQ,EAtHR,SAA6C1iF,EAAUwiF,EAAYhxC,EAAOmxC,GACxE,IAaID,EAVAE,GAHc,IAAAtS,aAAW,SAAUn6E,GACrC,OAAOA,EAAI,CACb,GAAG,GAC2B,GAE1BgjF,GAAe,IAAA9I,UAAQ,WACzB,OAAO2I,EAAmBxnC,EAAOmxC,EACnC,GAAG,CAACnxC,EAAOmxC,IACPE,GAAkC,IAAAtS,UAClCuS,GAAiB,IAAAvS,UACjBoL,GAAmB,IAAApL,UACnBwS,GAAsB,IAAAxS,UACtByS,EAAaxxC,EAAMwoC,WAGvB,IACE,GAAIh6E,IAAa8iF,EAAez8E,SAAW28E,IAAerH,EAAiBt1E,SAAWw8E,EAAgCx8E,QAAS,CAC7H,IAAI48E,EAAmBjjF,EAASgjF,GAK9BN,OAHkC7pF,IAAhCkqF,EAAoB18E,SAA0Bm8E,EAAWS,EAAkBF,EAAoB18E,SAGjF08E,EAAoB18E,QAFpB48E,CAIpB,MACEP,EAAgBK,EAAoB18E,OAExC,CAAE,MAAO6N,GAKP,MAJI2uE,EAAgCx8E,UAClC6N,EAAI7qB,SAAW,4DAA8Dw5F,EAAgCx8E,QAAQzc,MAAQ,QAGzHsqB,CACR,CA2CA,OAzCA2lE,GAA0B,WACxBiJ,EAAez8E,QAAUrG,EACzB27E,EAAiBt1E,QAAU28E,EAC3BD,EAAoB18E,QAAUq8E,EAC9BG,EAAgCx8E,aAAUxN,CAC5C,IACAghF,GAA0B,WACxB,SAAS4B,IACP,IACE,IAAIyH,EAAgB1xC,EAAMwoC,WAE1B,GAAIkJ,IAAkBvH,EAAiBt1E,QACrC,OAGF,IAAI88E,EAAoBL,EAAez8E,QAAQ68E,GAE/C,GAAIV,EAAWW,EAAmBJ,EAAoB18E,SACpD,OAGF08E,EAAoB18E,QAAU88E,EAC9BxH,EAAiBt1E,QAAU68E,CAC7B,CAAE,MAAOhvE,GAKP2uE,EAAgCx8E,QAAU6N,CAC5C,CAEA0uE,GACF,CAKA,OAHAzJ,EAAaC,cAAgBqC,EAC7BtC,EAAaE,eACboC,IACO,WACL,OAAOtC,EAAaQ,gBACtB,CACF,GAAG,CAACnoC,EAAO2nC,IACJuJ,CACT,CAwCwBU,CAAoCpjF,EAAUwiF,EAHtDC,EAAiBjxC,MACZixC,EAAiBtJ,cAIlC,OADA,IAAAtI,eAAc6R,GACPA,CACT,CACF,CAyBO,IhBtJiCW,EgBsJ7BC,EAA2Bf,ehBtJEc,EiBF/B,0BjBGAzK,EAAQyK,wCkBAA/6F,EAAE,MAAMo5B,EAAE,MAAMC,EAAE,MAAM50B,EAAE,MAAMo0B,EAAE,MAAMx2B,EAAE,MAAM2a,EAAE,MAAMxc,EAAE,MAAM84B,EAAE,MAAM9H,EAAE,MAAM1jB,EAAE,MAAMC,EAAE,MAAMkwC,EAAE,MAAMr6C,EAAE,MAAMu1B,EAAE,MAAMxF,EAAE,MAAMpC,EAAE,MACnJ,GAAG,oBAAoB7Q,QAAQA,OAAOmiC,IAAI,CAAC,IAAIntC,EAAEgL,OAAOmiC,IAAI7iD,EAAE0V,EAAE,iBAAiB0jB,EAAE1jB,EAAE,gBAAgB2jB,EAAE3jB,EAAE,kBAAkBjR,EAAEiR,EAAE,qBAAqBmjB,EAAEnjB,EAAE,kBAAkBrT,EAAEqT,EAAE,kBAAkBsH,EAAEtH,EAAE,iBAAiBlV,EAAEkV,EAAE,qBAAqB4jB,EAAE5jB,EAAE,kBAAkB8b,EAAE9b,EAAE,uBAAuB5H,EAAE4H,EAAE,cAAc3H,EAAE2H,EAAE,cAAcuoC,EAAEvoC,EAAE,eAAe9R,EAAE8R,EAAE,sBAAsByjB,EAAEzjB,EAAE,qBAAqBie,EAAEje,EAAE,0BAA0B6b,EAAE7b,EAAE,sBAAsB,CACjc,SAASC,EAAE5V,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAI6N,EAAE7N,EAAEolF,SAAS,OAAOv3E,GAAG,KAAK5N,EAAE,OAAOD,EAAEA,EAAEmT,MAAQ,KAAKmmB,EAAE,KAAKR,EAAE,KAAKp0B,EAAE,KAAK60B,EAAE,KAAK9H,EAAE,OAAOzxB,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEolF,UAAY,KAAKnoE,EAAE,KAAKxc,EAAE,KAAKuN,EAAE,KAAKD,EAAE,KAAKzL,EAAE,OAAOtC,EAAE,QAAQ,OAAO6N,GAAG,KAAKwrB,EAAE,OAAOxrB,EAAE,CAAC,CACxJ0S,EAAQgvE,kBAAkB,SAASvvF,GAAG,OAAO4V,EAAE5V,KAAKid,CAAC,sCCR7JqH,EAAO/D,QAAU,EAAjB,6MCYE26E,EAA6B,SAAUj8E,GAGzC,SAASi8E,IAGP,IAFA,IAAIj3F,EAEK4a,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAKzB,OAFAnY,EAAQgb,EAAiB9c,KAAKhC,MAAM8e,EAAkB,CAACtc,MAAMd,OAAO3B,KAAUyC,MACxEqtC,SAAU,QAAqB/rC,EAAMmP,OACpCnP,CACT,CAWA,OAvBA,OAAei3F,EAAej8E,GAcjBi8E,EAAcj5F,UAEpBwd,OAAS,WACd,OAAoB,gBAAoB,KAAQ,CAC9CuwB,QAASrtC,KAAKqtC,QACd38B,SAAU1Q,KAAKyQ,MAAMC,UAEzB,EAEO6nF,CACT,CAzBiC,CAyB/B,aA6CA,YAeF,IAAIC,EAAoB,SAA2B/tD,EAAI5G,GACrD,MAAqB,oBAAP4G,EAAoBA,EAAG5G,GAAmB4G,CAC1D,EACIguD,EAAsB,SAA6BhuD,EAAI5G,GACzD,MAAqB,kBAAP4G,GAAkB,QAAeA,EAAI,KAAM,KAAM5G,GAAmB4G,CACpF,EAEIiuD,EAAiB,SAAwB7pC,GAC3C,OAAOA,CACT,EAEI9zC,EAAa,aAES,qBAAfA,IACTA,EAAa29E,GAOf,IAAIC,EAAa59E,GAAW,SAAUK,EAAMw9E,GAC1C,IAAIl8E,EAAWtB,EAAKsB,SAChBm8E,EAAWz9E,EAAKy9E,SAChBC,EAAW19E,EAAK29E,QAChB37E,GAAO,OAA8BhC,EAAM,CAAC,WAAY,WAAY,YAEpEmF,EAASnD,EAAKmD,OAEd9P,GAAQ,OAAS,CAAC,EAAG2M,EAAM,CAC7B27E,QAAS,SAAiBxuF,GACxB,IACMuuF,GAAUA,EAASvuF,EACzB,CAAE,MAAOuX,GAEP,MADAvX,EAAMyuF,iBACAl3E,CACR,CAEKvX,EAAM0uF,kBACM,IAAjB1uF,EAAM2uF,QACL34E,GAAqB,UAAXA,GAvBjB,SAAyBhW,GACvB,SAAUA,EAAM4uF,SAAW5uF,EAAM6uF,QAAU7uF,EAAM8uF,SAAW9uF,EAAMqiD,SACpE,CAsBO0sC,CAAgB/uF,KAEbA,EAAMyuF,iBACNH,IAEN,IAYF,OAPEpoF,EAAMuK,IADJ09E,IAAmB39E,GACT69E,GAEAl8E,EAKM,gBAAoB,IAAKjM,EAC/C,IAUA,IAAI8oF,EAAOx+E,GAAW,SAAUg2E,EAAO6H,GACrC,IAAIY,EAAkBzI,EAAM1uC,UACxBA,OAAgC,IAApBm3C,EAA6Bb,EAAaa,EACtD33F,EAAUkvF,EAAMlvF,QAChB4oC,EAAKsmD,EAAMtmD,GACX/tB,EAAWq0E,EAAMr0E,SACjBU,GAAO,OAA8B2zE,EAAO,CAAC,YAAa,UAAW,KAAM,aAE/E,OAAoB,gBAAoB,KAAgBsB,SAAU,MAAM,SAAU3e,GAC/EA,IAAqH,QAAU,GAChI,IAAIrmC,EAAUqmC,EAAQrmC,QAClB7sC,EAAWi4F,EAAoBD,EAAkB/tD,EAAIipC,EAAQlzE,UAAWkzE,EAAQlzE,UAChFqvC,EAAOrvC,EAAW6sC,EAAQoC,WAAWjvC,GAAY,GAEjDiQ,GAAQ,OAAS,CAAC,EAAG2M,EAAM,CAC7ByyB,KAAMA,EACNgpD,SAAU,WACR,IAAIr4F,EAAWg4F,EAAkB/tD,EAAIipC,EAAQlzE,UACzCi5F,GAAwB,QAAW/lB,EAAQlzE,aAAc,QAAWi4F,EAAoBj4F,KAC/EqB,GAAW43F,EAAwBpsD,EAAQxrC,QAAUwrC,EAAQlpC,MACnE3D,EACT,IAUF,OANIk4F,IAAmB39E,EACrBtK,EAAMuK,IAAM49E,GAAgBl8E,EAE5BjM,EAAMiM,SAAWA,EAGC,gBAAoB2lC,EAAW5xC,EACrD,GACF,IAiBIipF,EAAmB,SAAwB7qC,GAC7C,OAAOA,CACT,EAEI8qC,EAAe,aAES,qBAAjBA,IACTA,EAAeD,GAiBjB,IAAIE,EAAUD,GAAa,SAAUv+E,EAAMw9E,GACzC,IAAIiB,EAAmBz+E,EAAK,gBACxB0+E,OAAmC,IAArBD,EAA8B,OAASA,EACrDE,EAAuB3+E,EAAK4+E,gBAC5BA,OAA2C,IAAzBD,EAAkC,SAAWA,EAC/DE,EAAc7+E,EAAK6+E,YACnBC,EAAgB9+E,EAAK7F,UACrBqsE,EAAQxmE,EAAKwmE,MACbuY,EAAe/+E,EAAKyxB,SACpButD,EAAeh/E,EAAK5a,SACpBw/E,EAAY5kE,EAAK4kE,UACjB92B,EAAS9tC,EAAK8tC,OACdmxC,EAAYj/E,EAAKyJ,MACjB4lB,EAAKrvB,EAAKqvB,GACV/tB,EAAWtB,EAAKsB,SAChBU,GAAO,OAA8BhC,EAAM,CAAC,eAAgB,kBAAmB,cAAe,YAAa,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,KAAM,aAEtL,OAAoB,gBAAoB,KAAgBi3E,SAAU,MAAM,SAAU3e,GAC/EA,IAAwH,QAAU,GACnI,IAAI7vC,EAAkBu2D,GAAgB1mB,EAAQlzE,SAC1CyuC,EAAawpD,EAAoBD,EAAkB/tD,EAAI5G,GAAkBA,GACzE/5B,EAAOmlC,EAAW1iC,SAElB+tF,EAAcxwF,GAAQA,EAAKjI,QAAQ,4BAA6B,QAChEkX,EAAQuhF,GAAc,QAAUz2D,EAAgBt3B,SAAU,CAC5DzC,KAAMwwF,EACN1Y,MAAOA,EACP5B,UAAWA,EACX92B,OAAQA,IACL,KACDrc,KAAcstD,EAAeA,EAAaphF,EAAO8qB,GAAmB9qB,GACpExD,EAAqC,oBAAlB2kF,EAA+BA,EAAcrtD,GAAYqtD,EAC5Er1E,EAA6B,oBAAdw1E,EAA2BA,EAAUxtD,GAAYwtD,EAEhExtD,IACFt3B,EAjDN,WACE,IAAK,IAAI2G,EAAOjf,UAAUC,OAAQq9F,EAAa,IAAIv0F,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IACrF8gF,EAAW9gF,GAAQxc,UAAUwc,GAG/B,OAAO8gF,EAAW77F,QAAO,SAAUiM,GACjC,OAAOA,CACT,IAAGvL,KAAK,IACV,CAyCkBo7F,CAAejlF,EAAWykF,GACtCn1E,GAAQ,OAAS,CAAC,EAAGA,EAAOo1E,IAG9B,IAAIxpF,GAAQ,OAAS,CACnB,eAAgBo8B,GAAYitD,GAAe,KAC3CvkF,UAAWA,EACXsP,MAAOA,EACP4lB,GAAIwE,GACH7xB,GASH,OANIs8E,IAAqBC,EACvBlpF,EAAMuK,IAAM49E,GAAgBl8E,EAE5BjM,EAAMiM,SAAWA,EAGC,gBAAoB68E,EAAM9oF,EAChD,GACF,0aC9RIgqF,EAAwB,WACxBC,EAAuC,qBAAfC,WAE5BA,WAA+B,qBAAX/6F,OAAyBA,OACzB,qBAAX,EAAAD,EAAyB,EAAAA,EAChC,CAAC,EAsLH,IAAIi7F,EAAgB,iBAzIpB,SAA4Br4C,EAAcs4C,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA9CpB,WACE,IAAI/7F,EAAM,uBACV,OAAOy7F,EAAez7F,IAAQy7F,EAAez7F,IAAQ,GAAK,CAC5D,CA2CgDg8F,GAAgB,KAE1DpgF,EAAwB,SAAUyB,GAGpC,SAASzB,IAGP,IAFA,IAAIvZ,EApCkBmG,EACtB4X,EAqCSnD,EAAOjf,UAAUC,OAAQK,EAAO,IAAIyI,MAAMkW,GAAOzC,EAAO,EAAGA,EAAOyC,EAAMzC,IAC/Elc,EAAKkc,GAAQxc,UAAUwc,GAKzB,OAFAnY,EAAQgb,EAAiB9c,KAAKhC,MAAM8e,EAAkB,CAACtc,MAAMd,OAAO3B,KAAUyC,MACxEk7F,SA3CgBzzF,EA2CanG,EAAMmP,MAAMhJ,MA1C/C4X,EAAW,GACR,CACLlc,GAAI,SAAY4sB,GACd1Q,EAASlb,KAAK4rB,EAChB,EACAorE,IAAK,SAAaprE,GAChB1Q,EAAWA,EAAS3gB,QAAO,SAAU4b,GACnC,OAAOA,IAAMyV,CACf,GACF,EACApc,IAAK,WACH,OAAOlM,CACT,EACAmM,IAAK,SAAawrB,EAAUg8D,GAC1B3zF,EAAQ23B,EACR/f,EAASxhB,SAAQ,SAAUkyB,GACzB,OAAOA,EAAQtoB,EAAO2zF,EACxB,GACF,IAyBS95F,CACT,EAZA,OAAeuZ,EAAUyB,GAczB,IAAIrO,EAAS4M,EAASvb,UAoCtB,OAlCA2O,EAAOu7E,gBAAkB,WACvB,IAAIpuE,EAEJ,OAAOA,EAAO,CAAC,GAAQ4/E,GAAeh7F,KAAKk7F,QAAS9/E,CACtD,EAEAnN,EAAOotF,0BAA4B,SAAmCC,GACpE,GAAIt7F,KAAKyQ,MAAMhJ,QAAU6zF,EAAU7zF,MAAO,CACxC,IAEI2zF,EAFAG,EAAWv7F,KAAKyQ,MAAMhJ,MACtB23B,EAAWk8D,EAAU7zF,QAnEfuL,EAsEGuoF,MAtEAtoF,EAsEUmsB,GApEd,IAANpsB,GAAW,EAAIA,IAAM,EAAIC,EAGzBD,IAAMA,GAAKC,IAAMA,GAkElBmoF,EAAc,GAEdA,EAA8C,oBAAzBP,EAAsCA,EAAqBU,EAAUn8D,GAAYq7D,EAQlF,KAFpBW,GAAe,IAGbp7F,KAAKk7F,QAAQtnF,IAAI0nF,EAAU7zF,MAAO2zF,GAGxC,CArFN,IAAkBpoF,EAAGC,CAsFjB,EAEAhF,EAAO6O,OAAS,WACd,OAAO9c,KAAKyQ,MAAMC,QACpB,EAEOmK,CACT,CApD4B,CAoD1B,aAEFA,EAAS4uE,oBAAqBqR,EAAwB,CAAC,GAAyBE,GAAe,WAAiB/Z,WAAY6Z,GAE5H,IAAIzI,EAAwB,SAAUmJ,GAGpC,SAASnJ,IAGP,IAFA,IAAIoJ,EAEKC,EAAQz+F,UAAUC,OAAQK,EAAO,IAAIyI,MAAM01F,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFp+F,EAAKo+F,GAAS1+F,UAAU0+F,GAmB1B,OAhBAF,EAASD,EAAkBh8F,KAAKhC,MAAMg+F,EAAmB,CAACx7F,MAAMd,OAAO3B,KAAUyC,MAC1E47F,kBAAe,EACtBH,EAAO3vD,MAAQ,CACbrkC,MAAOg0F,EAAO72B,YAGhB62B,EAAOI,SAAW,SAAUz8D,EAAUg8D,GAGC,MAFI,EAAtBK,EAAOG,cAENR,IAClBK,EAAOhtD,SAAS,CACdhnC,MAAOg0F,EAAO72B,YAGpB,EAEO62B,CACT,EA1BA,OAAepJ,EAAUmJ,GA4BzB,IAAIM,EAAUzJ,EAAS/yF,UAoCvB,OAlCAw8F,EAAQT,0BAA4B,SAAmCC,GACrE,IAAIM,EAAeN,EAAUM,aAC7B57F,KAAK47F,kBAAgC/tF,IAAjB+tF,GAA+C,OAAjBA,EAAwBnB,EACxEmB,CACJ,EAEAE,EAAQt/E,kBAAoB,WACtBxc,KAAK0zE,QAAQsnB,IACfh7F,KAAK0zE,QAAQsnB,GAAa73F,GAAGnD,KAAK67F,UAGpC,IAAID,EAAe57F,KAAKyQ,MAAMmrF,aAC9B57F,KAAK47F,kBAAgC/tF,IAAjB+tF,GAA+C,OAAjBA,EAAwBnB,EACxEmB,CACJ,EAEAE,EAAQj/E,qBAAuB,WACzB7c,KAAK0zE,QAAQsnB,IACfh7F,KAAK0zE,QAAQsnB,GAAaG,IAAIn7F,KAAK67F,SAEvC,EAEAC,EAAQl3B,SAAW,WACjB,OAAI5kE,KAAK0zE,QAAQsnB,GACRh7F,KAAK0zE,QAAQsnB,GAAarnF,MAE1B4uC,CAEX,EAEAu5C,EAAQh/E,OAAS,WACf,OA/HapM,EA+HI1Q,KAAKyQ,MAAMC,SA9HzB1K,MAAMC,QAAQyK,GAAYA,EAAS,GAAKA,GA8HL1Q,KAAK8rC,MAAMrkC,OA/HvD,IAAmBiJ,CAgIf,EAEO2hF,CACT,CAlE4B,CAkE1B,aAGF,OADAA,EAASvJ,eAAgBiS,EAAwB,CAAC,GAAyBC,GAAe,WAAkBD,GACrG,CACLlgF,SAAUA,EACVw3E,SAAUA,EAEd,EAOI0J,EAAqB,SAA4B/2F,GACnD,IAAI0uE,EAAUknB,IAEd,OADAlnB,EAAQvC,YAAcnsE,EACf0uE,CACT,EAEIsoB,EAA8BD,EAAmB,kBAEjDroB,EAAuBqoB,EAAmB,UAM1CE,EAAsB,SAAU3/E,GAYlC,SAAS2/E,EAAOxrF,GACd,IAAInP,EAoBJ,OAlBAA,EAAQgb,EAAiB9c,KAAKQ,KAAMyQ,IAAUzQ,MACxC8rC,MAAQ,CACZtrC,SAAUiQ,EAAM48B,QAAQ7sC,UAO1Bc,EAAM46F,YAAa,EACnB56F,EAAM66F,iBAAmB,KAEpB1rF,EAAM2rF,gBACT96F,EAAMivC,SAAW9/B,EAAM48B,QAAQiD,QAAO,SAAU9vC,GAC9Cc,EAAM66F,iBAAmB37F,CAC3B,KAGKc,CACT,EAjCA,OAAe26F,EAAQ3/E,GAEvB2/E,EAAOI,iBAAmB,SAA0B9vF,GAClD,MAAO,CACLzC,KAAM,IACN1I,IAAK,IACLqE,OAAQ,CAAC,EACT62F,QAAsB,MAAb/vF,EAEb,EA0BA,IAAI0B,EAASguF,EAAO38F,UAoDpB,OAlDA2O,EAAOuO,kBAAoB,WACzB,IAAIi/E,EAASz7F,KAEbA,KAAKk8F,YAAa,EAEdl8F,KAAKuwC,UAGPvwC,KAAKuwC,WAGFvwC,KAAKyQ,MAAM2rF,gBACdp8F,KAAKuwC,SAAWvwC,KAAKyQ,MAAM48B,QAAQiD,QAAO,SAAU9vC,GAC9Ci7F,EAAOS,YACTT,EAAOhtD,SAAS,CACdjuC,SAAUA,GAGhB,KAGER,KAAKm8F,kBACPn8F,KAAKyuC,SAAS,CACZjuC,SAAUR,KAAKm8F,kBAGrB,EAEAluF,EAAO4O,qBAAuB,WACxB7c,KAAKuwC,WACPvwC,KAAKuwC,WACLvwC,KAAKk8F,YAAa,EAClBl8F,KAAKm8F,iBAAmB,KAE5B,EAEAluF,EAAO6O,OAAS,WACd,OAAoB,gBAAoB42D,EAAQ74D,SAAU,CACxDpT,MAAO,CACL4lC,QAASrtC,KAAKyQ,MAAM48B,QACpB7sC,SAAUR,KAAK8rC,MAAMtrC,SACrBuY,MAAOkjF,EAAOI,iBAAiBr8F,KAAK8rC,MAAMtrC,SAAS+L,UACnD6vF,cAAep8F,KAAKyQ,MAAM2rF,gBAEd,gBAAoBJ,EAAenhF,SAAU,CAC3DnK,SAAU1Q,KAAKyQ,MAAMC,UAAY,KACjCjJ,MAAOzH,KAAKyQ,MAAM48B,UAEtB,EAEO4uD,CACT,CAzF0B,CAyFxB,aA2CA,YAgBF,IAAIM,EAAyB,SAAUjgF,GAGrC,SAASigF,IACP,OAAOjgF,EAAiB9e,MAAMwC,KAAM/C,YAAc+C,IACpD,EAJA,OAAeu8F,EAAWjgF,GAM1B,IAAIrO,EAASsuF,EAAUj9F,UAkBvB,OAhBA2O,EAAOuO,kBAAoB,WACrBxc,KAAKyQ,MAAM+rF,SAASx8F,KAAKyQ,MAAM+rF,QAAQh9F,KAAKQ,KAAMA,KACxD,EAEAiO,EAAO0O,mBAAqB,SAA4BC,GAClD5c,KAAKyQ,MAAMorF,UAAU77F,KAAKyQ,MAAMorF,SAASr8F,KAAKQ,KAAMA,KAAM4c,EAChE,EAEA3O,EAAO4O,qBAAuB,WACxB7c,KAAKyQ,MAAMgsF,WAAWz8F,KAAKyQ,MAAMgsF,UAAUj9F,KAAKQ,KAAMA,KAC5D,EAEAiO,EAAO6O,OAAS,WACd,OAAO,IACT,EAEOy/E,CACT,CA1B6B,CA0B3B,aAwCF,IAAInnF,EAAQ,CAAC,EACTsnF,EAAa,IACbC,EAAa,EAkBjB,SAASC,EAAa9yF,EAAMrE,GAS1B,YARa,IAATqE,IACFA,EAAO,UAGM,IAAXrE,IACFA,EAAS,CAAC,GAGI,MAATqE,EAAeA,EAzBxB,SAAqBA,GACnB,GAAIsL,EAAMtL,GAAO,OAAOsL,EAAMtL,GAC9B,IAAI27C,EAAY,YAAqB37C,GAOrC,OALI6yF,EAAaD,IACftnF,EAAMtL,GAAQ27C,EACdk3C,KAGKl3C,CACT,CAe+Bo3C,CAAY/yF,EAAZ+yF,CAAkBp3F,EAAQ,CACrDo6E,QAAQ,GAEZ,CAMA,SAASid,EAAS1hF,GAChB,IAAI2hF,EAAgB3hF,EAAK2hF,cACrBtyD,EAAKrvB,EAAKqvB,GACVuyD,EAAY5hF,EAAKjX,KACjBA,OAAqB,IAAd64F,GAA+BA,EAC1C,OAAoB,gBAAoBtpB,EAAQ2e,SAAU,MAAM,SAAU3e,GACvEA,IAAyH,QAAU,GACpI,IAAIrmC,EAAUqmC,EAAQrmC,QAClB+uD,EAAgB1oB,EAAQ0oB,cACxB15F,EAASyB,EAAOkpC,EAAQlpC,KAAOkpC,EAAQxrC,QACvCrB,GAAW,QAAeu8F,EAA8B,kBAAPtyD,EAAkBmyD,EAAanyD,EAAIsyD,EAAct3F,SAAU,OAAS,CAAC,EAAGglC,EAAI,CAC/Hl+B,SAAUqwF,EAAanyD,EAAGl+B,SAAUwwF,EAAct3F,UAC/CglC,GAGL,OAAI2xD,GACF15F,EAAOlC,GACA,MAGW,gBAAoB+7F,EAAW,CACjDC,QAAS,WACP95F,EAAOlC,EACT,EACAq7F,SAAU,SAAkBh8F,EAAM+c,GAChC,IAAI40B,GAAe,QAAe50B,EAAU6tB,KAEvC,QAAkB+G,GAAc,OAAS,CAAC,EAAGhxC,EAAU,CAC1DvB,IAAKuyC,EAAavyC,QAElByD,EAAOlC,EAEX,EACAiqC,GAAIA,GAER,GACF,CAUA,IAAIwyD,EAAU,CAAC,EACXC,EAAe,IACfC,EAAe,EAyBnB,SAASC,EAAU7wF,EAAUvJ,QACX,IAAZA,IACFA,EAAU,CAAC,IAGU,kBAAZA,GAAwBgD,MAAMC,QAAQjD,MAC/CA,EAAU,CACR8G,KAAM9G,IAIV,IAAIyF,EAAWzF,EACX8G,EAAOrB,EAASqB,KAChBuzF,EAAiB50F,EAASm5E,MAC1BA,OAA2B,IAAnByb,GAAoCA,EAC5CC,EAAkB70F,EAASygD,OAC3BA,OAA6B,IAApBo0C,GAAqCA,EAC9CC,EAAqB90F,EAASu3E,UAC9BA,OAAmC,IAAvBud,GAAwCA,EAExD,MADY,GAAGr+F,OAAO4K,GACT1M,QAAO,SAAUogG,EAAS1zF,GACrC,IAAKA,GAAiB,KAATA,EAAa,OAAO,KACjC,GAAI0zF,EAAS,OAAOA,EAEpB,IAAIC,EA/CR,SAAuB3zF,EAAM9G,GAC3B,IAAI06F,EAAW,GAAK16F,EAAQK,IAAML,EAAQkmD,OAASlmD,EAAQg9E,UACvD2d,EAAYV,EAAQS,KAAcT,EAAQS,GAAY,CAAC,GAC3D,GAAIC,EAAU7zF,GAAO,OAAO6zF,EAAU7zF,GACtC,IAAIlM,EAAO,GAEPic,EAAS,CACX+jF,OAFW,IAAa9zF,EAAMlM,EAAMoF,GAGpCpF,KAAMA,GAQR,OALIu/F,EAAeD,IACjBS,EAAU7zF,GAAQ+P,EAClBsjF,KAGKtjF,CACT,CA8BuBgkF,CAAc/zF,EAAM,CACrCzG,IAAKu+E,EACL14B,OAAQA,EACR82B,UAAWA,IAET4d,EAASH,EAAaG,OACtBhgG,EAAO6/F,EAAa7/F,KAEpBmb,EAAQ6kF,EAAO3pF,KAAK1H,GACxB,IAAKwM,EAAO,OAAO,KACnB,IAAI3X,EAAM2X,EAAM,GACZjT,EAASiT,EAAMhJ,MAAM,GACrBusF,EAAU/vF,IAAanL,EAC3B,OAAIwgF,IAAU0a,EAAgB,KACvB,CACLxyF,KAAMA,EAEN1I,IAAc,MAAT0I,GAAwB,KAAR1I,EAAa,IAAMA,EAExCk7F,QAASA,EAET72F,OAAQ7H,EAAKR,QAAO,SAAU0gG,EAAM7+F,EAAK2Q,GAEvC,OADAkuF,EAAK7+F,EAAI+F,MAAQc,EAAO8J,GACjBkuF,CACT,GAAG,CAAC,GAER,GAAG,KACL,CAgBA,IAAIC,EAAqB,SAAUzhF,GAGjC,SAASyhF,IACP,OAAOzhF,EAAiB9e,MAAMwC,KAAM/C,YAAc+C,IACpD,CAkCA,OAtCA,OAAe+9F,EAAOzhF,GAMTyhF,EAAMz+F,UAEZwd,OAAS,WACd,IAAIxb,EAAQtB,KAEZ,OAAoB,gBAAoB0zE,EAAQ2e,SAAU,MAAM,SAAU2L,GACvEA,IAAwH,QAAU,GACnI,IAAIx9F,EAAWc,EAAMmP,MAAMjQ,UAAYw9F,EAAUx9F,SAC7CuY,EAAQzX,EAAMmP,MAAMssF,cAAgBz7F,EAAMmP,MAAMssF,cAClDz7F,EAAMmP,MAAM3G,KAAOszF,EAAU58F,EAAS+L,SAAUjL,EAAMmP,OAASutF,EAAUjlF,MAEvEtI,GAAQ,OAAS,CAAC,EAAGutF,EAAW,CAClCx9F,SAAUA,EACVuY,MAAOA,IAGLkE,EAAc3b,EAAMmP,MACpBC,EAAWuM,EAAYvM,SACvB2xC,EAAYplC,EAAYolC,UACxBvlC,EAASG,EAAYH,OAOzB,OAJI9W,MAAMC,QAAQyK,IA3CxB,SAAyBA,GACvB,OAA0C,IAAnC,WAAeU,MAAMV,EAC9B,CAyCqCutF,CAAgBvtF,KAC7CA,EAAW,MAGO,gBAAoBgjE,EAAQ74D,SAAU,CACxDpT,MAAOgJ,GACNA,EAAMsI,MAAQrI,EAA+B,oBAAbA,EAAuHA,EAASD,GAASC,EAAW2xC,EAAyB,gBAAoBA,EAAW5xC,GAASqM,EAASA,EAAOrM,GAAS,KAA2B,oBAAbC,EAAuHA,EAASD,GAAS,KAC1a,GACF,EAEOstF,CACT,CAxCyB,CAwCvB,aA8BF,SAASxyD,EAAgBzhC,GACvB,MAA0B,MAAnBA,EAAKuZ,OAAO,GAAavZ,EAAO,IAAMA,CAC/C,CASA,SAAS2hC,EAAc0C,EAAU3tC,GAC/B,IAAK2tC,EAAU,OAAO3tC,EACtB,IAAIk6C,EAAOnP,EAAgB4C,GAC3B,OAAwC,IAApC3tC,EAAS+L,SAASzB,QAAQ4vC,GAAoBl6C,GAC3C,OAAS,CAAC,EAAGA,EAAU,CAC5B+L,SAAU/L,EAAS+L,SAASw5B,OAAO2U,EAAKx9C,SAE5C,CAEA,SAASghG,EAAU19F,GACjB,MAA2B,kBAAbA,EAAwBA,GAAW,QAAWA,EAC9D,CAEA,SAAS29F,EAAc77B,GACrB,OAAO,YACwG,QAAU,EACzH,CACF,CAEA,SAASU,IAAQ,CAoFf,YAkBF,IAAIo7B,EAAsB,SAAU9hF,GAGlC,SAAS8hF,IACP,OAAO9hF,EAAiB9e,MAAMwC,KAAM/C,YAAc+C,IACpD,CA+BA,OAnCA,OAAeo+F,EAAQ9hF,GAMV8hF,EAAO9+F,UAEbwd,OAAS,WACd,IAAIxb,EAAQtB,KAEZ,OAAoB,gBAAoB0zE,EAAQ2e,SAAU,MAAM,SAAU3e,GACvEA,IAAuH,QAAU,GAClI,IACIhiE,EAASqH,EADTvY,EAAWc,EAAMmP,MAAMjQ,UAAYkzE,EAAQlzE,SAe/C,OATA,WAAe3C,QAAQyD,EAAMmP,MAAMC,UAAU,SAAU2M,GACrD,GAAa,MAATtE,GAA8B,iBAAqBsE,GAAQ,CAC7D3L,EAAU2L,EACV,IAAIvT,EAAOuT,EAAM5M,MAAM3G,MAAQuT,EAAM5M,MAAMkS,KAC3C5J,EAAQjP,EAAOszF,EAAU58F,EAAS+L,UAAU,OAAS,CAAC,EAAG8Q,EAAM5M,MAAO,CACpE3G,KAAMA,KACF4pE,EAAQ36D,KAChB,CACF,IACOA,EAAqB,eAAmBrH,EAAS,CACtDlR,SAAUA,EACVu8F,cAAehkF,IACZ,IACP,GACF,EAEOqlF,CACT,CArC0B,CAqCxB,aAkBF,SAASC,EAAWC,GAClB,IAAIntB,EAAc,eAAiBmtB,EAAUntB,aAAemtB,EAAUt5F,MAAQ,IAE1E6pD,EAAI,SAAWp+C,GACjB,IAAI8tF,EAAsB9tF,EAAM8tF,oBAC5BC,GAAiB,OAA8B/tF,EAAO,CAAC,wBAE3D,OAAoB,gBAAoBijE,EAAQ2e,SAAU,MAAM,SAAU3e,GAExE,OADCA,IAAsI,QAAU,GAC7H,gBAAoB4qB,GAAW,OAAS,CAAC,EAAGE,EAAgB9qB,EAAS,CACvF14D,IAAKujF,IAET,GACF,EAWA,OATA1vC,EAAEsiB,YAAcA,EAChBtiB,EAAEpzC,iBAAmB6iF,EAQd,IAAazvC,EAAGyvC,EACzB,CAEA,IAAIrjF,EAAa,aACjB,SAASwjF,IAKP,OAAOxjF,EAAW+gF,EACpB,CACA,SAAS0C,IAKP,OAAOzjF,EAAWy4D,GAASlzE,QAC7B,CACA,SAASm+F,IAKP,IAAI5lF,EAAQkC,EAAWy4D,GAAS36D,MAChC,OAAOA,EAAQA,EAAMtT,OAAS,CAAC,CACjC,4ICl3BIm5F,sBARoC,IAAA7jF,aAAW,SAAUtK,EAAOuK,GAClE,IAAI6jF,GAAoB,IAAApoE,GAAShmB,GAC7BquF,GAAiB,IAAAroE,GAAgBooE,GACjCE,GAAc,IAAAtoE,GAAaqoE,GAC/B,OAAoB,gBAAoB,EAAAnnE,GAAQ,OAAS,CACvD3c,IAAKA,GACJ+jF,GACL,mICAIC,sBAP2B,IAAAjkF,aAAW,SAAUtK,EAAOuK,GACzD,IAAIikF,GAAoB,IAAAxoE,GAAShmB,GAC7BsuF,GAAc,IAAAtoE,GAAgBwoE,GAClC,OAAoB,gBAAoB,EAAAtnE,GAAQ,OAAS,CACvD3c,IAAKA,GACJ+jF,GACL,oICCIG,sBAP+B,IAAAnkF,aAAW,SAAUtK,EAAOuK,GAC7D,IAAI8jF,GAAiB,IAAAroE,GAAgBhmB,GACjCsuF,GAAc,IAAAtoE,GAAaqoE,GAC/B,OAAoB,gBAAoB,EAAAnnE,GAAQ,OAAS,CACvD3c,IAAKA,GACJ+jF,GACL,sNC/BA,SAASI,IACP,IACE,IAAIj0F,GAAK8nC,QAAQ1zC,UAAU06B,QAAQx6B,KAAK4/F,QAAQC,UAAUrsD,QAAS,IAAI,WAAa,IACtF,CAAE,MAAO9nC,GAAI,CACb,OAAQi0F,EAA4B,WAClC,QAASj0F,CACX,IACF,+DCPIo0F,EAAY/kE,OAAOlR,OACnB,SAAkB5hB,GACd,MAAwB,kBAAVA,GAAsBA,IAAUA,CAClD,EAUJ,SAAS83F,EAAeC,EAAWC,GAC/B,GAAID,EAAUtiG,SAAWuiG,EAAWviG,OAChC,OAAO,EAEX,IAAK,IAAIyN,EAAI,EAAGA,EAAI60F,EAAUtiG,OAAQyN,IAClC,GAdS4jF,EAcIiR,EAAU70F,GAdP+wB,EAcW+jE,EAAW90F,KAbtC4jF,IAAU7yD,GAGV4jE,EAAU/Q,IAAU+Q,EAAU5jE,IAW1B,OAAO,EAfnB,IAAiB6yD,EAAO7yD,EAkBpB,OAAO,CACX,gBCkdA,IAxdA,IAAItgB,EAA+C,CACjDpW,KAAM,kBACNmQ,OAAQ,0JAYNuqF,EALW,SAAkBjvF,GAC/B,OAAO,OAAI,QAAQ,OAAS,CAC1B+K,IAAKJ,GACJ3K,GACL,EAGIkvF,EAA0B,CAC5BC,SAAU,SAAkBnvF,GAC1B,IAAIovF,EAAepvF,EAAMovF,aACvBC,EAAUrvF,EAAMqvF,QAChBC,EAAkBtvF,EAAMsvF,gBACxBrsB,EAAUjjE,EAAMijE,QAChBssB,EAAiBvvF,EAAMuvF,eACzB,OAAQtsB,GACN,IAAK,OACH,MAAO,uHAAuHx0E,OAAO6gG,EAAkB,qDAAuD,GAAI,KACpN,IAAK,QACH,OAAOC,EAAiB,GAAG9gG,OAAOuR,EAAM,eAAiB,SAAU,gBAAgBvR,OAAO2gG,EAAe,uBAAyB,GAAI,mCAAmC3gG,OAAO4gG,EAAU,uCAAyC,IAAM,GAC3O,IAAK,QACH,MAAO,6GACT,QACE,MAAO,GAEb,EACAl1C,SAAU,SAAkBn6C,GAC1B,IAAItL,EAASsL,EAAMtL,OACjB86F,EAAexvF,EAAMhO,MACrBA,OAAyB,IAAjBw9F,EAA0B,GAAKA,EACvCC,EAASzvF,EAAMyvF,OACfC,EAAa1vF,EAAM0vF,WACrB,OAAQh7F,GACN,IAAK,kBACL,IAAK,YACL,IAAK,eACH,MAAO,UAAUjG,OAAOuD,EAAO,iBACjC,IAAK,QACH,MAAO,0CACT,IAAK,sBACH,MAAO,SAASvD,OAAOghG,EAAOhjG,OAAS,EAAI,IAAM,GAAI,KAAKgC,OAAOghG,EAAO9gG,KAAK,KAAM,eACrF,IAAK,gBACH,MAAoB,UAAUF,OAAOuD,EAA9B09F,EAAqC,uCAAkE,eAChH,QACE,MAAO,GAEb,EACAC,QAAS,SAAiB3vF,GACxB,IAAIijE,EAAUjjE,EAAMijE,QAClB2sB,EAAU5vF,EAAM4vF,QAChBr9F,EAAUyN,EAAMzN,QAChBs9F,EAAgB7vF,EAAMhO,MACtBA,OAA0B,IAAlB69F,EAA2B,GAAKA,EACxCC,EAAc9vF,EAAM8vF,YACpBJ,EAAa1vF,EAAM0vF,WACnBK,EAAa/vF,EAAM+vF,WACnBC,EAAgBhwF,EAAMgwF,cACpBC,EAAgB,SAAuBn+E,EAAKxc,GAC9C,OAAOwc,GAAOA,EAAIrlB,OAAS,GAAGgC,OAAOqjB,EAAIzX,QAAQ/E,GAAQ,EAAG,QAAQ7G,OAAOqjB,EAAIrlB,QAAU,EAC3F,EACA,GAAgB,UAAZw2E,GAAuB6sB,EACzB,MAAO,SAASrhG,OAAOuD,EAAO,cAAcvD,OAAOwhG,EAAcH,EAAaF,GAAU,KAE1F,GAAgB,SAAZ3sB,GAAsB+sB,EAAe,CACvC,IAAIE,EAAWR,EAAa,YAAc,GACtCj0F,EAAS,GAAGhN,OAAOshG,EAAa,YAAc,IAAIthG,OAAOyhG,GAC7D,MAAO,GAAGzhG,OAAOuD,GAAOvD,OAAOgN,EAAQ,MAAMhN,OAAOwhG,EAAc19F,EAASq9F,GAAU,IACvF,CACA,MAAO,EACT,EACAO,SAAU,SAAkBnwF,GAC1B,IAAIowF,EAAapwF,EAAMowF,WACrBC,EAAiBrwF,EAAMqwF,eACzB,MAAO,GAAG5hG,OAAO4hG,GAAgB5hG,OAAO2hG,EAAa,oBAAsBA,EAAa,GAAI,IAC9F,GAmIEE,EAhIa,SAAoBtwF,GACnC,IAAIuwF,EAAgBvwF,EAAMuwF,cACxBC,EAAgBxwF,EAAMwwF,cACtBC,EAAezwF,EAAMywF,aACrBC,EAAmB1wF,EAAM0wF,iBACzBC,EAAY3wF,EAAM2wF,UAClBb,EAAc9vF,EAAM8vF,YACpBxB,EAActuF,EAAMsuF,YACpBp+D,EAAKlwB,EAAMkwB,GACX8/D,EAAgBhwF,EAAMgwF,cACpBY,EAAmBtC,EAAYsC,iBACjCC,EAAiBvC,EAAYuC,eAC7BT,EAAa9B,EAAY8B,WACzBf,EAAUf,EAAYe,QACtByB,EAAmBxC,EAAYwC,iBAC/B1B,EAAed,EAAYc,aAC3B2B,EAAazC,EAAYyC,WACzBx+F,EAAU+7F,EAAY/7F,QACtBy+F,EAAqB1C,EAAY0C,mBACjC1B,EAAkBhB,EAAYgB,gBAC9B2B,EAAY3C,EAAY2C,UACtBC,EAAY5C,EAAY,cACxB6C,EAAW7C,EAAY,aAGvB8C,GAAW,IAAAxc,UAAQ,WACrB,OAAO,QAAc,OAAc,CAAC,EAAGsa,GAA0B0B,GAAoB,CAAC,EACxF,GAAG,CAACA,IAGAS,GAAe,IAAAzc,UAAQ,WACzB,IAQmCn3D,EAR/B7vB,EAAU,GACd,GAAI2iG,GAAiBa,EAASj3C,SAAU,CACtC,IAAIm3C,EAASf,EAAce,OACzBC,EAAkBhB,EAAch+F,QAChCi/F,EAAejB,EAAciB,aAC7BC,EAAgBlB,EAAckB,cAC9Bz6F,EAAQu5F,EAAcv5F,MAOpBujF,EAAWiX,GAAgBF,IALE7zE,EAKiBzmB,EAJxCzB,MAAMC,QAAQioB,GAAa,KAANA,GAK3BzrB,EAAQuoF,EAAWsW,EAAetW,GAAY,GAG9CmX,EAAgBH,GAAmBE,QAAiBr0F,EACpDqyF,EAASiC,EAAgBA,EAAcnjG,IAAIsiG,GAAkB,GAC7Dc,GAAgB,OAAc,CAGhCjC,WAAYnV,GAAYuW,EAAiBvW,EAAUuV,GACnD99F,MAAOA,EACPy9F,OAAQA,GACPc,GACH3iG,EAAUwjG,EAASj3C,SAASw3C,EAC9B,CACA,OAAO/jG,CACT,GAAG,CAAC2iG,EAAea,EAAUN,EAAkBhB,EAAae,IACxDe,GAAc,IAAAhd,UAAQ,WACxB,IAAIid,EAAW,GACXjC,EAAUY,GAAiBC,EAC3BV,KAAgBS,GAAiBV,GAAeA,EAAYrtD,SAAS+tD,IACzE,GAAIZ,GAAWwB,EAASzB,QAAS,CAC/B,IAAImC,EAAe,CACjBlC,QAASA,EACT59F,MAAO6+F,EAAejB,GACtBF,WAAYoB,EAAiBlB,EAASE,GACtCC,WAAYA,EACZx9F,QAASm+F,EACTztB,QAAS2sB,IAAYY,EAAgB,OAAS,QAC9CV,YAAaA,EACbE,cAAeA,GAEjB6B,EAAWT,EAASzB,QAAQmC,EAC9B,CACA,OAAOD,CACT,GAAG,CAACrB,EAAeC,EAAcI,EAAgBC,EAAkBM,EAAUV,EAAkBZ,EAAaE,IACxG+B,GAAc,IAAAnd,UAAQ,WACxB,IAAIod,EAAa,GACjB,GAAIjB,GAAcx+F,EAAQ9F,SAAWwkG,GAAaG,EAASjB,SAAU,CACnE,IAAIE,EAAiBW,EAAmB,CACtCrwF,MAAO+vF,EAAiBjkG,SAE1BulG,EAAaZ,EAASjB,SAAS,CAC7BC,WAAYA,EACZC,eAAgBA,GAEpB,CACA,OAAO2B,CACT,GAAG,CAACtB,EAAkBN,EAAYW,EAAYK,EAAU7+F,EAASy+F,EAAoBC,IACjF1B,EAA0G,yBAAtE,OAAlBgB,QAA4C,IAAlBA,OAA2B,EAASA,EAAc77F,QAC9Fu9F,GAAe,IAAArd,UAAQ,WACzB,IAAIsd,EAAc,GAClB,GAAId,EAASjC,SAAU,CACrB,IAAIlsB,EAAUwtB,EAAe,QAAUM,EAAa,OAAS,QAC7DmB,EAAcd,EAASjC,SAAS,CAC9B,aAAc+B,EACdjuB,QAASA,EACTysB,WAAYc,GAAiBM,EAAiBN,EAAeV,GAC7DT,QAASA,EACTD,aAAcA,EACdE,gBAAiBA,EACjBC,eAAgBA,GAEpB,CACA,OAAO2C,CACT,GAAG,CAAChB,EAAWV,EAAeC,EAAcpB,EAASyB,EAAkB1B,EAAc2B,EAAYK,EAAUtB,EAAaR,EAAiBC,IACrI4C,GAAmB,OAAI,EAAA1W,SAAU,MAAM,OAAI,OAAQ,CACrDvrD,GAAI,kBACHmhE,IAAe,OAAI,OAAQ,CAC5BnhE,GAAI,gBACH0hE,IAAc,OAAI,OAAQ,CAC3B1hE,GAAI,gBACH6hE,IAAc,OAAI,OAAQ,CAC3B7hE,GAAI,iBACH+hE,IACH,OAAO,OAAI,EAAAxW,SAAU,MAAM,OAAIwT,EAAY,CACzC/+D,GAAIA,GACHq/D,GAAkB4C,IAAmB,OAAIlD,EAAY,CACtD,YAAakC,EACb,cAAe,QACf,gBAAiB,iBACjBiB,KAAM,OACLzB,IAAcpB,GAAkB4C,GACrC,EAGIE,EAAa,CAAC,CAChBpoD,KAAM,IACNqoD,QAAS,+LACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,oBACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,gBACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,qDACR,CACDroD,KAAM,IACNqoD,QAAS,qEACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,KACNqoD,QAAS,gBACR,CACDroD,KAAM,KACNqoD,QAAS,gBACR,CACDroD,KAAM,IACNqoD,QAAS,2KACR,CACDroD,KAAM,IACNqoD,QAAS,mCACR,CACDroD,KAAM,IACNqoD,QAAS,yFACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,IACNqoD,QAAS,+GACR,CACDroD,KAAM,IACNqoD,QAAS,6BACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,IACNqoD,QAAS,2GACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,+CACR,CACDroD,KAAM,IACNqoD,QAAS,6FACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,qPACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,2DACR,CACDroD,KAAM,IACNqoD,QAAS,mCACR,CACDroD,KAAM,IACNqoD,QAAS,qGACR,CACDroD,KAAM,IACNqoD,QAAS,qGACR,CACDroD,KAAM,IACNqoD,QAAS,yFACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,mMACR,CACDroD,KAAM,IACNqoD,QAAS,+CACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,2DACR,CACDroD,KAAM,IACNqoD,QAAS,6BACR,CACDroD,KAAM,IACNqoD,QAAS,uFACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,IACNqoD,QAAS,qMACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,oBACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,gBACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,qDACR,CACDroD,KAAM,IACNqoD,QAAS,2EACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,KACNqoD,QAAS,gBACR,CACDroD,KAAM,IACNqoD,QAAS,iLACR,CACDroD,KAAM,IACNqoD,QAAS,mCACR,CACDroD,KAAM,IACNqoD,QAAS,yFACR,CACDroD,KAAM,IACNqoD,QAAS,yFACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,+GACR,CACDroD,KAAM,IACNqoD,QAAS,mCACR,CACDroD,KAAM,IACNqoD,QAAS,mFACR,CACDroD,KAAM,IACNqoD,QAAS,iHACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,+CACR,CACDroD,KAAM,IACNqoD,QAAS,mGACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,qPACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,2DACR,CACDroD,KAAM,IACNqoD,QAAS,mCACR,CACDroD,KAAM,IACNqoD,QAAS,qGACR,CACDroD,KAAM,IACNqoD,QAAS,yGACR,CACDroD,KAAM,IACNqoD,QAAS,+FACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,mMACR,CACDroD,KAAM,IACNqoD,QAAS,+CACR,CACDroD,KAAM,KACNqoD,QAAS,UACR,CACDroD,KAAM,IACNqoD,QAAS,iEACR,CACDroD,KAAM,IA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AAM,CAAEkkB,QAASlkB,GAEvF,IAAIuvJ,EAAoC,IAAI3lH,IAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KA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18G,IACvBoF,CACT,GC3DO,MAAMu3G,GAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAeWC,GAAe,CAAC,MAAO,SAAU,QAAS,YCxE1CC,GAAW,CACtBvrL,KAAM,WACNuyE,SAsCF,SAA0BC,EAAS30E,EAAI40E,GACrC,MAAM53E,EAAOG,KAEb,IAAI22E,EAEA65G,EAEAr8I,EAEAvkC,EAEA6gL,EACJ,OAYA,SAAej6J,GAEb,OAaF,SAAgBA,GAId,OAHAghD,EAAQ5F,MAAM,YACd4F,EAAQ5F,MAAM,gBACd4F,EAAQE,QAAQlhD,GACT50B,CACT,CAlBSyL,CAAOmpB,EAChB,EAiCA,SAAS50B,EAAK40B,GACZ,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACTk6J,GAEI,KAATl6J,GACFghD,EAAQE,QAAQlhD,GAChBg6J,GAAa,EACNG,GAEI,KAATn6J,GACFghD,EAAQE,QAAQlhD,GAChBmgD,EAAS,EAMF92E,EAAKuoL,UAAYvlL,EAAK+tL,GAI3B15G,EAAW1gD,IACbghD,EAAQE,QAAQlhD,GAEhB2d,EAASl2C,OAAOqR,aAAaknB,GACtB06C,GAEFuG,EAAIjhD,EACb,CAgBA,SAASk6J,EAAgBl6J,GACvB,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GAChBmgD,EAAS,EACFk6G,GAEI,KAATr6J,GACFghD,EAAQE,QAAQlhD,GAChBmgD,EAAS,EACT/mE,EAAQ,EACDkhL,GAIL55G,EAAW1gD,IACbghD,EAAQE,QAAQlhD,GAChBmgD,EAAS,EAGF92E,EAAKuoL,UAAYvlL,EAAK+tL,GAExBn5G,EAAIjhD,EACb,CAYA,SAASq6J,EAAkBr6J,GACzB,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GAGT32B,EAAKuoL,UAAYvlL,EAAK+tL,GAExBn5G,EAAIjhD,EACb,CAYA,SAASs6J,EAAgBt6J,GACvB,MAAM/uB,EAAQ,SACd,OAAI+uB,IAAS/uB,EAAMoI,WAAWD,MAC5B4nE,EAAQE,QAAQlhD,GACF/uB,IAAVmI,EAGK/P,EAAKuoL,UAAYvlL,EAAK2kL,EAExBsJ,GAEFr5G,EAAIjhD,EACb,CAYA,SAASm6J,EAAcn6J,GACrB,OAAI0gD,EAAW1gD,IACbghD,EAAQE,QAAQlhD,GAEhB2d,EAASl2C,OAAOqR,aAAaknB,GACtB06C,GAEFuG,EAAIjhD,EACb,CAcA,SAAS06C,EAAQ16C,GACf,GACW,OAATA,GACS,KAATA,GACS,KAATA,GACA4mD,EAA0B5mD,GAC1B,CACA,MAAMsa,EAAiB,KAATta,EACRxxB,EAAOmvC,EAAOt7B,cACpB,OAAKi4B,GAAU0/I,IAAcF,GAAap9I,SAASluC,GAM/CqrL,GAAen9I,SAASiB,EAAOt7B,gBACjC89D,EAAS,EACL7lC,GACF0mC,EAAQE,QAAQlhD,GACTu6J,GAKFlxL,EAAKuoL,UAAYvlL,EAAG2zB,GAAQgxJ,EAAahxJ,KAElDmgD,EAAS,EAEF92E,EAAKuoL,YAAcvoL,EAAK26E,OAAOyjD,KAAKp+H,EAAKgoE,MAAMlpE,MAClD84E,EAAIjhD,GACJg6J,EACAQ,EAAwBx6J,GACxBy6J,EAA4Bz6J,KAtB9BmgD,EAAS,EAGF92E,EAAKuoL,UAAYvlL,EAAG2zB,GAAQgxJ,EAAahxJ,GAoBpD,CAGA,OAAa,KAATA,GAAe2gD,EAAkB3gD,IACnCghD,EAAQE,QAAQlhD,GAChB2d,GAAUl2C,OAAOqR,aAAaknB,GACvB06C,GAEFuG,EAAIjhD,EACb,CAYA,SAASu6J,EAAiBv6J,GACxB,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GAGT32B,EAAKuoL,UAAYvlL,EAAK2kL,GAExB/vG,EAAIjhD,EACb,CAYA,SAASw6J,EAAwBx6J,GAC/B,OAAIwnD,EAAcxnD,IAChBghD,EAAQE,QAAQlhD,GACTw6J,GAEFE,EAAY16J,EACrB,CAyBA,SAASy6J,EAA4Bz6J,GACnC,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACT06J,GAII,KAAT16J,GAAwB,KAATA,GAAe0gD,EAAW1gD,IAC3CghD,EAAQE,QAAQlhD,GACT26J,GAELnzG,EAAcxnD,IAChBghD,EAAQE,QAAQlhD,GACTy6J,GAEFC,EAAY16J,EACrB,CAgBA,SAAS26J,EAAsB36J,GAE7B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA2gD,EAAkB3gD,IAElBghD,EAAQE,QAAQlhD,GACT26J,GAEFC,EAA2B56J,EACpC,CAeA,SAAS46J,EAA2B56J,GAClC,OAAa,KAATA,GACFghD,EAAQE,QAAQlhD,GACT66J,GAELrzG,EAAcxnD,IAChBghD,EAAQE,QAAQlhD,GACT46J,GAEFH,EAA4Bz6J,EACrC,CAeA,SAAS66J,EAA6B76J,GACpC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOihD,EAAIjhD,GAEA,KAATA,GAAwB,KAATA,GACjBghD,EAAQE,QAAQlhD,GAChBi6J,EAAUj6J,EACH86J,GAELtzG,EAAcxnD,IAChBghD,EAAQE,QAAQlhD,GACT66J,GAEFE,EAA+B/6J,EACxC,CAcA,SAAS86J,EAA6B96J,GACpC,OAAIA,IAASi6J,GACXj5G,EAAQE,QAAQlhD,GAChBi6J,EAAU,KACHe,GAEI,OAATh7J,GAAiB6gD,EAAmB7gD,GAC/BihD,EAAIjhD,IAEbghD,EAAQE,QAAQlhD,GACT86J,EACT,CAYA,SAASC,EAA+B/6J,GACtC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA4mD,EAA0B5mD,GAEnB46J,EAA2B56J,IAEpCghD,EAAQE,QAAQlhD,GACT+6J,EACT,CAaA,SAASC,EAAkCh7J,GACzC,OAAa,KAATA,GAAwB,KAATA,GAAewnD,EAAcx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","sources":["webpack://halo/./node_modules/@appsignal/core/dist/esm/utils/functional.js","webpack://halo/./node_modules/@appsignal/core/dist/esm/utils/hashmap.js","webpack://halo/./node_modules/@appsignal/core/dist/esm/utils/error.js","webpack://halo/./node_modules/@appsignal/core/dist/esm/utils/url.js","webpack://halo/./node_modules/@appsignal/core/dist/esm/utils/environment.js","webpack://halo/./node_modules/@appsignal/core/dist/esm/serializable.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/environment.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/transports/xdomain.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/transports/xhr.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/transports/fetch.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/transports/node.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/api.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/span.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/queue.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/dispatcher.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/index.js","webpack://halo/./node_modules/@appsignal/javascript/dist/esm/version.js","webpack://halo/./node_modules/@appsignal/plugin-breadcrumbs-console/dist/esm/index.js","webpack://halo/./node_modules/@appsignal/plugin-breadcrumbs-network/dist/esm/index.js","webpack://halo/./node_modules/@appsignal/plugin-path-decorator/dist/esm/index.js","webpack://halo/./node_modules/@appsignal/plugin-window-events/dist/esm/index.js","webpack://halo/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://halo/./node_modules/stylis/src/Utility.js","webpack://halo/./node_modules/stylis/src/Tokenizer.js","webpack://halo/./node_modules/stylis/src/Enum.js","webpack://halo/./node_modules/stylis/src/Serializer.js","webpack://halo/./node_modules/stylis/src/Parser.js","webpack://halo/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://halo/./node_modules/stylis/src/Middleware.js","webpack://halo/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://halo/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://halo/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://halo/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://halo/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://halo/./node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","webpack://halo/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://halo/./node_modules/@fluentui/react-component-ref/dist/es/RefFindNode.js","webpack://halo/./node_modules/@fluentui/react-component-ref/dist/es/RefForward.js","webpack://halo/./node_modules/@fluentui/react-component-ref/dist/es/Ref.js","webpack://halo/./node_modules/@fluentui/react-component-ref/dist/es/utils.js","webpack://halo/./node_modules/@semantic-ui-react/event-stack/lib/cjs/event-stack.production.js","webpack://halo/./node_modules/@semantic-ui-react/event-stack/lib/index.js","webpack://halo/./node_modules/aphrodite/lib/chunk-d8625444.js","webpack://halo/./node_modules/aphrodite/lib/no-important.js","webpack://halo/./node_modules/aphrodite/no-important.js","webpack://halo/./node_modules/asap/browser-asap.js","webpack://halo/./node_modules/asap/browser-raw.js","webpack://halo/./node_modules/ccount/index.js","webpack://halo/./node_modules/clsx/dist/clsx.m.js","webpack://halo/./node_modules/country-list/country-list.js","webpack://halo/./node_modules/dayjs/dayjs.min.js","webpack://halo/./node_modules/dayjs/plugin/timezone.js","webpack://halo/./node_modules/dayjs/plugin/utc.js","webpack://halo/./node_modules/debounce-promise/dist/index.js","webpack://halo/./node_modules/exenv/index.js","webpack://halo/./node_modules/extend/index.js","webpack://halo/./node_modules/fuse.js/dist/fuse.esm.js","webpack://halo/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://halo/./node_modules/value-equal/esm/value-equal.js","webpack://halo/./node_modules/history/esm/history.js","webpack://halo/./node_modules/i18n-js/dist/import/Locales.js","webpack://halo/./node_modules/i18n-js/dist/import/Pluralization.js","webpack://halo/./node_modules/make-plural/plurals.mjs","webpack://halo/./node_modules/i18n-js/dist/import/helpers/camelCaseKeys.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/isSet.js","webpack://halo/./node_modules/bignumber.js/bignumber.mjs","webpack://halo/./node_modules/i18n-js/dist/import/helpers/expandRoundMode.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/roundNumber.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/formatNumber.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/getFullScope.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/inferType.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/interpolate.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/lookup.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/numberToHuman.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/numberToHumanSize.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/parseDate.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/pluralize.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/strftime.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/timeAgoInWords.js","webpack://halo/./node_modules/i18n-js/dist/import/MissingTranslation.js","webpack://halo/./node_modules/i18n-js/dist/import/I18n.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/createTranslationOptions.js","webpack://halo/./node_modules/i18n-js/dist/import/helpers/numberToDelimited.js","webpack://halo/./node_modules/inline-style-parser/index.js","webpack://halo/./node_modules/is-buffer/index.js","webpack://halo/./node_modules/keyboard-key/src/keyboardKey.js","webpack://halo/./node_modules/lodash/_DataView.js","webpack://halo/./node_modules/lodash/_Hash.js","webpack://halo/./node_modules/lodash/_ListCache.js","webpack://halo/./node_modules/lodash/_Map.js","webpack://halo/./node_modules/lodash/_MapCache.js","webpack://halo/./node_modules/lodash/_Promise.js","webpack://halo/./node_modules/lodash/_Set.js","webpack://halo/./node_modules/lodash/_SetCache.js","webpack://halo/./node_modules/lodash/_Stack.js","webpack://halo/./node_modules/lodash/_Symbol.js","webpack://halo/./node_modules/lodash/_Uint8Array.js","webpack://halo/./node_modules/lodash/_WeakMap.js","webpack://halo/./node_modules/lodash/_apply.js","webpack://halo/./node_modules/lodash/_arrayFilter.js","webpack://halo/./node_modules/lodash/_arrayIncludes.js","webpack://halo/./node_modules/lodash/_arrayIncludesWith.js","webpack://halo/./node_modules/lodash/_arrayLikeKeys.js","webpack://halo/./node_modules/lodash/_arrayMap.js","webpack://halo/./node_modules/lodash/_arrayPush.js","webpack://halo/./node_modules/lodash/_arrayReduce.js","webpack://halo/./node_modules/lodash/_arraySome.js","webpack://halo/./node_modules/lodash/_asciiToArray.js","webpack://halo/./node_modules/lodash/_asciiWords.js","webpack://halo/./node_modules/lodash/_assignMergeValue.js","webpack://halo/./node_modules/lodash/_assignValue.js","webpack://halo/./node_modules/lodash/_assocIndexOf.js","webpack://halo/./node_modules/lodash/_baseAssignValue.js","webpack://halo/./node_modules/lodash/_baseCreate.js","webpack://halo/./node_modules/lodash/_baseEach.js","webpack://halo/./node_modules/lodash/_baseFindIndex.js","webpack://halo/./node_modules/lodash/_baseFlatten.js","webpack://halo/./node_modules/lodash/_baseFor.js","webpack://halo/./node_modules/lodash/_baseForOwn.js","webpack://halo/./node_modules/lodash/_baseGet.js","webpack://halo/./node_modules/lodash/_baseGetAllKeys.js","webpack://halo/./node_modules/lodash/_baseGetTag.js","webpack://halo/./node_modules/lodash/_baseHas.js","webpack://halo/./node_modules/lodash/_baseHasIn.js","webpack://halo/./node_modules/lodash/_baseIndexOf.js","webpack://halo/./node_modules/lodash/_baseIsArguments.js","webpack://halo/./node_modules/lodash/_baseIsEqual.js","webpack://halo/./node_modules/lodash/_baseIsEqualDeep.js","webpack://halo/./node_modules/lodash/_baseIsMatch.js","webpack://halo/./node_modules/lodash/_baseIsNaN.js","webpack://halo/./node_modules/lodash/_baseIsNative.js","webpack://halo/./node_modules/lodash/_baseIsTypedArray.js","webpack://halo/./node_modules/lodash/_baseIteratee.js","webpack://halo/./node_modules/lodash/_baseKeys.js","webpack://halo/./node_modules/lodash/_baseKeysIn.js","webpack://halo/./node_modules/lodash/_baseMap.js","webpack://halo/./node_modules/lodash/_baseMatches.js","webpack://halo/./node_modules/lodash/_baseMatchesProperty.js","webpack://halo/./node_modules/lodash/_baseMerge.js","webpack://halo/./node_modules/lodash/_baseMergeDeep.js","webpack://halo/./node_modules/lodash/_baseOrderBy.js","webpack://halo/./node_modules/lodash/_baseProperty.js","webpack://halo/./node_modules/lodash/_basePropertyDeep.js","webpack://halo/./node_modules/lodash/_basePropertyOf.js","webpack://halo/./node_modules/lodash/_baseRange.js","webpack://halo/./node_modules/lodash/_baseRepeat.js","webpack://halo/./node_modules/lodash/_baseRest.js","webpack://halo/./node_modules/lodash/_baseSetToString.js","webpack://halo/./node_modules/lodash/_baseSlice.js","webpack://halo/./node_modules/lodash/_baseSortBy.js","webpack://halo/./node_modules/lodash/_baseTimes.js","webpack://halo/./node_modules/lodash/_baseToString.js","webpack://halo/./node_modules/lodash/_baseTrim.js","webpack://halo/./node_modules/lodash/_baseUnary.js","webpack://halo/./node_modules/lodash/_baseUniq.js","webpack://halo/./node_modules/lodash/_baseZipObject.js","webpack://halo/./node_modules/lodash/_cacheHas.js","webpack://halo/./node_modules/lodash/_castPath.js","webpack://halo/./node_modules/lodash/_castSlice.js","webpack://halo/./node_modules/lodash/_cloneArrayBuffer.js","webpack://halo/./node_modules/lodash/_cloneBuffer.js","webpack://halo/./node_modules/lodash/_cloneTypedArray.js","webpack://halo/./node_modules/lodash/_compareAscending.js","webpack://halo/./node_modules/lodash/_compareMultiple.js","webpack://halo/./node_modules/lodash/_copyArray.js","webpack://halo/./node_modules/lodash/_copyObject.js","webpack://halo/./node_modules/lodash/_coreJsData.js","webpack://halo/./node_modules/lodash/_createAssigner.js","webpack://halo/./node_modules/lodash/_createBaseEach.js","webpack://halo/./node_modules/lodash/_createBaseFor.js","webpack://halo/./node_modules/lodash/_createCaseFirst.js","webpack://halo/./node_modules/lodash/_createCompounder.js","webpack://halo/./node_modules/lodash/_createRange.js","webpack://halo/./node_modules/lodash/_createSet.js","webpack://halo/./node_modules/lodash/_deburrLetter.js","webpack://halo/./node_modules/lodash/_defineProperty.js","webpack://halo/./node_modules/lodash/_equalArrays.js","webpack://halo/./node_modules/lodash/_equalByTag.js","webpack://halo/./node_modules/lodash/_equalObjects.js","webpack://halo/./node_modules/lodash/_freeGlobal.js","webpack://halo/./node_modules/lodash/_getAllKeys.js","webpack://halo/./node_modules/lodash/_getMapData.js","webpack://halo/./node_modules/lodash/_getMatchData.js","webpack://halo/./node_modules/lodash/_getNative.js","webpack://halo/./node_modules/lodash/_getPrototype.js","webpack://halo/./node_modules/lodash/_getRawTag.js","webpack://halo/./node_modules/lodash/_getSymbols.js","webpack://halo/./node_modules/lodash/_getTag.js","webpack://halo/./node_modules/lodash/_getValue.js","webpack://halo/./node_modules/lodash/_hasPath.js","webpack://halo/./node_modules/lodash/_hasUnicode.js","webpack://halo/./node_modules/lodash/_hasUnicodeWord.js","webpack://halo/./node_modules/lodash/_hashClear.js","webpack://halo/./node_modules/lodash/_hashDelete.js","webpack://halo/./node_modules/lodash/_hashGet.js","webpack://halo/./node_modules/lodash/_hashHas.js","webpack://halo/./node_modules/lodash/_hashSet.js","webpack://halo/./node_modules/lodash/_initCloneObject.js","webpack://halo/./node_modules/lodash/_isFlattenable.js","webpack://halo/./node_modules/lodash/_isIndex.js","webpack://halo/./node_modules/lodash/_isIterateeCall.js","webpack://halo/./node_modules/lodash/_isKey.js","webpack://halo/./node_modules/lodash/_isKeyable.js","webpack://halo/./node_modules/lodash/_isMasked.js","webpack://halo/./node_modules/lodash/_isPrototype.js","webpack://halo/./node_modules/lodash/_isStrictComparable.js","webpack://halo/./node_modules/lodash/_listCacheClear.js","webpack://halo/./node_modules/lodash/_listCacheDelete.js","webpack://halo/./node_modules/lodash/_listCacheGet.js","webpack://halo/./node_modules/lodash/_listCacheHas.js","webpack://halo/./node_modules/lodash/_listCacheSet.js","webpack://halo/./node_modules/lodash/_mapCacheClear.js","webpack://halo/./node_modules/lodash/_mapCacheDelete.js","webpack://halo/./node_modules/lodash/_mapCacheGet.js","webpack://halo/./node_modules/lodash/_mapCacheHas.js","webpack://halo/./node_modules/lodash/_mapCacheSet.js","webpack://halo/./node_modules/lodash/_mapToArray.js","webpack://halo/./node_modules/lodash/_matchesStrictComparable.js","webpack://halo/./node_modules/lodash/_memoizeCapped.js","webpack://halo/./node_modules/lodash/_nativeCreate.js","webpack://halo/./node_modules/lodash/_nativeKeys.js","webpack://halo/./node_modules/lodash/_nativeKeysIn.js","webpack://halo/./node_modules/lodash/_nodeUtil.js","webpack://halo/./node_modules/lodash/_objectToString.js","webpack://halo/./node_modules/lodash/_overArg.js","webpack://halo/./node_modules/lodash/_overRest.js","webpack://halo/./node_modules/lodash/_root.js","webpack://halo/./node_modules/lodash/_safeGet.js","webpack://halo/./node_modules/lodash/_setCacheAdd.js","webpack://halo/./node_modules/lodash/_setCacheHas.js","webpack://halo/./node_modules/lodash/_setToArray.js","webpack://halo/./node_modules/lodash/_setToString.js","webpack://halo/./node_modules/lodash/_shortOut.js","webpack://halo/./node_modules/lodash/_stackClear.js","webpack://halo/./node_modules/lodash/_stackDelete.js","webpack://halo/./node_modules/lodash/_stackGet.js","webpack://halo/./node_modules/lodash/_stackHas.js","webpack://halo/./node_modules/lodash/_stackSet.js","webpack://halo/./node_modules/lodash/_strictIndexOf.js","webpack://halo/./node_modules/lodash/_stringToArray.js","webpack://halo/./node_modules/lodash/_stringToPath.js","webpack://halo/./node_modules/lodash/_toKey.js","webpack://halo/./node_modules/lodash/_toSource.js","webpack://halo/./node_modules/lodash/_trimmedEndIndex.js","webpack://halo/./node_modules/lodash/_unicodeToArray.js","webpack://halo/./node_modules/lodash/_unicodeWords.js","webpack://halo/./node_modules/lodash/camelCase.js","webpack://halo/./node_modules/lodash/capitalize.js","webpack://halo/./node_modules/lodash/constant.js","webpack://halo/./node_modules/lodash/deburr.js","webpack://halo/./node_modules/lodash/eq.js","webpack://halo/./node_modules/lodash/get.js","webpack://halo/./node_modules/lodash/has.js","webpack://halo/./node_modules/lodash/hasIn.js","webpack://halo/./node_modules/lodash/identity.js","webpack://halo/./node_modules/lodash/isArguments.js","webpack://halo/./node_modules/lodash/isArray.js","webpack://halo/./node_modules/lodash/isArrayLike.js","webpack://halo/./node_modules/lodash/isArrayLikeObject.js","webpack://halo/./node_modules/lodash/isBuffer.js","webpack://halo/./node_modules/lodash/isFunction.js","webpack://halo/./node_modules/lodash/isLength.js","webpack://halo/./node_modules/lodash/isObject.js","webpack://halo/./node_modules/lodash/isObjectLike.js","webpack://halo/./node_modules/lodash/isPlainObject.js","webpack://halo/./node_modules/lodash/isSymbol.js","webpack://halo/./node_modules/lodash/isTypedArray.js","webpack://halo/./node_modules/lodash/keys.js","webpack://halo/./node_modules/lodash/keysIn.js","webpack://halo/./node_modules/lodash/memoize.js","webpack://halo/./node_modules/lodash/merge.js","webpack://halo/./node_modules/lodash/noop.js","webpack://halo/./node_modules/lodash/property.js","webpack://halo/./node_modules/lodash/range.js","webpack://halo/./node_modules/lodash/repeat.js","webpack://halo/./node_modules/lodash/sortBy.js","webpack://halo/./node_modules/lodash/stubArray.js","webpack://halo/./node_modules/lodash/stubFalse.js","webpack://halo/./node_modules/lodash/toFinite.js","webpack://halo/./node_modules/lodash/toInteger.js","webpack://halo/./node_modules/lodash/toNumber.js","webpack://halo/./node_modules/lodash/toPlainObject.js","webpack://halo/./node_modules/lodash/toString.js","webpack://halo/./node_modules/lodash/uniq.js","webpack://halo/./node_modules/lodash/upperFirst.js","webpack://halo/./node_modules/lodash/words.js","webpack://halo/./node_modules/lodash/zipObject.js","webpack://halo/./node_modules/markdown-table/index.js","webpack://halo/./node_modules/mdast-util-find-and-replace/index.js","webpack://halo/./node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","webpack://halo/./node_modules/mdast-util-find-and-replace/node_modules/unist-util-is/convert.js","webpack://halo/./node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/color.browser.js","webpack://halo/./node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/index.js","webpack://halo/./node_modules/mdast-util-gfm-autolink-literal/from-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-autolink-literal/to-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-strikethrough/from-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-strikethrough/to-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-table/from-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-table/to-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-task-list-item/from-markdown.js","webpack://halo/./node_modules/mdast-util-gfm-task-list-item/to-markdown.js","webpack://halo/./node_modules/mdast-util-gfm/from-markdown.js","webpack://halo/./node_modules/mdast-util-gfm/to-markdown.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/configure.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/handle/list-item.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/container-flow.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","webpack://halo/./node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","webpack://halo/./node_modules/micromark-extension-gfm-autolink-literal/index.js","webpack://halo/./node_modules/micromark-extension-gfm-autolink-literal/syntax.js","webpack://halo/./node_modules/micromark-extension-gfm-strikethrough/index.js","webpack://halo/./node_modules/micromark-extension-gfm-table/index.js","webpack://halo/./node_modules/micromark-extension-gfm-table/syntax.js","webpack://halo/./node_modules/micromark-extension-gfm-task-list-item/index.js","webpack://halo/./node_modules/micromark-extension-gfm-task-list-item/syntax.js","webpack://halo/./node_modules/micromark-extension-gfm/index.js","webpack://halo/./node_modules/micromark-extension-gfm/syntax.js","webpack://halo/./node_modules/micromark/dist/character/ascii-alpha.js","webpack://halo/./node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack://halo/./node_modules/micromark/dist/character/ascii-control.js","webpack://halo/./node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack://halo/./node_modules/micromark/dist/character/markdown-line-ending.js","webpack://halo/./node_modules/micromark/dist/character/markdown-space.js","webpack://halo/./node_modules/micromark/dist/character/unicode-punctuation.js","webpack://halo/./node_modules/micromark/dist/character/unicode-whitespace.js","webpack://halo/./node_modules/micromark/dist/constant/assign.js","webpack://halo/./node_modules/micromark/dist/constant/from-char-code.js","webpack://halo/./node_modules/micromark/dist/constant/has-own-property.js","webpack://halo/./node_modules/micromark/dist/constant/splice.js","webpack://halo/./node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack://halo/./node_modules/micromark/dist/tokenize/factory-space.js","webpack://halo/./node_modules/micromark/dist/util/chunked-splice.js","webpack://halo/./node_modules/micromark/dist/util/classify-character.js","webpack://halo/./node_modules/micromark/dist/util/combine-extensions.js","webpack://halo/./node_modules/micromark/dist/util/miniflat.js","webpack://halo/./node_modules/micromark/dist/util/prefix-size.js","webpack://halo/./node_modules/micromark/dist/util/regex-check.js","webpack://halo/./node_modules/micromark/dist/util/resolve-all.js","webpack://halo/./node_modules/micromark/dist/util/shallow.js","webpack://halo/./node_modules/micromark/dist/util/size-chunks.js","webpack://halo/./node_modules/path-to-regexp/index.js","webpack://halo/./node_modules/path-to-regexp/node_modules/isarray/index.js","webpack://halo/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://halo/./node_modules/prop-types/index.js","webpack://halo/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://halo/./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://halo/./node_modules/react-dom/server.browser.js","webpack://halo/./node_modules/react-fast-compare/index.js","webpack://halo/./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack://halo/./node_modules/react-markdown/node_modules/react-is/index.js","webpack://halo/./node_modules/react-redux/es/components/Context.js","webpack://halo/./node_modules/react-redux/es/utils/batch.js","webpack://halo/./node_modules/react-redux/es/utils/Subscription.js","webpack://halo/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://halo/./node_modules/react-redux/es/components/Provider.js","webpack://halo/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://halo/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://halo/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://halo/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://halo/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://halo/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://halo/./node_modules/react-redux/es/connect/mergeProps.js","webpack://halo/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://halo/./node_modules/react-redux/es/connect/connect.js","webpack://halo/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://halo/./node_modules/react-redux/es/hooks/useStore.js","webpack://halo/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://halo/./node_modules/react-redux/es/hooks/useSelector.js","webpack://halo/./node_modules/react-redux/es/index.js","webpack://halo/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://halo/./node_modules/react-redux/node_modules/react-is/index.js","webpack://halo/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://halo/./node_modules/react-router/esm/react-router.js","webpack://halo/./node_modules/react-select/async-creatable/dist/react-select-async-creatable.esm.js","webpack://halo/./node_modules/react-select/async/dist/react-select-async.esm.js","webpack://halo/./node_modules/react-select/creatable/dist/react-select-creatable.esm.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://halo/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://halo/./node_modules/react-select/dist/Select-49a62830.esm.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://halo/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://halo/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://halo/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://halo/./node_modules/react-select/dist/index-a301f526.esm.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://halo/./node_modules/react-select/dist/react-select.esm.js","webpack://halo/./node_modules/react-select/dist/useAsync-ba7c6b77.esm.js","webpack://halo/./node_modules/react-select/dist/useCreatable-d97ef2c9.esm.js","webpack://halo/./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","webpack://halo/./node_modules/react-toastify/dist/react-toastify.esm.js","webpack://halo/./node_modules/remark-gfm/index.js","webpack://halo/./node_modules/repeat-string/index.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/addons/Portal/PortalInner.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/addons/Portal/Portal.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/elements/Icon/IconGroup.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/elements/Icon/Icon.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/ModernAutoControlledComponent.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/childrenUtils.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/numberToWord.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/classNameBuilders.js","webpack://halo/./node_modules/lodash-es/_baseInRange.js","webpack://halo/./node_modules/lodash-es/inRange.js","webpack://halo/./node_modules/lodash-es/head.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/eventStack/index.js","webpack://halo/./node_modules/lodash-es/uniq.js","webpack://halo/./node_modules/lodash-es/isNumber.js","webpack://halo/./node_modules/lodash-es/isBoolean.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/factories.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/getElementType.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/getUnhandledProps.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/lib/isBrowser.js","webpack://halo/./node_modules/lodash-es/isElement.js","webpack://halo/./node_modules/react-popper/lib/esm/Manager.js","webpack://halo/./node_modules/react-popper/lib/esm/utils.js","webpack://halo/./node_modules/react-popper/lib/esm/usePopper.js","webpack://halo/./node_modules/react-popper/lib/esm/Popper.js","webpack://halo/./node_modules/lodash-es/_baseInverter.js","webpack://halo/./node_modules/lodash-es/_createInverter.js","webpack://halo/./node_modules/lodash-es/invert.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/modules/Popup/lib/positions.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/modules/Popup/lib/createReferenceProxy.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/modules/Popup/PopupContent.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/modules/Popup/PopupHeader.js","webpack://halo/./node_modules/semantic-ui-react/dist/es/modules/Popup/Popup.js","webpack://halo/./node_modules/string-hash/index.js","webpack://halo/./node_modules/style-to-object/index.js","webpack://halo/./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack://halo/./node_modules/uuid/dist/esm-browser/rng.js","webpack://halo/./node_modules/uuid/dist/esm-browser/regex.js","webpack://halo/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://halo/./node_modules/uuid/dist/esm-browser/validate.js","webpack://halo/./node_modules/uuid/dist/esm-browser/v4.js","webpack://halo/./node_modules/validator/index.js","webpack://halo/./node_modules/validator/lib/alpha.js","webpack://halo/./node_modules/validator/lib/blacklist.js","webpack://halo/./node_modules/validator/lib/contains.js","webpack://halo/./node_modules/validator/lib/equals.js","webpack://halo/./node_modules/validator/lib/escape.js","webpack://halo/./node_modules/validator/lib/isAbaRouting.js","webpack://halo/./node_modules/validator/lib/isAfter.js","webpack://halo/./node_modules/validator/lib/isAlpha.js","webpack://halo/./node_modules/validator/lib/isAlphanumeric.js","webpack://halo/./node_modules/validator/lib/isAscii.js","webpack://halo/./node_modules/validator/lib/isBIC.js","webpack://halo/./node_modules/validator/lib/isBase32.js","webpack://halo/./node_modules/validator/lib/isBase58.js","webpack://halo/./node_modules/validator/lib/isBase64.js","webpack://halo/./node_modules/validator/lib/isBefore.js","webpack://halo/./node_modules/validator/lib/isBoolean.js","webpack://halo/./node_modules/validator/lib/isBtcAddress.js","webpack://halo/./node_modules/validator/lib/isByteLength.js","webpack://halo/./node_modules/validator/lib/isCreditCard.js","webpack://halo/./node_modules/validator/lib/isCurrency.js","webpack://halo/./node_modules/validator/lib/isDataURI.js","webpack://halo/./node_modules/validator/lib/isDate.js","webpack://halo/./node_modules/validator/lib/isDecimal.js","webpack://halo/./node_modules/validator/lib/isDivisibleBy.js","webpack://halo/./node_modules/validator/lib/isEAN.js","webpack://halo/./node_modules/validator/lib/isEmail.js","webpack://halo/./node_modules/validator/lib/isEmpty.js","webpack://halo/./node_modules/validator/lib/isEthereumAddress.js","webpack://halo/./node_modules/validator/lib/isFQDN.js","webpack://halo/./node_modules/validator/lib/isFloat.js","webpack://halo/./node_modules/validator/lib/isFullWidth.js","webpack://halo/./node_modules/validator/lib/isHSL.js","webpack://halo/./node_modules/validator/lib/isHalfWidth.js","webpack://halo/./node_modules/validator/lib/isHash.js","webpack://halo/./node_modules/validator/lib/isHexColor.js","webpack://halo/./node_modules/validator/lib/isHexadecimal.js","webpack://halo/./node_modules/validator/lib/isIBAN.js","webpack://halo/./node_modules/validator/lib/isIMEI.js","webpack://halo/./node_modules/validator/lib/isIP.js","webpack://halo/./node_modules/validator/lib/isIPRange.js","webpack://halo/./node_modules/validator/lib/isISBN.js","webpack://halo/./node_modules/validator/lib/isISIN.js","webpack://halo/./node_modules/validator/lib/isISO31661Alpha2.js","webpack://halo/./node_modules/validator/lib/isISO31661Alpha3.js","webpack://halo/./node_modules/validator/lib/isISO4217.js","webpack://halo/./node_modules/validator/lib/isISO6346.js","webpack://halo/./node_modules/validator/lib/isISO6391.js","webpack://halo/./node_modules/validator/lib/isISO8601.js","webpack://halo/./node_modules/validator/lib/isISRC.js","webpack://halo/./node_modules/validator/lib/isISSN.js","webpack://halo/./node_modules/validator/lib/isIdentityCard.js","webpack://halo/./node_modules/validator/lib/isIn.js","webpack://halo/./node_modules/validator/lib/isInt.js","webpack://halo/./node_modules/validator/lib/isJSON.js","webpack://halo/./node_modules/validator/lib/isJWT.js","webpack://halo/./node_modules/validator/lib/isLatLong.js","webpack://halo/./node_modules/validator/lib/isLength.js","webpack://halo/./node_modules/validator/lib/isLicensePlate.js","webpack://halo/./node_modules/validator/lib/isLocale.js","webpack://halo/./node_modules/validator/lib/isLowercase.js","webpack://halo/./node_modules/validator/lib/isLuhnNumber.js","webpack://halo/./node_modules/validator/lib/isMACAddress.js","webpack://halo/./node_modules/validator/lib/isMD5.js","webpack://halo/./node_modules/validator/lib/isMagnetURI.js","webpack://halo/./node_modules/validator/lib/isMailtoURI.js","webpack://halo/./node_modules/validator/lib/isMimeType.js","webpack://halo/./node_modules/validator/lib/isMobilePhone.js","webpack://halo/./node_modules/validator/lib/isMongoId.js","webpack://halo/./node_modules/validator/lib/isMultibyte.js","webpack://halo/./node_modules/validator/lib/isNumeric.js","webpack://halo/./node_modules/validator/lib/isOctal.js","webpack://halo/./node_modules/validator/lib/isPassportNumber.js","webpack://halo/./node_modules/validator/lib/isPort.js","webpack://halo/./node_modules/validator/lib/isPostalCode.js","webpack://halo/./node_modules/validator/lib/isRFC3339.js","webpack://halo/./node_modules/validator/lib/isRgbColor.js","webpack://halo/./node_modules/validator/lib/isSemVer.js","webpack://halo/./node_modules/validator/lib/isSlug.js","webpack://halo/./node_modules/validator/lib/isStrongPassword.js","webpack://halo/./node_modules/validator/lib/isSurrogatePair.js","webpack://halo/./node_modules/validator/lib/isTaxID.js","webpack://halo/./node_modules/validator/lib/isTime.js","webpack://halo/./node_modules/validator/lib/isURL.js","webpack://halo/./node_modules/validator/lib/isUUID.js","webpack://halo/./node_modules/validator/lib/isUppercase.js","webpack://halo/./node_modules/validator/lib/isVAT.js","webpack://halo/./node_modules/validator/lib/isVariableWidth.js","webpack://halo/./node_modules/validator/lib/isWhitelisted.js","webpack://halo/./node_modules/validator/lib/ltrim.js","webpack://halo/./node_modules/validator/lib/matches.js","webpack://halo/./node_modules/validator/lib/normalizeEmail.js","webpack://halo/./node_modules/validator/lib/rtrim.js","webpack://halo/./node_modules/validator/lib/stripLow.js","webpack://halo/./node_modules/validator/lib/toBoolean.js","webpack://halo/./node_modules/validator/lib/toDate.js","webpack://halo/./node_modules/validator/lib/toFloat.js","webpack://halo/./node_modules/validator/lib/toInt.js","webpack://halo/./node_modules/validator/lib/trim.js","webpack://halo/./node_modules/validator/lib/unescape.js","webpack://halo/./node_modules/validator/lib/util/algorithms.js","webpack://halo/./node_modules/validator/lib/util/assertString.js","webpack://halo/./node_modules/validator/lib/util/includes.js","webpack://halo/./node_modules/validator/lib/util/merge.js","webpack://halo/./node_modules/validator/lib/util/multilineRegex.js","webpack://halo/./node_modules/validator/lib/util/toString.js","webpack://halo/./node_modules/validator/lib/whitelist.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://halo/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://halo/./node_modules/comma-separated-tokens/index.js","webpack://halo/./node_modules/lodash-es/_listCacheClear.js","webpack://halo/./node_modules/lodash-es/_assocIndexOf.js","webpack://halo/./node_modules/lodash-es/_listCacheDelete.js","webpack://halo/./node_modules/lodash-es/_listCacheGet.js","webpack://halo/./node_modules/lodash-es/_listCacheHas.js","webpack://halo/./node_modules/lodash-es/_listCacheSet.js","webpack://halo/./node_modules/lodash-es/_ListCache.js","webpack://halo/./node_modules/lodash-es/_Map.js","webpack://halo/./node_modules/lodash-es/_nativeCreate.js","webpack://halo/./node_modules/lodash-es/_hashClear.js","webpack://halo/./node_modules/lodash-es/_hashDelete.js","webpack://halo/./node_modules/lodash-es/_hashGet.js","webpack://halo/./node_modules/lodash-es/_hashHas.js","webpack://halo/./node_modules/lodash-es/_hashSet.js","webpack://halo/./node_modules/lodash-es/_Hash.js","webpack://halo/./node_modules/lodash-es/_mapCacheClear.js","webpack://halo/./node_modules/lodash-es/_isKeyable.js","webpack://halo/./node_modules/lodash-es/_getMapData.js","webpack://halo/./node_modules/lodash-es/_mapCacheDelete.js","webpack://halo/./node_modules/lodash-es/_mapCacheGet.js","webpack://halo/./node_modules/lodash-es/_mapCacheHas.js","webpack://halo/./node_modules/lodash-es/_mapCacheSet.js","webpack://halo/./node_modules/lodash-es/_MapCache.js","webpack://halo/./node_modules/lodash-es/_Set.js","webpack://halo/./node_modules/lodash-es/_setCacheAdd.js","webpack://halo/./node_modules/lodash-es/_setCacheHas.js","webpack://halo/./node_modules/lodash-es/_SetCache.js","webpack://halo/./node_modules/lodash-es/_stackClear.js","webpack://halo/./node_modules/lodash-es/_stackDelete.js","webpack://halo/./node_modules/lodash-es/_stackGet.js","webpack://halo/./node_modules/lodash-es/_stackHas.js","webpack://halo/./node_modules/lodash-es/_stackSet.js","webpack://halo/./node_modules/lodash-es/_Stack.js","webpack://halo/./node_modules/lodash-es/_Symbol.js","webpack://halo/./node_modules/lodash-es/_apply.js","webpack://halo/./node_modules/lodash-es/_arrayFilter.js","webpack://halo/./node_modules/lodash-es/_arrayIncludes.js","webpack://halo/./node_modules/lodash-es/_arrayIncludesWith.js","webpack://halo/./node_modules/lodash-es/_arrayMap.js","webpack://halo/./node_modules/lodash-es/_arrayPush.js","webpack://halo/./node_modules/lodash-es/_arrayReduce.js","webpack://halo/./node_modules/lodash-es/_arraySome.js","webpack://halo/./node_modules/lodash-es/_createBaseEach.js","webpack://halo/./node_modules/lodash-es/_baseEach.js","webpack://halo/./node_modules/lodash-es/_baseFindIndex.js","webpack://halo/./node_modules/lodash-es/_isFlattenable.js","webpack://halo/./node_modules/lodash-es/_baseFlatten.js","webpack://halo/./node_modules/lodash-es/_createBaseFor.js","webpack://halo/./node_modules/lodash-es/_baseFor.js","webpack://halo/./node_modules/lodash-es/_baseForOwn.js","webpack://halo/./node_modules/lodash-es/_baseGet.js","webpack://halo/./node_modules/lodash-es/_getRawTag.js","webpack://halo/./node_modules/lodash-es/_objectToString.js","webpack://halo/./node_modules/lodash-es/_baseGetTag.js","webpack://halo/./node_modules/lodash-es/_baseIsNaN.js","webpack://halo/./node_modules/lodash-es/_strictIndexOf.js","webpack://halo/./node_modules/lodash-es/_baseIndexOf.js","webpack://halo/./node_modules/lodash-es/_equalArrays.js","webpack://halo/./node_modules/lodash-es/_Uint8Array.js","webpack://halo/./node_modules/lodash-es/_mapToArray.js","webpack://halo/./node_modules/lodash-es/_equalByTag.js","webpack://halo/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://halo/./node_modules/lodash-es/stubArray.js","webpack://halo/./node_modules/lodash-es/_getSymbols.js","webpack://halo/./node_modules/lodash-es/_getAllKeys.js","webpack://halo/./node_modules/lodash-es/_equalObjects.js","webpack://halo/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://halo/./node_modules/lodash-es/_baseIsEqual.js","webpack://halo/./node_modules/lodash-es/_baseIsMatch.js","webpack://halo/./node_modules/lodash-es/_isStrictComparable.js","webpack://halo/./node_modules/lodash-es/_getMatchData.js","webpack://halo/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://halo/./node_modules/lodash-es/_baseMatches.js","webpack://halo/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://halo/./node_modules/lodash-es/_basePropertyDeep.js","webpack://halo/./node_modules/lodash-es/property.js","webpack://halo/./node_modules/lodash-es/_baseIteratee.js","webpack://halo/./node_modules/lodash-es/_nativeKeys.js","webpack://halo/./node_modules/lodash-es/_baseKeys.js","webpack://halo/./node_modules/lodash-es/_baseProperty.js","webpack://halo/./node_modules/lodash-es/_baseRest.js","webpack://halo/./node_modules/lodash-es/_baseAssignValue.js","webpack://halo/./node_modules/lodash-es/_assignValue.js","webpack://halo/./node_modules/lodash-es/_baseSet.js","webpack://halo/./node_modules/lodash-es/_baseSlice.js","webpack://halo/./node_modules/lodash-es/_baseUnary.js","webpack://halo/./node_modules/lodash-es/_createSet.js","webpack://halo/./node_modules/lodash-es/_baseUniq.js","webpack://halo/./node_modules/lodash-es/_cacheHas.js","webpack://halo/./node_modules/lodash-es/_memoizeCapped.js","webpack://halo/./node_modules/lodash-es/_stringToPath.js","webpack://halo/./node_modules/lodash-es/_castPath.js","webpack://halo/./node_modules/lodash-es/_defineProperty.js","webpack://halo/./node_modules/lodash-es/_freeGlobal.js","webpack://halo/./node_modules/lodash-es/_isMasked.js","webpack://halo/./node_modules/lodash-es/_coreJsData.js","webpack://halo/./node_modules/lodash-es/_baseIsNative.js","webpack://halo/./node_modules/lodash-es/_getValue.js","webpack://halo/./node_modules/lodash-es/_getNative.js","webpack://halo/./node_modules/lodash-es/_DataView.js","webpack://halo/./node_modules/lodash-es/_Promise.js","webpack://halo/./node_modules/lodash-es/_WeakMap.js","webpack://halo/./node_modules/lodash-es/_getTag.js","webpack://halo/./node_modules/lodash-es/_isIndex.js","webpack://halo/./node_modules/lodash-es/_isIterateeCall.js","webpack://halo/./node_modules/lodash-es/_isKey.js","webpack://halo/./node_modules/lodash-es/_isPrototype.js","webpack://halo/./node_modules/lodash-es/_overArg.js","webpack://halo/./node_modules/lodash-es/_overRest.js","webpack://halo/./node_modules/lodash-es/_root.js","webpack://halo/./node_modules/lodash-es/_setToArray.js","webpack://halo/./node_modules/lodash-es/_baseSetToString.js","webpack://halo/./node_modules/lodash-es/_shortOut.js","webpack://halo/./node_modules/lodash-es/_setToString.js","webpack://halo/./node_modules/lodash-es/_toKey.js","webpack://halo/./node_modules/lodash-es/_toSource.js","webpack://halo/./node_modules/lodash-es/constant.js","webpack://halo/./node_modules/lodash-es/eq.js","webpack://halo/./node_modules/lodash-es/get.js","webpack://halo/./node_modules/lodash-es/_baseHasIn.js","webpack://halo/./node_modules/lodash-es/_hasPath.js","webpack://halo/./node_modules/lodash-es/hasIn.js","webpack://halo/./node_modules/lodash-es/identity.js","webpack://halo/./node_modules/lodash-es/_baseValues.js","webpack://halo/./node_modules/lodash-es/values.js","webpack://halo/./node_modules/lodash-es/includes.js","webpack://halo/./node_modules/lodash-es/last.js","webpack://halo/./node_modules/lodash-es/_parent.js","webpack://halo/./node_modules/lodash-es/_baseInvoke.js","webpack://halo/./node_modules/lodash-es/invoke.js","webpack://halo/./node_modules/lodash-es/_baseIsArguments.js","webpack://halo/./node_modules/lodash-es/isArguments.js","webpack://halo/./node_modules/lodash-es/isArray.js","webpack://halo/./node_modules/lodash-es/isArrayLike.js","webpack://halo/./node_modules/lodash-es/stubFalse.js","webpack://halo/./node_modules/lodash-es/isBuffer.js","webpack://halo/./node_modules/lodash-es/isFunction.js","webpack://halo/./node_modules/lodash-es/isLength.js","webpack://halo/./node_modules/lodash-es/isNil.js","webpack://halo/./node_modules/lodash-es/isObject.js","webpack://halo/./node_modules/lodash-es/isObjectLike.js","webpack://halo/./node_modules/lodash-es/_getPrototype.js","webpack://halo/./node_modules/lodash-es/isPlainObject.js","webpack://halo/./node_modules/lodash-es/isString.js","webpack://halo/./node_modules/lodash-es/isSymbol.js","webpack://halo/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://halo/./node_modules/lodash-es/_nodeUtil.js","webpack://halo/./node_modules/lodash-es/isTypedArray.js","webpack://halo/./node_modules/lodash-es/isUndefined.js","webpack://halo/./node_modules/lodash-es/_baseTimes.js","webpack://halo/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://halo/./node_modules/lodash-es/keys.js","webpack://halo/./node_modules/lodash-es/memoize.js","webpack://halo/./node_modules/lodash-es/noop.js","webpack://halo/./node_modules/lodash-es/_basePickBy.js","webpack://halo/./node_modules/lodash-es/_basePick.js","webpack://halo/./node_modules/lodash-es/flatten.js","webpack://halo/./node_modules/lodash-es/_flatRest.js","webpack://halo/./node_modules/lodash-es/pick.js","webpack://halo/./node_modules/lodash-es/_baseReduce.js","webpack://halo/./node_modules/lodash-es/reduce.js","webpack://halo/./node_modules/lodash-es/_baseSome.js","webpack://halo/./node_modules/lodash-es/some.js","webpack://halo/./node_modules/lodash-es/toFinite.js","webpack://halo/./node_modules/lodash-es/toInteger.js","webpack://halo/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://halo/./node_modules/lodash-es/_baseTrim.js","webpack://halo/./node_modules/lodash-es/toNumber.js","webpack://halo/./node_modules/lodash-es/_baseToString.js","webpack://halo/./node_modules/lodash-es/toString.js","webpack://halo/./node_modules/property-information/lib/util/schema.js","webpack://halo/./node_modules/property-information/lib/util/merge.js","webpack://halo/./node_modules/property-information/lib/util/create.js","webpack://halo/./node_modules/property-information/lib/xlink.js","webpack://halo/./node_modules/property-information/lib/xml.js","webpack://halo/./node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://halo/./node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://halo/./node_modules/property-information/lib/xmlns.js","webpack://halo/./node_modules/property-information/lib/aria.js","webpack://halo/./node_modules/property-information/lib/html.js","webpack://halo/./node_modules/property-information/lib/svg.js","webpack://halo/./node_modules/property-information/index.js","webpack://halo/./node_modules/property-information/lib/find.js","webpack://halo/./node_modules/property-information/lib/normalize.js","webpack://halo/./node_modules/property-information/lib/util/defined-info.js","webpack://halo/./node_modules/property-information/lib/util/info.js","webpack://halo/./node_modules/property-information/lib/util/types.js","webpack://halo/./node_modules/unist-util-stringify-position/lib/index.js","webpack://halo/./node_modules/vfile-message/lib/index.js","webpack://halo/./node_modules/vfile/lib/minpath.browser.js","webpack://halo/./node_modules/vfile/lib/minproc.browser.js","webpack://halo/./node_modules/vfile/lib/minurl.shared.js","webpack://halo/./node_modules/vfile/lib/minurl.browser.js","webpack://halo/./node_modules/vfile/lib/index.js","webpack://halo/./node_modules/unified/node_modules/bail/index.js","webpack://halo/./node_modules/unified/node_modules/is-plain-obj/index.js","webpack://halo/./node_modules/unified/node_modules/trough/lib/index.js","webpack://halo/./node_modules/unified/lib/index.js","webpack://halo/./node_modules/react-markdown/node_modules/mdast-util-to-string/lib/index.js","webpack://halo/./node_modules/micromark-util-chunked/index.js","webpack://halo/./node_modules/micromark-util-combine-extensions/index.js","webpack://halo/./node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","webpack://halo/./node_modules/micromark-util-character/index.js","webpack://halo/./node_modules/micromark-factory-space/index.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/initialize/content.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/initialize/document.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://halo/./node_modules/micromark-util-subtokenize/index.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/content.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/initialize/flow.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/initialize/text.js","webpack://halo/./node_modules/micromark-util-resolve-all/index.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/create-tokenizer.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/list.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://halo/./node_modules/micromark-factory-destination/index.js","webpack://halo/./node_modules/micromark-factory-label/index.js","webpack://halo/./node_modules/micromark-factory-title/index.js","webpack://halo/./node_modules/micromark-factory-whitespace/index.js","webpack://halo/./node_modules/micromark-util-normalize-identifier/index.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/definition.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://halo/./node_modules/micromark-util-html-tag-name/index.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://halo/./node_modules/decode-named-character-reference/index.dom.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/label-end.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://halo/./node_modules/micromark-util-classify-character/index.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/attention.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/autolink.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/html-text.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://halo/./node_modules/micromark-core-commonmark/lib/code-text.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/constructs.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/parse.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/preprocess.js","webpack://halo/./node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://halo/./node_modules/micromark-util-decode-string/index.js","webpack://halo/./node_modules/react-markdown/node_modules/mdast-util-from-markdown/lib/index.js","webpack://halo/./node_modules/react-markdown/node_modules/micromark/lib/postprocess.js","webpack://halo/./node_modules/react-markdown/node_modules/remark-parse/lib/index.js","webpack://halo/./node_modules/micromark-util-sanitize-uri/index.js","webpack://halo/./node_modules/unist-util-visit/node_modules/unist-util-is/lib/index.js","webpack://halo/./node_modules/unist-util-visit/node_modules/unist-util-visit-parents/lib/index.js","webpack://halo/./node_modules/unist-util-visit/lib/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/unist-util-position/lib/index.js","webpack://halo/./node_modules/mdast-util-definitions/lib/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/revert.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://halo/./node_modules/trim-lines/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/state.js","webpack://halo/./node_modules/unist-util-generated/lib/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/index.js","webpack://halo/./node_modules/remark-rehype/node_modules/mdast-util-to-hast/lib/footer.js","webpack://halo/./node_modules/remark-rehype/lib/index.js","webpack://halo/./node_modules/react-markdown/lib/rehype-filter.js","webpack://halo/./node_modules/hast-util-whitespace/index.js","webpack://halo/./node_modules/property-information/lib/hast-to-react.js","webpack://halo/./node_modules/style-to-object/index.mjs","webpack://halo/./node_modules/react-markdown/lib/uri-transformer.js","webpack://halo/./node_modules/react-markdown/lib/ast-to-react.js","webpack://halo/./node_modules/react-markdown/lib/react-markdown.js","webpack://halo/./node_modules/react-switch/dist/index.prod.mjs","webpack://halo/./node_modules/@ungap/structured-clone/esm/types.js","webpack://halo/./node_modules/@ungap/structured-clone/esm/deserialize.js","webpack://halo/./node_modules/@ungap/structured-clone/esm/serialize.js","webpack://halo/./node_modules/@ungap/structured-clone/esm/index.js","webpack://halo/./node_modules/hast-util-parse-selector/lib/index.js","webpack://halo/./node_modules/hastscript/lib/create-h.js","webpack://halo/./node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","webpack://halo/./node_modules/hastscript/lib/index.js","webpack://halo/./node_modules/vfile-location/lib/index.js","webpack://halo/./node_modules/web-namespaces/index.js","webpack://halo/./node_modules/hast-util-from-parse5/lib/index.js","webpack://halo/./node_modules/zwitch/index.js","webpack://halo/./node_modules/hast-util-to-parse5/lib/index.js","webpack://halo/./node_modules/html-void-elements/index.js","webpack://halo/./node_modules/parse5/dist/common/unicode.js","webpack://halo/./node_modules/parse5/dist/common/error-codes.js","webpack://halo/./node_modules/parse5/dist/tokenizer/preprocessor.js","webpack://halo/./node_modules/parse5/dist/common/token.js","webpack://halo/./node_modules/entities/lib/esm/generated/decode-data-html.js","webpack://halo/./node_modules/entities/lib/esm/decode_codepoint.js","webpack://halo/./node_modules/entities/lib/esm/generated/decode-data-xml.js","webpack://halo/./node_modules/entities/lib/esm/decode.js","webpack://halo/./node_modules/parse5/dist/common/html.js","webpack://halo/./node_modules/parse5/dist/tokenizer/index.js","webpack://halo/./node_modules/parse5/dist/parser/open-element-stack.js","webpack://halo/./node_modules/parse5/dist/parser/formatting-element-list.js","webpack://halo/./node_modules/parse5/dist/tree-adapters/default.js","webpack://halo/./node_modules/parse5/dist/common/doctype.js","webpack://halo/./node_modules/parse5/dist/common/foreign-content.js","webpack://halo/./node_modules/parse5/dist/parser/index.js","webpack://halo/./node_modules/entities/lib/esm/escape.js","webpack://halo/./node_modules/parse5/dist/serializer/index.js","webpack://halo/./node_modules/unist-util-position/lib/index.js","webpack://halo/./node_modules/unist-util-is/lib/index.js","webpack://halo/./node_modules/unist-util-visit-parents/lib/index.js","webpack://halo/./node_modules/hast-util-raw/lib/index.js","webpack://halo/./node_modules/hast-util-raw/node_modules/unist-util-visit/lib/index.js","webpack://halo/./node_modules/rehype-raw/lib/index.js","webpack://halo/./node_modules/space-separated-tokens/index.js","webpack://halo/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://halo/./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["import { __read, __spreadArray } from \"tslib\";\nexport function compose() {\n var funcs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n funcs[_i] = arguments[_i];\n }\n if (funcs.length === 0) {\n return function (arg) { return arg; };\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce(function (a, b) { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return a(b.apply(void 0, __spreadArray([], __read(args), false)));\n }; });\n}\n//# sourceMappingURL=functional.js.map","export function toHashMapString(obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (k) {\n if (typeof obj[k] === \"object\") {\n obj[k] = JSON.stringify(obj[k]);\n }\n obj[k] = String(obj[k]);\n });\n return obj;\n}\nexport function toHashMap(obj) {\n if (!obj)\n return;\n Object.keys(obj).forEach(function (k) {\n if (typeof obj[k] === \"string\" ||\n typeof obj[k] === \"boolean\" ||\n typeof obj[k] === \"number\") {\n return;\n }\n obj[k] = JSON.stringify(obj[k]);\n });\n return obj;\n}\n//# sourceMappingURL=hashmap.js.map","export function isError(error) {\n return (typeof error === \"object\" && typeof error.message !== \"undefined\");\n}\nexport function getStacktrace(error) {\n if (typeof error.stacktrace !== \"undefined\" ||\n typeof error[\"opera#sourceloc\"] !== \"undefined\") {\n var _a = error.stacktrace, stacktrace = _a === void 0 ? \"\" : _a;\n return stacktrace\n .split(\"\\n\")\n .filter(function (line) { return line !== \"\"; });\n }\n else if (error.stack) {\n var _b = error.stack, stack = _b === void 0 ? \"\" : _b;\n return stack.split(\"\\n\").filter(function (line) { return line !== \"\"; });\n }\n else {\n return [\"No stacktrace available\"];\n }\n}\n//# sourceMappingURL=error.js.map","export function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(object[key])); })\n .join(\"&\");\n}\n//# sourceMappingURL=url.js.map","export function isNodeEnv() {\n return (Object.prototype.toString.call(typeof process !== \"undefined\" ? process : 0) === \"[object process]\");\n}\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== \"undefined\"\n ? window\n : typeof self !== \"undefined\"\n ? self\n : {});\n}\n//# sourceMappingURL=environment.js.map","var Serializable = (function () {\n function Serializable(data) {\n this._data = data;\n }\n Serializable.prototype.toJSON = function () {\n return JSON.stringify(this._data);\n };\n Serializable.prototype.serialize = function () {\n return this._data;\n };\n return Serializable;\n}());\nexport { Serializable };\n//# sourceMappingURL=serializable.js.map","import { getGlobalObject, isNodeEnv } from \"@appsignal/core\";\nvar Environment = (function () {\n function Environment() {\n }\n Environment.serialize = function () {\n return {\n transport: this.transport(),\n origin: this.origin()\n };\n };\n Environment.origin = function () {\n var globals = getGlobalObject();\n if (!globals.location) {\n return \"\";\n }\n return (globals.location.origin ||\n \"\".concat(globals.location.protocol, \"//\").concat(globals.location.hostname));\n };\n Environment.transport = function () {\n var globals = getGlobalObject();\n if (isNodeEnv() && typeof jest === \"undefined\") {\n return \"NodeHTTP\";\n }\n else if (globals.XDomainRequest) {\n return \"XDomainRequest\";\n }\n else if (globals.XMLHttpRequest && !globals.fetch) {\n return \"XMLHttpRequest\";\n }\n else {\n return \"fetch\";\n }\n };\n Environment.supportsPromises = function () {\n var globals = getGlobalObject();\n return (\"Promise\" in globals &&\n \"resolve\" in globals.Promise &&\n \"reject\" in globals.Promise &&\n \"all\" in globals.Promise &&\n \"race\" in globals.Promise &&\n (function () {\n var resolve;\n new globals.Promise(function (r) {\n resolve = r;\n });\n return typeof resolve === \"function\";\n })());\n };\n return Environment;\n}());\nexport { Environment };\n//# sourceMappingURL=environment.js.map","var XDomainTransport = (function () {\n function XDomainTransport(url) {\n this.url = url;\n }\n XDomainTransport.prototype.send = function (data) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var _a;\n var req = new XDomainRequest();\n var rx = new RegExp(\"^https?:\");\n req.onload = function () { return resolve({}); };\n req.open(\"POST\", _this.url.replace(rx, (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.protocol));\n setTimeout(function () {\n try {\n req.send(data);\n }\n catch (e) {\n reject(e);\n }\n }, 0);\n });\n };\n return XDomainTransport;\n}());\nexport { XDomainTransport };\n//# sourceMappingURL=xdomain.js.map","var XHRTransport = (function () {\n function XHRTransport(url) {\n this.url = url;\n }\n XHRTransport.prototype.send = function (data) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n try {\n var req_1 = new XMLHttpRequest();\n req_1.onreadystatechange = function () {\n if (req_1.readyState === XMLHttpRequest.DONE) {\n resolve({});\n }\n };\n req_1.open(\"POST\", _this.url);\n req_1.send(data);\n }\n catch (e) {\n reject(e);\n }\n });\n };\n return XHRTransport;\n}());\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __awaiter, __generator } from \"tslib\";\nvar FetchTransport = (function () {\n function FetchTransport(url, headers) {\n this.url = url;\n }\n FetchTransport.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var res, statusText, ok;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, fetch(this.url, {\n method: \"POST\",\n body: data\n })];\n case 1:\n res = _a.sent();\n statusText = res.statusText, ok = res.ok;\n return [2, ok ? Promise.resolve({}) : Promise.reject({ statusText: statusText })];\n }\n });\n });\n };\n return FetchTransport;\n}());\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","var NodeTransport = (function () {\n function NodeTransport(url) {\n this.url = url;\n this.https = import(\"https\");\n }\n NodeTransport.prototype.send = function (data) {\n var _this = this;\n var options = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Content-Length\": data.length\n }\n };\n return new Promise(function (resolve, reject) {\n _this.https\n .then(function (https) {\n var req = https\n .request(_this.url, options, function () { })\n .on(\"error\", function (error) { return reject(error); });\n req.write(data);\n req.end();\n resolve({});\n })\n .catch(function (reason) {\n console.warn(\"NodeTransport is being used, but the HTTPS module could not be imported. No data will be sent to AppSignal.\");\n reject(reason);\n });\n });\n };\n return NodeTransport;\n}());\nexport { NodeTransport };\n//# sourceMappingURL=node.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { urlEncode } from \"@appsignal/core\";\nimport { Environment } from \"./environment\";\nimport { XDomainTransport } from \"./transports/xdomain\";\nimport { XHRTransport } from \"./transports/xhr\";\nimport { FetchTransport } from \"./transports/fetch\";\nimport { NodeTransport } from \"./transports/node\";\nvar PushApi = (function () {\n function PushApi(options) {\n this._uri = options.uri || \"https://appsignal-endpoint.net/collect\";\n this._apiKey = options.key;\n this._clientVersion = options.version;\n this._transport = this._createTransport(this._url());\n }\n PushApi.prototype.push = function (span) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, this._transport.send(span.toJSON())];\n case 1:\n _a.sent();\n return [2, span];\n }\n });\n });\n };\n PushApi.prototype._createTransport = function (url) {\n switch (Environment.transport()) {\n case \"XDomainRequest\":\n return new XDomainTransport(url);\n case \"XMLHttpRequest\":\n return new XHRTransport(url);\n case \"NodeHTTP\":\n return new NodeTransport(url);\n default:\n return new FetchTransport(url);\n }\n };\n PushApi.prototype._url = function () {\n var auth = this._authorization();\n return \"\".concat(this._uri, \"?\").concat(urlEncode(auth));\n };\n PushApi.prototype._authorization = function () {\n return {\n api_key: this._apiKey,\n version: this._clientVersion\n };\n };\n return PushApi;\n}());\nexport { PushApi };\n//# sourceMappingURL=api.js.map","import { __assign, __extends } from \"tslib\";\nimport { Serializable, getStacktrace, toHashMapString, isError } from \"@appsignal/core\";\nvar Span = (function (_super) {\n __extends(Span, _super);\n function Span(span) {\n return _super.call(this, __assign({ timestamp: Math.round(new Date().getTime() / 1000), namespace: \"frontend\", error: {\n name: \"NullError\",\n message: \"No error has been set\",\n backtrace: []\n } }, span)) || this;\n }\n Span.prototype.setAction = function (name) {\n if (!name || typeof name !== \"string\") {\n return this;\n }\n this._data.action = name;\n return this;\n };\n Span.prototype.setNamespace = function (name) {\n if (!name || typeof name !== \"string\") {\n return this;\n }\n this._data.namespace = name;\n return this;\n };\n Span.prototype.setError = function (error) {\n if (!error || !isError(error))\n return this;\n this._data.error = {\n name: error.name || \"[unknown]\",\n message: error.message,\n backtrace: getStacktrace(error)\n };\n return this;\n };\n Span.prototype.setTags = function (tags) {\n this._data.tags = __assign(__assign({}, this._data.tags), toHashMapString(tags));\n return this;\n };\n Span.prototype.setParams = function (params) {\n this._data.params = __assign(__assign({}, this._data.params), params);\n return this;\n };\n Span.prototype.setBreadcrumbs = function (breadcrumbs) {\n this._data.breadcrumbs = breadcrumbs;\n return this;\n };\n return Span;\n}(Serializable));\nexport { Span };\n//# sourceMappingURL=span.js.map","import { __generator, __read, __spreadArray } from \"tslib\";\nvar Queue = (function () {\n function Queue(data) {\n this._data = data || [];\n }\n Queue.prototype.clear = function () {\n this._data = [];\n };\n Queue.prototype.values = function () {\n return this._data;\n };\n Queue.prototype.push = function (item) {\n var _a;\n return Array.isArray(item)\n ? (_a = this._data).push.apply(_a, __spreadArray([], __read(item), false)) : this._data.push(item);\n };\n Queue.prototype.drain = function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this._data.length > 0)) return [3, 2];\n return [4, this._data.shift()];\n case 1:\n _a.sent();\n return [3, 0];\n case 2: return [2];\n }\n });\n };\n return Queue;\n}());\nexport { Queue };\n//# sourceMappingURL=queue.js.map","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nimport { getGlobalObject } from \"@appsignal/core\";\nvar Dispatcher = (function () {\n function Dispatcher(queue, api, options) {\n this._retries = 0;\n this._timerID = 0;\n this._duration = 0;\n this._api = api;\n this._queue = queue;\n this.options = __assign({ limit: 5, initialDuration: 1000 }, options);\n this.reset();\n }\n Dispatcher.prototype.schedule = function (time) {\n var _this = this;\n if (time === void 0) { time = this._duration; }\n var globals = getGlobalObject();\n var BACKOFF_FACTOR = 1.3;\n var cb = function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, span, e_1, expDuration, e_2_1;\n var e_2, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 7, 8, 9]);\n _a = __values(this._queue.drain()), _b = _a.next();\n _d.label = 1;\n case 1:\n if (!!_b.done) return [3, 6];\n span = _b.value;\n if (!span)\n return [2];\n _d.label = 2;\n case 2:\n _d.trys.push([2, 4, , 5]);\n return [4, this._api.push(span)];\n case 3:\n _d.sent();\n return [3, 5];\n case 4:\n e_1 = _d.sent();\n expDuration = Math.floor(Math.pow(time, BACKOFF_FACTOR));\n this._retries = this._retries - 1;\n if (this._retries === 0) {\n this.reset();\n }\n else {\n this._queue.push(span);\n this._timerID = this.schedule(expDuration);\n }\n return [2];\n case 5:\n _b = _a.next();\n return [3, 1];\n case 6: return [3, 9];\n case 7:\n e_2_1 = _d.sent();\n e_2 = { error: e_2_1 };\n return [3, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_2) throw e_2.error; }\n return [7];\n case 9:\n this.reset();\n return [2];\n }\n });\n }); };\n return globals.setTimeout(cb, time);\n };\n Dispatcher.prototype.reset = function () {\n var _a = this.options, limit = _a.limit, initialDuration = _a.initialDuration;\n this._retries = limit;\n this._duration = initialDuration;\n };\n return Dispatcher;\n}());\nexport { Dispatcher };\n//# sourceMappingURL=dispatcher.js.map","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { compose, toHashMap } from \"@appsignal/core\";\nimport { VERSION } from \"./version\";\nimport { PushApi } from \"./api\";\nimport { Environment } from \"./environment\";\nimport { Span } from \"./span\";\nimport { Queue } from \"./queue\";\nimport { Dispatcher } from \"./dispatcher\";\nvar Appsignal = (function () {\n function Appsignal(options) {\n this.VERSION = VERSION;\n this.ignored = [];\n this._breadcrumbs = [];\n this._hooks = {\n decorators: Array(),\n overrides: Array()\n };\n this._env = Environment.serialize();\n this._queue = new Queue([]);\n var _a = options.key, key = _a === void 0 ? \"\" : _a, uri = options.uri, revision = options.revision, ignoreErrors = options.ignoreErrors;\n if (revision && typeof revision !== \"string\") {\n options.revision = String(revision);\n }\n if (key === \"\") {\n console.info(\"[APPSIGNAL]: Started in development mode.\");\n }\n this._api = new PushApi({\n key: key,\n uri: uri,\n version: this.VERSION\n });\n if (ignoreErrors && Array.isArray(ignoreErrors)) {\n this.ignored = ignoreErrors;\n }\n this._dispatcher = new Dispatcher(this._queue, this._api);\n this._options = options;\n }\n Appsignal.prototype.send = function (data, tagsOrFn, namespace) {\n var _this = this;\n if (!(data instanceof Error) && !(data instanceof Span)) {\n console.error(\"[APPSIGNAL]: Can't send error, given error is not a valid type\");\n return;\n }\n if (this.ignored.length !== 0) {\n if (data instanceof Error &&\n this.ignored.some(function (el) { return el.test(data.message); })) {\n console.warn(\"[APPSIGNAL]: Ignored an error: \".concat(data.message));\n return;\n }\n if (data instanceof Span) {\n var error_1 = data.serialize().error;\n if (error_1.message && this.ignored.some(function (el) { return el.test(error_1.message); })) {\n console.warn(\"[APPSIGNAL]: Ignored a span: \".concat(error_1.message));\n return;\n }\n }\n }\n var span = data instanceof Span ? data : this._createSpanFromError(data);\n if (this._hooks.decorators.length > 0) {\n compose.apply(void 0, __spreadArray([], __read(this._hooks.decorators), false))(span);\n }\n if (tagsOrFn) {\n if (typeof tagsOrFn === \"function\") {\n var callback = tagsOrFn;\n callback(span);\n }\n else {\n console.warn(\"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a tags object is deprecated. Use the callback argument instead.\");\n var tags = (toHashMap(tagsOrFn) || {});\n span.setTags(tags);\n }\n }\n if (namespace) {\n console.warn(\"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a namespace is deprecated. Use the callback argument instead.\");\n span.setNamespace(namespace);\n }\n if (this._breadcrumbs.length > 0)\n span.setBreadcrumbs(this._breadcrumbs);\n if (this._hooks.overrides.length > 0) {\n compose.apply(void 0, __spreadArray([], __read(this._hooks.overrides), false))(span);\n }\n if (Environment.supportsPromises()) {\n this._breadcrumbs = [];\n if (!this._options.key) {\n console.warn(\"[APPSIGNAL]: Span not sent because we're in development mode:\", span);\n if (data instanceof Error) {\n throw data;\n }\n }\n else {\n return this._api.push(span).catch(function () {\n _this._queue.push(span);\n setTimeout(function () { return _this._dispatcher.schedule(); }, 0);\n });\n }\n }\n else {\n console.error(\"[APPSIGNAL]: Error not sent. A Promise polyfill is required.\");\n return;\n }\n };\n Appsignal.prototype.sendError = function (error, tagsOrFn, namespace) {\n return this.send(error, tagsOrFn, namespace);\n };\n Appsignal.prototype.use = function (plugin) {\n plugin.call(this);\n };\n Appsignal.prototype.createSpan = function (fn) {\n var _a = this._options, _b = _a.revision, revision = _b === void 0 ? \"\" : _b, namespace = _a.namespace;\n var span = new Span({\n environment: this._env,\n revision: revision\n });\n if (namespace)\n span.setNamespace(namespace);\n if (fn && typeof fn === \"function\")\n fn(span);\n return span;\n };\n Appsignal.prototype.wrap = function (fn, tagsOrFn, namespace) {\n return __awaiter(this, void 0, void 0, function () {\n var e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 4]);\n return [4, fn()];\n case 1: return [2, _a.sent()];\n case 2:\n e_1 = _a.sent();\n return [4, this.sendError(e_1, tagsOrFn, namespace)];\n case 3:\n _a.sent();\n return [2, Promise.reject(e_1)];\n case 4: return [2];\n }\n });\n });\n };\n Appsignal.prototype.addDecorator = function (decorator) {\n this._hooks.decorators.push(decorator);\n };\n Appsignal.prototype.addOverride = function (override) {\n this._hooks.overrides.push(override);\n };\n Appsignal.prototype.demo = function () {\n var span = this._createSpanFromError(new Error(\"Hello world! This is an error used for demonstration purposes.\"));\n span\n .setAction(\"TestAction\")\n .setParams({\n path: \"/hello\",\n method: \"GET\"\n })\n .setTags({\n demo_sample: \"true\"\n });\n this.send(span);\n };\n Appsignal.prototype.addBreadcrumb = function (breadcrumb) {\n var crumb = __assign(__assign({ timestamp: Math.round(new Date().getTime() / 1000) }, breadcrumb), { metadata: toHashMap(breadcrumb.metadata) });\n if (!crumb.category) {\n console.warn(\"[APPSIGNAL]: Breadcrumb not added. `category` is missing.\");\n return;\n }\n if (!crumb.action) {\n console.warn(\"[APPSIGNAL]: Breadcrumb not added. `action` is missing.\");\n return;\n }\n if (this._breadcrumbs.length === 20) {\n this._breadcrumbs.pop();\n }\n this._breadcrumbs.unshift(crumb);\n };\n Appsignal.prototype._createSpanFromError = function (error) {\n var event = this.createSpan();\n event.setError(error);\n return event;\n };\n return Appsignal;\n}());\nexport default Appsignal;\n//# sourceMappingURL=index.js.map","export var VERSION = \"1.3.29\";\n//# sourceMappingURL=version.js.map","var SUPPORTED_CONSOLE_METHODS = [\"log\", \"debug\", \"info\", \"warn\", \"error\"];\nfunction consoleBreadcrumbsPlugin(options) {\n var CONSOLE_LOG_METHODS = SUPPORTED_CONSOLE_METHODS.filter(function (method) {\n return typeof console !== \"undefined\" &&\n typeof console[method] === \"function\";\n });\n return function () {\n var self = this;\n CONSOLE_LOG_METHODS.forEach(function (method) {\n var prevHandler = console[method];\n function _console() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var breadcrumb = {\n action: args.length > 1\n ? \"Console logged some values\"\n : \"Console logged a value\",\n category: \"console.\".concat(method),\n metadata: {}\n };\n args.forEach(function (arg, i) {\n return (breadcrumb.metadata[\"argument\".concat(i)] =\n serializeValue(arg, method));\n });\n self.addBreadcrumb(breadcrumb);\n prevHandler.apply(console, args);\n }\n ;\n console[method] = _console;\n });\n };\n}\nfunction serializeValue(value, method) {\n switch (typeof value) {\n case \"string\":\n return value;\n case \"undefined\":\n return \"undefined\";\n default:\n return JSON.stringify(value, circularReplacer());\n }\n}\nfunction circularReplacer() {\n var seenValue = [];\n var seenKey = [];\n return function (key, value) {\n if (typeof value === \"object\" && value !== null) {\n var i = seenValue.indexOf(value);\n if (i !== -1) {\n return \"[cyclic value: \".concat(seenKey[i] || \"root object\", \"]\");\n }\n else {\n seenValue.push(value);\n seenKey.push(key);\n }\n }\n return value;\n };\n}\nexport var plugin = consoleBreadcrumbsPlugin;\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar DEFAULTS = {\n xhrEnabled: true,\n fetchEnabled: true,\n ignoreUrls: []\n};\nfunction networkBreadcrumbsPlugin(options) {\n var opts = __assign(__assign({}, DEFAULTS), options);\n var xhrEnabled = opts.xhrEnabled, fetchEnabled = opts.fetchEnabled, ignoreUrls = opts.ignoreUrls;\n var isXhrEnabled = xhrEnabled ? \"XMLHttpRequest\" in window : false;\n var isFetchEnabled = fetchEnabled ? \"fetch\" in window : false;\n return function () {\n var appsignal = this;\n var xhrPatch = function () {\n var prevOpen = XMLHttpRequest.prototype.open;\n function open(method, url) {\n var metadata = { method: method, url: url };\n function onXhrLoad() {\n if (!ignoreUrls.some(function (el) { return el.test(url); })) {\n appsignal.addBreadcrumb({\n action: this.status >= 400\n ? \"Request failed with code \".concat(this.status)\n : \"Received a response with code \".concat(this.status),\n category: \"XMLHttpRequest\",\n metadata: metadata\n });\n }\n }\n function onXhrError() {\n if (!ignoreUrls.some(function (el) { return el.test(url); })) {\n appsignal.addBreadcrumb({\n action: \"Request failed\",\n category: \"XMLHttpRequest\",\n metadata: metadata\n });\n }\n }\n this.addEventListener(\"load\", onXhrLoad);\n this.addEventListener(\"error\", onXhrError);\n prevOpen.apply(this, arguments);\n }\n XMLHttpRequest.prototype.open = open;\n };\n var fetchPatch = function () {\n var originalFetch = window.fetch;\n function fetch(input, init) {\n var url = typeof input === \"string\" ? input : input.url;\n var method = (typeof input !== \"string\" && input.method) ||\n (init && init.method) ||\n \"GET\";\n var metadata = {\n method: method,\n url: url\n };\n if (ignoreUrls.some(function (el) { return el.test(url); })) {\n return originalFetch.apply(window, arguments);\n }\n return originalFetch\n .apply(window, arguments)\n .then(function (response) {\n var statusCode = response.status;\n appsignal.addBreadcrumb({\n action: \"Received a response with code \".concat(statusCode),\n category: \"Fetch\",\n metadata: metadata\n });\n return response;\n })\n .catch(function (error) {\n appsignal.addBreadcrumb({\n action: \"Request failed\",\n category: \"Fetch\",\n metadata: metadata\n });\n throw error;\n });\n }\n window.fetch = fetch;\n };\n if (isXhrEnabled)\n xhrPatch();\n if (isFetchEnabled)\n fetchPatch();\n };\n}\nexport var plugin = networkBreadcrumbsPlugin;\n//# sourceMappingURL=index.js.map","function pathDecoratorPlugin(options) {\n return function () {\n var decorator = function (span) {\n return span.setTags({ path: window.location.pathname });\n };\n this.addDecorator(decorator);\n };\n}\nexport var plugin = pathDecoratorPlugin;\n//# sourceMappingURL=index.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { isError } from \"@appsignal/core\";\nfunction windowEventsPlugin(options) {\n var ctx = window;\n var opts = __assign({ onerror: true, onunhandledrejection: true }, options);\n return function () {\n var self = this;\n var prev = {\n onError: ctx.onerror,\n unhandledRejection: ctx.onunhandledrejection\n };\n function _onErrorHandler(event, source, lineno, colno, error) {\n var span = self.createSpan();\n if (typeof event === \"string\" &&\n lineno === 0 &&\n /Script error\\.?/.test(event)) {\n console.warn(\"[APPSIGNAL]: Cross-domain or eval script error detected, error ignored\");\n }\n else {\n if (error) {\n span.setError(error);\n }\n else {\n span.setError({\n name: \"Error\",\n message: typeof event === \"string\"\n ? event\n : 'An HTML onerror=\"\" handler failed to execute',\n stack: \"at \".concat(source, \":\").concat(lineno).concat(colno ? \":\".concat(colno) : \"\")\n });\n }\n self.send(span);\n }\n if (typeof prev.onError === \"function\") {\n prev.onError.apply(this, arguments);\n }\n }\n function _onUnhandledRejectionHandler(event) {\n var span = self.createSpan();\n var error;\n if (event && event.reason && isError(event.reason)) {\n error = event.reason;\n }\n else {\n error = {\n name: \"UnhandledPromiseRejectionError\",\n message: _reasonFromEvent(event)\n };\n }\n span.setError(error);\n self.send(span);\n if (typeof prev.unhandledRejection === \"function\") {\n prev.unhandledRejection.apply(this, arguments);\n }\n }\n if (opts.onerror) {\n ctx.onerror = _onErrorHandler;\n }\n if (opts.onunhandledrejection) {\n ctx.onunhandledrejection = _onUnhandledRejectionHandler;\n }\n };\n function _reasonFromEvent(event) {\n if (!event || !event.reason) {\n return \"\";\n }\n if (typeof event.reason === \"string\") {\n return event.reason;\n }\n return JSON.stringify(event.reason, circularReplacer());\n }\n function circularReplacer() {\n var seenValue = [];\n var seenKey = [];\n return function (key, value) {\n if (typeof value === \"object\" && value !== null) {\n var i = seenValue.indexOf(value);\n if (i !== -1) {\n return \"[cyclic value: \".concat(seenKey[i] || \"root object\", \"]\");\n }\n else {\n seenValue.push(value);\n seenKey.push(key);\n }\n }\n return value;\n };\n }\n}\nexport var plugin = windowEventsPlugin;\n//# sourceMappingURL=index.js.map","/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwn = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-43c6fea0.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-43c6fea0.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.4\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.3\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.2\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { handleRef } from './utils'; // ========================================================\n// react/packages/react-reconciler/src/ReactFiber.js\n// ========================================================\n\n/**\n * Detects if a passed element is a Fiber object instead of an element. Is needed as `ReactDOM.findDOMNode()` returns\n * a Fiber in `react-test-renderer` that can cause issues with tests. Is used only in non-production env.\n *\n * @see https://github.com/facebook/react/issues/7371#issuecomment-317396864\n * @see https://github.com/Semantic-Org/Semantic-UI-React/issues/4061#issuecomment-694895617\n */\nfunction isFiberRef(node) {\n if (node === null) {\n return false;\n }\n\n if (node instanceof Element || node instanceof Text) {\n return false;\n }\n\n return !!(node.type && node.tag);\n}\n\nexport var RefFindNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(RefFindNode, _React$Component);\n\n function RefFindNode() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.prevNode = void 0;\n return _this;\n }\n\n var _proto = RefFindNode.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var currentNode = ReactDOM.findDOMNode(this);\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFiberRef(currentNode)) {\n currentNode = null;\n }\n }\n\n this.prevNode = currentNode;\n handleRef(this.props.innerRef, currentNode);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var currentNode = ReactDOM.findDOMNode(this);\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFiberRef(currentNode)) {\n currentNode = null;\n }\n }\n\n if (this.prevNode !== currentNode) {\n this.prevNode = currentNode;\n handleRef(this.props.innerRef, currentNode);\n }\n\n if (prevProps.innerRef !== this.props.innerRef) {\n handleRef(this.props.innerRef, currentNode);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n handleRef(this.props.innerRef, null);\n delete this.prevNode;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n return children;\n };\n\n return RefFindNode;\n}(React.Component);\n//# sourceMappingURL=RefFindNode.js.map\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as React from 'react';\nimport { handleRef } from './utils';\nexport var RefForward = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(RefForward, _React$Component);\n\n function RefForward() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.currentNode = void 0;\n\n _this.handleRefOverride = function (node) {\n var _this$props = _this.props,\n children = _this$props.children,\n innerRef = _this$props.innerRef;\n handleRef(children.ref, node);\n handleRef(innerRef, node);\n _this.currentNode = node;\n };\n\n return _this;\n }\n\n var _proto = RefForward.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.innerRef !== this.props.innerRef) {\n handleRef(this.props.innerRef, this.currentNode);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n delete this.currentNode;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n return /*#__PURE__*/React.cloneElement(children, {\n ref: this.handleRefOverride\n });\n };\n\n return RefForward;\n}(React.Component);\n//# sourceMappingURL=RefForward.js.map\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"innerRef\"];\nimport * as React from 'react';\nimport * as ReactIs from 'react-is';\nimport { RefFindNode } from './RefFindNode';\nimport { RefForward } from './RefForward';\nexport var Ref = function Ref(props) {\n var children = props.children,\n innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var child = React.Children.only(children);\n var ElementType = ReactIs.isForwardRef(child) ? RefForward : RefFindNode;\n var childWithProps = child && rest && Object.keys(rest).length > 0 ? /*#__PURE__*/React.cloneElement(child, rest) : child;\n return /*#__PURE__*/React.createElement(ElementType, {\n innerRef: innerRef\n }, childWithProps);\n};\n//# sourceMappingURL=Ref.js.map\n","/**\n * The function that correctly handles passing refs.\n *\n * @param ref - An ref object or function\n * @param node - A node that should be passed by ref\n */\nexport var handleRef = function handleRef(ref, node) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref === 'string') {\n throw new Error('We do not support refs as string, this is a legacy API and will be likely to be removed in one of the future releases of React.');\n }\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (ref !== null && typeof ref === 'object') {\n // The `current` property is defined as readonly, however it's a valid way because\n // `ref` is a mutable object\n ref.current = node;\n }\n};\n/** Checks that the passed object is a valid React ref object. */\n\nexport var isRefObject = function isRefObject(ref) {\n return (// https://github.com/facebook/react/blob/v16.8.2/packages/react-reconciler/src/ReactFiberCommitWork.js#L665\n ref !== null && typeof ref === 'object' && ref.hasOwnProperty('current')\n );\n};\n//# sourceMappingURL=utils.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var env=require(\"exenv\");require(\"prop-types\");var React=require(\"react\");function _typeof(e){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function _possibleConstructorReturn(e,t){return!t||\"object\"!=typeof t&&\"function\"!=typeof t?_assertThisInitialized(e):t}var EventSet=function(){function e(t){_classCallCheck(this,e),_defineProperty(this,\"handlers\",void 0),this.handlers=t.slice(0)}return _createClass(e,[{key:\"addHandlers\",value:function(t){for(var n=this.handlers.slice(0),r=t.length,o=0;o<r;o+=1)n.push(t[o]);return new e(n)}},{key:\"dispatchEvent\",value:function(e,t){var n=this.handlers.length-1;if(t){for(var r=n;r>=0;r-=1)this.handlers[r].called||(this.handlers[r].called=!0,this.handlers[r](e));for(var o=n;o>=0;o-=1)this.handlers[o].called=!1}else{(0,this.handlers[n])(e)}}},{key:\"hasHandlers\",value:function(){return this.handlers.length>0}},{key:\"removeHandlers\",value:function(t){for(var n=[],r=this.handlers.length,o=0;o<r;o+=1){var a=this.handlers[o];-1===t.indexOf(a)&&n.push(a)}return new e(n)}}]),e}();function cloneMap(e){var t=new Map;return e.forEach(function(e,n){t.set(n,e)}),t}function normalizeHandlers(e){return Array.isArray(e)?e:[e]}var isRefObject=function(e){return null!==e&&\"object\"===_typeof(e)&&e.hasOwnProperty(\"current\")};function normalizeTarget(e){return\"document\"===e?document:\"window\"===e?window:isRefObject(e)?e.current||document:e||document}var EventPool=function(){function e(t,n){_classCallCheck(this,e),_defineProperty(this,\"handlerSets\",void 0),_defineProperty(this,\"poolName\",void 0),this.handlerSets=n,this.poolName=t}return _createClass(e,[{key:\"addHandlers\",value:function(t,n){var r=cloneMap(this.handlerSets);if(r.has(t)){var o=r.get(t);r.set(t,o.addHandlers(n))}else r.set(t,new EventSet(n));return new e(this.poolName,r)}},{key:\"dispatchEvent\",value:function(e,t){var n=this.handlerSets.get(e),r=\"default\"===this.poolName;n&&n.dispatchEvent(t,r)}},{key:\"hasHandlers\",value:function(e){if(!e)return this.handlerSets.size>0;var t=this.handlerSets.get(e);return!!t&&t.hasHandlers()}},{key:\"removeHandlers\",value:function(t,n){var r=cloneMap(this.handlerSets);if(!r.has(t))return new e(this.poolName,r);var o=r.get(t).removeHandlers(n);return o.hasHandlers()?r.set(t,o):r.delete(t),new e(this.poolName,r)}}]),e}();_defineProperty(EventPool,\"createByType\",function(e,t,n){var r=new Map;return r.set(t,new EventSet(n)),new EventPool(e,r)});var EventTarget=function(){function e(t){var n=this;_classCallCheck(this,e),_defineProperty(this,\"handlers\",new Map),_defineProperty(this,\"pools\",new Map),_defineProperty(this,\"target\",void 0),_defineProperty(this,\"createEmitter\",function(e){return function(t){n.pools.forEach(function(n){n.dispatchEvent(e,t)})}}),this.target=t}return _createClass(e,[{key:\"addHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e);this.pools.set(e,r.addHandlers(t,n))}else this.pools.set(e,EventPool.createByType(e,t,n));this.handlers.has(t)||this.addTargetHandler(t)}},{key:\"hasHandlers\",value:function(){return this.handlers.size>0}},{key:\"removeHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e).removeHandlers(t,n);r.hasHandlers()?this.pools.set(e,r):this.pools.delete(e);var o=!1;this.pools.forEach(function(e){return o=o||e.hasHandlers(t)}),o||this.removeTargetHandler(t)}}},{key:\"addTargetHandler\",value:function(e){var t=this.createEmitter(e);this.handlers.set(e,t),this.target.addEventListener(e,t,!0)}},{key:\"removeTargetHandler\",value:function(e){this.handlers.has(e)&&(this.target.removeEventListener(e,this.handlers.get(e),!0),this.handlers.delete(e))}}]),e}(),EventStack=function(){function e(){var t=this;_classCallCheck(this,e),_defineProperty(this,\"targets\",new Map),_defineProperty(this,\"getTarget\",function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=normalizeTarget(e);if(t.targets.has(r))return t.targets.get(r);if(!n)return null;var o=new EventTarget(r);return t.targets.set(r,o),o}),_defineProperty(this,\"removeTarget\",function(e){t.targets.delete(normalizeTarget(e))})}return _createClass(e,[{key:\"sub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a;this.getTarget(o).addHandlers(s,e,normalizeHandlers(t))}}},{key:\"unsub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a,i=this.getTarget(o,!1);i&&(i.removeHandlers(s,e,normalizeHandlers(t)),i.hasHandlers()||this.removeTarget(o))}}}]),e}(),instance=new EventStack,EventStack$1=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,React.PureComponent),_createClass(t,[{key:\"componentDidMount\",value:function(){this.subscribe(this.props)}},{key:\"componentDidUpdate\",value:function(e){this.unsubscribe(e),this.subscribe(this.props)}},{key:\"componentWillUnmount\",value:function(){this.unsubscribe(this.props)}},{key:\"subscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.sub(t,n,{pool:r,target:o})}},{key:\"unsubscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.unsub(t,n,{pool:r,target:o})}},{key:\"render\",value:function(){return null}}]),t}();_defineProperty(EventStack$1,\"defaultProps\",{pool:\"default\",target:\"document\"}),EventStack$1.propTypes={},exports.instance=instance,exports.default=EventStack$1;\n","\n'use strict';\n\nvar stack;\n\nif (process.env.NODE_ENV === 'production') {\n stack = require('./cjs/event-stack.production.js');\n} else {\n stack = require('./cjs/event-stack.development.js');\n}\n\nmodule.exports = stack.default;\nmodule.exports.instance = stack.instance;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar stringHash = _interopDefault(require('string-hash'));\nvar asap = _interopDefault(require('asap'));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n/* @flow */\n/* ::\ntype ObjectMap = { [id:string]: any };\n*/\n\nvar UPPERCASE_RE = /([A-Z])/g;\n\nvar UPPERCASE_RE_TO_KEBAB = function UPPERCASE_RE_TO_KEBAB(match\n/* : string */\n) {\n return (\n /* : string */\n \"-\".concat(match.toLowerCase())\n );\n};\n\nvar kebabifyStyleName = function kebabifyStyleName(string\n/* : string */\n)\n/* : string */\n{\n var result = string.replace(UPPERCASE_RE, UPPERCASE_RE_TO_KEBAB);\n\n if (result[0] === 'm' && result[1] === 's' && result[2] === '-') {\n return \"-\".concat(result);\n }\n\n return result;\n};\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n * Taken from React's CSSProperty.js\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n/**\n * Taken from React's CSSProperty.js\n *\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n * Taken from React's CSSProperty.js\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n// Taken from React's CSSProperty.js\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\nvar stringifyValue = function stringifyValue(key\n/* : string */\n, prop\n/* : any */\n)\n/* : string */\n{\n if (typeof prop === \"number\") {\n if (isUnitlessNumber[key]) {\n return \"\" + prop;\n } else {\n return prop + \"px\";\n }\n } else {\n return '' + prop;\n }\n};\nvar stringifyAndImportantifyValue = function stringifyAndImportantifyValue(key\n/* : string */\n, prop\n/* : any */\n) {\n return (\n /* : string */\n importantify(stringifyValue(key, prop))\n );\n}; // Turn a string into a hash string of base-36 values (using letters and numbers)\n// eslint-disable-next-line no-unused-vars\n\nvar hashString = function hashString(string\n/* : string */\n, key\n/* : ?string */\n) {\n return (\n /* string */\n stringHash(string).toString(36)\n );\n}; // Hash a javascript object using JSON.stringify. This is very fast, about 3\n// microseconds on my computer for a sample object:\n// http://jsperf.com/test-hashfnv32a-hash/5\n//\n// Note that this uses JSON.stringify to stringify the objects so in order for\n// this to produce consistent hashes browsers need to have a consistent\n// ordering of objects. Ben Alpert says that Facebook depends on this, so we\n// can probably depend on this too.\n\nvar hashObject = function hashObject(object\n/* : ObjectMap */\n) {\n return (\n /* : string */\n hashString(JSON.stringify(object))\n );\n}; // Given a single style value string like the \"b\" from \"a: b;\", adds !important\n// to generate \"b !important\".\n\nvar importantify = function importantify(string\n/* : string */\n) {\n return (\n /* : string */\n // Bracket string character access is very fast, and in the default case we\n // normally don't expect there to be \"!important\" at the end of the string\n // so we can use this simple check to take an optimized path. If there\n // happens to be a \"!\" in this position, we follow up with a more thorough\n // check.\n string[string.length - 10] === '!' && string.slice(-11) === ' !important' ? string : \"\".concat(string, \" !important\")\n );\n};\n\n/* @flow */\nvar MAP_EXISTS = typeof Map !== 'undefined';\n\nvar OrderedElements =\n/*#__PURE__*/\nfunction () {\n /* ::\n elements: {[string]: any};\n keyOrder: string[];\n */\n function OrderedElements() {\n this.elements = {};\n this.keyOrder = [];\n }\n\n var _proto = OrderedElements.prototype;\n\n _proto.forEach = function forEach(callback\n /* : (string, any) => void */\n ) {\n for (var i = 0; i < this.keyOrder.length; i++) {\n // (value, key) to match Map's API\n callback(this.elements[this.keyOrder[i]], this.keyOrder[i]);\n }\n };\n\n _proto.set = function set(key\n /* : string */\n , value\n /* : any */\n , shouldReorder\n /* : ?boolean */\n ) {\n if (!this.elements.hasOwnProperty(key)) {\n this.keyOrder.push(key);\n } else if (shouldReorder) {\n var index = this.keyOrder.indexOf(key);\n this.keyOrder.splice(index, 1);\n this.keyOrder.push(key);\n }\n\n if (value == null) {\n this.elements[key] = value;\n return;\n }\n\n if (MAP_EXISTS && value instanceof Map || value instanceof OrderedElements) {\n // We have found a nested Map, so we need to recurse so that all\n // of the nested objects and Maps are merged properly.\n var nested = this.elements.hasOwnProperty(key) ? this.elements[key] : new OrderedElements();\n value.forEach(function (value, key) {\n nested.set(key, value, shouldReorder);\n });\n this.elements[key] = nested;\n return;\n }\n\n if (!Array.isArray(value) && _typeof(value) === 'object') {\n // We have found a nested object, so we need to recurse so that all\n // of the nested objects and Maps are merged properly.\n var _nested = this.elements.hasOwnProperty(key) ? this.elements[key] : new OrderedElements();\n\n var keys = Object.keys(value);\n\n for (var i = 0; i < keys.length; i += 1) {\n _nested.set(keys[i], value[keys[i]], shouldReorder);\n }\n\n this.elements[key] = _nested;\n return;\n }\n\n this.elements[key] = value;\n };\n\n _proto.get = function get(key\n /* : string */\n )\n /* : any */\n {\n return this.elements[key];\n };\n\n _proto.has = function has(key\n /* : string */\n )\n /* : boolean */\n {\n return this.elements.hasOwnProperty(key);\n };\n\n _proto.addStyleType = function addStyleType(styleType\n /* : any */\n )\n /* : void */\n {\n var _this = this;\n\n if (MAP_EXISTS && styleType instanceof Map || styleType instanceof OrderedElements) {\n styleType.forEach(function (value, key) {\n _this.set(key, value, true);\n });\n } else {\n var keys = Object.keys(styleType);\n\n for (var i = 0; i < keys.length; i++) {\n this.set(keys[i], styleType[keys[i]], true);\n }\n }\n };\n\n return OrderedElements;\n}();\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n.default || n;\n}\n\nvar capitalizeString_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n});\n\nunwrapExports(capitalizeString_1);\n\nvar prefixProperty_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\n\n\nvar _capitalizeString2 = _interopRequireDefault(capitalizeString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n newStyle[styleProperty] = style[styleProperty];\n }\n return newStyle;\n }\n return style;\n}\n});\n\nunwrapExports(prefixProperty_1);\n\nvar prefixValue_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}\n});\n\nunwrapExports(prefixValue_1);\n\nvar addNewValuesOnly_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}\n});\n\nunwrapExports(addNewValuesOnly_1);\n\nvar isObject_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}\n});\n\nunwrapExports(isObject_1);\n\nvar createPrefixer_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\n\n\nvar _prefixProperty2 = _interopRequireDefault(prefixProperty_1);\n\n\n\nvar _prefixValue2 = _interopRequireDefault(prefixValue_1);\n\n\n\nvar _addNewValuesOnly2 = _interopRequireDefault(addNewValuesOnly_1);\n\n\n\nvar _isObject2 = _interopRequireDefault(isObject_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}\n});\n\nvar createPrefixer = unwrapExports(createPrefixer_1);\n\nvar backgroundClip_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}\n});\n\nvar backgroundClip = unwrapExports(backgroundClip_1);\n\nvar isPrefixedValue_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\nmodule.exports = exports['default'];\n});\n\nunwrapExports(isPrefixedValue_1);\n\nvar calc_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = calc;\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nfunction calc(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/calc\\(/g, prefix + 'calc(');\n });\n }\n}\n});\n\nvar calc = unwrapExports(calc_1);\n\nvar crossFade_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}\n});\n\nvar crossFade = unwrapExports(crossFade_1);\n\nvar cursor_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}\n});\n\nvar cursor = unwrapExports(cursor_1);\n\nvar filter_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}\n});\n\nvar filter = unwrapExports(filter_1);\n\nvar flex_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}\n});\n\nvar flex = unwrapExports(flex_1);\n\nvar flexboxIE_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize'\n // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n};var flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\n\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n }\n // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n // The next thing we can look for is if there are multiple values.\n var flexValues = value.split(/\\s/);\n // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n return;\n default:\n style.msFlex = value;\n }\n }\n}\n});\n\nvar flexboxIE = unwrapExports(flexboxIE_1);\n\nvar flexboxOld_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}\n});\n\nvar flexboxOld = unwrapExports(flexboxOld_1);\n\nvar gradient_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}\n});\n\nvar gradient = unwrapExports(gradient_1);\n\nvar grid_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = grid;\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else {\n var _value$split$map = value.split('/').map(function (position) {\n return +position;\n }),\n _value$split$map2 = _slicedToArray(_value$split$map, 2),\n start = _value$split$map2[0],\n end = _value$split$map2[1];\n\n propertyConverters.gridColumnStart(start, style);\n propertyConverters.gridColumnEnd(end, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else {\n var _value$split$map3 = value.split('/').map(function (position) {\n return +position;\n }),\n _value$split$map4 = _slicedToArray(_value$split$map3, 2),\n start = _value$split$map4[0],\n end = _value$split$map4[1];\n\n propertyConverters.gridRowStart(start, style);\n propertyConverters.gridRowEnd(end, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}\n});\n\nvar grid = unwrapExports(grid_1);\n\nvar imageSet_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}\n});\n\nvar imageSet = unwrapExports(imageSet_1);\n\nvar logical_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}\n});\n\nvar logical = unwrapExports(logical_1);\n\nvar position_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}\n});\n\nvar position = unwrapExports(position_1);\n\nvar sizing_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}\n});\n\nvar sizing = unwrapExports(sizing_1);\n\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nvar hyphenateStyleName$1 = /*#__PURE__*/Object.freeze({\n default: hyphenateStyleName\n});\n\nvar _hyphenateStyleName = getCjsExportFromNamespace(hyphenateStyleName$1);\n\nvar hyphenateProperty_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\n\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\nmodule.exports = exports['default'];\n});\n\nunwrapExports(hyphenateProperty_1);\n\nvar transition_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\n\n\nvar _hyphenateProperty2 = _interopRequireDefault(hyphenateProperty_1);\n\n\n\nvar _isPrefixedValue2 = _interopRequireDefault(isPrefixedValue_1);\n\n\n\nvar _capitalizeString2 = _interopRequireDefault(capitalizeString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}\n});\n\nvar transition = unwrapExports(transition_1);\n\nvar w = [\"Webkit\"];\nvar m = [\"Moz\"];\nvar ms = [\"ms\"];\nvar wm = [\"Webkit\", \"Moz\"];\nvar wms = [\"Webkit\", \"ms\"];\nvar wmms = [\"Webkit\", \"Moz\", \"ms\"];\nvar staticData = {\n plugins: [backgroundClip, calc, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition],\n prefixMap: {\n \"transform\": wms,\n \"transformOrigin\": wms,\n \"transformOriginX\": wms,\n \"transformOriginY\": wms,\n \"backfaceVisibility\": w,\n \"perspective\": w,\n \"perspectiveOrigin\": w,\n \"transformStyle\": w,\n \"transformOriginZ\": w,\n \"animation\": w,\n \"animationDelay\": w,\n \"animationDirection\": w,\n \"animationFillMode\": w,\n \"animationDuration\": w,\n \"animationIterationCount\": w,\n \"animationName\": w,\n \"animationPlayState\": w,\n \"animationTimingFunction\": w,\n \"appearance\": wm,\n \"userSelect\": wmms,\n \"fontKerning\": w,\n \"textEmphasisPosition\": w,\n \"textEmphasis\": w,\n \"textEmphasisStyle\": w,\n \"textEmphasisColor\": w,\n \"boxDecorationBreak\": w,\n \"clipPath\": w,\n \"maskImage\": w,\n \"maskMode\": w,\n \"maskRepeat\": w,\n \"maskPosition\": w,\n \"maskClip\": w,\n \"maskOrigin\": w,\n \"maskSize\": w,\n \"maskComposite\": w,\n \"mask\": w,\n \"maskBorderSource\": w,\n \"maskBorderMode\": w,\n \"maskBorderSlice\": w,\n \"maskBorderWidth\": w,\n \"maskBorderOutset\": w,\n \"maskBorderRepeat\": w,\n \"maskBorder\": w,\n \"maskType\": w,\n \"textDecorationStyle\": wm,\n \"textDecorationSkip\": wm,\n \"textDecorationLine\": wm,\n \"textDecorationColor\": wm,\n \"filter\": w,\n \"fontFeatureSettings\": wm,\n \"breakAfter\": wmms,\n \"breakBefore\": wmms,\n \"breakInside\": wmms,\n \"columnCount\": wm,\n \"columnFill\": wm,\n \"columnGap\": wm,\n \"columnRule\": wm,\n \"columnRuleColor\": wm,\n \"columnRuleStyle\": wm,\n \"columnRuleWidth\": wm,\n \"columns\": wm,\n \"columnSpan\": wm,\n \"columnWidth\": wm,\n \"writingMode\": wms,\n \"flex\": wms,\n \"flexBasis\": w,\n \"flexDirection\": wms,\n \"flexGrow\": w,\n \"flexFlow\": wms,\n \"flexShrink\": w,\n \"flexWrap\": wms,\n \"alignContent\": w,\n \"alignItems\": w,\n \"alignSelf\": w,\n \"justifyContent\": w,\n \"order\": w,\n \"transitionDelay\": w,\n \"transitionDuration\": w,\n \"transitionProperty\": w,\n \"transitionTimingFunction\": w,\n \"backdropFilter\": w,\n \"scrollSnapType\": wms,\n \"scrollSnapPointsX\": wms,\n \"scrollSnapPointsY\": wms,\n \"scrollSnapDestination\": wms,\n \"scrollSnapCoordinate\": wms,\n \"shapeImageThreshold\": w,\n \"shapeImageMargin\": w,\n \"shapeImageOutside\": w,\n \"hyphens\": wmms,\n \"flowInto\": wms,\n \"flowFrom\": wms,\n \"regionFragment\": wms,\n \"textOrientation\": w,\n \"boxSizing\": m,\n \"textAlignLast\": m,\n \"tabSize\": m,\n \"wrapFlow\": ms,\n \"wrapThrough\": ms,\n \"wrapMargin\": ms,\n \"touchAction\": ms,\n \"textSizeAdjust\": wms,\n \"borderImage\": w,\n \"borderImageOutset\": w,\n \"borderImageRepeat\": w,\n \"borderImageSlice\": w,\n \"borderImageSource\": w,\n \"borderImageWidth\": w\n }\n};\n\nvar prefixAll = createPrefixer(staticData);\n/* ::\nimport type { SheetDefinition } from './index.js';\ntype StringHandlers = { [id:string]: Function };\ntype SelectorCallback = (selector: string) => string[];\nexport type SelectorHandler = (\n selector: string,\n baseSelector: string,\n callback: SelectorCallback\n) => string[] | string | null;\n*/\n\n/**\n * `selectorHandlers` are functions which handle special selectors which act\n * differently than normal style definitions. These functions look at the\n * current selector and can generate CSS for the styles in their subtree by\n * calling the callback with a new selector.\n *\n * For example, when generating styles with a base selector of '.foo' and the\n * following styles object:\n *\n * {\n * ':nth-child(2n)': {\n * ':hover': {\n * color: 'red'\n * }\n * }\n * }\n *\n * when we reach the ':hover' style, we would call our selector handlers like\n *\n * handler(':hover', '.foo:nth-child(2n)', callback)\n *\n * Since our `pseudoSelectors` handles ':hover' styles, that handler would call\n * the callback like\n *\n * callback('.foo:nth-child(2n):hover')\n *\n * to generate its subtree `{ color: 'red' }` styles with a\n * '.foo:nth-child(2n):hover' selector. The callback would return an array of CSS\n * rules like\n *\n * ['.foo:nth-child(2n):hover{color:red !important;}']\n *\n * and the handler would then return that resulting CSS.\n *\n * `defaultSelectorHandlers` is the list of default handlers used in a call to\n * `generateCSS`.\n *\n * @name SelectorHandler\n * @function\n * @param {string} selector: The currently inspected selector. ':hover' in the\n * example above.\n * @param {string} baseSelector: The selector of the parent styles.\n * '.foo:nth-child(2n)' in the example above.\n * @param {function} generateSubtreeStyles: A function which can be called to\n * generate CSS for the subtree of styles corresponding to the selector.\n * Accepts a new baseSelector to use for generating those styles.\n * @returns {string[] | string | null} The generated CSS for this selector, or\n * null if we don't handle this selector.\n */\n\nvar defaultSelectorHandlers\n/* : SelectorHandler[] */\n= [// Handle pseudo-selectors, like :hover and :nth-child(3n)\nfunction pseudoSelectors(selector, baseSelector, generateSubtreeStyles) {\n if (selector[0] !== \":\") {\n return null;\n }\n\n return generateSubtreeStyles(baseSelector + selector);\n}, // Handle media queries (or font-faces)\nfunction mediaQueries(selector, baseSelector, generateSubtreeStyles) {\n if (selector[0] !== \"@\") {\n return null;\n } // Generate the styles normally, and then wrap them in the media query.\n\n\n var generated = generateSubtreeStyles(baseSelector);\n return [\"\".concat(selector, \"{\").concat(generated.join(''), \"}\")];\n}];\n/**\n * Generate CSS for a selector and some styles.\n *\n * This function handles the media queries and pseudo selectors that can be used\n * in aphrodite styles.\n *\n * @param {string} selector: A base CSS selector for the styles to be generated\n * with.\n * @param {Object} styleTypes: A list of properties of the return type of\n * StyleSheet.create, e.g. [styles.red, styles.blue].\n * @param {Array.<SelectorHandler>} selectorHandlers: A list of selector\n * handlers to use for handling special selectors. See\n * `defaultSelectorHandlers`.\n * @param stringHandlers: See `generateCSSRuleset`\n * @param useImportant: See `generateCSSRuleset`\n *\n * To actually generate the CSS special-construct-less styles are passed to\n * `generateCSSRuleset`.\n *\n * For instance, a call to\n *\n * generateCSS(\".foo\", [{\n * color: \"red\",\n * \"@media screen\": {\n * height: 20,\n * \":hover\": {\n * backgroundColor: \"black\"\n * }\n * },\n * \":active\": {\n * fontWeight: \"bold\"\n * }\n * }], defaultSelectorHandlers);\n *\n * with the default `selectorHandlers` will make 5 calls to\n * `generateCSSRuleset`:\n *\n * generateCSSRuleset(\".foo\", { color: \"red\" }, ...)\n * generateCSSRuleset(\".foo:active\", { fontWeight: \"bold\" }, ...)\n * // These 2 will be wrapped in @media screen {}\n * generateCSSRuleset(\".foo\", { height: 20 }, ...)\n * generateCSSRuleset(\".foo:hover\", { backgroundColor: \"black\" }, ...)\n */\n\nvar generateCSS = function generateCSS(selector\n/* : string */\n, styleTypes\n/* : SheetDefinition[] */\n, selectorHandlers\n/* : SelectorHandler[] */\n, stringHandlers\n/* : StringHandlers */\n, useImportant\n/* : boolean */\n)\n/* : string[] */\n{\n var merged = new OrderedElements();\n\n for (var i = 0; i < styleTypes.length; i++) {\n merged.addStyleType(styleTypes[i]);\n }\n\n var plainDeclarations = new OrderedElements();\n var generatedStyles = []; // TODO(emily): benchmark this to see if a plain for loop would be faster.\n\n merged.forEach(function (val, key) {\n // For each key, see if one of the selector handlers will handle these\n // styles.\n var foundHandler = selectorHandlers.some(function (handler) {\n var result = handler(key, selector, function (newSelector) {\n return generateCSS(newSelector, [val], selectorHandlers, stringHandlers, useImportant);\n });\n\n if (result != null) {\n // If the handler returned something, add it to the generated\n // CSS and stop looking for another handler.\n if (Array.isArray(result)) {\n generatedStyles.push.apply(generatedStyles, _toConsumableArray(result));\n } else {\n // eslint-disable-next-line\n console.warn('WARNING: Selector handlers should return an array of rules.' + 'Returning a string containing multiple rules is deprecated.', handler);\n generatedStyles.push(\"@media all {\".concat(result, \"}\"));\n }\n\n return true;\n }\n }); // If none of the handlers handled it, add it to the list of plain\n // style declarations.\n\n if (!foundHandler) {\n plainDeclarations.set(key, val, true);\n }\n });\n var generatedRuleset = generateCSSRuleset(selector, plainDeclarations, stringHandlers, useImportant, selectorHandlers);\n\n if (generatedRuleset) {\n generatedStyles.unshift(generatedRuleset);\n }\n\n return generatedStyles;\n};\n/**\n * Helper method of generateCSSRuleset to facilitate custom handling of certain\n * CSS properties. Used for e.g. font families.\n *\n * See generateCSSRuleset for usage and documentation of paramater types.\n */\n\nvar runStringHandlers = function runStringHandlers(declarations\n/* : OrderedElements */\n, stringHandlers\n/* : StringHandlers */\n, selectorHandlers\n/* : SelectorHandler[] */\n)\n/* : void */\n{\n if (!stringHandlers) {\n return;\n }\n\n var stringHandlerKeys = Object.keys(stringHandlers);\n\n for (var i = 0; i < stringHandlerKeys.length; i++) {\n var key = stringHandlerKeys[i];\n\n if (declarations.has(key)) {\n // A declaration exists for this particular string handler, so we\n // need to let the string handler interpret the declaration first\n // before proceeding.\n //\n // TODO(emily): Pass in a callback which generates CSS, similar to\n // how our selector handlers work, instead of passing in\n // `selectorHandlers` and have them make calls to `generateCSS`\n // themselves. Right now, this is impractical because our string\n // handlers are very specialized and do complex things.\n declarations.set(key, stringHandlers[key](declarations.get(key), selectorHandlers), // Preserve order here, since we are really replacing an\n // unprocessed style with a processed style, not overriding an\n // earlier style\n false);\n }\n }\n};\n\nvar transformRule = function transformRule(key\n/* : string */\n, value\n/* : string */\n, transformValue\n/* : function */\n) {\n return (\n /* : string */\n \"\".concat(kebabifyStyleName(key), \":\").concat(transformValue(key, value), \";\")\n );\n};\n\nvar arrayToObjectKeysReducer = function arrayToObjectKeysReducer(acc, val) {\n acc[val] = true;\n return acc;\n};\n/**\n * Generate a CSS ruleset with the selector and containing the declarations.\n *\n * This function assumes that the given declarations don't contain any special\n * children (such as media queries, pseudo-selectors, or descendant styles).\n *\n * Note that this method does not deal with nesting used for e.g.\n * psuedo-selectors or media queries. That responsibility is left to the\n * `generateCSS` function.\n *\n * @param {string} selector: the selector associated with the ruleset\n * @param {Object} declarations: a map from camelCased CSS property name to CSS\n * property value.\n * @param {Object.<string, function>} stringHandlers: a map from camelCased CSS\n * property name to a function which will map the given value to the value\n * that is output.\n * @param {bool} useImportant: A boolean saying whether to append \"!important\"\n * to each of the CSS declarations.\n * @returns {string} A string of raw CSS.\n *\n * Examples:\n *\n * generateCSSRuleset(\".blah\", { color: \"red\" })\n * -> \".blah{color: red !important;}\"\n * generateCSSRuleset(\".blah\", { color: \"red\" }, {}, false)\n * -> \".blah{color: red}\"\n * generateCSSRuleset(\".blah\", { color: \"red\" }, {color: c => c.toUpperCase})\n * -> \".blah{color: RED}\"\n * generateCSSRuleset(\".blah:hover\", { color: \"red\" })\n * -> \".blah:hover{color: red}\"\n */\n\n\nvar generateCSSRuleset = function generateCSSRuleset(selector\n/* : string */\n, declarations\n/* : OrderedElements */\n, stringHandlers\n/* : StringHandlers */\n, useImportant\n/* : boolean */\n, selectorHandlers\n/* : SelectorHandler[] */\n)\n/* : string */\n{\n // Mutates declarations\n runStringHandlers(declarations, stringHandlers, selectorHandlers);\n var originalElements = Object.keys(declarations.elements).reduce(arrayToObjectKeysReducer, Object.create(null)); // NOTE(emily): This mutates handledDeclarations.elements.\n\n var prefixedElements = prefixAll(declarations.elements);\n var elementNames = Object.keys(prefixedElements);\n\n if (elementNames.length !== declarations.keyOrder.length) {\n // There are some prefixed values, so we need to figure out how to sort\n // them.\n //\n // Loop through prefixedElements, looking for anything that is not in\n // sortOrder, which means it was added by prefixAll. This means that we\n // need to figure out where it should appear in the sortOrder.\n for (var i = 0; i < elementNames.length; i++) {\n if (!originalElements[elementNames[i]]) {\n // This element is not in the sortOrder, which means it is a prefixed\n // value that was added by prefixAll. Let's try to figure out where it\n // goes.\n var originalStyle = void 0;\n\n if (elementNames[i][0] === 'W') {\n // This is a Webkit-prefixed style, like \"WebkitTransition\". Let's\n // find its original style's sort order.\n originalStyle = elementNames[i][6].toLowerCase() + elementNames[i].slice(7);\n } else if (elementNames[i][1] === 'o') {\n // This is a Moz-prefixed style, like \"MozTransition\". We check\n // the second character to avoid colliding with Ms-prefixed\n // styles. Let's find its original style's sort order.\n originalStyle = elementNames[i][3].toLowerCase() + elementNames[i].slice(4);\n } else {\n // if (elementNames[i][1] === 's') {\n // This is a Ms-prefixed style, like \"MsTransition\".\n originalStyle = elementNames[i][2].toLowerCase() + elementNames[i].slice(3);\n }\n\n if (originalStyle && originalElements[originalStyle]) {\n var originalIndex = declarations.keyOrder.indexOf(originalStyle);\n declarations.keyOrder.splice(originalIndex, 0, elementNames[i]);\n } else {\n // We don't know what the original style was, so sort it to\n // top. This can happen for styles that are added that don't\n // have the same base name as the original style.\n declarations.keyOrder.unshift(elementNames[i]);\n }\n }\n }\n }\n\n var transformValue = useImportant === false ? stringifyValue : stringifyAndImportantifyValue;\n var rules = [];\n\n for (var _i = 0; _i < declarations.keyOrder.length; _i++) {\n var key = declarations.keyOrder[_i];\n var value = prefixedElements[key];\n\n if (Array.isArray(value)) {\n // inline-style-prefixer returns an array when there should be\n // multiple rules for the same key. Here we flatten to multiple\n // pairs with the same key.\n for (var j = 0; j < value.length; j++) {\n rules.push(transformRule(key, value[j], transformValue));\n }\n } else {\n rules.push(transformRule(key, value, transformValue));\n }\n }\n\n if (rules.length) {\n return \"\".concat(selector, \"{\").concat(rules.join(\"\"), \"}\");\n } else {\n return \"\";\n }\n};\n\n/* ::\nimport type { SheetDefinition, SheetDefinitions } from './index.js';\nimport type { MaybeSheetDefinition } from './exports.js';\nimport type { SelectorHandler } from './generate.js';\n*/\n// The current <style> tag we are inserting into, or null if we haven't\n// inserted anything yet. We could find this each time using\n// `document.querySelector(\"style[data-aphrodite\"])`, but holding onto it is\n// faster.\n\nvar styleTag\n/* : ?HTMLStyleElement */\n= null; // Inject a set of rules into a <style> tag in the head of the document. This\n// will automatically create a style tag and then continue to use it for\n// multiple injections. It will also use a style tag with the `data-aphrodite`\n// tag on it if that exists in the DOM. This could be used for e.g. reusing the\n// same style tag that server-side rendering inserts.\n\nvar injectStyleTag = function injectStyleTag(cssRules\n/* : string[] */\n) {\n if (styleTag == null) {\n // Try to find a style tag with the `data-aphrodite` attribute first.\n styleTag = document.querySelector(\"style[data-aphrodite]\")\n /* : any */\n ; // If that doesn't work, generate a new style tag.\n\n if (styleTag == null) {\n // Taken from\n // http://stackoverflow.com/questions/524696/how-to-create-a-style-tag-with-javascript\n var head = document.head || document.getElementsByTagName('head')[0];\n styleTag = document.createElement('style');\n styleTag.type = 'text/css';\n styleTag.setAttribute(\"data-aphrodite\", \"\");\n head.appendChild(styleTag);\n }\n } // $FlowFixMe\n\n\n var sheet = styleTag.styleSheet || styleTag.sheet\n /* : any */\n ;\n\n if (sheet.insertRule) {\n var numRules = sheet.cssRules.length;\n cssRules.forEach(function (rule) {\n try {\n sheet.insertRule(rule, numRules);\n numRules += 1;\n } catch (e) {// The selector for this rule wasn't compatible with the browser\n }\n });\n } else {\n styleTag.innerText = (styleTag.innerText || '') + cssRules.join('');\n }\n}; // Custom handlers for stringifying CSS values that have side effects\n// (such as fontFamily, which can cause @font-face rules to be injected)\n\n\nvar stringHandlers = {\n // With fontFamily we look for objects that are passed in and interpret\n // them as @font-face rules that we need to inject. The value of fontFamily\n // can either be a string (as normal), an object (a single font face), or\n // an array of objects and strings.\n fontFamily: function fontFamily(val) {\n if (Array.isArray(val)) {\n var nameMap = {};\n val.forEach(function (v) {\n nameMap[fontFamily(v)] = true;\n });\n return Object.keys(nameMap).join(\",\");\n } else if (_typeof(val) === \"object\") {\n injectStyleOnce(val.src, \"@font-face\", [val], false);\n return \"\\\"\".concat(val.fontFamily, \"\\\"\");\n } else {\n return val;\n }\n },\n // With animationName we look for an object that contains keyframes and\n // inject them as an `@keyframes` block, returning a uniquely generated\n // name. The keyframes object should look like\n // animationName: {\n // from: {\n // left: 0,\n // top: 0,\n // },\n // '50%': {\n // left: 15,\n // top: 5,\n // },\n // to: {\n // left: 20,\n // top: 20,\n // }\n // }\n // TODO(emily): `stringHandlers` doesn't let us rename the key, so I have\n // to use `animationName` here. Improve that so we can call this\n // `animation` instead of `animationName`.\n animationName: function animationName(val, selectorHandlers) {\n if (Array.isArray(val)) {\n return val.map(function (v) {\n return animationName(v, selectorHandlers);\n }).join(\",\");\n } else if (_typeof(val) === \"object\") {\n // Generate a unique name based on the hash of the object. We can't\n // just use the hash because the name can't start with a number.\n // TODO(emily): this probably makes debugging hard, allow a custom\n // name?\n var name = \"keyframe_\".concat(hashObject(val)); // Since keyframes need 3 layers of nesting, we use `generateCSS` to\n // build the inner layers and wrap it in `@keyframes` ourselves.\n\n var finalVal = \"@keyframes \".concat(name, \"{\"); // TODO see if we can find a way where checking for OrderedElements\n // here is not necessary. Alternatively, perhaps we should have a\n // utility method that can iterate over either a plain object, an\n // instance of OrderedElements, or a Map, and then use that here and\n // elsewhere.\n\n if (val instanceof OrderedElements) {\n val.forEach(function (valVal, valKey) {\n finalVal += generateCSS(valKey, [valVal], selectorHandlers, stringHandlers, false).join('');\n });\n } else {\n Object.keys(val).forEach(function (key) {\n finalVal += generateCSS(key, [val[key]], selectorHandlers, stringHandlers, false).join('');\n });\n }\n\n finalVal += '}';\n injectGeneratedCSSOnce(name, [finalVal]);\n return name;\n } else {\n return val;\n }\n }\n}; // This is a map from Aphrodite's generated class names to `true` (acting as a\n// set of class names)\n\nvar alreadyInjected = {}; // This is the buffer of styles which have not yet been flushed.\n\nvar injectionBuffer\n/* : string[] */\n= []; // A flag to tell if we are already buffering styles. This could happen either\n// because we scheduled a flush call already, so newly added styles will\n// already be flushed, or because we are statically buffering on the server.\n\nvar isBuffering = false;\n\nvar injectGeneratedCSSOnce = function injectGeneratedCSSOnce(key, generatedCSS) {\n var _injectionBuffer;\n\n if (alreadyInjected[key]) {\n return;\n }\n\n if (!isBuffering) {\n // We should never be automatically buffering on the server (or any\n // place without a document), so guard against that.\n if (typeof document === \"undefined\") {\n throw new Error(\"Cannot automatically buffer without a document\");\n } // If we're not already buffering, schedule a call to flush the\n // current styles.\n\n\n isBuffering = true;\n asap(flushToStyleTag);\n }\n\n (_injectionBuffer = injectionBuffer).push.apply(_injectionBuffer, _toConsumableArray(generatedCSS));\n\n alreadyInjected[key] = true;\n};\n\nvar injectStyleOnce = function injectStyleOnce(key\n/* : string */\n, selector\n/* : string */\n, definitions\n/* : SheetDefinition[] */\n, useImportant\n/* : boolean */\n) {\n var selectorHandlers\n /* : SelectorHandler[] */\n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n\n if (alreadyInjected[key]) {\n return;\n }\n\n var generated = generateCSS(selector, definitions, selectorHandlers, stringHandlers, useImportant);\n injectGeneratedCSSOnce(key, generated);\n};\nvar reset = function reset() {\n injectionBuffer = [];\n alreadyInjected = {};\n isBuffering = false;\n styleTag = null;\n};\nvar resetInjectedStyle = function resetInjectedStyle(key\n/* : string */\n) {\n delete alreadyInjected[key];\n};\nvar getBufferedStyles = function getBufferedStyles() {\n return injectionBuffer;\n};\nvar startBuffering = function startBuffering() {\n if (isBuffering) {\n throw new Error(\"Cannot buffer while already buffering\");\n }\n\n isBuffering = true;\n};\n\nvar flushToArray = function flushToArray() {\n isBuffering = false;\n var ret = injectionBuffer;\n injectionBuffer = [];\n return ret;\n};\n\nvar flushToString = function flushToString() {\n return flushToArray().join('');\n};\nvar flushToStyleTag = function flushToStyleTag() {\n var cssRules = flushToArray();\n\n if (cssRules.length > 0) {\n injectStyleTag(cssRules);\n }\n};\nvar getRenderedClassNames = function getRenderedClassNames()\n/* : string[] */\n{\n return Object.keys(alreadyInjected);\n};\nvar addRenderedClassNames = function addRenderedClassNames(classNames\n/* : string[] */\n) {\n classNames.forEach(function (className) {\n alreadyInjected[className] = true;\n });\n};\n\nvar isValidStyleDefinition = function isValidStyleDefinition(def\n/* : Object */\n) {\n return \"_definition\" in def && \"_name\" in def && \"_len\" in def;\n};\n\nvar processStyleDefinitions = function processStyleDefinitions(styleDefinitions\n/* : any[] */\n, classNameBits\n/* : string[] */\n, definitionBits\n/* : Object[] */\n, length\n/* : number */\n)\n/* : number */\n{\n for (var i = 0; i < styleDefinitions.length; i += 1) {\n // Filter out falsy values from the input, to allow for\n // `css(a, test && c)`\n if (styleDefinitions[i]) {\n if (Array.isArray(styleDefinitions[i])) {\n // We've encountered an array, so let's recurse\n length += processStyleDefinitions(styleDefinitions[i], classNameBits, definitionBits, length);\n } else if (isValidStyleDefinition(styleDefinitions[i])) {\n classNameBits.push(styleDefinitions[i]._name);\n definitionBits.push(styleDefinitions[i]._definition);\n length += styleDefinitions[i]._len;\n } else {\n throw new Error(\"Invalid Style Definition: Styles should be defined using the StyleSheet.create method.\");\n }\n }\n }\n\n return length;\n};\n/**\n * Inject styles associated with the passed style definition objects, and return\n * an associated CSS class name.\n *\n * @param {boolean} useImportant If true, will append !important to generated\n * CSS output. e.g. {color: red} -> \"color: red !important\".\n * @param {(Object|Object[])[]} styleDefinitions style definition objects, or\n * arbitrarily nested arrays of them, as returned as properties of the\n * return value of StyleSheet.create().\n */\n\n\nvar injectAndGetClassName = function injectAndGetClassName(useImportant\n/* : boolean */\n, styleDefinitions\n/* : MaybeSheetDefinition[] */\n, selectorHandlers\n/* : SelectorHandler[] */\n)\n/* : string */\n{\n var classNameBits = [];\n var definitionBits = []; // Mutates classNameBits and definitionBits and returns a length which we\n // will append to the hash to decrease the chance of hash collisions.\n\n var length = processStyleDefinitions(styleDefinitions, classNameBits, definitionBits, 0); // Break if there aren't any valid styles.\n\n if (classNameBits.length === 0) {\n return \"\";\n }\n\n var className;\n\n if (process.env.NODE_ENV === 'production') {\n className = classNameBits.length === 1 ? \"_\".concat(classNameBits[0]) : \"_\".concat(hashString(classNameBits.join())).concat((length % 36).toString(36));\n } else {\n className = classNameBits.join(\"-o_O-\");\n }\n\n injectStyleOnce(className, \".\".concat(className), definitionBits, useImportant, selectorHandlers);\n return className;\n};\n\n/* ::\nimport type { SelectorHandler } from './generate.js';\nexport type SheetDefinition = { [id:string]: any };\nexport type SheetDefinitions = SheetDefinition | SheetDefinition[];\ntype RenderFunction = () => string;\ntype Extension = {\n selectorHandler: SelectorHandler\n};\nexport type MaybeSheetDefinition = SheetDefinition | false | null | void\n*/\n\nvar unminifiedHashFn = function unminifiedHashFn(str\n/* : string */\n, key\n/* : string */\n) {\n return \"\".concat(key, \"_\").concat(hashString(str));\n}; // StyleSheet.create is in a hot path so we want to keep as much logic out of it\n// as possible. So, we figure out which hash function to use once, and only\n// switch it out via minify() as necessary.\n//\n// This is in an exported function to make it easier to test.\n\n\nvar initialHashFn = function initialHashFn() {\n return process.env.NODE_ENV === 'production' ? hashString : unminifiedHashFn;\n};\nvar hashFn = initialHashFn();\nvar StyleSheet = {\n create: function create(sheetDefinition\n /* : SheetDefinition */\n )\n /* : Object */\n {\n var mappedSheetDefinition = {};\n var keys = Object.keys(sheetDefinition);\n\n for (var i = 0; i < keys.length; i += 1) {\n var key = keys[i];\n var val = sheetDefinition[key];\n var stringVal = JSON.stringify(val);\n mappedSheetDefinition[key] = {\n _len: stringVal.length,\n _name: hashFn(stringVal, key),\n _definition: val\n };\n }\n\n return mappedSheetDefinition;\n },\n rehydrate: function rehydrate() {\n var renderedClassNames\n /* : string[] */\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n addRenderedClassNames(renderedClassNames);\n }\n};\n/**\n * Utilities for using Aphrodite server-side.\n *\n * This can be minified out in client-only bundles by replacing `typeof window`\n * with `\"object\"`, e.g. via Webpack's DefinePlugin:\n *\n * new webpack.DefinePlugin({\n * \"typeof window\": JSON.stringify(\"object\")\n * })\n */\n\nvar StyleSheetServer = typeof window !== 'undefined' ? null : {\n renderStatic: function renderStatic(renderFunc\n /* : RenderFunction */\n ) {\n reset();\n startBuffering();\n var html = renderFunc();\n var cssContent = flushToString();\n return {\n html: html,\n css: {\n content: cssContent,\n renderedClassNames: getRenderedClassNames()\n }\n };\n }\n};\n/**\n * Utilities for using Aphrodite in tests.\n *\n * Not meant to be used in production.\n */\n\nvar StyleSheetTestUtils = process.env.NODE_ENV === 'production' ? null : {\n /**\n * Prevent styles from being injected into the DOM.\n *\n * This is useful in situations where you'd like to test rendering UI\n * components which use Aphrodite without any of the side-effects of\n * Aphrodite happening. Particularly useful for testing the output of\n * components when you have no DOM, e.g. testing in Node without a fake DOM.\n *\n * Should be paired with a subsequent call to\n * clearBufferAndResumeStyleInjection.\n */\n suppressStyleInjection: function suppressStyleInjection() {\n reset();\n startBuffering();\n },\n\n /**\n * Opposite method of preventStyleInject.\n */\n clearBufferAndResumeStyleInjection: function clearBufferAndResumeStyleInjection() {\n reset();\n },\n\n /**\n * Returns a string of buffered styles which have not been flushed\n *\n * @returns {string} Buffer of styles which have not yet been flushed.\n */\n getBufferedStyles: function getBufferedStyles$1() {\n return getBufferedStyles();\n }\n};\n/**\n * Generate the Aphrodite API exports, with given `selectorHandlers` and\n * `useImportant` state.\n */\n\nfunction makeExports(useImportant\n/* : boolean */\n) {\n var selectorHandlers\n /* : SelectorHandler[] */\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSelectorHandlers;\n return {\n StyleSheet: _objectSpread({}, StyleSheet, {\n /**\n * Returns a version of the exports of Aphrodite (i.e. an object\n * with `css` and `StyleSheet` properties) which have some\n * extensions included.\n *\n * @param {Array.<Object>} extensions: An array of extensions to\n * add to this instance of Aphrodite. Each object should have a\n * single property on it, defining which kind of extension to\n * add.\n * @param {SelectorHandler} [extensions[].selectorHandler]: A\n * selector handler extension. See `defaultSelectorHandlers` in\n * generate.js.\n *\n * @returns {Object} An object containing the exports of the new\n * instance of Aphrodite.\n */\n extend: function extend(extensions\n /* : Extension[] */\n ) {\n var extensionSelectorHandlers = extensions // Pull out extensions with a selectorHandler property\n .map(function (extension) {\n return extension.selectorHandler;\n }) // Remove nulls (i.e. extensions without a selectorHandler property).\n .filter(function (handler) {\n return handler;\n });\n return makeExports(useImportant, selectorHandlers.concat(extensionSelectorHandlers));\n }\n }),\n StyleSheetServer: StyleSheetServer,\n StyleSheetTestUtils: StyleSheetTestUtils,\n minify: function minify(shouldMinify\n /* : boolean */\n ) {\n hashFn = shouldMinify ? hashString : unminifiedHashFn;\n },\n css: function css()\n /* : MaybeSheetDefinition[] */\n {\n for (var _len = arguments.length, styleDefinitions = new Array(_len), _key = 0; _key < _len; _key++) {\n styleDefinitions[_key] = arguments[_key];\n }\n\n return injectAndGetClassName(useImportant, styleDefinitions, selectorHandlers);\n },\n flushToStyleTag: flushToStyleTag,\n injectAndGetClassName: injectAndGetClassName,\n defaultSelectorHandlers: defaultSelectorHandlers,\n reset: reset,\n resetInjectedStyle: resetInjectedStyle\n };\n}\n\nexports.makeExports = makeExports;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar __chunk_1 = require('./chunk-d8625444.js');\nrequire('string-hash');\nrequire('asap');\n\n/* @flow */\nvar useImportant = false; // Don't add !important to style definitions\n\nvar Aphrodite = __chunk_1.makeExports(useImportant);\nvar StyleSheet = Aphrodite.StyleSheet,\n StyleSheetServer = Aphrodite.StyleSheetServer,\n StyleSheetTestUtils = Aphrodite.StyleSheetTestUtils,\n css = Aphrodite.css,\n minify = Aphrodite.minify,\n flushToStyleTag = Aphrodite.flushToStyleTag,\n injectAndGetClassName = Aphrodite.injectAndGetClassName,\n defaultSelectorHandlers = Aphrodite.defaultSelectorHandlers,\n reset = Aphrodite.reset,\n resetInjectedStyle = Aphrodite.resetInjectedStyle;\n\nexports.StyleSheet = StyleSheet;\nexports.StyleSheetServer = StyleSheetServer;\nexports.StyleSheetTestUtils = StyleSheetTestUtils;\nexports.css = css;\nexports.minify = minify;\nexports.flushToStyleTag = flushToStyleTag;\nexports.injectAndGetClassName = injectAndGetClassName;\nexports.defaultSelectorHandlers = defaultSelectorHandlers;\nexports.reset = reset;\nexports.resetInjectedStyle = resetInjectedStyle;\n","module.exports = require('./lib/no-important.js');\n","\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};\n","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","'use strict'\n\nmodule.exports = ccount\n\nfunction ccount(source, character) {\n var value = String(source)\n var count = 0\n var index\n\n if (typeof character !== 'string') {\n throw new Error('Expected character')\n }\n\n index = value.indexOf(character)\n\n while (index !== -1) {\n count++\n index = value.indexOf(character, index + character.length)\n }\n\n return count\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","'use strict'\n\nvar data = require('./data.json')\n\n/** Precompute name and code lookups. */\nvar nameMap = {}\nvar codeMap = {}\ndata.forEach(mapCodeAndName)\n\nfunction mapCodeAndName (country) {\n nameMap[country.name.toLowerCase()] = country.code\n codeMap[country.code.toLowerCase()] = country.name\n}\n\nexports.overwrite = function overwrite (countries) {\n if (!countries || !countries.length) return\n countries.forEach(function (country) {\n var foundIndex = data.findIndex(function (item) {\n return item.code === country.code\n })\n data[foundIndex] = country\n mapCodeAndName(country)\n })\n}\n\nexports.getCode = function getCode (name) {\n return nameMap[name.toLowerCase()]\n}\n\nexports.getName = function getName (code) {\n return codeMap[code.toLowerCase()]\n}\n\nexports.getNames = function getNames () {\n return data.map(function (country) {\n return country.name\n })\n}\n\nexports.getCodes = function getCodes () {\n return data.map(function (country) {\n return country.code\n })\n}\n\nexports.getCodeList = function getCodeList () {\n return codeMap\n}\n\nexports.getNameList = function getNameList () {\n return nameMap\n}\n\nexports.getData = function getData () {\n return data\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","'use strict';\n\n/* global setTimeout, clearTimeout */\n\nmodule.exports = function debounce(fn) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var lastCallAt = void 0;\n var deferred = void 0;\n var timer = void 0;\n var pendingArgs = [];\n return function debounced() {\n var currentWait = getWait(wait);\n var currentTime = new Date().getTime();\n\n var isCold = !lastCallAt || currentTime - lastCallAt > currentWait;\n\n lastCallAt = currentTime;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (isCold && options.leading) {\n return options.accumulate ? Promise.resolve(fn.call(this, [args])).then(function (result) {\n return result[0];\n }) : Promise.resolve(fn.call.apply(fn, [this].concat(args)));\n }\n\n if (deferred) {\n clearTimeout(timer);\n } else {\n deferred = defer();\n }\n\n pendingArgs.push(args);\n timer = setTimeout(flush.bind(this), currentWait);\n\n if (options.accumulate) {\n var argsIndex = pendingArgs.length - 1;\n return deferred.promise.then(function (results) {\n return results[argsIndex];\n });\n }\n\n return deferred.promise;\n };\n\n function flush() {\n var thisDeferred = deferred;\n clearTimeout(timer);\n\n Promise.resolve(options.accumulate ? fn.call(this, pendingArgs) : fn.apply(this, pendingArgs[pendingArgs.length - 1])).then(thisDeferred.resolve, thisDeferred.reject);\n\n pendingArgs = [];\n deferred = null;\n }\n};\n\nfunction getWait(wait) {\n return typeof wait === 'function' ? wait() : wait;\n}\n\nfunction defer() {\n var deferred = {};\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n//# sourceMappingURL=index.js.map","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array<String>\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array<Object>\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// â—Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array<Object>\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import uniq from \"lodash/uniq\";\nexport const defaultLocaleResolver = (i18n, locale) => {\n const locales = [];\n const list = [];\n locales.push(locale);\n if (!locale) {\n locales.push(i18n.locale);\n }\n if (i18n.enableFallback) {\n locales.push(i18n.defaultLocale);\n }\n locales\n .filter(Boolean)\n .map((entry) => entry.toString())\n .forEach(function (currentLocale) {\n if (!list.includes(currentLocale)) {\n list.push(currentLocale);\n }\n if (!i18n.enableFallback) {\n return;\n }\n const codes = currentLocale.split(\"-\");\n if (codes.length === 3) {\n list.push(`${codes[0]}-${codes[1]}`);\n }\n list.push(codes[0]);\n });\n return uniq(list);\n};\nexport class Locales {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"default\", defaultLocaleResolver);\n }\n register(locale, localeResolver) {\n if (typeof localeResolver !== \"function\") {\n const result = localeResolver;\n localeResolver = (() => result);\n }\n this.registry[locale] = localeResolver;\n }\n get(locale) {\n let locales = this.registry[locale] ||\n this.registry[this.i18n.locale] ||\n this.registry.default;\n if (typeof locales === \"function\") {\n locales = locales(this.i18n, locale);\n }\n if (!(locales instanceof Array)) {\n locales = [locales];\n }\n return locales;\n }\n}\n//# sourceMappingURL=Locales.js.map","import { en } from \"make-plural\";\nexport function useMakePlural({ pluralizer, includeZero = true, ordinal = false, }) {\n return function (_i18n, count) {\n return [\n includeZero && count === 0 ? \"zero\" : \"\",\n pluralizer(count, ordinal),\n ].filter(Boolean);\n };\n}\nexport const defaultPluralizer = useMakePlural({\n pluralizer: en,\n includeZero: true,\n});\nexport class Pluralization {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"default\", defaultPluralizer);\n }\n register(locale, pluralizer) {\n this.registry[locale] = pluralizer;\n }\n get(locale) {\n return (this.registry[locale] ||\n this.registry[this.i18n.locale] ||\n this.registry[\"default\"]);\n }\n}\n//# sourceMappingURL=Pluralization.js.map","const a = (n, ord) => {\n if (ord) return 'other';\n return n == 1 ? 'one' : 'other';\n};\nconst b = (n, ord) => {\n if (ord) return 'other';\n return (n == 0 || n == 1) ? 'one' : 'other';\n};\nconst c = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nconst d = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nconst e = (n, ord) => 'other';\nconst f = (n, ord) => {\n if (ord) return 'other';\n return n == 1 ? 'one'\n : n == 2 ? 'two'\n : 'other';\n};\n\nexport const af = a;\nexport const ak = b;\nexport const am = c;\nexport const an = a;\nexport const ar = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : n == 2 ? 'two'\n : (n100 >= 3 && n100 <= 10) ? 'few'\n : (n100 >= 11 && n100 <= 99) ? 'many'\n : 'other';\n};\nexport const ars = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : n == 2 ? 'two'\n : (n100 >= 3 && n100 <= 10) ? 'few'\n : (n100 >= 11 && n100 <= 99) ? 'many'\n : 'other';\n};\nexport const as = (n, ord) => {\n if (ord) return (n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10) ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const asa = a;\nexport const ast = d;\nexport const az = (n, ord) => {\n const s = String(n).split('.'), i = s[0], i10 = i.slice(-1), i100 = i.slice(-2), i1000 = i.slice(-3);\n if (ord) return (i10 == 1 || i10 == 2 || i10 == 5 || i10 == 7 || i10 == 8) || (i100 == 20 || i100 == 50 || i100 == 70 || i100 == 80) ? 'one'\n : (i10 == 3 || i10 == 4) || (i1000 == 100 || i1000 == 200 || i1000 == 300 || i1000 == 400 || i1000 == 500 || i1000 == 600 || i1000 == 700 || i1000 == 800 || i1000 == 900) ? 'few'\n : i == 0 || i10 == 6 || (i100 == 40 || i100 == 60 || i100 == 90) ? 'many'\n : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const bal = (n, ord) => n == 1 ? 'one' : 'other';\nexport const be = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return (n10 == 2 || n10 == 3) && n100 != 12 && n100 != 13 ? 'few' : 'other';\n return n10 == 1 && n100 != 11 ? 'one'\n : (n10 >= 2 && n10 <= 4) && (n100 < 12 || n100 > 14) ? 'few'\n : t0 && n10 == 0 || (n10 >= 5 && n10 <= 9) || (n100 >= 11 && n100 <= 14) ? 'many'\n : 'other';\n};\nexport const bem = a;\nexport const bez = a;\nexport const bg = a;\nexport const bho = b;\nexport const blo = (n, ord) => {\n const s = String(n).split('.'), i = s[0];\n if (ord) return i == 0 ? 'zero'\n : i == 1 ? 'one'\n : (i == 2 || i == 3 || i == 4 || i == 5 || i == 6) ? 'few'\n : 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : 'other';\n};\nexport const bm = e;\nexport const bn = (n, ord) => {\n if (ord) return (n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10) ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const bo = e;\nexport const br = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), n1000000 = t0 && s[0].slice(-6);\n if (ord) return 'other';\n return n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one'\n : n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two'\n : ((n10 == 3 || n10 == 4) || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few'\n : n != 0 && t0 && n1000000 == 0 ? 'many'\n : 'other';\n};\nexport const brx = a;\nexport const bs = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n : 'other';\n};\nexport const ca = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return (n == 1 || n == 3) ? 'one'\n : n == 2 ? 'two'\n : n == 4 ? 'few'\n : 'other';\n return n == 1 && v0 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const ce = a;\nexport const ceb = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n if (ord) return 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const cgg = a;\nexport const chr = a;\nexport const ckb = a;\nexport const cs = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one'\n : (i >= 2 && i <= 4) && v0 ? 'few'\n : !v0 ? 'many'\n : 'other';\n};\nexport const cy = (n, ord) => {\n if (ord) return (n == 0 || n == 7 || n == 8 || n == 9) ? 'zero'\n : n == 1 ? 'one'\n : n == 2 ? 'two'\n : (n == 3 || n == 4) ? 'few'\n : (n == 5 || n == 6) ? 'many'\n : 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : n == 2 ? 'two'\n : n == 3 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n};\nexport const da = (n, ord) => {\n const s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';\n};\nexport const de = d;\nexport const doi = c;\nexport const dsb = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 || f100 == 1 ? 'one'\n : v0 && i100 == 2 || f100 == 2 ? 'two'\n : v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'\n : 'other';\n};\nexport const dv = a;\nexport const dz = e;\nexport const ee = a;\nexport const el = a;\nexport const en = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return n10 == 1 && n100 != 11 ? 'one'\n : n10 == 2 && n100 != 12 ? 'two'\n : n10 == 3 && n100 != 13 ? 'few'\n : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const eo = a;\nexport const es = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return 'other';\n return n == 1 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const et = d;\nexport const eu = a;\nexport const fa = c;\nexport const ff = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const fi = d;\nexport const fil = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n if (ord) return n == 1 ? 'one' : 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const fo = a;\nexport const fr = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return n == 1 ? 'one' : 'other';\n return n >= 0 && n < 2 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const fur = a;\nexport const fy = d;\nexport const ga = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 ? 'one'\n : n == 2 ? 'two'\n : (t0 && n >= 3 && n <= 6) ? 'few'\n : (t0 && n >= 7 && n <= 10) ? 'many'\n : 'other';\n};\nexport const gd = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return (n == 1 || n == 11) ? 'one'\n : (n == 2 || n == 12) ? 'two'\n : (n == 3 || n == 13) ? 'few'\n : 'other';\n return (n == 1 || n == 11) ? 'one'\n : (n == 2 || n == 12) ? 'two'\n : ((t0 && n >= 3 && n <= 10) || (t0 && n >= 13 && n <= 19)) ? 'few'\n : 'other';\n};\nexport const gl = d;\nexport const gsw = a;\nexport const gu = (n, ord) => {\n if (ord) return n == 1 ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const guw = b;\nexport const gv = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 ? 'one'\n : v0 && i10 == 2 ? 'two'\n : v0 && (i100 == 0 || i100 == 20 || i100 == 40 || i100 == 60 || i100 == 80) ? 'few'\n : !v0 ? 'many'\n : 'other';\n};\nexport const ha = a;\nexport const haw = a;\nexport const he = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1];\n if (ord) return 'other';\n return i == 1 && v0 || i == 0 && !v0 ? 'one'\n : i == 2 && v0 ? 'two'\n : 'other';\n};\nexport const hi = (n, ord) => {\n if (ord) return n == 1 ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const hnj = e;\nexport const hr = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n : 'other';\n};\nexport const hsb = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 || f100 == 1 ? 'one'\n : v0 && i100 == 2 || f100 == 2 ? 'two'\n : v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'\n : 'other';\n};\nexport const hu = (n, ord) => {\n if (ord) return (n == 1 || n == 5) ? 'one' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const hy = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const ia = d;\nexport const id = e;\nexport const ig = e;\nexport const ii = e;\nexport const io = d;\nexport const is = (n, ord) => {\n const s = String(n).split('.'), i = s[0], t = (s[1] || '').replace(/0+$/, ''), t0 = Number(s[0]) == n, i10 = i.slice(-1), i100 = i.slice(-2);\n if (ord) return 'other';\n return t0 && i10 == 1 && i100 != 11 || t % 10 == 1 && t % 100 != 11 ? 'one' : 'other';\n};\nexport const it = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n return n == 1 && v0 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const iu = f;\nexport const ja = e;\nexport const jbo = e;\nexport const jgo = a;\nexport const jmc = a;\nexport const jv = e;\nexport const jw = e;\nexport const ka = (n, ord) => {\n const s = String(n).split('.'), i = s[0], i100 = i.slice(-2);\n if (ord) return i == 1 ? 'one'\n : i == 0 || ((i100 >= 2 && i100 <= 20) || i100 == 40 || i100 == 60 || i100 == 80) ? 'many'\n : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const kab = (n, ord) => {\n if (ord) return 'other';\n return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const kaj = a;\nexport const kcg = a;\nexport const kde = e;\nexport const kea = e;\nexport const kk = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);\n if (ord) return n10 == 6 || n10 == 9 || t0 && n10 == 0 && n != 0 ? 'many' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const kkj = a;\nexport const kl = a;\nexport const km = e;\nexport const kn = c;\nexport const ko = e;\nexport const ks = a;\nexport const ksb = a;\nexport const ksh = (n, ord) => {\n if (ord) return 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : 'other';\n};\nexport const ku = a;\nexport const kw = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2), n1000 = t0 && s[0].slice(-3), n100000 = t0 && s[0].slice(-5), n1000000 = t0 && s[0].slice(-6);\n if (ord) return (t0 && n >= 1 && n <= 4) || ((n100 >= 1 && n100 <= 4) || (n100 >= 21 && n100 <= 24) || (n100 >= 41 && n100 <= 44) || (n100 >= 61 && n100 <= 64) || (n100 >= 81 && n100 <= 84)) ? 'one'\n : n == 5 || n100 == 5 ? 'many'\n : 'other';\n return n == 0 ? 'zero'\n : n == 1 ? 'one'\n : (n100 == 2 || n100 == 22 || n100 == 42 || n100 == 62 || n100 == 82) || t0 && n1000 == 0 && ((n100000 >= 1000 && n100000 <= 20000) || n100000 == 40000 || n100000 == 60000 || n100000 == 80000) || n != 0 && n1000000 == 100000 ? 'two'\n : (n100 == 3 || n100 == 23 || n100 == 43 || n100 == 63 || n100 == 83) ? 'few'\n : n != 1 && (n100 == 1 || n100 == 21 || n100 == 41 || n100 == 61 || n100 == 81) ? 'many'\n : 'other';\n};\nexport const ky = a;\nexport const lag = (n, ord) => {\n const s = String(n).split('.'), i = s[0];\n if (ord) return 'other';\n return n == 0 ? 'zero'\n : (i == 0 || i == 1) && n != 0 ? 'one'\n : 'other';\n};\nexport const lb = a;\nexport const lg = a;\nexport const lij = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n;\n if (ord) return (n == 11 || n == 8 || (t0 && n >= 80 && n <= 89) || (t0 && n >= 800 && n <= 899)) ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const lkt = e;\nexport const ln = b;\nexport const lo = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const lt = (n, ord) => {\n const s = String(n).split('.'), f = s[1] || '', t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one'\n : (n10 >= 2 && n10 <= 9) && (n100 < 11 || n100 > 19) ? 'few'\n : f != 0 ? 'many'\n : 'other';\n};\nexport const lv = (n, ord) => {\n const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);\n if (ord) return 'other';\n return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'\n : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'\n : 'other';\n};\nexport const mas = a;\nexport const mg = b;\nexport const mgo = a;\nexport const mk = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n if (ord) return i10 == 1 && i100 != 11 ? 'one'\n : i10 == 2 && i100 != 12 ? 'two'\n : (i10 == 7 || i10 == 8) && i100 != 17 && i100 != 18 ? 'many'\n : 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';\n};\nexport const ml = a;\nexport const mn = a;\nexport const mo = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 && v0 ? 'one'\n : !v0 || n == 0 || n != 1 && (n100 >= 1 && n100 <= 19) ? 'few'\n : 'other';\n};\nexport const mr = (n, ord) => {\n if (ord) return n == 1 ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const ms = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const mt = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n if (ord) return 'other';\n return n == 1 ? 'one'\n : n == 2 ? 'two'\n : n == 0 || (n100 >= 3 && n100 <= 10) ? 'few'\n : (n100 >= 11 && n100 <= 19) ? 'many'\n : 'other';\n};\nexport const my = e;\nexport const nah = a;\nexport const naq = f;\nexport const nb = a;\nexport const nd = a;\nexport const ne = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return (t0 && n >= 1 && n <= 4) ? 'one' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const nl = d;\nexport const nn = a;\nexport const nnh = a;\nexport const no = a;\nexport const nqo = e;\nexport const nr = a;\nexport const nso = b;\nexport const ny = a;\nexport const nyn = a;\nexport const om = a;\nexport const or = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return (n == 1 || n == 5 || (t0 && n >= 7 && n <= 9)) ? 'one'\n : (n == 2 || n == 3) ? 'two'\n : n == 4 ? 'few'\n : n == 6 ? 'many'\n : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const os = a;\nexport const osa = e;\nexport const pa = b;\nexport const pap = a;\nexport const pcm = c;\nexport const pl = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n if (ord) return 'other';\n return n == 1 && v0 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n : v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 12 && i100 <= 14) ? 'many'\n : 'other';\n};\nexport const prg = (n, ord) => {\n const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);\n if (ord) return 'other';\n return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'\n : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'\n : 'other';\n};\nexport const ps = a;\nexport const pt = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return 'other';\n return (i == 0 || i == 1) ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const pt_PT = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return 'other';\n return n == 1 && v0 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const rm = a;\nexport const ro = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one' : 'other';\n return n == 1 && v0 ? 'one'\n : !v0 || n == 0 || n != 1 && (n100 >= 1 && n100 <= 19) ? 'few'\n : 'other';\n};\nexport const rof = a;\nexport const ru = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n : v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'\n : 'other';\n};\nexport const rwk = a;\nexport const sah = e;\nexport const saq = a;\nexport const sat = f;\nexport const sc = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1];\n if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const scn = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1];\n if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sd = a;\nexport const sdh = a;\nexport const se = f;\nexport const seh = a;\nexport const ses = e;\nexport const sg = e;\nexport const sh = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n : 'other';\n};\nexport const shi = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return n >= 0 && n <= 1 ? 'one'\n : (t0 && n >= 2 && n <= 10) ? 'few'\n : 'other';\n};\nexport const si = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '';\n if (ord) return 'other';\n return (n == 0 || n == 1) || i == 0 && f == 1 ? 'one' : 'other';\n};\nexport const sk = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1];\n if (ord) return 'other';\n return n == 1 && v0 ? 'one'\n : (i >= 2 && i <= 4) && v0 ? 'few'\n : !v0 ? 'many'\n : 'other';\n};\nexport const sl = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i100 = i.slice(-2);\n if (ord) return 'other';\n return v0 && i100 == 1 ? 'one'\n : v0 && i100 == 2 ? 'two'\n : v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few'\n : 'other';\n};\nexport const sma = f;\nexport const smi = f;\nexport const smj = f;\nexport const smn = f;\nexport const sms = f;\nexport const sn = a;\nexport const so = a;\nexport const sq = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return n == 1 ? 'one'\n : n10 == 4 && n100 != 14 ? 'many'\n : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const sr = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n if (ord) return 'other';\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n : 'other';\n};\nexport const ss = a;\nexport const ssy = a;\nexport const st = a;\nexport const su = e;\nexport const sv = (n, ord) => {\n const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return (n10 == 1 || n10 == 2) && n100 != 11 && n100 != 12 ? 'one' : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sw = d;\nexport const syr = a;\nexport const ta = a;\nexport const te = a;\nexport const teo = a;\nexport const th = e;\nexport const ti = b;\nexport const tig = a;\nexport const tk = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);\n if (ord) return (n10 == 6 || n10 == 9) || n == 10 ? 'few' : 'other';\n return n == 1 ? 'one' : 'other';\n};\nexport const tl = (n, ord) => {\n const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n if (ord) return n == 1 ? 'one' : 'other';\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const tn = a;\nexport const to = e;\nexport const tpi = e;\nexport const tr = a;\nexport const ts = a;\nexport const tzm = (n, ord) => {\n const s = String(n).split('.'), t0 = Number(s[0]) == n;\n if (ord) return 'other';\n return (n == 0 || n == 1) || (t0 && n >= 11 && n <= 99) ? 'one' : 'other';\n};\nexport const ug = a;\nexport const uk = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), i10 = i.slice(-1), i100 = i.slice(-2);\n if (ord) return n10 == 3 && n100 != 13 ? 'few' : 'other';\n return v0 && i10 == 1 && i100 != 11 ? 'one'\n : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n : v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'\n : 'other';\n};\nexport const und = e;\nexport const ur = d;\nexport const uz = a;\nexport const ve = a;\nexport const vec = (n, ord) => {\n const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n return n == 1 && v0 ? 'one'\n : i != 0 && i1000000 == 0 && v0 ? 'many'\n : 'other';\n};\nexport const vi = (n, ord) => {\n if (ord) return n == 1 ? 'one' : 'other';\n return 'other';\n};\nexport const vo = a;\nexport const vun = a;\nexport const wa = b;\nexport const wae = a;\nexport const wo = e;\nexport const xh = a;\nexport const xog = a;\nexport const yi = d;\nexport const yo = e;\nexport const yue = e;\nexport const zh = e;\nexport const zu = c;\n","import camelCase from \"lodash/camelCase\";\nexport function camelCaseKeys(target) {\n if (!target) {\n return {};\n }\n return Object.keys(target).reduce((buffer, key) => {\n buffer[camelCase(key)] = target[key];\n return buffer;\n }, {});\n}\n//# sourceMappingURL=camelCaseKeys.js.map","export function isSet(value) {\n return value !== undefined && value !== null;\n}\n//# sourceMappingURL=isSet.js.map","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import BigNumber from \"bignumber.js\";\nvar RoundingModeMap;\n(function (RoundingModeMap) {\n RoundingModeMap[RoundingModeMap[\"up\"] = BigNumber.ROUND_UP] = \"up\";\n RoundingModeMap[RoundingModeMap[\"down\"] = BigNumber.ROUND_DOWN] = \"down\";\n RoundingModeMap[RoundingModeMap[\"truncate\"] = BigNumber.ROUND_DOWN] = \"truncate\";\n RoundingModeMap[RoundingModeMap[\"halfUp\"] = BigNumber.ROUND_HALF_UP] = \"halfUp\";\n RoundingModeMap[RoundingModeMap[\"default\"] = BigNumber.ROUND_HALF_UP] = \"default\";\n RoundingModeMap[RoundingModeMap[\"halfDown\"] = BigNumber.ROUND_HALF_DOWN] = \"halfDown\";\n RoundingModeMap[RoundingModeMap[\"halfEven\"] = BigNumber.ROUND_HALF_EVEN] = \"halfEven\";\n RoundingModeMap[RoundingModeMap[\"banker\"] = BigNumber.ROUND_HALF_EVEN] = \"banker\";\n RoundingModeMap[RoundingModeMap[\"ceiling\"] = BigNumber.ROUND_CEIL] = \"ceiling\";\n RoundingModeMap[RoundingModeMap[\"ceil\"] = BigNumber.ROUND_CEIL] = \"ceil\";\n RoundingModeMap[RoundingModeMap[\"floor\"] = BigNumber.ROUND_FLOOR] = \"floor\";\n})(RoundingModeMap || (RoundingModeMap = {}));\nexport function expandRoundMode(roundMode) {\n var _a;\n return ((_a = RoundingModeMap[roundMode]) !== null && _a !== void 0 ? _a : RoundingModeMap.default);\n}\n//# sourceMappingURL=expandRoundMode.js.map","import BigNumber from \"bignumber.js\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nfunction digitCount(numeric) {\n if (numeric.isZero()) {\n return 1;\n }\n return Math.floor(Math.log10(numeric.abs().toNumber()) + 1);\n}\nfunction getAbsolutePrecision(numeric, { precision, significant }) {\n if (significant && precision !== null && precision > 0) {\n return precision - digitCount(numeric);\n }\n return precision;\n}\nexport function roundNumber(numeric, options) {\n const precision = getAbsolutePrecision(numeric, options);\n if (precision === null) {\n return numeric.toString();\n }\n const roundMode = expandRoundMode(options.roundMode);\n if (precision >= 0) {\n return numeric.toFixed(precision, roundMode);\n }\n const rounder = Math.pow(10, Math.abs(precision));\n numeric = new BigNumber(numeric.div(rounder).toFixed(0, roundMode)).times(rounder);\n return numeric.toString();\n}\n//# sourceMappingURL=roundNumber.js.map","import BigNumber from \"bignumber.js\";\nimport repeat from \"lodash/repeat\";\nimport { roundNumber } from \"./roundNumber\";\nfunction replaceInFormat(format, { formattedNumber, unit }) {\n return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}\nfunction computeSignificand({ significand, whole, precision, }) {\n if (whole === \"0\" || precision === null) {\n return significand;\n }\n const limit = Math.max(0, precision - whole.length);\n return (significand !== null && significand !== void 0 ? significand : \"\").substr(0, limit);\n}\nexport function formatNumber(input, options) {\n var _a, _b, _c;\n const originalNumber = new BigNumber(input);\n if (options.raise && !originalNumber.isFinite()) {\n throw new Error(`\"${input}\" is not a valid numeric value`);\n }\n const roundedNumber = roundNumber(originalNumber, options);\n const numeric = new BigNumber(roundedNumber);\n const isNegative = numeric.lt(0);\n const isZero = numeric.isZero();\n let [whole, significand] = roundedNumber.split(\".\");\n const buffer = [];\n let formattedNumber;\n const positiveFormat = (_a = options.format) !== null && _a !== void 0 ? _a : \"%n\";\n const negativeFormat = (_b = options.negativeFormat) !== null && _b !== void 0 ? _b : `-${positiveFormat}`;\n const format = isNegative && !isZero ? negativeFormat : positiveFormat;\n whole = whole.replace(\"-\", \"\");\n while (whole.length > 0) {\n buffer.unshift(whole.substr(Math.max(0, whole.length - 3), 3));\n whole = whole.substr(0, whole.length - 3);\n }\n whole = buffer.join(\"\");\n formattedNumber = buffer.join(options.delimiter);\n if (options.significant) {\n significand = computeSignificand({\n whole,\n significand,\n precision: options.precision,\n });\n }\n else {\n significand = significand !== null && significand !== void 0 ? significand : repeat(\"0\", (_c = options.precision) !== null && _c !== void 0 ? _c : 0);\n }\n if (options.stripInsignificantZeros && significand) {\n significand = significand.replace(/0+$/, \"\");\n }\n if (originalNumber.isNaN()) {\n formattedNumber = input.toString();\n }\n if (significand && originalNumber.isFinite()) {\n formattedNumber += (options.separator || \".\") + significand;\n }\n return replaceInFormat(format, {\n formattedNumber,\n unit: options.unit,\n });\n}\n//# sourceMappingURL=formatNumber.js.map","export function getFullScope(i18n, scope, options) {\n let result = \"\";\n if (scope instanceof String || typeof scope === \"string\") {\n result = scope;\n }\n if (scope instanceof Array) {\n result = scope.join(i18n.defaultSeparator);\n }\n if (options.scope) {\n result = [options.scope, result].join(i18n.defaultSeparator);\n }\n return result;\n}\n//# sourceMappingURL=getFullScope.js.map","export function inferType(instance) {\n var _a, _b;\n if (instance === null) {\n return \"null\";\n }\n const type = typeof instance;\n if (type !== \"object\") {\n return type;\n }\n return ((_b = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || \"object\";\n}\n//# sourceMappingURL=inferType.js.map","import { isSet } from \"./isSet\";\nexport function interpolate(i18n, message, options) {\n options = Object.keys(options).reduce((buffer, key) => {\n buffer[i18n.transformKey(key)] = options[key];\n return buffer;\n }, {});\n const matches = message.match(i18n.placeholder);\n if (!matches) {\n return message;\n }\n while (matches.length) {\n let value;\n const placeholder = matches.shift();\n const name = placeholder.replace(i18n.placeholder, \"$1\");\n if (isSet(options[name])) {\n value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n }\n else if (name in options) {\n value = i18n.nullPlaceholder(i18n, placeholder, message, options);\n }\n else {\n value = i18n.missingPlaceholder(i18n, placeholder, message, options);\n }\n const regex = new RegExp(placeholder.replace(/\\{/gm, \"\\\\{\").replace(/\\}/gm, \"\\\\}\"));\n message = message.replace(regex, value);\n }\n return message.replace(/_#\\$#_/g, \"$\");\n}\n//# sourceMappingURL=interpolate.js.map","import { isSet } from \"./isSet\";\nimport { getFullScope } from \"./getFullScope\";\nimport { inferType } from \"./inferType\";\nexport function lookup(i18n, scope, options = {}) {\n options = Object.assign({}, options);\n const locale = \"locale\" in options ? options.locale : i18n.locale;\n const localeType = inferType(locale);\n const locales = i18n.locales\n .get(localeType === \"string\" ? locale : typeof locale)\n .slice();\n const keys = getFullScope(i18n, scope, options)\n .split(i18n.defaultSeparator)\n .map((component) => i18n.transformKey(component));\n const entries = locales.map((locale) => keys.reduce((path, key) => path && path[key], i18n.translations[locale]));\n entries.push(options.defaultValue);\n return entries.find((entry) => isSet(entry));\n}\n//# sourceMappingURL=lookup.js.map","import BigNumber from \"bignumber.js\";\nimport sortBy from \"lodash/sortBy\";\nimport zipObject from \"lodash/zipObject\";\nimport { getFullScope } from \"./getFullScope\";\nimport { lookup } from \"./lookup\";\nimport { roundNumber } from \"./roundNumber\";\nimport { inferType } from \"./inferType\";\nconst DECIMAL_UNITS = {\n \"0\": \"unit\",\n \"1\": \"ten\",\n \"2\": \"hundred\",\n \"3\": \"thousand\",\n \"6\": \"million\",\n \"9\": \"billion\",\n \"12\": \"trillion\",\n \"15\": \"quadrillion\",\n \"-1\": \"deci\",\n \"-2\": \"centi\",\n \"-3\": \"mili\",\n \"-6\": \"micro\",\n \"-9\": \"nano\",\n \"-12\": \"pico\",\n \"-15\": \"femto\",\n};\nconst INVERTED_DECIMAL_UNITS = zipObject(Object.values(DECIMAL_UNITS), Object.keys(DECIMAL_UNITS).map((key) => parseInt(key, 10)));\nexport function numberToHuman(i18n, input, options) {\n const roundOptions = {\n roundMode: options.roundMode,\n precision: options.precision,\n significant: options.significant,\n };\n let units;\n if (inferType(options.units) === \"string\") {\n const scope = options.units;\n units = lookup(i18n, scope);\n if (!units) {\n throw new Error(`The scope \"${i18n.locale}${i18n.defaultSeparator}${getFullScope(i18n, scope, {})}\" couldn't be found`);\n }\n }\n else {\n units = options.units;\n }\n let formattedNumber = roundNumber(new BigNumber(input), roundOptions);\n const unitExponents = (units) => sortBy(Object.keys(units).map((name) => INVERTED_DECIMAL_UNITS[name]), (numeric) => numeric * -1);\n const calculateExponent = (num, units) => {\n const exponent = num.isZero()\n ? 0\n : Math.floor(Math.log10(num.abs().toNumber()));\n return unitExponents(units).find((exp) => exponent >= exp) || 0;\n };\n const determineUnit = (units, exponent) => {\n const expName = DECIMAL_UNITS[exponent.toString()];\n return units[expName] || \"\";\n };\n const exponent = calculateExponent(new BigNumber(formattedNumber), units);\n const unit = determineUnit(units, exponent);\n formattedNumber = roundNumber(new BigNumber(formattedNumber).div(Math.pow(10, exponent)), roundOptions);\n if (options.stripInsignificantZeros) {\n let [whole, significand] = formattedNumber.split(\".\");\n significand = (significand || \"\").replace(/0+$/, \"\");\n formattedNumber = whole;\n if (significand) {\n formattedNumber += `${options.separator}${significand}`;\n }\n }\n return options.format\n .replace(\"%n\", formattedNumber || \"0\")\n .replace(\"%u\", unit)\n .trim();\n}\n//# sourceMappingURL=numberToHuman.js.map","import BigNumber from \"bignumber.js\";\nimport { roundNumber } from \"./roundNumber\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nconst STORAGE_UNITS = [\"byte\", \"kb\", \"mb\", \"gb\", \"tb\", \"pb\", \"eb\"];\nexport function numberToHumanSize(i18n, input, options) {\n const roundMode = expandRoundMode(options.roundMode);\n const base = 1024;\n const num = new BigNumber(input).abs();\n const smallerThanBase = num.lt(base);\n let numberToBeFormatted;\n const computeExponent = (numeric, units) => {\n const max = units.length - 1;\n const exp = new BigNumber(Math.log(numeric.toNumber()))\n .div(Math.log(base))\n .integerValue(BigNumber.ROUND_DOWN)\n .toNumber();\n return Math.min(max, exp);\n };\n const storageUnitKey = (units) => {\n const keyEnd = smallerThanBase ? \"byte\" : units[exponent];\n return `number.human.storage_units.units.${keyEnd}`;\n };\n const exponent = computeExponent(num, STORAGE_UNITS);\n if (smallerThanBase) {\n numberToBeFormatted = num.integerValue();\n }\n else {\n numberToBeFormatted = new BigNumber(roundNumber(num.div(Math.pow(base, exponent)), {\n significant: options.significant,\n precision: options.precision,\n roundMode: options.roundMode,\n }));\n }\n const format = i18n.translate(\"number.human.storage_units.format\", {\n defaultValue: \"%n %u\",\n });\n const unit = i18n.translate(storageUnitKey(STORAGE_UNITS), {\n count: num.integerValue().toNumber(),\n });\n let formattedNumber = numberToBeFormatted.toFixed(options.precision, roundMode);\n if (options.stripInsignificantZeros) {\n formattedNumber = formattedNumber\n .replace(/(\\..*?)0+$/, \"$1\")\n .replace(/\\.$/, \"\");\n }\n return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}\n//# sourceMappingURL=numberToHumanSize.js.map","export function parseDate(input) {\n if (input instanceof Date) {\n return input;\n }\n if (typeof input === \"number\") {\n const date = new Date();\n date.setTime(input);\n return date;\n }\n const matches = new String(input).match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})(?:[.,](\\d{1,3}))?)?(Z|\\+00:?00)?/);\n if (matches) {\n const parts = matches.slice(1, 8).map((match) => parseInt(match, 10) || 0);\n parts[1] -= 1;\n const [year, month, day, hour, minute, second, milliseconds] = parts;\n const timezone = matches[8];\n if (timezone) {\n return new Date(Date.UTC(year, month, day, hour, minute, second, milliseconds));\n }\n else {\n return new Date(year, month, day, hour, minute, second, milliseconds);\n }\n }\n if (input.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n const date = new Date();\n date.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n }\n const date = new Date();\n date.setTime(Date.parse(input));\n return date;\n}\n//# sourceMappingURL=parseDate.js.map","import { isSet } from \"./isSet\";\nimport { lookup } from \"./lookup\";\nexport function pluralize({ i18n, count, scope, options, baseScope, }) {\n options = Object.assign({}, options);\n let translations;\n let message;\n if (typeof scope === \"object\" && scope) {\n translations = scope;\n }\n else {\n translations = lookup(i18n, scope, options);\n }\n if (!translations) {\n return i18n.missingTranslation.get(scope, options);\n }\n const pluralizer = i18n.pluralization.get(options.locale);\n const keys = pluralizer(i18n, count);\n const missingKeys = [];\n while (keys.length) {\n const key = keys.shift();\n if (isSet(translations[key])) {\n message = translations[key];\n break;\n }\n missingKeys.push(key);\n }\n if (!isSet(message)) {\n return i18n.missingTranslation.get(baseScope.split(i18n.defaultSeparator).concat([missingKeys[0]]), options);\n }\n options.count = count;\n return i18n.interpolate(i18n, message, options);\n}\n//# sourceMappingURL=pluralize.js.map","const DEFAULT_OPTIONS = {\n meridian: { am: \"AM\", pm: \"PM\" },\n dayNames: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n abbrDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n monthNames: [\n null,\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n abbrMonthNames: [\n null,\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n};\nexport function strftime(date, format, options = {}) {\n const { abbrDayNames, dayNames, abbrMonthNames, monthNames, meridian: AM_PM, } = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n if (isNaN(date.getTime())) {\n throw new Error(\"strftime() requires a valid date object, but received an invalid date.\");\n }\n const weekDay = date.getDay();\n const day = date.getDate();\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const hour = date.getHours();\n let hour12 = hour;\n const meridian = hour > 11 ? \"pm\" : \"am\";\n const secs = date.getSeconds();\n const mins = date.getMinutes();\n const offset = date.getTimezoneOffset();\n const absOffsetHours = Math.floor(Math.abs(offset / 60));\n const absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60;\n const timezoneoffset = (offset > 0 ? \"-\" : \"+\") +\n (absOffsetHours.toString().length < 2\n ? \"0\" + absOffsetHours\n : absOffsetHours) +\n (absOffsetMinutes.toString().length < 2\n ? \"0\" + absOffsetMinutes\n : absOffsetMinutes);\n if (hour12 > 12) {\n hour12 = hour12 - 12;\n }\n else if (hour12 === 0) {\n hour12 = 12;\n }\n format = format.replace(\"%a\", abbrDayNames[weekDay]);\n format = format.replace(\"%A\", dayNames[weekDay]);\n format = format.replace(\"%b\", abbrMonthNames[month]);\n format = format.replace(\"%B\", monthNames[month]);\n format = format.replace(\"%d\", day.toString().padStart(2, \"0\"));\n format = format.replace(\"%e\", day.toString());\n format = format.replace(\"%-d\", day.toString());\n format = format.replace(\"%H\", hour.toString().padStart(2, \"0\"));\n format = format.replace(\"%-H\", hour.toString());\n format = format.replace(\"%k\", hour.toString());\n format = format.replace(\"%I\", hour12.toString().padStart(2, \"0\"));\n format = format.replace(\"%-I\", hour12.toString());\n format = format.replace(\"%l\", hour12.toString());\n format = format.replace(\"%m\", month.toString().padStart(2, \"0\"));\n format = format.replace(\"%-m\", month.toString());\n format = format.replace(\"%M\", mins.toString().padStart(2, \"0\"));\n format = format.replace(\"%-M\", mins.toString());\n format = format.replace(\"%p\", AM_PM[meridian]);\n format = format.replace(\"%P\", AM_PM[meridian].toLowerCase());\n format = format.replace(\"%S\", secs.toString().padStart(2, \"0\"));\n format = format.replace(\"%-S\", secs.toString());\n format = format.replace(\"%w\", weekDay.toString());\n format = format.replace(\"%y\", year.toString().padStart(2, \"0\").substr(-2));\n format = format.replace(\"%-y\", year.toString().padStart(2, \"0\").substr(-2).replace(/^0+/, \"\"));\n format = format.replace(\"%Y\", year.toString());\n format = format.replace(/%z/i, timezoneoffset);\n return format;\n}\n//# sourceMappingURL=strftime.js.map","import range from \"lodash/range\";\nimport { parseDate } from \"./parseDate\";\nconst within = (start, end, actual) => actual >= start && actual <= end;\nexport function timeAgoInWords(i18n, fromTime, toTime, options = {}) {\n const scope = options.scope || \"datetime.distance_in_words\";\n const t = (name, count = 0) => i18n.t(name, { count, scope });\n fromTime = parseDate(fromTime);\n toTime = parseDate(toTime);\n let fromInSeconds = fromTime.getTime() / 1000;\n let toInSeconds = toTime.getTime() / 1000;\n if (fromInSeconds > toInSeconds) {\n [fromTime, toTime, fromInSeconds, toInSeconds] = [\n toTime,\n fromTime,\n toInSeconds,\n fromInSeconds,\n ];\n }\n const distanceInSeconds = Math.round(toInSeconds - fromInSeconds);\n const distanceInMinutes = Math.round((toInSeconds - fromInSeconds) / 60);\n const distanceInHours = distanceInMinutes / 60;\n const distanceInDays = distanceInHours / 24;\n const distanceInHoursRounded = Math.round(distanceInMinutes / 60);\n const distanceInDaysRounded = Math.round(distanceInDays);\n const distanceInMonthsRounded = Math.round(distanceInDaysRounded / 30);\n if (within(0, 1, distanceInMinutes)) {\n if (!options.includeSeconds) {\n return distanceInMinutes === 0\n ? t(\"less_than_x_minutes\", 1)\n : t(\"x_minutes\", distanceInMinutes);\n }\n if (within(0, 4, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 5);\n }\n if (within(5, 9, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 10);\n }\n if (within(10, 19, distanceInSeconds)) {\n return t(\"less_than_x_seconds\", 20);\n }\n if (within(20, 39, distanceInSeconds)) {\n return t(\"half_a_minute\");\n }\n if (within(40, 59, distanceInSeconds)) {\n return t(\"less_than_x_minutes\", 1);\n }\n return t(\"x_minutes\", 1);\n }\n if (within(2, 44, distanceInMinutes)) {\n return t(\"x_minutes\", distanceInMinutes);\n }\n if (within(45, 89, distanceInMinutes)) {\n return t(\"about_x_hours\", 1);\n }\n if (within(90, 1439, distanceInMinutes)) {\n return t(\"about_x_hours\", distanceInHoursRounded);\n }\n if (within(1440, 2519, distanceInMinutes)) {\n return t(\"x_days\", 1);\n }\n if (within(2520, 43199, distanceInMinutes)) {\n return t(\"x_days\", distanceInDaysRounded);\n }\n if (within(43200, 86399, distanceInMinutes)) {\n return t(\"about_x_months\", Math.round(distanceInMinutes / 43200));\n }\n if (within(86400, 525599, distanceInMinutes)) {\n return t(\"x_months\", distanceInMonthsRounded);\n }\n let fromYear = fromTime.getFullYear();\n if (fromTime.getMonth() + 1 >= 3) {\n fromYear += 1;\n }\n let toYear = toTime.getFullYear();\n if (toTime.getMonth() + 1 < 3) {\n toYear -= 1;\n }\n const leapYears = fromYear > toYear\n ? 0\n : range(fromYear, toYear).filter((year) => new Date(year, 1, 29).getMonth() == 1).length;\n const minutesInYear = 525600;\n const minuteOffsetForLeapYear = leapYears * 1440;\n const minutesWithOffset = distanceInMinutes - minuteOffsetForLeapYear;\n const distanceInYears = Math.trunc(minutesWithOffset / minutesInYear);\n const diff = parseFloat((minutesWithOffset / minutesInYear - distanceInYears).toPrecision(3));\n if (diff < 0.25) {\n return t(\"about_x_years\", distanceInYears);\n }\n if (diff < 0.75) {\n return t(\"over_x_years\", distanceInYears);\n }\n return t(\"almost_x_years\", distanceInYears + 1);\n}\n//# sourceMappingURL=timeAgoInWords.js.map","import { getFullScope, inferType } from \"./helpers\";\nexport const guessStrategy = function (i18n, scope) {\n if (scope instanceof Array) {\n scope = scope.join(i18n.defaultSeparator);\n }\n const message = scope.split(i18n.defaultSeparator).slice(-1)[0];\n return (i18n.missingTranslationPrefix +\n message\n .replace(\"_\", \" \")\n .replace(/([a-z])([A-Z])/g, (_match, p1, p2) => `${p1} ${p2.toLowerCase()}`));\n};\nexport const messageStrategy = (i18n, scope, options) => {\n const fullScope = getFullScope(i18n, scope, options);\n const locale = \"locale\" in options ? options.locale : i18n.locale;\n const localeType = inferType(locale);\n const fullScopeWithLocale = [\n localeType == \"string\" ? locale : localeType,\n fullScope,\n ].join(i18n.defaultSeparator);\n return `[missing \"${fullScopeWithLocale}\" translation]`;\n};\nexport const errorStrategy = (i18n, scope, options) => {\n const fullScope = getFullScope(i18n, scope, options);\n const fullScopeWithLocale = [i18n.locale, fullScope].join(i18n.defaultSeparator);\n throw new Error(`Missing translation: ${fullScopeWithLocale}`);\n};\nexport class MissingTranslation {\n constructor(i18n) {\n this.i18n = i18n;\n this.registry = {};\n this.register(\"guess\", guessStrategy);\n this.register(\"message\", messageStrategy);\n this.register(\"error\", errorStrategy);\n }\n register(name, strategy) {\n this.registry[name] = strategy;\n }\n get(scope, options) {\n var _a;\n return this.registry[(_a = options.missingBehavior) !== null && _a !== void 0 ? _a : this.i18n.missingBehavior](this.i18n, scope, options);\n }\n}\n//# sourceMappingURL=MissingTranslation.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport get from \"lodash/get\";\nimport has from \"lodash/has\";\nimport merge from \"lodash/merge\";\nimport { Locales } from \"./Locales\";\nimport { Pluralization } from \"./Pluralization\";\nimport { MissingTranslation } from \"./MissingTranslation\";\nimport { camelCaseKeys, createTranslationOptions, formatNumber, getFullScope, inferType, interpolate, isSet, lookup, numberToDelimited, numberToHuman, numberToHumanSize, parseDate, pluralize, strftime, timeAgoInWords, } from \"./helpers\";\nconst DEFAULT_I18N_OPTIONS = {\n defaultLocale: \"en\",\n availableLocales: [\"en\"],\n locale: \"en\",\n defaultSeparator: \".\",\n placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm,\n enableFallback: false,\n missingBehavior: \"message\",\n missingTranslationPrefix: \"\",\n missingPlaceholder: (_i18n, placeholder) => `[missing \"${placeholder}\" value]`,\n nullPlaceholder: (i18n, placeholder, message, options) => i18n.missingPlaceholder(i18n, placeholder, message, options),\n transformKey: (key) => key,\n};\nexport class I18n {\n constructor(translations = {}, options = {}) {\n this._locale = DEFAULT_I18N_OPTIONS.locale;\n this._defaultLocale = DEFAULT_I18N_OPTIONS.defaultLocale;\n this._version = 0;\n this.onChangeHandlers = [];\n this.translations = {};\n this.availableLocales = [];\n this.t = this.translate;\n this.p = this.pluralize;\n this.l = this.localize;\n this.distanceOfTimeInWords = this.timeAgoInWords;\n const { locale, enableFallback, missingBehavior, missingTranslationPrefix, missingPlaceholder, nullPlaceholder, defaultLocale, defaultSeparator, placeholder, transformKey, } = Object.assign(Object.assign({}, DEFAULT_I18N_OPTIONS), options);\n this.locale = locale;\n this.defaultLocale = defaultLocale;\n this.defaultSeparator = defaultSeparator;\n this.enableFallback = enableFallback;\n this.locale = locale;\n this.missingBehavior = missingBehavior;\n this.missingTranslationPrefix = missingTranslationPrefix;\n this.missingPlaceholder = missingPlaceholder;\n this.nullPlaceholder = nullPlaceholder;\n this.placeholder = placeholder;\n this.pluralization = new Pluralization(this);\n this.locales = new Locales(this);\n this.missingTranslation = new MissingTranslation(this);\n this.transformKey = transformKey;\n this.interpolate = interpolate;\n this.store(translations);\n }\n store(translations) {\n merge(this.translations, translations);\n this.hasChanged();\n }\n get locale() {\n return this._locale || this.defaultLocale || \"en\";\n }\n set locale(newLocale) {\n if (typeof newLocale !== \"string\") {\n throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n }\n const changed = this._locale !== newLocale;\n this._locale = newLocale;\n if (changed) {\n this.hasChanged();\n }\n }\n get defaultLocale() {\n return this._defaultLocale || \"en\";\n }\n set defaultLocale(newLocale) {\n if (typeof newLocale !== \"string\") {\n throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n }\n const changed = this._defaultLocale !== newLocale;\n this._defaultLocale = newLocale;\n if (changed) {\n this.hasChanged();\n }\n }\n translate(scope, options) {\n options = Object.assign({}, options);\n const translationOptions = createTranslationOptions(this, scope, options);\n let translation;\n const hasFoundTranslation = translationOptions.some((translationOption) => {\n if (isSet(translationOption.scope)) {\n translation = lookup(this, translationOption.scope, options);\n }\n else if (isSet(translationOption.message)) {\n translation = translationOption.message;\n }\n return translation !== undefined && translation !== null;\n });\n if (!hasFoundTranslation) {\n return this.missingTranslation.get(scope, options);\n }\n if (typeof translation === \"string\") {\n translation = this.interpolate(this, translation, options);\n }\n else if (typeof translation === \"object\" &&\n translation &&\n isSet(options.count)) {\n translation = pluralize({\n i18n: this,\n count: options.count || 0,\n scope: translation,\n options,\n baseScope: getFullScope(this, scope, options),\n });\n }\n if (options && translation instanceof Array) {\n translation = translation.map((entry) => typeof entry === \"string\"\n ? interpolate(this, entry, options)\n : entry);\n }\n return translation;\n }\n pluralize(count, scope, options) {\n return pluralize({\n i18n: this,\n count,\n scope,\n options: Object.assign({}, options),\n baseScope: getFullScope(this, scope, options !== null && options !== void 0 ? options : {}),\n });\n }\n localize(type, value, options) {\n options = Object.assign({}, options);\n if (value === undefined || value === null) {\n return \"\";\n }\n switch (type) {\n case \"currency\":\n return this.numberToCurrency(value);\n case \"number\":\n return formatNumber(value, Object.assign({ delimiter: \",\", precision: 3, separator: \".\", significant: false, stripInsignificantZeros: false }, lookup(this, \"number.format\")));\n case \"percentage\":\n return this.numberToPercentage(value);\n default: {\n let localizedValue;\n if (type.match(/^(date|time)/)) {\n localizedValue = this.toTime(type, value);\n }\n else {\n localizedValue = value.toString();\n }\n return interpolate(this, localizedValue, options);\n }\n }\n }\n toTime(scope, input) {\n const date = parseDate(input);\n const format = lookup(this, scope);\n if (date.toString().match(/invalid/i)) {\n return date.toString();\n }\n if (!format) {\n return date.toString();\n }\n return this.strftime(date, format);\n }\n numberToCurrency(input, options = {}) {\n return formatNumber(input, Object.assign(Object.assign(Object.assign({ delimiter: \",\", format: \"%u%n\", precision: 2, separator: \".\", significant: false, stripInsignificantZeros: false, unit: \"$\" }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.currency.format\"))), options));\n }\n numberToPercentage(input, options = {}) {\n return formatNumber(input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", format: \"%n%\", precision: 3, stripInsignificantZeros: false, separator: \".\", significant: false }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.percentage.format\"))), options));\n }\n numberToHumanSize(input, options = {}) {\n return numberToHumanSize(this, input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", precision: 3, significant: true, stripInsignificantZeros: true, units: {\n billion: \"Billion\",\n million: \"Million\",\n quadrillion: \"Quadrillion\",\n thousand: \"Thousand\",\n trillion: \"Trillion\",\n unit: \"\",\n } }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.storage_units\"))), options));\n }\n numberToHuman(input, options = {}) {\n return numberToHuman(this, input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", separator: \".\", precision: 3, significant: true, stripInsignificantZeros: true, format: \"%n %u\", roundMode: \"default\", units: {\n billion: \"Billion\",\n million: \"Million\",\n quadrillion: \"Quadrillion\",\n thousand: \"Thousand\",\n trillion: \"Trillion\",\n unit: \"\",\n } }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.decimal_units\"))), options));\n }\n numberToRounded(input, options) {\n return formatNumber(input, Object.assign({ unit: \"\", precision: 3, significant: false, separator: \".\", delimiter: \"\", stripInsignificantZeros: false }, options));\n }\n numberToDelimited(input, options = {}) {\n return numberToDelimited(input, Object.assign({ delimiterPattern: /(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, delimiter: \",\", separator: \".\" }, options));\n }\n withLocale(locale, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const originalLocale = this.locale;\n try {\n this.locale = locale;\n yield callback();\n }\n finally {\n this.locale = originalLocale;\n }\n });\n }\n strftime(date, format, options = {}) {\n return strftime(date, format, Object.assign(Object.assign(Object.assign({}, camelCaseKeys(lookup(this, \"date\"))), { meridian: {\n am: lookup(this, \"time.am\") || \"AM\",\n pm: lookup(this, \"time.pm\") || \"PM\",\n } }), options));\n }\n update(path, override, options = { strict: false }) {\n if (options.strict && !has(this.translations, path)) {\n throw new Error(`The path \"${path}\" is not currently defined`);\n }\n const currentNode = get(this.translations, path);\n const currentType = inferType(currentNode);\n const overrideType = inferType(override);\n if (options.strict && currentType !== overrideType) {\n throw new Error(`The current type for \"${path}\" is \"${currentType}\", but you're trying to override it with \"${overrideType}\"`);\n }\n let newNode;\n if (overrideType === \"object\") {\n newNode = Object.assign(Object.assign({}, currentNode), override);\n }\n else {\n newNode = override;\n }\n const components = path.split(this.defaultSeparator);\n const prop = components.pop();\n let buffer = this.translations;\n for (const component of components) {\n if (!buffer[component]) {\n buffer[component] = {};\n }\n buffer = buffer[component];\n }\n buffer[prop] = newNode;\n this.hasChanged();\n }\n toSentence(items, options = {}) {\n const { wordsConnector, twoWordsConnector, lastWordConnector } = Object.assign(Object.assign({ wordsConnector: \", \", twoWordsConnector: \" and \", lastWordConnector: \", and \" }, camelCaseKeys(lookup(this, \"support.array\"))), options);\n const size = items.length;\n switch (size) {\n case 0:\n return \"\";\n case 1:\n return `${items[0]}`;\n case 2:\n return items.join(twoWordsConnector);\n default:\n return [\n items.slice(0, size - 1).join(wordsConnector),\n lastWordConnector,\n items[size - 1],\n ].join(\"\");\n }\n }\n timeAgoInWords(fromTime, toTime, options = {}) {\n return timeAgoInWords(this, fromTime, toTime, options);\n }\n onChange(callback) {\n this.onChangeHandlers.push(callback);\n return () => {\n this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(callback), 1);\n };\n }\n get version() {\n return this._version;\n }\n formatNumber(input, options = {}) {\n options = Object.assign(Object.assign({ delimiter: \",\", precision: 3, separator: \".\", unit: \"\", format: \"%u%n\", significant: false, stripInsignificantZeros: false }, camelCaseKeys(this.get(\"number.format\"))), options);\n return formatNumber(input, options);\n }\n get(scope) {\n return lookup(this, scope);\n }\n runCallbacks() {\n this.onChangeHandlers.forEach((callback) => callback(this));\n }\n hasChanged() {\n this._version += 1;\n this.runCallbacks();\n }\n}\n//# sourceMappingURL=I18n.js.map","import { isSet } from \"./isSet\";\nexport function createTranslationOptions(i18n, scope, options) {\n let translationOptions = [{ scope }];\n if (isSet(options.defaults)) {\n translationOptions = translationOptions.concat(options.defaults);\n }\n if (isSet(options.defaultValue)) {\n const message = typeof options.defaultValue === \"function\"\n ? options.defaultValue(i18n, scope, options)\n : options.defaultValue;\n translationOptions.push({ message });\n delete options.defaultValue;\n }\n return translationOptions;\n}\n//# sourceMappingURL=createTranslationOptions.js.map","import BigNumber from \"bignumber.js\";\nexport function numberToDelimited(input, options) {\n const numeric = new BigNumber(input);\n if (!numeric.isFinite()) {\n return input.toString();\n }\n if (!options.delimiterPattern.global) {\n throw new Error(`options.delimiterPattern must be a global regular expression; received ${options.delimiterPattern}`);\n }\n let [left, right] = numeric.toString().split(\".\");\n left = left.replace(options.delimiterPattern, (digitToDelimiter) => `${digitToDelimiter}${options.delimiter}`);\n return [left, right].filter(Boolean).join(options.separator);\n}\n//# sourceMappingURL=numberToDelimited.js.map","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nvar isObject = function isObject(val) {\n return val !== null && !Array.isArray(val) && typeof val === 'object'\n}\n\nvar codes = {\n // ----------------------------------------\n // By Code\n // ----------------------------------------\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut',\n}\n\n// Function Keys (F1-24)\nfor (var i = 0; i < 24; i += 1) {\n codes[112 + i] = 'F' + (i + 1)\n}\n\n// Alphabet (a-Z)\nfor (var j = 0; j < 26; j += 1) {\n var n = j + 65\n codes[n] = [String.fromCharCode(n + 32), String.fromCharCode(n)]\n}\n\nvar keyboardKey = {\n codes: codes,\n\n /**\n * Get the `keyCode` or `which` value from a keyboard event or `key` name.\n * @param {string|object} eventOrKey A keyboard event-like object or `key` name.\n * @param {string} [eventOrKey.key] If object, it must have one of these keys.\n * @param {number} [eventOrKey.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrKey.which] If object, it must have one of these keys.\n * @returns {number|undefined}\n */\n getCode: function getCode(eventOrKey) {\n if (isObject(eventOrKey)) {\n return eventOrKey.keyCode || eventOrKey.which || this[eventOrKey.key]\n }\n return this[eventOrKey]\n },\n\n /**\n * Get the key name from a keyboard event, `keyCode`, or `which` value.\n * @param {number|object} eventOrCode A keyboard event-like object or key code.\n * @param {string} [eventOrCode.key] If object with a `key` name, it will be returned.\n * @param {number} [eventOrCode.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrCode.which] If object, it must have one of these keys.\n * @param {boolean} [eventOrCode.shiftKey] If object, it must have one of these keys.\n * @returns {string|undefined}\n */\n getKey: function getKey(eventOrCode) {\n var isEvent = isObject(eventOrCode)\n\n // handle events with a `key` already defined\n if (isEvent && eventOrCode.key) {\n return eventOrCode.key\n }\n\n var name = codes[isEvent ? eventOrCode.keyCode || eventOrCode.which : eventOrCode]\n\n if (Array.isArray(name)) {\n if (isEvent) {\n name = name[eventOrCode.shiftKey ? 1 : 0]\n } else {\n name = name[0]\n }\n }\n\n return name\n },\n\n // ----------------------------------------\n // By Name\n // ----------------------------------------\n // declare these manually for static analysis\n Cancel: 3,\n Help: 6,\n Backspace: 8,\n Tab: 9,\n Clear: 12,\n Enter: 13,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Pause: 19,\n CapsLock: 20,\n Escape: 27,\n Convert: 28,\n NonConvert: 29,\n Accept: 30,\n ModeChange: 31,\n ' ': 32,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n Select: 41,\n Print: 42,\n Execute: 43,\n PrintScreen: 44,\n Insert: 45,\n Delete: 46,\n 0: 48,\n ')': 48,\n 1: 49,\n '!': 49,\n 2: 50,\n '@': 50,\n 3: 51,\n '#': 51,\n 4: 52,\n $: 52,\n 5: 53,\n '%': 53,\n 6: 54,\n '^': 54,\n 7: 55,\n '&': 55,\n 8: 56,\n '*': 56,\n 9: 57,\n '(': 57,\n a: 65,\n A: 65,\n b: 66,\n B: 66,\n c: 67,\n C: 67,\n d: 68,\n D: 68,\n e: 69,\n E: 69,\n f: 70,\n F: 70,\n g: 71,\n G: 71,\n h: 72,\n H: 72,\n i: 73,\n I: 73,\n j: 74,\n J: 74,\n k: 75,\n K: 75,\n l: 76,\n L: 76,\n m: 77,\n M: 77,\n n: 78,\n N: 78,\n o: 79,\n O: 79,\n p: 80,\n P: 80,\n q: 81,\n Q: 81,\n r: 82,\n R: 82,\n s: 83,\n S: 83,\n t: 84,\n T: 84,\n u: 85,\n U: 85,\n v: 86,\n V: 86,\n w: 87,\n W: 87,\n x: 88,\n X: 88,\n y: 89,\n Y: 89,\n z: 90,\n Z: 90,\n OS: 91,\n ContextMenu: 93,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n F13: 124,\n F14: 125,\n F15: 126,\n F16: 127,\n F17: 128,\n F18: 129,\n F19: 130,\n F20: 131,\n F21: 132,\n F22: 133,\n F23: 134,\n F24: 135,\n NumLock: 144,\n ScrollLock: 145,\n VolumeMute: 181,\n VolumeDown: 182,\n VolumeUp: 183,\n ';': 186,\n ':': 186,\n '=': 187,\n '+': 187,\n ',': 188,\n '<': 188,\n '-': 189,\n _: 189,\n '.': 190,\n '>': 190,\n '/': 191,\n '?': 191,\n '`': 192,\n '~': 192,\n '[': 219,\n '{': 219,\n '\\\\': 220,\n '|': 220,\n ']': 221,\n '}': 221,\n \"'\": 222,\n '\"': 222,\n Meta: 224,\n AltGraph: 225,\n Attn: 246,\n CrSel: 247,\n ExSel: 248,\n EraseEof: 249,\n Play: 250,\n ZoomOut: 251,\n}\n\n// ----------------------------------------\n// By Alias\n// ----------------------------------------\n// provide dot-notation accessible keys for all key names\nkeyboardKey.Spacebar = keyboardKey[' ']\nkeyboardKey.Digit0 = keyboardKey['0']\nkeyboardKey.Digit1 = keyboardKey['1']\nkeyboardKey.Digit2 = keyboardKey['2']\nkeyboardKey.Digit3 = keyboardKey['3']\nkeyboardKey.Digit4 = keyboardKey['4']\nkeyboardKey.Digit5 = keyboardKey['5']\nkeyboardKey.Digit6 = keyboardKey['6']\nkeyboardKey.Digit7 = keyboardKey['7']\nkeyboardKey.Digit8 = keyboardKey['8']\nkeyboardKey.Digit9 = keyboardKey['9']\nkeyboardKey.Tilde = keyboardKey['~']\nkeyboardKey.GraveAccent = keyboardKey['`']\nkeyboardKey.ExclamationPoint = keyboardKey['!']\nkeyboardKey.AtSign = keyboardKey['@']\nkeyboardKey.PoundSign = keyboardKey['#']\nkeyboardKey.PercentSign = keyboardKey['%']\nkeyboardKey.Caret = keyboardKey['^']\nkeyboardKey.Ampersand = keyboardKey['&']\nkeyboardKey.PlusSign = keyboardKey['+']\nkeyboardKey.MinusSign = keyboardKey['-']\nkeyboardKey.EqualsSign = keyboardKey['=']\nkeyboardKey.DivisionSign = keyboardKey['/']\nkeyboardKey.MultiplicationSign = keyboardKey['*']\nkeyboardKey.Comma = keyboardKey[',']\nkeyboardKey.Decimal = keyboardKey['.']\nkeyboardKey.Colon = keyboardKey[':']\nkeyboardKey.Semicolon = keyboardKey[';']\nkeyboardKey.Pipe = keyboardKey['|']\nkeyboardKey.BackSlash = keyboardKey['\\\\']\nkeyboardKey.QuestionMark = keyboardKey['?']\nkeyboardKey.SingleQuote = keyboardKey[\"'\"]\nkeyboardKey.DoubleQuote = keyboardKey['\"']\nkeyboardKey.LeftCurlyBrace = keyboardKey['{']\nkeyboardKey.RightCurlyBrace = keyboardKey['}']\nkeyboardKey.LeftParenthesis = keyboardKey['(']\nkeyboardKey.RightParenthesis = keyboardKey[')']\nkeyboardKey.LeftAngleBracket = keyboardKey['<']\nkeyboardKey.RightAngleBracket = keyboardKey['>']\nkeyboardKey.LeftSquareBracket = keyboardKey['[']\nkeyboardKey.RightSquareBracket = keyboardKey[']']\n\nmodule.exports = keyboardKey\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nmodule.exports = baseRepeat;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nmodule.exports = baseZipObject;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var baseRepeat = require('./_baseRepeat'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nmodule.exports = repeat;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var assignValue = require('./_assignValue'),\n baseZipObject = require('./_baseZipObject');\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nmodule.exports = zipObject;\n","'use strict'\n\nvar repeat = require('repeat-string')\n\nmodule.exports = markdownTable\n\nvar trailingWhitespace = / +$/\n\n// Characters.\nvar space = ' '\nvar lineFeed = '\\n'\nvar dash = '-'\nvar colon = ':'\nvar verticalBar = '|'\n\nvar x = 0\nvar C = 67\nvar L = 76\nvar R = 82\nvar c = 99\nvar l = 108\nvar r = 114\n\n// Create a table from a matrix of strings.\nfunction markdownTable(table, options) {\n var settings = options || {}\n var padding = settings.padding !== false\n var start = settings.delimiterStart !== false\n var end = settings.delimiterEnd !== false\n var align = (settings.align || []).concat()\n var alignDelimiters = settings.alignDelimiters !== false\n var alignments = []\n var stringLength = settings.stringLength || defaultStringLength\n var rowIndex = -1\n var rowLength = table.length\n var cellMatrix = []\n var sizeMatrix = []\n var row = []\n var sizes = []\n var longestCellByColumn = []\n var mostCellsPerRow = 0\n var cells\n var columnIndex\n var columnLength\n var largest\n var size\n var cell\n var lines\n var line\n var before\n var after\n var code\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < rowLength) {\n cells = table[rowIndex]\n columnIndex = -1\n columnLength = cells.length\n row = []\n sizes = []\n\n if (columnLength > mostCellsPerRow) {\n mostCellsPerRow = columnLength\n }\n\n while (++columnIndex < columnLength) {\n cell = serialize(cells[columnIndex])\n\n if (alignDelimiters === true) {\n size = stringLength(cell)\n sizes[columnIndex] = size\n\n largest = longestCellByColumn[columnIndex]\n\n if (largest === undefined || size > largest) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n columnIndex = -1\n columnLength = mostCellsPerRow\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n code = toAlignment(align)\n\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n columnLength = mostCellsPerRow\n row = []\n sizes = []\n\n while (++columnIndex < columnLength) {\n code = alignments[columnIndex]\n before = ''\n after = ''\n\n if (code === l) {\n before = colon\n } else if (code === r) {\n after = colon\n } else if (code === c) {\n before = colon\n after = colon\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n size = alignDelimiters\n ? Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n : 1\n\n cell = before + repeat(dash, size) + after\n\n if (alignDelimiters === true) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n rowLength = cellMatrix.length\n lines = []\n\n while (++rowIndex < rowLength) {\n row = cellMatrix[rowIndex]\n sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n columnLength = mostCellsPerRow\n line = []\n\n while (++columnIndex < columnLength) {\n cell = row[columnIndex] || ''\n before = ''\n after = ''\n\n if (alignDelimiters === true) {\n size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n code = alignments[columnIndex]\n\n if (code === r) {\n before = repeat(space, size)\n } else if (code === c) {\n if (size % 2 === 0) {\n before = repeat(space, size / 2)\n after = before\n } else {\n before = repeat(space, size / 2 + 0.5)\n after = repeat(space, size / 2 - 0.5)\n }\n } else {\n after = repeat(space, size)\n }\n }\n\n if (start === true && columnIndex === 0) {\n line.push(verticalBar)\n }\n\n if (\n padding === true &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(alignDelimiters === false && cell === '') &&\n (start === true || columnIndex !== 0)\n ) {\n line.push(space)\n }\n\n if (alignDelimiters === true) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (alignDelimiters === true) {\n line.push(after)\n }\n\n if (padding === true) {\n line.push(space)\n }\n\n if (end === true || columnIndex !== columnLength - 1) {\n line.push(verticalBar)\n }\n }\n\n line = line.join('')\n\n if (end === false) {\n line = line.replace(trailingWhitespace, '')\n }\n\n lines.push(line)\n }\n\n return lines.join(lineFeed)\n}\n\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\nfunction defaultStringLength(value) {\n return value.length\n}\n\nfunction toAlignment(value) {\n var code = typeof value === 'string' ? value.charCodeAt(0) : x\n\n return code === L || code === l\n ? l\n : code === R || code === r\n ? r\n : code === C || code === c\n ? c\n : x\n}\n","'use strict'\n\nmodule.exports = findAndReplace\n\nvar visit = require('unist-util-visit-parents')\nvar convert = require('unist-util-is/convert')\nvar escape = require('escape-string-regexp')\n\nvar splice = [].splice\n\nfunction findAndReplace(tree, find, replace, options) {\n var settings\n var schema\n\n if (typeof find === 'string' || (find && typeof find.exec === 'function')) {\n schema = [[find, replace]]\n } else {\n schema = find\n options = replace\n }\n\n settings = options || {}\n\n search(tree, settings, handlerFactory(toPairs(schema)))\n\n return tree\n\n function handlerFactory(pairs) {\n var pair = pairs[0]\n\n return handler\n\n function handler(node, parent) {\n var find = pair[0]\n var replace = pair[1]\n var nodes = []\n var start = 0\n var index = parent.children.indexOf(node)\n var position\n var match\n var subhandler\n var value\n\n find.lastIndex = 0\n\n match = find.exec(node.value)\n\n while (match) {\n position = match.index\n value = replace.apply(\n null,\n [].concat(match, {index: match.index, input: match.input})\n )\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({type: 'text', value: node.value.slice(start, position)})\n }\n\n if (typeof value === 'string' && value.length > 0) {\n value = {type: 'text', value: value}\n }\n\n if (value) {\n nodes = [].concat(nodes, value)\n }\n\n start = position + match[0].length\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (position === undefined) {\n nodes = [node]\n index--\n } else {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n nodes.unshift(index, 1)\n splice.apply(parent.children, nodes)\n }\n\n if (pairs.length > 1) {\n subhandler = handlerFactory(pairs.slice(1))\n position = -1\n\n while (++position < nodes.length) {\n node = nodes[position]\n\n if (node.type === 'text') {\n subhandler(node, parent)\n } else {\n search(node, settings, subhandler)\n }\n }\n }\n\n return index + nodes.length + 1\n }\n }\n}\n\nfunction search(tree, settings, handler) {\n var ignored = convert(settings.ignore || [])\n var result = []\n\n visit(tree, 'text', visitor)\n\n return result\n\n function visitor(node, parents) {\n var index = -1\n var parent\n var grandparent\n\n while (++index < parents.length) {\n parent = parents[index]\n\n if (\n ignored(\n parent,\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n return handler(node, grandparent)\n }\n}\n\nfunction toPairs(schema) {\n var result = []\n var key\n var index\n\n if (typeof schema !== 'object') {\n throw new Error('Expected array or object as schema')\n }\n\n if ('length' in schema) {\n index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n for (key in schema) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n\n return result\n}\n\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : returner\n\n function returner() {\n return replace\n }\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","var ccount = require('ccount')\nvar findAndReplace = require('mdast-util-find-and-replace')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nexports.transforms = [transformGfmAutolinkLiterals]\nexports.enter = {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n}\nexports.exit = {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n}\n\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token)\n}\n\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/i, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\nfunction findUrl($0, protocol, domain, path, match) {\n var prefix = ''\n var parts\n var result\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n result = [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\nfunction findEmail($0, atext, label, match) {\n // Not an expected previous character.\n if (!previous(match, true) || /[_-]$/.test(label)) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\nfunction isCorrectDomain(domain) {\n var parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\nfunction splitUrl(url) {\n var trail = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n var closingParenIndex\n var openingParens\n var closingParens\n\n if (trail) {\n url = url.slice(0, trail.index)\n trail = trail[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\nfunction previous(match, email) {\n var code = match.input.charCodeAt(match.index - 1)\n return (\n (code !== code || unicodeWhitespace(code) || unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","var inConstruct = 'phrasing'\nvar notInConstruct = ['autolink', 'link', 'image', 'label']\n\nexports.unsafe = [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n }\n]\n","exports.canContainEols = ['delete']\nexports.enter = {strikethrough: enterStrikethrough}\nexports.exit = {strikethrough: exitStrikethrough}\n\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\n\nexports.unsafe = [{character: '~', inConstruct: 'phrasing'}]\nexports.handlers = {delete: handleDelete}\n\nhandleDelete.peek = peekDelete\n\nfunction handleDelete(node, _, context) {\n var exit = context.enter('emphasis')\n var value = phrasing(node, context, {before: '~', after: '~'})\n exit()\n return '~~' + value + '~~'\n}\n\nfunction peekDelete() {\n return '~'\n}\n","exports.enter = {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n}\nexports.exit = {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n}\n\nfunction enterTable(token) {\n this.enter({type: 'table', align: token._align, children: []}, token)\n this.setData('inTable', true)\n}\n\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\nfunction exit(token) {\n this.exit(token)\n}\n\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\nfunction exitCodeText(token) {\n var value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n this.stack[this.stack.length - 1].value = value\n this.exit(token)\n}\n\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\nvar defaultInlineCode = require('mdast-util-to-markdown/lib/handle/inline-code')\nvar markdownTable = require('markdown-table')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var settings = options || {}\n var padding = settings.tableCellPadding\n var alignDelimiters = settings.tablePipeAlign\n var stringLength = settings.stringLength\n var around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n function handleTable(node, _, context) {\n return serializeData(handleTableAsData(node, context), node.align)\n }\n\n // This function isn’t really used normally, because we handle rows at the\n // table level.\n // But, if someone passes in a table row, this ensures we make somewhat sense.\n function handleTableRow(node, _, context) {\n var row = handleTableRowAsData(node, context)\n // `markdown-table` will always add an align row\n var value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n function handleTableCell(node, _, context) {\n var exit = context.enter('tableCell')\n var value = phrasing(node, context, {before: around, after: around})\n exit()\n return value\n }\n\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align: align,\n alignDelimiters: alignDelimiters,\n padding: padding,\n stringLength: stringLength\n })\n }\n\n function handleTableAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('table')\n\n while (++index < length) {\n result[index] = handleTableRowAsData(children[index], context)\n }\n\n subexit()\n\n return result\n }\n\n function handleTableRowAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('tableRow')\n\n while (++index < length) {\n result[index] = handleTableCell(children[index], node, context)\n }\n\n subexit()\n\n return result\n }\n\n function inlineCodeWithTable(node, parent, context) {\n var value = defaultInlineCode(node, parent, context)\n\n if (context.stack.indexOf('tableCell') !== -1) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","exports.exit = {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n}\n\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n this.stack[this.stack.length - 2].checked =\n token.type === 'taskListCheckValueChecked'\n}\n\nfunction exitParagraphWithTaskListItem(token) {\n var parent = this.stack[this.stack.length - 2]\n var node = this.stack[this.stack.length - 1]\n var siblings = parent.children\n var head = node.children[0]\n var index = -1\n var firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n if (siblings[index].type === 'paragraph') {\n firstParaghraph = siblings[index]\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n","var defaultListItem = require('mdast-util-to-markdown/lib/handle/list-item')\n\nexports.unsafe = [{atBreak: true, character: '-', after: '[:|-]'}]\n\nexports.handlers = {\n listItem: listItemWithTaskListItem\n}\n\nfunction listItemWithTaskListItem(node, parent, context) {\n var value = defaultListItem(node, parent, context)\n var head = node.children[0]\n\n if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n function check($0) {\n return $0 + '[' + (node.checked ? 'x' : ' ') + '] '\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/from-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/from-markdown')\nvar table = require('mdast-util-gfm-table/from-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/from-markdown')\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = configure([\n autolinkLiteral,\n strikethrough,\n table,\n taskListItem\n])\n\nfunction configure(extensions) {\n var config = {transforms: [], canContainEols: []}\n var length = extensions.length\n var index = -1\n\n while (++index < length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n var right\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n right = extension[key]\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, right)\n } else {\n Object.assign(left, right)\n }\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/to-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/to-markdown')\nvar table = require('mdast-util-gfm-table/to-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/to-markdown')\nvar configure = require('mdast-util-to-markdown/lib/configure')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var config = configure(\n {handlers: {}, join: [], unsafe: [], options: {}},\n {\n extensions: [autolinkLiteral, strikethrough, table(options), taskListItem]\n }\n )\n\n return Object.assign(config.options, {\n handlers: config.handlers,\n join: config.join,\n unsafe: config.unsafe\n })\n}\n","module.exports = configure\n\nfunction configure(base, extension) {\n var index = -1\n var key\n\n // First do subextensions.\n if (extension.extensions) {\n while (++index < extension.extensions.length) {\n configure(base, extension.extensions[index])\n }\n }\n\n for (key in extension) {\n if (key === 'extensions') {\n // Empty.\n } else if (key === 'unsafe' || key === 'join') {\n base[key] = base[key].concat(extension[key] || [])\n } else if (key === 'handlers') {\n base[key] = Object.assign(base[key], extension[key] || {})\n } else {\n base.options[key] = extension[key]\n }\n }\n\n return base\n}\n","module.exports = inlineCode\ninlineCode.peek = inlineCodePeek\n\nvar patternCompile = require('../util/pattern-compile')\n\nfunction inlineCode(node, parent, context) {\n var value = node.value || ''\n var sequence = '`'\n var index = -1\n var pattern\n var expression\n var match\n var position\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n (/[ \\r\\n`]/.test(value.charAt(0)) ||\n /[ \\r\\n`]/.test(value.charAt(value.length - 1)))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n pattern = context.unsafe[index]\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n expression = patternCompile(pattern)\n\n while ((match = expression.exec(value))) {\n position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\nfunction inlineCodePeek() {\n return '`'\n}\n","module.exports = listItem\n\nvar repeat = require('repeat-string')\nvar checkBullet = require('../util/check-bullet')\nvar checkListItemIndent = require('../util/check-list-item-indent')\nvar flow = require('../util/container-flow')\nvar indentLines = require('../util/indent-lines')\n\nfunction listItem(node, parent, context) {\n var bullet = checkBullet(context)\n var listItemIndent = checkListItemIndent(context)\n var size\n var value\n var exit\n\n if (parent && parent.ordered) {\n bullet =\n (parent.start > -1 ? parent.start : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n '.'\n }\n\n size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' && ((parent && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n exit = context.enter('listItem')\n value = indentLines(flow(node, context), map)\n exit()\n\n return value\n\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : repeat(' ', size)) + line\n }\n\n return (blank ? bullet : bullet + repeat(' ', size - bullet.length)) + line\n }\n}\n","module.exports = checkBullet\n\nfunction checkBullet(context) {\n var marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","module.exports = checkListItemIndent\n\nfunction checkListItemIndent(context) {\n var style = context.options.listItemIndent || 'tab'\n\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","module.exports = flow\n\nvar repeat = require('repeat-string')\n\nfunction flow(parent, context) {\n var children = parent.children || []\n var results = []\n var index = -1\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n results.push(\n context.handle(child, parent, context, {before: '\\n', after: '\\n'})\n )\n\n if (index + 1 < children.length) {\n results.push(between(child, children[index + 1]))\n }\n }\n\n return results.join('')\n\n function between(left, right) {\n var index = -1\n var result\n\n while (++index < context.join.length) {\n result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return repeat('\\n', 1 + Number(result))\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","module.exports = phrasing\n\nfunction phrasing(parent, context, safeOptions) {\n var children = parent.children || []\n var results = []\n var index = -1\n var before = safeOptions.before\n var after\n var handle\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n if (index + 1 < children.length) {\n handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: ''\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n }\n\n results.push(\n context.handle(child, parent, context, {\n before: before,\n after: after\n })\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n return results.join('')\n}\n","module.exports = indentLines\n\nvar eol = /\\r?\\n|\\r/g\n\nfunction indentLines(value, map) {\n var result = []\n var start = 0\n var line = 0\n var match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","module.exports = patternCompile\n\nfunction patternCompile(pattern) {\n var before\n var after\n\n if (!pattern._compiled) {\n before = pattern.before ? '(?:' + pattern.before + ')' : ''\n after = pattern.after ? '(?:' + pattern.after + ')' : ''\n\n if (pattern.atBreak) {\n before = '[\\\\r\\\\n][\\\\t ]*' + before\n }\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (after || ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","module.exports = require('./syntax')\n","var asciiAlpha = require('micromark/dist/character/ascii-alpha')\nvar asciiAlphanumeric = require('micromark/dist/character/ascii-alphanumeric')\nvar asciiControl = require('micromark/dist/character/ascii-control')\nvar markdownLineEnding = require('micromark/dist/character/markdown-line-ending')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nvar www = {tokenize: tokenizeWww, partial: true}\nvar domain = {tokenize: tokenizeDomain, partial: true}\nvar path = {tokenize: tokenizePath, partial: true}\nvar punctuation = {tokenize: tokenizePunctuation, partial: true}\nvar namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\n\nvar wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previousWww}\nvar httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previousHttp}\nvar emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previousEmail}\n\nvar text = {}\n\n// Export hooked constructs.\nexports.text = text\n\n// `0`\nvar code = 48\n\n// While the code is smaller than `{`.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n // Jump from `:` -> `A`\n if (code === 58) code = 65\n // Jump from `[` -> `a`\n else if (code === 91) code = 97\n}\n\n// `+`\ntext[43] = emailAutolink\n// `-`\ntext[45] = emailAutolink\n// `.`\ntext[46] = emailAutolink\n// `_`\ntext[95] = emailAutolink\n// `h`.\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\n// `w`.\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n var self = this\n var hasDot\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n // `@`\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n\n function label(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (\n // `-`\n code === 45 ||\n // `_`\n code === 95\n ) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n return label\n }\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n\n function afterDashOrUnderscore(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n\n function done(code) {\n if (hasDot) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 87 && code - 32 !== 87) ||\n !previousWww(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but that’s not how it’s implemented by them).\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 72 && code - 32 !== 72) ||\n !previousHttp(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n\n function t1(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n\n function t2(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n\n function p(code) {\n // `p`\n if (code === 80 || code - 32 === 80) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n\n function s(code) {\n // `s`\n if (code === 83 || code - 32 === 83) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n\n function colon(code) {\n // `:`\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n\n function slash1(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n\n function slash2(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume a `w`.\n effects.consume(code)\n return w2\n }\n\n function w2(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n\n function w3(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n\n function dot(code) {\n // `.`\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n\nfunction tokenizeDomain(effects, ok, nok) {\n var hasUnderscoreInLastSegment\n var hasUnderscoreInLastLastSegment\n\n return domain\n\n function domain(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 /* `.` */ || code === 95 /* `_` */) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n if (\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 /* `-` */ && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n\n function punctuationContinuation(code) {\n // `.`\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n // `_`\n if (code === 95) hasUnderscoreInLastSegment = true\n\n effects.consume(code)\n return domain\n }\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizePath(effects, ok) {\n var balance = 0\n\n return inPath\n\n function inPath(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n // `(`\n if (code === 40) {\n balance++\n }\n\n // `)`\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume an ampersand.\n effects.consume(code)\n return inside\n }\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n // `;`\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n // If the named character reference is followed by the end of the path, it’s\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n\n function start(code) {\n // Always a valid trailing punctuation marker.\n effects.consume(code)\n return after\n }\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n }\n\n // If the punctuation marker is followed by the end of the path, it’s not\n // continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction trailingPunctuation(code) {\n return (\n // `!`\n code === 33 ||\n // `\"`\n code === 34 ||\n // `'`\n code === 39 ||\n // `)`\n code === 41 ||\n // `*`\n code === 42 ||\n // `,`\n code === 44 ||\n // `.`\n code === 46 ||\n // `:`\n code === 58 ||\n // `;`\n code === 59 ||\n // `<`\n code === 60 ||\n // `?`\n code === 63 ||\n // `_`.\n code === 95 ||\n // `~`\n code === 126\n )\n}\n\nfunction pathEnd(code) {\n return (\n // EOF.\n code === null ||\n // CR, LF, CRLF, HT, VS.\n code < 0 ||\n // Space.\n code === 32 ||\n // `<`\n code === 60\n )\n}\n\nfunction gfmAtext(code) {\n return (\n code === 43 /* `+` */ ||\n code === 45 /* `-` */ ||\n code === 46 /* `.` */ ||\n code === 95 /* `_` */ ||\n asciiAlphanumeric(code)\n )\n}\n\nfunction previousWww(code) {\n return (\n code === null ||\n code < 0 ||\n code === 32 /* ` ` */ ||\n code === 40 /* `(` */ ||\n code === 42 /* `*` */ ||\n code === 95 /* `_` */ ||\n code === 126 /* `~` */\n )\n}\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n\nfunction previousEmail(code) {\n return code !== 47 /* `/` */ && previousHttp(code)\n}\n\nfunction previous(events) {\n var index = events.length\n\n while (index--) {\n if (\n (events[index][1].type === 'labelLink' ||\n events[index][1].type === 'labelImage') &&\n !events[index][1]._balanced\n ) {\n return true\n }\n }\n}\n","module.exports = create\n\nvar classifyCharacter = require('micromark/dist/util/classify-character')\nvar chunkedSplice = require('micromark/dist/util/chunked-splice')\nvar resolveAll = require('micromark/dist/util/resolve-all')\nvar shallow = require('micromark/dist/util/shallow')\n\nfunction create(options) {\n var settings = options || {}\n var single = settings.singleTilde\n var tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {text: {126: tokenizer}, insideSpan: {null: tokenizer}}\n\n // Take events and resolve strikethrough.\n function resolveAllStrikethrough(events, context) {\n var index = -1\n var strikethrough\n var text\n var open\n var nextEvents\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n strikethrough = {\n type: 'strikethrough',\n start: shallow(events[open][1].start),\n end: shallow(events[index][1].end)\n }\n\n text = {\n type: 'strikethroughText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n\n // Opening.\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n // Between.\n chunkedSplice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n chunkedSplice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n return removeRemainingSequences(events)\n }\n\n function removeRemainingSequences(events) {\n var index = -1\n var length = events.length\n\n while (++index < length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n\n function tokenizeStrikethrough(effects, ok, nok) {\n var previous = this.previous\n var events = this.events\n var size = 0\n\n return start\n\n function start(code) {\n if (\n code !== 126 ||\n (previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape')\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n function more(code) {\n var before = classifyCharacter(previous)\n var token\n var after\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n token = effects.exit('strikethroughSequenceTemporary')\n after = classifyCharacter(code)\n token._open = !after || (after === 2 && before)\n token._close = !before || (before === 2 && after)\n return ok(code)\n }\n }\n}\n","module.exports = require('./syntax')\n","exports.flow = {\n null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true}\n}\n\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nvar setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}\nvar nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}\n\nfunction resolveTable(events, context) {\n var length = events.length\n var index = -1\n var token\n var inHead\n var inDelimiterRow\n var inRow\n var cell\n var content\n var text\n var contentStart\n var contentEnd\n var cellStart\n\n while (++index < length) {\n token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n contentType: 'text'\n }\n\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n length = events.length\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart &&\n cellStart + 1 < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n length = events.length\n cellStart = index + 1\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n\nfunction tokenizeTable(effects, ok, nok) {\n var align = []\n var tableHeaderCount = 0\n var seenDelimiter\n var hasDash\n\n return start\n\n function start(code) {\n /* istanbul ignore if - used to be passed in beta micromark versions. */\n if (code === null || code === -5 || code === -4 || code === -3) {\n return nok(code)\n }\n\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentHead(code)\n }\n\n function cellDividerHead(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n\n function cellBreakHead(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndHead(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n // `|`\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n\n function inWhitespaceHead(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n\n function inCellContentEscapeHead(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n }\n\n // Anything else.\n return inCellContentHead(code)\n }\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n\n // If a setext heading, exit.\n return effects.check(\n setextUnderlineMini,\n nok,\n // Support an indent before the delimiter row.\n createSpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )\n }\n\n function rowStartDelimiter(code) {\n // If there’s another space, or we’re at the EOL/EOF, exit.\n if (code === null || code < 0 || code === 32) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n\n function atDelimiterRowBreak(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push(null)\n return inFillerDelimiter\n }\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n }\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function inWhitespaceDelimiter(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n\n function inFillerDelimiter(code) {\n // `-`\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n\n function afterLeftAlignment(code) {\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n }\n\n // Anything else is not ok.\n return nok(code)\n }\n\n function afterRightAlignment(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `|`\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow')\n\n // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code)\n }\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n\n function tableContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // We checked that it’s not a prefixed or blank line, so we’re certain a\n // body is coming, though it may be indented.\n return createSpace(effects, bodyStart, 'linePrefix', 4)\n }\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n\n function rowStartBody(code) {\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentBody(code)\n }\n\n function cellDividerBody(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n\n function cellBreakBody(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndBody(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n }\n\n // `|`\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n\n function inWhitespaceBody(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n\n function inCellContentEscapeBody(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n }\n\n // Anything else.\n return inCellContentBody(code)\n }\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n tableBodyContinue\n )(code)\n }\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n\n function tableBodyContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // Support an optional prefix, then start a body row.\n return createSpace(effects, rowStartBody, 'linePrefix', 4)\n }\n}\n\n// Based on micromark, but that won’t work as we’re in a table, and that expects\n// content.\n// <https://github.com/micromark/micromark/blob/main/lib/tokenize/setext-underline.js>\nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n\n function start(code) {\n // `-`\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n\n function whitespace(code) {\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return whitespace\n }\n\n if (code === null || code === -5 || code === -4 || code === -3) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n var size = 0\n\n return start\n\n function start(code) {\n // This is a check, so we don’t care about tokens, but we open a bogus one\n // so we’re valid.\n effects.enter('check')\n // EOL.\n effects.consume(code)\n return whitespace\n }\n\n function whitespace(code) {\n // VS or SP.\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n }\n\n // EOF or whitespace\n if (code === null || code < 0) {\n return ok(code)\n }\n\n // Anything else.\n return nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var markdownLineEndingOrSpace = require('micromark/dist/character/markdown-line-ending-or-space')\nvar spaceFactory = require('micromark/dist/tokenize/factory-space')\nvar prefixSize = require('micromark/dist/util/prefix-size')\n\nvar tasklistCheck = {tokenize: tokenizeTasklistCheck}\n\nexports.text = {91: tasklistCheck}\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n var self = this\n\n return open\n\n function open(code) {\n if (\n // Exit if not `[`.\n code !== 91 ||\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n function inside(code) {\n // Tab or space.\n if (code === -2 || code === 32) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n // Upper- and lower `x`.\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n\n function close(code) {\n // `]`\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check({tokenize: spaceThenNonSpace}, ok, nok)\n }\n\n return nok(code)\n }\n}\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n var self = this\n\n return spaceFactory(effects, after, 'whitespace')\n\n function after(code) {\n return prefixSize(self.events, 'whitespace') &&\n code !== null &&\n !markdownLineEndingOrSpace(code)\n ? ok(code)\n : nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var combine = require('micromark/dist/util/combine-extensions')\nvar autolink = require('micromark-extension-gfm-autolink-literal')\nvar strikethrough = require('micromark-extension-gfm-strikethrough')\nvar table = require('micromark-extension-gfm-table')\nvar tasklist = require('micromark-extension-gfm-task-list-item')\n\nmodule.exports = create\n\nfunction create(options) {\n return combine([autolink, strikethrough(options), table, tasklist])\n}\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\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 = 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","/** @license React v17.0.2\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),m=require(\"react\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar q=60106,r=60107,u=60108,z=60114,B=60109,aa=60110,ba=60112,D=60113,ca=60120,da=60115,ea=60116,fa=60121,ha=60117,ia=60119,ja=60129,ka=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;q=E(\"react.portal\");r=E(\"react.fragment\");u=E(\"react.strict_mode\");z=E(\"react.profiler\");B=E(\"react.provider\");aa=E(\"react.context\");ba=E(\"react.forward_ref\");D=E(\"react.suspense\");ca=E(\"react.suspense_list\");da=E(\"react.memo\");ea=E(\"react.lazy\");fa=E(\"react.block\");ha=E(\"react.fundamental\");ia=E(\"react.scope\");ja=E(\"react.debug_trace_mode\");ka=E(\"react.legacy_hidden\")}\nfunction F(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case r:return\"Fragment\";case q:return\"Portal\";case z:return\"Profiler\";case u:return\"StrictMode\";case D:return\"Suspense\";case ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case aa:return(a.displayName||\"Context\")+\".Consumer\";case B:return(a._context.displayName||\"Context\")+\".Provider\";case ba:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||\n(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case da:return F(a.type);case fa:return F(a._render);case ea:b=a._payload;a=a._init;try{return F(a(b))}catch(c){}}return null}var la=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ma={};function I(a,b){for(var c=a._threadCount|0;c<=b;c++)a[c]=a._currentValue2,a._threadCount=c+1}function na(a,b,c,d){if(d&&(d=a.contextType,\"object\"===typeof d&&null!==d))return I(d,c),d[c];if(a=a.contextTypes){c={};for(var f in a)c[f]=b[f];b=c}else b=ma;return b}\nfor(var J=new Uint16Array(16),K=0;15>K;K++)J[K]=K+1;J[15]=0;var oa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=/[\\-:]([a-z])/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=/[\"'&<>]/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\""\";break;case 38:b=\"&\";break;case 39:b=\"'\";break;case 60:b=\"<\";break;case 62:b=\">\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}\nfunction ya(a,b){var c=N.hasOwnProperty(a)?N[a]:null;var d;if(d=\"style\"!==a)d=null!==c?0===c.type:!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1]?!1:!0;if(d||ua(a,b,c,!1))return\"\";if(null!==c){a=c.attributeName;d=c.type;if(3===d||4===d&&!0===b)return a+'=\"\"';c.sanitizeURL&&(b=\"\"+b);return a+'=\"'+(O(b)+'\"')}return sa(a)?a+'=\"'+(O(b)+'\"'):\"\"}function za(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}\nvar Aa=\"function\"===typeof Object.is?Object.is:za,P=null,Q=null,R=null,S=!1,T=!1,U=null,V=0;function W(){if(null===P)throw Error(p(321));return P}function Ba(){if(0<V)throw Error(p(312));return{memoizedState:null,queue:null,next:null}}function Ca(){null===R?null===Q?(S=!1,Q=R=Ba()):(S=!0,R=Q):null===R.next?(S=!1,R=R.next=Ba()):(S=!0,R=R.next);return R}function Da(a,b,c,d){for(;T;)T=!1,V+=1,R=null,c=a(b,d);Ea();return c}function Ea(){P=null;T=!1;Q=null;V=0;R=U=null}\nfunction Fa(a,b){return\"function\"===typeof b?b(a):b}function Ga(a,b,c){P=W();R=Ca();if(S){var d=R.queue;b=d.dispatch;if(null!==U&&(c=U.get(d),void 0!==c)){U.delete(d);d=R.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);R.memoizedState=d;return[d,b]}return[R.memoizedState,b]}a=a===Fa?\"function\"===typeof b?b():b:void 0!==c?c(b):b;R.memoizedState=a;a=R.queue={last:null,dispatch:null};a=a.dispatch=Ha.bind(null,P,a);return[R.memoizedState,a]}\nfunction Ia(a,b){P=W();R=Ca();b=void 0===b?null:b;if(null!==R){var c=R.memoizedState;if(null!==c&&null!==b){var d=c[1];a:if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!Aa(b[f],d[f])){d=!1;break a}d=!0}if(d)return c[0]}}a=a();R.memoizedState=[a,b];return a}function Ha(a,b,c){if(!(25>V))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function Ma(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=/([A-Z])/g,Ra=/^ms-/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v<n.length;v++){var x=n[v];x=\"function\"===typeof x?x.call(e,k,d.props,f):x;null!=x&&(H?(H=!1,k=l({},k,x)):l(k,x))}e.state=k}}else t=null;a=e.render();$a(a,h);if(\"function\"===typeof e.getChildContext&&(d=h.childContextTypes,\"object\"===typeof d)){var y=e.getChildContext();for(var A in y)if(!(A in d))throw Error(p(108,F(h)||\"Unknown\",A));}y&&(b=l({},b,y))}for(;m.isValidElement(a);){var f=a,h=f.type;if(\"function\"!==\ntypeof h)break;d(f,h)}return{child:a,context:b}}\nvar bb=function(){function a(a,b,f){m.isValidElement(a)?a.type!==r?a=[a]:(a=a.props.children,a=m.isValidElement(a)?[a]:Z(a)):a=Z(a);a={type:null,domNamespace:La.html,children:a,childIndex:0,context:ma,footer:\"\"};var c=J[0];if(0===c){var d=J;c=d.length;var g=2*c;if(!(65536>=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d<g-1;d++)J[d]=d+1;J[g-1]=0}else J[0]=J[c];this.threadID=c;this.stack=[a];this.exhausted=!1;this.currentSelectValue=null;this.previousWasTextNode=!1;\nthis.makeStaticMarkup=b;this.suspenseDepth=0;this.contextIndex=-1;this.contextStack=[];this.contextValueStack=[];this.uniqueID=0;this.identifierPrefix=f&&f.identifierPrefix||\"\"}var b=a.prototype;b.destroy=function(){if(!this.exhausted){this.exhausted=!0;this.clearProviders();var a=this.threadID;J[a]=J[0];J[0]=a}};b.pushProvider=function(a){var b=++this.contextIndex,c=a.type._context,h=this.threadID;I(c,h);var t=c[h];this.contextStack[b]=c;this.contextValueStack[b]=t;c[h]=a.props.value};b.popProvider=\nfunction(){var a=this.contextIndex,b=this.contextStack[a],f=this.contextValueStack[a];this.contextStack[a]=null;this.contextValueStack[a]=null;this.contextIndex--;b[this.threadID]=f};b.clearProviders=function(){for(var a=this.contextIndex;0<=a;a--)this.contextStack[a][this.threadID]=this.contextValueStack[a]};b.read=function(a){if(this.exhausted)return null;var b=X;X=this;var c=Sa.current;Sa.current=Ka;try{for(var h=[\"\"],t=!1;h[0].length<a;){if(0===this.stack.length){this.exhausted=!0;var g=this.threadID;\nJ[g]=J[0];J[0]=g;break}var e=this.stack[this.stack.length-1];if(t||e.childIndex>=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C<e.length;C++){if(\"\"+e[C]===G){g=!0;break}}else g=\"\"+e===G;d=l({selected:void 0,children:void 0},\nd,{selected:g,children:L})}}if(g=d){if(Oa[c]&&(null!=g.children||null!=g.dangerouslySetInnerHTML))throw Error(p(137,c));if(null!=g.dangerouslySetInnerHTML){if(null!=g.children)throw Error(p(60));if(!(\"object\"===typeof g.dangerouslySetInnerHTML&&\"__html\"in g.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=g.style&&\"object\"!==typeof g.style)throw Error(p(62));}g=d;e=this.makeStaticMarkup;L=1===this.stack.length;G=\"<\"+a.type;b:if(-1===c.indexOf(\"-\"))C=\"string\"===typeof g.is;else switch(c){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":C=\n!1;break b;default:C=!0}for(w in g)if(Ya.call(g,w)){var n=g[w];if(null!=n){if(\"style\"===w){var k=void 0,v=\"\",H=\"\";for(k in n)if(n.hasOwnProperty(k)){var x=0===k.indexOf(\"--\"),y=n[k];if(null!=y){if(x)var A=k;else if(A=k,Wa.hasOwnProperty(A))A=Wa[A];else{var cb=A.replace(Qa,\"-$1\").toLowerCase().replace(Ra,\"-ms-\");A=Wa[A]=cb}v+=H+A+\":\";H=k;x=null==y||\"boolean\"===typeof y||\"\"===y?\"\":x||\"number\"!==typeof y||0===y||Y.hasOwnProperty(H)&&Y[H]?(\"\"+y).trim():y+\"px\";v+=x;H=\";\"}}n=v||null}k=null;C?Za.hasOwnProperty(w)||\n(k=w,k=sa(k)&&null!=n?k+'=\"'+(O(n)+'\"'):\"\"):k=ya(w,n);k&&(G+=\" \"+k)}}e||L&&(G+=' data-reactroot=\"\"');var w=G;g=\"\";Na.hasOwnProperty(c)?w+=\"/>\":(w+=\">\",g=\"</\"+a.type+\">\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===f?Ma(a):\"http://www.w3.org/2000/svg\"===\nf&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<BrowserRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<HashRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware <a>.\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Link> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <NavLink> outside a <Router>\") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change <Router history>\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Prompt> outside a <Router>\") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Redirect> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Route> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with <StaticRouter>\", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Switch> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-49a62830.esm.js';\nimport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useCreatable } from '../../dist/useCreatable-d97ef2c9.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar AsyncCreatableSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var stateManagerProps = useAsync(props);\n var creatableProps = useStateManager(stateManagerProps);\n var selectProps = useCreatable(creatableProps);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, selectProps));\n});\nvar AsyncCreatableSelect$1 = AsyncCreatableSelect;\n\nexport { AsyncCreatableSelect$1 as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-49a62830.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nexport { u as useAsync } from '../../dist/useAsync-ba7c6b77.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar AsyncSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var stateManagedProps = useAsync(props);\n var selectProps = useStateManager(stateManagedProps);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, selectProps));\n});\nvar AsyncSelect$1 = AsyncSelect;\n\nexport { AsyncSelect$1 as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-49a62830.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-7e1e8489.esm.js';\nimport { u as useCreatable } from '../../dist/useCreatable-d97ef2c9.esm.js';\nexport { u as useCreatable } from '../../dist/useCreatable-d97ef2c9.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '../../dist/index-a301f526.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\nimport 'memoize-one';\n\nvar CreatableSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var creatableProps = useStateManager(props);\n var selectProps = useCreatable(creatableProps);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, selectProps));\n});\nvar CreatableSelect$1 = CreatableSelect;\n\nexport { CreatableSelect$1 as default };\n","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _createSuper from '@babel/runtime/helpers/esm/createSuper';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport * as React from 'react';\nimport { useMemo, Fragment, useRef, useCallback, useEffect, Component } from 'react';\nimport { r as removeProps, s as supportsPassiveEvents, a as clearIndicatorCSS, b as containerCSS, d as css$1, e as dropdownIndicatorCSS, g as groupCSS, f as groupHeadingCSS, i as indicatorsContainerCSS, h as indicatorSeparatorCSS, j as inputCSS, l as loadingIndicatorCSS, k as loadingMessageCSS, m as menuCSS, n as menuListCSS, o as menuPortalCSS, p as multiValueCSS, q as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, B as multiValueAsValue, C as singleValueAsValue, D as valueTernary, E as classNames, F as defaultComponents, G as isDocumentElement, H as cleanValue, I as scrollIntoView, J as noop, M as MenuPlacer, K as notNullish } from './index-a301f526.esm.js';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2\n};\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\nvar A11yText$1 = A11yText;\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context,\n isInitialFocus = props.isInitialFocus;\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu\".concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n case 'input':\n return isInitialFocus ? \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '') : '';\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n case 'clear':\n return 'All selected options have been cleared.';\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n isAppleDevice = props.isAppleDevice;\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n if (context === 'menu' && isAppleDevice) {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? ' selected' : '').concat(disabled);\n return \"\".concat(label).concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id,\n isAppleDevice = props.isAppleDevice;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue,\n isLoading = selectProps.isLoading;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live'];\n\n // Update aria live message configuration when prop changes\n var messages = useMemo(function () {\n return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]);\n\n // Update aria live selected option when prop changes\n var ariaSelected = useMemo(function () {\n var message = '';\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value;\n // select-option when !isMulti does not return option so we assume selected option is value\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n // If there is just one item from the action then get its label\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : '';\n\n // If there are multiple items from the action then return an array of labels\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n var onChangeProps = _objectSpread({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n message = messages.onChange(onChangeProps);\n }\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: focusableOptions,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue,\n isAppleDevice: isAppleDevice\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isAppleDevice]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n if (menuIsOpen && options.length && !isLoading && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue,\n isInitialFocus: isInitialFocus\n });\n }\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);\n var ScreenReaderText = jsx(Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-focused\"\n }, ariaFocused), jsx(\"span\", {\n id: \"aria-results\"\n }, ariaResults), jsx(\"span\", {\n id: \"aria-guidance\"\n }, ariaGuidance));\n return jsx(Fragment, null, jsx(A11yText$1, {\n id: id\n }, isInitialFocus && ScreenReaderText), jsx(A11yText$1, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\",\n role: \"log\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\nvar LiveRegion$1 = LiveRegion;\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n // Remove animation props not meant for HTML elements\n var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n if (event.cancelable) event.preventDefault();\n event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar blurSelectInput = function blurSelectInput(event) {\n var element = event.target;\n return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();\n};\nvar _ref2$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n return jsx(Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2$1\n }), children(targetRef));\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1a0ro4n-requiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%\"\n} : {\n name: \"5kkxb2-requiredInput-RequiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar RequiredInput = function RequiredInput(_ref) {\n var name = _ref.name,\n onFocus = _ref.onFocus;\n return jsx(\"input\", {\n required: true,\n name: name,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n onFocus: onFocus,\n css: _ref2\n // Prevent `Switching from uncontrolled to controlled` error\n ,\n value: \"\",\n onChange: function onChange() {}\n });\n};\nvar RequiredInput$1 = RequiredInput;\n\n/// <reference types=\"user-agent-data-types\" />\n\nfunction testPlatform(re) {\n var _window$navigator$use;\n return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window$navigator$use = window.navigator['userAgentData']) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform) : false;\n}\nfunction isIPhone() {\n return testPlatform(/^iPhone/i);\n}\nfunction isMac() {\n return testPlatform(/^Mac/i);\n}\nfunction isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n return isIPhone() || isIPad();\n}\nfunction isAppleDevice() {\n return isMac() || isIOS();\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // initialize with source styles\n var styles = _objectSpread({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n classNames: {},\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true,\n unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n var isSelected = _isOptionSelected(props, option, selectValue);\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(notNullish);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n return optionsAccumulator;\n }, []);\n}\nfunction buildFocusableOptionsWithIds(categorizedOptions, optionId) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return {\n data: option.data,\n id: \"\".concat(optionId, \"-\").concat(categorizedOption.index, \"-\").concat(option.index)\n };\n })));\n } else {\n optionsAccumulator.push({\n data: categorizedOption.data,\n id: \"\".concat(optionId, \"-\").concat(categorizedOption.index)\n });\n }\n return optionsAccumulator;\n }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n}\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getFocusedOptionId = function getFocusedOptionId(focusableOptionsWithIds, focusedOption) {\n var _focusableOptionsWith;\n var focusedOptionId = (_focusableOptionsWith = focusableOptionsWithIds.find(function (option) {\n return option.data === focusedOption;\n })) === null || _focusableOptionsWith === void 0 ? void 0 : _focusableOptionsWith.id;\n return focusedOptionId || null;\n};\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n var _super = _createSuper(Select);\n // Misc. Instance Properties\n // ------------------------------\n\n // TODO\n\n // Refs\n // ------------------------------\n\n // Lifecycle\n // ------------------------------\n\n function Select(_props) {\n var _this;\n _classCallCheck(this, Select);\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedOptionId: null,\n focusableOptionsWithIds: [],\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined,\n instancePrefix: ''\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.isAppleDevice = isAppleDevice();\n _this.controlRef = null;\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n _this.focusedOptionRef = null;\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n _this.menuListRef = null;\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n _this.inputRef = null;\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n _this.ariaOnChange(newValue, actionMeta);\n onChange(newValue, actionMeta);\n };\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n _this.setValue(multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n return;\n }\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var candidate = _this.getOptionValue(removedValue);\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this.focusInput();\n };\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n _this.onChange(valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n _this.getFocusedOptionId = function (focusedOption) {\n return getFocusedOptionId(_this.state.focusableOptionsWithIds, focusedOption);\n };\n _this.getFocusableOptionsWithIds = function () {\n return buildFocusableOptionsWithIds(buildCategorizedOptions(_this.props, _this.state.selectValue), _this.getElementId('option'));\n };\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n _this.getStyles = function (key, props) {\n var unstyled = _this.props.unstyled;\n var base = defaultStyles[key](props, unstyled);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n _this.getClassNames = function (key, props) {\n var _this$props$className, _this$props$className2;\n return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n };\n _this.getElementId = function (element) {\n return \"\".concat(_this.state.instancePrefix, \"-\").concat(element);\n };\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread({\n value: value\n }, actionMeta)\n });\n };\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this.focusInput();\n };\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n var openMenuOnClick = _this.props.openMenuOnClick;\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n _this.focusInput();\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n event.preventDefault();\n };\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this.clearValue();\n event.preventDefault();\n _this.openAfterFocus = false;\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n }\n\n // reset move vars\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onControlMouseDown(event);\n };\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onClearIndicatorMouseDown(event);\n };\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onDropdownIndicatorMouseDown(event);\n };\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n _this.openAfterFocus = false;\n };\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n return;\n }\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n _this.onMenuClose();\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n var options = _this.getFocusableOptions();\n var focusedOptionIndex = options.indexOf(focusedOption);\n _this.setState({\n focusedOption: focusedOption,\n focusedOptionId: focusedOptionIndex > -1 ? _this.getFocusedOptionId(focusedOption) : null\n });\n };\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n _this.onValueInputFocus = function (e) {\n e.preventDefault();\n e.stopPropagation();\n _this.focus();\n };\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n break;\n case 'Tab':\n if (_this.isComposing) return;\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this.selectOption(focusedOption);\n break;\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n _this.selectOption(focusedOption);\n break;\n }\n return;\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n _this.state.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n if (_props.menuIsOpen && _this.state.selectValue.length) {\n var focusableOptionsWithIds = _this.getFocusableOptionsWithIds();\n var focusableOptions = _this.buildFocusableOptions();\n var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n _this.state.focusableOptionsWithIds = focusableOptionsWithIds;\n _this.state.focusedOption = focusableOptions[optionIndex];\n _this.state.focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusableOptions[optionIndex]);\n }\n return _this;\n }\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n if (this.props.autoFocus) {\n this.focusInput();\n }\n\n // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programmatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: true\n });\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n\n // ==============================\n // Consumer Handlers\n // ==============================\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n // only scroll if the menu isn't already open\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex],\n focusedOptionId: this.getFocusedOptionId(focusableOptions[openAtIndex])\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue;\n\n // Only multiselects support value focusing\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n }\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n }\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null,\n focusedOptionId: this.getFocusedOptionId(options[nextFocus])\n });\n }\n }, {\n key: \"getTheme\",\n value:\n // ==============================\n // Getters\n // ==============================\n\n function getTheme() {\n // Use the default theme if there are no customisations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _objectSpread(_objectSpread({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getClassNames = this.getClassNames,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getClassNames: getClassNames,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n }, {\n key: \"startListeningComposition\",\n value:\n // ==============================\n // Composition Handlers\n // ==============================\n\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value:\n // ==============================\n // Touch Handlers\n // ==============================\n\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value:\n // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen,\n required = _this$props8.required;\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input');\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = _objectSpread(_objectSpread(_objectSpread({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n 'aria-required': required,\n role: 'combobox',\n 'aria-activedescendant': this.isAppleDevice ? undefined : this.state.focusedOptionId || ''\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n if (inputValue) {\n return null;\n }\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1,\n role: 'option',\n 'aria-selected': _this4.isAppleDevice ? undefined : isSelected // is not supported on Apple devices\n };\n\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n var menuUI;\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n scrollTargetRef(instance);\n },\n innerProps: {\n role: 'listbox',\n 'aria-multiselectable': commonProps.isMulti,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n });\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name,\n required = _this$props13.required;\n var selectValue = this.state.selectValue;\n if (required && !this.hasValue() && !isDisabled) {\n return /*#__PURE__*/React.createElement(RequiredInput$1, {\n name: name,\n onFocus: this.onValueInputFocus\n });\n }\n if (!name || isDisabled) return;\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: \"\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion$1, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions,\n isAppleDevice: this.isAppleDevice\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused,\n instancePrefix = state.instancePrefix;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = cleanValue(value);\n var newMenuOptionsState = {};\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), \"\".concat(instancePrefix, \"-option\")) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedOptionId: focusedOptionId,\n focusableOptionsWithIds: focusableOptionsWithIds,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n }\n // some updates should toggle the state of the input visibility\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n }\n\n // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n return _objectSpread(_objectSpread(_objectSpread({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n return Select;\n}(Component);\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultProps as a, getOptionLabel$1 as b, createFilter as c, defaultTheme as d, getOptionValue$1 as g, mergeStyles as m };\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isTopLayer(currentNode)) {\n return null;\n }\n if (isContainingBlock(currentNode)) {\n return currentNode;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2 } from '@emotion/react';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { useContext, useRef, useState, useMemo, useCallback, createContext } from 'react';\nimport { createPortal } from 'react-dom';\nimport { autoUpdate } from '@floating-ui/dom';\nimport useLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar _excluded$4 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\nfunction classNames(prefix, state) {\n for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n classNameList[_key - 2] = arguments[_key];\n }\n var arr = [].concat(classNameList);\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getClassNames;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$4);\n return _objectSpread({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n var cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n className = props.className;\n return {\n css: getStyles(name, props),\n className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n if (typeof _newValue === 'string') return _newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n properties[_key2 - 1] = arguments[_key2];\n }\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nvar _excluded$3 = [\"children\", \"innerProps\"],\n _excluded2$1 = [\"children\", \"innerProps\"];\nfunction getMenuPlacement(_ref) {\n var preferredMaxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n preferredPlacement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n controlHeight = _ref.controlHeight;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n switch (preferredPlacement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (preferredPlacement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = preferredMaxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (preferredPlacement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = preferredMaxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n }\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n var _objectSpread2;\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _objectSpread((_objectSpread2 = {\n label: 'menu'\n }, _defineProperty(_objectSpread2, alignToControl(placement), '100%'), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"width\", '100%'), _defineProperty(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n backgroundColor: colors.neutral0,\n borderRadius: borderRadius,\n boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n marginBottom: spacing.menuGutter,\n marginTop: spacing.menuGutter\n });\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n var children = props.children,\n minMenuHeight = props.minMenuHeight,\n maxMenuHeight = props.maxMenuHeight,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition,\n menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n theme = props.theme;\n var _ref3 = useContext(PortalPlacementContext) || {},\n setPortalPlacement = _ref3.setPortalPlacement;\n var ref = useRef(null);\n var _useState = useState(maxMenuHeight),\n _useState2 = _slicedToArray(_useState, 2),\n maxHeight = _useState2[0],\n setMaxHeight = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n placement = _useState4[0],\n setPlacement = _useState4[1];\n var controlHeight = theme.spacing.controlHeight;\n useLayoutEffect(function () {\n var menuEl = ref.current;\n if (!menuEl) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: menuEl,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n controlHeight: controlHeight\n });\n setMaxHeight(state.maxHeight);\n setPlacement(state.placement);\n setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n return children({\n ref: ref,\n placerProps: _objectSpread(_objectSpread({}, props), {}, {\n placement: placement || coercePlacement(menuPlacement),\n maxHeight: maxHeight\n })\n });\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'menu', {\n menu: true\n }), {\n ref: innerRef\n }, innerProps), children);\n};\nvar Menu$1 = Menu;\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return _objectSpread({\n maxHeight: maxHeight,\n overflowY: 'auto',\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n }, unstyled ? {} : {\n paddingBottom: baseUnit,\n paddingTop: baseUnit\n });\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'menuList', {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }), {\n ref: innerRef\n }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return _objectSpread({\n textAlign: 'center'\n }, unstyled ? {} : {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(_ref6) {\n var _ref6$children = _ref6.children,\n children = _ref6$children === void 0 ? 'No options' : _ref6$children,\n innerProps = _ref6.innerProps,\n restProps = _objectWithoutProperties(_ref6, _excluded$3);\n return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'noOptionsMessage', {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }), innerProps), children);\n};\nvar LoadingMessage = function LoadingMessage(_ref7) {\n var _ref7$children = _ref7.children,\n children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,\n innerProps = _ref7.innerProps,\n restProps = _objectWithoutProperties(_ref7, _excluded2$1);\n return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'loadingMessage', {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }), innerProps), children);\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref8) {\n var rect = _ref8.rect,\n offset = _ref8.offset,\n position = _ref8.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = function MenuPortal(props) {\n var appendTo = props.appendTo,\n children = props.children,\n controlElement = props.controlElement,\n innerProps = props.innerProps,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition;\n var menuPortalRef = useRef(null);\n var cleanupRef = useRef(null);\n var _useState5 = useState(coercePlacement(menuPlacement)),\n _useState6 = _slicedToArray(_useState5, 2),\n placement = _useState6[0],\n setPortalPlacement = _useState6[1];\n var portalPlacementContext = useMemo(function () {\n return {\n setPortalPlacement: setPortalPlacement\n };\n }, []);\n var _useState7 = useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n computedPosition = _useState8[0],\n setComputedPosition = _useState8[1];\n var updateComputedPosition = useCallback(function () {\n if (!controlElement) return;\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n setComputedPosition({\n offset: offset,\n rect: rect\n });\n }\n }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n useLayoutEffect(function () {\n updateComputedPosition();\n }, [updateComputedPosition]);\n var runAutoUpdate = useCallback(function () {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (controlElement && menuPortalRef.current) {\n cleanupRef.current = autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {\n elementResize: 'ResizeObserver' in window\n });\n }\n }, [controlElement, updateComputedPosition]);\n useLayoutEffect(function () {\n runAutoUpdate();\n }, [runAutoUpdate]);\n var setMenuPortalElement = useCallback(function (menuPortalElement) {\n menuPortalRef.current = menuPortalElement;\n runAutoUpdate();\n }, [runAutoUpdate]);\n\n // bail early if required elements aren't present\n if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = jsx(\"div\", _extends({\n ref: setMenuPortalElement\n }, getStyleProps(_objectSpread(_objectSpread({}, props), {}, {\n offset: computedPosition.offset,\n position: menuPosition,\n rect: computedPosition.rect\n }), 'menuPortal', {\n 'menu-portal': true\n }), innerProps), children);\n return jsx(PortalPlacementContext.Provider, {\n value: portalPlacementContext\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'container', {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return _objectSpread({\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n }, unstyled ? {} : {\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n });\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n hasValue = props.hasValue;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'valueContainer', {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'indicatorsContainer', {\n indicators: true\n }), innerProps), children);\n};\n\nvar _templateObject;\nvar _excluded$2 = [\"size\"],\n _excluded2 = [\"innerProps\", \"isRtl\", \"size\"];\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return _objectSpread({\n label: 'indicatorContainer',\n display: 'flex',\n transition: 'color 150ms'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2,\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'dropdownIndicator', {\n indicator: true,\n 'dropdown-indicator': true\n }), innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'clearIndicator', {\n indicator: true,\n 'clear-indicator': true\n }), innerProps), children || jsx(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return _objectSpread({\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n width: 1\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2\n });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n 'indicator-separator': true\n })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return _objectSpread({\n label: 'loadingIndicator',\n display: 'flex',\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2\n });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/css$2({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\")\n });\n};\nvar LoadingIndicator = function LoadingIndicator(_ref7) {\n var innerProps = _ref7.innerProps,\n isRtl = _ref7.isRtl,\n _ref7$size = _ref7.size,\n size = _ref7$size === void 0 ? 4 : _ref7$size,\n restProps = _objectWithoutProperties(_ref7, _excluded2);\n return jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n innerProps: innerProps,\n isRtl: isRtl,\n size: size\n }), 'loadingIndicator', {\n indicator: true,\n 'loading-indicator': true\n }), innerProps), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\n\nvar css$1 = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return _objectSpread({\n label: 'control',\n alignItems: 'center',\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms'\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n });\n};\nvar Control = function Control(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef\n }, getStyleProps(props, 'control', {\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }), innerProps, {\n \"aria-disabled\": isDisabled || undefined\n }), children);\n};\nvar Control$1 = Control;\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n var spacing = _ref.theme.spacing;\n return unstyled ? {} : {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\nvar Group = function Group(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'group', {\n group: true\n }), innerProps), jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n getClassNames: getClassNames,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n colors = _ref2$theme.colors,\n spacing = _ref2$theme.spacing;\n return _objectSpread({\n label: 'group',\n cursor: 'default',\n display: 'block'\n }, unstyled ? {} : {\n color: colors.neutral40,\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n });\n};\nvar GroupHeading = function GroupHeading(props) {\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n return jsx(\"div\", _extends({}, getStyleProps(props, 'groupHeading', {\n 'group-heading': true\n }), innerProps));\n};\nvar Group$1 = Group;\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread(_objectSpread({\n visibility: isDisabled ? 'hidden' : 'visible',\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle), unstyled ? {} : {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n color: colors.neutral80\n });\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\nvar Input = function Input(props) {\n var cx = props.cx,\n value = props.value;\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n return jsx(\"div\", _extends({}, getStyleProps(props, 'input', {\n 'input-container': true\n }), {\n \"data-value\": value || ''\n }), jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\nvar Input$1 = Input;\n\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'multiValue',\n display: 'flex',\n minWidth: 0\n }, unstyled ? {} : {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n margin: spacing.baseUnit / 2\n });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return _objectSpread({\n overflow: 'hidden',\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n padding: 3,\n paddingLeft: 6\n });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return _objectSpread({\n alignItems: 'center',\n display: 'flex'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || jsx(CrossIcon, {\n size: 14\n }));\n}\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n components = props.components,\n data = props.data,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValue', {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n })), innerProps),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: _objectSpread({}, getStyleProps(props, 'multiValueLabel', {\n 'multi-value__label': true\n })),\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValueRemove', {\n 'multi-value__remove': true\n })), {}, {\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n};\nvar MultiValue$1 = MultiValue;\n\nvar optionCSS = function optionCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'option',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n }, unstyled ? {} : {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n });\n};\nvar Option = function Option(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'option', {\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }), {\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\nvar Option$1 = Option;\n\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'placeholder',\n gridArea: '1 / 1 / 2 / 3'\n }, unstyled ? {} : {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'placeholder', {\n placeholder: true\n }), innerProps), children);\n};\nvar Placeholder$1 = Placeholder;\n\nvar css = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'singleValue',\n gridArea: '1 / 1 / 2 / 3',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'singleValue', {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }), innerProps), children);\n};\nvar SingleValue$1 = SingleValue;\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control$1,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group$1,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input$1,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu$1,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue$1,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option$1,\n Placeholder: Placeholder$1,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue$1,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread(_objectSpread({}, components), props.components);\n};\n\nexport { isMobileDevice as A, multiValueAsValue as B, singleValueAsValue as C, valueTernary as D, classNames as E, defaultComponents as F, isDocumentElement as G, cleanValue as H, scrollIntoView as I, noop as J, notNullish as K, handleInputChange as L, MenuPlacer as M, clearIndicatorCSS as a, containerCSS as b, components as c, css$1 as d, dropdownIndicatorCSS as e, groupHeadingCSS as f, groupCSS as g, indicatorSeparatorCSS as h, indicatorsContainerCSS as i, inputCSS as j, loadingMessageCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuListCSS as n, menuPortalCSS as o, multiValueCSS as p, multiValueLabelCSS as q, removeProps as r, supportsPassiveEvents as s, multiValueRemoveCSS as t, noOptionsMessageCSS as u, optionCSS as v, placeholderCSS as w, css as x, valueContainerCSS as y, isTouchCapable as z };\n","function _taggedTemplateLiteral(e, t) {\n return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n raw: {\n value: Object.freeze(t)\n }\n }));\n}\nexport { _taggedTemplateLiteral as default };","import { u as useStateManager } from './useStateManager-7e1e8489.esm.js';\nexport { u as useStateManager } from './useStateManager-7e1e8489.esm.js';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport { S as Select } from './Select-49a62830.esm.js';\nexport { c as createFilter, d as defaultTheme, m as mergeStyles } from './Select-49a62830.esm.js';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nexport { c as components } from './index-a301f526.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport 'memoize-one';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\n\nvar StateManagedSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var baseSelectProps = useStateManager(props);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, baseSelectProps));\n});\nvar StateManagedSelect$1 = StateManagedSelect;\n\nvar NonceProvider = (function (_ref) {\n var nonce = _ref.nonce,\n children = _ref.children,\n cacheKey = _ref.cacheKey;\n var emotionCache = useMemo(function () {\n return createCache({\n key: cacheKey,\n nonce: nonce\n });\n }, [cacheKey, nonce]);\n return /*#__PURE__*/React.createElement(CacheProvider, {\n value: emotionCache\n }, children);\n});\n\nexport { NonceProvider, StateManagedSelect$1 as default };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useRef, useState, useEffect, useCallback } from 'react';\nimport { L as handleInputChange } from './index-a301f526.esm.js';\n\nvar _excluded = [\"defaultOptions\", \"cacheOptions\", \"loadOptions\", \"options\", \"isLoading\", \"onInputChange\", \"filterOption\"];\nfunction useAsync(_ref) {\n var _ref$defaultOptions = _ref.defaultOptions,\n propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,\n _ref$cacheOptions = _ref.cacheOptions,\n cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,\n propsLoadOptions = _ref.loadOptions;\n _ref.options;\n var _ref$isLoading = _ref.isLoading,\n propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,\n propsOnInputChange = _ref.onInputChange,\n _ref$filterOption = _ref.filterOption,\n filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var propsInputValue = restSelectProps.inputValue;\n var lastRequest = useRef(undefined);\n var mounted = useRef(false);\n var _useState = useState(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),\n _useState2 = _slicedToArray(_useState, 2),\n defaultOptions = _useState2[0],\n setDefaultOptions = _useState2[1];\n var _useState3 = useState(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),\n _useState4 = _slicedToArray(_useState3, 2),\n stateInputValue = _useState4[0],\n setStateInputValue = _useState4[1];\n var _useState5 = useState(propsDefaultOptions === true),\n _useState6 = _slicedToArray(_useState5, 2),\n isLoading = _useState6[0],\n setIsLoading = _useState6[1];\n var _useState7 = useState(undefined),\n _useState8 = _slicedToArray(_useState7, 2),\n loadedInputValue = _useState8[0],\n setLoadedInputValue = _useState8[1];\n var _useState9 = useState([]),\n _useState10 = _slicedToArray(_useState9, 2),\n loadedOptions = _useState10[0],\n setLoadedOptions = _useState10[1];\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n passEmptyOptions = _useState12[0],\n setPassEmptyOptions = _useState12[1];\n var _useState13 = useState({}),\n _useState14 = _slicedToArray(_useState13, 2),\n optionsCache = _useState14[0],\n setOptionsCache = _useState14[1];\n var _useState15 = useState(undefined),\n _useState16 = _slicedToArray(_useState15, 2),\n prevDefaultOptions = _useState16[0],\n setPrevDefaultOptions = _useState16[1];\n var _useState17 = useState(undefined),\n _useState18 = _slicedToArray(_useState17, 2),\n prevCacheOptions = _useState18[0],\n setPrevCacheOptions = _useState18[1];\n if (cacheOptions !== prevCacheOptions) {\n setOptionsCache({});\n setPrevCacheOptions(cacheOptions);\n }\n if (propsDefaultOptions !== prevDefaultOptions) {\n setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);\n setPrevDefaultOptions(propsDefaultOptions);\n }\n useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n var loadOptions = useCallback(function (inputValue, callback) {\n if (!propsLoadOptions) return callback();\n var loader = propsLoadOptions(inputValue, callback);\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }, [propsLoadOptions]);\n useEffect(function () {\n if (propsDefaultOptions === true) {\n loadOptions(stateInputValue, function (options) {\n if (!mounted.current) return;\n setDefaultOptions(options || []);\n setIsLoading(!!lastRequest.current);\n });\n }\n // NOTE: this effect is designed to only run when the component mounts,\n // so we don't want to include any hook dependencies\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var onInputChange = useCallback(function (newValue, actionMeta) {\n var inputValue = handleInputChange(newValue, actionMeta, propsOnInputChange);\n if (!inputValue) {\n lastRequest.current = undefined;\n setStateInputValue('');\n setLoadedInputValue('');\n setLoadedOptions([]);\n setIsLoading(false);\n setPassEmptyOptions(false);\n return;\n }\n if (cacheOptions && optionsCache[inputValue]) {\n setStateInputValue(inputValue);\n setLoadedInputValue(inputValue);\n setLoadedOptions(optionsCache[inputValue]);\n setIsLoading(false);\n setPassEmptyOptions(false);\n } else {\n var request = lastRequest.current = {};\n setStateInputValue(inputValue);\n setIsLoading(true);\n setPassEmptyOptions(!loadedInputValue);\n loadOptions(inputValue, function (options) {\n if (!mounted) return;\n if (request !== lastRequest.current) return;\n lastRequest.current = undefined;\n setIsLoading(false);\n setLoadedInputValue(inputValue);\n setLoadedOptions(options || []);\n setPassEmptyOptions(false);\n setOptionsCache(options ? _objectSpread(_objectSpread({}, optionsCache), {}, _defineProperty({}, inputValue, options)) : optionsCache);\n });\n }\n }, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);\n var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n options: options,\n isLoading: isLoading || propsIsLoading,\n onInputChange: onInputChange,\n filterOption: filterOption\n });\n}\n\nexport { useAsync as u };\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useMemo, useCallback } from 'react';\nimport { H as cleanValue, D as valueTernary } from './index-a301f526.esm.js';\nimport { g as getOptionValue, b as getOptionLabel } from './Select-49a62830.esm.js';\n\nvar _excluded = [\"allowCreateWhileLoading\", \"createOptionPosition\", \"formatCreateLabel\", \"isValidNewOption\", \"getNewOptionData\", \"onCreateOption\", \"options\", \"onChange\"];\nvar compareOption = function compareOption() {\n var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var option = arguments.length > 1 ? arguments[1] : undefined;\n var accessors = arguments.length > 2 ? arguments[2] : undefined;\n var candidate = String(inputValue).toLowerCase();\n var optionValue = String(accessors.getOptionValue(option)).toLowerCase();\n var optionLabel = String(accessors.getOptionLabel(option)).toLowerCase();\n return optionValue === candidate || optionLabel === candidate;\n};\nvar builtins = {\n formatCreateLabel: function formatCreateLabel(inputValue) {\n return \"Create \\\"\".concat(inputValue, \"\\\"\");\n },\n isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions, accessors) {\n return !(!inputValue || selectValue.some(function (option) {\n return compareOption(inputValue, option, accessors);\n }) || selectOptions.some(function (option) {\n return compareOption(inputValue, option, accessors);\n }));\n },\n getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n return {\n label: optionLabel,\n value: inputValue,\n __isNew__: true\n };\n }\n};\nfunction useCreatable(_ref) {\n var _ref$allowCreateWhile = _ref.allowCreateWhileLoading,\n allowCreateWhileLoading = _ref$allowCreateWhile === void 0 ? false : _ref$allowCreateWhile,\n _ref$createOptionPosi = _ref.createOptionPosition,\n createOptionPosition = _ref$createOptionPosi === void 0 ? 'last' : _ref$createOptionPosi,\n _ref$formatCreateLabe = _ref.formatCreateLabel,\n formatCreateLabel = _ref$formatCreateLabe === void 0 ? builtins.formatCreateLabel : _ref$formatCreateLabe,\n _ref$isValidNewOption = _ref.isValidNewOption,\n isValidNewOption = _ref$isValidNewOption === void 0 ? builtins.isValidNewOption : _ref$isValidNewOption,\n _ref$getNewOptionData = _ref.getNewOptionData,\n getNewOptionData = _ref$getNewOptionData === void 0 ? builtins.getNewOptionData : _ref$getNewOptionData,\n onCreateOption = _ref.onCreateOption,\n _ref$options = _ref.options,\n propsOptions = _ref$options === void 0 ? [] : _ref$options,\n propsOnChange = _ref.onChange,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var _restSelectProps$getO = restSelectProps.getOptionValue,\n getOptionValue$1 = _restSelectProps$getO === void 0 ? getOptionValue : _restSelectProps$getO,\n _restSelectProps$getO2 = restSelectProps.getOptionLabel,\n getOptionLabel$1 = _restSelectProps$getO2 === void 0 ? getOptionLabel : _restSelectProps$getO2,\n inputValue = restSelectProps.inputValue,\n isLoading = restSelectProps.isLoading,\n isMulti = restSelectProps.isMulti,\n value = restSelectProps.value,\n name = restSelectProps.name;\n var newOption = useMemo(function () {\n return isValidNewOption(inputValue, cleanValue(value), propsOptions, {\n getOptionValue: getOptionValue$1,\n getOptionLabel: getOptionLabel$1\n }) ? getNewOptionData(inputValue, formatCreateLabel(inputValue)) : undefined;\n }, [formatCreateLabel, getNewOptionData, getOptionLabel$1, getOptionValue$1, inputValue, isValidNewOption, propsOptions, value]);\n var options = useMemo(function () {\n return (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(_toConsumableArray(propsOptions)) : [].concat(_toConsumableArray(propsOptions), [newOption]) : propsOptions;\n }, [allowCreateWhileLoading, createOptionPosition, isLoading, newOption, propsOptions]);\n var onChange = useCallback(function (newValue, actionMeta) {\n if (actionMeta.action !== 'select-option') {\n return propsOnChange(newValue, actionMeta);\n }\n var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n if (valueArray[valueArray.length - 1] === newOption) {\n if (onCreateOption) onCreateOption(inputValue);else {\n var newOptionData = getNewOptionData(inputValue, inputValue);\n var newActionMeta = {\n action: 'create-option',\n name: name,\n option: newOptionData\n };\n propsOnChange(valueTernary(isMulti, [].concat(_toConsumableArray(cleanValue(value)), [newOptionData]), newOptionData), newActionMeta);\n }\n return;\n }\n propsOnChange(newValue, actionMeta);\n }, [getNewOptionData, inputValue, isMulti, name, newOption, onCreateOption, propsOnChange, value]);\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n options: options,\n onChange: onChange\n });\n}\n\nexport { useCreatable as u };\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useState, useCallback } from 'react';\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n var onChange = useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = useCallback(function (value, actionMeta) {\n var newValue;\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexport { useStateManager as u };\n","import React__default, { isValidElement, useRef, useLayoutEffect, useEffect, useReducer, useState, cloneElement, createElement } from 'react';\nimport cx from 'clsx';\nimport { render } from 'react-dom';\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\nfunction isNum(v) {\n return typeof v === 'number' && !isNaN(v);\n}\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\nfunction isStr(v) {\n return typeof v === 'string';\n}\nfunction isFn(v) {\n return typeof v === 'function';\n}\nfunction parseClassName(v) {\n return isStr(v) || isFn(v) ? v : null;\n}\nfunction isToastIdValid(toastId) {\n return toastId === 0 || toastId;\n}\nfunction getAutoCloseDelay(toastAutoClose, containerAutoClose) {\n return toastAutoClose === false || isNum(toastAutoClose) && toastAutoClose > 0 ? toastAutoClose : containerAutoClose;\n}\nvar canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction canBeRendered(content) {\n return isValidElement(content) || isStr(content) || isFn(content) || isNum(content);\n}\n\nvar POSITION = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\nvar TYPE = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\n/**\r\n * Used to collapse toast after exit animation\r\n */\nfunction collapseToast(node, done, duration\n/* COLLAPSE_DURATION */\n) {\n if (duration === void 0) {\n duration = 300;\n }\n\n var scrollHeight = node.scrollHeight,\n style = node.style;\n requestAnimationFrame(function () {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = \"all \" + duration + \"ms\";\n requestAnimationFrame(function () {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration);\n });\n });\n}\n\n/**\r\n * Css animation that just work.\r\n * You could use animate.css for instance\r\n *\r\n *\r\n * ```\r\n * cssTransition({\r\n * enter: \"animate__animated animate__bounceIn\",\r\n * exit: \"animate__animated animate__bounceOut\"\r\n * })\r\n * ```\r\n *\r\n */\n\nfunction cssTransition(_ref) {\n var enter = _ref.enter,\n exit = _ref.exit,\n _ref$appendPosition = _ref.appendPosition,\n appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition,\n _ref$collapse = _ref.collapse,\n collapse = _ref$collapse === void 0 ? true : _ref$collapse,\n _ref$collapseDuration = _ref.collapseDuration,\n collapseDuration = _ref$collapseDuration === void 0 ? 300 : _ref$collapseDuration;\n return function ToastTransition(_ref2) {\n var children = _ref2.children,\n position = _ref2.position,\n preventExitTransition = _ref2.preventExitTransition,\n done = _ref2.done,\n nodeRef = _ref2.nodeRef,\n isIn = _ref2.isIn;\n var enterClassName = appendPosition ? enter + \"--\" + position : enter;\n var exitClassName = appendPosition ? exit + \"--\" + position : exit;\n var baseClassName = useRef();\n var animationStep = useRef(0\n /* Enter */\n );\n useLayoutEffect(function () {\n onEnter();\n }, []);\n useEffect(function () {\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n function onEnter() {\n var node = nodeRef.current;\n baseClassName.current = node.className;\n node.className += \" \" + enterClassName;\n node.addEventListener('animationend', onEntered);\n node.addEventListener('animationcancel', onEntered);\n }\n\n function onEntered(e) {\n if (e.target !== nodeRef.current) return;\n var node = nodeRef.current;\n node.dispatchEvent(new Event(\"d\"\n /* ENTRANCE_ANIMATION_END */\n ));\n node.removeEventListener('animationend', onEntered);\n node.removeEventListener('animationcancel', onEntered);\n\n if (animationStep.current === 0\n /* Enter */\n ) {\n node.className = baseClassName.current;\n }\n }\n\n function onExit() {\n animationStep.current = 1\n /* Exit */\n ;\n var node = nodeRef.current;\n node.className += \" \" + exitClassName;\n node.addEventListener('animationend', onExited);\n }\n\n function onExited() {\n var node = nodeRef.current;\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n }\n\n return React__default.createElement(React__default.Fragment, null, children);\n };\n}\n\nvar eventManager = {\n list: /*#__PURE__*/new Map(),\n emitQueue: /*#__PURE__*/new Map(),\n on: function on(event, callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event).push(callback);\n return this;\n },\n off: function off(event, callback) {\n if (callback) {\n var cb = this.list.get(event).filter(function (cb) {\n return cb !== callback;\n });\n this.list.set(event, cb);\n return this;\n }\n\n this.list[\"delete\"](event);\n return this;\n },\n cancelEmit: function cancelEmit(event) {\n var timers = this.emitQueue.get(event);\n\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue[\"delete\"](event);\n }\n\n return this;\n },\n\n /**\r\n * Enqueue the event at the end of the call stack\r\n * Doing so let the user call toast as follow:\r\n * toast('1')\r\n * toast('2')\r\n * toast('3')\r\n * Without setTimemout the code above will not work\r\n */\n emit: function emit(event) {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n this.list.has(event) && this.list.get(event).forEach(function (callback) {\n var timer = setTimeout(function () {\n // @ts-ignore\n callback.apply(void 0, args);\n }, 0);\n _this.emitQueue.has(event) || _this.emitQueue.set(event, []);\n\n _this.emitQueue.get(event).push(timer);\n });\n }\n};\n\nvar _excluded = [\"delay\", \"staleId\"];\nfunction useToastContainer(props) {\n var _useReducer = useReducer(function (x) {\n return x + 1;\n }, 0),\n forceUpdate = _useReducer[1];\n\n var _useState = useState([]),\n toastIds = _useState[0],\n setToastIds = _useState[1];\n\n var containerRef = useRef(null);\n var toastToRender = useRef(new Map()).current;\n\n var isToastActive = function isToastActive(id) {\n return toastIds.indexOf(id) !== -1;\n };\n\n var instance = useRef({\n toastKey: 1,\n displayedToast: 0,\n count: 0,\n queue: [],\n props: props,\n containerId: null,\n isToastActive: isToastActive,\n getToast: function getToast(id) {\n return toastToRender.get(id);\n }\n }).current;\n useEffect(function () {\n instance.containerId = props.containerId;\n eventManager.cancelEmit(3\n /* WillUnmount */\n ).on(0\n /* Show */\n , buildToast).on(1\n /* Clear */\n , function (toastId) {\n return containerRef.current && removeToast(toastId);\n }).on(5\n /* ClearWaitingQueue */\n , clearWaitingQueue).emit(2\n /* DidMount */\n , instance);\n return function () {\n return eventManager.emit(3\n /* WillUnmount */\n , instance);\n };\n }, []);\n useEffect(function () {\n instance.isToastActive = isToastActive;\n instance.displayedToast = toastIds.length;\n eventManager.emit(4\n /* Change */\n , toastIds.length, props.containerId);\n }, [toastIds]);\n useEffect(function () {\n instance.props = props;\n });\n\n function clearWaitingQueue(_ref) {\n var containerId = _ref.containerId;\n var limit = instance.props.limit;\n\n if (limit && (!containerId || instance.containerId === containerId)) {\n instance.count -= instance.queue.length;\n instance.queue = [];\n }\n }\n\n function removeToast(toastId) {\n setToastIds(function (state) {\n return isToastIdValid(toastId) ? state.filter(function (id) {\n return id !== toastId;\n }) : [];\n });\n }\n\n function dequeueToast() {\n var _instance$queue$shift = instance.queue.shift(),\n toastContent = _instance$queue$shift.toastContent,\n toastProps = _instance$queue$shift.toastProps,\n staleId = _instance$queue$shift.staleId;\n\n appendToast(toastContent, toastProps, staleId);\n }\n /**\r\n * check if a container is attached to the dom\r\n * check for multi-container, build only if associated\r\n * check for duplicate toastId if no update\r\n */\n\n\n function isNotValid(options) {\n return !containerRef.current || instance.props.enableMultiContainer && options.containerId !== instance.props.containerId || toastToRender.has(options.toastId) && options.updateId == null;\n } // this function and all the function called inside needs to rely on refs\n\n\n function buildToast(content, _ref2) {\n var delay = _ref2.delay,\n staleId = _ref2.staleId,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (!canBeRendered(content) || isNotValid(options)) return;\n var toastId = options.toastId,\n updateId = options.updateId,\n data = options.data;\n var props = instance.props;\n\n var closeToast = function closeToast() {\n return removeToast(toastId);\n };\n\n var isNotAnUpdate = updateId == null;\n if (isNotAnUpdate) instance.count++;\n var toastProps = {\n toastId: toastId,\n updateId: updateId,\n isLoading: options.isLoading,\n theme: options.theme || props.theme,\n icon: options.icon != null ? options.icon : props.icon,\n isIn: false,\n key: options.key || instance.toastKey++,\n type: options.type,\n closeToast: closeToast,\n closeButton: options.closeButton,\n rtl: props.rtl,\n position: options.position || props.position,\n transition: options.transition || props.transition,\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(options.bodyClassName || props.bodyClassName),\n style: options.style || props.toastStyle,\n bodyStyle: options.bodyStyle || props.bodyStyle,\n onClick: options.onClick || props.onClick,\n pauseOnHover: isBool(options.pauseOnHover) ? options.pauseOnHover : props.pauseOnHover,\n pauseOnFocusLoss: isBool(options.pauseOnFocusLoss) ? options.pauseOnFocusLoss : props.pauseOnFocusLoss,\n draggable: isBool(options.draggable) ? options.draggable : props.draggable,\n draggablePercent: options.draggablePercent || props.draggablePercent,\n draggableDirection: options.draggableDirection || props.draggableDirection,\n closeOnClick: isBool(options.closeOnClick) ? options.closeOnClick : props.closeOnClick,\n progressClassName: parseClassName(options.progressClassName || props.progressClassName),\n progressStyle: options.progressStyle || props.progressStyle,\n autoClose: options.isLoading ? false : getAutoCloseDelay(options.autoClose, props.autoClose),\n hideProgressBar: isBool(options.hideProgressBar) ? options.hideProgressBar : props.hideProgressBar,\n progress: options.progress,\n role: options.role || props.role,\n deleteToast: function deleteToast() {\n toastToRender[\"delete\"](toastId);\n var queueLen = instance.queue.length;\n instance.count = isToastIdValid(toastId) ? instance.count - 1 : instance.count - instance.displayedToast;\n if (instance.count < 0) instance.count = 0;\n\n if (queueLen > 0) {\n var freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n var toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (var i = 0; i < toDequeue; i++) {\n dequeueToast();\n }\n }\n } else {\n forceUpdate();\n }\n }\n };\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n toastProps.closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n toastProps.closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n toastProps.closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n }\n\n var toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content, {\n closeToast: closeToast,\n toastProps: toastProps,\n data: data\n });\n } else if (isFn(content)) {\n toastContent = content({\n closeToast: closeToast,\n toastProps: toastProps,\n data: data\n });\n } // not handling limit + delay by design. Waiting for user feedback first\n\n\n if (props.limit && props.limit > 0 && instance.count > props.limit && isNotAnUpdate) {\n instance.queue.push({\n toastContent: toastContent,\n toastProps: toastProps,\n staleId: staleId\n });\n } else if (isNum(delay) && delay > 0) {\n setTimeout(function () {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(content, toastProps, staleId) {\n var toastId = toastProps.toastId;\n if (staleId) toastToRender[\"delete\"](staleId);\n toastToRender.set(toastId, {\n content: content,\n props: toastProps\n });\n setToastIds(function (state) {\n return [].concat(state, [toastId]).filter(function (id) {\n return id !== staleId;\n });\n });\n }\n\n function getToastToRender(cb) {\n var toRender = new Map();\n var collection = Array.from(toastToRender.values());\n if (props.newestOnTop) collection.reverse();\n collection.forEach(function (toast) {\n var position = toast.props.position;\n toRender.has(position) || toRender.set(position, []);\n toRender.get(position).push(toast);\n });\n return Array.from(toRender, function (p) {\n return cb(p[0], p[1]);\n });\n }\n\n return {\n getToastToRender: getToastToRender,\n containerRef: containerRef,\n isToastActive: isToastActive\n };\n}\n\nfunction getX(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;\n}\n\nfunction getY(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;\n}\n\nfunction useToast(props) {\n var _useState = useState(false),\n isRunning = _useState[0],\n setIsRunning = _useState[1];\n\n var _useState2 = useState(false),\n preventExitTransition = _useState2[0],\n setPreventExitTransition = _useState2[1];\n\n var toastRef = useRef(null);\n var drag = useRef({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null,\n didMove: false\n }).current;\n var syncProps = useRef(props);\n var autoClose = props.autoClose,\n pauseOnHover = props.pauseOnHover,\n closeToast = props.closeToast,\n onClick = props.onClick,\n closeOnClick = props.closeOnClick;\n useEffect(function () {\n syncProps.current = props;\n });\n useEffect(function () {\n if (toastRef.current) toastRef.current.addEventListener(\"d\"\n /* ENTRANCE_ANIMATION_END */\n , playToast, {\n once: true\n });\n if (isFn(props.onOpen)) props.onOpen(isValidElement(props.children) && props.children.props);\n return function () {\n var props = syncProps.current;\n if (isFn(props.onClose)) props.onClose(isValidElement(props.children) && props.children.props);\n };\n }, []);\n useEffect(function () {\n props.pauseOnFocusLoss && bindFocusEvents();\n return function () {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(e) {\n if (props.draggable) {\n bindDragEvents();\n var toast = toastRef.current;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent);\n drag.y = getY(e.nativeEvent);\n\n if (props.draggableDirection === \"x\"\n /* X */\n ) {\n drag.start = drag.x;\n drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance = toast.offsetHeight * (props.draggablePercent === 80\n /* DRAGGABLE_PERCENT */\n ? props.draggablePercent * 1.5 : props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd() {\n if (drag.boundingRect) {\n var _drag$boundingRect = drag.boundingRect,\n top = _drag$boundingRect.top,\n bottom = _drag$boundingRect.bottom,\n left = _drag$boundingRect.left,\n right = _drag$boundingRect.right;\n\n if (props.pauseOnHover && drag.x >= left && drag.x <= right && drag.y >= top && drag.y <= bottom) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n drag.didMove = false;\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e) {\n var toast = toastRef.current;\n\n if (drag.canDrag && toast) {\n drag.didMove = true;\n if (isRunning) pauseToast();\n drag.x = getX(e);\n drag.y = getY(e);\n\n if (props.draggableDirection === \"x\"\n /* X */\n ) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n } // prevent false positif during a toast click\n\n\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n toast.style.transform = \"translate\" + props.draggableDirection + \"(\" + drag.delta + \"px)\";\n toast.style.opacity = \"\" + (1 - Math.abs(drag.delta / drag.removalDistance));\n }\n }\n\n function onDragEnd() {\n unbindDragEvents();\n var toast = toastRef.current;\n\n if (drag.canDrag && drag.didMove && toast) {\n drag.canDrag = false;\n\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = \"translate\" + props.draggableDirection + \"(0)\";\n toast.style.opacity = '1';\n }\n }\n\n var eventHandlers = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n } // prevent toast from closing when user drags the toast\n\n\n if (closeOnClick) {\n eventHandlers.onClick = function (e) {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast: playToast,\n pauseToast: pauseToast,\n isRunning: isRunning,\n preventExitTransition: preventExitTransition,\n toastRef: toastRef,\n eventHandlers: eventHandlers\n };\n}\n\nfunction CloseButton(_ref) {\n var closeToast = _ref.closeToast,\n theme = _ref.theme,\n _ref$ariaLabel = _ref.ariaLabel,\n ariaLabel = _ref$ariaLabel === void 0 ? 'close' : _ref$ariaLabel;\n return createElement(\"button\", {\n className: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__close-button \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__close-button--\" + theme,\n type: \"button\",\n onClick: function onClick(e) {\n e.stopPropagation();\n closeToast(e);\n },\n \"aria-label\": ariaLabel\n }, createElement(\"svg\", {\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 16\"\n }, createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n })));\n}\n\nfunction ProgressBar(_ref) {\n var _cx, _animationEvent;\n\n var delay = _ref.delay,\n isRunning = _ref.isRunning,\n closeToast = _ref.closeToast,\n type = _ref.type,\n hide = _ref.hide,\n className = _ref.className,\n userStyle = _ref.style,\n controlledProgress = _ref.controlledProgress,\n progress = _ref.progress,\n rtl = _ref.rtl,\n isIn = _ref.isIn,\n theme = _ref.theme;\n\n var style = _extends({}, userStyle, {\n animationDuration: delay + \"ms\",\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1\n });\n\n if (controlledProgress) style.transform = \"scaleX(\" + progress + \")\";\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar\", controlledProgress ? \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--controlled\" : \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--animated\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar-theme--\" + theme, \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--\" + type, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__progress-bar--rtl\"] = rtl, _cx));\n var classNames = isFn(className) ? className({\n rtl: rtl,\n type: type,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, className); // 🧠controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n\n var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : function () {\n isIn && closeToast();\n }, _animationEvent); // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return createElement(\"div\", Object.assign({\n role: \"progressbar\",\n \"aria-hidden\": hide ? 'true' : 'false',\n \"aria-label\": \"notification timer\",\n className: classNames,\n style: style\n }, animationEvent));\n}\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n\nvar _excluded$1 = [\"theme\", \"type\"];\n\nvar Svg = function Svg(_ref) {\n var theme = _ref.theme,\n type = _ref.type,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n return createElement(\"svg\", Object.assign({\n viewBox: \"0 0 24 24\",\n width: \"100%\",\n height: \"100%\",\n fill: theme === 'colored' ? 'currentColor' : \"var(--toastify-icon-color-\" + type + \")\"\n }, rest));\n};\n\nfunction Warning(props) {\n return createElement(Svg, Object.assign({}, props), createElement(\"path\", {\n d: \"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\"\n }));\n}\n\nfunction Info(props) {\n return createElement(Svg, Object.assign({}, props), createElement(\"path\", {\n d: \"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\"\n }));\n}\n\nfunction Success(props) {\n return createElement(Svg, Object.assign({}, props), createElement(\"path\", {\n d: \"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\"\n }));\n}\n\nfunction Error(props) {\n return createElement(Svg, Object.assign({}, props), createElement(\"path\", {\n d: \"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\"\n }));\n}\n\nfunction Spinner() {\n return createElement(\"div\", {\n className: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__spinner\"\n });\n}\n\nvar Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n\nvar Toast = function Toast(props) {\n var _cx, _cx2;\n\n var _useToast = useToast(props),\n isRunning = _useToast.isRunning,\n preventExitTransition = _useToast.preventExitTransition,\n toastRef = _useToast.toastRef,\n eventHandlers = _useToast.eventHandlers;\n\n var closeButton = props.closeButton,\n children = props.children,\n autoClose = props.autoClose,\n onClick = props.onClick,\n type = props.type,\n hideProgressBar = props.hideProgressBar,\n closeToast = props.closeToast,\n Transition = props.transition,\n position = props.position,\n className = props.className,\n style = props.style,\n bodyClassName = props.bodyClassName,\n bodyStyle = props.bodyStyle,\n progressClassName = props.progressClassName,\n progressStyle = props.progressStyle,\n updateId = props.updateId,\n role = props.role,\n progress = props.progress,\n rtl = props.rtl,\n toastId = props.toastId,\n deleteToast = props.deleteToast,\n isIn = props.isIn,\n isLoading = props.isLoading,\n icon = props.icon,\n theme = props.theme;\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-theme--\" + theme, \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast--\" + type, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast--rtl\"] = rtl, _cx));\n var cssClasses = isFn(className) ? className({\n rtl: rtl,\n position: position,\n type: type,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, className);\n var isProgressControlled = !!progress;\n var maybeIcon = Icons[type];\n var iconProps = {\n theme: theme,\n type: type\n };\n var Icon = maybeIcon && maybeIcon(iconProps);\n\n if (icon === false) {\n Icon = void 0;\n } else if (isFn(icon)) {\n Icon = icon(iconProps);\n } else if (isValidElement(icon)) {\n Icon = cloneElement(icon, iconProps);\n } else if (isStr(icon)) {\n Icon = icon;\n } else if (isLoading) {\n Icon = Icons.spinner();\n }\n\n function renderCloseButton(closeButton) {\n if (!closeButton) return;\n var props = {\n closeToast: closeToast,\n type: type,\n theme: theme\n };\n if (isFn(closeButton)) return closeButton(props);\n if (isValidElement(closeButton)) return cloneElement(closeButton, props);\n }\n\n return createElement(Transition, {\n isIn: isIn,\n done: deleteToast,\n position: position,\n preventExitTransition: preventExitTransition,\n nodeRef: toastRef\n }, createElement(\"div\", Object.assign({\n id: toastId,\n onClick: onClick,\n className: cssClasses\n }, eventHandlers, {\n style: style,\n ref: toastRef\n }), createElement(\"div\", Object.assign({}, isIn && {\n role: role\n }, {\n className: isFn(bodyClassName) ? bodyClassName({\n type: type\n }) : cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-body\", bodyClassName),\n style: bodyStyle\n }), Icon && createElement(\"div\", {\n className: cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-icon\", (_cx2 = {}, _cx2[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate-icon \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__zoom-enter\"] = !isLoading, _cx2))\n }, Icon), createElement(\"div\", null, children)), renderCloseButton(closeButton), (autoClose || isProgressControlled) && createElement(ProgressBar, Object.assign({}, updateId && !isProgressControlled ? {\n key: \"pb-\" + updateId\n } : {}, {\n rtl: rtl,\n theme: theme,\n delay: autoClose,\n isRunning: isRunning,\n isIn: isIn,\n closeToast: closeToast,\n hide: hideProgressBar,\n type: type,\n style: progressStyle,\n className: progressClassName,\n controlledProgress: isProgressControlled,\n progress: progress\n }))));\n};\n\nvar Bounce = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__bounce-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__bounce-exit\",\n appendPosition: true\n});\nvar Slide = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__slide-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__slide-exit\",\n appendPosition: true\n});\nvar Zoom = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__zoom-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__zoom-exit\"\n});\nvar Flip = /*#__PURE__*/cssTransition({\n enter: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__flip-enter\",\n exit: \"Toastify\"\n /* CSS_NAMESPACE */\n + \"--animate \" + \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__flip-exit\"\n});\n\nvar ToastContainer = function ToastContainer(props) {\n var _useToastContainer = useToastContainer(props),\n getToastToRender = _useToastContainer.getToastToRender,\n containerRef = _useToastContainer.containerRef,\n isToastActive = _useToastContainer.isToastActive;\n\n var className = props.className,\n style = props.style,\n rtl = props.rtl,\n containerId = props.containerId;\n\n function getClassName(position) {\n var _cx;\n\n var defaultClassName = cx(\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container\", \"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container--\" + position, (_cx = {}, _cx[\"Toastify\"\n /* CSS_NAMESPACE */\n + \"__toast-container--rtl\"] = rtl, _cx));\n return isFn(className) ? className({\n position: position,\n rtl: rtl,\n defaultClassName: defaultClassName\n }) : cx(defaultClassName, parseClassName(className));\n }\n\n return createElement(\"div\", {\n ref: containerRef,\n className: \"Toastify\"\n /* CSS_NAMESPACE */\n ,\n id: containerId\n }, getToastToRender(function (position, toastList) {\n var containerStyle = !toastList.length ? _extends({}, style, {\n pointerEvents: 'none'\n }) : _extends({}, style);\n return createElement(\"div\", {\n className: getClassName(position),\n style: containerStyle,\n key: \"container-\" + position\n }, toastList.map(function (_ref) {\n var content = _ref.content,\n toastProps = _ref.props;\n return createElement(Toast, Object.assign({}, toastProps, {\n isIn: isToastActive(toastProps.toastId),\n key: \"toast-\" + toastProps.key,\n closeButton: toastProps.closeButton === true ? CloseButton : toastProps.closeButton\n }), content);\n }));\n }));\n};\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: 80\n /* DRAGGABLE_PERCENT */\n ,\n draggableDirection: \"x\"\n /* X */\n ,\n role: 'alert',\n theme: 'light'\n};\n\nvar containers = /*#__PURE__*/new Map();\nvar latestInstance;\nvar containerDomNode;\nvar containerConfig;\nvar queue = [];\nvar lazy = false;\n/**\r\n * Get the toast by id, given it's in the DOM, otherwise returns null\r\n */\n\nfunction getToast(toastId, _ref) {\n var containerId = _ref.containerId;\n var container = containers.get(containerId || latestInstance);\n if (!container) return null;\n return container.getToast(toastId);\n}\n/**\r\n * Generate a random toastId\r\n */\n\n\nfunction generateToastId() {\n return Math.random().toString(36).substring(2, 9);\n}\n/**\r\n * Generate a toastId or use the one provided\r\n */\n\n\nfunction getToastId(options) {\n if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n/**\r\n * If the container is not mounted, the toast is enqueued and\r\n * the container lazy mounted\r\n */\n\n\nfunction dispatchToast(content, options) {\n if (containers.size > 0) {\n eventManager.emit(0\n /* Show */\n , content, options);\n } else {\n queue.push({\n content: content,\n options: options\n });\n\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(createElement(ToastContainer, Object.assign({}, containerConfig)), containerDomNode);\n }\n }\n\n return options.toastId;\n}\n/**\r\n * Merge provided options with the defaults settings and generate the toastId\r\n */\n\n\nfunction mergeOptions(type, options) {\n return _extends({}, options, {\n type: options && options.type || type,\n toastId: getToastId(options)\n });\n}\n\nfunction createToastByType(type) {\n return function (content, options) {\n return dispatchToast(content, mergeOptions(type, options));\n };\n}\n\nfunction toast(content, options) {\n return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n}\n\ntoast.loading = function (content, options) {\n return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false\n }, options)));\n};\n\nfunction handlePromise(promise, _ref2, options) {\n var pending = _ref2.pending,\n error = _ref2.error,\n success = _ref2.success;\n var id;\n\n if (pending) {\n id = isStr(pending) ? toast.loading(pending, options) : toast.loading(pending.render, _extends({}, options, pending));\n }\n\n var resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null\n };\n\n var resolver = function resolver(type, input, result) {\n // Remove the toast if the input has not been provided. This prevents the toast from hanging\n // in the pending state if a success/error toast has not been provided.\n if (input == null) {\n toast.dismiss(id);\n return;\n }\n\n var baseParams = _extends({\n type: type\n }, resetParams, options, {\n data: result\n });\n\n var params = isStr(input) ? {\n render: input\n } : input; // if the id is set we know that it's an update\n\n if (id) {\n toast.update(id, _extends({}, baseParams, params));\n } else {\n // using toast.promise without loading\n toast(params.render, _extends({}, baseParams, params));\n }\n\n return result;\n };\n\n var p = isFn(promise) ? promise() : promise; //call the resolvers only when needed\n\n p.then(function (result) {\n return resolver('success', success, result);\n })[\"catch\"](function (err) {\n return resolver('error', error, err);\n });\n return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = /*#__PURE__*/createToastByType(TYPE.SUCCESS);\ntoast.info = /*#__PURE__*/createToastByType(TYPE.INFO);\ntoast.error = /*#__PURE__*/createToastByType(TYPE.ERROR);\ntoast.warning = /*#__PURE__*/createToastByType(TYPE.WARNING);\ntoast.warn = toast.warning;\n\ntoast.dark = function (content, options) {\n return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({\n theme: 'dark'\n }, options)));\n};\n/**\r\n * Remove toast programmaticaly\r\n */\n\n\ntoast.dismiss = function (id) {\n return eventManager.emit(1\n /* Clear */\n , id);\n};\n/**\r\n * Clear waiting queue when limit is used\r\n */\n\n\ntoast.clearWaitingQueue = function (params) {\n if (params === void 0) {\n params = {};\n }\n\n return eventManager.emit(5\n /* ClearWaitingQueue */\n , params);\n};\n/**\r\n * return true if one container is displaying the toast\r\n */\n\n\ntoast.isActive = function (id) {\n var isToastActive = false;\n containers.forEach(function (container) {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n return isToastActive;\n};\n\ntoast.update = function (toastId, options) {\n if (options === void 0) {\n options = {};\n }\n\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(function () {\n var toast = getToast(toastId, options);\n\n if (toast) {\n var oldOptions = toast.props,\n oldContent = toast.content;\n\n var nextOptions = _extends({}, oldOptions, options, {\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n });\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n var content = nextOptions.render || oldContent;\n delete nextOptions.render;\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n/**\r\n * Used for controlled progress bar.\r\n */\n\n\ntoast.done = function (id) {\n toast.update(id, {\n progress: 1\n });\n};\n/**\r\n * @deprecated\r\n * API will change in the next major release\r\n *\r\n * Track changes. The callback get the number of toast displayed\r\n */\n\n\ntoast.onChange = function (callback) {\n if (isFn(callback)) {\n eventManager.on(4\n /* Change */\n , callback);\n }\n\n return function () {\n isFn(callback) && eventManager.off(4\n /* Change */\n , callback);\n };\n};\n/**\r\n * @deprecated\r\n * will be removed in the next major release\r\n *\r\n * Configure the ToastContainer when lazy mounted\r\n * Prefer ToastContainer over this one\r\n */\n\n\ntoast.configure = function (config) {\n if (config === void 0) {\n config = {};\n }\n\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n/**\r\n * Wait until the ToastContainer is mounted to dispatch the toast\r\n * and attach isActive method\r\n */\n\neventManager.on(2\n/* DidMount */\n, function (containerInstance) {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n queue.forEach(function (item) {\n eventManager.emit(0\n /* Show */\n , item.content, item.options);\n });\n queue = [];\n}).on(3\n/* WillUnmount */\n, function (containerInstance) {\n containers[\"delete\"](containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager.off(0\n /* Show */\n ).off(1\n /* Clear */\n ).off(5\n /* ClearWaitingQueue */\n );\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n});\n\nexport { Bounce, Flip, Icons, Slide, ToastContainer, Zoom, collapseToast, cssTransition, toast, useToast, useToastContainer };\n//# sourceMappingURL=react-toastify.esm.js.map\n","'use strict'\n\nvar syntax = require('micromark-extension-gfm')\nvar fromMarkdown = require('mdast-util-gfm/from-markdown')\nvar toMarkdown = require('mdast-util-gfm/to-markdown')\n\nvar warningIssued\n\nmodule.exports = gfm\n\nfunction gfm(options) {\n var data = this.data()\n\n /* istanbul ignore next - old remark. */\n if (\n !warningIssued &&\n ((this.Parser &&\n this.Parser.prototype &&\n this.Parser.prototype.blockTokenizers) ||\n (this.Compiler &&\n this.Compiler.prototype &&\n this.Compiler.prototype.visitors))\n ) {\n warningIssued = true\n console.warn(\n '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin'\n )\n }\n\n add('micromarkExtensions', syntax(options))\n add('fromMarkdownExtensions', fromMarkdown)\n add('toMarkdownExtensions', toMarkdown(options))\n\n function add(field, value) {\n /* istanbul ignore if - other extensions. */\n if (data[field]) data[field].push(value)\n else data[field] = [value]\n }\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _invoke from \"lodash-es/invoke\";\nimport { handleRef, Ref } from '@fluentui/react-component-ref';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport { customPropTypes, isBrowser } from '../../lib';\n\n/**\n * An inner component that allows you to render children outside their parent.\n */\nvar PortalInner = /*#__PURE__*/function (_Component) {\n _inheritsLoose(PortalInner, _Component);\n\n function PortalInner() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _this.handleRef = function (c) {\n handleRef(_this.props.innerRef, c);\n };\n\n return _this;\n }\n\n var _proto = PortalInner.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n _invoke(this.props, 'onMount', null, this.props);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n _invoke(this.props, 'onUnmount', null, this.props);\n };\n\n _proto.render = function render() {\n if (!isBrowser()) return null;\n var _this$props = this.props,\n children = _this$props.children,\n _this$props$mountNode = _this$props.mountNode,\n mountNode = _this$props$mountNode === void 0 ? document.body : _this$props$mountNode;\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(Ref, {\n innerRef: this.handleRef\n }, children), mountNode);\n };\n\n return PortalInner;\n}(Component);\n\nPortalInner.handledProps = [\"children\", \"innerRef\", \"mountNode\", \"onMount\", \"onUnmount\"];\nPortalInner.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Primary content. */\n children: PropTypes.node.isRequired,\n\n /** Called with a ref to the inner node. */\n innerRef: customPropTypes.ref,\n\n /** The node where the portal should mount. */\n mountNode: PropTypes.any,\n\n /**\n * Called when the portal is mounted on the DOM\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func\n} : {};\nexport default PortalInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _invoke from \"lodash-es/invoke\";\nimport EventStack from '@semantic-ui-react/event-stack';\nimport { handleRef, Ref } from '@fluentui/react-component-ref';\nimport keyboardKey from 'keyboard-key';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { ModernAutoControlledComponent as Component, customPropTypes, doesNodeContainClick } from '../../lib';\nimport validateTrigger from './utils/validateTrigger';\nimport PortalInner from './PortalInner';\n\n/**\n * A component that allows you to render children outside their parent.\n * @see Modal\n * @see Popup\n * @see Dimmer\n * @see Confirm\n */\nvar Portal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Portal, _Component);\n\n function Portal() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.contentRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.latestDocumentMouseDownEvent = null;\n\n _this.handleDocumentMouseDown = function (e) {\n _this.latestDocumentMouseDownEvent = e;\n };\n\n _this.handleDocumentClick = function (e) {\n var closeOnDocumentClick = _this.props.closeOnDocumentClick;\n var currentMouseDownEvent = _this.latestDocumentMouseDownEvent;\n _this.latestDocumentMouseDownEvent = null;\n\n if (!_this.contentRef.current || // no portal\n doesNodeContainClick(_this.triggerRef.current, e) || // event happened in trigger (delegate to trigger handlers)\n currentMouseDownEvent && doesNodeContainClick(_this.contentRef.current, currentMouseDownEvent) || // event originated in the portal but was ended outside\n doesNodeContainClick(_this.contentRef.current, e) // event happened in the portal\n ) {\n return;\n } // ignore the click\n\n\n if (closeOnDocumentClick) {\n _this.close(e);\n }\n };\n\n _this.handleEscape = function (e) {\n if (!_this.props.closeOnEscape) return;\n if (keyboardKey.getCode(e) !== keyboardKey.Escape) return;\n\n _this.close(e);\n };\n\n _this.handlePortalMouseLeave = function (e) {\n var _this$props = _this.props,\n closeOnPortalMouseLeave = _this$props.closeOnPortalMouseLeave,\n mouseLeaveDelay = _this$props.mouseLeaveDelay;\n if (!closeOnPortalMouseLeave) return; // Do not close the portal when 'mouseleave' is triggered by children\n\n if (e.target !== _this.contentRef.current) return;\n _this.mouseLeaveTimer = _this.closeWithTimeout(e, mouseLeaveDelay);\n };\n\n _this.handlePortalMouseEnter = function () {\n // In order to enable mousing from the trigger to the portal, we need to\n // clear the mouseleave timer that was set when leaving the trigger.\n var closeOnPortalMouseLeave = _this.props.closeOnPortalMouseLeave;\n if (!closeOnPortalMouseLeave) return;\n clearTimeout(_this.mouseLeaveTimer);\n };\n\n _this.handleTriggerBlur = function (e) {\n var _this$props2 = _this.props,\n trigger = _this$props2.trigger,\n closeOnTriggerBlur = _this$props2.closeOnTriggerBlur; // Call original event handler\n\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onBlur', e].concat(rest)); // IE 11 doesn't work with relatedTarget in blur events\n\n\n var target = e.relatedTarget || document.activeElement; // do not close if focus is given to the portal\n\n var didFocusPortal = _invoke(_this.contentRef.current, 'contains', target);\n\n if (!closeOnTriggerBlur || didFocusPortal) return;\n\n _this.close(e);\n };\n\n _this.handleTriggerClick = function (e) {\n var _this$props3 = _this.props,\n trigger = _this$props3.trigger,\n closeOnTriggerClick = _this$props3.closeOnTriggerClick,\n openOnTriggerClick = _this$props3.openOnTriggerClick;\n var open = _this.state.open; // Call original event handler\n\n for (var _len3 = arguments.length, rest = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n rest[_key3 - 1] = arguments[_key3];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onClick', e].concat(rest));\n\n if (open && closeOnTriggerClick) {\n _this.close(e);\n } else if (!open && openOnTriggerClick) {\n _this.open(e);\n }\n };\n\n _this.handleTriggerFocus = function (e) {\n var _this$props4 = _this.props,\n trigger = _this$props4.trigger,\n openOnTriggerFocus = _this$props4.openOnTriggerFocus; // Call original event handler\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onFocus', e].concat(rest));\n\n if (!openOnTriggerFocus) return;\n\n _this.open(e);\n };\n\n _this.handleTriggerMouseLeave = function (e) {\n clearTimeout(_this.mouseEnterTimer);\n var _this$props5 = _this.props,\n trigger = _this$props5.trigger,\n closeOnTriggerMouseLeave = _this$props5.closeOnTriggerMouseLeave,\n mouseLeaveDelay = _this$props5.mouseLeaveDelay; // Call original event handler\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onMouseLeave', e].concat(rest));\n\n if (!closeOnTriggerMouseLeave) return;\n _this.mouseLeaveTimer = _this.closeWithTimeout(e, mouseLeaveDelay);\n };\n\n _this.handleTriggerMouseEnter = function (e) {\n clearTimeout(_this.mouseLeaveTimer);\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n mouseEnterDelay = _this$props6.mouseEnterDelay,\n openOnTriggerMouseEnter = _this$props6.openOnTriggerMouseEnter; // Call original event handler\n\n for (var _len6 = arguments.length, rest = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n rest[_key6 - 1] = arguments[_key6];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onMouseEnter', e].concat(rest));\n\n if (!openOnTriggerMouseEnter) return;\n _this.mouseEnterTimer = _this.openWithTimeout(e, mouseEnterDelay);\n };\n\n _this.open = function (e) {\n _invoke(_this.props, 'onOpen', e, _extends({}, _this.props, {\n open: true\n }));\n\n _this.setState({\n open: true\n });\n };\n\n _this.openWithTimeout = function (e, delay) {\n // React wipes the entire event object and suggests using e.persist() if\n // you need the event for async access. However, even with e.persist\n // certain required props (e.g. currentTarget) are null so we're forced to clone.\n var eventClone = _extends({}, e);\n\n return setTimeout(function () {\n return _this.open(eventClone);\n }, delay || 0);\n };\n\n _this.close = function (e) {\n _this.setState({\n open: false\n });\n\n _invoke(_this.props, 'onClose', e, _extends({}, _this.props, {\n open: false\n }));\n };\n\n _this.closeWithTimeout = function (e, delay) {\n // React wipes the entire event object and suggests using e.persist() if\n // you need the event for async access. However, even with e.persist\n // certain required props (e.g. currentTarget) are null so we're forced to clone.\n var eventClone = _extends({}, e);\n\n return setTimeout(function () {\n return _this.close(eventClone);\n }, delay || 0);\n };\n\n _this.handleMount = function () {\n _invoke(_this.props, 'onMount', null, _this.props);\n };\n\n _this.handleUnmount = function () {\n _invoke(_this.props, 'onUnmount', null, _this.props);\n };\n\n _this.handleTriggerRef = function (c) {\n _this.triggerRef.current = c;\n handleRef(_this.props.triggerRef, c);\n };\n\n return _this;\n }\n\n var _proto = Portal.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Clean up timers\n clearTimeout(this.mouseEnterTimer);\n clearTimeout(this.mouseLeaveTimer);\n } // ----------------------------------------\n // Document Event Handlers\n // ----------------------------------------\n ;\n\n _proto.render = function render() {\n var _this$props7 = this.props,\n children = _this$props7.children,\n eventPool = _this$props7.eventPool,\n mountNode = _this$props7.mountNode,\n trigger = _this$props7.trigger;\n var open = this.state.open;\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== 'production') {\n validateTrigger(trigger);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, open && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PortalInner, {\n innerRef: this.contentRef,\n mountNode: mountNode,\n onMount: this.handleMount,\n onUnmount: this.handleUnmount\n }, children), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mouseleave\",\n on: this.handlePortalMouseLeave,\n pool: eventPool,\n target: this.contentRef\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mouseenter\",\n on: this.handlePortalMouseEnter,\n pool: eventPool,\n target: this.contentRef\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mousedown\",\n on: this.handleDocumentMouseDown,\n pool: eventPool\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"click\",\n on: this.handleDocumentClick,\n pool: eventPool\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"keydown\",\n on: this.handleEscape,\n pool: eventPool\n })), trigger && /*#__PURE__*/React.createElement(Ref, {\n innerRef: this.handleTriggerRef\n }, /*#__PURE__*/React.cloneElement(trigger, {\n onBlur: this.handleTriggerBlur,\n onClick: this.handleTriggerClick,\n onFocus: this.handleTriggerFocus,\n onMouseLeave: this.handleTriggerMouseLeave,\n onMouseEnter: this.handleTriggerMouseEnter\n })));\n };\n\n return Portal;\n}(Component);\n\nPortal.handledProps = [\"children\", \"closeOnDocumentClick\", \"closeOnEscape\", \"closeOnPortalMouseLeave\", \"closeOnTriggerBlur\", \"closeOnTriggerClick\", \"closeOnTriggerMouseLeave\", \"defaultOpen\", \"eventPool\", \"mountNode\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"onClose\", \"onMount\", \"onOpen\", \"onUnmount\", \"open\", \"openOnTriggerClick\", \"openOnTriggerFocus\", \"openOnTriggerMouseEnter\", \"trigger\", \"triggerRef\"];\nPortal.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Primary content. */\n children: PropTypes.node.isRequired,\n\n /** Controls whether or not the portal should close when the document is clicked. */\n closeOnDocumentClick: PropTypes.bool,\n\n /** Controls whether or not the portal should close when escape is pressed is displayed. */\n closeOnEscape: PropTypes.bool,\n\n /**\n * Controls whether or not the portal should close when mousing out of the portal.\n * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the\n * gap from the trigger to the portal.\n */\n closeOnPortalMouseLeave: PropTypes.bool,\n\n /** Controls whether or not the portal should close on blur of the trigger. */\n closeOnTriggerBlur: PropTypes.bool,\n\n /** Controls whether or not the portal should close on click of the trigger. */\n closeOnTriggerClick: PropTypes.bool,\n\n /** Controls whether or not the portal should close when mousing out of the trigger. */\n closeOnTriggerMouseLeave: PropTypes.bool,\n\n /** Initial value of open. */\n defaultOpen: PropTypes.bool,\n\n /** Event pool namespace that is used to handle component events */\n eventPool: PropTypes.string,\n\n /** The node where the portal should mount. */\n mountNode: PropTypes.any,\n\n /** Milliseconds to wait before opening on mouse over */\n mouseEnterDelay: PropTypes.number,\n\n /** Milliseconds to wait before closing on mouse leave */\n mouseLeaveDelay: PropTypes.number,\n\n /**\n * Called when a close event happens\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onClose: PropTypes.func,\n\n /**\n * Called when the portal is mounted on the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when an open event happens\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onOpen: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func,\n\n /** Controls whether or not the portal is displayed. */\n open: PropTypes.bool,\n\n /** Controls whether or not the portal should open when the trigger is clicked. */\n openOnTriggerClick: PropTypes.bool,\n\n /** Controls whether or not the portal should open on focus of the trigger. */\n openOnTriggerFocus: PropTypes.bool,\n\n /** Controls whether or not the portal should open when mousing over the trigger. */\n openOnTriggerMouseEnter: PropTypes.bool,\n\n /** Element to be rendered in-place where the portal is defined. */\n trigger: PropTypes.node,\n\n /** Called with a ref to the trigger node. */\n triggerRef: customPropTypes.ref\n} : {};\nPortal.defaultProps = {\n closeOnDocumentClick: true,\n closeOnEscape: true,\n eventPool: 'default',\n openOnTriggerClick: true\n};\nPortal.autoControlledProps = ['open'];\nPortal.Inner = PortalInner;\nexport default Portal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _without from \"lodash-es/without\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, customPropTypes, getElementType, getUnhandledProps, SUI } from '../../lib';\n/**\n * Several icons can be used together as a group.\n */\n\nfunction IconGroup(props) {\n var children = props.children,\n className = props.className,\n content = props.content,\n size = props.size;\n var classes = cx(size, 'icons', className);\n var rest = getUnhandledProps(IconGroup, props);\n var ElementType = getElementType(IconGroup, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\n\nIconGroup.handledProps = [\"as\", \"children\", \"className\", \"content\", \"size\"];\nIconGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand,\n\n /** Size of the icon group. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium'))\n} : {};\nIconGroup.defaultProps = {\n as: 'i'\n};\nexport default IconGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _without from \"lodash-es/without\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isNil from \"lodash-es/isNil\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport { createShorthandFactory, customPropTypes, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey, useValueAndKey } from '../../lib';\nimport IconGroup from './IconGroup';\n/**\n * An icon is a glyph used to represent something else.\n * @see Image\n */\n\nvar Icon = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Icon, _PureComponent);\n\n function Icon() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n\n _this.handleClick = function (e) {\n var disabled = _this.props.disabled;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n _invoke(_this.props, 'onClick', e, _this.props);\n };\n\n return _this;\n }\n\n var _proto = Icon.prototype;\n\n _proto.getIconAriaOptions = function getIconAriaOptions() {\n var ariaOptions = {};\n var _this$props = this.props,\n ariaLabel = _this$props['aria-label'],\n ariaHidden = _this$props['aria-hidden'];\n\n if (_isNil(ariaLabel)) {\n ariaOptions['aria-hidden'] = 'true';\n } else {\n ariaOptions['aria-label'] = ariaLabel;\n }\n\n if (!_isNil(ariaHidden)) {\n ariaOptions['aria-hidden'] = ariaHidden;\n }\n\n return ariaOptions;\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n bordered = _this$props2.bordered,\n circular = _this$props2.circular,\n className = _this$props2.className,\n color = _this$props2.color,\n corner = _this$props2.corner,\n disabled = _this$props2.disabled,\n fitted = _this$props2.fitted,\n flipped = _this$props2.flipped,\n inverted = _this$props2.inverted,\n link = _this$props2.link,\n loading = _this$props2.loading,\n name = _this$props2.name,\n rotated = _this$props2.rotated,\n size = _this$props2.size;\n var classes = cx(color, name, size, useKeyOnly(bordered, 'bordered'), useKeyOnly(circular, 'circular'), useKeyOnly(disabled, 'disabled'), useKeyOnly(fitted, 'fitted'), useKeyOnly(inverted, 'inverted'), useKeyOnly(link, 'link'), useKeyOnly(loading, 'loading'), useKeyOrValueAndKey(corner, 'corner'), useValueAndKey(flipped, 'flipped'), useValueAndKey(rotated, 'rotated'), 'icon', className);\n var rest = getUnhandledProps(Icon, this.props);\n var ElementType = getElementType(Icon, this.props);\n var ariaOptions = this.getIconAriaOptions();\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, ariaOptions, {\n className: classes,\n onClick: this.handleClick\n }));\n };\n\n return Icon;\n}(PureComponent);\n\nIcon.handledProps = [\"aria-hidden\", \"aria-label\", \"as\", \"bordered\", \"circular\", \"className\", \"color\", \"corner\", \"disabled\", \"fitted\", \"flipped\", \"inverted\", \"link\", \"loading\", \"name\", \"rotated\", \"size\"];\nIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Formatted to appear bordered. */\n bordered: PropTypes.bool,\n\n /** Icon can formatted to appear circular. */\n circular: PropTypes.bool,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Color of the icon. */\n color: PropTypes.oneOf(SUI.COLORS),\n\n /** Icons can display a smaller corner icon. */\n corner: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top left', 'top right', 'bottom left', 'bottom right'])]),\n\n /** Show that the icon is inactive. */\n disabled: PropTypes.bool,\n\n /** Fitted, without space to left or right of Icon. */\n fitted: PropTypes.bool,\n\n /** Icon can be flipped. */\n flipped: PropTypes.oneOf(['horizontally', 'vertically']),\n\n /** Formatted to have its colors inverted for contrast. */\n inverted: PropTypes.bool,\n\n /** Icon can be formatted as a link. */\n link: PropTypes.bool,\n\n /** Icon can be used as a simple loader. */\n loading: PropTypes.bool,\n\n /** Name of the icon. */\n name: customPropTypes.suggest(SUI.ALL_ICONS_IN_ALL_CONTEXTS),\n\n /** Icon can rotated. */\n rotated: PropTypes.oneOf(['clockwise', 'counterclockwise']),\n\n /** Size of the icon. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium')),\n\n /** Icon can have an aria label. */\n 'aria-hidden': PropTypes.string,\n\n /** Icon can have an aria label. */\n 'aria-label': PropTypes.string\n} : {};\nIcon.defaultProps = {\n as: 'i'\n};\nIcon.Group = IconGroup;\nIcon.create = createShorthandFactory(Icon, function (value) {\n return {\n name: value\n };\n});\nexport default Icon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _isUndefined from \"lodash-es/isUndefined\";\nimport _startsWith from \"lodash-es/startsWith\";\nimport _filter from \"lodash-es/filter\";\nimport _isEmpty from \"lodash-es/isEmpty\";\nimport _keys from \"lodash-es/keys\";\nimport _intersection from \"lodash-es/intersection\";\nimport _has from \"lodash-es/has\";\nimport _each from \"lodash-es/each\";\nimport _invoke from \"lodash-es/invoke\";\nimport React from 'react';\n\nvar getDefaultPropName = function getDefaultPropName(prop) {\n return \"default\" + (prop[0].toUpperCase() + prop.slice(1));\n};\n/**\n * Return the auto controlled state value for a give prop. The initial value is chosen in this order:\n * - regular props\n * - then, default props\n * - then, initial state\n * - then, `checked` defaults to false\n * - then, `value` defaults to '' or [] if props.multiple\n * - else, undefined\n *\n * @param {string} propName A prop name\n * @param {object} [props] A props object\n * @param {object} [state] A state object\n * @param {boolean} [includeDefaults=false] Whether or not to heed the default props or initial state\n */\n\n\nvar getAutoControlledStateValue = function getAutoControlledStateValue(propName, props, state, includeDefaults) {\n if (includeDefaults === void 0) {\n includeDefaults = false;\n }\n\n // regular props\n var propValue = props[propName];\n if (propValue !== undefined) return propValue;\n\n if (includeDefaults) {\n // defaultProps\n var defaultProp = props[getDefaultPropName(propName)];\n if (defaultProp !== undefined) return defaultProp; // initial state - state may be null or undefined\n\n if (state) {\n var initialState = state[propName];\n if (initialState !== undefined) return initialState;\n }\n } // React doesn't allow changing from uncontrolled to controlled components,\n // default checked/value if they were not present.\n\n\n if (propName === 'checked') return false;\n if (propName === 'value') return props.multiple ? [] : ''; // otherwise, undefined\n};\n\nvar ModernAutoControlledComponent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ModernAutoControlledComponent, _React$Component);\n\n function ModernAutoControlledComponent() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n var _this$constructor = _this.constructor,\n autoControlledProps = _this$constructor.autoControlledProps,\n getAutoControlledStateFromProps = _this$constructor.getAutoControlledStateFromProps;\n var state = _invoke(_assertThisInitialized(_this), 'getInitialAutoControlledState', _this.props) || {};\n\n if (process.env.NODE_ENV !== 'production') {\n var _this$constructor2 = _this.constructor,\n defaultProps = _this$constructor2.defaultProps,\n name = _this$constructor2.name,\n propTypes = _this$constructor2.propTypes,\n getDerivedStateFromProps = _this$constructor2.getDerivedStateFromProps; // require usage of getAutoControlledStateFromProps()\n\n if (getDerivedStateFromProps !== ModernAutoControlledComponent.getDerivedStateFromProps) {\n /* eslint-disable-next-line no-console */\n console.error(\"Auto controlled \" + name + \" must specify a static getAutoControlledStateFromProps() instead of getDerivedStateFromProps().\");\n } // require propTypes\n\n\n _each(autoControlledProps, function (prop) {\n var defaultProp = getDefaultPropName(prop); // regular prop\n\n if (!_has(propTypes, defaultProp)) {\n console.error(name + \" is missing \\\"\" + defaultProp + \"\\\" propTypes validation for auto controlled prop \\\"\" + prop + \"\\\".\");\n } // its default prop\n\n\n if (!_has(propTypes, prop)) {\n console.error(name + \" is missing propTypes validation for auto controlled prop \\\"\" + prop + \"\\\".\");\n }\n }); // prevent autoControlledProps in defaultProps\n //\n // When setting state, auto controlled props values always win (so the parent can manage them).\n // It is not reasonable to decipher the difference between props from the parent and defaultProps.\n // Allowing defaultProps results in trySetState always deferring to the defaultProp value.\n // Auto controlled props also listed in defaultProps can never be updated.\n //\n // To set defaults for an AutoControlled prop, you can set the initial state in the\n // constructor or by using an ES7 property initializer:\n // https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers\n\n\n var illegalDefaults = _intersection(autoControlledProps, _keys(defaultProps));\n\n if (!_isEmpty(illegalDefaults)) {\n console.error(['Do not set defaultProps for autoControlledProps. You can set defaults by', 'setting state in the constructor or using an ES7 property initializer', '(https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers)', \"See \" + name + \" props: \\\"\" + illegalDefaults + \"\\\".\"].join(' '));\n } // prevent listing defaultProps in autoControlledProps\n //\n // Default props are automatically handled.\n // Listing defaults in autoControlledProps would result in allowing defaultDefaultValue props.\n\n\n var illegalAutoControlled = _filter(autoControlledProps, function (prop) {\n return _startsWith(prop, 'default');\n });\n\n if (!_isEmpty(illegalAutoControlled)) {\n console.error(['Do not add default props to autoControlledProps.', 'Default props are automatically handled.', \"See \" + name + \" autoControlledProps: \\\"\" + illegalAutoControlled + \"\\\".\"].join(' '));\n }\n } // Auto controlled props are copied to state.\n // Set initial state by copying auto controlled props to state.\n // Also look for the default prop for any auto controlled props (foo => defaultFoo)\n // so we can set initial values from defaults.\n\n\n var initialAutoControlledState = autoControlledProps.reduce(function (acc, prop) {\n acc[prop] = getAutoControlledStateValue(prop, _this.props, state, true);\n\n if (process.env.NODE_ENV !== 'production') {\n var defaultPropName = getDefaultPropName(prop);\n var _name = _this.constructor.name; // prevent defaultFoo={} along side foo={}\n\n if (!_isUndefined(_this.props[defaultPropName]) && !_isUndefined(_this.props[prop])) {\n console.error(_name + \" prop \\\"\" + prop + \"\\\" is auto controlled. Specify either \" + defaultPropName + \" or \" + prop + \", but not both.\");\n }\n }\n\n return acc;\n }, {});\n _this.state = _extends({}, state, initialAutoControlledState, {\n autoControlledProps: autoControlledProps,\n getAutoControlledStateFromProps: getAutoControlledStateFromProps\n });\n return _this;\n }\n\n ModernAutoControlledComponent.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var autoControlledProps = state.autoControlledProps,\n getAutoControlledStateFromProps = state.getAutoControlledStateFromProps; // Solve the next state for autoControlledProps\n\n var newStateFromProps = autoControlledProps.reduce(function (acc, prop) {\n var isNextDefined = !_isUndefined(props[prop]); // if next is defined then use its value\n\n if (isNextDefined) acc[prop] = props[prop];\n return acc;\n }, {}); // Due to the inheritance of the AutoControlledComponent we should call its\n // getAutoControlledStateFromProps() and merge it with the existing state\n\n if (getAutoControlledStateFromProps) {\n var computedState = getAutoControlledStateFromProps(props, _extends({}, state, newStateFromProps), state); // We should follow the idea of getDerivedStateFromProps() and return only modified state\n\n return _extends({}, newStateFromProps, computedState);\n }\n\n return newStateFromProps;\n }\n /**\n * Override this method to use getDerivedStateFromProps() in child components.\n */\n ;\n\n ModernAutoControlledComponent.getAutoControlledStateFromProps = function getAutoControlledStateFromProps() {\n return null;\n };\n\n return ModernAutoControlledComponent;\n}(React.Component);\n\nexport { ModernAutoControlledComponent as default };","import _find from \"lodash-es/find\";\nimport _some from \"lodash-es/some\";\nimport { Children } from 'react';\n/**\n * Determine if child by type exists in children.\n * @param {Object} children The children prop of a component.\n * @param {string|Function} type An html tag name string or React component.\n * @returns {Boolean}\n */\n\nexport var someByType = function someByType(children, type) {\n return _some(Children.toArray(children), {\n type: type\n });\n};\n/**\n * Find child by type.\n * @param {Object} children The children prop of a component.\n * @param {string|Function} type An html tag name string or React component.\n * @returns {undefined|Object}\n */\n\nexport var findByType = function findByType(children, type) {\n return _find(Children.toArray(children), {\n type: type\n });\n};\n/**\n * Tests if children are nil in React and Preact.\n * @param {Object} children The children prop of a component.\n * @returns {Boolean}\n */\n\nexport var isNil = function isNil(children) {\n return children === null || children === undefined || Array.isArray(children) && children.length === 0;\n};","export var numberToWordMap = {\n 1: 'one',\n 2: 'two',\n 3: 'three',\n 4: 'four',\n 5: 'five',\n 6: 'six',\n 7: 'seven',\n 8: 'eight',\n 9: 'nine',\n 10: 'ten',\n 11: 'eleven',\n 12: 'twelve',\n 13: 'thirteen',\n 14: 'fourteen',\n 15: 'fifteen',\n 16: 'sixteen'\n};\n/**\n * Return the number word for numbers 1-16.\n * Returns strings or numbers as is if there is no corresponding word.\n * Returns an empty string if value is not a string or number.\n * @param {string|number} value The value to convert to a word.\n * @returns {string}\n */\n\nexport function numberToWord(value) {\n var type = typeof value;\n\n if (type === 'string' || type === 'number') {\n return numberToWordMap[value] || value;\n }\n\n return '';\n}","import { numberToWord } from './numberToWord';\n/*\n * There are 3 prop patterns used to build up the className for a component.\n * Each utility here is meant for use in a classnames() argument.\n *\n * There is no util for valueOnly() because it would simply return val.\n * Use the prop value inline instead.\n * <Label size='big' />\n * <div class=\"ui big label\"></div>\n */\n\n/**\n * Props where only the prop key is used in the className.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example\n * <Label tag />\n * <div class=\"ui tag label\"></div>\n */\n\nexport var useKeyOnly = function useKeyOnly(val, key) {\n return val && key;\n};\n/**\n * Props that require both a key and value to create a className.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example\n * <Label corner='left' />\n * <div class=\"ui left corner label\"></div>\n */\n\nexport var useValueAndKey = function useValueAndKey(val, key) {\n return val && val !== true && val + \" \" + key;\n};\n/**\n * Props whose key will be used in className, or value and key.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example Key Only\n * <Label pointing />\n * <div class=\"ui pointing label\"></div>\n *\n * @example Key and Value\n * <Label pointing='left' />\n * <div class=\"ui left pointing label\"></div>\n */\n\nexport var useKeyOrValueAndKey = function useKeyOrValueAndKey(val, key) {\n return val && (val === true ? key : val + \" \" + key);\n}; //\n// Prop to className exceptions\n//\n\n/**\n * The \"multiple\" prop implements control of visibility and reserved classes for Grid subcomponents.\n *\n * @param {*} val The value of the \"multiple\" prop\n * @param {*} key A props key\n *\n * @example\n * <Grid.Row only='mobile' />\n * <Grid.Row only='mobile tablet' />\n * <div class=\"mobile only row\"></div>\n * <div class=\"mobile only tablet only row\"></div>\n */\n\nexport var useMultipleProp = function useMultipleProp(val, key) {\n if (!val || val === true) return null;\n return val.replace('large screen', 'large-screen').replace(/ vertically/g, '-vertically').split(' ').map(function (prop) {\n return prop.replace('-', ' ') + \" \" + key;\n }).join(' ');\n};\n/**\n * The \"textAlign\" prop follows the useValueAndKey except when the value is \"justified'.\n * In this case, only the class \"justified\" is used, ignoring the \"aligned\" class.\n * @param {*} val The value of the \"textAlign\" prop\n *\n * @example\n * <Container textAlign='justified' />\n * <div class=\"ui justified container\"></div>\n *\n * @example\n * <Container textAlign='left' />\n * <div class=\"ui left aligned container\"></div>\n */\n\nexport var useTextAlignProp = function useTextAlignProp(val) {\n return val === 'justified' ? 'justified' : useValueAndKey(val, 'aligned');\n};\n/**\n * The \"verticalAlign\" prop follows the useValueAndKey.\n *\n * @param {*} val The value of the \"verticalAlign\" prop\n *\n * @example\n * <Grid verticalAlign='middle' />\n * <div class=\"ui middle aligned grid\"></div>\n */\n\nexport var useVerticalAlignProp = function useVerticalAlignProp(val) {\n return useValueAndKey(val, 'aligned');\n};\n/**\n * Create \"X\", \"X wide\" and \"equal width\" classNames.\n * \"X\" is a numberToWord value and \"wide\" is configurable.\n * @param {*} val The prop value\n * @param {string} [widthClass=''] The class\n * @param {boolean} [canEqual=false] Flag that indicates possibility of \"equal\" value\n *\n * @example\n * <Grid columns='equal' />\n * <div class=\"ui equal width grid\"></div>\n *\n * <Form widths='equal' />\n * <div class=\"ui equal width form\"></div>\n *\n * <FieldGroup widths='equal' />\n * <div class=\"equal width fields\"></div>\n *\n * @example\n * <Grid columns={4} />\n * <div class=\"ui four column grid\"></div>\n */\n\nexport var useWidthProp = function useWidthProp(val, widthClass, canEqual) {\n if (widthClass === void 0) {\n widthClass = '';\n }\n\n if (canEqual === void 0) {\n canEqual = false;\n }\n\n if (canEqual && val === 'equal') {\n return 'equal width';\n }\n\n var valType = typeof val;\n\n if ((valType === 'string' || valType === 'number') && widthClass) {\n return numberToWord(val) + \" \" + widthClass;\n }\n\n return numberToWord(val);\n};","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import _inRange from \"lodash-es/inRange\";\nimport _first from \"lodash-es/first\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isNil from \"lodash-es/isNil\";\nimport _some from \"lodash-es/some\";\n\n/**\n * Determines if a click's coordinates are within the bounds of a node.\n *\n * @see https://github.com/Semantic-Org/Semantic-UI-React/pull/2384\n *\n * @param {object} node - A DOM node.\n * @param {object} e - A SyntheticEvent or DOM Event.\n * @returns {boolean}\n */\nvar doesNodeContainClick = function doesNodeContainClick(node, e) {\n if (_some([e, node], _isNil)) return false; // if there is an e.target and it is in the document, use a simple node.contains() check\n\n if (e.target) {\n _invoke(e.target, 'setAttribute', 'data-suir-click-target', true);\n\n if (document.querySelector('[data-suir-click-target=true]')) {\n _invoke(e.target, 'removeAttribute', 'data-suir-click-target');\n\n return node.contains(e.target);\n }\n } // Below logic handles cases where the e.target is no longer in the document.\n // The result of the click likely has removed the e.target node.\n // Instead of node.contains(), we'll identify the click by X/Y position.\n // return early if the event properties aren't available\n // prevent measuring the node and repainting if we don't need to\n\n\n var clientX = e.clientX,\n clientY = e.clientY;\n if (_some([clientX, clientY], _isNil)) return false; // false if the node is not visible\n\n var clientRects = node.getClientRects(); // Heads Up!\n // getClientRects returns a DOMRectList, not an array nor a plain object\n // We explicitly avoid _.isEmpty and check .length to cover all possible shapes\n\n if (!node.offsetWidth || !node.offsetHeight || !clientRects || !clientRects.length) return false; // false if the node doesn't have a valid bounding rect\n\n var _first2 = _first(clientRects),\n top = _first2.top,\n bottom = _first2.bottom,\n left = _first2.left,\n right = _first2.right;\n\n if (_some([top, bottom, left, right], _isNil)) return false; // we add a small decimal to the upper bound just to make it inclusive\n // don't add an whole pixel (1) as the event/node values may be decimal sensitive\n\n return _inRange(clientY, top, bottom + 0.001) && _inRange(clientX, left, right + 0.001);\n};\n\nexport default doesNodeContainClick;","import { instance } from '@semantic-ui-react/event-stack';\nexport default instance;","import baseUniq from './_baseUniq.js';\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nexport default uniq;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _uniq from \"lodash-es/uniq\";\nimport _isArray from \"lodash-es/isArray\";\nimport _isPlainObject from \"lodash-es/isPlainObject\";\nimport _isFunction from \"lodash-es/isFunction\";\nimport _isNumber from \"lodash-es/isNumber\";\nimport _isString from \"lodash-es/isString\";\nimport _isBoolean from \"lodash-es/isBoolean\";\nimport _isNil from \"lodash-es/isNil\";\nimport cx from 'clsx';\nimport * as React from 'react';\nvar DEPRECATED_CALLS = {}; // ============================================================\n// Factories\n// ============================================================\n\n/**\n * A more robust React.createElement. It can create elements from primitive values.\n *\n * @param {function|string} Component A ReactClass or string\n * @param {function} mapValueToProps A function that maps a primitive value to the Component props\n * @param {string|object|function} val The value to create a ReactElement from\n * @param {Object} [options={}]\n * @param {object} [options.defaultProps={}] Default props object\n * @param {object|function} [options.overrideProps={}] Override props object or function (called with regular props)\n * @param {boolean} [options.autoGenerateKey=true] Whether or not automatic key generation is allowed\n * @returns {object|null}\n */\n\nexport function createShorthand(Component, mapValueToProps, val, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof Component !== 'function' && typeof Component !== 'string') {\n throw new Error('createShorthand() Component must be a string or function.');\n } // short circuit noop values\n\n\n if (_isNil(val) || _isBoolean(val)) {\n return null;\n }\n\n var valIsString = _isString(val);\n\n var valIsNumber = _isNumber(val);\n\n var valIsFunction = _isFunction(val);\n\n var valIsReactElement = /*#__PURE__*/React.isValidElement(val);\n\n var valIsPropsObject = _isPlainObject(val);\n\n var valIsPrimitiveValue = valIsString || valIsNumber || _isArray(val); // unhandled type return null\n\n /* eslint-disable no-console */\n\n\n if (!valIsFunction && !valIsReactElement && !valIsPropsObject && !valIsPrimitiveValue) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['Shorthand value must be a string|number|array|object|ReactElement|function.', ' Use null|undefined|boolean for none', \" Received \" + typeof val + \".\"].join(''));\n }\n\n return null;\n }\n /* eslint-enable no-console */\n // ----------------------------------------\n // Build up props\n // ----------------------------------------\n\n\n var _options = options,\n _options$defaultProps = _options.defaultProps,\n defaultProps = _options$defaultProps === void 0 ? {} : _options$defaultProps; // User's props\n\n var usersProps = valIsReactElement && val.props || valIsPropsObject && val || valIsPrimitiveValue && mapValueToProps(val); // Override props\n\n var _options2 = options,\n _options2$overridePro = _options2.overrideProps,\n overrideProps = _options2$overridePro === void 0 ? {} : _options2$overridePro;\n overrideProps = _isFunction(overrideProps) ? overrideProps(_extends({}, defaultProps, usersProps)) : overrideProps; // Merge props\n\n /* eslint-disable react/prop-types */\n\n var props = _extends({}, defaultProps, usersProps, overrideProps); // Merge className\n\n\n if (defaultProps.className || overrideProps.className || usersProps.className) {\n var mergedClassesNames = cx(defaultProps.className, overrideProps.className, usersProps.className);\n props.className = _uniq(mergedClassesNames.split(' ')).join(' ');\n } // Merge style\n\n\n if (defaultProps.style || overrideProps.style || usersProps.style) {\n props.style = _extends({}, defaultProps.style, usersProps.style, overrideProps.style);\n } // ----------------------------------------\n // Get key\n // ----------------------------------------\n // Use key, childKey, or generate key\n\n\n if (_isNil(props.key)) {\n var childKey = props.childKey;\n var _options3 = options,\n _options3$autoGenerat = _options3.autoGenerateKey,\n autoGenerateKey = _options3$autoGenerat === void 0 ? true : _options3$autoGenerat;\n\n if (!_isNil(childKey)) {\n // apply and consume the childKey\n props.key = typeof childKey === 'function' ? childKey(props) : childKey;\n delete props.childKey;\n } else if (autoGenerateKey && (valIsString || valIsNumber)) {\n // use string/number shorthand values as the key\n props.key = val;\n }\n } // ----------------------------------------\n // Create Element\n // ----------------------------------------\n // Clone ReactElements\n\n\n if (valIsReactElement) {\n return /*#__PURE__*/React.cloneElement(val, props);\n }\n\n if (typeof props.children === 'function') {\n return props.children(Component, _extends({}, props, {\n children: undefined\n }));\n } // Create ReactElements from built up props\n\n\n if (valIsPrimitiveValue || valIsPropsObject) {\n return /*#__PURE__*/React.createElement(Component, props);\n } // Call functions with args similar to createElement()\n // TODO: V3 remove the implementation\n\n\n if (valIsFunction) {\n if (process.env.NODE_ENV !== 'production') {\n if (!DEPRECATED_CALLS[Component]) {\n DEPRECATED_CALLS[Component] = true; // eslint-disable-next-line no-console\n\n console.warn(\"Warning: There is a deprecated shorthand function usage for \\\"\" + Component + \"\\\". It is deprecated and will be removed in v3 release. Please follow our upgrade guide: https://github.com/Semantic-Org/Semantic-UI-React/pull/4029\");\n }\n }\n\n return val(Component, props, props.children);\n }\n /* eslint-enable react/prop-types */\n\n} // ============================================================\n// Factory Creators\n// ============================================================\n\n/**\n * Creates a `createShorthand` function that is waiting for a value and options.\n *\n * @param {function|string} Component A ReactClass or string\n * @param {function} mapValueToProps A function that maps a primitive value to the Component props\n * @returns {function} A shorthand factory function waiting for `val` and `defaultProps`.\n */\n\nexport function createShorthandFactory(Component, mapValueToProps) {\n if (typeof Component !== 'function' && typeof Component !== 'string') {\n throw new Error('createShorthandFactory() Component must be a string or function.');\n }\n\n return function (val, options) {\n return createShorthand(Component, mapValueToProps, val, options);\n };\n} // ============================================================\n// HTML Factories\n// ============================================================\n\nexport var createHTMLDivision = /* #__PURE__ */createShorthandFactory('div', function (val) {\n return {\n children: val\n };\n});\nexport var createHTMLIframe = /* #__PURE__ */createShorthandFactory('iframe', function (src) {\n return {\n src: src\n };\n});\nexport var createHTMLImage = /* #__PURE__ */createShorthandFactory('img', function (val) {\n return {\n src: val\n };\n});\nexport var createHTMLInput = /* #__PURE__ */createShorthandFactory('input', function (val) {\n return {\n type: val\n };\n});\nexport var createHTMLLabel = /* #__PURE__ */createShorthandFactory('label', function (val) {\n return {\n children: val\n };\n});\nexport var createHTMLParagraph = /* #__PURE__ */createShorthandFactory('p', function (val) {\n return {\n children: val\n };\n});","/**\n * Returns a createElement() type based on the props of the Component.\n * Useful for calculating what type a component should render as.\n *\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @param {function} [getDefault] A function that returns a default element type.\n * @returns {string|function} A ReactElement type\n */\nfunction getElementType(Component, props, getDefault) {\n var _Component$defaultPro = Component.defaultProps,\n defaultProps = _Component$defaultPro === void 0 ? {} : _Component$defaultPro; // ----------------------------------------\n // user defined \"as\" element type\n\n if (props.as && props.as !== defaultProps.as) return props.as; // ----------------------------------------\n // computed default element type\n\n if (getDefault) {\n var computedDefault = getDefault();\n if (computedDefault) return computedDefault;\n } // ----------------------------------------\n // infer anchor links\n\n\n if (props.href) return 'a'; // ----------------------------------------\n // use defaultProp or 'div'\n\n return defaultProps.as || 'div';\n}\n\nexport default getElementType;","/**\n * Returns an object consisting of props beyond the scope of the Component.\n * Useful for getting and spreading unknown props from the user.\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @returns {{}} A shallow copy of the prop object\n */\nvar getUnhandledProps = function getUnhandledProps(Component, props) {\n // Note that `handledProps` are generated automatically during build with `babel-plugin-transform-react-handled-props`\n var _Component$handledPro = Component.handledProps,\n handledProps = _Component$handledPro === void 0 ? [] : _Component$handledPro;\n return Object.keys(props).reduce(function (acc, prop) {\n if (prop === 'childKey') return acc;\n if (handledProps.indexOf(prop) === -1) acc[prop] = props[prop];\n return acc;\n }, {});\n};\n\nexport default getUnhandledProps;","import _isNil from \"lodash-es/isNil\";\nvar hasDocument = typeof document === 'object' && document !== null;\nvar hasWindow = typeof window === 'object' && window !== null && window.self === window; // eslint-disable-next-line no-confusing-arrow\n\nvar isBrowser = function isBrowser() {\n return !_isNil(isBrowser.override) ? isBrowser.override : hasDocument && hasWindow;\n};\n\nexport default isBrowser;","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import _invert from \"lodash-es/invert\";\nimport _keys from \"lodash-es/keys\";\nexport var positionsMapping = {\n 'top center': 'top',\n 'top left': 'top-start',\n 'top right': 'top-end',\n 'bottom center': 'bottom',\n 'bottom left': 'bottom-start',\n 'bottom right': 'bottom-end',\n 'right center': 'right',\n 'left center': 'left'\n};\nexport var positions = _keys(positionsMapping);\nexport var placementMapping = _invert(positionsMapping);","import _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _memoize from \"lodash-es/memoize\";\nimport _invoke from \"lodash-es/invoke\";\nimport { isRefObject } from '@fluentui/react-component-ref';\n\nvar ReferenceProxy = /*#__PURE__*/function () {\n function ReferenceProxy(refObject) {\n this.ref = refObject;\n }\n\n var _proto = ReferenceProxy.prototype;\n\n _proto.getBoundingClientRect = function getBoundingClientRect() {\n return _invoke(this.ref.current, 'getBoundingClientRect') || {};\n };\n\n _createClass(ReferenceProxy, [{\n key: \"clientWidth\",\n get: function get() {\n return this.getBoundingClientRect().width;\n }\n }, {\n key: \"clientHeight\",\n get: function get() {\n return this.getBoundingClientRect().height;\n }\n }, {\n key: \"parentNode\",\n get: function get() {\n return this.ref.current ? this.ref.current.parentNode : undefined;\n }\n }, {\n key: \"contextElement\",\n get: function get() {\n return this.ref.current;\n }\n }]);\n\n return ReferenceProxy;\n}();\n/**\n * Popper.js does not support ref objects from `createRef()` as referenceElement. If we will pass\n * directly `ref`, `ref.current` will be `null` at the render process. We use memoize to keep the\n * same reference between renders.\n *\n * @see https://popper.js.org/popper-documentation.html#referenceObject\n */\n\n\nvar createReferenceProxy = _memoize(function (reference) {\n return new ReferenceProxy(isRefObject(reference) ? reference : {\n current: reference\n });\n});\n\nexport default createReferenceProxy;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, createShorthandFactory, customPropTypes, getElementType, getUnhandledProps } from '../../lib';\n/**\n * A PopupContent displays the content body of a Popover.\n */\n\nexport default function PopupContent(props) {\n var children = props.children,\n className = props.className,\n content = props.content;\n var classes = cx('content', className);\n var rest = getUnhandledProps(PopupContent, props);\n var ElementType = getElementType(PopupContent, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\nPopupContent.handledProps = [\"as\", \"children\", \"className\", \"content\"];\nPopupContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** The content of the Popup */\n children: PropTypes.node,\n\n /** Classes to add to the Popup content className. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand\n} : {};\nPopupContent.create = createShorthandFactory(PopupContent, function (children) {\n return {\n children: children\n };\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, createShorthandFactory, customPropTypes, getElementType, getUnhandledProps } from '../../lib';\n/**\n * A PopupHeader displays a header in a Popover.\n */\n\nexport default function PopupHeader(props) {\n var children = props.children,\n className = props.className,\n content = props.content;\n var classes = cx('header', className);\n var rest = getUnhandledProps(PopupHeader, props);\n var ElementType = getElementType(PopupHeader, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\nPopupHeader.handledProps = [\"as\", \"children\", \"className\", \"content\"];\nPopupHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand\n} : {};\nPopupHeader.create = createShorthandFactory(PopupHeader, function (children) {\n return {\n children: children\n };\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _without from \"lodash-es/without\";\nimport _isNil from \"lodash-es/isNil\";\nimport _isUndefined from \"lodash-es/isUndefined\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isElement from \"lodash-es/isElement\";\nimport _isArray from \"lodash-es/isArray\";\nimport _pick from \"lodash-es/pick\";\nimport _includes from \"lodash-es/includes\";\nimport _reduce from \"lodash-es/reduce\";\nimport EventStack from '@semantic-ui-react/event-stack';\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { Popper } from 'react-popper';\nimport shallowEqual from 'shallowequal';\nimport { eventStack, childrenUtils, createHTMLDivision, customPropTypes, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey } from '../../lib';\nimport Portal from '../../addons/Portal';\nimport { placementMapping, positions, positionsMapping } from './lib/positions';\nimport createReferenceProxy from './lib/createReferenceProxy';\nimport PopupContent from './PopupContent';\nimport PopupHeader from './PopupHeader';\n\n/**\n * A Popup displays additional information on top of a page.\n */\nvar Popup = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Popup, _Component);\n\n function Popup() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {};\n _this.open = false;\n _this.zIndexWasSynced = false;\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.elementRef = /*#__PURE__*/React.createRef();\n\n _this.getPortalProps = function () {\n var portalProps = {};\n var _this$props = _this.props,\n on = _this$props.on,\n hoverable = _this$props.hoverable;\n var normalizedOn = _isArray(on) ? on : [on];\n\n if (hoverable) {\n portalProps.closeOnPortalMouseLeave = true;\n portalProps.mouseLeaveDelay = 300;\n }\n\n if (_includes(normalizedOn, 'hover')) {\n portalProps.openOnTriggerClick = false;\n portalProps.closeOnTriggerClick = false;\n portalProps.openOnTriggerMouseEnter = true;\n portalProps.closeOnTriggerMouseLeave = true; // Taken from SUI: https://git.io/vPmCm\n\n portalProps.mouseLeaveDelay = 70;\n portalProps.mouseEnterDelay = 50;\n }\n\n if (_includes(normalizedOn, 'click')) {\n portalProps.openOnTriggerClick = true;\n portalProps.closeOnTriggerClick = true;\n portalProps.closeOnDocumentClick = true;\n }\n\n if (_includes(normalizedOn, 'focus')) {\n portalProps.openOnTriggerFocus = true;\n portalProps.closeOnTriggerBlur = true;\n }\n\n return portalProps;\n };\n\n _this.hideOnScroll = function (e) {\n // Do not hide the popup when scroll comes from inside the popup\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4305\n if (_isElement(e.target) && _this.elementRef.current.contains(e.target)) {\n return;\n }\n\n _this.setState({\n closed: true\n });\n\n eventStack.unsub('scroll', _this.hideOnScroll, {\n target: window\n });\n _this.timeoutId = setTimeout(function () {\n _this.setState({\n closed: false\n });\n }, 50);\n\n _this.handleClose(e);\n };\n\n _this.handleClose = function (e) {\n _invoke(_this.props, 'onClose', e, _extends({}, _this.props, {\n open: false\n }));\n };\n\n _this.handleOpen = function (e) {\n _invoke(_this.props, 'onOpen', e, _extends({}, _this.props, {\n open: true\n }));\n };\n\n _this.handlePortalMount = function (e) {\n _invoke(_this.props, 'onMount', e, _this.props);\n };\n\n _this.handlePortalUnmount = function (e) {\n _this.positionUpdate = null;\n\n _invoke(_this.props, 'onUnmount', e, _this.props);\n };\n\n _this.renderContent = function (_ref) {\n var popperPlacement = _ref.placement,\n popperRef = _ref.ref,\n update = _ref.update,\n popperStyle = _ref.style;\n var _this$props2 = _this.props,\n basic = _this$props2.basic,\n children = _this$props2.children,\n className = _this$props2.className,\n content = _this$props2.content,\n hideOnScroll = _this$props2.hideOnScroll,\n flowing = _this$props2.flowing,\n header = _this$props2.header,\n inverted = _this$props2.inverted,\n popper = _this$props2.popper,\n size = _this$props2.size,\n style = _this$props2.style,\n wide = _this$props2.wide;\n var contentRestProps = _this.state.contentRestProps;\n _this.positionUpdate = update;\n var classes = cx('ui', placementMapping[popperPlacement], size, useKeyOrValueAndKey(wide, 'wide'), useKeyOnly(basic, 'basic'), useKeyOnly(flowing, 'flowing'), useKeyOnly(inverted, 'inverted'), 'popup transition visible', className);\n var ElementType = getElementType(Popup, _this.props);\n\n var styles = _extends({\n // Heads up! We need default styles to get working correctly `flowing`\n left: 'auto',\n right: 'auto',\n // This is required to be properly positioned inside wrapping `div`\n position: 'initial'\n }, style);\n\n var innerElement = /*#__PURE__*/React.createElement(ElementType, _extends({}, contentRestProps, {\n className: classes,\n style: styles,\n ref: _this.elementRef\n }), childrenUtils.isNil(children) ? /*#__PURE__*/React.createElement(React.Fragment, null, PopupHeader.create(header, {\n autoGenerateKey: false\n }), PopupContent.create(content, {\n autoGenerateKey: false\n })) : children, hideOnScroll && /*#__PURE__*/React.createElement(EventStack, {\n on: _this.hideOnScroll,\n name: \"scroll\",\n target: \"window\"\n })); // https://github.com/popperjs/popper-core/blob/f1f9d1ab75b6b0e962f90a5b2a50f6cfd307d794/src/createPopper.js#L136-L137\n // Heads up!\n // A wrapping `div` there is a pure magic, it's required as Popper warns on margins that are\n // defined by SUI CSS. It also means that this `div` will be positioned instead of `content`.\n\n return createHTMLDivision(popper || {}, {\n overrideProps: {\n children: innerElement,\n ref: popperRef,\n style: _extends({\n // Fixes layout for floated elements\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4092\n display: 'flex'\n }, popperStyle)\n }\n });\n };\n\n return _this;\n }\n\n Popup.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (state.closed || state.disabled) return {};\n var unhandledProps = getUnhandledProps(Popup, props);\n\n var contentRestProps = _reduce(unhandledProps, function (acc, val, key) {\n if (!_includes(Portal.handledProps, key)) acc[key] = val;\n return acc;\n }, {});\n\n var portalRestProps = _pick(unhandledProps, Portal.handledProps);\n\n return {\n contentRestProps: contentRestProps,\n portalRestProps: portalRestProps\n };\n };\n\n var _proto = Popup.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var depsEqual = shallowEqual(this.props.popperDependencies, prevProps.popperDependencies);\n\n if (!depsEqual) {\n this.handleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n clearTimeout(this.timeoutId);\n };\n\n _proto.handleUpdate = function handleUpdate() {\n if (this.positionUpdate) this.positionUpdate();\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n context = _this$props3.context,\n disabled = _this$props3.disabled,\n eventsEnabled = _this$props3.eventsEnabled,\n offset = _this$props3.offset,\n pinned = _this$props3.pinned,\n popper = _this$props3.popper,\n popperModifiers = _this$props3.popperModifiers,\n position = _this$props3.position,\n positionFixed = _this$props3.positionFixed,\n trigger = _this$props3.trigger;\n var _this$state = this.state,\n closed = _this$state.closed,\n portalRestProps = _this$state.portalRestProps;\n\n if (closed || disabled) {\n return trigger;\n }\n\n var modifiers = [{\n name: 'arrow',\n enabled: false\n }, {\n name: 'eventListeners',\n options: {\n scroll: !!eventsEnabled,\n resize: !!eventsEnabled\n }\n }, {\n name: 'flip',\n enabled: !pinned\n }, {\n name: 'preventOverflow',\n enabled: !!offset\n }, {\n name: 'offset',\n enabled: !!offset,\n options: {\n offset: offset\n }\n }].concat(popperModifiers, [// We are syncing zIndex from `.ui.popup.content` to avoid layering issues as in SUIR we are using an additional\n // `div` for Popper.js\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4083\n {\n name: 'syncZIndex',\n enabled: true,\n phase: 'beforeRead',\n fn: function fn(_ref2) {\n var _popper$style;\n\n var state = _ref2.state;\n\n if (_this2.zIndexWasSynced) {\n return;\n } // if zIndex defined in <Popup popper={{ style: {} }} /> there is no sense to override it\n\n\n var definedZIndex = popper == null ? void 0 : (_popper$style = popper.style) == null ? void 0 : _popper$style.zIndex;\n\n if (_isUndefined(definedZIndex)) {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.zIndex = window.getComputedStyle(state.elements.popper.firstChild).zIndex;\n }\n\n _this2.zIndexWasSynced = true;\n },\n effect: function effect() {\n return function () {\n _this2.zIndexWasSynced = false;\n };\n }\n }]);\n var referenceElement = createReferenceProxy(_isNil(context) ? this.triggerRef : context);\n\n var mergedPortalProps = _extends({}, this.getPortalProps(), portalRestProps);\n\n return /*#__PURE__*/React.createElement(Portal, _extends({}, mergedPortalProps, {\n onClose: this.handleClose,\n onMount: this.handlePortalMount,\n onOpen: this.handleOpen,\n onUnmount: this.handlePortalUnmount,\n trigger: trigger,\n triggerRef: this.triggerRef\n }), /*#__PURE__*/React.createElement(Popper, {\n modifiers: modifiers,\n placement: positionsMapping[position],\n strategy: positionFixed ? 'fixed' : null,\n referenceElement: referenceElement\n }, this.renderContent));\n };\n\n return Popup;\n}(Component);\n\nPopup.handledProps = [\"as\", \"basic\", \"children\", \"className\", \"content\", \"context\", \"disabled\", \"eventsEnabled\", \"flowing\", \"header\", \"hideOnScroll\", \"hoverable\", \"inverted\", \"offset\", \"on\", \"onClose\", \"onMount\", \"onOpen\", \"onUnmount\", \"pinned\", \"popper\", \"popperDependencies\", \"popperModifiers\", \"position\", \"positionFixed\", \"size\", \"style\", \"trigger\", \"wide\"];\nexport { Popup as default };\nPopup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Display the popup without the pointing arrow. */\n basic: PropTypes.bool,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Simple text content for the popover. */\n content: customPropTypes.itemShorthand,\n\n /** Existing element the pop-up should be bound to. */\n context: PropTypes.oneOfType([PropTypes.object, customPropTypes.refObject]),\n\n /** A disabled popup only renders its trigger. */\n disabled: PropTypes.bool,\n\n /** Enables the Popper.js event listeners. */\n eventsEnabled: PropTypes.bool,\n\n /** A flowing Popup has no maximum width and continues to flow to fit its content. */\n flowing: PropTypes.bool,\n\n /** Takes up the entire width of its offset container. */\n // TODO: implement the Popup fluid layout\n // fluid: PropTypes.bool,\n\n /** Header displayed above the content in bold. */\n header: customPropTypes.itemShorthand,\n\n /** Hide the Popup when scrolling the window. */\n hideOnScroll: PropTypes.bool,\n\n /** Whether the popup should not close on hover. */\n hoverable: PropTypes.bool,\n\n /** Invert the colors of the Popup. */\n inverted: PropTypes.bool,\n\n /**\n * Offset values in px unit to apply to rendered popup. The basic offset accepts an\n * array with two numbers in the form [skidding, distance]:\n * - `skidding` displaces the Popup along the reference element\n * - `distance` displaces the Popup away from, or toward, the reference element in the direction of its placement. A positive number displaces it further away, while a negative number lets it overlap the reference.\n *\n * @see https://popper.js.org/docs/v2/modifiers/offset/\n */\n offset: PropTypes.oneOfType([PropTypes.func, PropTypes.arrayOf(PropTypes.number)]),\n\n /** Events triggering the popup. */\n on: PropTypes.oneOfType([PropTypes.oneOf(['hover', 'click', 'focus']), PropTypes.arrayOf(PropTypes.oneOf(['hover', 'click', 'focus']))]),\n\n /**\n * Called when a close event happens.\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onClose: PropTypes.func,\n\n /**\n * Called when the portal is mounted on the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when an open event happens.\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onOpen: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func,\n\n /** Disables automatic repositioning of the component, it will always be placed according to the position value. */\n pinned: PropTypes.bool,\n\n /** Position for the popover. */\n position: PropTypes.oneOf(positions),\n\n /** Tells `Popper.js` to use the `position: fixed` strategy to position the popover. */\n positionFixed: PropTypes.bool,\n\n /** A wrapping element for an actual content that will be used for positioning. */\n popper: customPropTypes.itemShorthand,\n\n /** An array containing custom settings for the Popper.js modifiers. */\n popperModifiers: PropTypes.array,\n\n /** A popup can have dependencies which update will schedule a position update. */\n popperDependencies: PropTypes.array,\n\n /** Popup size. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium', 'big', 'massive')),\n\n /** Custom Popup style. */\n style: PropTypes.object,\n\n /** Element to be rendered in-place where the popup is defined. */\n trigger: PropTypes.node,\n\n /** Popup width. */\n wide: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])])\n} : {};\nPopup.defaultProps = {\n disabled: false,\n eventsEnabled: true,\n on: ['click', 'hover'],\n pinned: false,\n popperModifiers: [],\n position: 'top left'\n};\nPopup.Content = PopupContent;\nPopup.Header = PopupHeader;","\"use strict\";\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0;\n}\n\nmodule.exports = hash;\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\nvar _isTime = _interopRequireDefault(require(\"./lib/isTime\"));\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\nvar _isAbaRouting = _interopRequireDefault(require(\"./lib/isAbaRouting\"));\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./lib/isLuhnNumber\"));\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\nvar _isISO = require(\"./lib/isISO6346\");\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO6391\"));\nvar _isISO3 = _interopRequireDefault(require(\"./lib/isISO8601\"));\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\nvar _isISO4 = _interopRequireDefault(require(\"./lib/isISO4217\"));\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\nvar _isMailtoURI = _interopRequireDefault(require(\"./lib/isMailtoURI\"));\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar version = '13.12.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAbaRouting: _isAbaRouting.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isIMEI: _isIMEI.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isLuhnNumber: _isLuhnNumber.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO6346: _isISO.isISO6346,\n isFreightContainerID: _isISO.isFreightContainerID,\n isISO6391: _isISO2.default,\n isISO8601: _isISO3.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO4.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMailtoURI: _isMailtoURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default,\n isStrongPassword: _isStrongPassword.default,\n isTaxID: _isTaxID.default,\n isDate: _isDate.default,\n isTime: _isTime.default,\n isLicensePlate: _isLicensePlate.default,\n isVAT: _isVAT.default,\n ibanLocales: _isIBAN.locales\n};\nvar _default = exports.default = validator;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.farsiLocales = exports.englishLocales = exports.dotDecimal = exports.decimal = exports.commaDecimal = exports.bengaliLocales = exports.arabicLocales = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = exports.alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇÆĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[Ð-Я]+$/i,\n 'cs-CZ': /^[A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ÏŽ]+$/i,\n 'es-ES': /^[A-ZÃÉÃÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچØخدذرزژسشصضطظعغÙقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[ã-ã‚“ã‚¡-ヶヲ-゚一-é¾ ãƒ¼ãƒ»ã€‚ã€]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÃÉËÃÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÃÉÃÓÖÅÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚÅŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÃÀÂÄÇÉÊËÃÃÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[Ð-ЯÐ]+$/i,\n 'kk-KZ': /^[Ð-ЯÐ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[A-ZČĆÄŠŽ]+$/i,\n 'sk-SK': /^[A-ZÃČĎÉÃŇÓŠŤÚÃŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠÄ]+$/i,\n 'sr-RS': /^[Ð-ЯЂЈЉЊЋÐ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[à¸-à¹\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[Ð-ЩЬЮЯЄIЇÒÑ–]+$/i,\n 'vi-VN': /^[A-ZÀÃẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴÄÈÉẸẺẼÊỀẾỆỂỄÌÃỊỈĨÒÓỌỎÕÔỒá»á»˜á»”á»–Æ á»œá»šá»¢á»žá» Ã™Ãšá»¤á»¦Å¨Æ¯á»ªá»¨á»°á»¬á»®á»²ÃỴỶỸ]+$/i,\n 'ko-KR': /^[ㄱ-ã…Žã…-ㅣ가-힣]*$/,\n 'ku-IQ': /^[ئابپتجچØخدرڕزژسشعغÙڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ]+$/,\n he: /^[×-ת]+$/,\n fa: /^['آاءأؤئبپتثجچØخدذرزژسشصضطظعغÙقکگلمنوهةی']+$/i,\n bn: /^['ঀà¦à¦‚ঃঅআইঈউঊঋঌà¦à¦à¦“ঔকখগঘঙচছজà¦à¦žà¦Ÿà¦ ডঢণতথদধনপফবà¦à¦®à¦¯à¦°à¦²à¦¶à¦·à¦¸à¦¹à¦¼à¦½à¦¾à¦¿à§€à§à§‚ৃৄেৈোৌà§à§Žà§—ড়à§à§Ÿà§ ৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[ABCĈD-GÄœHĤIJÄ´K-PRSÅœTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nvar alphanumeric = exports.alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇÆĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9Ð-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÃČĎÉĚÃŇÓŘŠŤÚŮÃŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÃÉÃÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÃÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[0-9ï¼-ï¼™ã-ã‚“ã‚¡-ヶヲ-゚一-é¾ ãƒ¼ãƒ»ã€‚ã€]+$/i,\n 'hu-HU': /^[0-9A-ZÃÉÃÓÖÅÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÃÉËÃÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚÅŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÃÀÂÄÇÉÊËÃÃÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9Ð-ЯÐ]+$/i,\n 'kk-KZ': /^[0-9Ð-ЯÐ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[0-9A-ZČĆÄŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÃČĎÉÃŇÓŠŤÚÃŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠÄ]+$/i,\n 'sr-RS': /^[0-9Ð-ЯЂЈЉЊЋÐ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[à¸-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9Ð-ЩЬЮЯЄIЇÒÑ–]+$/i,\n 'ko-KR': /^[0-9ㄱ-ã…Žã…-ㅣ가-힣]*$/,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچØخدرڕزژسشعغÙڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÃẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴÄÈÉẸẺẼÊỀẾỆỂỄÌÃỊỈĨÒÓỌỎÕÔỒá»á»˜á»”á»–Æ á»œá»šá»¢á»žá» Ã™Ãšá»¤á»¦Å¨Æ¯á»ªá»¨á»°á»¬á»®á»²ÃỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجØخدذرزسشصضطظعغÙقكلمنهوىيًٌÙÙŽÙÙّْٰ]+$/,\n he: /^[0-9×-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچØخدذرزژسشصضطظعغÙقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n bn: /^['ঀà¦à¦‚ঃঅআইঈউঊঋঌà¦à¦à¦“ঔকখগঘঙচছজà¦à¦žà¦Ÿà¦ ডঢণতথদধনপফবà¦à¦®à¦¯à¦°à¦²à¦¶à¦·à¦¸à¦¹à¦¼à¦½à¦¾à¦¿à§€à§à§‚ৃৄেৈোৌà§à§Žà§—ড়à§à§Ÿà§ ৡৢৣ০১২৩৪৫৬à§à§®à§¯à§°à§±à§²à§³à§´à§µà§¶à§·à§¸à§¹à§ºà§»']+$/,\n eo: /^[0-9ABCĈD-GÄœHĤIJÄ´K-PRSÅœTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nvar decimal = exports.decimal = {\n 'en-US': '.',\n ar: 'Ù«'\n};\nvar englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n}\n\n// Source: http://www.localeplanet.com/java/\nvar arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\nvar farsiLocales = exports.farsiLocales = ['IR', 'AF'];\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n}\nvar bengaliLocales = exports.bengaliLocales = ['BD', 'IN'];\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n alpha[_locale3] = alpha.bn;\n alphanumeric[_locale3] = alphanumeric.bn;\n decimal[_locale3] = decimal['en-US'];\n}\n\n// Source: https://en.wikipedia.org/wiki/Decimal_mark\nvar dotDecimal = exports.dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nvar commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'eo', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'kk-KZ', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT'];\n\n// see #862\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];\n\n// see #1455\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>').replace(/\\//g, '/').replace(/\\\\/g, '\').replace(/`/g, '`');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAbaRouting;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// http://www.brainjar.com/js/validation/\n// https://www.aba.com/news-research/research-analysis/routing-number-policy-procedures\n// series reserved for future use are excluded\nvar isRoutingReg = /^(?!(1[3-9])|(20)|(3[3-9])|(4[0-9])|(5[0-9])|(60)|(7[3-9])|(8[1-9])|(9[0-2])|(9[3-9]))[0-9]{9}$/;\nfunction isAbaRouting(str) {\n (0, _assertString.default)(str);\n if (!isRoutingReg.test(str)) return false;\n var checkSumVal = 0;\n for (var i = 0; i < str.length; i++) {\n if (i % 3 === 0) checkSumVal += str[i] * 3;else if (i % 3 === 1) checkSumVal += str[i] * 7;else checkSumVal += str[i] * 1;\n }\n return checkSumVal % 10 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAfter(date, options) {\n // For backwards compatibility:\n // isAfter(str [, date]), i.e. `options` could be used as argument for the legacy `date`\n var comparisonDate = (options === null || options === void 0 ? void 0 : options.comparisonDate) || options || Date().toString();\n var comparison = (0, _toDate.default)(comparisonDate);\n var original = (0, _toDate.default)(date);\n return !!(original && comparison && original > comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alpha);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alphanumeric);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n\n // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n var countryCode = str.slice(4, 6).toUpperCase();\n if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== 'XK') {\n return false;\n }\n return isBICReg.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar base32 = /^[A-Z2-7]+=*$/;\nvar crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;\nvar defaultBase32Options = {\n crockford: false\n};\nfunction isBase32(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase32Options);\n if (options.crockford) {\n return crockfordBase32.test(str);\n }\n var len = str.length;\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n if (base58Reg.test(str)) {\n return true;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n return strictBooleans.includes(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return bech32.test(str) || base58.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar cards = {\n amex: /^3[47][0-9]{13}$/,\n dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n // /^[25][1-7][0-9]{14}$/;\n unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,\n visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/\n};\nvar allCards = function () {\n var tmpCardsArray = [];\n for (var cardProvider in cards) {\n // istanbul ignore else\n if (cards.hasOwnProperty(cardProvider)) {\n tmpCardsArray.push(cards[cardProvider]);\n }\n }\n return tmpCardsArray;\n}();\nfunction isCreditCard(card) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(card);\n var provider = options.provider;\n var sanitized = card.replace(/[- ]+/g, '');\n if (provider && provider.toLowerCase() in cards) {\n // specific provider in the list\n if (!cards[provider.toLowerCase()].test(sanitized)) {\n return false;\n }\n } else if (provider && !(provider.toLowerCase() in cards)) {\n /* specific provider not in the list */\n throw new Error(\"\".concat(provider, \" is not a valid credit card provider.\"));\n } else if (!allCards.some(function (cardProvider) {\n return cardProvider.test(sanitized);\n })) {\n // no specific provider\n return false;\n }\n return (0, _isLuhnNumber.default)(card);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : '');\n\n // default is negative sign before symbol, but there are two other options (besides parens)\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n }\n\n // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n }\n\n // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+\\._]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n if (data.length < 2) {\n return false;\n }\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n if (schemeAndMediaType.slice(0, 5) !== 'data:') {\n return false;\n }\n var mediaType = schemeAndMediaType.slice(5);\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n for (var i = 0; i < attributes.length; i++) {\n if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {\n return false;\n }\n }\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * Also EAN/UCC-14 is used for Grouping of individual\n * trade items above unit level(Intermediate, Carton or Pallet).\n * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n * Reference: https://www.gtin.info/\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14\n * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),\n * with exact numberic matching of 8 or 13 or 14 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar LENGTH_EAN_14 = 14;\nvar validEanRegex = /^(\\d{8}|\\d{13}|\\d{14})$/;\n\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n return index % 2 === 0 ? 1 : 3;\n}\n\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13/EAN-14 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n // display name with only spaces is not valid\n if (!display_name_without_quotes.trim()) {\n return false;\n }\n\n // check whether display name contains illegal character\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar eth = /^(0x)[0-9a-f]{40}$/i;\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n return false;\n }\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\nvar locales = exports.locales = Object.keys(_alpha.decimal);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar fullWidth = exports.fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hslComma = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}(,((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?))?\\)$/i;\nvar hslSpace = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(\\s(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s?(\\/\\s((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s?)?\\)$/i;\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n\n // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n return hslSpace.test(strippedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar halfWidth = exports.halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n DZ: /^(DZ\\d{24})$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MA: /^(MA[0-9]{26})$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n\n/**\n * Check if the country codes passed are valid using the\n * ibanRegexThroughCountryCode as a reference\n *\n * @param {array} countryCodeArray\n * @return {boolean}\n */\n\nfunction hasOnlyValidCountryCodes(countryCodeArray) {\n var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function (countryCode) {\n return !(countryCode in ibanRegexThroughCountryCode);\n });\n if (countryCodeArrayFilteredWithObjectIbanCode.length > 0) {\n return false;\n }\n return true;\n}\n\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @param {object} options - object to pass the countries to be either whitelisted or blacklisted\n * @return {boolean}\n */\nfunction hasValidIbanFormat(str, options) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n var isoCountryCodeInIbanRegexCodeObject = (isoCountryCode in ibanRegexThroughCountryCode);\n if (options.whitelist) {\n if (!hasOnlyValidCountryCodes(options.whitelist)) {\n return false;\n }\n var isoCountryCodeInWhiteList = options.whitelist.includes(isoCountryCode);\n if (!isoCountryCodeInWhiteList) {\n return false;\n }\n }\n if (options.blacklist) {\n var isoCountryCodeInBlackList = options.blacklist.includes(isoCountryCode);\n if (isoCountryCodeInBlackList) {\n return false;\n }\n }\n return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\nfunction isIBAN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str);\n}\nvar locales = exports.locales = Object.keys(ibanRegexThroughCountryCode);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n if (!imeiRegex.test(str)) {\n return false;\n }\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n for (var i = 0; i < l; i++) {\n var digit = str.substring(l - i - 1, l - i);\n var tp = parseInt(digit, 10) * mul;\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n var chk = (10 - sum % 10) % 10;\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/');\n\n // parts[0] -> ip, parts[1] -> subnet\n if (parts.length !== 2) {\n return false;\n }\n if (!subnetMaybe.test(parts[1])) {\n return false;\n }\n\n // Disallow preceding 0 i.e. 01, 02, ...\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n var isValidIP = (0, _isIP.default)(parts[0], version);\n if (!isValidIP) {\n return false;\n }\n\n // Define valid subnet according to IP's version\n var expectedSubnet = null;\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n case '6':\n expectedSubnet = v6Subnet;\n break;\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar possibleIsbn13 = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\nfunction isISBN(isbn, options) {\n (0, _assertString.default)(isbn);\n\n // For backwards compatibility:\n // isISBN(str [, version]), i.e. `options` could be used as argument for the legacy `version`\n var version = String((options === null || options === void 0 ? void 0 : options.version) || options);\n if (!(options !== null && options !== void 0 && options.version || options)) {\n return isISBN(isbn, {\n version: 10\n }) || isISBN(isbn, {\n version: 13\n });\n }\n var sanitizedIsbn = isbn.replace(/[\\s-]+/g, '');\n var checksum = 0;\n if (version === '10') {\n if (!possibleIsbn10.test(sanitizedIsbn)) {\n return false;\n }\n for (var i = 0; i < version - 1; i++) {\n checksum += (i + 1) * sanitizedIsbn.charAt(i);\n }\n if (sanitizedIsbn.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitizedIsbn.charAt(9);\n }\n if (checksum % 11 === 0) {\n return true;\n }\n } else if (version === '13') {\n if (!possibleIsbn13.test(sanitizedIsbn)) {\n return false;\n }\n for (var _i = 0; _i < 12; _i++) {\n checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);\n }\n if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return true;\n }\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\n// this link details how the check digit is calculated:\n// https://www.isin.org/isin-format/. it is a little bit\n// odd in that it works with digits, not numbers. in order\n// to make only one pass through the ISIN characters, the\n// each alpha character is handled as 2 characters within\n// the loop.\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n if (!isin.test(str)) {\n return false;\n }\n var double = true;\n var sum = 0;\n // convert values\n for (var i = str.length - 2; i >= 0; i--) {\n if (str[i] >= 'A' && str[i] <= 'Z') {\n var value = str[i].charCodeAt(0) - 55;\n var lo = value % 10;\n var hi = Math.trunc(value / 10);\n // letters have two digits, so handle the low order\n // and high order digits separately.\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n if (double) {\n if (digit >= 5) {\n sum += 1 + (digit - 5) * 2;\n } else {\n sum += digit * 2;\n }\n } else {\n sum += digit;\n }\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n if (double) {\n if (_digit >= 5) {\n sum += 1 + (_digit - 5) * 2;\n } else {\n sum += _digit * 2;\n }\n } else {\n sum += _digit;\n }\n double = !double;\n }\n }\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CountryCodes = void 0;\nexports.default = isISO31661Alpha2;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\nvar CountryCodes = exports.CountryCodes = validISO31661Alpha2CountriesCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CurrencyCodes = void 0;\nexports.default = isISO4217;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// from https://en.wikipedia.org/wiki/ISO_4217\nvar validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLE', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\nvar CurrencyCodes = exports.CurrencyCodes = validISO4217CurrencyCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isFreightContainerID = void 0;\nexports.isISO6346 = isISO6346;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// https://en.wikipedia.org/wiki/ISO_6346\n// according to ISO6346 standard, checksum digit is mandatory for freight container but recommended\n// for other container types (J and Z)\nvar isISO6346Str = /^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/;\nvar isDigit = /^[0-9]$/;\nfunction isISO6346(str) {\n (0, _assertString.default)(str);\n str = str.toUpperCase();\n if (!isISO6346Str.test(str)) return false;\n if (str.length === 11) {\n var sum = 0;\n for (var i = 0; i < str.length - 1; i++) {\n if (!isDigit.test(str[i])) {\n var convertedCode = void 0;\n var letterCode = str.charCodeAt(i) - 55;\n if (letterCode < 11) convertedCode = letterCode;else if (letterCode >= 11 && letterCode <= 20) convertedCode = 12 + letterCode % 11;else if (letterCode >= 21 && letterCode <= 30) convertedCode = 23 + letterCode % 21;else convertedCode = 34 + letterCode % 31;\n sum += convertedCode * Math.pow(2, i);\n } else sum += str[i] * Math.pow(2, i);\n }\n var checkSumDigit = sum % 11;\n return Number(str[str.length - 1]) === checkSumDigit;\n }\n return true;\n}\nvar isFreightContainerID = exports.isFreightContainerID = isISO6346;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO6391;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar isISO6391Set = new Set(['aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw', 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv', 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd', 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu']);\nfunction isISO6391(str) {\n (0, _assertString.default)(str);\n return isISO6391Set.has(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n// same as above, except with a strict 'T' separator between date and time\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]);\n // if is leap year\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day;\n\n // create a date object and compare\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n return true;\n};\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n if (!testIssn.test(str)) {\n return false;\n }\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n return checksum % 11 === 0;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n PL: function PL(str) {\n (0, _assertString.default)(str);\n var weightOfDigits = {\n 1: 1,\n 2: 3,\n 3: 7,\n 4: 9,\n 5: 1,\n 6: 3,\n 7: 7,\n 8: 9,\n 9: 1,\n 10: 3,\n 11: 0\n };\n if (str != null && str.length === 11 && (0, _isInt.default)(str, {\n allow_leading_zeroes: true\n })) {\n var digits = str.split('').slice(0, -1);\n var sum = digits.reduce(function (acc, digit, index) {\n return acc + Number(digit) * weightOfDigits[index + 1];\n }, 0);\n var modulo = sum % 10;\n var lastDigit = Number(str.charAt(str.length - 1));\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\n }\n return false;\n },\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n\n // sanitize user input\n var sanitized = str.trim().toUpperCase();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n // validate the control digit\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n FI: function FI(str) {\n // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated\n (0, _assertString.default)(str);\n if (str.length !== 11) {\n return false;\n }\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\n var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';\n var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);\n var remainder = idAsNumber % 31;\n var checkDigit = checkDigits[remainder];\n return checkDigit === str.slice(10, 11);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/;\n\n // multiplication table\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n\n // permutation table\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IR: function IR(str) {\n if (!str.match(/^\\d{10}$/)) return false;\n str = \"0000\".concat(str).slice(str.length - 6);\n if (parseInt(str.slice(3, 9), 10) === 0) return false;\n var lastNumber = parseInt(str.slice(9, 10), 10);\n var sum = 0;\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);\n }\n sum %= 11;\n return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n return str.search(/C[A-Z]\\d{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false;\n\n // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n TH: function TH(str) {\n if (!str.match(/^[1-8]\\d{12}$/)) return false;\n\n // validate check digit\n var sum = 0;\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\n return str[12] === ((11 - sum % 11) % 10).toString();\n },\n LK: function LK(str) {\n var old_nic = /^[1-9]\\d{8}[vx]$/i;\n var new_nic = /^[1-9]\\d{11}$/i;\n if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;\n return false;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n var id = sanitized;\n var sum = 0,\n incNum;\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n return sum % 10 === 0;\n },\n 'ar-LY': function arLY(str) {\n // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2\n var NIN = /^(1|2)\\d{11}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!NIN.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/;\n\n // sanitize user input\n var sanitized = str.trim();\n\n // validate the data structure\n if (!DNI.test(sanitized)) {\n return false;\n }\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11',\n // 北京\n '12',\n // 天津\n '13',\n // 河北\n '14',\n // 山西\n '15',\n // 内蒙å¤\n '21',\n // è¾½å®\n '22',\n // å‰æž—\n '23',\n // 黑龙江\n '31',\n // 上海\n '32',\n // 江è‹\n '33',\n // 浙江\n '34',\n // 安徽\n '35',\n // ç¦å»º\n '36',\n // 江西\n '37',\n // 山东\n '41',\n // æ²³å—\n '42',\n // 湖北\n '43',\n // æ¹–å—\n '44',\n // 广东\n '45',\n // 广西\n '46',\n // æµ·å—\n '50',\n // é‡åº†\n '51',\n // å››å·\n '52',\n // 贵州\n '53',\n // 云å—\n '54',\n // 西è—\n '61',\n // 陕西\n '62',\n // 甘肃\n '63',\n // é’æµ·\n '64',\n // å®å¤\n '65',\n // æ–°ç–†\n '71',\n // å°æ¹¾\n '81',\n // 香港\n '82',\n // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n if (xdata > new Date()) {\n return false;\n // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n return false;\n };\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n var mod = power % 11;\n return parityBit[mod];\n };\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n return check18IdCardNo(idCardNo);\n };\n return checkIdCardNo(str);\n },\n 'zh-HK': function zhHK(str) {\n // sanitize user input\n str = str.trim();\n\n // HKID number starts with 1 or 2 letters, followed by 6 digits,\n // then a checksum contained in square / round brackets or nothing\n var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\\([0-9A]\\))|(\\[[0-9A]\\])|([0-9A]))$/;\n var regexIsDigit = /^[0-9]$/;\n\n // convert the user input to all uppercase and apply regex\n str = str.toUpperCase();\n if (!regexHKID.test(str)) return false;\n str = str.replace(/\\[|\\]|\\(|\\)/g, '');\n if (str.length === 8) str = \"3\".concat(str);\n var checkSumVal = 0;\n for (var i = 0; i <= 7; i++) {\n var convertedChar = void 0;\n if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;else convertedChar = str[i];\n checkSumVal += convertedChar * (9 - i);\n }\n checkSumVal %= 11;\n var checkSumConverted;\n if (checkSumVal === 0) checkSumConverted = '0';else if (checkSumVal === 1) checkSumConverted = 'A';else checkSumConverted = String(11 - checkSumVal);\n if (checkSumConverted === str[str.length - 1]) return true;\n return false;\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n\n // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n var regex = options.allow_leading_zeroes === false ? int : intLeadingZeroes;\n\n // Check min/max/lt/gt\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar default_json_options = {\n allow_primitives: false\n};\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {/* ignore */}\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n if (len !== 3) {\n return false;\n }\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n return lat.test(pair[0]) && long.test(pair[1]);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n var presentationSequences = str.match(/(\\uFE0F|\\uFE0E)/g) || [];\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - presentationSequences.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar validators = {\n 'cs-CZ': function csCZ(str) {\n return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);\n },\n 'de-DE': function deDE(str) {\n return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÃœ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÃœ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÃœ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÃœ|ÃœB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÃœ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÃœD|BUL|BÃœR|BÃœS|BÃœZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÃœW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÃœS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÃœ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÃœL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÃœN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÃœN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÃœB|MÃœR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÃœ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÃœD|RÃœG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÃœ|SLZ|SMÃœ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÃœW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÃœM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\\d{1,4})|([A-Z]{2}[- ]?\\d{1,3})))[- ]?(E|H)?$/.test(str);\n },\n 'de-LI': function deLI(str) {\n return /^FL[- ]?\\d{1,5}[UZ]?$/.test(str);\n },\n 'en-IN': function enIN(str) {\n return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str);\n },\n 'es-AR': function esAR(str) {\n return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str);\n },\n 'fi-FI': function fiFI(str) {\n return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);\n },\n 'hu-HU': function huHU(str) {\n return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\\d{3})|(M\\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \\d{2}-\\d{2})|(CD \\d{3}-\\d{3})|(C-(C|X) \\d{4})|(X-(A|B|C) \\d{4})|(([EPVZ]-\\d{5}))|(S A[A-Z]{2} \\d{2})|(SP \\d{2}-\\d{2}))$/.test(str);\n },\n 'pt-BR': function ptBR(str) {\n return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);\n },\n 'pt-PT': function ptPT(str) {\n return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);\n },\n 'sq-AL': function sqAL(str) {\n return /^[A-Z]{2}[- ]?((\\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\\d{3}))$/.test(str);\n },\n 'sv-SE': function svSE(str) {\n return /^[A-HJ-PR-UW-Z]{3} ?[\\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim());\n },\n 'en-PK': function enPK(str) {\n return /(^[A-Z]{2}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\\s|-){0,1})[0-9]{3,4}((\\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\\s|-){0,1})[0-9]{4}((\\s|-)[0-9]{2}){0,1}$)/.test(str.trim());\n }\n};\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n /* eslint guard-for-in: 0 */\n var validator = validators[key];\n if (validator(str)) {\n return true;\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n = 3ALPHA ; selected ISO 639 codes\n *2(\"-\" 3ALPHA) ; permanently reserved\n */\nvar extlang = '([A-Za-z]{3}(-[A-Za-z]{3}){0,2})';\n\n/*\n = 2*3ALPHA ; shortest ISO 639 code\n [\"-\" extlang] ; sometimes followed by\n ; extended language subtags\n / 4ALPHA ; or reserved for future use\n / 5*8ALPHA ; or registered language subtag\n */\nvar language = \"(([a-zA-Z]{2,3}(-\".concat(extlang, \")?)|([a-zA-Z]{5,8}))\");\n\n/*\n = 4ALPHA ; ISO 15924 code\n */\nvar script = '([A-Za-z]{4})';\n\n/*\n = 2ALPHA ; ISO 3166-1 code\n / 3DIGIT ; UN M.49 code\n */\nvar region = '([A-Za-z]{2}|\\\\d{3})';\n\n/*\n = 5*8alphanum ; registered variants\n / (DIGIT 3alphanum)\n */\nvar variant = '([A-Za-z0-9]{5,8}|(\\\\d[A-Z-a-z0-9]{3}))';\n\n/*\n = DIGIT ; 0 - 9\n / %x41-57 ; A - W\n / %x59-5A ; Y - Z\n / %x61-77 ; a - w\n / %x79-7A ; y - z\n */\nvar singleton = '(\\\\d|[A-W]|[Y-Z]|[a-w]|[y-z])';\n\n/*\n = singleton 1*(\"-\" (2*8alphanum))\n ; Single alphanumerics\n ; \"x\" reserved for private use\n */\nvar extension = \"(\".concat(singleton, \"(-[A-Za-z0-9]{2,8})+)\");\n\n/*\n = \"x\" 1*(\"-\" (1*8alphanum))\n */\nvar privateuse = '(x(-[A-Za-z0-9]{1,8})+)';\n\n// irregular tags do not match the 'langtag' production and would not\n// otherwise be considered 'well-formed'. These tags are all valid, but\n// most are deprecated in favor of more modern subtags or subtag combination\n\nvar irregular = '((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|' + '(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|' + '(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))';\n\n// regular tags match the 'langtag' production, but their subtags are not\n// extended language or variant subtags: their meaning is defined by\n// their registration and all of these are deprecated in favor of a more\n// modern subtag or sequence of subtags\n\nvar regular = '((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|' + '(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))';\n\n/*\n = irregular ; non-redundant tags registered\n / regular ; during the RFC 3066 era\n\n */\nvar grandfathered = \"(\".concat(irregular, \"|\").concat(regular, \")\");\n\n/*\n RFC 5646 defines delimitation of subtags via a hyphen:\n\n \"Subtag\" refers to a specific section of a tag, delimited by a\n hyphen, such as the subtags 'zh', 'Hant', and 'CN' in the tag \"zh-\n Hant-CN\". Examples of subtags in this document are enclosed in\n single quotes ('Hant')\n\n However, we need to add \"_\" to maintain the existing behaviour.\n */\nvar delimiter = '(-|_)';\n\n/*\n = language\n [\"-\" script]\n [\"-\" region]\n *(\"-\" variant)\n *(\"-\" extension)\n [\"-\" privateuse]\n */\nvar langtag = \"\".concat(language, \"(\").concat(delimiter).concat(script, \")?(\").concat(delimiter).concat(region, \")?(\").concat(delimiter).concat(variant, \")*(\").concat(delimiter).concat(extension, \")*(\").concat(delimiter).concat(privateuse, \")?\");\n\n/*\n Regex implementation based on BCP RFC 5646\n Tags for Identifying Languages\n https://www.rfc-editor.org/rfc/rfc5646.html\n */\nvar languageTagRegex = new RegExp(\"(^\".concat(privateuse, \"$)|(^\").concat(grandfathered, \"$)|(^\").concat(langtag, \"$)\"));\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n return languageTagRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLuhnNumber(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n return !!(sum % 10 === 0 ? sanitized : false);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){4}([0-9a-fA-F]{2})$/;\nvar macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/;\nvar macAddress48WithDots = /^([0-9a-fA-F]{4}\\.){2}([0-9a-fA-F]{4})$/;\nvar macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){6}([0-9a-fA-F]{2})$/;\nvar macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/;\nvar macAddress64WithDots = /^([0-9a-fA-F]{4}\\.){3}([0-9a-fA-F]{4})$/;\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n if (options !== null && options !== void 0 && options.eui) {\n options.eui = String(options.eui);\n }\n /**\n * @deprecated `no_colons` TODO: remove it in the next major\n */\n if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) {\n if (options.eui === '48') {\n return macAddress48NoSeparators.test(str);\n }\n if (options.eui === '64') {\n return macAddress64NoSeparators.test(str);\n }\n return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '48') {\n return macAddress48.test(str) || macAddress48WithDots.test(str);\n }\n if ((options === null || options === void 0 ? void 0 : options.eui) === '64') {\n return macAddress64.test(str) || macAddress64WithDots.test(str);\n }\n return isMACAddress(str, {\n eui: '48'\n }) || isMACAddress(str, {\n eui: '64'\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar md5 = /^[a-f0-9]{32}$/;\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar magnetURIComponent = /(?:^magnet:\\?|[^?&]&)xt(?:\\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n if (url.indexOf('magnet:?') !== 0) {\n return false;\n }\n return magnetURIComponent.test(url);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMailtoURI;\nvar _trim = _interopRequireDefault(require(\"./trim\"));\nvar _isEmail = _interopRequireDefault(require(\"./isEmail\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction parseMailtoQueryString(queryString) {\n var allowedParams = new Set(['subject', 'body', 'cc', 'bcc']),\n query = {\n cc: '',\n bcc: ''\n };\n var isParseFailed = false;\n var queryParams = queryString.split('&');\n if (queryParams.length > 4) {\n return false;\n }\n var _iterator = _createForOfIteratorHelper(queryParams),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var q = _step.value;\n var _q$split = q.split('='),\n _q$split2 = _slicedToArray(_q$split, 2),\n key = _q$split2[0],\n value = _q$split2[1];\n\n // checked for invalid and duplicated query params\n if (key && !allowedParams.has(key)) {\n isParseFailed = true;\n break;\n }\n if (value && (key === 'cc' || key === 'bcc')) {\n query[key] = value;\n }\n if (key) {\n allowedParams.delete(key);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return isParseFailed ? false : query;\n}\nfunction isMailtoURI(url, options) {\n (0, _assertString.default)(url);\n if (url.indexOf('mailto:') !== 0) {\n return false;\n }\n var _url$replace$split = url.replace('mailto:', '').split('?'),\n _url$replace$split2 = _slicedToArray(_url$replace$split, 2),\n to = _url$replace$split2[0],\n _url$replace$split2$ = _url$replace$split2[1],\n queryString = _url$replace$split2$ === void 0 ? '' : _url$replace$split2$;\n if (!to && !queryString) {\n return true;\n }\n var query = parseMailtoQueryString(queryString);\n if (!query) {\n return false;\n }\n return \"\".concat(to, \",\").concat(query.cc, \",\").concat(query.bcc).split(',').every(function (email) {\n email = (0, _trim.default)(email, ' ');\n if (email) {\n return (0, _isEmail.default)(email, options);\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+_]{1,100}$/i; // eslint-disable-line max-len\n\n// Handle \"charset\" in \"text/*\"\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n\n// Handle \"boundary\" in \"multipart/*\"\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)(33|4[134]|55|77|88|9[13-689])\\d{6}$/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)([569]\\d{7}|41\\d{6})$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SD': /^((\\+?249)|0)?(9[012369]|1[012])\\d{7}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(10|5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)1)(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|9[1-9])\\d{5}$/,\n 'el-GR': /^(\\+?30|0)?6(8[5-9]|9(?![26])[0-9])\\d{7}$/,\n 'el-CY': /^(\\+?357?)?(9(9|6)\\d{6})$/,\n 'en-AI': /^(\\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\\d{4}$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-AG': /^(?:\\+1|1)268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}$))/,\n 'en-BS': /^(\\+?1[-\\s]?|0)?\\(?242\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-JM': /^(\\+?876)?\\d{7}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'fr-CF': /^(\\+?236| ?)(70|75|77|72|21|22)\\d{6}$/,\n 'en-SS': /^(\\+?211|0)(9[1257])\\d{7}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-KN': /^(?:\\+1|1)869(?:46\\d|48[89]|55[6-8]|66\\d|76[02-7])\\d{4}$/,\n 'en-LS': /^(\\+?266)(22|28|57|58|59|27|52)\\d{6}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-MW': /^(\\+?265|0)(((77|88|31|99|98|21)\\d{7})|(((111)|1)\\d{6})|(32000\\d{4}))$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PG': /^(\\+?675|0)?(7\\d|8[18])\\d{6}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8|3|2]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-NI': /^(\\+?505)\\d{7,8}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4[0-6]|50)\\s?(\\d\\s?){4,8}$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-BJ': /^(\\+229)\\d{8}$/,\n 'fr-CD': /^(\\+?243|0)?(8|9)\\d{8}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'fr-WF': /^(\\+681)?\\d{6}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'ir-IR': /^(\\+98|0)?9\\d{9}$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(79\\d{7}|5\\d{8})$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'ky-KG': /^(\\+?7\\s?\\+?7|0)\\s?\\d{2}\\s?\\d{3}\\s?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'mg-MG': /^((\\+?261|0)(2|3)\\d)?\\d{7}$/,\n 'mn-MN': /^(\\+|00|011)?976(77|81|88|91|94|95|96|99)\\d{6}$/,\n 'my-MM': /^(\\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,\n 'ms-MY': /^(\\+?60|0)1(([0145](-|\\s)?\\d{7,8})|([236-9](-|\\s)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nl-AW': /^(\\+)?297(56|59|64|73|74|99)\\d{5}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?([5-8]\\d|45) ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[1-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-MD': /^(\\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\\d{6}$/,\n 'ro-RO': /^(\\+?40|0)\\s?7\\d{2}(\\/|\\s|\\.|-)?\\d{3}(\\s|\\.|-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'so-SO': /^(\\+?252|0)((6[0-9])\\d{7}|(7[1-9])\\d{7})$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/,\n 'ar-YE': /^(((\\+|00)9677|0?7)[0137]\\d{7}|((\\+|00)967|0)[1-7]\\d{6})$/,\n 'ar-EH': /^(\\+?212|0)[\\s\\-]?(5288|5289)[\\s\\-]?\\d{5}$/,\n 'fa-AF': /^(\\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\\d{7})$/\n};\n/* eslint-enable max-len */\n\n// aliases\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str);\n // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(phones);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar numericNoSymbols = /^[0-9]+$/;\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar octal = /^(0o)?[0-7]+$/i;\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n AZ: /^[A-Z]{1}\\d{8}$/,\n // AZERBAIJAN\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JM: /^[Aa]\\d{7}$/,\n // JAMAICA\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n KZ: /^[a-zA-Z]\\d{7}$/,\n // KAZAKHSTAN\n LI: /^[a-zA-Z]\\d{5}$/,\n // LIECHTENSTEIN\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n MX: /^\\d{10,11}$/,\n // MEXICO\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\\d{6}$/,\n // NEW ZEALAND\n PH: /^([A-Z](\\d{6}|\\d{7}[A-Z]))|([A-Z]{2}(\\d{6}|\\d{7}))$/,\n // PHILIPPINES\n PK: /^[A-Z]{2}\\d{7}$/,\n // PAKISTAN\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVENIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TH: /^[A-Z]{1,2}\\d{6,7}$/,\n // THAILAND\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/,\n // UNITED STATES\n ZA: /^[TAMD]\\d{8}$/ // SOUTH AFRICA\n};\n\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n allow_leading_zeroes: false,\n min: 0,\n max: 65535\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BA: /^([7-8]\\d{4}$)/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /^2[1-4]\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /^(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MG: threeDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^[1-9]\\d{3}\\s?(?!sa|sd|ss)[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = exports.locales = Object.keys(patterns);\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\n\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"^\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source, \"$\"));\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)$/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar upperCaseRegex = /^[A-Z]$/;\nvar lowerCaseRegex = /^[a-z]$/;\nvar numberRegex = /^[0-9]$/;\nvar symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/\\\\ ]$/;\nvar defaultOptions = {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 1,\n minNumbers: 1,\n minSymbols: 1,\n returnScore: false,\n pointsPerUnique: 1,\n pointsPerRepeat: 0.5,\n pointsForContainingLower: 10,\n pointsForContainingUpper: 10,\n pointsForContainingNumber: 10,\n pointsForContainingSymbol: 10\n};\n\n/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n\n/* Return information about a password */\nfunction analyzePassword(password) {\n var charMap = countChars(password);\n var analysis = {\n length: password.length,\n uniqueChars: Object.keys(charMap).length,\n uppercaseCount: 0,\n lowercaseCount: 0,\n numberCount: 0,\n symbolCount: 0\n };\n Object.keys(charMap).forEach(function (char) {\n /* istanbul ignore else */\n if (upperCaseRegex.test(char)) {\n analysis.uppercaseCount += charMap[char];\n } else if (lowerCaseRegex.test(char)) {\n analysis.lowercaseCount += charMap[char];\n } else if (numberRegex.test(char)) {\n analysis.numberCount += charMap[char];\n } else if (symbolRegex.test(char)) {\n analysis.symbolCount += charMap[char];\n }\n });\n return analysis;\n}\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n return points;\n}\nfunction isStrongPassword(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _assertString.default)(str);\n var analysis = analyzePassword(str);\n options = (0, _merge.default)(options || {}, defaultOptions);\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * TIN Validation\n * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.\n *\n * EU-UK:\n * National TIN validity is calculated using public algorithms as made available by DG TAXUD.\n *\n * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.\n *\n * US:\n * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,\n * is used to identify a business entity.\n *\n * NOTES:\n * - Prefix 47 is being reserved for future use\n * - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.\n *\n * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`\n * for more information.\n */\n\n// Locale functions\n\n/*\n * bg-BG validation function\n * (Edinen graždanski nomer (EGN/ЕГÐ), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last) digit\n */\nfunction bgBgCheck(tin) {\n // Extract full year, normalize month and check birth date validity\n var century_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 40) {\n month -= 40;\n century_year = \"20\".concat(century_year);\n } else if (month > 20) {\n month -= 20;\n century_year = \"18\".concat(century_year);\n } else {\n century_year = \"19\".concat(century_year);\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Calculate checksum by multiplying digits with fixed values\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\n}\n\n/**\n * Check if an input is a valid Canadian SIN (Social Insurance Number)\n *\n * The Social Insurance Number (SIN) is a 9 digit number that\n * you need to work in Canada or to have access to government programs and benefits.\n *\n * https://en.wikipedia.org/wiki/Social_Insurance_Number\n * https://www.canada.ca/en/employment-social-development/services/sin.html\n * https://www.codercrunch.com/challenge/819302488/sin-validator\n *\n * @param {string} input\n * @return {boolean}\n */\nfunction isCanadianSIN(input) {\n var digitsArray = input.split('');\n var even = digitsArray.filter(function (_, idx) {\n return idx % 2;\n }).map(function (i) {\n return Number(i) * 2;\n }).join('').split('');\n var total = digitsArray.filter(function (_, idx) {\n return !(idx % 2);\n }).concat(even).map(function (i) {\n return Number(i);\n }).reduce(function (acc, cur) {\n return acc + cur;\n });\n return total % 10 === 0;\n}\n\n/*\n * cs-CZ validation function\n * (Rodné ÄÃslo (RÄŒ), persons only)\n * Checks if birth date (first six digits) is valid and divisibility by 11\n * Material not in DG TAXUD document sourced from:\n * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`\n * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`\n */\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (tin.length === 10) {\n if (full_year < 54) {\n full_year = \"20\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n } else {\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n if (full_year < 54) {\n full_year = \"19\".concat(full_year);\n } else {\n return false; // No 18XX years seen in any of the resources\n }\n }\n // Add missing zero if needed\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month > 20) {\n // Month-plus-twenty was only introduced in 2004\n if (parseInt(full_year, 10) < 2004) {\n return false;\n }\n month -= 20;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Verify divisibility by 11\n if (tin.length === 10) {\n if (parseInt(tin, 10) % 11 !== 0) {\n // Some numbers up to and including 1985 are still valid if\n // check (last) digit equals 0 and modulo of first 9 digits equals 10\n var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;\n if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {\n if (parseInt(tin.slice(9), 10) !== 0) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\n}\n\n/*\n * de-DE validation function\n * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)\n * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit\n * Partial implementation of spec (same result with both algorithms always)\n */\nfunction deDeCheck(tin) {\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n\n // Fill array with strings of number positions\n var occurences = [];\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n }\n\n // Remove digits with one occurence and test for only one duplicate/triplicate\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n }\n\n // In case of triplicate value only two digits are allowed next to each other\n if (occurences[0].length === 3) {\n var trip_locations = occurences[0].split('').map(function (a) {\n return parseInt(a, 10);\n });\n var recurrent = 0; // Amount of neighbour occurences\n for (var _i = 0; _i < trip_locations.length - 1; _i++) {\n if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {\n recurrent += 1;\n }\n }\n if (recurrent === 2) {\n return false;\n }\n }\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * dk-DK validation function\n * (CPR-nummer (personnummer), persons only)\n * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,\n * and calculates check (last) digit\n */\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, '');\n\n // Extract year, check if valid for given century digit and add century\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n break;\n default:\n if (year < 37) {\n year = \"20\".concat(year);\n } else if (year > 58) {\n year = \"18\".concat(year);\n } else {\n return false;\n }\n break;\n }\n // Add missing zero if needed\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n }\n // Check date validity\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n if (weight === 1) {\n weight = 7;\n }\n }\n checksum %= 11;\n if (checksum === 1) {\n return false;\n }\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\n}\n\n/*\n * el-CY validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)\n * Verify TIN validity by calculating ASCII value of check (last) character\n */\nfunction elCyCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.slice(0, 8).split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n // add digits in even places\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n }\n\n // add digits in odd places\n for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {\n if (digits[_i2] < 2) {\n checksum += 1 - digits[_i2];\n } else {\n checksum += 2 * (digits[_i2] - 2) + 5;\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\n}\n\n/*\n * el-GR validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)\n * Verify TIN validity by calculating check (last) digit\n * Algorithm not in DG TAXUD document- sourced from:\n * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`\n */\nfunction elGrCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n return checksum % 11 % 10 === digits[8];\n}\n\n/*\n * en-GB validation function (should go here if needed)\n * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),\n * persons/entities respectively)\n */\n\n/*\n * en-IE validation function\n * (Personal Public Service Number (PPS No), persons only)\n * Verify TIN validity by calculating check (second to last) character\n */\nfunction enIeCheck(tin) {\n var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8);\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n checksum %= 23;\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n}\n\n// Valid US IRS campus prefixes\nvar enUsCampusPrefix = {\n andover: ['10', '12'],\n atlanta: ['60', '67'],\n austin: ['50', '53'],\n brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],\n cincinnati: ['30', '32', '35', '36', '37', '38', '61'],\n fresno: ['15', '24'],\n internet: ['20', '26', '27', '45', '46', '47'],\n kansas: ['40', '44'],\n memphis: ['94', '95'],\n ogden: ['80', '90'],\n philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],\n sba: ['31']\n};\n\n// Return an array of all US IRS campus prefixes\nfunction enUsGetPrefixes() {\n var prefixes = [];\n for (var location in enUsCampusPrefix) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (enUsCampusPrefix.hasOwnProperty(location)) {\n prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));\n }\n }\n return prefixes;\n}\n\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;\n}\n\n/*\n * es-AR validation function\n * Clave Única de Identificación Tributaria (CUIT/CUIL)\n * Sourced from:\n * - https://servicioscf.afip.gob.ar/publico/abc/ABCpaso2.aspx?id_nivel1=3036&id_nivel2=3040&p=Conceptos%20b%C3%A1sicos\n * - https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Identificaci%C3%B3n_Tributaria\n */\n\nfunction esArCheck(tin) {\n var accum = 0;\n var digits = tin.split('');\n var digit = parseInt(digits.pop(), 10);\n for (var i = 0; i < digits.length; i++) {\n accum += digits[9 - i] * (2 + i % 6);\n }\n var verif = 11 - accum % 11;\n if (verif === 11) {\n verif = 0;\n } else if (verif === 10) {\n verif = 9;\n }\n return digit === verif;\n}\n\n/*\n * es-ES validation function\n * (Documento Nacional de Identidad (DNI)\n * or Número de Identificación de Extranjero (NIE), persons only)\n * Verify TIN validity by calculating check (last) character\n */\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Replace initial letter if needed\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n case 'Z':\n lead_replace = 2;\n break;\n default:\n }\n chars.splice(0, 1, lead_replace);\n // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n }\n\n // Calculate checksum and check according to lookup\n var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n chars = chars.join('');\n var checksum = parseInt(chars.slice(0, 8), 10) % 23;\n return chars[8] === lookup[checksum];\n}\n\n/*\n * et-EE validation function\n * (Isikukood (IK), persons only)\n * Checks if birth date (century digit and six following) is valid and calculates check (last) digit\n * Material not in DG TAXUD document sourced from:\n * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`\n */\nfunction etEeCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(1, 3);\n var century_digit = tin.slice(0, 1);\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1;\n // Multiply by weight and add to checksum\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n // Do again if modulo 11 of checksum is 10\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n if (weight === 10) {\n weight = 1;\n }\n }\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n return checksum % 11 === digits[10];\n}\n\n/*\n * fi-FI validation function\n * (Henkilötunnus (HETU), persons only)\n * Checks if birth date (first six digits plus century symbol) is valid\n * and calculates check (last) digit\n */\nfunction fiFiCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(4, 6);\n var century_symbol = tin.slice(6, 7);\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check character\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\n checksum -= 10;\n var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];\n return letters_lookup[checksum] === tin.slice(10);\n}\n\n/*\n * fr/nl-BE validation function\n * (Numéro national (N.N.), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last two) digits\n */\nfunction frBeCheck(tin) {\n // Zero month/day value is acceptable\n if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {\n // Extract date from first six digits of TIN\n var date = \"\".concat(tin.slice(0, 2), \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n if (checksum !== checkdigits) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * fr-FR validation function\n * (Numéro fiscal de référence (numéro SPI), persons only)\n * Verify TIN validity by calculating check (last three) digits\n */\nfunction frFrCheck(tin) {\n tin = tin.replace(/\\s/g, '');\n var checksum = parseInt(tin.slice(0, 10), 10) % 511;\n var checkdigits = parseInt(tin.slice(10, 13), 10);\n return checksum === checkdigits;\n}\n\n/*\n * fr/lb-LU validation function\n * (numéro d’identification personnelle, persons only)\n * Verify birth date validity and run Luhn and Verhoeff checks\n */\nfunction frLuCheck(tin) {\n // Extract date and check validity\n var date = \"\".concat(tin.slice(0, 4), \"/\").concat(tin.slice(4, 6), \"/\").concat(tin.slice(6, 8));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Run Luhn check\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n }\n // Remove Luhn check digit and run Verhoeff check\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n\n/*\n * hu-HU validation function\n * (AdóazonosÃtó jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\nfunction huHuCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 8;\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n return checksum % 11 === digits[9];\n}\n\n/*\n * lt-LT validation function (should go here if needed)\n * (Asmens kodas, persons/entities respectively)\n * Current validation check is alias of etEeCheck- same format applies\n */\n\n/*\n * it-IT first/last name validity check\n * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity\n * Due to lack of clarity between resources (\"Are only Italian consonants used?\n * What happens if a person has X in their name?\" etc.) only two test conditions\n * have been implemented:\n * Vowels may only be followed by other vowels or an X character\n * and X characters after vowels may only be followed by other X characters.\n */\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false;\n\n // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n var xflag = false;\n for (var i = 0; i < 3; i++) {\n if (!vowelflag && /[AEIOU]/.test(name[i])) {\n vowelflag = true;\n } else if (!xflag && vowelflag && name[i] === 'X') {\n xflag = true;\n } else if (i > 0) {\n if (vowelflag && !xflag) {\n if (!/[AEIOU]/.test(name[i])) {\n return false;\n }\n }\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * it-IT validation function\n * (Codice fiscale (TIN-IT), persons only)\n * Verify name, birth date and codice catastale validity\n * and calculate check character.\n * Material not in DG-TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/Italian_fiscal_code`\n */\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split('');\n\n // Check first and last name validity calling itItNameCheck()\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n }\n\n // Convert letters in number spaces back to numbers if any\n var number_locations = [6, 7, 9, 10, 12, 13, 14];\n var number_replace = {\n L: '0',\n M: '1',\n N: '2',\n P: '3',\n Q: '4',\n R: '5',\n S: '6',\n T: '7',\n U: '8',\n V: '9'\n };\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n }\n\n // Extract month and day, and check date validity\n var month_replace = {\n A: '01',\n B: '02',\n C: '03',\n D: '04',\n E: '05',\n H: '06',\n L: '07',\n M: '08',\n P: '09',\n R: '10',\n S: '11',\n T: '12'\n };\n var month = month_replace[chars[8]];\n var day = parseInt(chars[9] + chars[10], 10);\n if (day > 40) {\n day -= 40;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n\n // Calculate check character by adding up even and odd characters as numbers\n var checksum = 0;\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n checksum += char_to_int;\n }\n var odd_convert = {\n // Maps of characters at odd places\n A: 1,\n B: 0,\n C: 5,\n D: 7,\n E: 9,\n F: 13,\n G: 15,\n H: 17,\n I: 19,\n J: 21,\n K: 2,\n L: 4,\n M: 18,\n N: 20,\n O: 11,\n P: 3,\n Q: 6,\n R: 8,\n S: 12,\n T: 14,\n U: 16,\n V: 10,\n W: 22,\n X: 25,\n Y: 24,\n Z: 23,\n 0: 1,\n 1: 0\n };\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n if (chars[_i6] in odd_convert) {\n _char_to_int = odd_convert[chars[_i6]];\n } else {\n var multiplier = parseInt(chars[_i6], 10);\n _char_to_int = 2 * multiplier + 1;\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n checksum += _char_to_int;\n }\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n return true;\n}\n\n/*\n * lv-LV validation function\n * (Personas kods (PK), persons only)\n * Check validity of birth date and calculate check (last) digit\n * Support only for old format numbers (not starting with '32', issued before 2017/07/01)\n * Material not in DG TAXUD document sourced from:\n * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`\n */\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, '');\n // Extract date from TIN\n var day = tin.slice(0, 2);\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n default:\n full_year = \"20\".concat(full_year);\n break;\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n // Calculate check digit\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n return parseInt(tin[10], 10) === checksum % 11;\n }\n return true;\n}\n\n/*\n * mt-MT validation function\n * (Identity Card Number or Unique Taxpayer Reference, persons/entities)\n * Verify Identity Card Number structure (no other tests found)\n */\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split('');\n // Fill with zeros if smaller than proper\n while (chars.length < 8) {\n chars.unshift(0);\n }\n // Validate format according to last character\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n break;\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n if (first_part > 32000) {\n return false;\n }\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n/*\n * nl-NL validation function\n * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),\n * persons/entities respectively)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction nlNlCheck(tin) {\n return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11 === parseInt(tin[8], 10);\n}\n\n/*\n * pl-PL validation function\n * (Powszechny Elektroniczny System Ewidencji LudnoÅ›ci (PESEL)\n * or Numer identyfikacji podatkowej (NIP), persons/entities)\n * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit\n */\nfunction plPlCheck(tin) {\n // NIP\n if (tin.length === 10) {\n // Calculate last digit by multiplying with lookup\n var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n var _checksum = 0;\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n _checksum %= 11;\n if (_checksum === 10) {\n return false;\n }\n return _checksum === parseInt(tin[9], 10);\n }\n\n // PESEL\n // Extract full year using month\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 80) {\n full_year = \"18\".concat(full_year);\n month -= 80;\n } else if (month > 60) {\n full_year = \"22\".concat(full_year);\n month -= 60;\n } else if (month > 40) {\n full_year = \"21\".concat(full_year);\n month -= 40;\n } else if (month > 20) {\n full_year = \"20\".concat(full_year);\n month -= 20;\n } else {\n full_year = \"19\".concat(full_year);\n }\n // Add leading zero to month if needed\n if (month < 10) {\n month = \"0\".concat(month);\n }\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate last digit by mulitplying with odd one-digit numbers except 5\n var checksum = 0;\n var multiplier = 1;\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\n}\n\n/*\n* pt-BR validation function\n* (Cadastro de Pessoas FÃsicas (CPF, persons)\n* Cadastro Nacional de Pessoas JurÃdicas (CNPJ, entities)\n* Both inputs will be validated\n*/\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n var remainder;\n _sum = 0;\n if (\n // Reject known invalid CPFs\n tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;\n for (var i = 1; i <= 9; i++) _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;\n _sum = 0;\n for (var _i8 = 1; _i8 <= 10; _i8++) _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;\n return true;\n }\n if (\n // Reject know invalid CNPJs\n tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {\n return false;\n }\n var length = tin.length - 2;\n var identifiers = tin.substring(0, length);\n var verificators = tin.substring(length);\n var sum = 0;\n var pos = length - 7;\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n return true;\n}\n\n/*\n * pt-PT validation function\n * (Número de identificação fiscal (NIF), persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ptPtCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n}\n\n/*\n * ro-RO validation function\n * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),\n * persons only)\n * Verify CNP validity by calculating check (last) digit (test not found for CIF)\n * Material not in DG TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/National_identification_number#Romania`\n */\nfunction roRoCheck(tin) {\n if (tin.slice(0, 4) !== '9000') {\n // No test found for this format\n // Extract full year using century digit if possible\n var full_year = tin.slice(1, 3);\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n default:\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n return digits[12] === checksum % 11;\n }\n return true;\n}\n\n/*\n * sk-SK validation function\n * (Rodné ÄÃslo (RÄŒ) or bezvýznamové identifikaÄné ÄÃslo (BIÄŒ), persons only)\n * Checks validity of pre-1954 birth numbers (rodné ÄÃslo) only\n * Due to the introduction of the pseudo-random BIÄŒ it is not possible to test\n * post-1954 birth numbers without knowing whether they are BIÄŒ or RÄŒ beforehand\n */\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n\n // Extract full year from TIN length\n var full_year = parseInt(tin.slice(0, 2), 10);\n if (full_year > 53) {\n return false;\n }\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n\n // Extract month from TIN and normalize\n var month = parseInt(tin.slice(2, 4), 10);\n if (month > 50) {\n month -= 50;\n }\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n // Check date validity\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n return true;\n}\n\n/*\n * sl-SI validation function\n * (DavÄna Å¡tevilka, persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction slSiCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8) % 11;\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n return checksum === parseInt(tin[7], 10);\n}\n\n/*\n * sv-SE validation function\n * (Personnummer or samordningsnummer, persons only)\n * Checks validity of birth date and calls luhnCheck() to validate check (last) digit\n */\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n }\n\n // Extract date of birth\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n if (tin.length === 11 && day < 60) {\n // Extract full year from centenarian symbol\n // Should work just fine until year 10000 or so\n var current_year = new Date().getFullYear().toString();\n var current_century = parseInt(current_year.slice(0, 2), 10);\n current_year = parseInt(current_year, 10);\n if (tin[6] === '-') {\n if (parseInt(\"\".concat(current_century).concat(full_year), 10) > current_year) {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n } else {\n full_year = \"\".concat(current_century).concat(full_year);\n }\n } else {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n }\n\n // Normalize day and check date validity\n if (day > 60) {\n day -= 60;\n }\n if (day < 10) {\n day = \"0\".concat(day);\n }\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n return algorithms.luhnCheck(tin.replace(/\\W/, ''));\n}\n\n/**\n * uk-UA validation function\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\nfunction ukUaCheck(tin) {\n // Calculate check digit\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [-1, 5, 7, 9, 4, 6, 10, 5, 7];\n var checksum = 0;\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n return checksum % 11 === 10 ? digits[9] === 0 : digits[9] === checksum % 11;\n}\n\n// Locale lookup objects\n\n/*\n * Tax id regex formats for various locales\n *\n * Where not explicitly specified in DG-TAXUD document both\n * uppercase and lowercase letters are acceptable.\n */\nvar taxIdFormat = {\n 'bg-BG': /^\\d{10}$/,\n 'cs-CZ': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'de-AT': /^\\d{9}$/,\n 'de-DE': /^[1-9]\\d{10}$/,\n 'dk-DK': /^\\d{6}-{0,1}\\d{4}$/,\n 'el-CY': /^[09]\\d{7}[A-Z]$/,\n 'el-GR': /^([0-4]|[7-9])\\d{8}$/,\n 'en-CA': /^\\d{9}$/,\n 'en-GB': /^\\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\\d{6}[ABCD ]$/i,\n 'en-IE': /^\\d{7}[A-W][A-IW]{0,1}$/i,\n 'en-US': /^\\d{2}[- ]{0,1}\\d{7}$/,\n 'es-AR': /(20|23|24|27|30|33|34)[0-9]{8}[0-9]/,\n 'es-ES': /^(\\d{0,8}|[XYZKLM]\\d{7})[A-HJ-NP-TV-Z]$/i,\n 'et-EE': /^[1-6]\\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\\d$/,\n 'fi-FI': /^\\d{6}[-+A]\\d{3}[0-9A-FHJ-NPR-Y]$/i,\n 'fr-BE': /^\\d{11}$/,\n 'fr-FR': /^[0-3]\\d{12}$|^[0-3]\\d\\s\\d{2}(\\s\\d{3}){3}$/,\n // Conforms both to official spec and provided example\n 'fr-LU': /^\\d{13}$/,\n 'hr-HR': /^\\d{11}$/,\n 'hu-HU': /^8\\d{9}$/,\n 'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,\n 'lv-LV': /^\\d{6}-{0,1}\\d{5}$/,\n // Conforms both to DG TAXUD spec and original research\n 'mt-MT': /^\\d{3,7}[APMGLHBZ]$|^([1-8])\\1\\d{7}$/i,\n 'nl-NL': /^\\d{9}$/,\n 'pl-PL': /^\\d{10,11}$/,\n 'pt-BR': /(?:^\\d{11}$)|(?:^\\d{14}$)/,\n 'pt-PT': /^\\d{9}$/,\n 'ro-RO': /^\\d{13}$/,\n 'sk-SK': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'sl-SI': /^[1-9]\\d{7}$/,\n 'sv-SE': /^(\\d{6}[-+]{0,1}\\d{4}|(18|19|20)\\d{6}[-+]{0,1}\\d{4})$/,\n 'uk-UA': /^\\d{10}$/\n};\n// taxIdFormat locale aliases\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE'];\ntaxIdFormat['fr-CA'] = taxIdFormat['en-CA'];\n\n// Algorithmic tax id check functions for various locales\nvar taxIdCheck = {\n 'bg-BG': bgBgCheck,\n 'cs-CZ': csCzCheck,\n 'de-AT': deAtCheck,\n 'de-DE': deDeCheck,\n 'dk-DK': dkDkCheck,\n 'el-CY': elCyCheck,\n 'el-GR': elGrCheck,\n 'en-CA': isCanadianSIN,\n 'en-IE': enIeCheck,\n 'en-US': enUsCheck,\n 'es-AR': esArCheck,\n 'es-ES': esEsCheck,\n 'et-EE': etEeCheck,\n 'fi-FI': fiFiCheck,\n 'fr-BE': frBeCheck,\n 'fr-FR': frFrCheck,\n 'fr-LU': frLuCheck,\n 'hr-HR': hrHrCheck,\n 'hu-HU': huHuCheck,\n 'it-IT': itItCheck,\n 'lv-LV': lvLvCheck,\n 'mt-MT': mtMtCheck,\n 'nl-NL': nlNlCheck,\n 'pl-PL': plPlCheck,\n 'pt-BR': ptBrCheck,\n 'pt-PT': ptPtCheck,\n 'ro-RO': roRoCheck,\n 'sk-SK': skSkCheck,\n 'sl-SI': slSiCheck,\n 'sv-SE': svSeCheck,\n 'uk-UA': ukUaCheck\n};\n// taxIdCheck locale aliases\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE'];\ntaxIdCheck['fr-CA'] = taxIdCheck['en-CA'];\n\n// Regexes for locales where characters should be omitted before checking format\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n};\n// sanitizeRegexes locale aliases\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\n\n/*\n * Validator function\n * Return true if the passed string is a valid tax identification number\n * for the specified locale.\n * Throw an error exception if the locale is not supported.\n */\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n // Copy TIN to avoid replacement if sanitized\n var strcopy = str.slice(0);\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n }\n // Fallthrough; not all locales have algorithmic checks\n return true;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTime;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_time_options = {\n hourFormat: 'hour24',\n mode: 'default'\n};\nvar formats = {\n hour24: {\n default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,\n withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/\n },\n hour12: {\n default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,\n withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/\n }\n};\nfunction isTime(input, options) {\n options = (0, _merge.default)(options, default_time_options);\n if (typeof input !== 'string') return false;\n return formats[options.hourFormat][options.mode].test(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar AU = function AU(str) {\n var match = str.match(/^(AU)?(\\d{11})$/);\n if (!match) {\n return false;\n }\n // @see {@link https://abr.business.gov.au/Help/AbnFormat}\n var weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];\n str = str.replace(/^AU/, '');\n var ABN = (parseInt(str.slice(0, 1), 10) - 1).toString() + str.slice(1);\n var total = 0;\n for (var i = 0; i < 11; i++) {\n total += weights[i] * ABN.charAt(i);\n }\n return total !== 0 && total % 89 === 0;\n};\nvar CH = function CH(str) {\n // @see {@link https://www.ech.ch/de/ech/ech-0097/5.2.0}\n var hasValidCheckNumber = function hasValidCheckNumber(digits) {\n var lastDigit = digits.pop(); // used as check number\n var weights = [5, 4, 3, 2, 7, 6, 5, 4];\n var calculatedCheckNumber = (11 - digits.reduce(function (acc, el, idx) {\n return acc + el * weights[idx];\n }, 0) % 11) % 11;\n return lastDigit === calculatedCheckNumber;\n };\n\n // @see {@link https://www.estv.admin.ch/estv/de/home/mehrwertsteuer/uid/mwst-uid-nummer.html}\n return /^(CHE[- ]?)?(\\d{9}|(\\d{3}\\.\\d{3}\\.\\d{3})|(\\d{3} \\d{3} \\d{3})) ?(TVA|MWST|IVA)?$/.test(str) && hasValidCheckNumber(str.match(/\\d/g).map(function (el) {\n return +el;\n }));\n};\nvar PT = function PT(str) {\n var match = str.match(/^(PT)?(\\d{9})$/);\n if (!match) {\n return false;\n }\n var tin = match[2];\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n return checksum === parseInt(tin[8], 10);\n};\nvar vatMatchers = exports.vatMatchers = {\n /**\r\n * European Union VAT identification numbers\r\n */\n AT: function AT(str) {\n return /^(AT)?U\\d{8}$/.test(str);\n },\n BE: function BE(str) {\n return /^(BE)?\\d{10}$/.test(str);\n },\n BG: function BG(str) {\n return /^(BG)?\\d{9,10}$/.test(str);\n },\n HR: function HR(str) {\n return /^(HR)?\\d{11}$/.test(str);\n },\n CY: function CY(str) {\n return /^(CY)?\\w{9}$/.test(str);\n },\n CZ: function CZ(str) {\n return /^(CZ)?\\d{8,10}$/.test(str);\n },\n DK: function DK(str) {\n return /^(DK)?\\d{8}$/.test(str);\n },\n EE: function EE(str) {\n return /^(EE)?\\d{9}$/.test(str);\n },\n FI: function FI(str) {\n return /^(FI)?\\d{8}$/.test(str);\n },\n FR: function FR(str) {\n return /^(FR)?\\w{2}\\d{9}$/.test(str);\n },\n DE: function DE(str) {\n return /^(DE)?\\d{9}$/.test(str);\n },\n EL: function EL(str) {\n return /^(EL)?\\d{9}$/.test(str);\n },\n HU: function HU(str) {\n return /^(HU)?\\d{8}$/.test(str);\n },\n IE: function IE(str) {\n return /^(IE)?\\d{7}\\w{1}(W)?$/.test(str);\n },\n IT: function IT(str) {\n return /^(IT)?\\d{11}$/.test(str);\n },\n LV: function LV(str) {\n return /^(LV)?\\d{11}$/.test(str);\n },\n LT: function LT(str) {\n return /^(LT)?\\d{9,12}$/.test(str);\n },\n LU: function LU(str) {\n return /^(LU)?\\d{8}$/.test(str);\n },\n MT: function MT(str) {\n return /^(MT)?\\d{8}$/.test(str);\n },\n NL: function NL(str) {\n return /^(NL)?\\d{9}B\\d{2}$/.test(str);\n },\n PL: function PL(str) {\n return /^(PL)?(\\d{10}|(\\d{3}-\\d{3}-\\d{2}-\\d{2})|(\\d{3}-\\d{2}-\\d{2}-\\d{3}))$/.test(str);\n },\n PT: PT,\n RO: function RO(str) {\n return /^(RO)?\\d{2,10}$/.test(str);\n },\n SK: function SK(str) {\n return /^(SK)?\\d{10}$/.test(str);\n },\n SI: function SI(str) {\n return /^(SI)?\\d{8}$/.test(str);\n },\n ES: function ES(str) {\n return /^(ES)?\\w\\d{7}[A-Z]$/.test(str);\n },\n SE: function SE(str) {\n return /^(SE)?\\d{12}$/.test(str);\n },\n /**\r\n * VAT numbers of non-EU countries\r\n */\n AL: function AL(str) {\n return /^(AL)?\\w{9}[A-Z]$/.test(str);\n },\n MK: function MK(str) {\n return /^(MK)?\\d{13}$/.test(str);\n },\n AU: AU,\n BY: function BY(str) {\n return /^(УÐП )?\\d{9}$/.test(str);\n },\n CA: function CA(str) {\n return /^(CA)?\\d{9}$/.test(str);\n },\n IS: function IS(str) {\n return /^(IS)?\\d{5,6}$/.test(str);\n },\n IN: function IN(str) {\n return /^(IN)?\\d{15}$/.test(str);\n },\n ID: function ID(str) {\n return /^(ID)?(\\d{15}|(\\d{2}.\\d{3}.\\d{3}.\\d{1}-\\d{3}.\\d{3}))$/.test(str);\n },\n IL: function IL(str) {\n return /^(IL)?\\d{9}$/.test(str);\n },\n KZ: function KZ(str) {\n return /^(KZ)?\\d{12}$/.test(str);\n },\n NZ: function NZ(str) {\n return /^(NZ)?\\d{9}$/.test(str);\n },\n NG: function NG(str) {\n return /^(NG)?(\\d{12}|(\\d{8}-\\d{4}))$/.test(str);\n },\n NO: function NO(str) {\n return /^(NO)?\\d{9}MVA$/.test(str);\n },\n PH: function PH(str) {\n return /^(PH)?(\\d{12}|\\d{3} \\d{3} \\d{3} \\d{3})$/.test(str);\n },\n RU: function RU(str) {\n return /^(RU)?(\\d{10}|\\d{12})$/.test(str);\n },\n SM: function SM(str) {\n return /^(SM)?\\d{5}$/.test(str);\n },\n SA: function SA(str) {\n return /^(SA)?\\d{15}$/.test(str);\n },\n RS: function RS(str) {\n return /^(RS)?\\d{9}$/.test(str);\n },\n CH: CH,\n TR: function TR(str) {\n return /^(TR)?\\d{10}$/.test(str);\n },\n UA: function UA(str) {\n return /^(UA)?\\d{12}$/.test(str);\n },\n GB: function GB(str) {\n return /^GB((\\d{3} \\d{4} ([0-8][0-9]|9[0-6]))|(\\d{9} \\d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str);\n },\n UZ: function UZ(str) {\n return /^(UZ)?\\d{9}$/.test(str);\n },\n /**\r\n * VAT numbers of Latin American countries\r\n */\n AR: function AR(str) {\n return /^(AR)?\\d{11}$/.test(str);\n },\n BO: function BO(str) {\n return /^(BO)?\\d{7}$/.test(str);\n },\n BR: function BR(str) {\n return /^(BR)?((\\d{2}.\\d{3}.\\d{3}\\/\\d{4}-\\d{2})|(\\d{3}.\\d{3}.\\d{3}-\\d{2}))$/.test(str);\n },\n CL: function CL(str) {\n return /^(CL)?\\d{8}-\\d{1}$/.test(str);\n },\n CO: function CO(str) {\n return /^(CO)?\\d{10}$/.test(str);\n },\n CR: function CR(str) {\n return /^(CR)?\\d{9,12}$/.test(str);\n },\n EC: function EC(str) {\n return /^(EC)?\\d{13}$/.test(str);\n },\n SV: function SV(str) {\n return /^(SV)?\\d{4}-\\d{6}-\\d{3}-\\d{1}$/.test(str);\n },\n GT: function GT(str) {\n return /^(GT)?\\d{7}-\\d{1}$/.test(str);\n },\n HN: function HN(str) {\n return /^(HN)?$/.test(str);\n },\n MX: function MX(str) {\n return /^(MX)?\\w{3,4}\\d{6}\\w{3}$/.test(str);\n },\n NI: function NI(str) {\n return /^(NI)?\\d{3}-\\d{6}-\\d{4}\\w{1}$/.test(str);\n },\n PA: function PA(str) {\n return /^(PA)?$/.test(str);\n },\n PY: function PY(str) {\n return /^(PY)?\\d{6,8}-\\d{1}$/.test(str);\n },\n PE: function PE(str) {\n return /^(PE)?\\d{11}$/.test(str);\n },\n DO: function DO(str) {\n return /^(DO)?(\\d{11}|(\\d{3}-\\d{7}-\\d{1})|[1,4,5]{1}\\d{8}|([1,4,5]{1})-\\d{2}-\\d{5}-\\d{1})$/.test(str);\n },\n UY: function UY(str) {\n return /^(UY)?\\d{12}$/.test(str);\n },\n VE: function VE(str) {\n return /^(VE)?[J,G,V,E]{1}-(\\d{9}|(\\d{8}-\\d{1}))$/.test(str);\n }\n};\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode](str);\n }\n throw new Error(\"Invalid country code: '\".concat(countryCode, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFullWidth = require(\"./isFullWidth\");\nvar _isHalfWidth = require(\"./isHalfWidth\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str);\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n return !!str.match(pattern);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n};\n\n// List of domains used by iCloud\nvar icloud_domains = ['icloud.com', 'me.com'];\n\n// List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com'];\n\n// List of domains used by Yahoo Mail\n// This list is likely incomplete\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com'];\n\n// List of domains used by yandex.ru\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru'];\n\n// replace single dots, but not multiple consecutive dots\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n return '';\n}\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain];\n\n // The domain is always lowercased, as it's case-insensitive per RFC 1035\n parts[1] = parts[1].toLowerCase();\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n return parts.join('@');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n if (chars) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g');\n return str.replace(pattern, '');\n }\n // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n var strIndex = str.length - 1;\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n return str.slice(0, strIndex + 1);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/"/g, '\"').replace(/'/g, \"'\").replace(/</g, '<').replace(/>/g, '>').replace(///g, '/').replace(/\/g, '\\\\').replace(/`/g, '`').replace(/&/g, '&');\n // & replacement has to be the last one to prevent\n // bugs with intermediate strings containing escape sequences\n // See: https://github.com/validatorjs/validator.js/issues/1827\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.iso7064Check = iso7064Check;\nexports.luhnCheck = luhnCheck;\nexports.reverseMultiplyAndSum = reverseMultiplyAndSum;\nexports.verhoeffCheck = verhoeffCheck;\n/**\n * Algorithmic validation functions\n * May be used as is or implemented in the workflow of other validators.\n */\n\n/*\n * ISO 7064 validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to ISO 7064 (MOD 11, 10).\n */\nfunction iso7064Check(str) {\n var checkvalue = 10;\n for (var i = 0; i < str.length - 1; i++) {\n checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;\n }\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\n}\n\n/*\n * Luhn (mod 10) validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to the Luhn algorithm.\n */\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n if (product > 9) {\n // sum digits of product and add to checksum\n checksum += product.toString().split('').map(function (a) {\n return parseInt(a, 10);\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n } else {\n checksum += product;\n }\n } else {\n checksum += parseInt(str[i], 10);\n }\n second = !second;\n }\n return checksum % 10 === 0;\n}\n\n/*\n * Reverse TIN multiplication and summation helper function\n * Called with an array of single-digit integers and a base multiplier\n * to calculate the sum of the digits multiplied in reverse.\n * Normally used in variations of MOD 11 algorithmic checks.\n */\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n return total;\n}\n\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\nfunction verhoeffCheck(str) {\n var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]];\n\n // Copy (to prevent replacement) and reverse\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n for (var i = 0; i < str_copy.length; i++) {\n checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];\n }\n return checksum === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n return String(input);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well knownâ€.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array<string> | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-knownâ€.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `â‰` represents a tab (plus how much it expands) and `â ` represents a\n * single space.\n *\n * ```markdown\n * â‰\n * â â â â \n * â‰â \n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce†into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake†it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes†the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live bindingâ€, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercaseâ€, such as U+03F4 (`Ï´`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercaseâ€, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible†hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block†tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw†tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * \n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string†content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Reference>} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * <https://github.com/micromark/micromark-extension-footnote>\n// * <https://github.com/syntax-tree/mdast-util-footnote>\n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Footnote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnote(state, node) {\n const footnoteById = state.footnoteById\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(state, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Raw | Element | null}\n * hast node.\n */\nexport function html(state, node) {\n if (state.dangerous) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function imageReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {ElementContent | Array<ElementContent>}\n * hast node.\n */\nexport function linkReference(state, node) {\n const def = state.definition(node.identifier)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastRoot | HastElement}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start.line && end.line) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract<Nodes, Parent>} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(node, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastText | HastElement}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract<MdastNodes, MdastParent>} MdastParents\n *\n * @typedef EmbeddedHastFields\n * hast fields.\n * @property {string | null | undefined} [hName]\n * Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n * Generate an element with these properties instead.\n * @property {Array<HastElementContent> | null | undefined} [hChildren]\n * Generate an element with this content instead.\n *\n * @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData\n * mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n * mdast node with embedded hast data.\n *\n * @typedef PointLike\n * Point-like value.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @typedef PositionLike\n * Position-like value.\n * @property {PointLike | null | undefined} [start]\n * Point-like value.\n * @property {PointLike | null | undefined} [end]\n * Point-like value.\n *\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * hast node.\n *\n * @callback HFunctionProps\n * Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {HastProperties} props\n * Properties.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @callback HFunctionNoProps\n * Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n * mdast node or unist position.\n * @param {string} tagName\n * HTML tag name.\n * @param {Array<HastElementContent> | null | undefined} [children]\n * hast content.\n * @returns {HastElement}\n * Compiled element.\n *\n * @typedef HFields\n * Info on `state`.\n * @property {boolean} dangerous\n * Whether HTML is allowed.\n * @property {string} clobberPrefix\n * Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n * Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n * HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n * Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n * Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n * Definition cache.\n * @property {Record<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Record<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {Handler} unknownHandler\n * Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one\n * Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n * Like `state` but lower-level and usable on non-elements.\n * Deprecated: use `patch` and `applyData`.\n * @property {Array<string>} passThrough\n * List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` attribute on footnotes to prevent it from\n * *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call (affects\n * screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (note that `id: 'footnote-label'`\n * is always added as footnote calls use it with `aria-describedby` to\n * provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes.\n * @property {Array<string> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record<string, Handler>} Handlers\n * Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n * Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record<string, MdastFootnoteDefinition>} */\n const footnoteById = {}\n\n // To do: next major: add `options` to state, remove:\n // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n // `unknownHandler`.\n\n // To do: next major: move to `state.options.allowDangerousHtml`.\n state.dangerous = dangerous\n // To do: next major: move to `state.options`.\n state.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n // To do: next major: move to `state.options`.\n state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n // To do: next major: move to `state.options`.\n state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n // To do: next major: move to `state.options`.\n state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n className: ['sr-only']\n }\n // To do: next major: move to `state.options`.\n state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n // To do: next major: move to `state.options`.\n state.unknownHandler = settings.unknownHandler\n // To do: next major: move to `state.options`.\n state.passThrough = settings.passThrough\n\n state.handlers = {...handlers, ...settings.handlers}\n\n // To do: next major: replace utility with `definitionById` object, so we\n // only walk once (as we need footnotes too).\n state.definition = definitions(tree)\n state.footnoteById = footnoteById\n /** @type {Array<string>} */\n state.footnoteOrder = []\n /** @type {Record<string, number>} */\n state.footnoteCounts = {}\n\n state.patch = patch\n state.applyData = applyData\n state.one = oneBound\n state.all = allBound\n state.wrap = wrap\n // To do: next major: remove `augment`.\n state.augment = augment\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return state\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n *\n * @param {MdastNodeWithData | PositionLike | null | undefined} left\n * @param {HastElementContent} right\n * @returns {HastElementContent}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {MdastData} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n // @ts-expect-error: fine.\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n /* c8 ignore stop */\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n /* c8 ignore start */\n // To do: next major: remove.\n function state(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n /* c8 ignore stop */\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n function oneBound(node, parent) {\n // @ts-expect-error: that’s a state :)\n return one(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function allBound(parent) {\n // @ts-expect-error: that’s a state :)\n return all(state, parent)\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {void}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {Type | HastElement}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {Type | HastElement} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent is likely to keep the content around (otherwise: pass\n // `hChildren`).\n else {\n result = {\n type: 'element',\n tagName: hName,\n properties: {},\n children: []\n }\n\n // To do: next major: take the children from the `root`, or inject the\n // raw/text/comment or so into the element?\n // if ('children' in node) {\n // // @ts-expect-error: assume `children` are allowed in elements.\n // result.children = node.children\n // } else {\n // // @ts-expect-error: assume `node` is allowed in elements.\n // result.children.push(node)\n // }\n }\n }\n\n if (result.type === 'element' && hProperties) {\n result.properties = {...result.properties, ...hProperties}\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n // @ts-expect-error: assume valid children are defined.\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | null | undefined} [parent]\n * Parent of `node`.\n * @returns {HastElementContent | Array<HastElementContent> | null | undefined}\n * Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n const type = node && node.type\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(state.handlers, type)) {\n return state.handlers[type](state, node, parent)\n }\n\n if (state.passThrough && state.passThrough.includes(type)) {\n // To do: next major: deep clone.\n // @ts-expect-error: types of passed through nodes are expected to be added manually.\n return 'children' in node ? {...node, children: all(state, node)} : node\n }\n\n if (state.unknownHandler) {\n return state.unknownHandler(state, node, parent)\n }\n\n return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = one(state, nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastText | HastElement}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastText | HastElement} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: all(state, node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n * Whether to add line endings at start and end.\n * @returns {Array<Type | HastText>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<Type | HastText>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n * Node to check.\n * @returns {boolean}\n * Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array<ElementContent>} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {unknown} thing\n * Thing to check (typically `Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`).\n * If a node is passed it must be a `Text` node, whose `value` field is\n * checked.\n */\nexport function whitespace(thing) {\n /** @type {string} */\n const value =\n // @ts-expect-error looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-expect-error looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See <https://infra.spec.whatwg.org/#ascii-whitespace>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template {import('react').ElementType} T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps\n * @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent\n * @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableDataCellComponent|ReactMarkdownNames} td\n * @property {TableHeaderCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {uriTransformer} from './uri-transformer.js'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const transform =\n options.transformLinkUri === undefined\n ? uriTransformer\n : options.transformLinkUri\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = index\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && transform) {\n properties.href = transform(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map(String)\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n plugins: {to: 'remarkPlugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(\n // prettier-ignore\n // type-coverage:ignore-next-line\n PropTypes.any\n )\n ])\n )\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","import t,{Component as i}from\"react\";function s(){return s=Object.assign?Object.assign.bind():function(t){for(var i=1;i<arguments.length;i++){var s=arguments[i];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(t[n]=s[n])}return t},s.apply(this,arguments)}var n=t.createElement(\"svg\",{viewBox:\"-2 -5 14 20\",height:\"100%\",width:\"100%\",style:{position:\"absolute\",top:0}},t.createElement(\"path\",{d:\"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12\",fill:\"#fff\",fillRule:\"evenodd\"})),o=t.createElement(\"svg\",{height:\"100%\",width:\"100%\",viewBox:\"-2 -5 17 21\",style:{position:\"absolute\",top:0}},t.createElement(\"path\",{d:\"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0\",fill:\"#fff\",fillRule:\"evenodd\"}));function h(t){if(7===t.length)return t;for(var i=\"#\",s=1;s<4;s+=1)i+=t[s]+t[s];return i}function e(t,i,s,n,o){return function(t,i,s,n,o){var h=(t-s)/(i-s);if(0===h)return n;if(1===h)return o;for(var e=\"#\",a=1;a<6;a+=2){var r=parseInt(n.substr(a,2),16),l=parseInt(o.substr(a,2),16),c=Math.round((1-h)*r+h*l).toString(16);1===c.length&&(c=\"0\"+c),e+=c}return e}(t,i,s,h(n),h(o))}var a=function(i){function n(t){i.call(this,t);var s=t.height,n=t.width,o=t.checked;this.t=t.handleDiameter||s-2,this.i=Math.max(n-s,n-(s+this.t)/2),this.o=Math.max(0,(s-this.t)/2),this.state={h:o?this.i:this.o},this.l=0,this.u=0,this.p=this.p.bind(this),this.v=this.v.bind(this),this.g=this.g.bind(this),this.k=this.k.bind(this),this.m=this.m.bind(this),this.M=this.M.bind(this),this.T=this.T.bind(this),this.$=this.$.bind(this),this.C=this.C.bind(this),this.D=this.D.bind(this),this.O=this.O.bind(this),this.S=this.S.bind(this)}return i&&(n.__proto__=i),(n.prototype=Object.create(i&&i.prototype)).constructor=n,n.prototype.componentDidMount=function(){this.W=!0},n.prototype.componentDidUpdate=function(t){t.checked!==this.props.checked&&this.setState({h:this.props.checked?this.i:this.o})},n.prototype.componentWillUnmount=function(){this.W=!1},n.prototype.I=function(t){this.H.focus(),this.setState({R:t,j:!0,B:Date.now()})},n.prototype.L=function(t){var i=this.state,s=i.R,n=i.h,o=(this.props.checked?this.i:this.o)+t-s;i.N||t===s||this.setState({N:!0});var h=Math.min(this.i,Math.max(this.o,o));h!==n&&this.setState({h:h})},n.prototype.U=function(t){var i=this.state,s=i.h,n=i.N,o=i.B,h=this.props.checked,e=(this.i+this.o)/2;this.setState({h:this.props.checked?this.i:this.o});var a=Date.now()-o;(!n||a<250||(h&&s<=e||!h&&s>=e))&&this.A(t),this.W&&this.setState({N:!1,j:!1}),this.l=Date.now()},n.prototype.p=function(t){t.preventDefault(),\"number\"==typeof t.button&&0!==t.button||(this.I(t.clientX),window.addEventListener(\"mousemove\",this.v),window.addEventListener(\"mouseup\",this.g))},n.prototype.v=function(t){t.preventDefault(),this.L(t.clientX)},n.prototype.g=function(t){this.U(t),window.removeEventListener(\"mousemove\",this.v),window.removeEventListener(\"mouseup\",this.g)},n.prototype.k=function(t){this.X=null,this.I(t.touches[0].clientX)},n.prototype.m=function(t){this.L(t.touches[0].clientX)},n.prototype.M=function(t){t.preventDefault(),this.U(t)},n.prototype.$=function(t){Date.now()-this.l>50&&(this.A(t),Date.now()-this.u>50&&this.W&&this.setState({j:!1}))},n.prototype.C=function(){this.u=Date.now()},n.prototype.D=function(){this.setState({j:!0})},n.prototype.O=function(){this.setState({j:!1})},n.prototype.S=function(t){this.H=t},n.prototype.T=function(t){t.preventDefault(),this.H.focus(),this.A(t),this.W&&this.setState({j:!1})},n.prototype.A=function(t){var i=this.props;(0,i.onChange)(!i.checked,t,i.id)},n.prototype.render=function(){var i=this.props,n=i.checked,o=i.disabled,h=i.className,a=i.offColor,r=i.onColor,l=i.offHandleColor,c=i.onHandleColor,u=i.checkedIcon,d=i.uncheckedIcon,f=i.checkedHandleIcon,p=i.uncheckedHandleIcon,b=i.boxShadow,v=i.activeBoxShadow,g=i.height,y=i.width,w=i.borderRadius,k=function(t,i){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&-1===i.indexOf(n)&&(s[n]=t[n]);return s}(i,[\"checked\",\"disabled\",\"className\",\"offColor\",\"onColor\",\"offHandleColor\",\"onHandleColor\",\"checkedIcon\",\"uncheckedIcon\",\"checkedHandleIcon\",\"uncheckedHandleIcon\",\"boxShadow\",\"activeBoxShadow\",\"height\",\"width\",\"borderRadius\",\"handleDiameter\"]),m=this.state,M=m.h,T=m.N,x=m.j,$={position:\"relative\",display:\"inline-block\",textAlign:\"left\",opacity:o?.5:1,direction:\"ltr\",borderRadius:g/2,WebkitTransition:\"opacity 0.25s\",MozTransition:\"opacity 0.25s\",transition:\"opacity 0.25s\",touchAction:\"none\",WebkitTapHighlightColor:\"rgba(0, 0, 0, 0)\",WebkitUserSelect:\"none\",MozUserSelect:\"none\",msUserSelect:\"none\",userSelect:\"none\"},C={height:g,width:y,margin:Math.max(0,(this.t-g)/2),position:\"relative\",background:e(M,this.i,this.o,a,r),borderRadius:\"number\"==typeof w?w:g/2,cursor:o?\"default\":\"pointer\",WebkitTransition:T?null:\"background 0.25s\",MozTransition:T?null:\"background 0.25s\",transition:T?null:\"background 0.25s\"},D={height:g,width:Math.min(1.5*g,y-(this.t+g)/2+1),position:\"relative\",opacity:(M-this.o)/(this.i-this.o),pointerEvents:\"none\",WebkitTransition:T?null:\"opacity 0.25s\",MozTransition:T?null:\"opacity 0.25s\",transition:T?null:\"opacity 0.25s\"},O={height:g,width:Math.min(1.5*g,y-(this.t+g)/2+1),position:\"absolute\",opacity:1-(M-this.o)/(this.i-this.o),right:0,top:0,pointerEvents:\"none\",WebkitTransition:T?null:\"opacity 0.25s\",MozTransition:T?null:\"opacity 0.25s\",transition:T?null:\"opacity 0.25s\"},S={height:this.t,width:this.t,background:e(M,this.i,this.o,l,c),display:\"inline-block\",cursor:o?\"default\":\"pointer\",borderRadius:\"number\"==typeof w?w-1:\"50%\",position:\"absolute\",transform:\"translateX(\"+M+\"px)\",top:Math.max(0,(g-this.t)/2),outline:0,boxShadow:x?v:b,border:0,WebkitTransition:T?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\",MozTransition:T?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\",transition:T?null:\"background-color 0.25s, transform 0.25s, box-shadow 0.15s\"},W={height:this.t,width:this.t,opacity:Math.max(2*(1-(M-this.o)/(this.i-this.o)-.5),0),position:\"absolute\",left:0,top:0,pointerEvents:\"none\",WebkitTransition:T?null:\"opacity 0.25s\",MozTransition:T?null:\"opacity 0.25s\",transition:T?null:\"opacity 0.25s\"},z={height:this.t,width:this.t,opacity:Math.max(2*((M-this.o)/(this.i-this.o)-.5),0),position:\"absolute\",left:0,top:0,pointerEvents:\"none\",WebkitTransition:T?null:\"opacity 0.25s\",MozTransition:T?null:\"opacity 0.25s\",transition:T?null:\"opacity 0.25s\"};return t.createElement(\"div\",{className:h,style:$},t.createElement(\"div\",{className:\"react-switch-bg\",style:C,onClick:o?null:this.T,onMouseDown:function(t){return t.preventDefault()}},u&&t.createElement(\"div\",{style:D},u),d&&t.createElement(\"div\",{style:O},d)),t.createElement(\"div\",{className:\"react-switch-handle\",style:S,onClick:function(t){return t.preventDefault()},onMouseDown:o?null:this.p,onTouchStart:o?null:this.k,onTouchMove:o?null:this.m,onTouchEnd:o?null:this.M,onTouchCancel:o?null:this.O},p&&t.createElement(\"div\",{style:W},p),f&&t.createElement(\"div\",{style:z},f)),t.createElement(\"input\",s({},{type:\"checkbox\",role:\"switch\",\"aria-checked\":n,checked:n,disabled:o,style:{border:0,clip:\"rect(0 0 0 0)\",height:1,margin:-1,overflow:\"hidden\",padding:0,position:\"absolute\",width:1}},k,{ref:this.S,onFocus:this.D,onBlur:this.O,onKeyUp:this.C,onChange:this.$})))},n}(i);a.defaultProps={disabled:!1,offColor:\"#888\",onColor:\"#080\",offHandleColor:\"#fff\",onHandleColor:\"#fff\",uncheckedIcon:n,checkedIcon:o,boxShadow:null,activeBoxShadow:\"0 0 2px 3px #3bf\",height:28,width:56};export{a as default};\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n * Selector type.\n * @template {string} DefaultTagName\n * Default tag name.\n * @typedef {(\n * SimpleSelector extends ''\n * ? DefaultTagName\n * : SimpleSelector extends `${infer TagName}.${infer Rest}`\n * ? ExtractTagName<TagName, DefaultTagName>\n * : SimpleSelector extends `${infer TagName}#${infer Rest}`\n * ? ExtractTagName<TagName, DefaultTagName>\n * : SimpleSelector extends string\n * ? SimpleSelector\n * : DefaultTagName\n * )} ExtractTagName\n * Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector (optional).\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName<Selector, DefaultTagName>}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: tag name is parsed.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Element | Root} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {number | string} StyleValue\n * Value for a CSS style field.\n * @typedef {Record<string, StyleValue>} Style\n * Supported value of a `style` prop.\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n * Primitive property value.\n * @typedef {Array<number | string>} ArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n * Primitive value or list value.\n * @typedef {{[property: string]: PropertyValue | Style}} Properties\n * Acceptable value for element properties.\n *\n * @typedef {number | string | null | undefined} PrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array<ArrayChildNested | Nodes | PrimitiveChild>} ArrayChild\n * List of children.\n * @typedef {Array<Nodes | PrimitiveChild>} ArrayChildNested\n * List of children (deep).\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n * Acceptable child value.\n */\n\nimport {parse as commas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as spaces} from 'space-separated-tokens'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * Schema to use.\n * @param {string} defaultTagName\n * Default tag name.\n * @param {Array<string> | undefined} [caseSensitive]\n * Case-sensitive tag names (default: `undefined`).\n * @returns\n * `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @overload\n * @param {null | undefined} [selector]\n * @param {...Child} children\n * @returns {Root}\n *\n * @overload\n * @param {string} selector\n * @param {Properties} properties\n * @param {...Child} children\n * @returns {Element}\n *\n * @overload\n * @param {string} selector\n * @param {...Child} children\n * @returns {Element}\n *\n * @param {string | null | undefined} [selector]\n * Selector.\n * @param {Child | Properties | null | undefined} [properties]\n * Properties (or first child) (default: `undefined`).\n * @param {...Child} children\n * Children.\n * @returns {Result}\n * Result.\n */\n function h(selector, properties, ...children) {\n let index = -1\n /** @type {Result} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // Properties are not supported for roots.\n const child = /** @type {Child} */ (properties)\n children.unshift(child)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isChild(properties)) {\n children.unshift(properties)\n } else {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n * Value to check.\n * @returns {value is Child}\n * Whether `value` is definitely a child.\n */\nfunction isChild(value) {\n // Never properties if not an object.\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n return true\n }\n\n // Never node without `type`; that’s the main discriminator.\n if (typeof value.type !== 'string') return false\n\n // Slower check: never property value if object or array with\n // non-number/strings.\n const record = /** @type {Record<string, unknown>} */ (value)\n const keys = Object.keys(value)\n\n for (const key of keys) {\n const value = record[key]\n\n if (value && typeof value === 'object') {\n if (!Array.isArray(value)) return true\n\n const list = /** @type {Array<unknown>} */ (value)\n\n for (const item of list) {\n if (typeof item !== 'number' && typeof item !== 'string') {\n return true\n }\n }\n }\n }\n\n // Also see empty `children` as a node.\n if ('children' in value && Array.isArray(value.children)) {\n return true\n }\n\n // Default to properties, someone can always pass an empty object,\n // put `data: {}` in a node,\n // or wrap it in an array.\n return false\n}\n\n/**\n * @param {Schema} schema\n * Schema.\n * @param {Properties} properties\n * Properties object.\n * @param {string} key\n * Property name.\n * @param {PropertyValue | Style} value\n * Property value.\n * @returns {undefined}\n * Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {PropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array<number | string>} */\n const finalResult = []\n\n while (++index < result.length) {\n // Assume no booleans in array.\n const value = /** @type {number | string} */ (\n parsePrimitive(info, info.property, result[index])\n )\n finalResult[index] = value\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // Assume no booleans in `className`.\n const value = /** @type {number | string} */ (result)\n result = properties.className.concat(value)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array<RootContent>} nodes\n * Children.\n * @param {Child} value\n * Child.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * Property information.\n * @param {string} name\n * Property name.\n * @param {PrimitiveValue} value\n * Property value.\n * @returns {PrimitiveValue}\n * Property value.\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} value\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(value) {\n /** @type {Array<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array<string>} values\n * List of properly cased keys.\n * @returns {Record<string, string>}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Record<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./create-h.js').Child} Child\n * Acceptable child value.\n * @typedef {import('./create-h.js').Properties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./create-h.js').Result} Result\n * Result from a `h` (or `s`) call.\n */\n\n// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @import {VFile, Value} from 'vfile'\n * @import {Location} from 'vfile-location'\n */\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /**\n * List, where each index is a line number (0-based), and each value is the\n * byte index *after* where the line ends.\n *\n * @type {Array<number>}\n */\n const indices = []\n\n return {toOffset, toPoint}\n\n /** @type {Location['toPoint']} */\n function toPoint(offset) {\n if (typeof offset === 'number' && offset > -1 && offset <= value.length) {\n let index = 0\n\n while (true) {\n let end = indices[index]\n\n if (end === undefined) {\n const eol = next(value, indices[index - 1])\n end = eol === -1 ? value.length + 1 : eol + 1\n indices[index] = end\n }\n\n if (end > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n\n index++\n }\n }\n }\n\n /** @type {Location['toOffset']} */\n function toOffset(point) {\n if (\n point &&\n typeof point.line === 'number' &&\n typeof point.column === 'number' &&\n !Number.isNaN(point.line) &&\n !Number.isNaN(point.column)\n ) {\n while (indices.length < point.line) {\n const from = indices[indices.length - 1]\n const eol = next(value, from)\n const end = eol === -1 ? value.length + 1 : eol + 1\n if (from === end) break\n indices.push(end)\n }\n\n const offset =\n (point.line > 1 ? indices[point.line - 2] : 0) + point.column - 1\n // The given `column` could not exist on this line.\n if (offset < indices[point.line - 1]) return offset\n }\n }\n}\n\n/**\n * @param {string} value\n * @param {number} from\n */\nfunction next(value, from) {\n const cr = value.indexOf('\\r', from)\n const lf = value.indexOf('\\n', from)\n if (lf === -1) return cr\n if (cr === -1 || cr + 1 === lf) return lf\n return cr < lf ? cr : lf\n}\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @import {ElementData, Element, Nodes, RootContent, Root} from 'hast'\n * @import {DefaultTreeAdapterMap, Token} from 'parse5'\n * @import {Schema} from 'property-information'\n * @import {Point, Position} from 'unist'\n * @import {VFile} from 'vfile'\n * @import {Options} from 'hast-util-from-parse5'\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean} location\n * Whether location info was found.\n * @property {Schema} schema\n * Current schema.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n */\n\nimport {ok as assert} from 'devlop'\nimport {h, s} from 'hastscript'\nimport {find, html, svg} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {DefaultTreeAdapterMap['node']} tree\n * `parse5` tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const settings = options || {}\n\n return one(\n {\n file: settings.file || undefined,\n location: false,\n schema: settings.space === 'svg' ? svg : html,\n verbose: settings.verbose || false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} node\n * p5 node.\n * @returns {Nodes}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Nodes} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {DefaultTreeAdapterMap['commentNode']} */ (\n node\n )\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference =\n /** @type {DefaultTreeAdapterMap['document'] | DefaultTreeAdapterMap['documentFragment']} */ (\n node\n )\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const document = String(state.file)\n const loc = location(document)\n const start = loc.toPoint(0)\n const end = loc.toPoint(document.length)\n // Always defined as we give valid input.\n assert(start, 'expected `start`')\n assert(end, 'expected `end`')\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {DefaultTreeAdapterMap['documentType']} */ (\n node\n )\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {DefaultTreeAdapterMap['textNode']} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {DefaultTreeAdapterMap['element']} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array<DefaultTreeAdapterMap['node']>} nodes\n * Nodes.\n * @returns {Array<RootContent>}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array<RootContent>} */\n const results = []\n\n while (++index < nodes.length) {\n // Assume no roots in `nodes`.\n const result = /** @type {RootContent} */ (one(state, nodes[index]))\n results.push(result)\n }\n\n return results\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['element']} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record<string, string>} */\n const properties = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n properties[name] = attribute.value\n }\n }\n\n // Build.\n const x = state.schema.space === 'svg' ? s : h\n const result = x(node.tagName, properties, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {DefaultTreeAdapterMap['template']} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n // Root in, root out.\n const content = /** @type {Root} */ (one(state, reference.content))\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {DefaultTreeAdapterMap['node']} from\n * p5 node.\n * @param {Nodes} to\n * hast node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Nodes} node\n * hast node.\n * @param {Token.ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record<string, Position | undefined>} */\n const properties = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n properties[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n assert(location.startTag, 'a start tag should exist')\n const opening = position(location.startTag)\n const closing = location.endTag ? position(location.endTag) : undefined\n /** @type {ElementData['position']} */\n const data = {opening}\n if (closing) data.closing = closing\n data.properties = properties\n\n node.data = {position: data}\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {Token.Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n\n // @ts-expect-error: we do use `undefined` for points if one or the other\n // exists.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid†handler will be called.\n * If `value` has an unknown `key`, the special “unknown†handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap['document']} Parse5Document\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentFragment']} Parse5Fragment\n * @typedef {import('parse5').DefaultTreeAdapterMap['element']} Parse5Element\n * @typedef {import('parse5').DefaultTreeAdapterMap['node']} Parse5Nodes\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentType']} Parse5Doctype\n * @typedef {import('parse5').DefaultTreeAdapterMap['commentNode']} Parse5Comment\n * @typedef {import('parse5').DefaultTreeAdapterMap['textNode']} Parse5Text\n * @typedef {import('parse5').DefaultTreeAdapterMap['parentNode']} Parse5Parent\n * @typedef {import('parse5').Token.Attribute} Parse5Attribute\n *\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n *\n * @typedef {Exclude<Parse5Nodes, Parse5Document | Parse5Fragment>} Parse5Content\n *\n * @typedef {'html' | 'svg'} Space\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\nconst own = {}.hasOwnProperty\n\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to a `parse5` AST.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Parse5Nodes}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const settings = options || emptyOptions\n const space = settings.space\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Document}\n * Parse5 node.\n */\nfunction root(node, schema) {\n /** @type {Parse5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Fragment}\n * Parse5 node.\n */\nfunction fragment(node, schema) {\n /** @type {Parse5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * Node (hast) to transform.\n * @returns {Parse5Doctype}\n * Parse5 node.\n */\nfunction doctype(node) {\n /** @type {Parse5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: null\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * Node (hast) to transform.\n * @returns {Parse5Text}\n * Parse5 node.\n */\nfunction text(node) {\n /** @type {Parse5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n parentNode: null\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * Node (hast) to transform.\n * @returns {Parse5Comment}\n * Parse5 node.\n */\nfunction comment(node) {\n /** @type {Parse5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n parentNode: null\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Element}\n * Parse5 node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array<Parse5Attribute>} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n const space = currentSchema.space\n // `html` and `svg` both have a space.\n assert(space)\n\n /** @type {Parse5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: `parse5` types are wrong.\n namespaceURI: webNamespaces[space],\n childNodes: [],\n parentNode: null\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Parse5Attribute | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === false ||\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {Parse5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array<RootContent>} children\n * List of children.\n * @param {Parse5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array<Parse5Content>}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array<Parse5Content>} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {Parse5Content} */\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Nodes} from\n * hast node.\n * @param {Parse5Nodes} to\n * `parse5` node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n assert(typeof position.start.offset === 'number')\n assert(typeof position.end.offset === 'number')\n\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","const UNDEFINED_CODE_POINTS = new Set([\n 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214,\n 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894,\n 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574,\n 1048575, 1114110, 1114111,\n]);\nexport const REPLACEMENT_CHARACTER = '\\uFFFD';\nexport var CODE_POINTS;\n(function (CODE_POINTS) {\n CODE_POINTS[CODE_POINTS[\"EOF\"] = -1] = \"EOF\";\n CODE_POINTS[CODE_POINTS[\"NULL\"] = 0] = \"NULL\";\n CODE_POINTS[CODE_POINTS[\"TABULATION\"] = 9] = \"TABULATION\";\n CODE_POINTS[CODE_POINTS[\"CARRIAGE_RETURN\"] = 13] = \"CARRIAGE_RETURN\";\n CODE_POINTS[CODE_POINTS[\"LINE_FEED\"] = 10] = \"LINE_FEED\";\n CODE_POINTS[CODE_POINTS[\"FORM_FEED\"] = 12] = \"FORM_FEED\";\n CODE_POINTS[CODE_POINTS[\"SPACE\"] = 32] = \"SPACE\";\n CODE_POINTS[CODE_POINTS[\"EXCLAMATION_MARK\"] = 33] = \"EXCLAMATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"QUOTATION_MARK\"] = 34] = \"QUOTATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"NUMBER_SIGN\"] = 35] = \"NUMBER_SIGN\";\n CODE_POINTS[CODE_POINTS[\"AMPERSAND\"] = 38] = \"AMPERSAND\";\n CODE_POINTS[CODE_POINTS[\"APOSTROPHE\"] = 39] = \"APOSTROPHE\";\n CODE_POINTS[CODE_POINTS[\"HYPHEN_MINUS\"] = 45] = \"HYPHEN_MINUS\";\n CODE_POINTS[CODE_POINTS[\"SOLIDUS\"] = 47] = \"SOLIDUS\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_0\"] = 48] = \"DIGIT_0\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_9\"] = 57] = \"DIGIT_9\";\n CODE_POINTS[CODE_POINTS[\"SEMICOLON\"] = 59] = \"SEMICOLON\";\n CODE_POINTS[CODE_POINTS[\"LESS_THAN_SIGN\"] = 60] = \"LESS_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"EQUALS_SIGN\"] = 61] = \"EQUALS_SIGN\";\n CODE_POINTS[CODE_POINTS[\"GREATER_THAN_SIGN\"] = 62] = \"GREATER_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"QUESTION_MARK\"] = 63] = \"QUESTION_MARK\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_A\"] = 65] = \"LATIN_CAPITAL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_F\"] = 70] = \"LATIN_CAPITAL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_X\"] = 88] = \"LATIN_CAPITAL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_Z\"] = 90] = \"LATIN_CAPITAL_Z\";\n CODE_POINTS[CODE_POINTS[\"RIGHT_SQUARE_BRACKET\"] = 93] = \"RIGHT_SQUARE_BRACKET\";\n CODE_POINTS[CODE_POINTS[\"GRAVE_ACCENT\"] = 96] = \"GRAVE_ACCENT\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_A\"] = 97] = \"LATIN_SMALL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_F\"] = 102] = \"LATIN_SMALL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_X\"] = 120] = \"LATIN_SMALL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_Z\"] = 122] = \"LATIN_SMALL_Z\";\n CODE_POINTS[CODE_POINTS[\"REPLACEMENT_CHARACTER\"] = 65533] = \"REPLACEMENT_CHARACTER\";\n})(CODE_POINTS = CODE_POINTS || (CODE_POINTS = {}));\nexport const SEQUENCES = {\n DASH_DASH: '--',\n CDATA_START: '[CDATA[',\n DOCTYPE: 'doctype',\n SCRIPT: 'script',\n PUBLIC: 'public',\n SYSTEM: 'system',\n};\n//Surrogates\nexport function isSurrogate(cp) {\n return cp >= 55296 && cp <= 57343;\n}\nexport function isSurrogatePair(cp) {\n return cp >= 56320 && cp <= 57343;\n}\nexport function getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 55296) * 1024 + 9216 + cp2;\n}\n//NOTE: excluding NULL and ASCII whitespace\nexport function isControlCodePoint(cp) {\n return ((cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f));\n}\nexport function isUndefinedCodePoint(cp) {\n return (cp >= 64976 && cp <= 65007) || UNDEFINED_CODE_POINTS.has(cp);\n}\n//# sourceMappingURL=unicode.js.map","export var ERR;\n(function (ERR) {\n ERR[\"controlCharacterInInputStream\"] = \"control-character-in-input-stream\";\n ERR[\"noncharacterInInputStream\"] = \"noncharacter-in-input-stream\";\n ERR[\"surrogateInInputStream\"] = \"surrogate-in-input-stream\";\n ERR[\"nonVoidHtmlElementStartTagWithTrailingSolidus\"] = \"non-void-html-element-start-tag-with-trailing-solidus\";\n ERR[\"endTagWithAttributes\"] = \"end-tag-with-attributes\";\n ERR[\"endTagWithTrailingSolidus\"] = \"end-tag-with-trailing-solidus\";\n ERR[\"unexpectedSolidusInTag\"] = \"unexpected-solidus-in-tag\";\n ERR[\"unexpectedNullCharacter\"] = \"unexpected-null-character\";\n ERR[\"unexpectedQuestionMarkInsteadOfTagName\"] = \"unexpected-question-mark-instead-of-tag-name\";\n ERR[\"invalidFirstCharacterOfTagName\"] = \"invalid-first-character-of-tag-name\";\n ERR[\"unexpectedEqualsSignBeforeAttributeName\"] = \"unexpected-equals-sign-before-attribute-name\";\n ERR[\"missingEndTagName\"] = \"missing-end-tag-name\";\n ERR[\"unexpectedCharacterInAttributeName\"] = \"unexpected-character-in-attribute-name\";\n ERR[\"unknownNamedCharacterReference\"] = \"unknown-named-character-reference\";\n ERR[\"missingSemicolonAfterCharacterReference\"] = \"missing-semicolon-after-character-reference\";\n ERR[\"unexpectedCharacterAfterDoctypeSystemIdentifier\"] = \"unexpected-character-after-doctype-system-identifier\";\n ERR[\"unexpectedCharacterInUnquotedAttributeValue\"] = \"unexpected-character-in-unquoted-attribute-value\";\n ERR[\"eofBeforeTagName\"] = \"eof-before-tag-name\";\n ERR[\"eofInTag\"] = \"eof-in-tag\";\n ERR[\"missingAttributeValue\"] = \"missing-attribute-value\";\n ERR[\"missingWhitespaceBetweenAttributes\"] = \"missing-whitespace-between-attributes\";\n ERR[\"missingWhitespaceAfterDoctypePublicKeyword\"] = \"missing-whitespace-after-doctype-public-keyword\";\n ERR[\"missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers\"] = \"missing-whitespace-between-doctype-public-and-system-identifiers\";\n ERR[\"missingWhitespaceAfterDoctypeSystemKeyword\"] = \"missing-whitespace-after-doctype-system-keyword\";\n ERR[\"missingQuoteBeforeDoctypePublicIdentifier\"] = \"missing-quote-before-doctype-public-identifier\";\n ERR[\"missingQuoteBeforeDoctypeSystemIdentifier\"] = \"missing-quote-before-doctype-system-identifier\";\n ERR[\"missingDoctypePublicIdentifier\"] = \"missing-doctype-public-identifier\";\n ERR[\"missingDoctypeSystemIdentifier\"] = \"missing-doctype-system-identifier\";\n ERR[\"abruptDoctypePublicIdentifier\"] = \"abrupt-doctype-public-identifier\";\n ERR[\"abruptDoctypeSystemIdentifier\"] = \"abrupt-doctype-system-identifier\";\n ERR[\"cdataInHtmlContent\"] = \"cdata-in-html-content\";\n ERR[\"incorrectlyOpenedComment\"] = \"incorrectly-opened-comment\";\n ERR[\"eofInScriptHtmlCommentLikeText\"] = \"eof-in-script-html-comment-like-text\";\n ERR[\"eofInDoctype\"] = \"eof-in-doctype\";\n ERR[\"nestedComment\"] = \"nested-comment\";\n ERR[\"abruptClosingOfEmptyComment\"] = \"abrupt-closing-of-empty-comment\";\n ERR[\"eofInComment\"] = \"eof-in-comment\";\n ERR[\"incorrectlyClosedComment\"] = \"incorrectly-closed-comment\";\n ERR[\"eofInCdata\"] = \"eof-in-cdata\";\n ERR[\"absenceOfDigitsInNumericCharacterReference\"] = \"absence-of-digits-in-numeric-character-reference\";\n ERR[\"nullCharacterReference\"] = \"null-character-reference\";\n ERR[\"surrogateCharacterReference\"] = \"surrogate-character-reference\";\n ERR[\"characterReferenceOutsideUnicodeRange\"] = \"character-reference-outside-unicode-range\";\n ERR[\"controlCharacterReference\"] = \"control-character-reference\";\n ERR[\"noncharacterCharacterReference\"] = \"noncharacter-character-reference\";\n ERR[\"missingWhitespaceBeforeDoctypeName\"] = \"missing-whitespace-before-doctype-name\";\n ERR[\"missingDoctypeName\"] = \"missing-doctype-name\";\n ERR[\"invalidCharacterSequenceAfterDoctypeName\"] = \"invalid-character-sequence-after-doctype-name\";\n ERR[\"duplicateAttribute\"] = \"duplicate-attribute\";\n ERR[\"nonConformingDoctype\"] = \"non-conforming-doctype\";\n ERR[\"missingDoctype\"] = \"missing-doctype\";\n ERR[\"misplacedDoctype\"] = \"misplaced-doctype\";\n ERR[\"endTagWithoutMatchingOpenElement\"] = \"end-tag-without-matching-open-element\";\n ERR[\"closingOfElementWithOpenChildElements\"] = \"closing-of-element-with-open-child-elements\";\n ERR[\"disallowedContentInNoscriptInHead\"] = \"disallowed-content-in-noscript-in-head\";\n ERR[\"openElementsLeftAfterEof\"] = \"open-elements-left-after-eof\";\n ERR[\"abandonedHeadElementChild\"] = \"abandoned-head-element-child\";\n ERR[\"misplacedStartTagForHeadElement\"] = \"misplaced-start-tag-for-head-element\";\n ERR[\"nestedNoscriptInHead\"] = \"nested-noscript-in-head\";\n ERR[\"eofInElementThatCanContainOnlyText\"] = \"eof-in-element-that-can-contain-only-text\";\n})(ERR = ERR || (ERR = {}));\n//# sourceMappingURL=error-codes.js.map","import { CODE_POINTS as $, getSurrogatePairCodePoint, isControlCodePoint, isSurrogate, isSurrogatePair, isUndefinedCodePoint, } from '../common/unicode.js';\nimport { ERR } from '../common/error-codes.js';\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nexport class Preprocessor {\n constructor(handler) {\n this.handler = handler;\n this.html = '';\n this.pos = -1;\n // NOTE: Initial `lastGapPos` is -2, to ensure `col` on initialisation is 0\n this.lastGapPos = -2;\n this.gapStack = [];\n this.skipNextNewLine = false;\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n this.line = 1;\n //NOTE: avoid reporting errors twice on advance/retreat\n this.lastErrOffset = -1;\n }\n /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */\n get col() {\n return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);\n }\n get offset() {\n return this.droppedBufferSize + this.pos;\n }\n getError(code) {\n const { line, col, offset } = this;\n return {\n code,\n startLine: line,\n endLine: line,\n startCol: col,\n endCol: col,\n startOffset: offset,\n endOffset: offset,\n };\n }\n _err(code) {\n if (this.handler.onParseError && this.lastErrOffset !== this.offset) {\n this.lastErrOffset = this.offset;\n this.handler.onParseError(this.getError(code));\n }\n }\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.html.length - 1) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n if (isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n //NOTE: add a gap that should be avoided during retreat\n this._addGap();\n return getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n //NOTE: we are at the end of a chunk, therefore we can't infer the surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n return cp;\n }\n willDropParsedChunk() {\n return this.pos > this.bufferWaterline;\n }\n dropParsedChunk() {\n if (this.willDropParsedChunk()) {\n this.html = this.html.substring(this.pos);\n this.lineStartPos -= this.pos;\n this.droppedBufferSize += this.pos;\n this.pos = 0;\n this.lastGapPos = -2;\n this.gapStack.length = 0;\n }\n }\n write(chunk, isLastChunk) {\n if (this.html.length > 0) {\n this.html += chunk;\n }\n else {\n this.html = chunk;\n }\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1);\n this.endOfChunkHit = false;\n }\n startsWith(pattern, caseSensitive) {\n // Check if our buffer has enough characters\n if (this.pos + pattern.length > this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return false;\n }\n if (caseSensitive) {\n return this.html.startsWith(pattern, this.pos);\n }\n for (let i = 0; i < pattern.length; i++) {\n const cp = this.html.charCodeAt(this.pos + i) | 0x20;\n if (cp !== pattern.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n }\n peek(offset) {\n const pos = this.pos + offset;\n if (pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n const code = this.html.charCodeAt(pos);\n return code === $.CARRIAGE_RETURN ? $.LINE_FEED : code;\n }\n advance() {\n this.pos++;\n //NOTE: LF should be in the last column of the line\n if (this.isEol) {\n this.isEol = false;\n this.line++;\n this.lineStartPos = this.pos;\n }\n if (this.pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n let cp = this.html.charCodeAt(this.pos);\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.isEol = true;\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (cp === $.LINE_FEED) {\n this.isEol = true;\n if (this.skipNextNewLine) {\n // `line` will be bumped again in the recursive call.\n this.line--;\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n }\n this.skipNextNewLine = false;\n if (isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange = this.handler.onParseError === null ||\n (cp > 0x1f && cp < 0x7f) ||\n cp === $.LINE_FEED ||\n cp === $.CARRIAGE_RETURN ||\n (cp > 0x9f && cp < 64976);\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n return cp;\n }\n _checkForProblematicCharacters(cp) {\n if (isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n }\n else if (isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n retreat(count) {\n this.pos -= count;\n while (this.pos < this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n this.isEol = false;\n }\n}\n//# sourceMappingURL=preprocessor.js.map","export var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"CHARACTER\"] = 0] = \"CHARACTER\";\n TokenType[TokenType[\"NULL_CHARACTER\"] = 1] = \"NULL_CHARACTER\";\n TokenType[TokenType[\"WHITESPACE_CHARACTER\"] = 2] = \"WHITESPACE_CHARACTER\";\n TokenType[TokenType[\"START_TAG\"] = 3] = \"START_TAG\";\n TokenType[TokenType[\"END_TAG\"] = 4] = \"END_TAG\";\n TokenType[TokenType[\"COMMENT\"] = 5] = \"COMMENT\";\n TokenType[TokenType[\"DOCTYPE\"] = 6] = \"DOCTYPE\";\n TokenType[TokenType[\"EOF\"] = 7] = \"EOF\";\n TokenType[TokenType[\"HIBERNATION\"] = 8] = \"HIBERNATION\";\n})(TokenType = TokenType || (TokenType = {}));\nexport function getTokenAttr(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n return null;\n}\n//# sourceMappingURL=token.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map","/** All valid namespaces in HTML. */\nexport var NS;\n(function (NS) {\n NS[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n NS[\"MATHML\"] = \"http://www.w3.org/1998/Math/MathML\";\n NS[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n NS[\"XLINK\"] = \"http://www.w3.org/1999/xlink\";\n NS[\"XML\"] = \"http://www.w3.org/XML/1998/namespace\";\n NS[\"XMLNS\"] = \"http://www.w3.org/2000/xmlns/\";\n})(NS = NS || (NS = {}));\nexport var ATTRS;\n(function (ATTRS) {\n ATTRS[\"TYPE\"] = \"type\";\n ATTRS[\"ACTION\"] = \"action\";\n ATTRS[\"ENCODING\"] = \"encoding\";\n ATTRS[\"PROMPT\"] = \"prompt\";\n ATTRS[\"NAME\"] = \"name\";\n ATTRS[\"COLOR\"] = \"color\";\n ATTRS[\"FACE\"] = \"face\";\n ATTRS[\"SIZE\"] = \"size\";\n})(ATTRS = ATTRS || (ATTRS = {}));\n/**\n * The mode of the document.\n *\n * @see {@link https://dom.spec.whatwg.org/#concept-document-limited-quirks}\n */\nexport var DOCUMENT_MODE;\n(function (DOCUMENT_MODE) {\n DOCUMENT_MODE[\"NO_QUIRKS\"] = \"no-quirks\";\n DOCUMENT_MODE[\"QUIRKS\"] = \"quirks\";\n DOCUMENT_MODE[\"LIMITED_QUIRKS\"] = \"limited-quirks\";\n})(DOCUMENT_MODE = DOCUMENT_MODE || (DOCUMENT_MODE = {}));\nexport var TAG_NAMES;\n(function (TAG_NAMES) {\n TAG_NAMES[\"A\"] = \"a\";\n TAG_NAMES[\"ADDRESS\"] = \"address\";\n TAG_NAMES[\"ANNOTATION_XML\"] = \"annotation-xml\";\n TAG_NAMES[\"APPLET\"] = \"applet\";\n TAG_NAMES[\"AREA\"] = \"area\";\n TAG_NAMES[\"ARTICLE\"] = \"article\";\n TAG_NAMES[\"ASIDE\"] = \"aside\";\n TAG_NAMES[\"B\"] = \"b\";\n TAG_NAMES[\"BASE\"] = \"base\";\n TAG_NAMES[\"BASEFONT\"] = \"basefont\";\n TAG_NAMES[\"BGSOUND\"] = \"bgsound\";\n TAG_NAMES[\"BIG\"] = \"big\";\n TAG_NAMES[\"BLOCKQUOTE\"] = \"blockquote\";\n TAG_NAMES[\"BODY\"] = \"body\";\n TAG_NAMES[\"BR\"] = \"br\";\n TAG_NAMES[\"BUTTON\"] = \"button\";\n TAG_NAMES[\"CAPTION\"] = \"caption\";\n TAG_NAMES[\"CENTER\"] = \"center\";\n TAG_NAMES[\"CODE\"] = \"code\";\n TAG_NAMES[\"COL\"] = \"col\";\n TAG_NAMES[\"COLGROUP\"] = \"colgroup\";\n TAG_NAMES[\"DD\"] = \"dd\";\n TAG_NAMES[\"DESC\"] = \"desc\";\n TAG_NAMES[\"DETAILS\"] = \"details\";\n TAG_NAMES[\"DIALOG\"] = \"dialog\";\n TAG_NAMES[\"DIR\"] = \"dir\";\n TAG_NAMES[\"DIV\"] = \"div\";\n TAG_NAMES[\"DL\"] = \"dl\";\n TAG_NAMES[\"DT\"] = \"dt\";\n TAG_NAMES[\"EM\"] = \"em\";\n TAG_NAMES[\"EMBED\"] = \"embed\";\n TAG_NAMES[\"FIELDSET\"] = \"fieldset\";\n TAG_NAMES[\"FIGCAPTION\"] = \"figcaption\";\n TAG_NAMES[\"FIGURE\"] = \"figure\";\n TAG_NAMES[\"FONT\"] = \"font\";\n TAG_NAMES[\"FOOTER\"] = \"footer\";\n TAG_NAMES[\"FOREIGN_OBJECT\"] = \"foreignObject\";\n TAG_NAMES[\"FORM\"] = \"form\";\n TAG_NAMES[\"FRAME\"] = \"frame\";\n TAG_NAMES[\"FRAMESET\"] = \"frameset\";\n TAG_NAMES[\"H1\"] = \"h1\";\n TAG_NAMES[\"H2\"] = \"h2\";\n TAG_NAMES[\"H3\"] = \"h3\";\n TAG_NAMES[\"H4\"] = \"h4\";\n TAG_NAMES[\"H5\"] = \"h5\";\n TAG_NAMES[\"H6\"] = \"h6\";\n TAG_NAMES[\"HEAD\"] = \"head\";\n TAG_NAMES[\"HEADER\"] = \"header\";\n TAG_NAMES[\"HGROUP\"] = \"hgroup\";\n TAG_NAMES[\"HR\"] = \"hr\";\n TAG_NAMES[\"HTML\"] = \"html\";\n TAG_NAMES[\"I\"] = \"i\";\n TAG_NAMES[\"IMG\"] = \"img\";\n TAG_NAMES[\"IMAGE\"] = \"image\";\n TAG_NAMES[\"INPUT\"] = \"input\";\n TAG_NAMES[\"IFRAME\"] = \"iframe\";\n TAG_NAMES[\"KEYGEN\"] = \"keygen\";\n TAG_NAMES[\"LABEL\"] = \"label\";\n TAG_NAMES[\"LI\"] = \"li\";\n TAG_NAMES[\"LINK\"] = \"link\";\n TAG_NAMES[\"LISTING\"] = \"listing\";\n TAG_NAMES[\"MAIN\"] = \"main\";\n TAG_NAMES[\"MALIGNMARK\"] = \"malignmark\";\n TAG_NAMES[\"MARQUEE\"] = \"marquee\";\n TAG_NAMES[\"MATH\"] = \"math\";\n TAG_NAMES[\"MENU\"] = \"menu\";\n TAG_NAMES[\"META\"] = \"meta\";\n TAG_NAMES[\"MGLYPH\"] = \"mglyph\";\n TAG_NAMES[\"MI\"] = \"mi\";\n TAG_NAMES[\"MO\"] = \"mo\";\n TAG_NAMES[\"MN\"] = \"mn\";\n TAG_NAMES[\"MS\"] = \"ms\";\n TAG_NAMES[\"MTEXT\"] = \"mtext\";\n TAG_NAMES[\"NAV\"] = \"nav\";\n TAG_NAMES[\"NOBR\"] = \"nobr\";\n TAG_NAMES[\"NOFRAMES\"] = \"noframes\";\n TAG_NAMES[\"NOEMBED\"] = \"noembed\";\n TAG_NAMES[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES[\"OBJECT\"] = \"object\";\n TAG_NAMES[\"OL\"] = \"ol\";\n TAG_NAMES[\"OPTGROUP\"] = \"optgroup\";\n TAG_NAMES[\"OPTION\"] = \"option\";\n TAG_NAMES[\"P\"] = \"p\";\n TAG_NAMES[\"PARAM\"] = \"param\";\n TAG_NAMES[\"PLAINTEXT\"] = \"plaintext\";\n TAG_NAMES[\"PRE\"] = \"pre\";\n TAG_NAMES[\"RB\"] = \"rb\";\n TAG_NAMES[\"RP\"] = \"rp\";\n TAG_NAMES[\"RT\"] = \"rt\";\n TAG_NAMES[\"RTC\"] = \"rtc\";\n TAG_NAMES[\"RUBY\"] = \"ruby\";\n TAG_NAMES[\"S\"] = \"s\";\n TAG_NAMES[\"SCRIPT\"] = \"script\";\n TAG_NAMES[\"SECTION\"] = \"section\";\n TAG_NAMES[\"SELECT\"] = \"select\";\n TAG_NAMES[\"SOURCE\"] = \"source\";\n TAG_NAMES[\"SMALL\"] = \"small\";\n TAG_NAMES[\"SPAN\"] = \"span\";\n TAG_NAMES[\"STRIKE\"] = \"strike\";\n TAG_NAMES[\"STRONG\"] = \"strong\";\n TAG_NAMES[\"STYLE\"] = \"style\";\n TAG_NAMES[\"SUB\"] = \"sub\";\n TAG_NAMES[\"SUMMARY\"] = \"summary\";\n TAG_NAMES[\"SUP\"] = \"sup\";\n TAG_NAMES[\"TABLE\"] = \"table\";\n TAG_NAMES[\"TBODY\"] = \"tbody\";\n TAG_NAMES[\"TEMPLATE\"] = \"template\";\n TAG_NAMES[\"TEXTAREA\"] = \"textarea\";\n TAG_NAMES[\"TFOOT\"] = \"tfoot\";\n TAG_NAMES[\"TD\"] = \"td\";\n TAG_NAMES[\"TH\"] = \"th\";\n TAG_NAMES[\"THEAD\"] = \"thead\";\n TAG_NAMES[\"TITLE\"] = \"title\";\n TAG_NAMES[\"TR\"] = \"tr\";\n TAG_NAMES[\"TRACK\"] = \"track\";\n TAG_NAMES[\"TT\"] = \"tt\";\n TAG_NAMES[\"U\"] = \"u\";\n TAG_NAMES[\"UL\"] = \"ul\";\n TAG_NAMES[\"SVG\"] = \"svg\";\n TAG_NAMES[\"VAR\"] = \"var\";\n TAG_NAMES[\"WBR\"] = \"wbr\";\n TAG_NAMES[\"XMP\"] = \"xmp\";\n})(TAG_NAMES = TAG_NAMES || (TAG_NAMES = {}));\n/**\n * Tag IDs are numeric IDs for known tag names.\n *\n * We use tag IDs to improve the performance of tag name comparisons.\n */\nexport var TAG_ID;\n(function (TAG_ID) {\n TAG_ID[TAG_ID[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n TAG_ID[TAG_ID[\"A\"] = 1] = \"A\";\n TAG_ID[TAG_ID[\"ADDRESS\"] = 2] = \"ADDRESS\";\n TAG_ID[TAG_ID[\"ANNOTATION_XML\"] = 3] = \"ANNOTATION_XML\";\n TAG_ID[TAG_ID[\"APPLET\"] = 4] = \"APPLET\";\n TAG_ID[TAG_ID[\"AREA\"] = 5] = \"AREA\";\n TAG_ID[TAG_ID[\"ARTICLE\"] = 6] = \"ARTICLE\";\n TAG_ID[TAG_ID[\"ASIDE\"] = 7] = \"ASIDE\";\n TAG_ID[TAG_ID[\"B\"] = 8] = \"B\";\n TAG_ID[TAG_ID[\"BASE\"] = 9] = \"BASE\";\n TAG_ID[TAG_ID[\"BASEFONT\"] = 10] = \"BASEFONT\";\n TAG_ID[TAG_ID[\"BGSOUND\"] = 11] = \"BGSOUND\";\n TAG_ID[TAG_ID[\"BIG\"] = 12] = \"BIG\";\n TAG_ID[TAG_ID[\"BLOCKQUOTE\"] = 13] = \"BLOCKQUOTE\";\n TAG_ID[TAG_ID[\"BODY\"] = 14] = \"BODY\";\n TAG_ID[TAG_ID[\"BR\"] = 15] = \"BR\";\n TAG_ID[TAG_ID[\"BUTTON\"] = 16] = \"BUTTON\";\n TAG_ID[TAG_ID[\"CAPTION\"] = 17] = \"CAPTION\";\n TAG_ID[TAG_ID[\"CENTER\"] = 18] = \"CENTER\";\n TAG_ID[TAG_ID[\"CODE\"] = 19] = \"CODE\";\n TAG_ID[TAG_ID[\"COL\"] = 20] = \"COL\";\n TAG_ID[TAG_ID[\"COLGROUP\"] = 21] = \"COLGROUP\";\n TAG_ID[TAG_ID[\"DD\"] = 22] = \"DD\";\n TAG_ID[TAG_ID[\"DESC\"] = 23] = \"DESC\";\n TAG_ID[TAG_ID[\"DETAILS\"] = 24] = \"DETAILS\";\n TAG_ID[TAG_ID[\"DIALOG\"] = 25] = \"DIALOG\";\n TAG_ID[TAG_ID[\"DIR\"] = 26] = \"DIR\";\n TAG_ID[TAG_ID[\"DIV\"] = 27] = \"DIV\";\n TAG_ID[TAG_ID[\"DL\"] = 28] = \"DL\";\n TAG_ID[TAG_ID[\"DT\"] = 29] = \"DT\";\n TAG_ID[TAG_ID[\"EM\"] = 30] = \"EM\";\n TAG_ID[TAG_ID[\"EMBED\"] = 31] = \"EMBED\";\n TAG_ID[TAG_ID[\"FIELDSET\"] = 32] = \"FIELDSET\";\n TAG_ID[TAG_ID[\"FIGCAPTION\"] = 33] = \"FIGCAPTION\";\n TAG_ID[TAG_ID[\"FIGURE\"] = 34] = \"FIGURE\";\n TAG_ID[TAG_ID[\"FONT\"] = 35] = \"FONT\";\n TAG_ID[TAG_ID[\"FOOTER\"] = 36] = \"FOOTER\";\n TAG_ID[TAG_ID[\"FOREIGN_OBJECT\"] = 37] = \"FOREIGN_OBJECT\";\n TAG_ID[TAG_ID[\"FORM\"] = 38] = \"FORM\";\n TAG_ID[TAG_ID[\"FRAME\"] = 39] = \"FRAME\";\n TAG_ID[TAG_ID[\"FRAMESET\"] = 40] = \"FRAMESET\";\n TAG_ID[TAG_ID[\"H1\"] = 41] = \"H1\";\n TAG_ID[TAG_ID[\"H2\"] = 42] = \"H2\";\n TAG_ID[TAG_ID[\"H3\"] = 43] = \"H3\";\n TAG_ID[TAG_ID[\"H4\"] = 44] = \"H4\";\n TAG_ID[TAG_ID[\"H5\"] = 45] = \"H5\";\n TAG_ID[TAG_ID[\"H6\"] = 46] = \"H6\";\n TAG_ID[TAG_ID[\"HEAD\"] = 47] = \"HEAD\";\n TAG_ID[TAG_ID[\"HEADER\"] = 48] = \"HEADER\";\n TAG_ID[TAG_ID[\"HGROUP\"] = 49] = \"HGROUP\";\n TAG_ID[TAG_ID[\"HR\"] = 50] = \"HR\";\n TAG_ID[TAG_ID[\"HTML\"] = 51] = \"HTML\";\n TAG_ID[TAG_ID[\"I\"] = 52] = \"I\";\n TAG_ID[TAG_ID[\"IMG\"] = 53] = \"IMG\";\n TAG_ID[TAG_ID[\"IMAGE\"] = 54] = \"IMAGE\";\n TAG_ID[TAG_ID[\"INPUT\"] = 55] = \"INPUT\";\n TAG_ID[TAG_ID[\"IFRAME\"] = 56] = \"IFRAME\";\n TAG_ID[TAG_ID[\"KEYGEN\"] = 57] = \"KEYGEN\";\n TAG_ID[TAG_ID[\"LABEL\"] = 58] = \"LABEL\";\n TAG_ID[TAG_ID[\"LI\"] = 59] = \"LI\";\n TAG_ID[TAG_ID[\"LINK\"] = 60] = \"LINK\";\n TAG_ID[TAG_ID[\"LISTING\"] = 61] = \"LISTING\";\n TAG_ID[TAG_ID[\"MAIN\"] = 62] = \"MAIN\";\n TAG_ID[TAG_ID[\"MALIGNMARK\"] = 63] = \"MALIGNMARK\";\n TAG_ID[TAG_ID[\"MARQUEE\"] = 64] = \"MARQUEE\";\n TAG_ID[TAG_ID[\"MATH\"] = 65] = \"MATH\";\n TAG_ID[TAG_ID[\"MENU\"] = 66] = \"MENU\";\n TAG_ID[TAG_ID[\"META\"] = 67] = \"META\";\n TAG_ID[TAG_ID[\"MGLYPH\"] = 68] = \"MGLYPH\";\n TAG_ID[TAG_ID[\"MI\"] = 69] = \"MI\";\n TAG_ID[TAG_ID[\"MO\"] = 70] = \"MO\";\n TAG_ID[TAG_ID[\"MN\"] = 71] = \"MN\";\n TAG_ID[TAG_ID[\"MS\"] = 72] = \"MS\";\n TAG_ID[TAG_ID[\"MTEXT\"] = 73] = \"MTEXT\";\n TAG_ID[TAG_ID[\"NAV\"] = 74] = \"NAV\";\n TAG_ID[TAG_ID[\"NOBR\"] = 75] = \"NOBR\";\n TAG_ID[TAG_ID[\"NOFRAMES\"] = 76] = \"NOFRAMES\";\n TAG_ID[TAG_ID[\"NOEMBED\"] = 77] = \"NOEMBED\";\n TAG_ID[TAG_ID[\"NOSCRIPT\"] = 78] = \"NOSCRIPT\";\n TAG_ID[TAG_ID[\"OBJECT\"] = 79] = \"OBJECT\";\n TAG_ID[TAG_ID[\"OL\"] = 80] = \"OL\";\n TAG_ID[TAG_ID[\"OPTGROUP\"] = 81] = \"OPTGROUP\";\n TAG_ID[TAG_ID[\"OPTION\"] = 82] = \"OPTION\";\n TAG_ID[TAG_ID[\"P\"] = 83] = \"P\";\n TAG_ID[TAG_ID[\"PARAM\"] = 84] = \"PARAM\";\n TAG_ID[TAG_ID[\"PLAINTEXT\"] = 85] = \"PLAINTEXT\";\n TAG_ID[TAG_ID[\"PRE\"] = 86] = \"PRE\";\n TAG_ID[TAG_ID[\"RB\"] = 87] = \"RB\";\n TAG_ID[TAG_ID[\"RP\"] = 88] = \"RP\";\n TAG_ID[TAG_ID[\"RT\"] = 89] = \"RT\";\n TAG_ID[TAG_ID[\"RTC\"] = 90] = \"RTC\";\n TAG_ID[TAG_ID[\"RUBY\"] = 91] = \"RUBY\";\n TAG_ID[TAG_ID[\"S\"] = 92] = \"S\";\n TAG_ID[TAG_ID[\"SCRIPT\"] = 93] = \"SCRIPT\";\n TAG_ID[TAG_ID[\"SECTION\"] = 94] = \"SECTION\";\n TAG_ID[TAG_ID[\"SELECT\"] = 95] = \"SELECT\";\n TAG_ID[TAG_ID[\"SOURCE\"] = 96] = \"SOURCE\";\n TAG_ID[TAG_ID[\"SMALL\"] = 97] = \"SMALL\";\n TAG_ID[TAG_ID[\"SPAN\"] = 98] = \"SPAN\";\n TAG_ID[TAG_ID[\"STRIKE\"] = 99] = \"STRIKE\";\n TAG_ID[TAG_ID[\"STRONG\"] = 100] = \"STRONG\";\n TAG_ID[TAG_ID[\"STYLE\"] = 101] = \"STYLE\";\n TAG_ID[TAG_ID[\"SUB\"] = 102] = \"SUB\";\n TAG_ID[TAG_ID[\"SUMMARY\"] = 103] = \"SUMMARY\";\n TAG_ID[TAG_ID[\"SUP\"] = 104] = \"SUP\";\n TAG_ID[TAG_ID[\"TABLE\"] = 105] = \"TABLE\";\n TAG_ID[TAG_ID[\"TBODY\"] = 106] = \"TBODY\";\n TAG_ID[TAG_ID[\"TEMPLATE\"] = 107] = \"TEMPLATE\";\n TAG_ID[TAG_ID[\"TEXTAREA\"] = 108] = \"TEXTAREA\";\n TAG_ID[TAG_ID[\"TFOOT\"] = 109] = \"TFOOT\";\n TAG_ID[TAG_ID[\"TD\"] = 110] = \"TD\";\n TAG_ID[TAG_ID[\"TH\"] = 111] = \"TH\";\n TAG_ID[TAG_ID[\"THEAD\"] = 112] = \"THEAD\";\n TAG_ID[TAG_ID[\"TITLE\"] = 113] = \"TITLE\";\n TAG_ID[TAG_ID[\"TR\"] = 114] = \"TR\";\n TAG_ID[TAG_ID[\"TRACK\"] = 115] = \"TRACK\";\n TAG_ID[TAG_ID[\"TT\"] = 116] = \"TT\";\n TAG_ID[TAG_ID[\"U\"] = 117] = \"U\";\n TAG_ID[TAG_ID[\"UL\"] = 118] = \"UL\";\n TAG_ID[TAG_ID[\"SVG\"] = 119] = \"SVG\";\n TAG_ID[TAG_ID[\"VAR\"] = 120] = \"VAR\";\n TAG_ID[TAG_ID[\"WBR\"] = 121] = \"WBR\";\n TAG_ID[TAG_ID[\"XMP\"] = 122] = \"XMP\";\n})(TAG_ID = TAG_ID || (TAG_ID = {}));\nconst TAG_NAME_TO_ID = new Map([\n [TAG_NAMES.A, TAG_ID.A],\n [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],\n [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],\n [TAG_NAMES.APPLET, TAG_ID.APPLET],\n [TAG_NAMES.AREA, TAG_ID.AREA],\n [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],\n [TAG_NAMES.ASIDE, TAG_ID.ASIDE],\n [TAG_NAMES.B, TAG_ID.B],\n [TAG_NAMES.BASE, TAG_ID.BASE],\n [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],\n [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],\n [TAG_NAMES.BIG, TAG_ID.BIG],\n [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],\n [TAG_NAMES.BODY, TAG_ID.BODY],\n [TAG_NAMES.BR, TAG_ID.BR],\n [TAG_NAMES.BUTTON, TAG_ID.BUTTON],\n [TAG_NAMES.CAPTION, TAG_ID.CAPTION],\n [TAG_NAMES.CENTER, TAG_ID.CENTER],\n [TAG_NAMES.CODE, TAG_ID.CODE],\n [TAG_NAMES.COL, TAG_ID.COL],\n [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],\n [TAG_NAMES.DD, TAG_ID.DD],\n [TAG_NAMES.DESC, TAG_ID.DESC],\n [TAG_NAMES.DETAILS, TAG_ID.DETAILS],\n [TAG_NAMES.DIALOG, TAG_ID.DIALOG],\n [TAG_NAMES.DIR, TAG_ID.DIR],\n [TAG_NAMES.DIV, TAG_ID.DIV],\n [TAG_NAMES.DL, TAG_ID.DL],\n [TAG_NAMES.DT, TAG_ID.DT],\n [TAG_NAMES.EM, TAG_ID.EM],\n [TAG_NAMES.EMBED, TAG_ID.EMBED],\n [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],\n [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],\n [TAG_NAMES.FIGURE, TAG_ID.FIGURE],\n [TAG_NAMES.FONT, TAG_ID.FONT],\n [TAG_NAMES.FOOTER, TAG_ID.FOOTER],\n [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],\n [TAG_NAMES.FORM, TAG_ID.FORM],\n [TAG_NAMES.FRAME, TAG_ID.FRAME],\n [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],\n [TAG_NAMES.H1, TAG_ID.H1],\n [TAG_NAMES.H2, TAG_ID.H2],\n [TAG_NAMES.H3, TAG_ID.H3],\n [TAG_NAMES.H4, TAG_ID.H4],\n [TAG_NAMES.H5, TAG_ID.H5],\n [TAG_NAMES.H6, TAG_ID.H6],\n [TAG_NAMES.HEAD, TAG_ID.HEAD],\n [TAG_NAMES.HEADER, TAG_ID.HEADER],\n [TAG_NAMES.HGROUP, TAG_ID.HGROUP],\n [TAG_NAMES.HR, TAG_ID.HR],\n [TAG_NAMES.HTML, TAG_ID.HTML],\n [TAG_NAMES.I, TAG_ID.I],\n [TAG_NAMES.IMG, TAG_ID.IMG],\n [TAG_NAMES.IMAGE, TAG_ID.IMAGE],\n [TAG_NAMES.INPUT, TAG_ID.INPUT],\n [TAG_NAMES.IFRAME, TAG_ID.IFRAME],\n [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],\n [TAG_NAMES.LABEL, TAG_ID.LABEL],\n [TAG_NAMES.LI, TAG_ID.LI],\n [TAG_NAMES.LINK, TAG_ID.LINK],\n [TAG_NAMES.LISTING, TAG_ID.LISTING],\n [TAG_NAMES.MAIN, TAG_ID.MAIN],\n [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],\n [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],\n [TAG_NAMES.MATH, TAG_ID.MATH],\n [TAG_NAMES.MENU, TAG_ID.MENU],\n [TAG_NAMES.META, TAG_ID.META],\n [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],\n [TAG_NAMES.MI, TAG_ID.MI],\n [TAG_NAMES.MO, TAG_ID.MO],\n [TAG_NAMES.MN, TAG_ID.MN],\n [TAG_NAMES.MS, TAG_ID.MS],\n [TAG_NAMES.MTEXT, TAG_ID.MTEXT],\n [TAG_NAMES.NAV, TAG_ID.NAV],\n [TAG_NAMES.NOBR, TAG_ID.NOBR],\n [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],\n [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],\n [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],\n [TAG_NAMES.OBJECT, TAG_ID.OBJECT],\n [TAG_NAMES.OL, TAG_ID.OL],\n [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],\n [TAG_NAMES.OPTION, TAG_ID.OPTION],\n [TAG_NAMES.P, TAG_ID.P],\n [TAG_NAMES.PARAM, TAG_ID.PARAM],\n [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],\n [TAG_NAMES.PRE, TAG_ID.PRE],\n [TAG_NAMES.RB, TAG_ID.RB],\n [TAG_NAMES.RP, TAG_ID.RP],\n [TAG_NAMES.RT, TAG_ID.RT],\n [TAG_NAMES.RTC, TAG_ID.RTC],\n [TAG_NAMES.RUBY, TAG_ID.RUBY],\n [TAG_NAMES.S, TAG_ID.S],\n [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],\n [TAG_NAMES.SECTION, TAG_ID.SECTION],\n [TAG_NAMES.SELECT, TAG_ID.SELECT],\n [TAG_NAMES.SOURCE, TAG_ID.SOURCE],\n [TAG_NAMES.SMALL, TAG_ID.SMALL],\n [TAG_NAMES.SPAN, TAG_ID.SPAN],\n [TAG_NAMES.STRIKE, TAG_ID.STRIKE],\n [TAG_NAMES.STRONG, TAG_ID.STRONG],\n [TAG_NAMES.STYLE, TAG_ID.STYLE],\n [TAG_NAMES.SUB, TAG_ID.SUB],\n [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],\n [TAG_NAMES.SUP, TAG_ID.SUP],\n [TAG_NAMES.TABLE, TAG_ID.TABLE],\n [TAG_NAMES.TBODY, TAG_ID.TBODY],\n [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],\n [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],\n [TAG_NAMES.TFOOT, TAG_ID.TFOOT],\n [TAG_NAMES.TD, TAG_ID.TD],\n [TAG_NAMES.TH, TAG_ID.TH],\n [TAG_NAMES.THEAD, TAG_ID.THEAD],\n [TAG_NAMES.TITLE, TAG_ID.TITLE],\n [TAG_NAMES.TR, TAG_ID.TR],\n [TAG_NAMES.TRACK, TAG_ID.TRACK],\n [TAG_NAMES.TT, TAG_ID.TT],\n [TAG_NAMES.U, TAG_ID.U],\n [TAG_NAMES.UL, TAG_ID.UL],\n [TAG_NAMES.SVG, TAG_ID.SVG],\n [TAG_NAMES.VAR, TAG_ID.VAR],\n [TAG_NAMES.WBR, TAG_ID.WBR],\n [TAG_NAMES.XMP, TAG_ID.XMP],\n]);\nexport function getTagID(tagName) {\n var _a;\n return (_a = TAG_NAME_TO_ID.get(tagName)) !== null && _a !== void 0 ? _a : TAG_ID.UNKNOWN;\n}\nconst $ = TAG_ID;\nexport const SPECIAL_ELEMENTS = {\n [NS.HTML]: new Set([\n $.ADDRESS,\n $.APPLET,\n $.AREA,\n $.ARTICLE,\n $.ASIDE,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.BUTTON,\n $.CAPTION,\n $.CENTER,\n $.COL,\n $.COLGROUP,\n $.DD,\n $.DETAILS,\n $.DIR,\n $.DIV,\n $.DL,\n $.DT,\n $.EMBED,\n $.FIELDSET,\n $.FIGCAPTION,\n $.FIGURE,\n $.FOOTER,\n $.FORM,\n $.FRAME,\n $.FRAMESET,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HEADER,\n $.HGROUP,\n $.HR,\n $.HTML,\n $.IFRAME,\n $.IMG,\n $.INPUT,\n $.LI,\n $.LINK,\n $.LISTING,\n $.MAIN,\n $.MARQUEE,\n $.MENU,\n $.META,\n $.NAV,\n $.NOEMBED,\n $.NOFRAMES,\n $.NOSCRIPT,\n $.OBJECT,\n $.OL,\n $.P,\n $.PARAM,\n $.PLAINTEXT,\n $.PRE,\n $.SCRIPT,\n $.SECTION,\n $.SELECT,\n $.SOURCE,\n $.STYLE,\n $.SUMMARY,\n $.TABLE,\n $.TBODY,\n $.TD,\n $.TEMPLATE,\n $.TEXTAREA,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TITLE,\n $.TR,\n $.TRACK,\n $.UL,\n $.WBR,\n $.XMP,\n ]),\n [NS.MATHML]: new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]),\n [NS.SVG]: new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]),\n [NS.XLINK]: new Set(),\n [NS.XML]: new Set(),\n [NS.XMLNS]: new Set(),\n};\nexport function isNumberedHeader(tn) {\n return tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6;\n}\nconst UNESCAPED_TEXT = new Set([\n TAG_NAMES.STYLE,\n TAG_NAMES.SCRIPT,\n TAG_NAMES.XMP,\n TAG_NAMES.IFRAME,\n TAG_NAMES.NOEMBED,\n TAG_NAMES.NOFRAMES,\n TAG_NAMES.PLAINTEXT,\n]);\nexport function hasUnescapedText(tn, scriptingEnabled) {\n return UNESCAPED_TEXT.has(tn) || (scriptingEnabled && tn === TAG_NAMES.NOSCRIPT);\n}\n//# sourceMappingURL=html.js.map","import { Preprocessor } from './preprocessor.js';\nimport { CODE_POINTS as $, SEQUENCES as $$, REPLACEMENT_CHARACTER, isSurrogate, isUndefinedCodePoint, isControlCodePoint, } from '../common/unicode.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\nimport { htmlDecodeTree, BinTrieFlags, determineBranch } from 'entities/lib/decode.js';\nimport { ERR } from '../common/error-codes.js';\nimport { TAG_ID, getTagID } from '../common/html.js';\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = new Map([\n [0x80, 8364],\n [0x82, 8218],\n [0x83, 402],\n [0x84, 8222],\n [0x85, 8230],\n [0x86, 8224],\n [0x87, 8225],\n [0x88, 710],\n [0x89, 8240],\n [0x8a, 352],\n [0x8b, 8249],\n [0x8c, 338],\n [0x8e, 381],\n [0x91, 8216],\n [0x92, 8217],\n [0x93, 8220],\n [0x94, 8221],\n [0x95, 8226],\n [0x96, 8211],\n [0x97, 8212],\n [0x98, 732],\n [0x99, 8482],\n [0x9a, 353],\n [0x9b, 8250],\n [0x9c, 339],\n [0x9e, 382],\n [0x9f, 376],\n]);\n//States\nvar State;\n(function (State) {\n State[State[\"DATA\"] = 0] = \"DATA\";\n State[State[\"RCDATA\"] = 1] = \"RCDATA\";\n State[State[\"RAWTEXT\"] = 2] = \"RAWTEXT\";\n State[State[\"SCRIPT_DATA\"] = 3] = \"SCRIPT_DATA\";\n State[State[\"PLAINTEXT\"] = 4] = \"PLAINTEXT\";\n State[State[\"TAG_OPEN\"] = 5] = \"TAG_OPEN\";\n State[State[\"END_TAG_OPEN\"] = 6] = \"END_TAG_OPEN\";\n State[State[\"TAG_NAME\"] = 7] = \"TAG_NAME\";\n State[State[\"RCDATA_LESS_THAN_SIGN\"] = 8] = \"RCDATA_LESS_THAN_SIGN\";\n State[State[\"RCDATA_END_TAG_OPEN\"] = 9] = \"RCDATA_END_TAG_OPEN\";\n State[State[\"RCDATA_END_TAG_NAME\"] = 10] = \"RCDATA_END_TAG_NAME\";\n State[State[\"RAWTEXT_LESS_THAN_SIGN\"] = 11] = \"RAWTEXT_LESS_THAN_SIGN\";\n State[State[\"RAWTEXT_END_TAG_OPEN\"] = 12] = \"RAWTEXT_END_TAG_OPEN\";\n State[State[\"RAWTEXT_END_TAG_NAME\"] = 13] = \"RAWTEXT_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_LESS_THAN_SIGN\"] = 14] = \"SCRIPT_DATA_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_END_TAG_OPEN\"] = 15] = \"SCRIPT_DATA_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_END_TAG_NAME\"] = 16] = \"SCRIPT_DATA_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_ESCAPE_START\"] = 17] = \"SCRIPT_DATA_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_ESCAPE_START_DASH\"] = 18] = \"SCRIPT_DATA_ESCAPE_START_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED\"] = 19] = \"SCRIPT_DATA_ESCAPED\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH\"] = 20] = \"SCRIPT_DATA_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH_DASH\"] = 21] = \"SCRIPT_DATA_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\"] = 22] = \"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\"] = 23] = \"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_NAME\"] = 24] = \"SCRIPT_DATA_ESCAPED_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_START\"] = 25] = \"SCRIPT_DATA_DOUBLE_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED\"] = 26] = \"SCRIPT_DATA_DOUBLE_ESCAPED\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\"] = 27] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\"] = 28] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\"] = 29] = \"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_END\"] = 30] = \"SCRIPT_DATA_DOUBLE_ESCAPE_END\";\n State[State[\"BEFORE_ATTRIBUTE_NAME\"] = 31] = \"BEFORE_ATTRIBUTE_NAME\";\n State[State[\"ATTRIBUTE_NAME\"] = 32] = \"ATTRIBUTE_NAME\";\n State[State[\"AFTER_ATTRIBUTE_NAME\"] = 33] = \"AFTER_ATTRIBUTE_NAME\";\n State[State[\"BEFORE_ATTRIBUTE_VALUE\"] = 34] = \"BEFORE_ATTRIBUTE_VALUE\";\n State[State[\"ATTRIBUTE_VALUE_DOUBLE_QUOTED\"] = 35] = \"ATTRIBUTE_VALUE_DOUBLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_SINGLE_QUOTED\"] = 36] = \"ATTRIBUTE_VALUE_SINGLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_UNQUOTED\"] = 37] = \"ATTRIBUTE_VALUE_UNQUOTED\";\n State[State[\"AFTER_ATTRIBUTE_VALUE_QUOTED\"] = 38] = \"AFTER_ATTRIBUTE_VALUE_QUOTED\";\n State[State[\"SELF_CLOSING_START_TAG\"] = 39] = \"SELF_CLOSING_START_TAG\";\n State[State[\"BOGUS_COMMENT\"] = 40] = \"BOGUS_COMMENT\";\n State[State[\"MARKUP_DECLARATION_OPEN\"] = 41] = \"MARKUP_DECLARATION_OPEN\";\n State[State[\"COMMENT_START\"] = 42] = \"COMMENT_START\";\n State[State[\"COMMENT_START_DASH\"] = 43] = \"COMMENT_START_DASH\";\n State[State[\"COMMENT\"] = 44] = \"COMMENT\";\n State[State[\"COMMENT_LESS_THAN_SIGN\"] = 45] = \"COMMENT_LESS_THAN_SIGN\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG\"] = 46] = \"COMMENT_LESS_THAN_SIGN_BANG\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH\"] = 47] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\"] = 48] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\";\n State[State[\"COMMENT_END_DASH\"] = 49] = \"COMMENT_END_DASH\";\n State[State[\"COMMENT_END\"] = 50] = \"COMMENT_END\";\n State[State[\"COMMENT_END_BANG\"] = 51] = \"COMMENT_END_BANG\";\n State[State[\"DOCTYPE\"] = 52] = \"DOCTYPE\";\n State[State[\"BEFORE_DOCTYPE_NAME\"] = 53] = \"BEFORE_DOCTYPE_NAME\";\n State[State[\"DOCTYPE_NAME\"] = 54] = \"DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_NAME\"] = 55] = \"AFTER_DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_KEYWORD\"] = 56] = \"AFTER_DOCTYPE_PUBLIC_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\"] = 57] = \"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\"] = 58] = \"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\"] = 59] = \"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\"] = 60] = \"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\"] = 61] = \"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_KEYWORD\"] = 62] = \"AFTER_DOCTYPE_SYSTEM_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\"] = 63] = \"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\"] = 64] = \"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\"] = 65] = \"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\"] = 66] = \"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"BOGUS_DOCTYPE\"] = 67] = \"BOGUS_DOCTYPE\";\n State[State[\"CDATA_SECTION\"] = 68] = \"CDATA_SECTION\";\n State[State[\"CDATA_SECTION_BRACKET\"] = 69] = \"CDATA_SECTION_BRACKET\";\n State[State[\"CDATA_SECTION_END\"] = 70] = \"CDATA_SECTION_END\";\n State[State[\"CHARACTER_REFERENCE\"] = 71] = \"CHARACTER_REFERENCE\";\n State[State[\"NAMED_CHARACTER_REFERENCE\"] = 72] = \"NAMED_CHARACTER_REFERENCE\";\n State[State[\"AMBIGUOUS_AMPERSAND\"] = 73] = \"AMBIGUOUS_AMPERSAND\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE\"] = 74] = \"NUMERIC_CHARACTER_REFERENCE\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE_START\"] = 75] = \"HEXADEMICAL_CHARACTER_REFERENCE_START\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE\"] = 76] = \"HEXADEMICAL_CHARACTER_REFERENCE\";\n State[State[\"DECIMAL_CHARACTER_REFERENCE\"] = 77] = \"DECIMAL_CHARACTER_REFERENCE\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE_END\"] = 78] = \"NUMERIC_CHARACTER_REFERENCE_END\";\n})(State || (State = {}));\n//Tokenizer initial states for different modes\nexport const TokenizerMode = {\n DATA: State.DATA,\n RCDATA: State.RCDATA,\n RAWTEXT: State.RAWTEXT,\n SCRIPT_DATA: State.SCRIPT_DATA,\n PLAINTEXT: State.PLAINTEXT,\n CDATA_SECTION: State.CDATA_SECTION,\n};\n//Utils\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\nfunction toAsciiLower(cp) {\n return cp + 32;\n}\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\nfunction isEntityInAttributeInvalidEnd(nextCp) {\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n}\nfunction isScriptDataDoubleEscapeSequenceEnd(cp) {\n return isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN;\n}\n//Tokenizer\nexport class Tokenizer {\n constructor(options, handler) {\n this.options = options;\n this.handler = handler;\n this.paused = false;\n /** Ensures that the parsing loop isn't run multiple times at once. */\n this.inLoop = false;\n /**\n * Indicates that the current adjusted node exists, is not an element in the HTML namespace,\n * and that it is not an integration point for either MathML or HTML.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}\n */\n this.inForeignNode = false;\n this.lastStartTagName = '';\n this.active = false;\n this.state = State.DATA;\n this.returnState = State.DATA;\n this.charRefCode = -1;\n this.consumedAfterSnapshot = -1;\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = { name: '', value: '' };\n this.preprocessor = new Preprocessor(handler);\n this.currentLocation = this.getCurrentLocation(-1);\n }\n //Errors\n _err(code) {\n var _a, _b;\n (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code));\n }\n // NOTE: `offset` may never run across line boundaries.\n getCurrentLocation(offset) {\n if (!this.options.sourceCodeLocationInfo) {\n return null;\n }\n return {\n startLine: this.preprocessor.line,\n startCol: this.preprocessor.col - offset,\n startOffset: this.preprocessor.offset - offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n };\n }\n _runParsingLoop() {\n if (this.inLoop)\n return;\n this.inLoop = true;\n while (this.active && !this.paused) {\n this.consumedAfterSnapshot = 0;\n const cp = this._consume();\n if (!this._ensureHibernation()) {\n this._callState(cp);\n }\n }\n this.inLoop = false;\n }\n //API\n pause() {\n this.paused = true;\n }\n resume(writeCallback) {\n if (!this.paused) {\n throw new Error('Parser was already resumed');\n }\n this.paused = false;\n // Necessary for synchronous resume.\n if (this.inLoop)\n return;\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n write(chunk, isLastChunk, writeCallback) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n this._runParsingLoop();\n }\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n this._unconsume(this.consumedAfterSnapshot);\n this.active = false;\n return true;\n }\n return false;\n }\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n _unconsume(count) {\n this.consumedAfterSnapshot -= count;\n this.preprocessor.retreat(count);\n }\n _reconsumeInState(state, cp) {\n this.state = state;\n this._callState(cp);\n }\n _advanceBy(count) {\n this.consumedAfterSnapshot += count;\n for (let i = 0; i < count; i++) {\n this.preprocessor.advance();\n }\n }\n _consumeSequenceIfMatch(pattern, caseSensitive) {\n if (this.preprocessor.startsWith(pattern, caseSensitive)) {\n // We will already have consumed one character before calling this method.\n this._advanceBy(pattern.length - 1);\n return true;\n }\n return false;\n }\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: TokenType.START_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(1),\n };\n }\n _createEndTagToken() {\n this.currentToken = {\n type: TokenType.END_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(2),\n };\n }\n _createCommentToken(offset) {\n this.currentToken = {\n type: TokenType.COMMENT,\n data: '',\n location: this.getCurrentLocation(offset),\n };\n }\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: TokenType.DOCTYPE,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null,\n location: this.currentLocation,\n };\n }\n _createCharacterToken(type, chars) {\n this.currentCharacterToken = {\n type,\n chars,\n location: this.currentLocation,\n };\n }\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: '',\n };\n this.currentLocation = this.getCurrentLocation(0);\n }\n _leaveAttrName() {\n var _a;\n var _b;\n const token = this.currentToken;\n if (getTokenAttr(token, this.currentAttr.name) === null) {\n token.attrs.push(this.currentAttr);\n if (token.location && this.currentLocation) {\n const attrLocations = ((_a = (_b = token.location).attrs) !== null && _a !== void 0 ? _a : (_b.attrs = Object.create(null)));\n attrLocations[this.currentAttr.name] = this.currentLocation;\n // Set end location\n this._leaveAttrValue();\n }\n }\n else {\n this._err(ERR.duplicateAttribute);\n }\n }\n _leaveAttrValue() {\n if (this.currentLocation) {\n this.currentLocation.endLine = this.preprocessor.line;\n this.currentLocation.endCol = this.preprocessor.col;\n this.currentLocation.endOffset = this.preprocessor.offset;\n }\n }\n //Token emission\n prepareToken(ct) {\n this._emitCurrentCharacterToken(ct.location);\n this.currentToken = null;\n if (ct.location) {\n ct.location.endLine = this.preprocessor.line;\n ct.location.endCol = this.preprocessor.col + 1;\n ct.location.endOffset = this.preprocessor.offset + 1;\n }\n this.currentLocation = this.getCurrentLocation(-1);\n }\n emitCurrentTagToken() {\n const ct = this.currentToken;\n this.prepareToken(ct);\n ct.tagID = getTagID(ct.tagName);\n if (ct.type === TokenType.START_TAG) {\n this.lastStartTagName = ct.tagName;\n this.handler.onStartTag(ct);\n }\n else {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n this.handler.onEndTag(ct);\n }\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentComment(ct) {\n this.prepareToken(ct);\n this.handler.onComment(ct);\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentDoctype(ct) {\n this.prepareToken(ct);\n this.handler.onDoctype(ct);\n this.preprocessor.dropParsedChunk();\n }\n _emitCurrentCharacterToken(nextLocation) {\n if (this.currentCharacterToken) {\n //NOTE: if we have a pending character token, make it's end location equal to the\n //current token's start location.\n if (nextLocation && this.currentCharacterToken.location) {\n this.currentCharacterToken.location.endLine = nextLocation.startLine;\n this.currentCharacterToken.location.endCol = nextLocation.startCol;\n this.currentCharacterToken.location.endOffset = nextLocation.startOffset;\n }\n switch (this.currentCharacterToken.type) {\n case TokenType.CHARACTER: {\n this.handler.onCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.handler.onNullCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.handler.onWhitespaceCharacter(this.currentCharacterToken);\n break;\n }\n }\n this.currentCharacterToken = null;\n }\n }\n _emitEOFToken() {\n const location = this.getCurrentLocation(0);\n if (location) {\n location.endLine = location.startLine;\n location.endCol = location.startCol;\n location.endOffset = location.startOffset;\n }\n this._emitCurrentCharacterToken(location);\n this.handler.onEof({ type: TokenType.EOF, location });\n this.active = false;\n }\n //Characters emission\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, the parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)TokenType.NULL_CHARACTER - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken) {\n if (this.currentCharacterToken.type !== type) {\n this.currentLocation = this.getCurrentLocation(0);\n this._emitCurrentCharacterToken(this.currentLocation);\n this.preprocessor.dropParsedChunk();\n }\n else {\n this.currentCharacterToken.chars += ch;\n return;\n }\n }\n this._createCharacterToken(type, ch);\n }\n _emitCodePoint(cp) {\n const type = isWhitespace(cp)\n ? TokenType.WHITESPACE_CHARACTER\n : cp === $.NULL\n ? TokenType.NULL_CHARACTER\n : TokenType.CHARACTER;\n this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));\n }\n //NOTE: used when we emit characters explicitly.\n //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch);\n }\n // Character reference helpers\n _matchNamedCharacterReference(cp) {\n let result = null;\n let excess = 0;\n let withoutSemicolon = false;\n for (let i = 0, current = htmlDecodeTree[0]; i >= 0; cp = this._consume()) {\n i = determineBranch(htmlDecodeTree, current, i + 1, cp);\n if (i < 0)\n break;\n excess += 1;\n current = htmlDecodeTree[i];\n const masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n // See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n if (cp !== $.SEMICOLON &&\n this._isCharacterReferenceInAttribute() &&\n isEntityInAttributeInvalidEnd(this.preprocessor.peek(1))) {\n //NOTE: we don't flush all consumed code points here, and instead switch back to the original state after\n //emitting an ampersand. This is fine, as alphanumeric characters won't be parsed differently in attributes.\n result = [$.AMPERSAND];\n // Skip over the value.\n i += valueLength;\n }\n else {\n // If this is a surrogate pair, consume the next two bytes.\n result =\n valueLength === 0\n ? [htmlDecodeTree[i] & ~BinTrieFlags.VALUE_LENGTH]\n : valueLength === 1\n ? [htmlDecodeTree[++i]]\n : [htmlDecodeTree[++i], htmlDecodeTree[++i]];\n excess = 0;\n withoutSemicolon = cp !== $.SEMICOLON;\n }\n if (valueLength === 0) {\n // If the value is zero-length, we're done.\n this._consume();\n break;\n }\n }\n }\n this._unconsume(excess);\n if (withoutSemicolon && !this.preprocessor.endOfChunkHit) {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n }\n // We want to emit the error above on the code point after the entity.\n // We always consume one code point too many in the loop, and we wait to\n // unconsume it until after the error is emitted.\n this._unconsume(1);\n return result;\n }\n _isCharacterReferenceInAttribute() {\n return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED);\n }\n _flushCodePointConsumedAsCharacterReference(cp) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n else {\n this._emitCodePoint(cp);\n }\n }\n // Calling states this way turns out to be much faster than any other approach.\n _callState(cp) {\n switch (this.state) {\n case State.DATA: {\n this._stateData(cp);\n break;\n }\n case State.RCDATA: {\n this._stateRcdata(cp);\n break;\n }\n case State.RAWTEXT: {\n this._stateRawtext(cp);\n break;\n }\n case State.SCRIPT_DATA: {\n this._stateScriptData(cp);\n break;\n }\n case State.PLAINTEXT: {\n this._statePlaintext(cp);\n break;\n }\n case State.TAG_OPEN: {\n this._stateTagOpen(cp);\n break;\n }\n case State.END_TAG_OPEN: {\n this._stateEndTagOpen(cp);\n break;\n }\n case State.TAG_NAME: {\n this._stateTagName(cp);\n break;\n }\n case State.RCDATA_LESS_THAN_SIGN: {\n this._stateRcdataLessThanSign(cp);\n break;\n }\n case State.RCDATA_END_TAG_OPEN: {\n this._stateRcdataEndTagOpen(cp);\n break;\n }\n case State.RCDATA_END_TAG_NAME: {\n this._stateRcdataEndTagName(cp);\n break;\n }\n case State.RAWTEXT_LESS_THAN_SIGN: {\n this._stateRawtextLessThanSign(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_OPEN: {\n this._stateRawtextEndTagOpen(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_NAME: {\n this._stateRawtextEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_LESS_THAN_SIGN: {\n this._stateScriptDataLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_OPEN: {\n this._stateScriptDataEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_NAME: {\n this._stateScriptDataEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START: {\n this._stateScriptDataEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START_DASH: {\n this._stateScriptDataEscapeStartDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED: {\n this._stateScriptDataEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH: {\n this._stateScriptDataEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {\n this._stateScriptDataEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {\n this._stateScriptDataEscapedEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {\n this._stateScriptDataEscapedEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {\n this._stateScriptDataDoubleEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED: {\n this._stateScriptDataDoubleEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {\n this._stateScriptDataDoubleEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {\n this._stateScriptDataDoubleEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataDoubleEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {\n this._stateScriptDataDoubleEscapeEnd(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_NAME: {\n this._stateBeforeAttributeName(cp);\n break;\n }\n case State.ATTRIBUTE_NAME: {\n this._stateAttributeName(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_NAME: {\n this._stateAfterAttributeName(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_VALUE: {\n this._stateBeforeAttributeValue(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {\n this._stateAttributeValueDoubleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {\n this._stateAttributeValueSingleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_UNQUOTED: {\n this._stateAttributeValueUnquoted(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {\n this._stateAfterAttributeValueQuoted(cp);\n break;\n }\n case State.SELF_CLOSING_START_TAG: {\n this._stateSelfClosingStartTag(cp);\n break;\n }\n case State.BOGUS_COMMENT: {\n this._stateBogusComment(cp);\n break;\n }\n case State.MARKUP_DECLARATION_OPEN: {\n this._stateMarkupDeclarationOpen(cp);\n break;\n }\n case State.COMMENT_START: {\n this._stateCommentStart(cp);\n break;\n }\n case State.COMMENT_START_DASH: {\n this._stateCommentStartDash(cp);\n break;\n }\n case State.COMMENT: {\n this._stateComment(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN: {\n this._stateCommentLessThanSign(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG: {\n this._stateCommentLessThanSignBang(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {\n this._stateCommentLessThanSignBangDash(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {\n this._stateCommentLessThanSignBangDashDash(cp);\n break;\n }\n case State.COMMENT_END_DASH: {\n this._stateCommentEndDash(cp);\n break;\n }\n case State.COMMENT_END: {\n this._stateCommentEnd(cp);\n break;\n }\n case State.COMMENT_END_BANG: {\n this._stateCommentEndBang(cp);\n break;\n }\n case State.DOCTYPE: {\n this._stateDoctype(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_NAME: {\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case State.DOCTYPE_NAME: {\n this._stateDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_NAME: {\n this._stateAfterDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {\n this._stateAfterDoctypePublicKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateBeforeDoctypePublicIdentifier(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypePublicIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypePublicIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateAfterDoctypePublicIdentifier(cp);\n break;\n }\n case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {\n this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {\n this._stateAfterDoctypeSystemKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateBeforeDoctypeSystemIdentifier(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypeSystemIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypeSystemIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateAfterDoctypeSystemIdentifier(cp);\n break;\n }\n case State.BOGUS_DOCTYPE: {\n this._stateBogusDoctype(cp);\n break;\n }\n case State.CDATA_SECTION: {\n this._stateCdataSection(cp);\n break;\n }\n case State.CDATA_SECTION_BRACKET: {\n this._stateCdataSectionBracket(cp);\n break;\n }\n case State.CDATA_SECTION_END: {\n this._stateCdataSectionEnd(cp);\n break;\n }\n case State.CHARACTER_REFERENCE: {\n this._stateCharacterReference(cp);\n break;\n }\n case State.NAMED_CHARACTER_REFERENCE: {\n this._stateNamedCharacterReference(cp);\n break;\n }\n case State.AMBIGUOUS_AMPERSAND: {\n this._stateAmbiguousAmpersand(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE: {\n this._stateNumericCharacterReference(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE_START: {\n this._stateHexademicalCharacterReferenceStart(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE: {\n this._stateHexademicalCharacterReference(cp);\n break;\n }\n case State.DECIMAL_CHARACTER_REFERENCE: {\n this._stateDecimalCharacterReference(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE_END: {\n this._stateNumericCharacterReferenceEnd(cp);\n break;\n }\n default: {\n throw new Error('Unknown state');\n }\n }\n }\n // State machine\n // Data state\n //------------------------------------------------------------------\n _stateData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.TAG_OPEN;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.DATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RCDATA state\n //------------------------------------------------------------------\n _stateRcdata(cp) {\n switch (cp) {\n case $.AMPERSAND: {\n this.returnState = State.RCDATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.RCDATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RAWTEXT state\n //------------------------------------------------------------------\n _stateRawtext(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.RAWTEXT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data state\n //------------------------------------------------------------------\n _stateScriptData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // PLAINTEXT state\n //------------------------------------------------------------------\n _statePlaintext(cp) {\n switch (cp) {\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Tag open state\n //------------------------------------------------------------------\n _stateTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n this.state = State.MARKUP_DECLARATION_OPEN;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.END_TAG_OPEN;\n break;\n }\n case $.QUESTION_MARK: {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken(1);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this.state = State.DATA;\n this._stateData(cp);\n }\n }\n }\n // End tag open state\n //------------------------------------------------------------------\n _stateEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingEndTagName);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n }\n // Tag name state\n //------------------------------------------------------------------\n _stateTagName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.tagName += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n _stateRcdataLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RCDATA_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RCDATA end tag open state\n //------------------------------------------------------------------\n _stateRcdataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RCDATA_END_TAG_NAME;\n this._stateRcdataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n handleSpecialEndTag(_cp) {\n if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {\n return !this._ensureHibernation();\n }\n this._createEndTagToken();\n const token = this.currentToken;\n token.tagName = this.lastStartTagName;\n const cp = this.preprocessor.peek(this.lastStartTagName.length);\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n return false;\n }\n case $.SOLIDUS: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.SELF_CLOSING_START_TAG;\n return false;\n }\n case $.GREATER_THAN_SIGN: {\n this._advanceBy(this.lastStartTagName.length);\n this.emitCurrentTagToken();\n this.state = State.DATA;\n return false;\n }\n default: {\n return !this._ensureHibernation();\n }\n }\n }\n // RCDATA end tag name state\n //------------------------------------------------------------------\n _stateRcdataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n _stateRawtextLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RAWTEXT_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n _stateRawtextEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RAWTEXT_END_TAG_NAME;\n this._stateRawtextEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n _stateRawtextEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // Script data less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataLessThanSign(cp) {\n switch (cp) {\n case $.SOLIDUS: {\n this.state = State.SCRIPT_DATA_END_TAG_OPEN;\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.SCRIPT_DATA_ESCAPE_START;\n this._emitChars('<!');\n break;\n }\n default: {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n }\n // Script data end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_END_TAG_NAME;\n this._stateScriptDataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStart(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPE_START_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStartDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escaped state\n //------------------------------------------------------------------\n _stateScriptDataEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;\n }\n else if (isAsciiLetter(cp)) {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;\n this._stateScriptDataDoubleEscapeStart(cp);\n }\n else {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;\n this._stateScriptDataEscapedEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escape start state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeStart(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escaped state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;\n this._emitChars('/');\n }\n else {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Script data double escape end state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeEnd(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Before attribute name state\n //------------------------------------------------------------------\n _stateBeforeAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = State.ATTRIBUTE_NAME;\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Attribute name state\n //------------------------------------------------------------------\n _stateAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED:\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this._leaveAttrName();\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._leaveAttrName();\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN: {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += String.fromCodePoint(cp);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After attribute name state\n //------------------------------------------------------------------\n _stateAfterAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.EQUALS_SIGN: {\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Before attribute value state\n //------------------------------------------------------------------\n _stateBeforeAttributeValue(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingAttributeValue);\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n default: {\n this.state = State.ATTRIBUTE_VALUE_UNQUOTED;\n this._stateAttributeValueUnquoted(cp);\n }\n }\n }\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueDoubleQuoted(cp) {\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueSingleQuoted(cp) {\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n _stateAttributeValueUnquoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_UNQUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN:\n case $.EQUALS_SIGN:\n case $.GRAVE_ACCENT: {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += String.fromCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n _stateAfterAttributeValueQuoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this._leaveAttrValue();\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Self-closing start tag state\n //------------------------------------------------------------------\n _stateSelfClosingStartTag(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n const token = this.currentToken;\n token.selfClosing = true;\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedSolidusInTag);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Bogus comment state\n //------------------------------------------------------------------\n _stateBogusComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Markup declaration open state\n //------------------------------------------------------------------\n _stateMarkupDeclarationOpen(cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH, true)) {\n this._createCommentToken($$.DASH_DASH.length + 1);\n this.state = State.COMMENT_START;\n }\n else if (this._consumeSequenceIfMatch($$.DOCTYPE, false)) {\n // NOTE: Doctypes tokens are created without fixed offsets. We keep track of the moment a doctype *might* start here.\n this.currentLocation = this.getCurrentLocation($$.DOCTYPE.length + 1);\n this.state = State.DOCTYPE;\n }\n else if (this._consumeSequenceIfMatch($$.CDATA_START, true)) {\n if (this.inForeignNode) {\n this.state = State.CDATA_SECTION;\n }\n else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken($$.CDATA_START.length + 1);\n this.currentToken.data = '[CDATA[';\n this.state = State.BOGUS_COMMENT;\n }\n }\n //NOTE: Sequence lookups can be abrupted by hibernation. In that case, lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n // Comment start state\n //------------------------------------------------------------------\n _stateCommentStart(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_START_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n const token = this.currentToken;\n this.emitCurrentComment(token);\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment start dash state\n //------------------------------------------------------------------\n _stateCommentStartDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment state\n //------------------------------------------------------------------\n _stateComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n this.state = State.COMMENT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Comment less-than sign state\n //------------------------------------------------------------------\n _stateCommentLessThanSign(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n token.data += '!';\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBang(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;\n }\n else {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;\n }\n else {\n this.state = State.COMMENT_END_DASH;\n this._stateCommentEndDash(cp);\n }\n }\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDashDash(cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n this.state = State.COMMENT_END;\n this._stateCommentEnd(cp);\n }\n // Comment end dash state\n //------------------------------------------------------------------\n _stateCommentEndDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end state\n //------------------------------------------------------------------\n _stateCommentEnd(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.COMMENT_END_BANG;\n break;\n }\n case $.HYPHEN_MINUS: {\n token.data += '-';\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end bang state\n //------------------------------------------------------------------\n _stateCommentEndBang(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n token.data += '--!';\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.incorrectlyClosedComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--!';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // DOCTYPE state\n //------------------------------------------------------------------\n _stateDoctype(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n }\n }\n }\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n _stateBeforeDoctypeName(cp) {\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));\n this.state = State.DOCTYPE_NAME;\n }\n else\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(REPLACEMENT_CHARACTER);\n this.state = State.DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createDoctypeToken(String.fromCodePoint(cp));\n this.state = State.DOCTYPE_NAME;\n }\n }\n }\n // DOCTYPE name state\n //------------------------------------------------------------------\n _stateDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.AFTER_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.name += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After DOCTYPE name state\n //------------------------------------------------------------------\n _stateAfterDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n if (this._consumeSequenceIfMatch($$.PUBLIC, false)) {\n this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;\n }\n else if (this._consumeSequenceIfMatch($$.SYSTEM, false)) {\n this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n }\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n _stateBogusDoctype(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n break;\n }\n case $.EOF: {\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default:\n // Do nothing\n }\n }\n // CDATA section state\n //------------------------------------------------------------------\n _stateCdataSection(cp) {\n switch (cp) {\n case $.RIGHT_SQUARE_BRACKET: {\n this.state = State.CDATA_SECTION_BRACKET;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // CDATA section bracket state\n //------------------------------------------------------------------\n _stateCdataSectionBracket(cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = State.CDATA_SECTION_END;\n }\n else {\n this._emitChars(']');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n // CDATA section end state\n //------------------------------------------------------------------\n _stateCdataSectionEnd(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n break;\n }\n case $.RIGHT_SQUARE_BRACKET: {\n this._emitChars(']');\n break;\n }\n default: {\n this._emitChars(']]');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n }\n // Character reference state\n //------------------------------------------------------------------\n _stateCharacterReference(cp) {\n if (cp === $.NUMBER_SIGN) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE;\n }\n else if (isAsciiAlphaNumeric(cp)) {\n this.state = State.NAMED_CHARACTER_REFERENCE;\n this._stateNamedCharacterReference(cp);\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Named character reference state\n //------------------------------------------------------------------\n _stateNamedCharacterReference(cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n //NOTE: Matching can be abrupted by hibernation. In that case, match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n // Stay in the state, try again.\n }\n else if (matchResult) {\n for (let i = 0; i < matchResult.length; i++) {\n this._flushCodePointConsumedAsCharacterReference(matchResult[i]);\n }\n this.state = this.returnState;\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this.state = State.AMBIGUOUS_AMPERSAND;\n }\n }\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n _stateAmbiguousAmpersand(cp) {\n if (isAsciiAlphaNumeric(cp)) {\n this._flushCodePointConsumedAsCharacterReference(cp);\n }\n else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Numeric character reference state\n //------------------------------------------------------------------\n _stateNumericCharacterReference(cp) {\n this.charRefCode = 0;\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE_START;\n }\n // Inlined decimal character reference start state\n else if (isAsciiDigit(cp)) {\n this.state = State.DECIMAL_CHARACTER_REFERENCE;\n this._stateDecimalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Hexademical character reference start state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReferenceStart(cp) {\n if (isAsciiHexDigit(cp)) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE;\n this._stateHexademicalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._unconsume(2);\n this.state = this.returnState;\n }\n }\n // Hexademical character reference state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReference(cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n }\n else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n }\n else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Decimal character reference state\n //------------------------------------------------------------------\n _stateDecimalCharacterReference(cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Numeric character reference end state\n //------------------------------------------------------------------\n _stateNumericCharacterReferenceEnd(cp) {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (this.charRefCode > 1114111) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n }\n else if (isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS.get(this.charRefCode);\n if (replacement !== undefined) {\n this.charRefCode = replacement;\n }\n }\n this._flushCodePointConsumedAsCharacterReference(this.charRefCode);\n this._reconsumeInState(this.returnState, cp);\n }\n}\n//# sourceMappingURL=index.js.map","import { TAG_ID as $, NS, isNumberedHeader } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENT_NS = new Map([\n [$.APPLET, NS.HTML],\n [$.CAPTION, NS.HTML],\n [$.HTML, NS.HTML],\n [$.MARQUEE, NS.HTML],\n [$.OBJECT, NS.HTML],\n [$.TABLE, NS.HTML],\n [$.TD, NS.HTML],\n [$.TEMPLATE, NS.HTML],\n [$.TH, NS.HTML],\n [$.ANNOTATION_XML, NS.MATHML],\n [$.MI, NS.MATHML],\n [$.MN, NS.MATHML],\n [$.MO, NS.MATHML],\n [$.MS, NS.MATHML],\n [$.MTEXT, NS.MATHML],\n [$.DESC, NS.SVG],\n [$.FOREIGN_OBJECT, NS.SVG],\n [$.TITLE, NS.SVG],\n]);\nconst NAMED_HEADERS = [$.H1, $.H2, $.H3, $.H4, $.H5, $.H6];\nconst TABLE_ROW_CONTEXT = [$.TR, $.TEMPLATE, $.HTML];\nconst TABLE_BODY_CONTEXT = [$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML];\nconst TABLE_CONTEXT = [$.TABLE, $.TEMPLATE, $.HTML];\nconst TABLE_CELLS = [$.TD, $.TH];\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(targetIdx < 0 ? 0 : targetIdx);\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NAMED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.includes(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (isNumberedHeader(tn) && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if ((tn === $.BUTTON && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n//# sourceMappingURL=open-element-stack.js.map","//Const\nconst NOAH_ARK_CAPACITY = 3;\nexport var EntryType;\n(function (EntryType) {\n EntryType[EntryType[\"Marker\"] = 0] = \"Marker\";\n EntryType[EntryType[\"Element\"] = 1] = \"Element\";\n})(EntryType = EntryType || (EntryType = {}));\nconst MARKER = { type: EntryType.Marker };\n//List of formatting elements\nexport class FormattingElementList {\n constructor(treeAdapter) {\n this.treeAdapter = treeAdapter;\n this.entries = [];\n this.bookmark = null;\n }\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement, neAttrs) {\n const candidates = [];\n const neAttrsLength = neAttrs.length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n for (let i = 0; i < this.entries.length; i++) {\n const entry = this.entries[i];\n if (entry.type === EntryType.Marker) {\n break;\n }\n const { element } = entry;\n if (this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {\n const elementAttrs = this.treeAdapter.getAttrList(element);\n if (elementAttrs.length === neAttrsLength) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n return candidates;\n }\n _ensureNoahArkCondition(newElement) {\n if (this.entries.length < NOAH_ARK_CAPACITY)\n return;\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);\n if (candidates.length < NOAH_ARK_CAPACITY)\n return;\n //NOTE: build attrs map for the new element, so we can perform fast lookups\n const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));\n let validCandidates = 0;\n //NOTE: remove bottommost candidates, until Noah's Ark condition will not be met\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n // We know that `candidate.attrs.length === neAttrs.length`\n if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {\n validCandidates += 1;\n if (validCandidates >= NOAH_ARK_CAPACITY) {\n this.entries.splice(candidate.idx, 1);\n }\n }\n }\n }\n //Mutations\n insertMarker() {\n this.entries.unshift(MARKER);\n }\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n this.entries.unshift({\n type: EntryType.Element,\n element,\n token,\n });\n }\n insertElementAfterBookmark(element, token) {\n const bookmarkIdx = this.entries.indexOf(this.bookmark);\n this.entries.splice(bookmarkIdx, 0, {\n type: EntryType.Element,\n element,\n token,\n });\n }\n removeEntry(entry) {\n const entryIndex = this.entries.indexOf(entry);\n if (entryIndex >= 0) {\n this.entries.splice(entryIndex, 1);\n }\n }\n /**\n * Clears the list of formatting elements up to the last marker.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker\n */\n clearToLastMarker() {\n const markerIdx = this.entries.indexOf(MARKER);\n if (markerIdx >= 0) {\n this.entries.splice(0, markerIdx + 1);\n }\n else {\n this.entries.length = 0;\n }\n }\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n const entry = this.entries.find((entry) => entry.type === EntryType.Marker || this.treeAdapter.getTagName(entry.element) === tagName);\n return entry && entry.type === EntryType.Element ? entry : null;\n }\n getElementEntry(element) {\n return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);\n }\n}\n//# sourceMappingURL=formatting-element-list.js.map","import { DOCUMENT_MODE } from '../common/html.js';\nfunction createTextNode(value) {\n return {\n nodeName: '#text',\n value,\n parentNode: null,\n };\n}\nexport const defaultTreeAdapter = {\n //Node construction\n createDocument() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: [],\n };\n },\n createDocumentFragment() {\n return {\n nodeName: '#document-fragment',\n childNodes: [],\n };\n },\n createElement(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName,\n attrs,\n namespaceURI,\n childNodes: [],\n parentNode: null,\n };\n },\n createCommentNode(data) {\n return {\n nodeName: '#comment',\n data,\n parentNode: null,\n };\n },\n //Tree mutation\n appendChild(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n },\n insertBefore(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n },\n setTemplateContent(templateElement, contentElement) {\n templateElement.content = contentElement;\n },\n getTemplateContent(templateElement) {\n return templateElement.content;\n },\n setDocumentType(document, name, publicId, systemId) {\n const doctypeNode = document.childNodes.find((node) => node.nodeName === '#documentType');\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n }\n else {\n const node = {\n nodeName: '#documentType',\n name,\n publicId,\n systemId,\n parentNode: null,\n };\n defaultTreeAdapter.appendChild(document, node);\n }\n },\n setDocumentMode(document, mode) {\n document.mode = mode;\n },\n getDocumentMode(document) {\n return document.mode;\n },\n detachNode(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n },\n insertText(parentNode, text) {\n if (parentNode.childNodes.length > 0) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n if (defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n return;\n }\n }\n defaultTreeAdapter.appendChild(parentNode, createTextNode(text));\n },\n insertTextBefore(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n }\n else {\n defaultTreeAdapter.insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n },\n adoptAttributes(recipient, attrs) {\n const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));\n for (let j = 0; j < attrs.length; j++) {\n if (!recipientAttrsMap.has(attrs[j].name)) {\n recipient.attrs.push(attrs[j]);\n }\n }\n },\n //Tree traversing\n getFirstChild(node) {\n return node.childNodes[0];\n },\n getChildNodes(node) {\n return node.childNodes;\n },\n getParentNode(node) {\n return node.parentNode;\n },\n getAttrList(element) {\n return element.attrs;\n },\n //Node data\n getTagName(element) {\n return element.tagName;\n },\n getNamespaceURI(element) {\n return element.namespaceURI;\n },\n getTextNodeContent(textNode) {\n return textNode.value;\n },\n getCommentNodeContent(commentNode) {\n return commentNode.data;\n },\n getDocumentTypeNodeName(doctypeNode) {\n return doctypeNode.name;\n },\n getDocumentTypeNodePublicId(doctypeNode) {\n return doctypeNode.publicId;\n },\n getDocumentTypeNodeSystemId(doctypeNode) {\n return doctypeNode.systemId;\n },\n //Node types\n isTextNode(node) {\n return node.nodeName === '#text';\n },\n isCommentNode(node) {\n return node.nodeName === '#comment';\n },\n isDocumentTypeNode(node) {\n return node.nodeName === '#documentType';\n },\n isElementNode(node) {\n return Object.prototype.hasOwnProperty.call(node, 'tagName');\n },\n // Source code location\n setNodeSourceCodeLocation(node, location) {\n node.sourceCodeLocation = location;\n },\n getNodeSourceCodeLocation(node) {\n return node.sourceCodeLocation;\n },\n updateNodeSourceCodeLocation(node, endLocation) {\n node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };\n },\n};\n//# sourceMappingURL=default.js.map","import { DOCUMENT_MODE } from './html.js';\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//',\n];\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\nconst QUIRKS_MODE_PUBLIC_IDS = new Set([\n '-//w3o//dtd w3 html strict 3.0//en//',\n '-/w3c/dtd html 4.0 transitional/en',\n 'html',\n]);\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\n//Utils\nfunction hasPrefix(publicId, prefixes) {\n return prefixes.some((prefix) => publicId.startsWith(prefix));\n}\n//API\nexport function isConforming(token) {\n return (token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID));\n}\nexport function getDocumentMode(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n const { systemId } = token;\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let { publicId } = token;\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n return DOCUMENT_MODE.NO_QUIRKS;\n}\n//# sourceMappingURL=doctype.js.map","import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml',\n};\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = new Map([\n 'attributeName',\n 'attributeType',\n 'baseFrequency',\n 'baseProfile',\n 'calcMode',\n 'clipPathUnits',\n 'diffuseConstant',\n 'edgeMode',\n 'filterUnits',\n 'glyphRef',\n 'gradientTransform',\n 'gradientUnits',\n 'kernelMatrix',\n 'kernelUnitLength',\n 'keyPoints',\n 'keySplines',\n 'keyTimes',\n 'lengthAdjust',\n 'limitingConeAngle',\n 'markerHeight',\n 'markerUnits',\n 'markerWidth',\n 'maskContentUnits',\n 'maskUnits',\n 'numOctaves',\n 'pathLength',\n 'patternContentUnits',\n 'patternTransform',\n 'patternUnits',\n 'pointsAtX',\n 'pointsAtY',\n 'pointsAtZ',\n 'preserveAlpha',\n 'preserveAspectRatio',\n 'primitiveUnits',\n 'refX',\n 'refY',\n 'repeatCount',\n 'repeatDur',\n 'requiredExtensions',\n 'requiredFeatures',\n 'specularConstant',\n 'specularExponent',\n 'spreadMethod',\n 'startOffset',\n 'stdDeviation',\n 'stitchTiles',\n 'surfaceScale',\n 'systemLanguage',\n 'tableValues',\n 'targetX',\n 'targetY',\n 'textLength',\n 'viewBox',\n 'viewTarget',\n 'xChannelSelector',\n 'yChannelSelector',\n 'zoomAndPan',\n].map((attr) => [attr.toLowerCase(), attr]));\nconst XML_ATTRS_ADJUSTMENT_MAP = new Map([\n ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],\n ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],\n ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],\n ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],\n ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],\n ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],\n ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],\n ['xml:base', { prefix: 'xml', name: 'base', namespace: NS.XML }],\n ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],\n ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],\n ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],\n ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],\n]);\n//SVG tag names adjustment map\nexport const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n].map((tn) => [tn.toLowerCase(), tn]));\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = new Set([\n $.B,\n $.BIG,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.CENTER,\n $.CODE,\n $.DD,\n $.DIV,\n $.DL,\n $.DT,\n $.EM,\n $.EMBED,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HR,\n $.I,\n $.IMG,\n $.LI,\n $.LISTING,\n $.MENU,\n $.META,\n $.NOBR,\n $.OL,\n $.P,\n $.PRE,\n $.RUBY,\n $.S,\n $.SMALL,\n $.SPAN,\n $.STRONG,\n $.STRIKE,\n $.SUB,\n $.SUP,\n $.TABLE,\n $.TT,\n $.U,\n $.UL,\n $.VAR,\n]);\n//Check exit from foreign content\nexport function causesExit(startTagToken) {\n const tn = startTagToken.tagID;\n const isFontWithAttrs = tn === $.FONT &&\n startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);\n return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);\n}\n//Token adjustments\nexport function adjustTokenMathMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n}\nexport function adjustTokenSVGAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrName != null) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n}\nexport function adjustTokenXMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n}\nexport function adjustTokenSVGTagName(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);\n if (adjustedTagName != null) {\n token.tagName = adjustedTagName;\n token.tagID = getTagID(token.tagName);\n }\n}\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\nexport function isIntegrationPoint(tn, ns, attrs, foreignNS) {\n return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||\n ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));\n}\n//# sourceMappingURL=foreign-content.js.map","import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, isNumberedHeader, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, fragmentContext = null, scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n this.insertionMode = InsertionMode.INITIAL;\n this.originalInsertionMode = InsertionMode.INITIAL;\n this.headElement = null;\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n */\n this.tmplInsertionModeStack = [];\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a <template> element as the fragment context if no context element was provided,\n //so we will parse in a \"forgiving\" manner\n fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : (fragmentContext = opts.treeAdapter.createElement(TN.TEMPLATE, NS.HTML, []));\n //NOTE: create a fake element which will be used as the `document` for fragment parsing.\n //This is important for jsdom, where a new `document` cannot be created. This led to\n //fragment parsing messing with the main `document`.\n const documentMock = opts.treeAdapter.createElement('documentmock', NS.HTML, []);\n const parser = new this(opts, documentMock, fragmentContext);\n if (parser.fragmentContextID === $.TEMPLATE) {\n parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n }\n parser._initTokenizerForFragmentParsing();\n parser._insertFakeRootElement();\n parser._resetInsertionMode();\n parser._findFormInFragmentContext();\n return parser;\n }\n getFragment() {\n const rootElement = this.treeAdapter.getFirstChild(this.document);\n const fragment = this.treeAdapter.createDocumentFragment();\n this._adoptNodes(rootElement, fragment);\n return fragment;\n }\n //Errors\n _err(token, code, beforeToken) {\n var _a;\n if (!this.onParseError)\n return;\n const loc = (_a = token.location) !== null && _a !== void 0 ? _a : BASE_LOC;\n const err = {\n code,\n startLine: loc.startLine,\n startCol: loc.startCol,\n startOffset: loc.startOffset,\n endLine: beforeToken ? loc.startLine : loc.endLine,\n endCol: beforeToken ? loc.startCol : loc.endCol,\n endOffset: beforeToken ? loc.startOffset : loc.endOffset,\n };\n this.onParseError(err);\n }\n //Stack events\n onItemPush(node, tid, isTop) {\n var _a, _b;\n (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n if (isTop && this.openElements.stackTop > 0)\n this._setContextModes(node, tid);\n }\n onItemPop(node, isTop) {\n var _a, _b;\n if (this.options.sourceCodeLocationInfo) {\n this._setEndLocation(node, this.currentToken);\n }\n (_b = (_a = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a, node, this.openElements.current);\n if (isTop) {\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n this._setContextModes(current, currentTagId);\n }\n }\n _setContextModes(current, tid) {\n const isHTML = current === this.document || this.treeAdapter.getNamespaceURI(current) === NS.HTML;\n this.currentNotInHTML = !isHTML;\n this.tokenizer.inForeignNode = !isHTML && !this._isIntegrationPoint(tid, current);\n }\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = InsertionMode.TEXT;\n }\n switchToPlaintextParsing() {\n this.insertionMode = InsertionMode.TEXT;\n this.originalInsertionMode = InsertionMode.IN_BODY;\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n }\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n while (node) {\n if (this.treeAdapter.getTagName(node) === TN.FORM) {\n this.formElement = node;\n break;\n }\n node = this.treeAdapter.getParentNode(node);\n }\n }\n _initTokenizerForFragmentParsing() {\n if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) {\n return;\n }\n switch (this.fragmentContextID) {\n case $.TITLE:\n case $.TEXTAREA: {\n this.tokenizer.state = TokenizerMode.RCDATA;\n break;\n }\n case $.STYLE:\n case $.XMP:\n case $.IFRAME:\n case $.NOEMBED:\n case $.NOFRAMES:\n case $.NOSCRIPT: {\n this.tokenizer.state = TokenizerMode.RAWTEXT;\n break;\n }\n case $.SCRIPT: {\n this.tokenizer.state = TokenizerMode.SCRIPT_DATA;\n break;\n }\n case $.PLAINTEXT: {\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n break;\n }\n default:\n // Do nothing\n }\n }\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n if (token.location) {\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));\n if (docTypeNode) {\n this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);\n }\n }\n }\n _attachElementToTree(element, location) {\n if (this.options.sourceCodeLocationInfo) {\n const loc = location && {\n ...location,\n startTag: location,\n };\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n }\n else {\n const parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.appendChild(parent, element);\n }\n }\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n }\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n this.openElements.push(element, token.tagID);\n }\n _insertFakeElement(tagName, tagID) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n this._attachElementToTree(element, null);\n this.openElements.push(element, tagID);\n }\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl, token.location);\n this.openElements.push(tmpl, token.tagID);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(content, null);\n }\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement(TN.HTML, NS.HTML, []);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(element, null);\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element, $.HTML);\n }\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n this.treeAdapter.appendChild(parent, commentNode);\n if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n }\n }\n _insertCharacters(token) {\n let parent;\n let beforeElement;\n if (this._shouldFosterParentOnInsertion()) {\n ({ parent, beforeElement } = this._findFosterParentingLocation());\n if (beforeElement) {\n this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);\n }\n else {\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n else {\n parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.insertText(parent, token.chars);\n }\n if (!token.location)\n return;\n const siblings = this.treeAdapter.getChildNodes(parent);\n const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;\n const textNode = siblings[textNodeIdx - 1];\n //NOTE: if we have a location assigned by another token, then just update the end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n }\n else if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n _setEndLocation(element, closingToken) {\n if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n const endLoc = \n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n closingToken.type === TokenType.END_TAG && tn === closingToken.tagName\n ? {\n endTag: { ...ctLoc },\n endLine: ctLoc.endLine,\n endCol: ctLoc.endCol,\n endOffset: ctLoc.endOffset,\n }\n : {\n endLine: ctLoc.startLine,\n endCol: ctLoc.startCol,\n endOffset: ctLoc.startOffset,\n };\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n //Token processing\n shouldProcessStartTagTokenInForeignContent(token) {\n // Check that neither current === document, or ns === NS.HTML\n if (!this.currentNotInHTML)\n return false;\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n if (token.tagID === $.SVG &&\n this.treeAdapter.getTagName(current) === TN.ANNOTATION_XML &&\n this.treeAdapter.getNamespaceURI(current) === NS.MATHML) {\n return false;\n }\n return (\n // Check that `current` is not an integration point for HTML or MathML elements.\n this.tokenizer.inForeignNode ||\n // If it _is_ an integration point, then we might have to check that it is not an HTML\n // integration point.\n ((token.tagID === $.MGLYPH || token.tagID === $.MALIGNMARK) &&\n !this._isIntegrationPoint(currentTagId, current, NS.HTML)));\n }\n _processToken(token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n this.onCharacter(token);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.onNullCharacter(token);\n break;\n }\n case TokenType.COMMENT: {\n this.onComment(token);\n break;\n }\n case TokenType.DOCTYPE: {\n this.onDoctype(token);\n break;\n }\n case TokenType.START_TAG: {\n this._processStartTag(token);\n break;\n }\n case TokenType.END_TAG: {\n this.onEndTag(token);\n break;\n }\n case TokenType.EOF: {\n this.onEof(token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.onWhitespaceCharacter(token);\n break;\n }\n }\n }\n //Integration points\n _isIntegrationPoint(tid, element, foreignNS) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);\n }\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.entries.length;\n if (listLength) {\n const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));\n const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1;\n for (let i = unopenIdx; i >= 0; i--) {\n const entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = InsertionMode.IN_ROW;\n }\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n //Insertion mode reset map\n switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {\n case $.TR: {\n this.insertionMode = InsertionMode.IN_ROW;\n return;\n }\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n this.insertionMode = InsertionMode.IN_TABLE_BODY;\n return;\n }\n case $.CAPTION: {\n this.insertionMode = InsertionMode.IN_CAPTION;\n return;\n }\n case $.COLGROUP: {\n this.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n return;\n }\n case $.TABLE: {\n this.insertionMode = InsertionMode.IN_TABLE;\n return;\n }\n case $.BODY: {\n this.insertionMode = InsertionMode.IN_BODY;\n return;\n }\n case $.FRAMESET: {\n this.insertionMode = InsertionMode.IN_FRAMESET;\n return;\n }\n case $.SELECT: {\n this._resetInsertionModeForSelect(i);\n return;\n }\n case $.TEMPLATE: {\n this.insertionMode = this.tmplInsertionModeStack[0];\n return;\n }\n case $.HTML: {\n this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;\n return;\n }\n case $.TD:\n case $.TH: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_CELL;\n return;\n }\n break;\n }\n case $.HEAD: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_HEAD;\n return;\n }\n break;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_BODY;\n }\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const tn = this.openElements.tagIDs[i];\n if (tn === $.TEMPLATE) {\n break;\n }\n else if (tn === $.TABLE) {\n this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;\n return;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_SELECT;\n }\n //Foster parenting\n _isElementCausesFosterParenting(tn) {\n return TABLE_STRUCTURE_TAGS.has(tn);\n }\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId);\n }\n _findFosterParentingLocation() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n switch (this.openElements.tagIDs[i]) {\n case $.TEMPLATE: {\n if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) {\n return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };\n }\n break;\n }\n case $.TABLE: {\n const parent = this.treeAdapter.getParentNode(openElement);\n if (parent) {\n return { parent, beforeElement: openElement };\n }\n return { parent: this.openElements.items[i - 1], beforeElement: null };\n }\n default:\n // Do nothing\n }\n }\n return { parent: this.openElements.items[0], beforeElement: null };\n }\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n }\n else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n //Special elements\n _isSpecialElement(element, id) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n return SPECIAL_ELEMENTS[ns].has(id);\n }\n onCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n characterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE: {\n characterInBody(this, token);\n break;\n }\n case InsertionMode.TEXT:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n characterInTableText(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onNullCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n nullCharacterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onComment(token) {\n this.skipNextNewLine = false;\n if (this.currentNotInHTML) {\n appendComment(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL:\n case InsertionMode.BEFORE_HTML:\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n appendComment(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n appendCommentToRootHtmlElement(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n appendCommentToDocument(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onDoctype(token) {\n this.skipNextNewLine = false;\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n doctypeInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD: {\n this._err(token, ERR.misplacedDoctype);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onStartTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n this._processStartTag(token);\n if (token.selfClosing && !token.ackSelfClosing) {\n this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n /**\n * Processes a given start tag.\n *\n * `onStartTag` checks if a self-closing tag was recognized. When a token\n * is moved inbetween multiple insertion modes, this check for self-closing\n * could lead to false positives. To avoid this, `_processStartTag` is used\n * for nested calls.\n *\n * @param token The token to process.\n */\n _processStartTag(token) {\n if (this.shouldProcessStartTagTokenInForeignContent(token)) {\n startTagInForeignContent(this, token);\n }\n else {\n this._startTagOutsideForeignContent(token);\n }\n }\n _startTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n startTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n startTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n startTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n startTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n startTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n startTagInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n startTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n startTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n startTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n startTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n startTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n startTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n startTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n startTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n startTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n startTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n startTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n startTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n startTagAfterAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n startTagAfterAfterFrameset(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEndTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n if (this.currentNotInHTML) {\n endTagInForeignContent(this, token);\n }\n else {\n this._endTagOutsideForeignContent(token);\n }\n }\n _endTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n endTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n endTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n endTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n endTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n endTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n endTagInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n endTagInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n endTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n endTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n endTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n endTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n endTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n endTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n endTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n endTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n endTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n endTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n endTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n endTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEof(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n eofInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n eofInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n eofInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n stopParsing(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onWhitespaceCharacter(token) {\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {\n if (token.chars.length === 1) {\n return;\n }\n token.chars = token.chars.substr(1);\n }\n }\n if (this.tokenizer.inForeignNode) {\n this._insertCharacters(token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.TEXT:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.AFTER_BODY:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n whitespaceCharacterInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n whitespaceCharacterInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n}\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n }\n else if (!p.openElements.hasInScope(token.tagID)) {\n formattingElementEntry = null;\n }\n }\n else {\n genericEndTagInBody(p, token);\n }\n return formattingElementEntry;\n}\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n let idx = p.openElements.stackTop;\n for (; idx >= 0; idx--) {\n const element = p.openElements.items[idx];\n if (element === formattingElementEntry.element) {\n break;\n }\n if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {\n furthestBlock = element;\n }\n }\n if (!furthestBlock) {\n p.openElements.shortenToLength(idx < 0 ? 0 : idx);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n return furthestBlock;\n}\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store the next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n p.openElements.remove(element);\n }\n else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n return lastElement;\n}\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n return newElement;\n}\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const tid = getTagID(tn);\n if (p._isElementCausesFosterParenting(tid)) {\n p._fosterParentElement(lastElement);\n }\n else {\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n if (tid === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const { token } = formattingElementEntry;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n p.activeFormattingElements.insertElementAfterBookmark(newElement, token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement, token.tagID);\n}\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n const formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n if (!formattingElementEntry) {\n break;\n }\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n if (!furthestBlock) {\n break;\n }\n p.activeFormattingElements.bookmark = formattingElementEntry;\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n p.treeAdapter.detachNode(lastElement);\n if (commonAncestor)\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n//Generic token handlers\n//------------------------------------------------------------------\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContentOrNode);\n}\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\nfunction stopParsing(p, token) {\n p.stopped = true;\n // NOTE: Set end locations for elements that remain on the open element stack.\n if (token.location) {\n // NOTE: If we are not in a fragment, `html` and `body` will stay on the stack.\n // This is a problem, as we might overwrite their end position here.\n const target = p.fragmentContext ? 0 : 2;\n for (let i = p.openElements.stackTop; i >= target; i--) {\n p._setEndLocation(p.openElements.items[i], token);\n }\n // Handle `html` and `body`\n if (!p.fragmentContext && p.openElements.stackTop >= 0) {\n const htmlElement = p.openElements.items[0];\n const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);\n if (htmlLocation && !htmlLocation.endTag) {\n p._setEndLocation(htmlElement, token);\n if (p.openElements.stackTop >= 1) {\n const bodyElement = p.openElements.items[1];\n const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);\n if (bodyLocation && !bodyLocation.endTag) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n }\n }\n}\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n if (!doctype.isConforming(token)) {\n p._err(token, ERR.nonConformingDoctype);\n }\n p.treeAdapter.setDocumentMode(p.document, mode);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n}\nfunction tokenInInitialMode(p, token) {\n p._err(token, ERR.missingDoctype, true);\n p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n p._processToken(token);\n}\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagID === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n }\n else {\n tokenBeforeHtml(p, token);\n }\n}\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagID;\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n p._processToken(token);\n}\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.HEAD: {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n default: {\n tokenBeforeHead(p, token);\n }\n }\n}\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagID;\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement(TN.HEAD, $.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TITLE: {\n p._switchToTextParsing(token, TokenizerMode.RCDATA);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n }\n else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;\n }\n break;\n }\n case $.NOFRAMES:\n case $.STYLE: {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n break;\n }\n case $.SCRIPT: {\n p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA);\n break;\n }\n case $.TEMPLATE: {\n p._insertTemplate(token);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TEMPLATE;\n p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenInHead(p, token);\n }\n }\n}\nfunction endTagInHead(p, token) {\n switch (token.tagID) {\n case $.HEAD: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n break;\n }\n case $.BODY:\n case $.BR:\n case $.HTML: {\n tokenInHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction templateEndTagInHead(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n if (p.openElements.currentTagId !== $.TEMPLATE) {\n p._err(token, ERR.closingOfElementWithOpenChildElements);\n }\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n p._processToken(token);\n}\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASEFONT:\n case $.BGSOUND:\n case $.HEAD:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.STYLE: {\n startTagInHead(p, token);\n break;\n }\n case $.NOSCRIPT: {\n p._err(token, ERR.nestedNoscriptInHead);\n break;\n }\n default: {\n tokenInHeadNoScript(p, token);\n }\n }\n}\nfunction endTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.NOSCRIPT: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n case $.BR: {\n tokenInHeadNoScript(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenInHeadNoScript(p, token) {\n const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n p._err(token, errCode);\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BODY: {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_BODY;\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n p._err(token, ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement, $.HEAD);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenAfterHead(p, token);\n }\n }\n}\nfunction endTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.BODY:\n case $.HTML:\n case $.BR: {\n tokenAfterHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement(TN.BODY, $.BODY);\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction modeInBody(p, token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInBody(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInBody(p, token);\n break;\n }\n case TokenType.COMMENT: {\n appendComment(p, token);\n break;\n }\n case TokenType.START_TAG: {\n startTagInBody(p, token);\n break;\n }\n case TokenType.END_TAG: {\n endTagInBody(p, token);\n break;\n }\n case TokenType.EOF: {\n eofInBody(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n }\n}\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n if (isNumberedHeader(p.openElements.currentTagId)) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n const tn = token.tagID;\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const elementId = p.openElements.tagIDs[i];\n if ((tn === $.LI && elementId === $.LI) ||\n ((tn === $.DD || tn === $.DT) && (elementId === $.DD || elementId === $.DT))) {\n p.openElements.generateImpliedEndTagsWithExclusion(elementId);\n p.openElements.popUntilTagNamePopped(elementId);\n break;\n }\n if (elementId !== $.ADDRESS &&\n elementId !== $.DIV &&\n elementId !== $.P &&\n p._isSpecialElement(p.openElements.items[i], elementId)) {\n break;\n }\n }\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = TokenizerMode.PLAINTEXT;\n}\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TN.A);\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\nfunction tableStartTagInBody(p, token) {\n if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TABLE;\n}\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction isHiddenInput(token) {\n const inputType = getTokenAttr(token, ATTRS.TYPE);\n return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;\n}\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n if (!isHiddenInput(token)) {\n p.framesetOk = false;\n }\n token.ackSelfClosing = true;\n}\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction imageStartTagInBody(p, token) {\n token.tagName = TN.IMG;\n token.tagID = $.IMG;\n areaStartTagInBody(p, token);\n}\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = TokenizerMode.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = InsertionMode.TEXT;\n}\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode =\n p.insertionMode === InsertionMode.IN_TABLE ||\n p.insertionMode === InsertionMode.IN_CAPTION ||\n p.insertionMode === InsertionMode.IN_TABLE_BODY ||\n p.insertionMode === InsertionMode.IN_ROW ||\n p.insertionMode === InsertionMode.IN_CELL\n ? InsertionMode.IN_SELECT_IN_TABLE\n : InsertionMode.IN_SELECT;\n}\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n p._insertElement(token, NS.HTML);\n}\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n }\n else {\n p._insertElement(token, NS.MATHML);\n }\n token.ackSelfClosing = true;\n}\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n }\n else {\n p._insertElement(token, NS.SVG);\n }\n token.ackSelfClosing = true;\n}\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction startTagInBody(p, token) {\n switch (token.tagID) {\n case $.I:\n case $.S:\n case $.B:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n bStartTagInBody(p, token);\n break;\n }\n case $.A: {\n aStartTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderStartTagInBody(p, token);\n break;\n }\n case $.P:\n case $.DL:\n case $.OL:\n case $.UL:\n case $.DIV:\n case $.DIR:\n case $.NAV:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.DETAILS:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.SECTION:\n case $.SUMMARY:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressStartTagInBody(p, token);\n break;\n }\n case $.LI:\n case $.DD:\n case $.DT: {\n listItemStartTagInBody(p, token);\n break;\n }\n case $.BR:\n case $.IMG:\n case $.WBR:\n case $.AREA:\n case $.EMBED:\n case $.KEYGEN: {\n areaStartTagInBody(p, token);\n break;\n }\n case $.HR: {\n hrStartTagInBody(p, token);\n break;\n }\n case $.RB:\n case $.RTC: {\n rbStartTagInBody(p, token);\n break;\n }\n case $.RT:\n case $.RP: {\n rtStartTagInBody(p, token);\n break;\n }\n case $.PRE:\n case $.LISTING: {\n preStartTagInBody(p, token);\n break;\n }\n case $.XMP: {\n xmpStartTagInBody(p, token);\n break;\n }\n case $.SVG: {\n svgStartTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlStartTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.LINK:\n case $.META:\n case $.STYLE:\n case $.TITLE:\n case $.SCRIPT:\n case $.BGSOUND:\n case $.BASEFONT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.BODY: {\n bodyStartTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInBody(p, token);\n break;\n }\n case $.NOBR: {\n nobrStartTagInBody(p, token);\n break;\n }\n case $.MATH: {\n mathStartTagInBody(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInBody(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInBody(p, token);\n break;\n }\n case $.PARAM:\n case $.TRACK:\n case $.SOURCE: {\n paramStartTagInBody(p, token);\n break;\n }\n case $.IMAGE: {\n imageStartTagInBody(p, token);\n break;\n }\n case $.BUTTON: {\n buttonStartTagInBody(p, token);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletStartTagInBody(p, token);\n break;\n }\n case $.IFRAME: {\n iframeStartTagInBody(p, token);\n break;\n }\n case $.SELECT: {\n selectStartTagInBody(p, token);\n break;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n optgroupStartTagInBody(p, token);\n break;\n }\n case $.NOEMBED: {\n noembedStartTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n framesetStartTagInBody(p, token);\n break;\n }\n case $.TEXTAREA: {\n textareaStartTagInBody(p, token);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n }\n else {\n genericStartTagInBody(p, token);\n }\n break;\n }\n case $.PLAINTEXT: {\n plaintextStartTagInBody(p, token);\n break;\n }\n case $.COL:\n case $.TH:\n case $.TD:\n case $.TR:\n case $.HEAD:\n case $.FRAME:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.CAPTION:\n case $.COLGROUP: {\n // Ignore token\n break;\n }\n default: {\n genericStartTagInBody(p, token);\n }\n }\n}\nfunction bodyEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n //NOTE: <body> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n}\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n endTagAfterBody(p, token);\n }\n}\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const { formElement } = p;\n if (!inTemplate) {\n p.formElement = null;\n }\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n }\n else if (formElement) {\n p.openElements.remove(formElement);\n }\n }\n}\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement(TN.P, $.P);\n }\n p._closePElement();\n}\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement(TN.BR, $.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n const tid = token.tagID;\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n const elementId = p.openElements.tagIDs[i];\n // Compare the tag name here, as the tag might not be a known tag with an ID.\n if (tid === elementId && (tid !== $.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tid);\n if (p.openElements.stackTop >= i)\n p.openElements.shortenToLength(i);\n break;\n }\n if (p._isSpecialElement(element, elementId)) {\n break;\n }\n }\n}\nfunction endTagInBody(p, token) {\n switch (token.tagID) {\n case $.A:\n case $.B:\n case $.I:\n case $.S:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.NOBR:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n callAdoptionAgency(p, token);\n break;\n }\n case $.P: {\n pEndTagInBody(p);\n break;\n }\n case $.DL:\n case $.UL:\n case $.OL:\n case $.DIR:\n case $.DIV:\n case $.NAV:\n case $.PRE:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.BUTTON:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.DETAILS:\n case $.SECTION:\n case $.SUMMARY:\n case $.LISTING:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressEndTagInBody(p, token);\n break;\n }\n case $.LI: {\n liEndTagInBody(p);\n break;\n }\n case $.DD:\n case $.DT: {\n ddEndTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderEndTagInBody(p);\n break;\n }\n case $.BR: {\n brEndTagInBody(p);\n break;\n }\n case $.BODY: {\n bodyEndTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlEndTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formEndTagInBody(p);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletEndTagInBody(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n genericEndTagInBody(p, token);\n }\n }\n}\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStack.length > 0) {\n eofInTemplate(p, token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n var _a;\n if (token.tagID === $.SCRIPT) {\n (_a = p.scriptHandler) === null || _a === void 0 ? void 0 : _a.call(p, p.openElements.current);\n }\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\nfunction eofInText(p, token) {\n p._err(token, ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p.onEof(token);\n}\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n if (TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {\n p.pendingCharacterTokens.length = 0;\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = InsertionMode.IN_TABLE_TEXT;\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInTableText(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInTableText(p, token);\n break;\n }\n // Ignore null\n }\n }\n else {\n tokenInTable(p, token);\n }\n}\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CAPTION;\n}\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n}\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.COLGROUP, $.COLGROUP);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n}\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n}\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.TBODY, $.TBODY);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n}\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n}\nfunction inputStartTagInTable(p, token) {\n if (isHiddenInput(token)) {\n p._appendElement(token, NS.HTML);\n }\n else {\n tokenInTable(p, token);\n }\n token.ackSelfClosing = true;\n}\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\nfunction startTagInTable(p, token) {\n switch (token.tagID) {\n case $.TD:\n case $.TH:\n case $.TR: {\n tdStartTagInTable(p, token);\n break;\n }\n case $.STYLE:\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.COL: {\n colStartTagInTable(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInTable(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInTable(p, token);\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n tbodyStartTagInTable(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInTable(p, token);\n break;\n }\n case $.CAPTION: {\n captionStartTagInTable(p, token);\n break;\n }\n case $.COLGROUP: {\n colgroupStartTagInTable(p, token);\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction endTagInTable(p, token) {\n switch (token.tagID) {\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n p.fosterParentingEnabled = true;\n // Process token in `In Body` mode\n modeInBody(p, token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\nfunction tokenInTableText(p, token) {\n let i = 0;\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n }\n else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nconst TABLE_VOID_ELEMENTS = new Set([$.CAPTION, $.COL, $.COLGROUP, $.TBODY, $.TD, $.TFOOT, $.TH, $.THEAD, $.TR]);\nfunction startTagInCaption(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCaption(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.CAPTION:\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n if (tn === $.TABLE) {\n endTagInTable(p, token);\n }\n }\n break;\n }\n case $.BODY:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.COL: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction endTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.COLGROUP: {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.COL: {\n // Ignore token\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n p._processToken(token);\n }\n}\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n switch (token.tagID) {\n case $.TR: {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_ROW;\n break;\n }\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement(TN.TR, $.TR);\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInTableBody(p, token) {\n const tn = token.tagID;\n switch (token.tagID) {\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n endTagInTable(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n switch (token.tagID) {\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CELL;\n p.activeFormattingElements.insertMarker();\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInRow(p, token) {\n switch (token.tagID) {\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH: {\n // Ignore end tag\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n startTagInRow(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCell(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.TD:\n case $.TH: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_ROW;\n }\n break;\n }\n case $.TABLE:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n endTagInRow(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.OPTGROUP: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.INPUT:\n case $.KEYGEN:\n case $.TEXTAREA:\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n if (token.tagID !== $.SELECT) {\n p._processStartTag(token);\n }\n }\n break;\n }\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInSelect(p, token) {\n switch (token.tagID) {\n case $.OPTGROUP: {\n if (p.openElements.stackTop > 0 &&\n p.openElements.currentTagId === $.OPTION &&\n p.openElements.tagIDs[p.openElements.stackTop - 1] === $.OPTGROUP) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n break;\n }\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n else {\n startTagInSelect(p, token);\n }\n}\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p.onEndTag(token);\n }\n }\n else {\n endTagInSelect(p, token);\n }\n}\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n switch (token.tagID) {\n // First, handle tags that can start without a mode change\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n startTagInHead(p, token);\n break;\n }\n // Re-process the token in the appropriate mode\n case $.CAPTION:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n break;\n }\n case $.COL: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n break;\n }\n case $.TR: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n break;\n }\n case $.TD:\n case $.TH: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n default: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;\n p.insertionMode = InsertionMode.IN_BODY;\n startTagInBody(p, token);\n }\n }\n}\nfunction endTagInTemplate(p, token) {\n if (token.tagID === $.TEMPLATE) {\n templateEndTagInHead(p, token);\n }\n}\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n p.onEof(token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction endTagAfterBody(p, token) {\n var _a;\n if (token.tagID === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = InsertionMode.AFTER_AFTER_BODY;\n }\n //NOTE: <html> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === $.HTML) {\n p._setEndLocation(p.openElements.items[0], token);\n // Update the body element, if it doesn't have an end tag\n const bodyElement = p.openElements.items[1];\n if (bodyElement && !((_a = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a === void 0 ? void 0 : _a.endTag)) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction tokenAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.FRAME: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInFrameset(p, token) {\n if (token.tagID === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n if (!p.fragmentContext && p.openElements.currentTagId !== $.FRAMESET) {\n p.insertionMode = InsertionMode.AFTER_FRAMESET;\n }\n }\n}\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagAfterFrameset(p, token) {\n if (token.tagID === $.HTML) {\n p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;\n }\n}\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterAfterBody(p, token);\n }\n}\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction popUntilHtmlOrIntegrationPoint(p) {\n while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {\n p.openElements.pop();\n }\n}\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token)) {\n popUntilHtmlOrIntegrationPoint(p);\n p._startTagOutsideForeignContent(token);\n }\n else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n }\n else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n }\n else {\n p._insertElement(token, currentNs);\n }\n token.ackSelfClosing = true;\n }\n}\nfunction endTagInForeignContent(p, token) {\n if (token.tagID === $.P || token.tagID === $.BR) {\n popUntilHtmlOrIntegrationPoint(p);\n p._endTagOutsideForeignContent(token);\n return;\n }\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._endTagOutsideForeignContent(token);\n break;\n }\n const tagName = p.treeAdapter.getTagName(element);\n if (tagName.toLowerCase() === token.tagName) {\n //NOTE: update the token tag name for `_setEndLocation`.\n token.tagName = tagName;\n p.openElements.shortenToLength(i);\n break;\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { TAG_NAMES as $, NS, hasUnescapedText } from '../common/html.js';\nimport { escapeText, escapeAttribute } from 'entities/lib/escape.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\n// Sets\nconst VOID_ELEMENTS = new Set([\n $.AREA,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BR,\n $.COL,\n $.EMBED,\n $.FRAME,\n $.HR,\n $.IMG,\n $.INPUT,\n $.KEYGEN,\n $.LINK,\n $.META,\n $.PARAM,\n $.SOURCE,\n $.TRACK,\n $.WBR,\n]);\nfunction isVoidElement(node, options) {\n return (options.treeAdapter.isElementNode(node) &&\n options.treeAdapter.getNamespaceURI(node) === NS.HTML &&\n VOID_ELEMENTS.has(options.treeAdapter.getTagName(node)));\n}\nconst defaultOpts = { treeAdapter: defaultTreeAdapter, scriptingEnabled: true };\n/**\n * Serializes an AST node to an HTML string.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n *\n * // Serializes a document.\n * const html = parse5.serialize(document);\n *\n * // Serializes the <html> element content.\n * const str = parse5.serialize(document.childNodes[1]);\n *\n * console.log(str); //> '<head></head><body>Hi there!</body>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serialize(node, options) {\n const opts = { ...defaultOpts, ...options };\n if (isVoidElement(node, opts)) {\n return '';\n }\n return serializeChildNodes(node, opts);\n}\n/**\n * Serializes an AST element node to an HTML string, including the element node.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parseFragment('<div>Hello, <b>world</b>!</div>');\n *\n * // Serializes the <div> element.\n * const html = parse5.serializeOuter(document.childNodes[0]);\n *\n * console.log(str); //> '<div>Hello, <b>world</b>!</div>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serializeOuter(node, options) {\n const opts = { ...defaultOpts, ...options };\n return serializeNode(node, opts);\n}\nfunction serializeChildNodes(parentNode, options) {\n let html = '';\n // Get container of the child nodes\n const container = options.treeAdapter.isElementNode(parentNode) &&\n options.treeAdapter.getTagName(parentNode) === $.TEMPLATE &&\n options.treeAdapter.getNamespaceURI(parentNode) === NS.HTML\n ? options.treeAdapter.getTemplateContent(parentNode)\n : parentNode;\n const childNodes = options.treeAdapter.getChildNodes(container);\n if (childNodes) {\n for (const currentNode of childNodes) {\n html += serializeNode(currentNode, options);\n }\n }\n return html;\n}\nfunction serializeNode(node, options) {\n if (options.treeAdapter.isElementNode(node)) {\n return serializeElement(node, options);\n }\n if (options.treeAdapter.isTextNode(node)) {\n return serializeTextNode(node, options);\n }\n if (options.treeAdapter.isCommentNode(node)) {\n return serializeCommentNode(node, options);\n }\n if (options.treeAdapter.isDocumentTypeNode(node)) {\n return serializeDocumentTypeNode(node, options);\n }\n // Return an empty string for unknown nodes\n return '';\n}\nfunction serializeElement(node, options) {\n const tn = options.treeAdapter.getTagName(node);\n return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? '' : `${serializeChildNodes(node, options)}</${tn}>`}`;\n}\nfunction serializeAttributes(node, { treeAdapter }) {\n let html = '';\n for (const attr of treeAdapter.getAttrList(node)) {\n html += ' ';\n if (!attr.namespace) {\n html += attr.name;\n }\n else\n switch (attr.namespace) {\n case NS.XML: {\n html += `xml:${attr.name}`;\n break;\n }\n case NS.XMLNS: {\n if (attr.name !== 'xmlns') {\n html += 'xmlns:';\n }\n html += attr.name;\n break;\n }\n case NS.XLINK: {\n html += `xlink:${attr.name}`;\n break;\n }\n default: {\n html += `${attr.prefix}:${attr.name}`;\n }\n }\n html += `=\"${escapeAttribute(attr.value)}\"`;\n }\n return html;\n}\nfunction serializeTextNode(node, options) {\n const { treeAdapter } = options;\n const content = treeAdapter.getTextNodeContent(node);\n const parent = treeAdapter.getParentNode(node);\n const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);\n return parentTn &&\n treeAdapter.getNamespaceURI(parent) === NS.HTML &&\n hasUnescapedText(parentTn, options.scriptingEnabled)\n ? content\n : escapeText(content);\n}\nfunction serializeCommentNode(node, { treeAdapter }) {\n return `<!--${treeAdapter.getCommentNodeContent(node)}-->`;\n}\nfunction serializeDocumentTypeNode(node, { treeAdapter }) {\n return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;\n}\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @import {Options} from 'hast-util-raw'\n * @import {Comment, Doctype, Element, Nodes, RootContent, Root, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {DefaultTreeAdapterMap, ParserOptions} from 'parse5'\n * @import {Point} from 'unist'\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Nodes) => undefined} handle\n * Add a hast node to the parser.\n * @property {Options} options\n * User configuration.\n * @property {Parser<DefaultTreeAdapterMap>} parser\n * Current parser.\n * @property {boolean} stitches\n * Whether there are stitches.\n */\n\n/**\n * @typedef Stitch\n * Custom comment-like value we pass through parse5, which contains a\n * replacement node that we’ll swap back in afterwards.\n * @property {'comment'} type\n * Node type.\n * @property {{stitch: Nodes}} value\n * Replacement value.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {Parser, Token, TokenizerMode, html} from 'parse5'\nimport {pointEnd, pointStart} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst gfmTagfilterExpression =\n /<(\\/?)(iframe|noembed|noframes|plaintext|script|style|textarea|title|xmp)(?=[\\t\\n\\f\\r />])/gi\n\n// Node types associated with MDX.\n// <https://github.com/mdx-js/mdx/blob/8a56312/packages/mdx/lib/node-types.js>\nconst knownMdxNames = new Set([\n 'mdxFlowExpression',\n 'mdxJsxFlowElement',\n 'mdxJsxTextElement',\n 'mdxTextExpression',\n 'mdxjsEsm'\n])\n\n/** @type {ParserOptions<DefaultTreeAdapterMap>} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Pass a hast tree through an HTML parser, which will fix nesting, and turn\n * raw nodes into actual nodes.\n *\n * @param {Nodes} tree\n * Original hast tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * Parsed again tree.\n */\nexport function raw(tree, options) {\n const document = documentMode(tree)\n /** @type {(node: Nodes, state: State) => undefined} */\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n unknown\n })\n\n /** @type {State} */\n const state = {\n parser: document\n ? new Parser(parseOptions)\n : Parser.getFragmentParser(undefined, parseOptions),\n handle(node) {\n one(node, state)\n },\n stitches: false,\n options: options || {}\n }\n\n one(tree, state)\n resetTokenizer(state, pointStart())\n\n const p5 = document ? state.parser.document : state.parser.getFragment()\n const result = fromParse5(p5, {\n // To do: support `space`?\n file: state.options.file\n })\n\n if (state.stitches) {\n visit(result, 'comment', function (node, index, parent) {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent && index !== undefined) {\n /** @type {Array<RootContent>} */\n const siblings = parent.children\n // @ts-expect-error: assume the stitch is allowed.\n siblings[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n result.type === 'root' &&\n result.children.length === 1 &&\n result.children[0].type === tree.type\n ) {\n return result.children[0]\n }\n\n return result\n}\n\n/**\n * Transform all nodes\n *\n * @param {Array<RootContent>} nodes\n * hast content.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction all(nodes, state) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n state.handle(nodes[index])\n }\n }\n}\n\n/**\n * Transform a root.\n *\n * @param {Root} node\n * hast root node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction root(node, state) {\n all(node.children, state)\n}\n\n/**\n * Transform an element.\n *\n * @param {Element} node\n * hast element node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction element(node, state) {\n startTag(node, state)\n\n all(node.children, state)\n\n endTag(node, state)\n}\n\n/**\n * Transform a text.\n *\n * @param {Text} node\n * hast text node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction text(node, state) {\n // Allow `DATA` through `PLAINTEXT`,\n // but when hanging in a tag for example,\n // switch back to `DATA`.\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: <https://github.com/inikulin/parse5/blob/46cba43/packages/parse5/lib/tokenizer/index.ts#L58>\n if (state.parser.tokenizer.state > 4) {\n state.parser.tokenizer.state = 0\n }\n\n /** @type {Token.CharacterToken} */\n const token = {\n type: Token.TokenType.CHARACTER,\n chars: node.value,\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a doctype.\n *\n * @param {Doctype} node\n * hast doctype node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction doctype(node, state) {\n /** @type {Token.DoctypeToken} */\n const token = {\n type: Token.TokenType.DOCTYPE,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a stitch.\n *\n * @param {Nodes} node\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction stitch(node, state) {\n // Mark that there are stitches, so we need to walk the tree and revert them.\n state.stitches = true\n\n /** @type {Nodes} */\n const clone = cloneWithoutChildren(node)\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if ('children' in node && 'children' in clone) {\n // Root in root out.\n const fakeRoot = /** @type {Root} */ (\n raw({type: 'root', children: node.children}, state.options)\n )\n clone.children = fakeRoot.children\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}}, state)\n}\n\n/**\n * Transform a comment (or stitch).\n *\n * @param {Comment | Stitch} node\n * hast comment node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction comment(node, state) {\n /** @type {string} */\n // @ts-expect-error: we pass stitches through.\n const data = node.value\n\n /** @type {Token.CommentToken} */\n const token = {\n type: Token.TokenType.COMMENT,\n data,\n location: createParse5Location(node)\n }\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a raw node.\n *\n * @param {Raw} node\n * hast raw node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction handleRaw(node, state) {\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/6f7ca60/packages/parse5/lib/tokenizer/preprocessor.ts#L18-L31>.\n state.parser.tokenizer.preprocessor.html = ''\n state.parser.tokenizer.preprocessor.pos = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastGapPos = -2\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.gapStack = []\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.skipNextNewLine = false\n state.parser.tokenizer.preprocessor.lastChunkWritten = false\n state.parser.tokenizer.preprocessor.endOfChunkHit = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.isEol = false\n\n // Now pass `node.value`.\n setPoint(state, pointStart(node))\n\n state.parser.tokenizer.write(\n state.options.tagfilter\n ? node.value.replace(gfmTagfilterExpression, '<$1$2')\n : node.value,\n false\n )\n // @ts-expect-error: private.\n state.parser.tokenizer._runParsingLoop()\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: <https://github.com/inikulin/parse5/blob/46cba43/packages/parse5/lib/tokenizer/index.ts#L58>\n // Note: a change to `parse5`, which breaks this, was merged but not released.\n // Investigate when it is.\n // To do: remove next major.\n /* c8 ignore next 12 -- removed in <https://github.com/inikulin/parse5/pull/897> */\n if (\n state.parser.tokenizer.state === 72 /* NAMED_CHARACTER_REFERENCE */ ||\n // @ts-expect-error: removed.\n state.parser.tokenizer.state === 78 /* NUMERIC_CHARACTER_REFERENCE_END */\n ) {\n state.parser.tokenizer.preprocessor.lastChunkWritten = true\n /** @type {number} */\n // @ts-expect-error: private.\n const cp = state.parser.tokenizer._consume()\n // @ts-expect-error: private.\n state.parser.tokenizer._callState(cp)\n }\n}\n\n/**\n * Crash on an unknown node.\n *\n * @param {unknown} node_\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Never.\n */\nfunction unknown(node_, state) {\n const node = /** @type {Nodes} */ (node_)\n\n if (\n state.options.passThrough &&\n state.options.passThrough.includes(node.type)\n ) {\n stitch(node, state)\n } else {\n let extra = ''\n\n if (knownMdxNames.has(node.type)) {\n extra =\n \". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax\"\n }\n\n throw new Error('Cannot compile `' + node.type + '` node' + extra)\n }\n}\n\n/**\n * Reset the tokenizer of a parser.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction resetTokenizer(state, point) {\n setPoint(state, point)\n\n // Process final characters if they’re still there after hibernating.\n /** @type {Token.CharacterToken} */\n // @ts-expect-error: private.\n const token = state.parser.tokenizer.currentCharacterToken\n\n if (token && token.location) {\n token.location.endLine = state.parser.tokenizer.preprocessor.line\n token.location.endCol = state.parser.tokenizer.preprocessor.col + 1\n token.location.endOffset = state.parser.tokenizer.preprocessor.offset + 1\n // @ts-expect-error: private.\n state.parser.currentToken = token\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n }\n\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/6f7ca60/packages/parse5/lib/tokenizer/index.ts#L187-L223>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n // @ts-expect-error: private.\n state.parser.tokenizer.paused = false\n // @ts-expect-error: private.\n state.parser.tokenizer.inLoop = false\n\n // Note: don’t reset `state`, `inForeignNode`, or `lastStartTagName`, we\n // manually update those when needed.\n state.parser.tokenizer.active = false\n // @ts-expect-error: private.\n state.parser.tokenizer.returnState = TokenizerMode.DATA\n // @ts-expect-error: private.\n state.parser.tokenizer.charRefCode = -1\n // @ts-expect-error: private.\n state.parser.tokenizer.consumedAfterSnapshot = -1\n // @ts-expect-error: private.\n state.parser.tokenizer.currentLocation = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentCharacterToken = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentToken = null\n // @ts-expect-error: private.\n state.parser.tokenizer.currentAttr = {name: '', value: ''}\n}\n\n/**\n * Set current location.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction setPoint(state, point) {\n if (point && point.offset !== undefined) {\n /** @type {Token.Location} */\n const location = {\n startLine: point.line,\n startCol: point.column,\n startOffset: point.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n }\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lineStartPos = -point.column + 1 // Looks weird, but ensures we get correct positional info.\n state.parser.tokenizer.preprocessor.droppedBufferSize = point.offset\n state.parser.tokenizer.preprocessor.line = point.line\n // @ts-expect-error: private.\n state.parser.tokenizer.currentLocation = location\n }\n}\n\n/**\n * Emit a start tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction startTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointStart(node))\n\n const current = state.parser.openElements.current\n let ns = 'namespaceURI' in current ? current.namespaceURI : webNamespaces.html\n\n if (ns === webNamespaces.html && tagName === 'svg') {\n ns = webNamespaces.svg\n }\n\n const result = toParse5(\n // Shallow clone to not delve into `children`: we only need the attributes.\n {...node, children: []},\n {space: ns === webNamespaces.svg ? 'svg' : 'html'}\n )\n\n /** @type {Token.TagToken} */\n const tag = {\n type: Token.TokenType.START_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n // We always send start and end tags.\n selfClosing: false,\n ackSelfClosing: false,\n // Always element.\n /* c8 ignore next */\n attrs: 'attrs' in result ? result.attrs : [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Set a tag name, similar to how the tokenizer would do it.\n state.parser.tokenizer.lastStartTagName = tagName\n\n // `inForeignNode` is correctly set by the parser.\n}\n\n/**\n * Emit an end tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction endTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n // Do not emit closing tags for HTML void elements.\n if (\n !state.parser.tokenizer.inForeignNode &&\n htmlVoidElements.includes(tagName)\n ) {\n return\n }\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointEnd(node))\n\n /** @type {Token.TagToken} */\n const tag = {\n type: Token.TokenType.END_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Switch back to the data state after alternative states that don’t accept\n // tags:\n if (\n // Current element is closed.\n tagName === state.parser.tokenizer.lastStartTagName &&\n // `<textarea>` and `<title>`\n (state.parser.tokenizer.state === TokenizerMode.RCDATA ||\n // `<iframe>`, `<noembed>`, `<noframes>`, `<style>`, `<xmp>`\n state.parser.tokenizer.state === TokenizerMode.RAWTEXT ||\n // `<script>`\n state.parser.tokenizer.state === TokenizerMode.SCRIPT_DATA)\n // Note: `<plaintext>` not needed, as it’s the last element.\n ) {\n state.parser.tokenizer.state = TokenizerMode.DATA\n }\n}\n\n/**\n * Check if `node` represents a whole document or a fragment.\n *\n * @param {Nodes} node\n * hast node.\n * @returns {boolean}\n * Whether this represents a whole document or a fragment.\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName.toLowerCase() === 'html'))\n )\n}\n\n/**\n * Get a `parse5` location from a node.\n *\n * @param {Nodes | Stitch} node\n * hast node.\n * @returns {Token.Location}\n * `parse5` location.\n */\nfunction createParse5Location(node) {\n const start = pointStart(node) || {\n line: undefined,\n column: undefined,\n offset: undefined\n }\n const end = pointEnd(node) || {\n line: undefined,\n column: undefined,\n offset: undefined\n }\n\n /** @type {Record<keyof Token.Location, number | undefined>} */\n const location = {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n\n // @ts-expect-error: unist point values can be `undefined` in hast, which\n // `parse5` types don’t want.\n return location\n}\n\n/**\n * @template {Nodes} NodeType\n * Node type.\n * @param {NodeType} node\n * Node to clone.\n * @returns {NodeType}\n * Cloned node, without children.\n */\nfunction cloneWithoutChildren(node) {\n return 'children' in node\n ? structuredClone({...node, children: []})\n : structuredClone(node)\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} RawOptions\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit<RawOptions, 'file'>} Options\n * Configuration.\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Parse the tree (and raw nodes) again, keeping positional info okay.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeRaw(options) {\n /**\n * @param {Root} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Root}\n * New tree.\n */\n return function (tree, file) {\n // Assume root in -> root out.\n const result = /** @type {Root} */ (raw(tree, {...options, file}))\n return result\n }\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n"],"names":["compose","funcs","_i","arguments","length","arg","reduce","a","b","args","apply","toHashMapString","obj","Object","keys","forEach","k","JSON","stringify","String","toHashMap","isError","error","message","getStacktrace","stacktrace","_a","split","filter","line","stack","_b","urlEncode","object","map","key","concat","encodeURIComponent","join","isNodeEnv","prototype","toString","call","process","getGlobalObject","g","window","self","Serializable","data","this","_data","toJSON","serialize","Environment","transport","origin","globals","location","protocol","hostname","jest","XDomainRequest","XMLHttpRequest","fetch","supportsPromises","resolve","Promise","r","XDomainTransport","url","send","_this","reject","req","rx","RegExp","onload","open","replace","setTimeout","e","XHRTransport","req_1","onreadystatechange","readyState","DONE","FetchTransport","headers","res","statusText","label","method","body","sent","ok","NodeTransport","https","options","then","request","on","write","end","catch","reason","console","warn","PushApi","_uri","uri","_apiKey","_clientVersion","version","_transport","_createTransport","_url","push","span","auth","_authorization","api_key","Span","_super","timestamp","Math","round","Date","getTime","namespace","name","backtrace","setAction","action","setNamespace","setError","setTags","tags","setParams","params","setBreadcrumbs","breadcrumbs","Queue","clear","values","item","Array","isArray","drain","shift","Dispatcher","queue","api","_retries","_timerID","_duration","_api","_queue","limit","initialDuration","reset","schedule","time","expDuration","e_2_1","e_2","_c","_d","trys","next","done","value","floor","pow","return","Appsignal","VERSION","ignored","_breadcrumbs","_hooks","decorators","overrides","_env","revision","ignoreErrors","info","_dispatcher","_options","tagsOrFn","Error","some","el","test","error_1","_createSpanFromError","sendError","use","plugin","createSpan","fn","environment","wrap","e_1","addDecorator","decorator","addOverride","override","demo","path","demo_sample","addBreadcrumb","breadcrumb","crumb","metadata","category","pop","unshift","event","SUPPORTED_CONSOLE_METHODS","CONSOLE_LOG_METHODS","prevHandler","i","seenValue","seenKey","indexOf","serializeValue","__assign","assign","t","s","n","p","hasOwnProperty","DEFAULTS","xhrEnabled","fetchEnabled","ignoreUrls","opts","isXhrEnabled","isFetchEnabled","prevOpen","originalFetch","appsignal","addEventListener","status","input","init","response","statusCode","pathname","ctx","onerror","onunhandledrejection","prev","onError","unhandledRejection","source","lineno","colno","_reasonFromEvent","StyleSheet","_insertTag","tag","before","insertionPoint","nextSibling","prepend","container","firstChild","insertBefore","isSpeedy","undefined","speedy","ctr","nonce","_proto","hydrate","nodes","insert","rule","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","flush","parentNode","removeChild","abs","fromCharCode","trim","pattern","replacement","indexof","search","index","charCodeAt","begin","slice","array","column","position","character","characters","node","root","parent","type","props","children","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","COMMENT","callback","output","element","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","x","y","z","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","get","set","parentRules","removeLabel","hash","defaultStylisPlugins","exec","createCache","ssrStyles","querySelectorAll","getAttribute","head","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","currentSheet","collection","finalizingPlugins","serializer","selector","serialized","shouldCache","styles","cache","registered","isStringTag","className","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","match","p1","p2","cursor","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","string","_key","interpolated","createStringFromObject","previousCursor","result","cached","labelPattern","stringMode","strings","raw","lastIndex","identifierName","str","h","len","useInsertionEffect","create","hasOwn","EmotionCacheContext","HTMLElement","Provider","func","forwardRef","ref","useContext","typePropName","Insertion","_ref","current","Emotion$1","cssProp","css","WrappedComponent","registeredStyles","classNames","rawClassName","newProps","jsx","argsLength","createElementArgArray","createEmotionProps","_len","keyframes","insertable","RefFindNode","_React$Component","prevNode","componentDidMount","currentNode","innerRef","componentDidUpdate","prevProps","componentWillUnmount","render","RefForward","handleRefOverride","_this$props","_excluded","Ref","rest","child","only","ElementType","childWithProps","handleRef","isRefObject","defineProperty","exports","env","React","_typeof","Symbol","iterator","constructor","_classCallCheck","TypeError","_defineProperties","enumerable","configurable","writable","_createClass","_defineProperty","_inherits","_setPrototypeOf","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","EventSet","handlers","o","called","cloneMap","Map","normalizeHandlers","normalizeTarget","EventPool","handlerSets","poolName","has","addHandlers","dispatchEvent","hasHandlers","removeHandlers","delete","EventTarget","pools","target","createByType","addTargetHandler","removeTargetHandler","createEmitter","removeEventListener","EventStack","targets","canUseDOM","pool","getTarget","removeTarget","instance","EventStack$1","PureComponent","subscribe","unsubscribe","sub","unsub","propTypes","module","default","_interopDefault","ex","stringHash","asap","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","UPPERCASE_RE","UPPERCASE_RE_TO_KEBAB","isUnitlessNumber","lineClamp","prefixes","prop","prefix","charAt","toUpperCase","substring","prefixKey","stringifyValue","stringifyAndImportantifyValue","importantify","hashString","MAP_EXISTS","OrderedElements","elements","keyOrder","shouldReorder","splice","nested","_nested","addStyleType","styleType","unwrapExports","__esModule","createCommonjsModule","capitalizeString_1","prefixProperty_1","prefixProperties","style","newStyle","requiredPrefixes","capitalizedProperty","_capitalizeString2","styleProperty","prefixValue_1","plugins","metaData","processedValue","addNewValuesOnly_1","addIfNew","list","isObject_1","createPrefixer_1","prefixMap","_isObject2","combinedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_interopRequireDefault","createPrefixer","backgroundClip_1","backgroundClip","isPrefixedValue_1","regex","calc_1","_isPrefixedValue2","calc","crossFade_1","crossFade","cursor_1","grab","grabbing","filter_1","flex_1","flexboxIE_1","alternativeProps","alternativeValues","flexShorthandMappings","msFlex","flexValues","alignContent","alignSelf","alignItems","justifyContent","flexBasis","auto","inherit","initial","none","unset","flexboxIE","flexboxOld_1","WebkitBoxOrient","WebkitBoxDirection","flexWrap","flexboxOld","gradient_1","grad","gradient","grid_1","_slicedToArray","_arr","_n","_e","_s","err","sliceIterator","isSimplePositionValue","isNaN","displayValues","propertyConverters","propertyConverter","alignmentValues","grid","msGridRowAlign","_value$split$map","_value$split$map2","start","_value$split$map3","_value$split$map4","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","justifySelf","msGridColumnAlign","imageSet_1","imageSet","logical_1","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","logical","position_1","sizing_1","properties","maxHeight","maxWidth","width","height","columnWidth","minWidth","minHeight","sizing","uppercasePattern","msPattern","toHyphenLower","_hyphenateStyleName","freeze","hName","hyphenateProperty_1","_hyphenateStyleName2","transition_1","propertyPrefixMap","outputValue","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","val","mozOutput","transition","transitionProperty","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","w","m","wm","wms","wmms","prefixAll","defaultSelectorHandlers","baseSelector","generateSubtreeStyles","generated","generateCSS","styleTypes","selectorHandlers","stringHandlers","useImportant","merged","plainDeclarations","generatedStyles","handler","newSelector","generatedRuleset","generateCSSRuleset","transformRule","transformValue","arrayToObjectKeysReducer","acc","stringHandlerKeys","runStringHandlers","originalElements","prefixedElements","elementNames","originalStyle","originalIndex","styleTag","fontFamily","nameMap","v","injectStyleOnce","src","animationName","finalVal","valVal","valKey","injectGeneratedCSSOnce","alreadyInjected","injectionBuffer","isBuffering","generatedCSS","_injectionBuffer","flushToStyleTag","definitions","resetInjectedStyle","flushToArray","ret","querySelector","getElementsByTagName","styleSheet","numRules","innerText","injectStyleTag","processStyleDefinitions","styleDefinitions","classNameBits","definitionBits","def","_name","_definition","injectAndGetClassName","unminifiedHashFn","hashFn","sheetDefinition","mappedSheetDefinition","stringVal","rehydrate","StyleSheetServer","renderStatic","renderFunc","startBuffering","html","content","renderedClassNames","makeExports","extend","extensions","extensionSelectorHandlers","extension","selectorHandler","StyleSheetTestUtils","minify","shouldMinify","__chunk_1","Aphrodite","rawAsap","freeTasks","pendingErrors","requestErrorThrow","makeRequestCallFromTimer","task","rawTask","RawTask","requestFlush","currentIndex","scan","newLength","toggle","observer","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","timeoutHandle","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","observe","characterData","f","clsx","codeMap","mapCodeAndName","country","code","u","c","d","l","$","M","weekdays","months","ordinal","utcOffset","date","year","month","clone","add","ceil","D","Q","S","_","O","locale","$L","utc","$u","$x","$offset","$d","NaN","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","min","daysInMonth","Number","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toISOString","toUTCString","$i","isDayjs","en","Ls","day","hour","minute","second","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","parseInt","tz","toLocaleString","$timezone","offsetName","guess","find","max","resolvedOptions","setDefault","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","wait","lastCallAt","deferred","timer","pendingArgs","currentWait","getWait","currentTime","isCold","leading","accumulate","promise","defer","bind","argsIndex","results","thisDeferred","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copy","copyIsArray","deep","getTag","INFINITY","baseToString","isString","isNumber","isBoolean","isObject","isObjectLike","isDefined","isBlank","MISSING_KEY_PROPERTY","INVALID_KEY_WEIGHT_VALUE","KeyStore","_keys","_keyMap","totalWeight","createKey","weight","id","keyId","getFn","createKeyPath","createKeyId","Config","isCaseSensitive","includeScore","shouldSort","sortFn","score","idx","includeMatches","findAllMatches","minMatchCharLength","threshold","distance","useExtendedSearch","deepGet","ignoreLocation","ignoreFieldNorm","fieldNormWeight","SPACE","FuseIndex","norm","mantissa","numTokens","parseFloat","isCreated","setIndexRecords","setSources","docs","records","setKeys","_keysMap","doc","docIndex","_addString","_addObject","removeAt","getValueForItemAtKeyId","record","keyIndex","subRecords","nestedArrIndex","subRecord","createIndex","myIndex","computeScore$1","errors","currentLocation","expectedLocation","accuracy","proximity","MAX_BITS","text","patternAlphabet","patternLen","textLen","currentThreshold","bestLocation","computeMatches","matchMask","lastBitArr","finalScore","binMax","mask","binMin","binMid","finish","bitArr","charMatch","isMatch","indices","matchmask","convertMaskToIndices","createPatternAlphabet","char","BitapSearch","chunks","addChunk","startIndex","alphabet","remainder","substr","searchIn","allIndices","totalScore","hasMatches","BaseMatch","isMultiMatch","getMatch","multiRegex","isSingleMatch","singleRegex","exp","matches","FuzzyMatch","super","_bitapSearch","IncludeMatch","searchers","startsWith","endsWith","searchersLen","SPACE_RE","MultiMatchSet","Set","ExtendedSearch","query","queryItem","found","searcher","parseQuery","condition","numMatches","qLen","registeredSearchers","createSearcher","searcherClass","LogicalOperator","KeyType","isExpression","convertToExplicit","isQueryPath","isPath","isLeaf","LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY","operator","transformMatches","refIndex","transformScore","Fuse","_keyStore","setCollection","_docs","_myIndex","remove","predicate","getIndex","_searchStringList","_searchObjectList","_searchLogical","EPSILON","computeScore","sort","transformers","transformer","expression","evaluate","_findMatches","resultMap","expResults","parseIndex","config","register","isAbsolute","spliceOne","to","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","valueEqual","every","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","state","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","listener","notifyListeners","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","ua","globalHistory","canUseHistory","navigator","userAgent","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","random","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","defaultLocaleResolver","i18n","locales","enableFallback","defaultLocale","Boolean","currentLocale","includes","codes","Locales","registry","localeResolver","defaultPluralizer","pluralizer","includeZero","_i18n","useMakePlural","ord","v0","t0","n10","n100","Pluralization","camelCaseKeys","buffer","isSet","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","compare","xc","yc","intCheck","isOdd","toExponential","toFixedPoint","zs","RoundingModeMap","BigNumber","configObject","div","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","P","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","isNum","_isBigNumber","DEBUG","rm","c0","ne","maxOrMin","normalise","sd","ni","rd","pows10","out","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","dp","rand","Uint32Array","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","multiply","base","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","more","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","isInteger","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","gt","isGreaterThanOrEqualTo","gte","isLessThan","lt","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","xLTy","xe","ye","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","isNeg","intDigits","toFraction","md","d0","d1","d2","n0","n1","toNumber","toPrecision","toStringTag","for","expandRoundMode","roundMode","getAbsolutePrecision","numeric","significant","log10","digitCount","roundNumber","rounder","formatNumber","originalNumber","raise","roundedNumber","whole","significand","formattedNumber","positiveFormat","negativeFormat","computeSignificand","stripInsignificantZeros","separator","unit","replaceInFormat","getFullScope","defaultSeparator","inferType","interpolate","transformKey","placeholder","nullPlaceholder","missingPlaceholder","lookup","localeType","component","translations","defaultValue","DECIMAL_UNITS","INVERTED_DECIMAL_UNITS","numberToHuman","roundOptions","units","exponent","num","unitExponents","calculateExponent","determineUnit","STORAGE_UNITS","parseDate","setTime","parts","milliseconds","$1","$2","$3","$6","$4","$5","pluralize","baseScope","missingTranslation","pluralization","missingKeys","DEFAULT_OPTIONS","meridian","am","pm","dayNames","abbrDayNames","monthNames","abbrMonthNames","within","actual","guessStrategy","missingTranslationPrefix","_match","messageStrategy","fullScope","errorStrategy","fullScopeWithLocale","MissingTranslation","strategy","missingBehavior","__awaiter","thisArg","_arguments","generator","fulfilled","step","rejected","DEFAULT_I18N_OPTIONS","availableLocales","I18n","_locale","_defaultLocale","_version","onChangeHandlers","translate","localize","distanceOfTimeInWords","timeAgoInWords","store","hasChanged","newLocale","changed","translationOptions","defaults","createTranslationOptions","translation","translationOption","numberToCurrency","numberToPercentage","localizedValue","toTime","strftime","numberToHumanSize","smallerThanBase","numberToBeFormatted","log","computeExponent","billion","million","quadrillion","thousand","trillion","numberToRounded","numberToDelimited","delimiterPattern","global","left","right","digitToDelimiter","withLocale","originalLocale","AM_PM","weekDay","secs","mins","absOffsetHours","absOffsetMinutes","timezoneoffset","padStart","update","strict","currentType","overrideType","newNode","components","toSentence","items","wordsConnector","twoWordsConnector","lastWordConnector","fromTime","fromInSeconds","toInSeconds","distanceInSeconds","distanceInMinutes","distanceInDays","distanceInHoursRounded","distanceInDaysRounded","distanceInMonthsRounded","includeSeconds","fromYear","toYear","minutesInYear","minutesWithOffset","distanceInYears","trunc","onChange","runCallbacks","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","updatePosition","lines","Position","errorsList","msg","filename","silent","re","comments","pos","decl","decls","isBuffer","keyboardKey","getCode","eventOrKey","keyCode","which","getKey","eventOrCode","isEvent","shiftKey","Cancel","Help","Backspace","Tab","Clear","Enter","Shift","Control","Alt","Pause","CapsLock","Escape","Convert","NonConvert","Accept","ModeChange","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Select","Print","Execute","PrintScreen","Insert","Delete","A","B","C","E","F","G","H","I","J","K","L","N","R","T","U","V","W","X","Y","Z","OS","ContextMenu","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","NumLock","ScrollLock","VolumeMute","VolumeDown","VolumeUp","Meta","AltGraph","Attn","CrSel","ExSel","EraseEof","Play","ZoomOut","Spacebar","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Tilde","GraveAccent","ExclamationPoint","AtSign","PoundSign","PercentSign","Caret","Ampersand","PlusSign","MinusSign","EqualsSign","DivisionSign","MultiplicationSign","Comma","Decimal","Colon","Semicolon","Pipe","BackSlash","QuestionMark","SingleQuote","DoubleQuote","LeftCurlyBrace","RightCurlyBrace","LeftParenthesis","RightParenthesis","LeftAngleBracket","RightAngleBracket","LeftSquareBracket","RightSquareBracket","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","Uint8Array","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","accumulator","initAccum","reAsciiWord","baseAssignValue","objValue","objectCreate","baseCreate","proto","baseForOwn","baseEach","createBaseEach","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","equalArrays","equalByTag","equalObjects","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","nativeKeysIn","isProto","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","assignMergeValue","baseMergeDeep","keysIn","safeGet","baseMerge","srcIndex","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArrayLikeObject","toPlainObject","mergeFunc","stacked","isCommon","isTyped","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","nativeMax","nativeFloor","overRest","setToString","constant","baseSetToString","comparer","isSymbol","symbolProto","symbolToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","seen","outer","computed","seenIndex","assignFunc","valsLength","stringToPath","baseSlice","arrayBuffer","byteLength","freeExports","nodeType","freeModule","Buffer","allocUnsafe","isDeep","cloneArrayBuffer","typedArray","byteOffset","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","assignValue","isNew","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","eachFunc","iterable","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","trailing","arrayReduce","deburr","words","reApos","baseRange","toFinite","noop","deburrLetter","basePropertyOf","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","convert","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","Ctor","ctorString","hasFunc","reHasUnicode","reHasUnicodeWord","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","types","require","binding","transform","otherArgs","freeSelf","shortOut","nativeNow","now","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","reWhitespace","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","rsEmoji","reUnicodeWord","capitalize","camelCase","createCompounder","word","upperFirst","reLatin","reComboMark","baseHas","hasPath","baseHasIn","baseIsArguments","stubFalse","objectCtorString","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseKeysIn","resolver","memoized","Cache","merge","createAssigner","baseProperty","basePropertyDeep","range","createRange","baseRepeat","toInteger","baseOrderBy","sortBy","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","copyObject","baseUniq","createCaseFirst","asciiWords","hasUnicodeWord","unicodeWords","baseZipObject","repeat","table","cells","columnIndex","columnLength","largest","cell","after","settings","padding","delimiterStart","delimiterEnd","align","alignDelimiters","alignments","stringLength","defaultStringLength","rowIndex","rowLength","cellMatrix","sizeMatrix","row","sizes","longestCellByColumn","mostCellsPerRow","toAlignment","colon","dash","space","verticalBar","trailingWhitespace","lineFeed","tree","schema","handlerFactory","pair","subhandler","toExpression","toFunction","toPairs","visit","escape","ignore","parents","grandparent","typeFactory","tests","checks","any","anyFactory","all","allFactory","visitParents","color","CONTINUE","SKIP","EXIT","visitor","is","factory","tagName","displayName","subresult","grandparents","toResult","ccount","findAndReplace","unicodePunctuation","unicodeWhitespace","enterLiteralAutolinkValue","enter","autolinkProtocol","findUrl","$0","domain","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","splitUrl","title","findEmail","atext","email","transforms","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","exit","autolinkEmail","sliceSerialize","inConstruct","notInConstruct","unsafe","canContainEols","strikethrough","phrasing","handleDelete","context","enterCell","_align","setData","tableData","tableHeader","tableRow","codeText","resume","getData","defaultInlineCode","markdownTable","tableCellPadding","tablePipeAlign","around","atBreak","serializeData","subexit","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","inlineCode","matrix","exitCheck","checked","taskListCheckValueChecked","taskListCheckValueUnchecked","paragraph","firstParaghraph","siblings","defaultListItem","listItem","autolinkLiteral","taskListItem","own","configure","patternCompile","sequence","bullet","checkBullet","listItemIndent","checkListItemIndent","ordered","incrementListMarker","spread","indentLines","flow","blank","marker","handle","between","safeOptions","eol","one","_compiled","asciiAlpha","asciiAlphanumeric","asciiControl","markdownLineEnding","www","tokenize","effects","nok","consume","w2","w3","dot","partial","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","check","namedCharacterReference","punctuationContinuation","punctuation","balance","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","inside","wwwAutolink","previousWww","events","attempt","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","gfmAtext","previousEmail","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","_balanced","single","singleTilde","tokenizer","classifyCharacter","_open","_close","resolveAll","nextEvents","shallow","chunkedSplice","parser","constructs","insideSpan","null","removeRemainingSequences","seenDelimiter","hasDash","tableHeaderCount","cellDividerHead","inCellContentHead","cellBreakHead","setextUnderlineMini","createSpace","rowStartDelimiter","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","tableContinue","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","tableBodyContinue","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","contentStart","contentEnd","cellStart","contentType","interruptible","markdownLineEndingOrSpace","spaceFactory","prefixSize","tasklistCheck","_gfmTasklistFirstContentOfListItem","close","spaceThenNonSpace","combine","autolink","tasklist","regexCheck","unicodePunctuationRegex","markdownSpace","Infinity","parameters","chunkStart","miniflat","hook","existing","sizeChunks","tail","sliceStream","isarray","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","capture","group","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","encode","pretty","segment","attachKeys","sensitive","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","$$typeof","_context","_render","_payload","_init","la","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ma","_threadCount","_currentValue2","Uint16Array","oa","pa","qa","ra","sa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","va","wa","xlinkHref","xa","ya","ta","Aa","Ba","memoizedState","Ca","Da","Ea","Fa","Ga","dispatch","Ha","Ia","Ja","Ka","readContext","threadID","useMemo","useReducer","useRef","useState","useLayoutEffect","useCallback","useImperativeHandle","useEffect","useDebugValue","useDeferredValue","useTransition","useOpaqueIdentifier","identifierPrefix","uniqueID","useMutableSource","_source","La","Ma","Na","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","Oa","menuitem","gridArea","Pa","Qa","Ra","Children","toArray","Sa","ReactCurrentDispatcher","Ta","listing","pre","textarea","Ua","Va","Wa","Ya","Za","dangerouslySetInnerHTML","suppressContentEditableWarning","suppressHydrationWarning","$a","ab","isReactComponent","contextType","contextTypes","na","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","getDerivedStateFromProps","updater","UNSAFE_componentWillMount","componentWillMount","getChildContext","childContextTypes","isValidElement","bb","domNamespace","childIndex","footer","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","destroy","clearProviders","pushProvider","popProvider","read","fallbackFrame","renderDOM","defaultChecked","Xa","selected","cb","__html","renderToNodeStream","renderToStaticMarkup","renderToStaticNodeStream","renderToString","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","isView","equal","it","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","parentSub","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","first","isSubscribed","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","contextValue","previousState","getState","Context","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","_ref2$context","connectOptions","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","Connect","forwarded","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","actionCreator","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","createStoreHook","useReduxContext","createDispatchHook","useStore","useDispatch","refEquality","createSelectorHook","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","_onClick","onClick","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","isModifiedEvent","Link","_ref2$component","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","NavLink","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","off","changedBits","componentWillReceiveProps","nextProps","oldValue","_React$Component2","_this2","_len2","_key2","observedBits","onUpdate","_proto2","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","Lifecycle","onMount","onUnmount","cacheLimit","cacheCount","generatePath","compilePath","Redirect","computedMatch","_ref$push","cache$1","cacheLimit$1","cacheCount$1","matchPath","_options$exact","_options$strict","_options$sensitive","matched","_compilePath","cacheKey","pathCache","regexp","compilePath$1","memo","Route","context$1","isEmptyChildren","createURL","staticHandler","Switch","withRouter","Component","wrappedComponentRef","remainingProps","useHistory","useLocation","useParams","AsyncCreatableSelect$1","stateManagerProps","creatableProps","selectProps","AsyncSelect$1","stateManagedProps","CreatableSelect$1","_isNativeReflectConstruct","Reflect","construct","safeIsNaN","areInputsEqual","newInputs","lastInputs","A11yText$1","defaultAriaLiveMessages","guidance","isSearchable","isMulti","tabSelectsValue","isInitialFocus","_props$label","labels","isDisabled","onFocus","focused","_props$label2","selectValue","isSelected","isAppleDevice","getArrayIndex","disabled","onFilter","inputValue","resultsMessage","LiveRegion$1","ariaSelection","focusedOption","focusedValue","focusableOptions","isFocused","ariaLiveMessages","getOptionLabel","isOptionDisabled","menuIsOpen","screenReaderStatus","isLoading","ariaLabel","ariaLive","messages","ariaSelected","option","selectedOptions","removedValue","removedValues","multiSelected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ScreenReaderText","role","diacritics","letters","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","resultFn","isEqual","newArgs","lastThis","lastArgs","lastResult","memoizeOne","trimString","defaultStringify","createFilter","rawInput","__isNew__","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","matchFrom","candidate","DummyInput","filteredProps","background","border","caretColor","fontSize","outline","cancelScroll","cancelable","stopPropagation","STYLE_KEYS","LOCK_STYLES","boxSizing","overflow","preventTouchMove","allowTouchMove","preventInertiaScroll","top","scrollTop","totalScroll","scrollHeight","currentScroll","offsetHeight","isTouchDevice","maxTouchPoints","activeScrollLocks","listenerOptions","passive","blurSelectInput","ownerDocument","activeElement","blur","_ref2$1","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","_scrollTarget$current","clientHeight","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","deltaY","onTouchStart","changedTouches","clientY","onTouchMove","startListening","notPassive","stopListening","useScrollCapture","setScrollLockTarget","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","paddingRight","clientWidth","adjustedPadding","innerWidth","removeScrollLock","useScrollLock","RequiredInput$1","required","tabIndex","testPlatform","_window$navigator$use","platform","isMac","isIOS","getOptionLabel$1","getOptionValue$1","defaultStyles","clearIndicator","control","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","loadingMessage","menu","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","valueContainer","defaultTheme","borderRadius","colors","primary","primary75","primary50","primary25","danger","dangerLight","neutral0","neutral5","neutral10","neutral20","neutral30","neutral40","neutral50","neutral60","neutral70","neutral80","neutral90","spacing","baseUnit","controlHeight","menuGutter","defaultProps","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","controlShouldRenderValue","escapeClearsValue","filterOption","formatGroupLabel","getOptionValue","isRtl","maxMenuHeight","minMenuHeight","menuPlacement","menuPosition","menuShouldBlockScroll","menuShouldScrollIntoView","openMenuOnFocus","openMenuOnClick","pageSize","unstyled","toCategorizedOption","_isOptionDisabled","_isOptionSelected","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","buildFocusableOptionsWithIds","optionId","_props$inputValue","shouldHideSelectedOptions","_filterOption","getFocusedOptionId","focusableOptionsWithIds","_focusableOptionsWith","isOptionSelected","hideSelectedOptions","instanceId","_Component","possibleConstructorReturn","focusedOptionId","inputIsHidden","clearFocusValueOnUpdate","prevWasFocused","inputIsHiddenAfterUpdate","instancePrefix","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","inputRef","getInputRef","focus","focusInput","blurInput","actionMeta","ariaOnChange","setValue","_this$props2","onInputChange","prevInputValue","onMenuClose","selectOption","_this$props3","deselected","removeValue","newValueArray","clearValue","popValue","lastSelectedValue","getFocusableOptionsWithIds","getElementId","cx","classNamePrefix","getStyles","custom","getClassNames","_this$props$className","_this$props$className2","getComponents","getCategorizedOptions","buildFocusableOptions","getFocusableOptions","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","onScroll","onCompositionStart","onCompositionEnd","touches","touch","clientX","deltaX","onTouchEnd","contains","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","currentTarget","onMenuOpen","onInputFocus","onInputBlur","onBlur","onOptionHover","focusedOptionIndex","onValueInputFocus","onKeyDown","_this$props5","isClearable","_this$state","focusValue","focusOption","startListeningComposition","startListeningToTouch","autoFocus","_this$props6","stopListeningComposition","stopListeningToTouch","_this$state2","openAtIndex","selectedIndex","direction","_this$state3","focusedIndex","nextFocus","theme","hasValue","getTheme","_this$props7","formatOptionLabel","_inputValue","_selectValue","_this$props8","inputId","form","Input","_this$state4","ariaAttributes","autoCapitalize","autoComplete","autoCorrect","isHidden","spellCheck","inputMode","_this3","_this$getComponents2","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","SingleValue","Placeholder","_this$props9","_this$state5","innerProps","opt","isOptionFocused","Container","Label","Remove","removeProps","onMouseDown","ClearIndicator","_this$props10","LoadingIndicator","_this$props11","_this$getComponents5","DropdownIndicator","IndicatorSeparator","_this4","_this$getComponents7","Group","GroupHeading","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","Option","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","onHover","onSelect","onMouseMove","onMouseOver","hasOptions","groupIndex","groupId","headingId","Heading","headingProps","_message","menuPlacementProps","menuElement","_ref4","_ref4$placerProps","placerProps","placement","scrollTargetRef","appendTo","controlElement","_this5","_this$props13","_value","_this$state6","_this$getComponents8","IndicatorsContainer","SelectContainer","ValueContainer","_this$props14","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","newMenuOptionsState","nextSelectValue","lastFocusedIndex","getNextFocusedValue","lastFocusedOption","getNextFocusedOption","newInputIsHiddenState","newAriaSelection","hasKeptFocus","createCoords","rectToClientRect","rect","bottom","getNodeName","isNode","nodeName","getWindow","_node$ownerDocument","defaultView","getDocumentElement","documentElement","Node","isHTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","isWebKit","CSS","supports","isLastTraversableNode","getComputedStyle","getParentNode","assignedSlot","host","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","frameElement","getCssDimensions","hasOffset","offsetWidth","shouldFallback","unwrapElement","contextElement","getScale","domElement","getBoundingClientRect","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","autoUpdate","floating","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","ancestor","cleanupIo","onMove","timeoutId","io","cleanup","_io","disconnect","refresh","skip","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","_resizeObserver","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","_excluded$4","applyPrefixToName","classNameList","cleanValue","cleanCommonProps","getStyleProps","classNamesState","_newValue","isDocumentElement","getScrollTop","pageYOffset","scrollTo","animatedScrollTo","duration","change","animateScroll","scrollIntoView","menuEl","focusedEl","menuRect","focusedRect","overScroll","isTouchCapable","createEvent","isMobileDevice","passiveOptionAccessed","supportsPassiveEvents","notNullish","valueTernary","singleValueAsValue","multiValueAsValue","propsObj","_excluded$3","_excluded2$1","getMenuPlacement","preferredMaxHeight","preferredPlacement","shouldScroll","isFixedPosition","scrollParent","excludeStaticParent","overflowRx","parentElement","getScrollParent","defaultState","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","innerHeight","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","_constrainedHeight","spaceAbove","_constrainedHeight2","_templateObject","coercePlacement","menuCSS","_objectSpread2","_ref2$theme","alignToControl","backgroundColor","boxShadow","PortalPlacementContext","MenuPlacer","setPortalPlacement","_useState","_useState2","setMaxHeight","_useState3","_useState4","setPlacement","Menu$1","menuListCSS","WebkitOverflowScrolling","paddingBottom","noticeCSS","_ref5","_ref5$theme","textAlign","noOptionsMessageCSS","loadingMessageCSS","menuPortalCSS","_ref8","containerCSS","pointerEvents","valueContainerCSS","indicatorsContainerCSS","_excluded$2","Svg","viewBox","focusable","CrossIcon","DownChevron","baseCSS","_ref3$theme","dropdownIndicatorCSS","clearIndicatorCSS","indicatorSeparatorCSS","_ref4$theme","loadingDotAnimations","defineProperties","loadingIndicatorCSS","marginRight","verticalAlign","LoadingDot","_ref6","delay","animation","marginLeft","css$1","_ref$theme","borderColor","borderStyle","borderWidth","Control$1","_excluded$1","groupCSS","groupHeadingCSS","textTransform","Group$1","inputCSS","visibility","containerStyle","margin","spacingStyle","font","whiteSpace","inputStyle","multiValueCSS","multiValueLabelCSS","cropWithEllipsis","textOverflow","multiValueRemoveCSS","MultiValueGeneric","MultiValue$1","optionCSS","userSelect","WebkitTapHighlightColor","placeholderCSS","indicator","_cleanCommonProps","indicators","inputClassName","_ref7","_ref7$size","restProps","menuPortalRef","cleanupRef","_useState5","_useState6","portalPlacementContext","_useState7","_useState8","computedPosition","setComputedPosition","updateComputedPosition","getBoundingClientObj","scrollDistance","runAutoUpdate","setMenuPortalElement","menuPortalElement","menuWrapper","createPortal","_ref7$children","_ref6$children","defaultComponents","StateManagedSelect$1","baseSelectProps","useAsync","_ref$defaultOptions","defaultOptions","propsDefaultOptions","_ref$cacheOptions","cacheOptions","propsLoadOptions","loadOptions","_ref$isLoading","propsIsLoading","propsOnInputChange","_ref$filterOption","restSelectProps","propsInputValue","lastRequest","mounted","setDefaultOptions","stateInputValue","setStateInputValue","setIsLoading","loadedInputValue","setLoadedInputValue","_useState9","_useState10","loadedOptions","setLoadedOptions","_useState11","_useState12","passEmptyOptions","setPassEmptyOptions","_useState13","_useState14","optionsCache","setOptionsCache","_useState15","_useState16","prevDefaultOptions","setPrevDefaultOptions","_useState17","_useState18","prevCacheOptions","setPrevCacheOptions","loader","compareOption","accessors","optionValue","optionLabel","builtins","formatCreateLabel","isValidNewOption","selectOptions","getNewOptionData","useCreatable","_ref$allowCreateWhile","allowCreateWhileLoading","_ref$createOptionPosi","createOptionPosition","_ref$formatCreateLabe","_ref$isValidNewOption","_ref$getNewOptionData","onCreateOption","_ref$options","propsOptions","propsOnChange","_restSelectProps$getO","_restSelectProps$getO2","newOption","valueArray","newOptionData","newActionMeta","useStateManager","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsMenuIsOpen","propsOnMenuClose","propsOnMenuOpen","propsValue","stateMenuIsOpen","setStateMenuIsOpen","stateValue","setStateValue","_extends","_objectWithoutPropertiesLoose","excluded","sourceKeys","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","canBeRendered","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT","cssTransition","_ref$appendPosition","appendPosition","_ref$collapse","collapse","_ref$collapseDuration","collapseDuration","preventExitTransition","nodeRef","isIn","enterClassName","exitClassName","baseClassName","animationStep","onEntered","Event","onExited","collapseToast","onExit","eventManager","emitQueue","cancelEmit","timers","emit","useToastContainer","forceUpdate","toastIds","setToastIds","containerRef","toastToRender","isToastActive","toastKey","displayedToast","containerId","getToast","clearWaitingQueue","removeToast","dequeueToast","_instance$queue$shift","appendToast","toastContent","toastProps","staleId","buildToast","enableMultiContainer","updateId","isNotValid","closeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","icon","closeButton","rtl","toastClassName","bodyClassName","toastStyle","bodyStyle","pauseOnHover","pauseOnFocusLoss","draggable","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","progress","deleteToast","queueLen","freeSlot","toDequeue","onOpen","onClose","cloneElement","getToastToRender","toRender","newestOnTop","toast","getX","targetTouches","getY","useToast","isRunning","setIsRunning","setPreventExitTransition","toastRef","drag","removalDistance","canCloseOnClick","canDrag","boundingRect","didMove","syncProps","onDragStart","onDragMove","onDragEnd","nativeEvent","onDragTransitionEnd","_drag$boundingRect","pauseToast","playToast","once","hasFocus","bindFocusEvents","eventHandlers","onMouseUp","onMouseEnter","onMouseLeave","CloseButton","_ref$ariaLabel","fillRule","ProgressBar","_cx","_animationEvent","hide","userStyle","controlledProgress","animationDuration","animationPlayState","defaultClassName","animationEvent","fill","Icons","warning","success","spinner","Toast","_cx2","_useToast","Transition","cssClasses","isProgressControlled","maybeIcon","iconProps","Icon","renderCloseButton","Bounce","ToastContainer","_useToastContainer","getClassName","toastList","latestInstance","containerDomNode","containerConfig","containers","lazy","generateToastId","getToastId","dispatchToast","mergeOptions","createToastByType","loading","pending","resetParams","baseParams","dismiss","dark","oldOptions","oldContent","nextOptions","containerInstance","warningIssued","syntax","fromMarkdown","toMarkdown","Parser","blockTokenizers","Compiler","visitors","field","PortalInner","isBrowser","_this$props$mountNode","mountNode","handledProps","contentRef","triggerRef","latestDocumentMouseDownEvent","handleDocumentMouseDown","handleDocumentClick","closeOnDocumentClick","currentMouseDownEvent","doesNodeContainClick","handleEscape","closeOnEscape","handlePortalMouseLeave","closeOnPortalMouseLeave","mouseLeaveDelay","mouseLeaveTimer","closeWithTimeout","handlePortalMouseEnter","handleTriggerBlur","trigger","closeOnTriggerBlur","relatedTarget","didFocusPortal","handleTriggerClick","closeOnTriggerClick","openOnTriggerClick","_len3","_key3","handleTriggerFocus","openOnTriggerFocus","_len4","_key4","handleTriggerMouseLeave","mouseEnterTimer","closeOnTriggerMouseLeave","_len5","_key5","handleTriggerMouseEnter","mouseEnterDelay","openOnTriggerMouseEnter","_len6","_key6","openWithTimeout","eventClone","handleMount","handleUnmount","handleTriggerRef","eventPool","autoControlledProps","Inner","IconGroup","classes","getUnhandledProps","getElementType","childrenUtils","as","_PureComponent","handleClick","getIconAriaOptions","ariaOptions","ariaHidden","bordered","circular","corner","fitted","flipped","inverted","rotated","ModernAutoControlledComponent","_this$constructor","getAutoControlledStateFromProps","initialAutoControlledState","includeDefaults","propValue","defaultProp","initialState","multiple","getAutoControlledStateValue","newStateFromProps","computedState","someByType","isNil","numberToWordMap","numberToWord","useKeyOnly","useValueAndKey","useKeyOrValueAndKey","useMultipleProp","useTextAlignProp","useVerticalAlignProp","useWidthProp","widthClass","canEqual","valType","nativeMin","clientRects","getClientRects","_first2","createShorthand","mapValueToProps","valIsString","valIsNumber","valIsFunction","valIsReactElement","valIsPropsObject","valIsPrimitiveValue","_options$defaultProps","usersProps","_options2$overridePro","overrideProps","mergedClassesNames","childKey","_options3$autoGenerat","autoGenerateKey","createShorthandFactory","createHTMLDivision","createHTMLInput","createHTMLLabel","getDefault","_Component$defaultPro","computedDefault","_Component$handledPro","hasDocument","hasWindow","ManagerReferenceNodeContext","setRef","safeInvoke","fromEntries","EMPTY_MODIFIERS","NOOP","NOOP_PROMISE","Popper","_ref$placement","_ref$strategy","_ref$modifiers","modifiers","referenceElement","onFirstUpdate","referenceNode","_React$useState","popperElement","setPopperElement","_React$useState2","arrowElement","setArrowElement","enabled","_usePopper","prevOptions","optionsWithDefaults","popper","arrow","attributes","updateStateModifier","phase","requires","popperOptions","newOptions","popperInstanceRef","setOptions","popperInstance","createPopper","usePopper","childrenProps","hasPopperEscaped","modifiersData","isReferenceHidden","arrowProps","setter","toIteratee","positionsMapping","placementMapping","ReferenceProxy","refObject","PopupContent","PopupHeader","Popup","zIndexWasSynced","elementRef","getPortalProps","portalProps","hoverable","normalizedOn","hideOnScroll","closed","eventStack","handleClose","handleOpen","handlePortalMount","handlePortalUnmount","positionUpdate","renderContent","popperPlacement","popperRef","popperStyle","basic","flowing","header","wide","contentRestProps","innerElement","unhandledProps","portalRestProps","popperDependencies","handleUpdate","eventsEnabled","pinned","popperModifiers","positionFixed","scroll","resize","_popper$style","definedZIndex","effect","mergedPortalProps","Content","Header","StyleToObject","hasIterator","rnds8","rng","msCrypto","uuid","byteToHex","buf","rnds","_toDate","_toFloat","_toInt","_toBoolean","_equals","_contains","_matches","_isEmail","_isURL","_isMACAddress","_isIP","_isIPRange","_isFQDN","_isDate","_isTime","_isBoolean","_isLocale","_isAbaRouting","_isAlpha","_interopRequireWildcard","_isAlphanumeric","_isNumeric","_isPassportNumber","_isPort","_isLowercase","_isUppercase","_isIMEI","_isAscii","_isFullWidth","_isHalfWidth","_isVariableWidth","_isMultibyte","_isSemVer","_isSurrogatePair","_isInt","_isFloat","_isDecimal","_isHexadecimal","_isOctal","_isDivisibleBy","_isHexColor","_isRgbColor","_isHSL","_isISRC","_isIBAN","_isBIC","_isMD","_isHash","_isJWT","_isJSON","_isEmpty","_isLength","_isByteLength","_isUUID","_isMongoId","_isAfter","_isBefore","_isIn","_isLuhnNumber","_isCreditCard","_isIdentityCard","_isEAN","_isISIN","_isISBN","_isISSN","_isTaxID","_isMobilePhone","_isEthereumAddress","_isCurrency","_isBtcAddress","_isISO","_isISO2","_isISO3","_isRFC","_isISO31661Alpha","_isISO31661Alpha2","_isISO4","_isBase","_isBase2","_isBase3","_isDataURI","_isMagnetURI","_isMailtoURI","_isMimeType","_isLatLong","_isPostalCode","_ltrim","_rtrim","_trim","_escape","_unescape","_stripLow","_whitelist","_blacklist","_isWhitelisted","_normalizeEmail","_isSlug","_isLicensePlate","_isStrongPassword","_isVAT","_getRequireWildcardCache","validator","toFloat","toInt","toBoolean","equals","isEmail","isURL","isMACAddress","isIP","isIPRange","isFQDN","isIBAN","isBIC","isAbaRouting","isAlpha","isAlphaLocales","isAlphanumeric","isAlphanumericLocales","isPassportNumber","isPort","isLowercase","isUppercase","isAscii","isFullWidth","isHalfWidth","isVariableWidth","isMultibyte","isSemVer","isSurrogatePair","isInt","isIMEI","isFloat","isFloatLocales","isDecimal","isHexadecimal","isOctal","isDivisibleBy","isHexColor","isRgbColor","isHSL","isISRC","isMD5","isHash","isJWT","isJSON","isEmpty","isLocale","isByteLength","isUUID","isMongoId","isLuhnNumber","isCreditCard","isIdentityCard","isEAN","isISIN","isISBN","isISSN","isMobilePhone","isMobilePhoneLocales","isPostalCode","isPostalCodeLocales","isEthereumAddress","isCurrency","isBtcAddress","isISO6346","isFreightContainerID","isISO6391","isISO8601","isRFC3339","isISO31661Alpha2","isISO31661Alpha3","isISO4217","isBase32","isBase58","isBase64","isDataURI","isMagnetURI","isMailtoURI","isMimeType","isLatLong","ltrim","rtrim","unescape","stripLow","whitelist","blacklist","isWhitelisted","normalizeEmail","isSlug","isStrongPassword","isTaxID","isDate","isTime","isLicensePlate","isVAT","ibanLocales","farsiLocales","englishLocales","dotDecimal","commaDecimal","bengaliLocales","arabicLocales","alphanumeric","alpha","ar","he","bn","eo","_locale2","_i2","_locale3","_i3","_i4","_i5","chars","_assertString","elem","_merge","defaulContainsOptions","_toString","minOccurrences","comparison","isRoutingReg","checkSumVal","comparisonDate","original","_str","_alpha","ascii","countryCode","CountryCodes","isBICReg","defaultBase32Options","crockford","crockfordBase32","base32","base58Reg","defaultBase64Options","urlSafe","urlSafeBase64","notBase64","firstPaddingChar","loose","looseBooleans","strictBooleans","bech32","base58","card","provider","sanitized","cards","allCards","cardProvider","amex","dinersclub","discover","jcb","mastercard","unionpay","visa","tmpCardsArray","decimal_digits","digits_after_decimal","digit","require_symbol","negative","whole_dollar_amount_with_sep","thousands_separator","whole_dollar_amount","decimal_amount","decimal_separator","require_decimal","allow_decimal","allow_negatives","parens_for_negatives","negative_sign_after_digits","negative_sign_before_digits","allow_negative_sign_placeholder","allow_space_after_symbol","allow_space_after_digits","symbol_after_digits","currencyRegex","default_currency_options","schemeAndMediaType","mediaType","validMediaType","validAttribute","validData","default_date_options","_step","formatDelimiter","delimiters","dateDelimiter","strictMode","dateAndFormat","zippedArr","zip","dateObj","_iterator","allowArrayLike","_unsupportedIterableToArray","normalCompletion","didErr","_e2","_createForOfIteratorHelper","_step$value","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","dateWord","formatWord","fullYear","parsedYear","minLen","_arrayLikeToArray","default_decimal_options","_includes","regExp","force_decimal","decimalRegExp","actualCheckDigit","validEanRegex","ean","LENGTH_EAN_8","LENGTH_EAN_14","getPositionWeightThroughLengthAndIndex","partialSum","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","display_name_without_quotes","validateDisplayName","ignore_max_length","defaultMaxEmailLength","lower_domain","host_blacklist","host_whitelist","user","domain_specific_validation","username","_user_parts","gmailUserPart","require_tld","allow_underscores","allow_ip_domain","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","blacklisted_chars","default_is_empty_options","ignore_whitespace","eth","default_fqdn_options","allow_trailing_dot","allow_wildcard","tld","allow_numeric_tld","float","fullWidth","strippedStr","hslComma","hslSpace","halfWidth","algorithm","lengths","md5","md4","sha1","sha256","sha384","sha512","ripemd128","ripemd160","tiger128","tiger160","tiger192","crc32","crc32b","hexcolor","hexadecimal","isoCountryCode","isoCountryCodeInIbanRegexCodeObject","ibanRegexThroughCountryCode","countryCodeArray","hasOnlyValidCountryCodes","hasValidIbanFormat","hasValidIbanChecksum","AD","AE","AL","AT","AZ","BA","BE","BG","BH","BR","BY","CH","CR","CY","CZ","DE","DK","DO","DZ","EE","EG","ES","FI","FO","FR","GB","GE","GI","GL","GR","GT","HR","HU","IE","IL","IQ","IR","IS","IT","JO","KW","KZ","LB","LC","LI","LT","LU","LV","MA","MC","MD","ME","MK","MR","MT","MU","MZ","NL","NO","PK","PL","PS","PT","QA","RO","RS","SA","SC","SE","SI","SK","SM","SV","TL","TN","TR","UA","VA","VG","XK","imeiRegex","imeiRegexWithoutHypens","allow_hyphens","imeiRegexWithHypens","mul","tp","IPv4AddressRegExp","IPv6AddressRegExp","IPv4SegmentFormat","IPv4AddressFormat","IPv6SegmentFormat","subnetMaybe","expectedSubnet","v4Subnet","v6Subnet","isbn","sanitizedIsbn","checksum","possibleIsbn10","possibleIsbn13","factor","isin","double","_digit","validISO31661Alpha2CountriesCodes","validISO31661Alpha3CountriesCodes","CurrencyCodes","validISO4217CurrencyCodes","isISO6346Str","isDigit","letterCode","checkSumDigit","isISO6391Set","strictSeparator","iso8601StrictSeparator","iso8601","isValidDate","ordinalMatch","oYear","oDay","monthString","dayString","isrc","testIssn","issn","require_hyphen","case_sensitive","digits","validators","weightOfDigits","allow_leading_zeroes","lastDigit","charsValue","IN","lastNumber","k1","k2","TH","LK","incNum","idCardNo","provincesAndCities","powers","parityBit","checkAddressCode","addressCode","checkBirthDayCode","birDayCode","yyyy","mm","dd","xdata","checkParityBit","id17","power","getParityBit","check15IdCardNo","check18IdCardNo","regexIsDigit","ALPHABET_CODES","int","intLeadingZeroes","minCheckPassed","maxCheckPassed","ltCheckPassed","gtCheckPassed","default_json_options","primitives","allow_primitives","dotSplit","currElem","defaultLatLongOptions","checkDMS","latDMS","longDMS","lat","long","presentationSequences","surrogatePairs","languageTagRegex","language","privateuse","grandfathered","langtag","tmpNum","shouldDouble","eui","no_colons","no_separators","macAddress48NoSeparators","macAddress64NoSeparators","macAddress48","macAddress48WithDots","macAddress64","macAddress64WithDots","magnetURIComponent","_url$replace$split2","_url$replace$split2$","queryString","allowedParams","cc","bcc","isParseFailed","queryParams","_q$split2","parseMailtoQueryString","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","phones","multibyte","no_symbols","numericNoSymbols","octal","normalizedStr","passportRegexByCountryCode","AM","AR","AU","CA","CN","ID","JM","JP","KR","LY","MY","MX","NZ","PH","RU","SL","US","ZA","patterns","threeDigit","fourDigit","fiveDigit","sixDigit","HT","KE","MG","NP","PR","SG","TW","ZM","rfc3339","timeHour","timeMinute","timeNumOffset","timeOffset","partialTime","fullDate","fullTime","includePercentValues","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","semanticVersioningRegex","charsetRegex","analysis","password","charMap","countChars","uniqueChars","uppercaseCount","lowercaseCount","numberCount","symbolCount","upperCaseRegex","lowerCaseRegex","numberRegex","symbolRegex","analyzePassword","returnScore","scoringOptions","pointsPerUnique","pointsPerRepeat","pointsForContainingLower","pointsForContainingUpper","pointsForContainingNumber","pointsForContainingSymbol","scorePassword","minLength","minLowercase","minUppercase","minNumbers","minSymbols","surrogatePair","strcopy","taxIdFormat","sanitizeRegexes","taxIdCheck","algorithms","enUsCampusPrefix","andover","atlanta","austin","brookhaven","cincinnati","fresno","internet","kansas","memphis","ogden","philadelphia","sba","itItNameCheck","vowelflag","xflag","tin","century_year","multip_lookup","full_year","checkdigit","luhnCheck","occurences","trip_locations","recurrent","iso7064Check","digitsArray","even","cur","reverseMultiplyAndSum","enUsGetPrefixes","accum","verif","lead_replace","checkdigits","verhoeffCheck","number_replace","_number_locations","char_to_int","odd_convert","_i6","_char_to_int","multiplier","first_part","_checksum","_i7","_sum","_i8","identifiers","verificators","_i9","_i10","multipliers","tin_copy","current_year","current_century","allsymbols","default_time_options","formats","hourFormat","mode","hour24","withSeconds","default_url_options","validate_length","allow_fragments","allow_query_components","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","_auth$split","_auth$split2","ipv6_match","wrapped_ipv6","require_port","checkHost","vatMatchers","EL","weights","ABN","total","NG","UZ","BO","CL","CO","EC","HN","NI","PA","PY","PE","UY","VE","default_normalize_email_options","raw_parts","gmail_remove_subaddress","gmail_remove_dots","dotsReplacer","all_lowercase","gmail_lowercase","gmail_convert_googlemaildotcom","icloud_domains","icloud_remove_subaddress","icloud_lowercase","outlookdotcom_domains","outlookdotcom_remove_subaddress","outlookdotcom_lowercase","yahoo_domains","yahoo_remove_subaddress","yahoo_lowercase","yandex_domains","yandex_lowercase","strIndex","keep_new_lines","radix","checkvalue","product","d_table","p_table","str_copy","invalidType","arrVal","regexpAsStringLiteral","_inheritsLoose","getOwnPropertyDescriptors","_objectWithoutProperties","unsupportedIterableToArray","arrayLikeToArray","toPropertyKey","toPrimitive","padRight","padLeft","paths","Schema","normal","definition","normalize","attribute","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","booleanish","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","spaceSeparated","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","commaSeparated","acceptCharset","accessKey","allow","allowFullScreen","boolean","allowPaymentRequest","allowUserMedia","alt","async","autoPlay","blocking","charSet","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","dir","dirName","download","overloadedBoolean","encType","enterKeyHint","fetchPriority","formAction","formEncType","formMethod","formNoValidate","formTarget","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","lang","loop","low","manifest","maxLength","media","muted","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnter","onDragExit","onDragLeave","onDragOver","onDrop","onDurationChange","onEmptied","onEnded","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseOut","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","optimum","ping","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","reversed","rows","rowSpan","sandbox","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","slot","srcDoc","srcLang","srcSet","typeMustMatch","useMap","writingSuggestions","aLink","archive","axis","bgColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","floodColor","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","transformOrigin","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","commaOrSpaceSeparated","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cy","defaultAction","descent","diffuseConstant","dur","divisor","dx","dy","edgeMode","editable","elevation","externalResourcesRequired","filterRes","filterUnits","focusHighlight","fr","fx","fy","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","pitch","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","ry","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","valid","cap","Type","camelcase","dashes","kebab","DefinedInfo","mark","defined","Info","increment","stringifyPosition","point","VFileMessage","place","fatal","ruleId","file","expected","note","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","segments","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","sep","proc","cwd","isUrl","fileUrlOrPath","urlToPath","URL","third","decodeURIComponent","getPathFromURLPosix","VFile","stored","assertNonEmpty","assertPart","stem","encoding","fail","bail","trough","fns","pipeline","run","middlewareIndex","middleware","wrapped","fnExpectsCallback","middelware","unified","attachers","frozen","freezeIndex","processor","assertUnfrozen","attacher","POSITIVE_INFINITY","addPlugin","addList","addPreset","vfile","assertParser","newable","assertCompiler","assertNode","executor","runSync","complete","assertDone","processSync","destination","asyncName","looksLikeAVFile","emptyOptions","includeImageAlt","includeHtml","syntaxExtension","asciiAtext","asciiDigit","asciiHexDigit","asciiPunctuation","factorySpace","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","defineSkip","disable","blankLine","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","childEvents","gaps","adjust","breaks","chunkInside","continuationConstruct","contentContinue","prefixed","flowInitial","afterConstruct","createResolver","initializeFactory","notText","resolveAllLineSuffixes","extraResolver","tabs","bufferIndex","chunk","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startBufferIndex","endIndex","endBufferIndex","view","sliceChunks","chunkIndex","restore","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","thematicBreak","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","factoryWhitespace","normalizeIdentifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","heading","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","innerHTML","textContent","characterEscape","lineEnding","labelEnd","labelStart","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","attention","attentionMarkers","openingSequence","closingSequence","movePoint","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","tailExitIndex","headEnterIndex","combineExtensions","decodeNumericCharacterReference","characterEscapeOrReference","decode","hex","opener","onenterdata","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","image","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","tokenStack","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","referenceType","decodeString","fragment","compiler","postprocess","atCarriageReturn","endPosition","preprocess","combined","remarkParse","normalizeUri","castFactory","propsFactory","pointStart","pointEnd","clean","footnoteReference","safeId","footnoteOrder","counter","footnoteCounts","reuseCounter","clobberPrefix","dataFootnoteRef","patch","sup","applyData","revert","subtype","contents","listItemLoose","tab","trimLines","trimLine","codePointAt","blockquote","break","footnote","footnoteById","no","dangerous","imageReference","linkReference","listLoose","firstRow","tableContent","cellIndex","alignValue","toml","yaml","footnoteDefinition","createState","allowDangerousHtml","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","footnoteBackLabel","unknownHandler","passThrough","augment","hProperties","hChildren","defaultUnknownHandler","toHast","foot","listItems","referenceIndex","backReferences","backReference","dataFootnoteBackref","tailTail","dataFootnotes","bridge","mutate","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","thing","hastToReact","uriTransformer","tableElements","childrenToReact","toReact","skipHtml","transformLinkUri","parentSchema","addProperty","listDepth","linkTarget","inline","level","transformImageUri","getInputElement","getElementsBeforeCount","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","styleReplacer","parseStyle","changelog","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","remarkPlugins","remarkRehypeOptions","rehypePlugins","hastNode","handleDiameter","offColor","onColor","offHandleColor","onHandleColor","checkedIcon","uncheckedIcon","checkedHandleIcon","uncheckedHandleIcon","activeBoxShadow","touchAction","WebkitUserSelect","MozUserSelect","msUserSelect","onTouchCancel","deserialize","unpair","BigInt","deserializer","EMPTY","asString","shouldSkip","json","lossy","structuredClone","createH","defaultTagName","caseSensitive","createAdjustMap","subvalue","parseSelector","isChild","addChild","parsePrimitive","finalResult","cr","lf","webNamespaces","mathml","fromParse5","verbose","quirksMode","childNodes","loc","toOffset","toPoint","namespaceURI","attrs","sourceCodeLocation","startTag","endTag","opening","closing","startLine","startCol","endLine","endCol","endOffset","zwitch","invalid","unknown","currentSchema","createProperty","publicId","systemId","htmlVoidElements","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","SEQUENCES","isSurrogate","cp","isControlCodePoint","isUndefinedCodePoint","ERR","Preprocessor","lastGapPos","gapStack","skipNextNewLine","lastChunkWritten","endOfChunkHit","bufferWaterline","isEol","lineStartPos","droppedBufferSize","lastErrOffset","getError","_err","onParseError","_addGap","_processSurrogate","nextCp","EOF","surrogateInInputStream","willDropParsedChunk","dropParsedChunk","isLastChunk","insertHtmlAtCurrentPos","CARRIAGE_RETURN","LINE_FEED","advance","_checkForProblematicCharacters","controlCharacterInInputStream","noncharacterInInputStream","retreat","TokenType","getTokenAttr","attrName","decodeMap","fromCodePoint","codePoint","replaceCodePoint","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","ZERO","NINE","isEntityInAttributeInvalidEnd","EQUALS","UPPER_A","UPPER_Z","LOWER_A","LOWER_Z","isAsciiAlphaNumeric","EntityDecoder","decodeTree","emitCodePoint","EntityStart","treeIndex","excess","decodeMode","Strict","startEntity","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","startIdx","UPPER_F","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","determineBranch","Attribute","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","decoder","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","ATTRS","DOCUMENT_MODE","TAG_NAMES","TAG_ID","NS","TAG_NAME_TO_ID","ADDRESS","ANNOTATION_XML","APPLET","AREA","ARTICLE","ASIDE","BASEFONT","BGSOUND","BIG","BLOCKQUOTE","BODY","BUTTON","CAPTION","CENTER","CODE","COL","COLGROUP","DD","DESC","DETAILS","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FOREIGN_OBJECT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HTML","IMG","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LINK","LISTING","MAIN","MALIGNMARK","MARQUEE","MATH","MENU","META","MGLYPH","MI","MO","MN","MS","MTEXT","NAV","NOBR","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","PARAM","PLAINTEXT","PRE","RB","RP","RT","RTC","RUBY","SCRIPT","SECTION","SELECT","SOURCE","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","TABLE","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","THEAD","TITLE","TRACK","TT","UL","SVG","VAR","WBR","XMP","getTagID","UNKNOWN","SPECIAL_ELEMENTS","MATHML","XLINK","XML","XMLNS","isNumberedHeader","tn","C1_CONTROLS_REFERENCE_REPLACEMENTS","State","TokenizerMode","DATA","RCDATA","RAWTEXT","SCRIPT_DATA","CDATA_SECTION","isAsciiDigit","DIGIT_0","DIGIT_9","isAsciiUpper","LATIN_CAPITAL_A","LATIN_CAPITAL_Z","isAsciiLetter","LATIN_SMALL_A","LATIN_SMALL_Z","isAsciiLower","isAsciiUpperHexDigit","LATIN_CAPITAL_F","isAsciiLowerHexDigit","LATIN_SMALL_F","toAsciiLower","isWhitespace","TABULATION","FORM_FEED","isScriptDataDoubleEscapeSequenceEnd","SOLIDUS","GREATER_THAN_SIGN","Tokenizer","paused","inLoop","inForeignNode","lastStartTagName","active","charRefCode","consumedAfterSnapshot","currentCharacterToken","currentToken","currentAttr","preprocessor","getCurrentLocation","sourceCodeLocationInfo","_runParsingLoop","_consume","_ensureHibernation","_callState","pause","writeCallback","_unconsume","_reconsumeInState","_advanceBy","_consumeSequenceIfMatch","_createStartTagToken","START_TAG","tagID","selfClosing","ackSelfClosing","_createEndTagToken","END_TAG","_createCommentToken","_createDoctypeToken","initialName","DOCTYPE","forceQuirks","_createCharacterToken","_createAttr","attrNameFirstCh","_leaveAttrName","_leaveAttrValue","duplicateAttribute","prepareToken","ct","_emitCurrentCharacterToken","emitCurrentTagToken","onStartTag","endTagWithAttributes","endTagWithTrailingSolidus","onEndTag","emitCurrentComment","onComment","emitCurrentDoctype","onDoctype","nextLocation","CHARACTER","onCharacter","NULL_CHARACTER","onNullCharacter","WHITESPACE_CHARACTER","onWhitespaceCharacter","_emitEOFToken","onEof","_appendCharToCurrentCharacterToken","ch","_emitCodePoint","NULL","_emitChars","_matchNamedCharacterReference","withoutSemicolon","masked","SEMICOLON","_isCharacterReferenceInAttribute","EQUALS_SIGN","AMPERSAND","ATTRIBUTE_VALUE_DOUBLE_QUOTED","ATTRIBUTE_VALUE_SINGLE_QUOTED","ATTRIBUTE_VALUE_UNQUOTED","_flushCodePointConsumedAsCharacterReference","_stateData","_stateRcdata","_stateRawtext","_stateScriptData","_statePlaintext","TAG_OPEN","_stateTagOpen","END_TAG_OPEN","_stateEndTagOpen","TAG_NAME","_stateTagName","RCDATA_LESS_THAN_SIGN","_stateRcdataLessThanSign","RCDATA_END_TAG_OPEN","_stateRcdataEndTagOpen","RCDATA_END_TAG_NAME","_stateRcdataEndTagName","RAWTEXT_LESS_THAN_SIGN","_stateRawtextLessThanSign","RAWTEXT_END_TAG_OPEN","_stateRawtextEndTagOpen","RAWTEXT_END_TAG_NAME","_stateRawtextEndTagName","SCRIPT_DATA_LESS_THAN_SIGN","_stateScriptDataLessThanSign","SCRIPT_DATA_END_TAG_OPEN","_stateScriptDataEndTagOpen","SCRIPT_DATA_END_TAG_NAME","_stateScriptDataEndTagName","SCRIPT_DATA_ESCAPE_START","_stateScriptDataEscapeStart","SCRIPT_DATA_ESCAPE_START_DASH","_stateScriptDataEscapeStartDash","SCRIPT_DATA_ESCAPED","_stateScriptDataEscaped","SCRIPT_DATA_ESCAPED_DASH","_stateScriptDataEscapedDash","SCRIPT_DATA_ESCAPED_DASH_DASH","_stateScriptDataEscapedDashDash","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN","_stateScriptDataEscapedLessThanSign","SCRIPT_DATA_ESCAPED_END_TAG_OPEN","_stateScriptDataEscapedEndTagOpen","SCRIPT_DATA_ESCAPED_END_TAG_NAME","_stateScriptDataEscapedEndTagName","SCRIPT_DATA_DOUBLE_ESCAPE_START","_stateScriptDataDoubleEscapeStart","SCRIPT_DATA_DOUBLE_ESCAPED","_stateScriptDataDoubleEscaped","SCRIPT_DATA_DOUBLE_ESCAPED_DASH","_stateScriptDataDoubleEscapedDash","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH","_stateScriptDataDoubleEscapedDashDash","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN","_stateScriptDataDoubleEscapedLessThanSign","SCRIPT_DATA_DOUBLE_ESCAPE_END","_stateScriptDataDoubleEscapeEnd","BEFORE_ATTRIBUTE_NAME","_stateBeforeAttributeName","ATTRIBUTE_NAME","_stateAttributeName","AFTER_ATTRIBUTE_NAME","_stateAfterAttributeName","BEFORE_ATTRIBUTE_VALUE","_stateBeforeAttributeValue","_stateAttributeValueDoubleQuoted","_stateAttributeValueSingleQuoted","_stateAttributeValueUnquoted","AFTER_ATTRIBUTE_VALUE_QUOTED","_stateAfterAttributeValueQuoted","SELF_CLOSING_START_TAG","_stateSelfClosingStartTag","BOGUS_COMMENT","_stateBogusComment","MARKUP_DECLARATION_OPEN","_stateMarkupDeclarationOpen","COMMENT_START","_stateCommentStart","COMMENT_START_DASH","_stateCommentStartDash","_stateComment","COMMENT_LESS_THAN_SIGN","_stateCommentLessThanSign","COMMENT_LESS_THAN_SIGN_BANG","_stateCommentLessThanSignBang","COMMENT_LESS_THAN_SIGN_BANG_DASH","_stateCommentLessThanSignBangDash","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH","_stateCommentLessThanSignBangDashDash","COMMENT_END_DASH","_stateCommentEndDash","COMMENT_END","_stateCommentEnd","COMMENT_END_BANG","_stateCommentEndBang","_stateDoctype","BEFORE_DOCTYPE_NAME","_stateBeforeDoctypeName","DOCTYPE_NAME","_stateDoctypeName","AFTER_DOCTYPE_NAME","_stateAfterDoctypeName","AFTER_DOCTYPE_PUBLIC_KEYWORD","_stateAfterDoctypePublicKeyword","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER","_stateBeforeDoctypePublicIdentifier","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED","_stateDoctypePublicIdentifierDoubleQuoted","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED","_stateDoctypePublicIdentifierSingleQuoted","AFTER_DOCTYPE_PUBLIC_IDENTIFIER","_stateAfterDoctypePublicIdentifier","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS","_stateBetweenDoctypePublicAndSystemIdentifiers","AFTER_DOCTYPE_SYSTEM_KEYWORD","_stateAfterDoctypeSystemKeyword","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER","_stateBeforeDoctypeSystemIdentifier","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED","_stateDoctypeSystemIdentifierDoubleQuoted","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED","_stateDoctypeSystemIdentifierSingleQuoted","AFTER_DOCTYPE_SYSTEM_IDENTIFIER","_stateAfterDoctypeSystemIdentifier","BOGUS_DOCTYPE","_stateBogusDoctype","_stateCdataSection","CDATA_SECTION_BRACKET","_stateCdataSectionBracket","CDATA_SECTION_END","_stateCdataSectionEnd","CHARACTER_REFERENCE","_stateCharacterReference","NAMED_CHARACTER_REFERENCE","_stateNamedCharacterReference","AMBIGUOUS_AMPERSAND","_stateAmbiguousAmpersand","NUMERIC_CHARACTER_REFERENCE","_stateNumericCharacterReference","HEXADEMICAL_CHARACTER_REFERENCE_START","_stateHexademicalCharacterReferenceStart","HEXADEMICAL_CHARACTER_REFERENCE","_stateHexademicalCharacterReference","DECIMAL_CHARACTER_REFERENCE","_stateDecimalCharacterReference","NUMERIC_CHARACTER_REFERENCE_END","_stateNumericCharacterReferenceEnd","LESS_THAN_SIGN","unexpectedNullCharacter","EXCLAMATION_MARK","QUESTION_MARK","unexpectedQuestionMarkInsteadOfTagName","eofBeforeTagName","invalidFirstCharacterOfTagName","missingEndTagName","eofInTag","handleSpecialEndTag","_cp","HYPHEN_MINUS","eofInScriptHtmlCommentLikeText","unexpectedEqualsSignBeforeAttributeName","QUOTATION_MARK","APOSTROPHE","unexpectedCharacterInAttributeName","missingAttributeValue","GRAVE_ACCENT","unexpectedCharacterInUnquotedAttributeValue","missingWhitespaceBetweenAttributes","unexpectedSolidusInTag","cdataInHtmlContent","incorrectlyOpenedComment","abruptClosingOfEmptyComment","eofInComment","nestedComment","incorrectlyClosedComment","eofInDoctype","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","missingWhitespaceAfterDoctypePublicKeyword","missingDoctypePublicIdentifier","missingQuoteBeforeDoctypePublicIdentifier","abruptDoctypePublicIdentifier","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingQuoteBeforeDoctypeSystemIdentifier","missingWhitespaceAfterDoctypeSystemKeyword","missingDoctypeSystemIdentifier","abruptDoctypeSystemIdentifier","unexpectedCharacterAfterDoctypeSystemIdentifier","RIGHT_SQUARE_BRACKET","eofInCdata","NUMBER_SIGN","matchResult","unknownNamedCharacterReference","LATIN_SMALL_X","LATIN_CAPITAL_X","isAsciiHexDigit","nullCharacterReference","characterReferenceOutsideUnicodeRange","surrogateCharacterReference","noncharacterCharacterReference","controlCharacterReference","IMPLICIT_END_TAG_REQUIRED","IMPLICIT_END_TAG_REQUIRED_THOROUGHLY","SCOPING_ELEMENT_NS","NAMED_HEADERS","TABLE_ROW_CONTEXT","TABLE_BODY_CONTEXT","TABLE_CONTEXT","TABLE_CELLS","OpenElementStack","currentTmplContentOrNode","_isInTemplate","treeAdapter","getTemplateContent","tagIDs","stackTop","tmplCount","currentTagId","_indexOf","getNamespaceURI","_updateCurrentElement","onItemPush","popped","onItemPop","oldElement","newElement","insertAfter","newElementID","insertionIdx","popUntilTagNamePopped","targetIdx","shortenToLength","popUntilElementPopped","popUntilPopped","tagNames","targetNS","_indexOfTagNames","popUntilNumberedHeaderPopped","popUntilTableCellPopped","popAllUpToHtmlElement","clearBackTo","clearBackToTableContext","clearBackToTableBodyContext","clearBackToTableRowContext","tryPeekProperlyNestedBodyElement","getCommonAncestor","elementIdx","isRootHtmlElementCurrent","hasInScope","ns","hasNumberedHeaderInScope","hasInListItemScope","hasInButtonScope","hasInTableScope","hasTableBodyContextInTableScope","hasInSelectScope","generateImpliedEndTags","generateImpliedEndTagsThoroughly","generateImpliedEndTagsWithExclusion","exclusionId","EntryType","MARKER","Marker","FormattingElementList","bookmark","_getNoahArkConditionCandidates","neAttrs","candidates","neAttrsLength","neTagName","getTagName","neNamespaceURI","elementAttrs","getAttrList","_ensureNoahArkCondition","neAttrsMap","neAttr","validCandidates","cAttr","insertMarker","pushElement","insertElementAfterBookmark","bookmarkIdx","removeEntry","entryIndex","clearToLastMarker","markerIdx","getElementEntryInScopeWithTagName","getElementEntry","defaultTreeAdapter","createDocument","NO_QUIRKS","createDocumentFragment","createCommentNode","setTemplateContent","templateElement","contentElement","setDocumentType","doctypeNode","setDocumentMode","getDocumentMode","detachNode","insertText","isTextNode","insertTextBefore","adoptAttributes","recipient","recipientAttrsMap","attr","getFirstChild","getChildNodes","getTextNodeContent","textNode","getCommentNodeContent","commentNode","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isCommentNode","isDocumentTypeNode","isElementNode","setNodeSourceCodeLocation","getNodeSourceCodeLocation","updateNodeSourceCodeLocation","endLocation","VALID_DOCTYPE_NAME","VALID_SYSTEM_ID","QUIRKS_MODE_SYSTEM_ID","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","hasPrefix","MIME_TYPES","TEXT_HTML","APPLICATION_XML","DEFINITION_URL_ATTR","ADJUSTED_DEFINITION_URL_ATTR","SVG_ATTRS_ADJUSTMENT_MAP","XML_ATTRS_ADJUSTMENT_MAP","SVG_TAG_NAMES_ADJUSTMENT_MAP","EXITS_FOREIGN_CONTENT","adjustTokenMathMLAttrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","isIntegrationPoint","foreignNS","ENCODING","isHtmlIntegrationPoint","isMathMLTextIntegrationPoint","HIDDEN_INPUT_TYPE","AA_OUTER_LOOP_ITER","AA_INNER_LOOP_ITER","InsertionMode","BASE_LOC","TABLE_STRUCTURE_TAGS","defaultParserOptions","scriptingEnabled","fragmentContext","scriptHandler","stopped","insertionMode","INITIAL","originalInsertionMode","headElement","formElement","currentNotInHTML","tmplInsertionModeStack","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","framesetOk","fosterParentingEnabled","activeFormattingElements","fragmentContextID","_setContextModes","openElements","getFragmentParser","documentMock","IN_TEMPLATE","_initTokenizerForFragmentParsing","_insertFakeRootElement","_resetInsertionMode","_findFormInFragmentContext","getFragment","rootElement","_adoptNodes","beforeToken","tid","_setEndLocation","isHTML","_isIntegrationPoint","_switchToTextParsing","nextTokenizerState","_insertElement","TEXT","switchToPlaintextParsing","IN_BODY","_getAdjustedCurrentElement","_setDocumentType","docTypeNode","_attachElementToTree","_shouldFosterParentOnInsertion","_fosterParentElement","_appendElement","_insertFakeElement","_insertTemplate","tmpl","_appendCommentNode","_insertCharacters","beforeElement","_findFosterParentingLocation","textNodeIdx","donor","closingToken","ctLoc","endLoc","shouldProcessStartTagTokenInForeignContent","_processToken","_processStartTag","_reconstructActiveFormattingElements","listLength","findIndex","_closeTableCell","IN_ROW","_closePElement","IN_TABLE_BODY","IN_CAPTION","IN_COLUMN_GROUP","IN_TABLE","IN_FRAMESET","_resetInsertionModeForSelect","AFTER_HEAD","BEFORE_HEAD","IN_CELL","IN_HEAD","selectIdx","IN_SELECT_IN_TABLE","IN_SELECT","_isElementCausesFosterParenting","openElement","_isSpecialElement","characterInForeignContent","tokenInInitialMode","BEFORE_HTML","tokenBeforeHtml","tokenBeforeHead","tokenInHead","IN_HEAD_NO_SCRIPT","tokenInHeadNoScript","tokenAfterHead","characterInBody","characterInTable","IN_TABLE_TEXT","characterInTableText","tokenInColumnGroup","AFTER_BODY","tokenAfterBody","AFTER_AFTER_BODY","tokenAfterAfterBody","nullCharacterInForeignContent","appendComment","AFTER_FRAMESET","tokenInTableText","appendCommentToRootHtmlElement","AFTER_AFTER_FRAMESET","appendCommentToDocument","QUIRKS","LIMITED_QUIRKS","nonConformingDoctype","doctypeInInitialMode","misplacedDoctype","nonVoidHtmlElementStartTagWithTrailingSolidus","startTagToken","COLOR","SIZE","FACE","popUntilHtmlOrIntegrationPoint","_startTagOutsideForeignContent","currentNs","adjustedTagName","startTagInForeignContent","startTagBeforeHtml","startTagInBody","startTagBeforeHead","startTagInHead","nestedNoscriptInHead","startTagInHeadNoScript","abandonedHeadElementChild","misplacedStartTagForHeadElement","startTagAfterHead","startTagInTable","TABLE_VOID_ELEMENTS","startTagInCaption","startTagInColumnGroup","startTagInTableBody","startTagInRow","startTagInCell","startTagInSelect","startTagInSelectInTable","startTagInTemplate","startTagAfterBody","startTagInFrameset","startTagAfterFrameset","startTagAfterAfterBody","startTagAfterAfterFrameset","_endTagOutsideForeignContent","endTagInForeignContent","endTagBeforeHtml","endTagWithoutMatchingOpenElement","endTagBeforeHead","templateEndTagInHead","endTagInHead","endTagInHeadNoScript","endTagAfterHead","endTagInBody","endTagInText","endTagInTable","endTagInCaption","endTagInColumnGroup","endTagInTableBody","endTagInRow","endTagInCell","endTagInSelect","endTagInSelectInTable","endTagInTemplate","endTagAfterBody","endTagInFrameset","endTagAfterFrameset","eofInBody","eofInElementThatCanContainOnlyText","eofInText","eofInTemplate","stopParsing","whitespaceCharacterInBody","whitespaceCharacterInTableText","aaObtainFormattingElementEntry","formattingElementEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","aaInnerLoop","formattingElement","lastElement","nextElement","elementEntry","counterOverflow","aaRecreateElementFromEntry","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","callAdoptionAgency","htmlElement","htmlLocation","bodyElement","bodyLocation","missingDoctype","closingOfElementWithOpenChildElements","errCode","openElementsLeftAfterEof","disallowedContentInNoscriptInHead","modeInBody","areaStartTagInBody","isHiddenInput","inputType","noembedStartTagInBody","genericStartTagInBody","bStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","addressStartTagInBody","elementId","listItemStartTagInBody","hrStartTagInBody","rbStartTagInBody","rtStartTagInBody","preStartTagInBody","xmpStartTagInBody","svgStartTagInBody","htmlStartTagInBody","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","tableStartTagInBody","inputStartTagInBody","paramStartTagInBody","imageStartTagInBody","buttonStartTagInBody","appletStartTagInBody","iframeStartTagInBody","selectStartTagInBody","optgroupStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","pEndTagInBody","addressEndTagInBody","liEndTagInBody","ddEndTagInBody","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","appletEndTagInBody","tokenInTable","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","xmlCodeMap","getEscaper","lastIdx","checkAsRecord","nodeAsRecord","testFunction","looksLikeANode","empty","nodeAsParent","gfmTagfilterExpression","knownMdxNames","parseOptions","documentMode","stitches","resetTokenizer","testOrVisitor","visitorOrReverse","maybeReverse","stitch","toParse5","createParse5Location","cloneWithoutChildren","fakeRoot","handleRaw","setPoint","tagfilter","node_","extra","rehypeRaw","isProduction","invariant","provided","extendStatics","__extends","__","__generator","ops","verb","op","__values","__read","__spreadArray","pack","SuppressedError"],"sourceRoot":""}