HEX
Server: LiteSpeed
System: Linux premium221.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User: madepabj (2566)
PHP: 8.3.26
Disabled: NONE
Upload Files
File: //home/madepabj/gharana.pk/wp-content/plugins/wp-smushit/app/assets/js/smush-lazy-load.min.js.map
{"version":3,"file":"js/smush-lazy-load.min.js","mappings":"0EAyBCA,SAASC,iBAAkB,mBAAoB,SAAUC,GAAI,IAAAC,GACrDC,EAAAA,EAAAA,GAA0BF,SAAS,QAARC,EAADD,EAAGG,cAAM,IAAAF,OAAA,EAATA,EAAWG,WArBlB,SAAEC,GAC5B,IAAMC,EAAkBD,EAAQE,aAAc,kBAAqBF,EAAQE,aAAc,WACnFC,EAAcH,EAAQI,aAAc,iBAAoB,mBAAqB,aAEnF,GAAKH,EAAkB,CACtB,IAIII,EAJEC,EAAeN,EAAQE,aAAc,UAAa,GAClDK,EAAmB,GAAHC,OAAOL,EAAW,MAAAK,OAAOP,EAAe,KACxDQ,EAAkB,IAAIC,OAAO,GAADF,OAAML,EAAW,qBAIlDE,EADII,EAAgBE,KAAML,GACXA,EAAaM,QAASH,EAAiBF,GAEvCD,EAAaO,OAAS,EAAIP,EAAaM,QAAS,MAAO,IAAO,IAAML,EAAmBA,EAGvGP,EAAQc,aAAc,QAAST,EAAaU,OAC7C,CACD,CAQCC,CAAoBrB,EAAEsB,OACvB,E,y3DC9BM,IAAMC,EAAoB,kBACpBC,EAAqB,oBAE5BC,EAA2B,sBAC3BC,EAAmB,cAEnBC,EAAuB,CAAE,MAAO,MAAO,OAAQ,MAAO,QACtDC,EAA0B,IAKnBC,EAAY,WAgBxB,O,EARA,SAAAA,IAA6D,IAAAC,EAAAC,UAAAb,OAAA,QAAAc,IAAAD,UAAA,GAAAA,UAAA,GAAL,CAAC,EAACE,EAAAH,EAA3CI,UAAAA,OAAS,IAAAD,EAAG,EAACA,EAAAE,EAAAL,EAAEM,cAAAA,OAAa,IAAAD,GAAQA,G,4FAAAE,CAAA,KAAAR,GAClDS,KAAKJ,UAAYK,SAAUL,EAAW,IACtCI,KAAKJ,UAAYM,MAAOF,KAAKJ,WAAc,EAAII,KAAKJ,UACpDI,KAAKF,cAAgBA,EAErBE,KAAKG,oBACN,E,EAEA,EAAAC,IAAA,qBAAAC,MAGA,WAAqB,IAAAC,EAAA,KACpB9C,SAASC,iBAAkBwB,EAAmB,SAAEvB,GAAO,IAAAC,GAC/CC,EAAAA,EAAAA,GAAkC,QAAVD,EAAED,EAAEG,cAAM,IAAAF,OAAA,EAARA,EAAUG,WAI3CwC,EAAKC,gBAAiB7C,EACvB,EACD,GAEA,CAAA0C,IAAA,kBAAAC,MAMA,SAAiBG,GAAY,IAAAC,EAAAC,EAAAC,EACtB5C,EAAUyC,EAAUxB,OACtB4B,EAA8B,QAAnBH,EAAGD,EAAU3C,cAAM,IAAA4C,OAAA,EAAhBA,EAAkBI,MAIpC,GAHgB,SAAU9C,aAAO,EAAPA,EAAS+C,WAGfF,IAIoB,QAAnBF,EAAGF,EAAU3C,cAAM,IAAA6C,OAAA,EAAhBA,EAAkBK,WAQnCf,KAAKgB,6BAA8BjD,GAK1C,GAAKiC,KAAKiB,4BAA6BlD,EAAS6C,GAC1CZ,KAAKkB,8BAA+BnD,IAExCyC,EAAUW,qBAHZ,CAQA,IAAMC,EAAcpB,KAAKqB,aAActD,EAASmB,EAAoB,CACnE0B,YAAAA,IAGD,GAAKQ,EAAYE,iBAEXtB,KAAKkB,8BAA+BnD,IAExCyC,EAAUW,qBAJZ,CASAP,GAAgC,QAAlBD,EAAAS,EAAYvD,cAAM,IAAA8C,OAAA,EAAlBA,EAAoBC,cAAeA,EAGjD,IAAMW,EAAMvB,KAAKwB,WAAYzD,GACxBiC,KAAKyB,eAAgBF,KACzBvB,KAAK0B,mBAAoB3D,EAAS6C,GAE7BZ,KAAK2B,iBAAkB5D,IAC3BiC,KAAK4B,qBAAsB7D,EAAQ8D,WAAWC,iBAAkB,UAAYlB,GAV9E,CAbA,CA0BD,GAEA,CAAAR,IAAA,mBAAAC,MAUA,SAAkB0B,EAAcnB,GAC/B,IAAMoB,EAAUD,EAAaF,WAC7B,GAAKG,GAAWhC,KAAKiC,gBAAiBD,GAAY,CACjD,IAAME,EAAeF,EAAQG,YACvBC,EAAaL,EAAaI,YAGhC,GAFmCvB,IAAgBsB,GAAgBA,IAAiBE,EAInF,OAAO,CAET,CAEA,OAAO,CACR,GAAC,CAAAhC,IAAA,kBAAAC,MAED,SAAiBgC,GAChB,IAAOA,GAAsB,IAAhBA,EAAGC,SACf,OAAO,EAER,IAAMC,EAAUC,OAAOC,iBAAkBJ,GAAKE,QAC9C,MAAmB,WAAZA,GAAoC,iBAAZA,CAChC,GAAC,CAAAnC,IAAA,mBAAAC,MAED,SAAkB0B,GAAe,IAAAW,EAChC,OAAOX,GAAgB,aAAcA,SAAwB,QAAZW,EAAZX,EAAcF,kBAAU,IAAAa,OAAA,EAAxBA,EAA0B5B,SAChE,GAAC,CAAAV,IAAA,uBAAAC,MAED,SAAsBsC,EAAgB/B,GAAc,IAAAgC,EAAA,KAC5CD,GAAoBA,SAAAA,EAAgB/D,QAI3C+D,EAAeE,QAAS,SAAEC,GAAa,OAAMF,EAAKG,oBAAqBD,EAAelC,EAAa,EACpG,GAAC,CAAAR,IAAA,sBAAAC,MAED,SAAqByC,EAAelC,GACnC,IAAMoC,EAASF,EAAc7E,aAAcmB,GAC3C,GAAO4D,EAAP,CAIA,IAAMC,EAAgBjD,KAAKkD,YAAaF,GACxC,GAAOC,GAAmBA,EAAcrE,OAAxC,CAIA,IAAMuE,EAAgBnD,KAAKoD,0BAA2BH,EAAerC,GAC9DZ,KAAKyB,eAAgB0B,IAI5BnD,KAAKqD,sBAAuBP,EAAeE,EAAQG,EAAevC,EAAaqC,EAP/E,CALA,CAaD,GAAC,CAAA7C,IAAA,4BAAAC,MAED,SAA2B4C,EAAerC,GACzC,IAAM0C,EAAgBL,EAAe,GAErC,OAAK3D,IAA4BgE,EAAcC,KACvC,MAILvD,KAAKwD,YAAaF,EAAc/B,MAClC+B,EAAcjD,OAASO,EAEhB0C,EAAc/B,IAGf,IACR,GAAC,CAAAnB,IAAA,+BAAAC,MAED,SAA8BtC,GAC7B,IAAM0F,EAAqBzD,KAAK0D,qBAAsB3F,GAChD4F,EAAW3D,KAAKwB,WAAYzD,GAC5B6F,EAAc5D,KAAK6D,cAAe9F,GAKxC,OAAO+F,QAASL,GAAsBE,GAAYC,EACnD,GAAC,CAAAxD,IAAA,8BAAAC,MAED,SAA6BtC,EAAS6C,GAIrC,GAAoB,SAHDZ,KAAK+D,gBAAiBhG,GAIxC,OAAOiC,KAAKgE,sBAGb,IAAMC,EAAgBjE,KAAK0D,qBAAsB3F,GAC3CmG,EAAoBlE,KAAKmE,qBAAsBF,GACrD,UAAKC,GAAqBtD,EAAcsD,IAAuBlE,KAAK2B,iBAAkB5D,MAI7EiC,KAAKoE,iBAAkBrG,EAAS6C,EAC1C,GAAC,CAAAR,IAAA,eAAAC,MAED,SAAcgE,EAAMC,GAAuD,IACpEC,EAAQ,IAAIC,YAAaF,EAAM,CACpCzG,OAF8B4B,UAAAb,OAAA,QAAAc,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAGlCgF,UAH4ChF,UAAAb,OAAA,QAAAc,IAAAD,UAAA,KAAAA,UAAA,GAI5CiF,aAJ+DjF,UAAAb,OAAA,QAAAc,IAAAD,UAAA,KAAAA,UAAA,KAQhE,OADA4E,EAAKM,cAAeJ,GACbA,CACR,GAEA,CAAAnE,IAAA,sBAAAC,MAKA,WACC,OAAOL,KAAKF,aACb,GAEA,CAAAM,IAAA,qBAAAC,MAMA,SAAoBtC,EAAS6C,GAC5B,IAAMoC,EAAShD,KAAK6D,cAAe9F,GAC7BwD,EAAMvB,KAAKwB,WAAYzD,GAG7B,GAAOiF,GAAYzB,EAAnB,CAKA,IAAM0B,EAAgBjD,KAAKkD,YAAaF,GAGlC4B,EAAe5E,KAAK6E,yBAA0BtD,EAAK0B,EAAerC,GAExEZ,KAAKqD,sBAAuBtF,EAASiF,EAAQ4B,EAAchE,EAAaqC,EARxE,CASD,GAAC,CAAA7C,IAAA,wBAAAC,MAED,SAAuBtC,EAASiF,EAAQ4B,EAAchE,EAAakE,GAElE,IAAIC,EAAY/E,KAAKgF,4BAA6BhC,EAAQ4B,EAAchE,EAAakE,GAGrFC,EAAY/E,KAAKiF,4BAA6BF,EAAWH,EAAchE,EAAakE,GAGpF9E,KAAKkF,oBAAqBnH,EAASiF,EAAQ+B,EAC5C,GAAC,CAAA3E,IAAA,2BAAAC,MAED,SAA0BkB,EAAK0B,EAAerC,GAC7C,IAAOZ,KAAKwD,YAAajC,GACxB,OAAOA,EAIR,IAAM4D,EAAelC,EAAcmC,KAAM,SAAEC,GAC1C,OAAOA,EAAOhF,OAASO,CACxB,GAEA,OAAOuE,EAAeA,EAAa5D,IAAMA,CAC1C,GAAC,CAAAnB,IAAA,cAAAC,MAED,SAAakB,GAIZ,OAFc,IAAI9C,OAAO,mBAADF,OAAsBc,EAAqBiG,KAAM,KAAK,gBAAiB,KAElF5G,KAAM6C,EACpB,GAEA,CAAAnB,IAAA,8BAAAC,MASA,SAA6B2C,EAAQzB,EAAKX,EAAakE,GAEtD,OAAO9E,KAAKuF,kBAAmBT,EAASlE,GAKjCoC,EAHCA,EAAS,KADMhD,KAAKwF,iBAAkBjE,EAAKX,GACX,IAAMA,EAActB,CAI7D,GAEA,CAAAc,IAAA,8BAAAC,MASA,SAA6B2C,EAAQzB,EAAKX,EAAakE,GACtD,IAAMW,EAAQzF,KAAK0F,gBACnB,GAAKD,GAAS,EACb,OAAOzC,EAGR,IAAM2C,EAAcC,KAAKC,KAAMjF,EAAc6E,GAI7C,OAHwBzF,KAAKuF,kBAAmBT,EAASW,EA5TzB,MA6T1BzF,KAAKuF,kBAAmBT,EAASa,EAAarG,GAG5C0D,EAODA,EAAS,KAHKhD,KAAKwF,iBAAkBjE,EAAKoE,GACJ,IAAMA,EAAcrG,CAGlE,GAEA,CAAAc,IAAA,sBAAAC,MAOA,SAAqBtC,EAAS+H,EAAgBf,GACxCA,IAAce,GAClB/H,EAAQc,aAAc,cAAekG,EAEvC,GAEA,CAAA3E,IAAA,gBAAAC,MAKA,WACC,OAAOmC,OAAOuD,kBAAoB,CACnC,GAEA,CAAA3F,IAAA,oBAAAC,MASA,SAAmByE,EAASlE,GAA0E,IAAAoF,EAAA,KAA7DzC,EAAI9D,UAAAb,OAAA,QAAAc,IAAAD,UAAA,GAAAA,UAAA,GAAGH,EAAyBM,EAASH,UAAAb,OAAA,QAAAc,IAAAD,UAAA,GAAAA,UAAA,GAAGO,KAAKJ,UACzF,OAAOkF,EAAQM,KAAM,SAAEC,GACtB,OAAO9B,IAAS8B,EAAO9B,MAAQ8B,EAAOhF,OAASO,GAC/CoF,EAAKC,aAAcZ,EAAOhF,MAAOO,EAAahB,EAC/C,EACD,GAEA,CAAAQ,IAAA,mBAAAC,MAOA,SAAkBkB,EAAKX,GACtB,IAAMsF,EAAMlG,KAAKmG,SAAU5E,GAC3B,GAAO2E,EAAP,CAIA,IAAME,EAAe,IAAIC,gBAAiBH,EAAII,QAC9CF,EAAaG,IAAK,OAAQ,GAAFhI,OAAMqC,EAAW,OAEzC,IAAM4F,EAAUN,EAAIO,OAASP,EAAIQ,SAEjC,MAAO,GAAPnI,OAAWiI,EAAO,KAAAjI,OAAM6H,EAAaO,WAPrC,CAQD,GAEA,CAAAvG,IAAA,WAAAC,MAMA,SAAUkB,GACT,IACC,OAAO,IAAIqF,IAAKrF,EACjB,CAAE,MAAQsF,GACT,OAAO,IACR,CACD,GAEA,CAAAzG,IAAA,cAAAC,MAMA,SAAa2C,GACZ,IAAM8B,EAAU9E,KAAK8G,yBAA0B9D,GAC/C,OAAOhD,KAAK+G,YAAajC,EAC1B,GAAC,CAAA1E,IAAA,2BAAAC,MAED,SAA0B2C,GACzB,OAAOA,EAAOgE,MAAO,KAAMC,IAAK,SAAEC,GACjC,IAAsDC,EAAAC,EAA1BF,EAAKpI,OAAOkI,MAAO,OAAO,GAA9CzF,EAAG4F,EAAA,GAAEE,EAAUF,EAAA,GACnB9G,EAAQ,EACRkD,EAAO,GAYX,OAVK8D,IACCA,EAAWC,SAAUhI,IACzBe,EAAQJ,SAAUoH,EAAY,IAC9B9D,EAAOjE,GACI+H,EAAWC,SAxaO,OAya7BjH,EAAQkH,WAAYF,GACpB9D,EA1a6B,MA8axB,CACNiE,OAAQN,EACR3F,IAAAA,EACAlB,MAAAA,EACAkD,KAAAA,EAEF,EACD,GAAC,CAAAnD,IAAA,cAAAC,MAED,SAAayE,GAOZ,OANAA,EAAQ2C,KAAM,SAAEC,EAAGC,GAClB,OAAKD,EAAErH,QAAUsH,EAAEtH,MACX,EAEDqH,EAAErH,MAAQsH,EAAEtH,OAAS,EAAI,CACjC,GACOyE,CACR,GAEA,CAAA1E,IAAA,gCAAAC,MAMA,SAA+BtC,GAC9B,IAAMkG,EAAgBjE,KAAK0D,qBAAsB3F,GACjD,QAAKkG,IACJlG,EAAQc,aAAc,QAASoF,GAC/BlG,EAAQ6J,gBAAiBzI,IAElB,EAIT,GAEA,CAAAiB,IAAA,kBAAAC,MAMA,SAAiBtC,GAAU,IAAA8J,EAKpBC,EAA2B,QAAhBD,EAAG9J,EAAQgK,aAAK,IAAAF,OAAA,EAAbA,EAAehH,MACnC,GAAKiH,GAAe,SAAWA,EAAYhJ,OAC1C,MAAO,OAGR,IAAMkJ,EAAWxF,OAAOC,iBAAkB1E,GAAU8C,MAC9CA,EAAQZ,SAAU+H,EAAU,IAElC,OAAO9H,MAAOW,GAAUmH,EAAWnH,CACpC,GAEA,CAAAT,IAAA,uBAAAC,MAMA,SAAsB4D,GACrB,IACMgE,EAAQhE,EAAcgE,MADd,4CAGd,OAAOA,EAAQhI,SAAUgI,EAAO,GAAK,IAAO,CAC7C,GAEA,CAAA7H,IAAA,uBAAAC,MAMA,SAAsBtC,GACrB,OAAOA,EAAQE,aAAckB,EAC9B,GAEA,CAAAiB,IAAA,gBAAAC,MAMA,SAAetC,GACd,OAAOA,EAAQE,aAAcmB,EAC9B,GAEA,CAAAgB,IAAA,aAAAC,MAMA,SAAYtC,GACX,OAAOA,EAAQE,aAphBK,WAqhBrB,GAEA,CAAAmC,IAAA,iBAAAC,MAMA,SAAgBkB,GACf,OAAOA,GAAOA,EAAI2G,SAjiBK,eAkiBxB,GAEA,CAAA9H,IAAA,eAAAC,MAQA,SAAc8H,EAASC,GAAyB,IAAhBxI,EAASH,UAAAb,OAAA,QAAAc,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC3C,OAAOmG,KAAKyC,IAAKF,EAAUC,IAAaxI,CACzC,I,4FAAC,CApiBuB,IAsiBzB,SAAE0I,EAAAC,GAGD,GADyD,QAA9BD,EAAG9F,OAAOgG,4BAAoB,IAAAF,OAAA,EAA3BA,EAA6BG,oBAC3D,CAIA,IAAIC,GAA+C,QAA3BH,EAAA/F,OAAOgG,4BAAoB,IAAAD,OAAA,EAA3BA,EAA6BG,oBAAqB,CAAC,EAC3EA,EAAoBC,OAAOC,OAC1B,CACChJ,UAAW,EACXE,eAAe,GAEhB4I,GAED,IAAInJ,EAAcmJ,EAVlB,CAWA,CAhBD,E,+CCljBEG,EAIKC,EAIAC,EACAC,EAMAC,E,gtBAXAH,EAAoB,yBAIpBC,EAAyB,iBAAkBvG,OAAS,aAAe,cACnEwG,GAAoC,QAANH,EAAArG,cAAM,IAAAqG,OAAA,EAANA,EAAQK,2BAA4B,EAMlED,EAAa,WASlB,O,EARA,SAAAA,K,4FAAclJ,CAAA,KAAAkJ,GACbjJ,KAAKmJ,mCAAqCnJ,KAAKoJ,+BAC/CpJ,KAAKqJ,oBAAsB,GAC3BrJ,KAAKsJ,iBAAmB,KAExBtJ,KAAKuJ,MACN,E,EAEA,EAAAnJ,IAAA,OAAAC,MAGA,WAAO,IAAAC,EAAA,KACN9C,SAASC,iBAAkB,mBAAoB,SAAEC,GAAC,OAAM4C,EAAKkJ,oBAAqB9L,EAAG,GACrFF,SAASC,iBACRsL,EACA,kBAAMzI,EAAKmJ,+BAA+B,EAC1C,CAAEC,MAAM,EAAMC,SAAS,IAYxBnM,SAASC,iBAAkB,mBARyB,YAC5CuL,GAA+BA,EAA8B,GAIpEY,WAAY,kBAAMtJ,EAAKmJ,+BAA+B,EAAET,EACzD,EAGD,GAEA,CAAA5I,IAAA,sBAAAC,MAKA,SAAqB3C,GAAI,IAAAC,EAClBkM,EAAenM,EAAEsB,QAGpBpB,EAAAA,EAAAA,GAA0BF,SAAS,QAARC,EAADD,EAAGG,cAAM,IAAAF,OAAA,EAATA,EAAWG,WACrC+L,EAAaC,UAAUC,SAtDA,0BA2D1B/J,KAAKgK,iBAAkBH,GACvB7J,KAAKiK,yBAA0BJ,GAChC,GAEA,CAAAzJ,IAAA,mBAAAC,MAKA,SAAkBwJ,GAAe,IAAAjH,EAAA,KAC1BsH,EAAaL,EAAaM,cAAc,IAAD5L,OAlErB,mBAoExB,GAAK2L,EAAa,CACjB,IAAME,EAAc,WAAH,OAASxH,EAAKyH,4BAA6BR,EAAc,EAC1EK,EAAWzM,iBAAkB,QAAS2M,GACtCF,EAAWzM,iBAAkB,UAAW,SAAEC,GAC1B,UAAVA,EAAE0C,KAA6B,MAAV1C,EAAE0C,MAC3B1C,EAAEyD,iBACFiJ,IAEF,EACD,KAAO,KAAAE,EACNtK,KAAKuK,gBAAiBV,GACR,QAAdS,EAAA9H,OAAOgI,eAAO,IAAAF,GAAdA,EAAgBG,QAAS,2DAA4DZ,EACtF,CACD,GAEA,CAAAzJ,IAAA,2BAAAC,MAKA,SAA0BwJ,GACzB,IAAMa,EAAiBb,EAAaC,UAAUC,SA1FxB,2BA4FjB/J,KAAK2K,6BACT3K,KAAK4K,oCAAqCf,EAAca,GAC7CA,GACX1K,KAAKqK,4BAA6BR,EAEpC,GAEA,CAAAzJ,IAAA,gCAAAC,MAGA,WACQL,KAAKmJ,qCAIZnJ,KAAKmJ,oCAAqC,EAC1CnJ,KAAK6K,kCACN,GAEA,CAAAzK,IAAA,+BAAAC,MAKA,WACC,MAAO,yBAA0BmC,MAClC,GAEA,CAAApC,IAAA,kCAAAC,MAGA,WACML,KAAKqJ,oBAAoBzK,QAC7BoB,KAAK8K,4BAEP,GAEA,CAAA1K,IAAA,6BAAAC,MAGA,WAA6B,IAAA2F,EAAA,KACtB+E,EAAW,IAAIC,qBACpB,SAAEC,GACDA,EAAQpI,QAAS,SAAEqI,GAClB,GAAKA,EAAMC,eAAiB,CAC3B,IAAMtB,EAAeqB,EAAMlM,OAE3BgH,EAAKuE,gBAAiBV,GACtBkB,EAASK,UAAWvB,EACrB,CACD,EACD,EACA,CACCwB,WAAY,oBACZC,UAAW,KAIbtL,KAAKqJ,oBAAoBxG,QAAS,SAAEgH,GACnCkB,EAASQ,QAAS1B,EACnB,EACD,GAEA,CAAAzJ,IAAA,sCAAAC,MAMA,SAAqCwJ,EAAca,GAC7C1K,KAAKmJ,mCACTnJ,KAAKqJ,oBAAoBmC,KAAM3B,GAIhC7J,KAAKuK,gBAAiBV,EAAca,EACrC,GAEA,CAAAtK,IAAA,6BAAAC,MAKA,WAKC,OAJ+B,OAA1BL,KAAKsJ,mBACTtJ,KAAKsJ,iBAAmBtJ,KAAKyL,yBAGvBzL,KAAKsJ,gBACb,GAEA,CAAAlJ,IAAA,wBAAAC,MAKA,WACC,IAAMqL,EAAYC,UAAUD,UAC5B,OAAOA,EAAUxD,SAAU,SAAcwD,EAAUxD,SAAU,YAAgBwD,EAAUxD,SAAU,SAClG,GAEA,CAAA9H,IAAA,kBAAAC,MAMA,SAAiBwJ,GAAiC,IAAA+B,EAAnBC,EAAQpM,UAAAb,OAAA,QAAAc,IAAAD,UAAA,IAAAA,UAAA,GACtC,IAAKoK,EAAaC,UAAUC,SAAUjB,GAAtC,CAIAe,EAAaC,UAAUgC,IAAKhD,EAAmB,WAE/C,IAAMiD,EAASlC,EAAaM,cAAe,UAC3C,GAAO4B,EAAP,CAKA,IAAIC,EAAyB,QAAjBJ,EAAGG,EAAOE,eAAO,IAAAL,OAAA,EAAdA,EAAgBrK,IAC/B,GAAOyK,EAAP,CAKA,GAAKH,EAAW,CACf,IAAM3F,EAAM,IAAIU,IAAKoF,GACrB9F,EAAIE,aAAaG,IAAK,WAAY,KAClCL,EAAIE,aAAaG,IAAK,cAAe,KACrCyF,EAAW9F,EAAIS,UAChB,CAEA,IAAIuF,EAAiBH,EAAO9N,aAAc,UA/NjB,0EAgOlBiO,EAAehE,SAAU,cAC/BgE,GAAkB,cAGnBH,EAAOlN,aAAc,QAASqN,GAC9BH,EAAOlN,aAAc,kBAAmB,QACxCkN,EAAOlN,aAAc,MAAOmN,GAE5BnC,EAAaC,UAAUqC,OAAQ,UAlB/B,KAHA,CAAkB,IAAAC,EACH,QAAdA,EAAA5J,OAAOgI,eAAO,IAAA4B,GAAdA,EAAgBvF,MAAO,yCAA0CkF,EAElE,CANA,KAHA,CAAgB,IAAAM,EACD,QAAdA,EAAA7J,OAAOgI,eAAO,IAAA6B,GAAdA,EAAgBxF,MAAO,2CAA4CgD,EAEpE,CARA,CAiCD,GAEA,CAAAzJ,IAAA,8BAAAC,MAKA,SAA6BwJ,GAC5B7J,KAAKuK,gBAAiBV,GAAc,EACrC,I,4FAAC,CA1OiB,GA8OnB,IAAIZ,C,oBC/PJ,SAASzG,GACT,IAAI8J,EAWL,SAAW9J,EAAQhF,EAAU+O,GAC5B,aAGA,IAAIC,EAIHC,EAuCD,GArCA,WACC,IAAIC,EAEAC,EAAoB,CACvBC,UAAW,WACXC,YAAa,aACbC,aAAc,cACdC,aAAc,cACdC,WAAY,YAEZC,eAAgB,gBAChBC,gBAAiB,eACjBC,eAAgB,EAChBC,QAAS,WACTC,WAAY,cACZC,UAAW,aAEXC,QAAS,GACTC,YAAa,CAAC,EACdjE,MAAM,EACNkE,UAAW,IACXC,KAAM,GACNC,SAAU,EACVC,YAAY,EACZC,WAAY,EACZC,cAAe,KAKhB,IAAIpB,KAFJD,EAAejK,EAAOuL,iBAAmBvL,EAAOwL,iBAAmB,CAAC,EAExDrB,EACND,KAAQD,IACZA,EAAaC,GAAQC,EAAkBD,GAGzC,CAnCD,IAqCKlP,IAAaA,EAASyQ,uBAC1B,MAAO,CACN1E,KAAM,WAAa,EAInB2E,IAAKzB,EAIL0B,WAAW,GAIb,IAAIC,EAAU5Q,EAAS6Q,gBAEnBC,EAAiB9L,EAAO+L,mBAExBC,EAAoB,mBAEpBC,EAAgB,eAMhBhR,EAAmB+E,EAAOgM,GAAmBE,KAAKlM,GAElDoH,EAAapH,EAAOoH,WAEpB+E,EAAwBnM,EAAOmM,uBAAyB/E,EAExDgF,EAAsBpM,EAAOoM,oBAE7BC,EAAa,aAEbC,EAAa,CAAC,OAAQ,QAAS,eAAgB,eAE/CC,EAAgB,CAAC,EAEjBlM,EAAUmM,MAAMC,UAAUpM,QAM1BqM,EAAW,SAASC,EAAKC,GAI5B,OAHIL,EAAcK,KACjBL,EAAcK,GAAO,IAAI3Q,OAAO,UAAU2Q,EAAI,YAExCL,EAAcK,GAAK1Q,KAAKyQ,EAAIV,GAAe,UAAY,KAAOM,EAAcK,EACpF,EAMIC,EAAW,SAASF,EAAKC,GACvBF,EAASC,EAAKC,IAClBD,EAAItQ,aAAa,SAAUsQ,EAAIV,GAAe,UAAY,IAAI3P,OAAS,IAAMsQ,EAE/E,EAMIE,EAAc,SAASH,EAAKC,GAC/B,IAAIG,GACCA,EAAML,EAASC,EAAIC,KACvBD,EAAItQ,aAAa,SAAUsQ,EAAIV,GAAe,UAAY,IAAI9P,QAAQ4Q,EAAK,KAE7E,EAEIC,EAAsB,SAASC,EAAKC,EAAI5D,GAC3C,IAAI6D,EAAS7D,EAAM0C,EAAoB,sBACpC1C,GACF0D,EAAoBC,EAAKC,GAE1BZ,EAAWjM,QAAQ,SAAS+M,GAC3BH,EAAIE,GAAQC,EAAKF,EAClB,EACD,EAUIrO,EAAe,SAASgD,EAAMC,EAAMzG,EAAQgS,EAAWC,GAC1D,IAAIvL,EAAQ/G,EAASuS,YAAY,SAajC,OAXIlS,IACHA,EAAS,CAAC,GAGXA,EAAOC,SAAW0O,EAElBjI,EAAMyL,UAAU1L,GAAOuL,GAAYC,GAEnCvL,EAAM1G,OAASA,EAEfwG,EAAKM,cAAcJ,GACZA,CACR,EAEI0L,EAAiB,SAAU5N,EAAI6N,GAClC,IAAIC,GACC7B,IAAoB6B,EAAY3N,EAAO4N,aAAe3D,EAAa4D,KACpEH,GAAQA,EAAK3O,MAAQc,EAAGoM,GAAe,WACzCpM,EAAGxD,aAAa,SAAUqR,EAAK3O,KAEhC4O,EAAS,CAACG,YAAY,EAAMC,SAAU,CAAClO,MAC9B6N,GAAQA,EAAK3O,MACtBc,EAAGd,IAAM2O,EAAK3O,IAEhB,EAEIiP,EAAS,SAAUnM,EAAM0D,GAC5B,OAAQtF,iBAAiB4B,EAAM,OAAS,CAAC,GAAG0D,EAC7C,EASI0I,EAAW,SAASpM,EAAMqM,EAAQ7P,GAGrC,IAFAA,EAAQA,GAASwD,EAAKlC,YAEhBtB,EAAQ4L,EAAac,SAAWmD,IAAWrM,EAAKsM,iBACrD9P,EAAS6P,EAAOvO,YAChBuO,EAASA,EAAO7O,WAGjB,OAAOhB,CACR,EAEI+P,GAECC,GAAW,GACXC,GAAY,GACZC,GAAMF,GAENG,GAAM,WACT,IAAIC,EAASF,GAOb,IALAA,GAAMF,GAASjS,OAASkS,GAAYD,GAEpCK,IAAU,EACVC,IAAU,EAEJF,EAAOrS,QACZqS,EAAOG,OAAPH,GAGDC,IAAU,CACX,EAEIG,GAAW,SAAS3B,EAAI4B,GACxBJ,KAAYI,EACd5B,EAAG6B,MAAMvR,KAAMP,YAEfsR,GAAIvF,KAAKkE,GAELyB,KACHA,IAAU,GACT3T,EAASgU,OAAS5H,EAAa+E,GAAuBqC,KAG1D,EAEAK,GAASI,SAAWT,GAEbK,IAGJK,EAAQ,SAAShC,EAAIiC,GACxB,OAAOA,EACN,WACCf,EAAIlB,EACL,EACA,WACC,IAAIkC,EAAO5R,KACP6R,EAAOpS,UACXmR,EAAI,WACHlB,EAAG6B,MAAMK,EAAMC,EAChB,EACD,CAEF,EAEIC,EAAW,SAASpC,GACvB,IAAIwB,EACAa,EAAW,EACXC,EAASvF,EAAaqB,cACtBmE,EAAaxF,EAAaoB,WAC1BmD,EAAM,WACTE,GAAU,EACVa,EAAWxF,EAAK2F,MAChBxC,GACD,EACIyC,EAAevD,GAAuBqD,EAAa,GACtD,WACCrD,EAAoBoC,EAAK,CAACoB,QAASH,IAEhCA,IAAexF,EAAaoB,aAC9BoE,EAAaxF,EAAaoB,WAE5B,EACA6D,EAAM,WACL9H,EAAWoH,EACZ,GAAG,GAGJ,OAAO,SAASqB,GACf,IAAIC,GAEAD,GAA4B,IAAfA,KAChBJ,EAAa,IAGXf,IAIHA,GAAW,GAEXoB,EAAQN,GAAUzF,EAAK2F,MAAQH,IAEpB,IACVO,EAAQ,GAGND,GAAcC,EAAQ,EACxBH,IAEAvI,EAAWuI,EAAcG,GAE3B,CACD,EAGIC,EAAW,SAASC,GACvB,IAAIJ,EAASK,EACTC,EAAO,GACP1B,EAAM,WACToB,EAAU,KACVI,GACD,EACIG,EAAQ,WACX,IAAIC,EAAOrG,EAAK2F,MAAQO,EAEpBG,EAAOF,EACV9I,EAAW+I,EAAOD,EAAOE,IAExBhE,GAAuBoC,GAAKA,EAE/B,EAEA,OAAO,WACNyB,EAAYlG,EAAK2F,MAEZE,IACJA,EAAUxI,EAAW+I,EAAOD,GAE9B,CACD,EAEIG,GAKCC,EAAS,SACTC,EAAY,YAEZC,EAAiB,aAAcxQ,IAAa,eAAe9D,KAAKiN,UAAUD,WAE1EuH,EAAe,EACfC,EAAgB,EAEhBC,EAAY,EACZC,IAAW,EAEXC,GAAkB,SAAS3V,GAC9ByV,MACIzV,GAAKyV,EAAY,IAAMzV,EAAEsB,UAC5BmU,EAAY,EAEd,EAEIG,GAAY,SAAUjP,GAKzB,OAJoB,MAAhBkP,IACHA,EAAsD,UAAvC/C,EAAOhT,EAASgW,KAAM,eAG/BD,KAA2D,UAAzC/C,EAAOnM,EAAKxC,WAAY,eAA2D,UAA9B2O,EAAOnM,EAAM,cAC5F,EAEIoP,GAAkB,SAASpP,EAAMqP,GACpC,IAAIC,EACAjD,EAASrM,EACTuP,EAAUN,GAAUjP,GAOxB,IALAwP,GAASH,EACTI,GAAYJ,EACZK,GAAUL,EACVM,GAAWN,EAELE,IAAYlD,EAASA,EAAOuD,eAAiBvD,GAAUlT,EAASgW,MAAQ9C,GAAUtC,IACvFwF,GAAYpD,EAAOE,EAAQ,YAAc,GAAK,IAEF,WAA9BF,EAAOE,EAAQ,cAC5BiD,EAAYjD,EAAOwD,wBACnBN,EAAUI,EAAUL,EAAUQ,MAC7BJ,EAASJ,EAAUS,OACnBN,EAAWH,EAAUU,IAAM,GAC3BR,EAAQF,EAAUW,OAAS,GAK9B,OAAOV,CACR,EAEIW,GAAgB,WACnB,IAAIC,EAAOC,EAAGC,EAAMC,EAAcC,EAAiBlB,EAAYmB,EAAoBC,EAClFC,EAAiBC,EAAeC,EAAevH,EAC5CwH,EAAgB1I,EAAU+D,SAE9B,IAAI5C,EAAWlB,EAAakB,WAAawF,EAAY,IAAMqB,EAAQU,EAActW,QAAQ,CAMxF,IAJA6V,EAAI,EAEJrB,KAEMqB,EAAID,EAAOC,IAEhB,GAAIS,EAAcT,KAAMS,EAAcT,GAAGU,UAEzC,IAAInC,GAAkBxG,EAAU4I,iBAAmB5I,EAAU4I,gBAAgBF,EAAcT,IAAMY,GAAcH,EAAcT,SAoC7H,IAlCKK,EAAgBI,EAAcT,GAAGhG,GAAe,kBAAqBiF,EAA6B,EAAhBoB,KACtFpB,EAAaR,GAGT8B,IACJA,GAAkBvI,EAAa6I,QAAU7I,EAAa6I,OAAS,EAC9DlH,EAAQmH,aAAe,KAAOnH,EAAQoH,YAAc,IAAM,IAAM,IAChE/I,EAAa6I,OAEd9I,EAAUiJ,OAAST,EAEnBC,EAAgBD,EAAgBvI,EAAagB,UAC7CC,EAAOjB,EAAaiB,KACpB6F,EAAe,KAEZL,EAAgB+B,GAAiB9B,EAAY,GAAKC,GAAU,GAAKzF,EAAW,IAAMnQ,EAASgU,QAC7F0B,EAAgB+B,EAChB7B,GAAU,GAEVF,EADSvF,EAAW,GAAKyF,GAAU,GAAKD,EAAY,EACpC6B,EAEA/B,GAIf8B,IAAoBrB,IACtBgC,EAAOC,WAAcjC,EAAahG,EAClCkI,EAAOC,YAAcnC,EACrBmB,GAAmC,EAAdnB,EACrBqB,EAAkBrB,GAGnBgB,EAAOQ,EAAcT,GAAGP,yBAEnBJ,EAAWY,EAAKJ,SAAWO,IAC9BhB,EAAQa,EAAKL,MAAQuB,IACrB5B,EAAUU,EAAKN,QAAUS,EAAqBnH,IAC9CqG,EAASW,EAAKP,OAASuB,IACvB5B,GAAYE,GAAWD,GAAUF,KACjCpH,EAAamB,YAAc0F,GAAU4B,EAAcT,OAClDqB,GAAe3C,EAAY,IAAM2B,IAAkBnH,EAAW,GAAKyF,GAAU,IAAOK,GAAgByB,EAAcT,GAAIf,KAGxH,GAFA2B,GAAcH,EAAcT,IAC5BG,GAAkB,EACfzB,EAAY,EAAG,WACRyB,GAAmBkB,IAAgBnB,GAC7CxB,EAAY,GAAKC,GAAU,GAAKzF,EAAW,IAC1CoI,EAAa,IAAMtJ,EAAauJ,oBAChCD,EAAa,KAAQjB,IAAmBhB,GAAYE,GAAWD,GAAUF,GAAqE,QAA3DqB,EAAcT,GAAGhG,GAAehC,EAAaa,eACjIqH,EAAeoB,EAAa,IAAMb,EAAcT,IAI/CE,IAAiBC,GACnBS,GAAcV,EAEhB,CACD,EAEIsB,GAAyBnE,EAASyC,IAElC2B,GAAqB,SAASxY,GACjC,IAAI2G,EAAO3G,EAAEsB,OAETqF,EAAK8R,kBACD9R,EAAK8R,YAIb9C,GAAgB3V,GAChB2R,EAAShL,EAAMoI,EAAaI,aAC5ByC,EAAYjL,EAAMoI,EAAaK,cAC/B0C,EAAoBnL,EAAM+R,IAC1B/U,EAAagD,EAAM,cACpB,EACIgS,GAA0B3E,EAAMwE,IAChCE,GAAwB,SAAS1Y,GACpC2Y,GAAwB,CAACrX,OAAQtB,EAAEsB,QACpC,EAEIsX,GAAkB,SAASjS,EAAM9C,GACpC,IAAIoM,EAAWtJ,EAAKpG,aAAa,mBAAqBwO,EAAaU,eAGnD,GAAZQ,EACHtJ,EAAKkS,cAAcC,SAAS7X,QAAQ4C,GACd,GAAZoM,IACVtJ,EAAK9C,IAAMA,EAEb,EAEIkV,GAAgB,SAASpR,GAC5B,IAAImI,EAEAkJ,EAAerR,EAAOoJ,GAAehC,EAAaY,aAEjDG,EAAcf,EAAae,YAAYnI,EAAOoJ,GAAe,eAAiBpJ,EAAOoJ,GAAe,YACxGpJ,EAAOxG,aAAa,QAAS2O,GAG3BkJ,GACFrR,EAAOxG,aAAa,SAAU6X,EAEhC,EAEIC,GAAajF,EAAM,SAAUrN,EAAMxG,EAAQ+Y,EAAQC,EAAOC,GAC7D,IAAIvV,EAAKyB,EAAQ0N,EAAQqG,EAAWxS,EAAOyS,GAEtCzS,EAAQlD,EAAagD,EAAM,mBAAoBxG,IAASyD,mBAEzDuV,IACCD,EACFvH,EAAShL,EAAMoI,EAAaQ,gBAE5B5I,EAAKxF,aAAa,QAASgY,IAI7B7T,EAASqB,EAAKoK,GAAehC,EAAaY,YAC1C9L,EAAM8C,EAAKoK,GAAehC,EAAaW,SAEpC0J,IAEFC,GADArG,EAASrM,EAAKxC,aACQgN,EAAWnQ,KAAKgS,EAAO5P,UAAY,KAG1DkW,EAAYnZ,EAAOmZ,WAAe,QAAS3S,IAAUrB,GAAUzB,GAAOwV,GAEtExS,EAAQ,CAACvF,OAAQqF,GAEjBgL,EAAShL,EAAMoI,EAAaK,cAEzBkK,IACFC,aAAaC,GACbA,EAAuBtN,EAAWyJ,GAAiB,MACnD7D,EAAoBnL,EAAM+R,IAAuB,IAG/CW,GACFlU,EAAQsU,KAAKzG,EAAO0G,qBAAqB,UAAWX,IAGlDzT,EACFqB,EAAKxF,aAAa,SAAUmE,GACnBzB,IAAQwV,IACdhE,EAAUrU,KAAK2F,EAAKvD,UACtBwV,GAAgBjS,EAAM9C,GAEtB8C,EAAK9C,IAAMA,GAIVuV,IAAU9T,GAAU+T,IACtB9G,EAAe5L,EAAM,CAAC9C,IAAKA,KAI1B8C,EAAK8Q,kBACA9Q,EAAK8Q,UAEb7F,EAAYjL,EAAMoI,EAAaG,WAE/BgE,EAAI,WAEH,IAAIyG,EAAWhT,EAAKiT,UAAYjT,EAAKkT,aAAe,EAE/CP,IAAaK,IACbA,GACHhI,EAAShL,EAAMoI,EAAaS,iBAE7BgJ,GAAmB3R,GACnBF,EAAK8R,YAAa,EAClBvM,EAAW,WACN,eAAgBvF,UACZA,EAAK8R,UAEd,EAAG,IAEgB,QAAhB9R,EAAKmT,SACRrE,GAEF,GAAG,EACJ,GAMIkC,GAAgB,SAAUhR,GAC7B,IAAIA,EAAK8Q,UAAT,CACA,IAAItX,EAEAiZ,EAAQhE,EAAOpU,KAAK2F,EAAKvD,UAGzB+V,EAAQC,IAAUzS,EAAKoK,GAAehC,EAAaa,YAAcjJ,EAAKoK,GAAe,UACrFmI,EAAkB,QAATC,IAERD,GAAWd,IAAgBgB,IAAUzS,EAAKoK,GAAe,SAAUpK,EAAKrB,QAAYqB,EAAKiT,UAAapI,EAAS7K,EAAMoI,EAAaO,cAAekC,EAAS7K,EAAMoI,EAAaG,cAElL/O,EAASwD,EAAagD,EAAM,kBAAkBxG,OAE3C+Y,GACDa,EAAUC,WAAWrT,GAAM,EAAMA,EAAKlC,aAGxCkC,EAAK8Q,WAAY,EACjBhC,IAEAwD,GAAWtS,EAAMxG,EAAQ+Y,EAAQC,EAAOC,GApBZ,CAqB7B,EAEIa,GAAcpF,EAAS,WAC1B9F,EAAakB,SAAW,EACxBsI,IACD,GAEI2B,GAA2B,WACF,GAAzBnL,EAAakB,WACflB,EAAakB,SAAW,GAEzBgK,IACD,EAEIE,GAAS,WACT/B,IACAvJ,EAAK2F,MAAQ4F,EAAU,IACzBlO,EAAWiO,GAAQ,MAKpB/B,GAAc,EAEdrJ,EAAakB,SAAW,EAExBsI,KAEAxY,EAAiB,SAAUma,IAA0B,IACtD,EAEO,CACNG,EAAG,WACFD,EAAUvL,EAAK2F,MAEf1F,EAAU+D,SAAW/S,EAASyQ,uBAAuBxB,EAAaG,WAClEmJ,EAAevY,EAASyQ,uBAAuBxB,EAAaG,UAAY,IAAMH,EAAaM,cAE3FtP,EAAiB,SAAUwY,IAAwB,GAEnDxY,EAAiB,SAAUwY,IAAwB,GAEnDxY,EAAiB,WAAY,SAAUC,GACtC,GAAIA,EAAEsa,UAAW,CAChB,IAAIC,EAAkBza,EAASsE,iBAAiB,IAAM2K,EAAaK,cAE/DmL,EAAgBrZ,QAAUqZ,EAAgBpV,SAC7C8L,EAAsB,WACrBsJ,EAAgBpV,QAAS,SAAUqV,GAC9BA,EAAIZ,UACPjC,GAAc6C,EAEhB,EACD,EAEF,CACD,GAEG1V,EAAO2V,iBACT,IAAIA,iBAAkBlC,IAAyB1K,QAAS6C,EAAS,CAACgK,WAAW,EAAMC,SAAS,EAAMC,YAAY,KAE9GlK,EAAQI,GAAmB,kBAAmByH,IAAwB,GACtE7H,EAAQI,GAAmB,kBAAmByH,IAAwB,GACtEsC,YAAYtC,GAAwB,MAGrCxY,EAAiB,aAAcwY,IAAwB,GAGvD,CAAC,QAAS,YAAa,QAAS,OAAQ,gBAAiB,gBAAgBpT,QAAQ,SAASyB,GACzF9G,EAASgR,GAAmBlK,EAAM2R,IAAwB,EAC3D,GAEI,QAAQvX,KAAKlB,EAASgb,YACzBX,MAEApa,EAAiB,OAAQoa,IACzBra,EAASgR,GAAmB,mBAAoByH,IAChDrM,EAAWiO,GAAQ,MAGjBrL,EAAU+D,SAAS3R,QACrB2V,KACA3D,EAAIa,YAEJwE,IAEF,EACAwC,WAAYxC,GACZyC,OAAQrD,GACRsD,MAAOf,KAKLH,GAGCmB,EAAclH,EAAM,SAASrN,EAAMqM,EAAQnM,EAAO1D,GACrD,IAAIiE,EAAS2P,EAAGoE,EAMhB,GALAxU,EAAKsM,gBAAkB9P,EACvBA,GAAS,KAETwD,EAAKxF,aAAa,QAASgC,GAExBgO,EAAWnQ,KAAKgS,EAAO5P,UAAY,IAErC,IAAI2T,EAAI,EAAGoE,GADX/T,EAAU4L,EAAO0G,qBAAqB,WACbxY,OAAQ6V,EAAIoE,EAAKpE,IACzC3P,EAAQ2P,GAAG5V,aAAa,QAASgC,GAI/B0D,EAAM1G,OAAOkD,UAChBkP,EAAe5L,EAAME,EAAM1G,OAE7B,GAOIib,EAAiB,SAAUzU,EAAMtD,EAAUF,GAC9C,IAAI0D,EACAmM,EAASrM,EAAKxC,WAEf6O,IACF7P,EAAQ4P,EAASpM,EAAMqM,EAAQ7P,IAC/B0D,EAAQlD,EAAagD,EAAM,kBAAmB,CAACxD,MAAOA,EAAOE,WAAYA,KAE/DO,mBACTT,EAAQ0D,EAAM1G,OAAOgD,QAETA,IAAUwD,EAAKsM,iBAC1BiI,EAAYvU,EAAMqM,EAAQnM,EAAO1D,GAIrC,EAcIkY,EAA+BxG,EAZT,WACzB,IAAIkC,EACAoE,EAAMG,EAAepa,OACzB,GAAGia,EAGF,IAFApE,EAAI,EAEEA,EAAIoE,EAAKpE,IACdqE,EAAeE,EAAevE,GAGjC,GAIO,CACNsD,EAAG,WACFiB,EAAiBxb,EAASyQ,uBAAuBxB,EAAaQ,gBAC9DxP,EAAiB,SAAUsb,EAC5B,EACAN,WAAYM,EACZrB,WAAYoB,IAIVvP,EAAO,YACNA,EAAKkL,GAAKjX,EAASyQ,yBACtB1E,EAAKkL,GAAI,EACTgD,EAAUM,IACVlF,EAAOkF,IAET,EA3EgB,IACXiB,EAEAJ,EAwBAE,EA8BAC,EAnbQ,IACRhD,EAAcD,EAAaoB,EAAsBvJ,EAAUmK,EAE3DpC,EAAME,EAAM/B,EAAOE,EAAQC,EAASF,EAAUP,EAE9CT,EACAC,EAEAC,EAEAC,EACAC,EAEAC,EACAC,GAEAC,GAOAC,GAQAG,GA0BAc,GA2EA0B,GAEAC,GAcAG,GACAD,GAIAE,GAWAG,GAcAE,GAmFAtB,GAwBAsC,GAKAC,GAOAC,GA5aK,IACL3G,GAASC,GACTN,GACAC,GACAC,GAEAC,GAeAK,GA4kBL,OAvBAzH,EAAW,WACP6C,EAAalD,MACfA,GAEF,GAEAiD,EAAY,CAIX0B,IAAKzB,EACLgL,UAAWA,EACX5E,OAAQA,EACRtJ,KAAMA,EACN0P,GAAIhJ,EACJiJ,GAAI7J,EACJ8J,GAAI7J,EACJ8J,GAAIlK,EACJmK,KAAMhY,EACNiY,GAAI7I,EACJG,IAAKA,EAIP,CA3yBiB2I,CAAQ/W,EAAQA,EAAOhF,SAAU+O,MACjD/J,EAAO8J,UAAYA,EACakN,EAAOC,UACtCD,EAAOC,QAAUnN,EAEnB,CANA,CAMmB,oBAAV9J,OACHA,OAAS,CAAC,E,2FCEH5E,EAA2B,SAAEE,GACzC,OAAOA,IAAawO,KACXoN,KAAKC,WAAW7b,aAAQ,EAARA,EAAUoQ,MAAO,CAAC,KAAQwL,KAAKC,WAAoB,OAATrN,UAAS,IAATA,SAAS,EAATA,IAAAA,MAAkB,CAAC,EACvF,EAEA,IAAeA,G,GCbXsN,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBpa,IAAjBqa,EACH,OAAOA,EAAaN,QAGrB,IAAID,EAASI,EAAyBE,GAAY,CAGjDL,QAAS,CAAC,GAOX,OAHAO,EAAoBF,GAAUN,EAAQA,EAAOC,QAASI,GAG/CL,EAAOC,OACf,CCrBAI,EAAoBI,EAAI,SAAST,GAChC,IAAIU,EAASV,GAAUA,EAAOW,WAC7B,WAAa,OAAOX,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAK,EAAoBO,EAAEF,EAAQ,CAAExS,EAAGwS,IAC5BA,CACR,ECNAL,EAAoBO,EAAI,SAASX,EAASY,GACzC,IAAI,IAAIja,KAAOia,EACXR,EAAoBS,EAAED,EAAYja,KAASyZ,EAAoBS,EAAEb,EAASrZ,IAC5EuI,OAAO4R,eAAed,EAASrZ,EAAK,CAAEoa,YAAY,EAAMC,IAAKJ,EAAWja,IAG3E,ECPAyZ,EAAoBS,EAAI,SAASI,EAAKhO,GAAQ,OAAO/D,OAAOsG,UAAU0L,eAAexD,KAAKuD,EAAKhO,EAAO,ECCtGmN,EAAoBe,EAAI,SAASnB,GACX,oBAAXoB,QAA0BA,OAAOC,aAC1CnS,OAAO4R,eAAed,EAASoB,OAAOC,YAAa,CAAEza,MAAO,WAE7DsI,OAAO4R,eAAed,EAAS,aAAc,CAAEpZ,OAAO,GACvD,E,wBCFA,IAAM0a,EAA0BvY,OAAOuL,iBAAmB,KACrDgN,UACGvY,OAAOuL,gBAGf,I,UCPAiN,EAAS,MACTA,EAAS,MACTA,EAAS,MAET1O,EAAAA,EAAU/C,ODKJwR,EACJvY,OAAOuL,gBAAkBgN,EACd,oBAAqBvY,eACzBA,OAAOuL,e","sources":["webpack://wp-smushit/./_src/js/frontend/lazy-load/lazy-load-background-images.js","webpack://wp-smushit/./_src/js/frontend/lazy-load/auto-resizing.js","webpack://wp-smushit/./_src/js/frontend/lazy-load/lazy-load-video.js","webpack://wp-smushit/./node_modules/lazysizes/lazysizes.js","webpack://wp-smushit/./_src/js/frontend/lazy-load/helper/lazysizes.js","webpack://wp-smushit/webpack/bootstrap","webpack://wp-smushit/webpack/runtime/compat get default export","webpack://wp-smushit/webpack/runtime/define property getters","webpack://wp-smushit/webpack/runtime/hasOwnProperty shorthand","webpack://wp-smushit/webpack/runtime/make namespace object","webpack://wp-smushit/./_src/js/frontend/lazy-load/helper/break-lazysizes.js","webpack://wp-smushit/./_src/js/frontend/lazy-load.js"],"sourcesContent":["import { isSmushLazySizesInstance } from './helper/lazysizes';\n\n( () => {\n\t'use strict';\n\t// Lazyload for background images.\n\tconst lazyloadBackground = ( element ) => {\n\t\tconst backgroundValue = element.getAttribute( 'data-bg-image' ) || element.getAttribute( 'data-bg' );\n\t\tconst cssProperty = element.hasAttribute( 'data-bg-image' ) ? 'background-image' : 'background';\n\n\t\tif ( backgroundValue ) {\n\t\t\tconst currentStyle = element.getAttribute( 'style' ) || '';\n\t\t\tconst newBackgroundCSS = `${ cssProperty }: ${ backgroundValue };`;\n\t\t\tconst backgroundRegex = new RegExp( `${ cssProperty }\\\\s*:\\\\s*[^;]+;?` );\n\n\t\t\tlet updatedStyle;\n\t\t\tif ( backgroundRegex.test( currentStyle ) ) {\n\t\t\t\tupdatedStyle = currentStyle.replace( backgroundRegex, newBackgroundCSS );\n\t\t\t} else {\n\t\t\t\tupdatedStyle = currentStyle.length > 0 ? currentStyle.replace( /;$/g, '' ) + ';' + newBackgroundCSS : newBackgroundCSS;\n\t\t\t}\n\n\t\t\telement.setAttribute( 'style', updatedStyle.trim() );\n\t\t}\n\t};\n\n\tdocument.addEventListener( 'lazybeforeunveil', function( e ) {\n\t\tif ( ! isSmushLazySizesInstance( e?.detail?.instance ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Lazy background image.\n\t\tlazyloadBackground( e.target );\n\t} );\n} )();\n","import { isSmushLazySizesInstance } from './helper/lazysizes';\n\nexport const LAZY_BEFORE_SIZES = 'lazybeforesizes';\nexport const SMUSH_BEFORE_SIZES = 'smush:beforeSizes';\nconst SMUSH_CDN_DOMAIN = 'smushcdn.com';\nconst ATTR_DATA_ORIGINAL_SIZES = 'data-original-sizes';\nconst ATTR_DATA_SRCSET = 'data-srcset';\nconst ATTR_DATA_SRC = 'data-src';\nconst SUPPORTED_EXTENSIONS = [ 'gif', 'jpg', 'jpeg', 'png', 'webp' ];\nconst SRCSET_WIDTH_DESCRIPTOR = 'w';\nconst SRCSET_DENSITY_DESCRIPTOR = 'x';\n/**\n * Class representing lazy loading functionality with CDN support.\n */\nexport class AutoResizing {\n\t/**\n\t * Create a SmushLazyload instance.\n\t *\n\t * @param {Object}  [options={}]                  - Auto resize options for the instance.\n\t * @param {number}  [options.precision=0]         - Allowed width variation (in pixels) for determining if resizing is necessary.\n\t * @param {boolean} [options.skipAutoWidth=false] - Whether to skip auto width resizing.\n\t */\n\tconstructor( { precision = 0, skipAutoWidth = false } = {} ) {\n\t\tthis.precision = parseInt( precision, 10 );\n\t\tthis.precision = isNaN( this.precision ) ? 0 : this.precision;\n\t\tthis.skipAutoWidth = skipAutoWidth;\n\n\t\tthis.initEventListeners();\n\t}\n\n\t/**\n\t * Initialize event listeners.\n\t */\n\tinitEventListeners() {\n\t\tdocument.addEventListener( LAZY_BEFORE_SIZES, ( e ) => {\n\t\t\tif ( ! isSmushLazySizesInstance( e.detail?.instance ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.maybeAutoResize( e );\n\t\t} );\n\t}\n\n\t/**\n\t * Auto resize for CDN images.\n\t *\n\t * @param {Object} lazyEvent - Event object.\n\t * @return {void}\n\t */\n\tmaybeAutoResize( lazyEvent ) {\n\t\tconst element = lazyEvent.target;\n\t\tlet resizeWidth = lazyEvent.detail?.width;\n\t\tconst isImage = 'IMG' === element?.nodeName;\n\n\t\t// Exit early if the element is not an image or resizeWidth is missing.\n\t\tif ( ! isImage || ! resizeWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isInitialRender = lazyEvent.detail?.dataAttr;\n\n\t\t// Skip processing if it's not the initial render.\n\t\tif ( ! isInitialRender ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the element is eligible for resizing.\n\t\tif ( ! this.isElementEligibleForResizing( element ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle reverting to original sizes if necessary.\n\t\tif ( this.shouldRevertToOriginalSizes( element, resizeWidth ) ) {\n\t\t\tif ( this.revertToOriginalSizesIfNeeded( element ) ) {\n\t\t\t\t// Prevent lazySizes from resizing the image.\n\t\t\t\tlazyEvent.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst customEvent = this.triggerEvent( element, SMUSH_BEFORE_SIZES, {\n\t\t\tresizeWidth\n\t\t} );\n\n\t\tif ( customEvent.defaultPrevented ) {\n\t\t\t// If the event is prevented, do not proceed with resizing and revert the sizes.\n\t\t\tif ( this.revertToOriginalSizesIfNeeded( element ) ) {\n\t\t\t\t// Prevent lazySizes from resizing the image.\n\t\t\t\tlazyEvent.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tresizeWidth = customEvent.detail?.resizeWidth || resizeWidth;\n\n\t\t// Resize the image using CDN if applicable.\n\t\tconst src = this.getDataSrc( element );\n\t\tif ( this.isFromSmushCDN( src ) ) {\n\t\t\tthis.resizeImageWithCDN( element, resizeWidth );\n\n\t\t\tif ( this.isChildOfPicture( element ) ) {\n\t\t\t\tthis.resizeSourceElements( element.parentNode.querySelectorAll( 'source' ), resizeWidth );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Decide whether Smush should apply auto-resize for this image.\n\t *\n\t * Rules:\n\t * 1. If wrapper is inline/inline-block and wrapper/image already equal resizeWidth, skip (prevents Divi shrink).\n\t * 2. Otherwise, allow.\n\t *\n\t * @param  imageElement\n\t * @param  resizeWidth\n\t */\n\tshouldAutoResize( imageElement, resizeWidth ) {\n\t\tconst wrapper = imageElement.parentNode;\n\t\tif ( wrapper && this.isInlineElement( wrapper ) ) {\n\t\t\tconst wrapperWidth = wrapper.offsetWidth;\n\t\t\tconst imageWidth = imageElement.offsetWidth;\n\t\t\tconst isWrapperAndImageSameWidth = resizeWidth === wrapperWidth && wrapperWidth === imageWidth;\n\n\t\t\tif ( isWrapperAndImageSameWidth ) {\n\t\t\t\t// BAIL: doing a resize here risks shrinking the inline wrapper\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tisInlineElement( el ) {\n\t\tif ( ! el || el.nodeType !== 1 ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst display = window.getComputedStyle( el ).display;\n\t\treturn display === 'inline' || display === 'inline-block';\n\t}\n\n\tisChildOfPicture( imageElement ) {\n\t\treturn imageElement && 'PICTURE' === imageElement?.parentNode?.nodeName;\n\t}\n\n\tresizeSourceElements( sourceElements, resizeWidth ) {\n\t\tif ( ! sourceElements || ! sourceElements?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsourceElements.forEach( ( sourceElement ) => this.resizeSourceElement( sourceElement, resizeWidth ) );\n\t}\n\n\tresizeSourceElement( sourceElement, resizeWidth ) {\n\t\tconst srcset = sourceElement.getAttribute( ATTR_DATA_SRCSET );\n\t\tif ( ! srcset ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sortedSources = this.parseSrcSet( srcset );\n\t\tif ( ! sortedSources || ! sortedSources.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst baseSourceSrc = this.getBaseSourceSrcForResize( sortedSources, resizeWidth );\n\t\tif ( ! this.isFromSmushCDN( baseSourceSrc ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateSrcsetForResize( sourceElement, srcset, baseSourceSrc, resizeWidth, sortedSources );\n\t}\n\n\tgetBaseSourceSrcForResize( sortedSources, resizeWidth ) {\n\t\tconst largestSource = sortedSources[ 0 ];\n\n\t\tif ( SRCSET_WIDTH_DESCRIPTOR !== largestSource.unit ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (\n\t\t\t! this.isThumbnail( largestSource.src ) ||\n\t\t\tlargestSource.value >= resizeWidth\n\t\t) {\n\t\t\treturn largestSource.src;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tisElementEligibleForResizing( element ) {\n\t\tconst existOriginalSizes = this.getOriginalSizesAttr( element );\n\t\tconst existSrc = this.getDataSrc( element );\n\t\tconst existSrcSet = this.getDataSrcSet( element );\n\t\t/**\n\t\t * lazybeforesizes only fires for images with data-sizes=\"auto\",\n\t\t * so skip checking it.\n\t\t */\n\t\treturn Boolean( existOriginalSizes && existSrc && existSrcSet );\n\t}\n\n\tshouldRevertToOriginalSizes( element, resizeWidth ) {\n\t\tconst imageWidth = this.getElementWidth( element );\n\n\t\t// Skip resizing if width is 'auto' and skipping is enabled.\n\t\tif ( imageWidth === 'auto' ) {\n\t\t\treturn this.shouldSkipAutoWidth();\n\t\t}\n\n\t\tconst originalSizes = this.getOriginalSizesAttr( element );\n\t\tconst maxWidthFromSizes = this.getMaxWidthFromSizes( originalSizes );\n\t\tif ( maxWidthFromSizes && resizeWidth > maxWidthFromSizes && ! this.isChildOfPicture( element ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn ! this.shouldAutoResize( element, resizeWidth );\n\t}\n\n\ttriggerEvent( elem, name, detail = {}, bubbles = true, cancelable = true ) {\n\t\tconst event = new CustomEvent( name, {\n\t\t\tdetail,\n\t\t\tbubbles,\n\t\t\tcancelable,\n\t\t} );\n\n\t\telem.dispatchEvent( event );\n\t\treturn event;\n\t}\n\n\t/**\n\t * Determines if auto width resizing should be skipped.\n\t *\n\t * @return {boolean} - True if auto width resizing should be skipped, false otherwise.\n\t */\n\tshouldSkipAutoWidth() {\n\t\treturn this.skipAutoWidth;\n\t}\n\n\t/**\n\t * Resize the image using the CDN to generate appropriate sizes for the target width.\n\t *\n\t * @param {HTMLElement} element     - The image element to resize.\n\t * @param {number}      resizeWidth - The target width for the image.\n\t */\n\tresizeImageWithCDN( element, resizeWidth ) {\n\t\tconst srcset = this.getDataSrcSet( element );\n\t\tconst src = this.getDataSrc( element );\n\n\t\t// Exit early if the srcset or src is missing.\n\t\tif ( ! srcset || ! src ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Parse the srcset once and reuse the parsed sources.\n\t\tconst sortedSources = this.parseSrcSet( srcset );\n\n\t\t//the src attribute can be a thumbnail, so we need to get the larger image url to resize from it.\n\t\tconst baseImageSrc = this.getBaseImageSrcForResize( src, sortedSources, resizeWidth );\n\n\t\tthis.updateSrcsetForResize( element, srcset, baseImageSrc, resizeWidth, sortedSources );\n\t}\n\n\tupdateSrcsetForResize( element, srcset, baseImageSrc, resizeWidth, sources ) {\n\t\t// Update the srcset with the target width.\n\t\tlet newSrcset = this.updateSrcsetWithTargetWidth( srcset, baseImageSrc, resizeWidth, sources );\n\n\t\t// Update the srcset with retina-specific widths if applicable.\n\t\tnewSrcset = this.updateSrcsetWithRetinaWidth( newSrcset, baseImageSrc, resizeWidth, sources );\n\n\t\t// Update the element's data-srcset attribute if the srcset has changed.\n\t\tthis.updateElementSrcset( element, srcset, newSrcset );\n\t}\n\n\tgetBaseImageSrcForResize( src, sortedSources, resizeWidth ) {\n\t\tif ( ! this.isThumbnail( src ) ) {\n\t\t\treturn src;\n\t\t}\n\n\t\t// Find the largest source that is larger than resizing width.\n\t\tconst largerSource = sortedSources.find( ( source ) => {\n\t\t\treturn source.value >= resizeWidth;\n\t\t} );\n\n\t\treturn largerSource ? largerSource.src : src;\n\t}\n\n\tisThumbnail( src ) {\n\t\t// Find the largest source that is larger than the current src.\n\t\tconst regex = new RegExp( `(-\\\\d+x\\\\d+)\\\\.(${ SUPPORTED_EXTENSIONS.join( '|' ) })(?:\\\\?.+)?$`, 'i' );\n\n\t\treturn regex.test( src );\n\t}\n\n\t/**\n\t * Update the srcset with the target width if no similar source exists.\n\t *\n\t * @param {string} srcset      - The current srcset string.\n\t * @param {string} src         - The original source URL of the image.\n\t * @param {number} resizeWidth - The target width for the image.\n\t * @param {Array}  sources     - The parsed sources from the srcset.\n\t * @return {string} The updated srcset string.\n\t */\n\tupdateSrcsetWithTargetWidth( srcset, src, resizeWidth, sources ) {\n\t\t// Add a new source to the srcset if no similar source exists for the target width.\n\t\tif ( ! this.findSimilarSource( sources, resizeWidth ) ) {\n\t\t\tconst resizedCDNURL = this.getResizedCDNURL( src, resizeWidth );\n\t\t\treturn srcset + ', ' + resizedCDNURL + ' ' + resizeWidth + SRCSET_WIDTH_DESCRIPTOR;\n\t\t}\n\n\t\treturn srcset;\n\t}\n\n\t/**\n\t * Update the srcset with retina-specific widths if applicable.\n\t *\n\t * @param {string} srcset      - The current srcset string.\n\t * @param {string} src         - The original source URL of the image.\n\t * @param {number} resizeWidth - The target width for the image.\n\t * @param {Array}  sources     - The parsed sources from the srcset.\n\t * @return {string} The updated srcset string.\n\t */\n\tupdateSrcsetWithRetinaWidth( srcset, src, resizeWidth, sources ) {\n\t\tconst scale = this.getPixelRatio();\n\t\tif ( scale <= 1 ) {\n\t\t\treturn srcset;\n\t\t}\n\n\t\tconst retinaWidth = Math.ceil( resizeWidth * scale );\n\t\tconst hasRetinaSource = this.findSimilarSource( sources, scale, SRCSET_DENSITY_DESCRIPTOR ) ||\n\t\t\t\t\t\t\t\tthis.findSimilarSource( sources, retinaWidth, SRCSET_WIDTH_DESCRIPTOR );\n\n\t\tif ( hasRetinaSource ) {\n\t\t\treturn srcset;\n\t\t}\n\n\t\t// Add a new retina source to the srcset if no similar source exists for the retina width.\n\t\tconst retinaCDNURL = this.getResizedCDNURL( src, retinaWidth );\n\t\tconst newRetinaSourceString = retinaCDNURL + ' ' + retinaWidth + SRCSET_WIDTH_DESCRIPTOR;\n\n\t\treturn srcset + ', ' + newRetinaSourceString;\n\t}\n\n\t/**\n\t * Update the element's data-srcset attribute if the srcset has changed.\n\t *\n\t * @param {HTMLElement} element        - The image element to update.\n\t * @param {string}      originalSrcset - The original srcset string.\n\t * @param {string}      newSrcset      - The updated srcset string.\n\t */\n\tupdateElementSrcset( element, originalSrcset, newSrcset ) {\n\t\tif ( newSrcset !== originalSrcset ) {\n\t\t\telement.setAttribute( 'data-srcset', newSrcset );\n\t\t}\n\t}\n\n\t/**\n\t * Get the device pixel ratio.\n\t *\n\t * @return {number} The device pixel ratio. Default is 1 if the property is not available.\n\t */\n\tgetPixelRatio() {\n\t\treturn window.devicePixelRatio || 1;\n\t}\n\n\t/**\n\t * Finds and returns the first source object that has a similar width to the target width.\n\t *\n\t * @param {Array}  sources                    - An array of source objects to search through.\n\t * @param {number} resizeWidth                - The target width to match against the source widths.\n\t * @param {string} [unit='w']                 - The unit of measurement for the width (default is 'w').\n\t * @param {number} [precision=this.precision] - The allowed width variation (in pixels) used to determine if a source width matches the target width during resizing.\n\t * @return {Object|null} - The first source object that matches the criteria, or null if no match is found.\n\t */\n\tfindSimilarSource( sources, resizeWidth, unit = SRCSET_WIDTH_DESCRIPTOR, precision = this.precision ) {\n\t\treturn sources.find( ( source ) => {\n\t\t\treturn unit === source.unit && source.value >= resizeWidth &&\n\t\t\tthis.isFuzzyMatch( source.value, resizeWidth, precision );\n\t\t} );\n\t}\n\n\t/**\n\t * Get the resized image CDN URL.\n\t *\n\t * @param {string} src         - The original source URL of the image.\n\t * @param {number} resizeWidth - The target width for the resized image.\n\t * @return {string|undefined} The resized image CDN URL, or undefined if resizing is not applicable.\n\t */\n\tgetResizedCDNURL( src, resizeWidth ) {\n\t\tconst url = this.parseURL( src );\n\t\tif ( ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst searchParams = new URLSearchParams( url.search );\n\t\tsearchParams.set( 'size', `${ resizeWidth }x0` );\n\t\t// Get the base URL (without search parameters).\n\t\tconst baseUrl = url.origin + url.pathname;\n\n\t\treturn `${ baseUrl }?${ searchParams.toString() }`;\n\t}\n\n\t/**\n\t * Parse the URL from the source string.\n\t *\n\t * @param {string} src - The source URL string.\n\t * @return {URL|null} The parsed URL object, or null if parsing fails.\n\t */\n\tparseURL( src ) {\n\t\ttry {\n\t\t\treturn new URL( src );\n\t\t} catch ( error ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Extract width, unit, and src from srcset.\n\t *\n\t * @param {string} srcset - The srcset string.\n\t * @return {Array} An array of objects source info.\n\t */\n\tparseSrcSet( srcset ) {\n\t\tconst sources = this.extractSourcesFromSrcSet( srcset );\n\t\treturn this.sortSources( sources );\n\t}\n\n\textractSourcesFromSrcSet( srcset ) {\n\t\treturn srcset.split( ',' ).map( ( item ) => {\n\t\t\tconst [ src, descriptor ] = item.trim().split( /\\s+/ );\n\t\t\tlet value = 0;\n\t\t\tlet unit = '';\n\n\t\t\tif ( descriptor ) {\n\t\t\t\tif ( descriptor.endsWith( SRCSET_WIDTH_DESCRIPTOR ) ) {\n\t\t\t\t\tvalue = parseInt( descriptor, 10 );\n\t\t\t\t\tunit = SRCSET_WIDTH_DESCRIPTOR;\n\t\t\t\t} else if ( descriptor.endsWith( SRCSET_DENSITY_DESCRIPTOR ) ) {\n\t\t\t\t\tvalue = parseFloat( descriptor );\n\t\t\t\t\tunit = SRCSET_DENSITY_DESCRIPTOR;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tmarkup: item,\n\t\t\t\tsrc,\n\t\t\t\tvalue,\n\t\t\t\tunit,\n\t\t\t};\n\t\t} );\n\t}\n\n\tsortSources( sources ) {\n\t\tsources.sort( ( a, b ) => {\n\t\t\tif ( a.value === b.value ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn a.value > b.value ? -1 : 1;\n\t\t} );\n\t\treturn sources;\n\t}\n\n\t/**\n\t * Revert to the original sizes attribute.\n\t *\n\t * @param {Object} element - Image element.\n\t * @return {boolean} True if the original sizes were reverted, false otherwise.\n\t */\n\trevertToOriginalSizesIfNeeded( element ) {\n\t\tconst originalSizes = this.getOriginalSizesAttr( element );\n\t\tif ( originalSizes ) {\n\t\t\telement.setAttribute( 'sizes', originalSizes );\n\t\t\telement.removeAttribute( ATTR_DATA_ORIGINAL_SIZES );\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the image width.\n\t *\n\t * @param {Object} element - Image element.\n\t * @return {string|number} The image width.\n\t */\n\tgetElementWidth( element ) {\n\t\t/**\n\t\t * Check if the element has an inline width set to 'auto'.\n\t\t * Note: For external CSS, we couldn't cover it due to getComputedStyle just returning the parsed value.\n\t\t */\n\t\tconst inlineWidth = element.style?.width;\n\t\tif ( inlineWidth && 'auto' === inlineWidth.trim() ) {\n\t\t\treturn 'auto';\n\t\t}\n\n\t\tconst widthStr = window.getComputedStyle( element ).width;\n\t\tconst width = parseInt( widthStr, 10 );\n\n\t\treturn isNaN( width ) ? widthStr : width;\n\t}\n\n\t/**\n\t * Get the content width from the original sizes attribute.\n\t *\n\t * @param {string} originalSizes - The original sizes attribute.\n\t * @return {number} The content width.\n\t */\n\tgetMaxWidthFromSizes( originalSizes ) {\n\t\tconst regex = /\\(max-width:\\s*(\\d+)px\\)\\s*100vw,\\s*\\1px/;\n\t\tconst match = originalSizes.match( regex );\n\n\t\treturn match ? parseInt( match[ 1 ], 10 ) : 0;\n\t}\n\n\t/**\n\t * Get the original sizes attribute.\n\t *\n\t * @param {Object} element - Image element.\n\t * @return {string} The original sizes attribute.\n\t */\n\tgetOriginalSizesAttr( element ) {\n\t\treturn element.getAttribute( ATTR_DATA_ORIGINAL_SIZES );\n\t}\n\n\t/**\n\t * Get the srcset attribute.\n\t *\n\t * @param {Object} element - Image element.\n\t * @return {string} The srcset attribute.\n\t */\n\tgetDataSrcSet( element ) {\n\t\treturn element.getAttribute( ATTR_DATA_SRCSET );\n\t}\n\n\t/**\n\t * Get the src attribute.\n\t *\n\t * @param {Object} element - Image element.\n\t * @return {string} The src attribute.\n\t */\n\tgetDataSrc( element ) {\n\t\treturn element.getAttribute( ATTR_DATA_SRC );\n\t}\n\n\t/**\n\t * Check if the source is from the CDN.\n\t *\n\t * @param {string} src - The source URL.\n\t * @return {boolean} True if the source is from the CDN, false otherwise.\n\t */\n\tisFromSmushCDN( src ) {\n\t\treturn src && src.includes( SMUSH_CDN_DOMAIN );\n\t}\n\n\t/**\n\t * Perform a fuzzy match between two numbers.\n\t *\n\t * @param {number} number1       - The first number.\n\t * @param {number} number2       - The second number.\n\t * @param {number} [precision=1] - The allowed variation. Default is 1.\n\t * @return {boolean} True if the numbers are close enough, false otherwise.\n\t */\n\tisFuzzyMatch( number1, number2, precision = 1 ) {\n\t\treturn Math.abs( number1 - number2 ) <= precision;\n\t}\n}\n( () => {\n\t'use strict';\n\tconst isAutoResizingEnabled = window.smushLazyLoadOptions?.autoResizingEnabled;\n\tif ( ! isAutoResizingEnabled ) {\n\t\treturn;\n\t}\n\n\tlet autoResizeOptions = window.smushLazyLoadOptions?.autoResizeOptions || {};\n\tautoResizeOptions = Object.assign(\n\t\t{\n\t\t\tprecision: 5, //5px.\n\t\t\tskipAutoWidth: true, // Whether to skip the image has 'auto' width.\n\t\t},\n\t\tautoResizeOptions\n\t);\n\tnew AutoResizing( autoResizeOptions );\n} )();\n","import { isSmushLazySizesInstance } from './helper/lazysizes';\n\n( () => {\n\t'use strict';\n\t// Constants\n\tconst VIDEO_WRAPPER_CLASS = 'smush-lazyload-video';\n\tconst LAZY_LOADED_CLASS = 'smush-lazyloaded-video';\n\tconst AUTO_PLAY_CLASS = 'smush-lazyload-autoplay';\n\tconst PLAY_BUTTON_CLASS = 'smush-play-btn';\n\tconst DEFAULT_ALLOW_ATTR = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';\n\tconst USER_INTERACTION_EVENT = 'ontouchstart' in window ? 'touchstart' : 'pointerdown';\n\tconst FALLBACK_VIDEO_RENDER_DELAY = window?.smush_video_render_delay || 0;\n\n\t/**\n\t * LazyLoadVideo Class\n\t * Handles lazy loading and autoplay functionality for videos.\n\t */\n\tclass LazyLoadVideo {\n\t\tconstructor() {\n\t\t\tthis.shouldDelayVideoRenderingForMobile = this.supportsIntersectionObserver();\n\t\t\tthis.queuedVideoElements = [];\n\t\t\tthis.isMobileOrSafari = null;\n\n\t\t\tthis.init();\n\t\t}\n\n\t\t/**\n\t\t * Initialize event listeners and fallback mechanisms.\n\t\t */\n\t\tinit() {\n\t\t\tdocument.addEventListener( 'lazybeforeunveil', ( e ) => this.handleVideoLazyLoad( e ) );\n\t\t\tdocument.addEventListener(\n\t\t\t\tUSER_INTERACTION_EVENT,\n\t\t\t\t() => this.enableVideoRenderingForMobile(),\n\t\t\t\t{ once: true, passive: true }\n\t\t\t);\n\n\t\t\t// Unified fallback for delayed video rendering.\n\t\t\tconst maybeTriggerVideoRenderingFallbackForMobile = () => {\n\t\t\t\tif ( ! FALLBACK_VIDEO_RENDER_DELAY || FALLBACK_VIDEO_RENDER_DELAY < 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetTimeout( () => this.enableVideoRenderingForMobile(), FALLBACK_VIDEO_RENDER_DELAY );\n\t\t\t};\n\n\t\t\tdocument.addEventListener( 'DOMContentLoaded', maybeTriggerVideoRenderingFallbackForMobile );\n\t\t}\n\n\t\t/**\n\t\t * Handles lazy loading of video elements.\n\t\t *\n\t\t * @param {Event} e - The lazybeforeunveil event.\n\t\t */\n\t\thandleVideoLazyLoad( e ) {\n\t\t\tconst videoWrapper = e.target;\n\n\t\t\tif (\n\t\t\t\t! isSmushLazySizesInstance( e?.detail?.instance ) ||\n\t\t\t\t! videoWrapper.classList.contains( VIDEO_WRAPPER_CLASS )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.handleButtonPlay( videoWrapper );\n\t\t\tthis.maybePrepareVideoForPlay( videoWrapper );\n\t\t}\n\n\t\t/**\n\t\t * Handles the play button click event.\n\t\t *\n\t\t * @param {HTMLElement} videoWrapper - The video wrapper element.\n\t\t */\n\t\thandleButtonPlay( videoWrapper ) {\n\t\t\tconst playButton = videoWrapper.querySelector( `.${ PLAY_BUTTON_CLASS }` );\n\n\t\t\tif ( playButton ) {\n\t\t\t\tconst playHandler = () => this.loadIframeVideoWithAutoPlay( videoWrapper );\n\t\t\t\tplayButton.addEventListener( 'click', playHandler );\n\t\t\t\tplayButton.addEventListener( 'keydown', ( e ) => {\n\t\t\t\t\tif ( e.key === 'Enter' || e.key === ' ' ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tplayHandler();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tthis.loadIframeVideo( videoWrapper );\n\t\t\t\twindow.console?.warning( 'Missing play button [.smush-play-btn] for video element:', videoWrapper );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Prepares the video for play based on autoplay and device conditions.\n\t\t *\n\t\t * @param {HTMLElement} videoWrapper - The video wrapper element.\n\t\t */\n\t\tmaybePrepareVideoForPlay( videoWrapper ) {\n\t\t\tconst shouldAutoPlay = videoWrapper.classList.contains( AUTO_PLAY_CLASS );\n\n\t\t\tif ( this.shouldPrepareIframeForPlay() ) {\n\t\t\t\tthis.maybePrepareVideoForMobileAndSafari( videoWrapper, shouldAutoPlay );\n\t\t\t} else if ( shouldAutoPlay ) {\n\t\t\t\tthis.loadIframeVideoWithAutoPlay( videoWrapper );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Enables video rendering for mobile devices.\n\t\t */\n\t\tenableVideoRenderingForMobile() {\n\t\t\tif ( ! this.shouldDelayVideoRenderingForMobile ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.shouldDelayVideoRenderingForMobile = false;\n\t\t\tthis.maybeObserveQueuedVideoElements();\n\t\t}\n\n\t\t/**\n\t\t * Checks if the browser supports IntersectionObserver.\n\t\t *\n\t\t * @return {boolean} True if supported, false otherwise.\n\t\t */\n\t\tsupportsIntersectionObserver() {\n\t\t\treturn 'IntersectionObserver' in window;\n\t\t}\n\n\t\t/**\n\t\t * Observes queued video elements for lazy loading.\n\t\t */\n\t\tmaybeObserveQueuedVideoElements() {\n\t\t\tif ( this.queuedVideoElements.length ) {\n\t\t\t\tthis.observeQueuedVideoElements();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Observes video elements using IntersectionObserver.\n\t\t */\n\t\tobserveQueuedVideoElements() {\n\t\t\tconst observer = new IntersectionObserver(\n\t\t\t\t( entries ) => {\n\t\t\t\t\tentries.forEach( ( entry ) => {\n\t\t\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\t\t\tconst videoWrapper = entry.target;\n\n\t\t\t\t\t\t\tthis.loadIframeVideo( videoWrapper );\n\t\t\t\t\t\t\tobserver.unobserve( videoWrapper );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\trootMargin: '0px 0px 200px 0px',\n\t\t\t\t\tthreshold: 0.1,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.queuedVideoElements.forEach( ( videoWrapper ) => {\n\t\t\t\tobserver.observe( videoWrapper );\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Prepares video for mobile and Safari browsers.\n\t\t *\n\t\t * @param {HTMLElement} videoWrapper   - The video wrapper element.\n\t\t * @param {boolean}     shouldAutoPlay - Whether the video should autoplay.\n\t\t */\n\t\tmaybePrepareVideoForMobileAndSafari( videoWrapper, shouldAutoPlay ) {\n\t\t\tif ( this.shouldDelayVideoRenderingForMobile ) {\n\t\t\t\tthis.queuedVideoElements.push( videoWrapper );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.loadIframeVideo( videoWrapper, shouldAutoPlay );\n\t\t}\n\n\t\t/**\n\t\t * Checks if the iframe should be prepared for play.\n\t\t *\n\t\t * @return {boolean} True if preparation is needed, false otherwise.\n\t\t */\n\t\tshouldPrepareIframeForPlay() {\n\t\t\tif ( this.isMobileOrSafari === null ) {\n\t\t\t\tthis.isMobileOrSafari = this.checkIfMobileOrSafari();\n\t\t\t}\n\n\t\t\treturn this.isMobileOrSafari;\n\t\t}\n\n\t\t/**\n\t\t * Checks if the device is mobile or Safari browser.\n\t\t *\n\t\t * @return {boolean} True if mobile or Safari, false otherwise.\n\t\t */\n\t\tcheckIfMobileOrSafari() {\n\t\t\tconst userAgent = navigator.userAgent;\n\t\t\treturn userAgent.includes( 'Mobi' ) || ( userAgent.includes( 'Safari' ) && ! userAgent.includes( 'Chrome' ) );\n\t\t}\n\n\t\t/**\n\t\t * Loads the iframe video.\n\t\t *\n\t\t * @param {HTMLElement} videoWrapper     - The video wrapper element.\n\t\t * @param {boolean}     [autoPlay=false] - Whether to autoplay the video.\n\t\t */\n\t\tloadIframeVideo( videoWrapper, autoPlay = false ) {\n\t\t\tif ( videoWrapper.classList.contains( LAZY_LOADED_CLASS ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvideoWrapper.classList.add( LAZY_LOADED_CLASS, 'loading' );\n\n\t\t\tconst iframe = videoWrapper.querySelector( 'iframe' );\n\t\t\tif ( ! iframe ) {\n\t\t\t\twindow.console?.error( 'Missing iframe element in video wrapper:', videoWrapper );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet videoUrl = iframe.dataset?.src;\n\t\t\tif ( ! videoUrl ) {\n\t\t\t\twindow.console?.error( 'Missing data-src attribute for iframe:', iframe );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( autoPlay ) {\n\t\t\t\tconst url = new URL( videoUrl );\n\t\t\t\turl.searchParams.set( 'autoplay', '1' );\n\t\t\t\turl.searchParams.set( 'playsinline', '1' );\n\t\t\t\tvideoUrl = url.toString();\n\t\t\t}\n\n\t\t\tlet allowAttribute = iframe.getAttribute( 'allow' ) || DEFAULT_ALLOW_ATTR;\n\t\t\tif ( ! allowAttribute.includes( 'autoplay' ) ) {\n\t\t\t\tallowAttribute += '; autoplay';\n\t\t\t}\n\n\t\t\tiframe.setAttribute( 'allow', allowAttribute );\n\t\t\tiframe.setAttribute( 'allowFullscreen', 'true' );\n\t\t\tiframe.setAttribute( 'src', videoUrl );\n\n\t\t\tvideoWrapper.classList.remove( 'loading' );\n\t\t}\n\n\t\t/**\n\t\t * Loads the iframe video with autoplay enabled.\n\t\t *\n\t\t * @param {HTMLElement} videoWrapper - The video wrapper element.\n\t\t */\n\t\tloadIframeVideoWithAutoPlay( videoWrapper ) {\n\t\t\tthis.loadIframeVideo( videoWrapper, true );\n\t\t}\n\t}\n\n\t// Initialize LazyLoadVideo\n\tnew LazyLoadVideo();\n} )();\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n      window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth =  parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning =  true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","import lazySizes from 'lazysizes';\n\n/*\n * TODO: Change the lazyClass name to be more specific to avoid conflicts with other plugins\n * in the case that they are using the same default class name.\n * @see https://github.com/aFarkas/lazysizes/issues/643#issuecomment-486168297\n * or https://github.com/aFarkas/lazysizes/issues/647#issuecomment-487724519\n */\n\nexport const isSmushLazySizesInstance = ( instance ) => {\n\treturn instance === lazySizes ||\n        ( JSON.stringify( instance?.cfg || {} ) === JSON.stringify( lazySizes?.cfg || {} ) );\n};\n\nexport default lazySizes;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @see https://github.com/aFarkas/lazysizes/issues/643#issuecomment-486168297\n * Or https://github.com/aFarkas/lazysizes/issues/647#issuecomment-487724519\n */\nconst originalLazySizesConfig = window.lazySizesConfig || null;\nif ( originalLazySizesConfig ) {\n\tdelete window.lazySizesConfig;\n}\n\nexport default () => {\n\t// Restore the original lazySizesConfig if it was set before.\n\tif ( originalLazySizesConfig ) {\n\t\twindow.lazySizesConfig = originalLazySizesConfig;\n\t} else if ( 'lazySizesConfig' in window ) {\n\t\tdelete window.lazySizesConfig;\n\t}\n};\n","import restoreLazySizesConfig from './lazy-load/helper/break-lazysizes';\nimport lazySizes from './lazy-load/helper/lazysizes';\nrequire( './lazy-load/lazy-load-background-images' );\nrequire( './lazy-load/lazy-load-video' );\nrequire( './lazy-load/auto-resizing' );\n\nlazySizes.init();\n\nrestoreLazySizesConfig();\n"],"names":["document","addEventListener","e","_e$detail","isSmushLazySizesInstance","detail","instance","element","backgroundValue","getAttribute","cssProperty","hasAttribute","updatedStyle","currentStyle","newBackgroundCSS","concat","backgroundRegex","RegExp","test","replace","length","setAttribute","trim","lazyloadBackground","target","LAZY_BEFORE_SIZES","SMUSH_BEFORE_SIZES","ATTR_DATA_ORIGINAL_SIZES","ATTR_DATA_SRCSET","SUPPORTED_EXTENSIONS","SRCSET_WIDTH_DESCRIPTOR","AutoResizing","_ref","arguments","undefined","_ref$precision","precision","_ref$skipAutoWidth","skipAutoWidth","_classCallCheck","this","parseInt","isNaN","initEventListeners","key","value","_this","maybeAutoResize","lazyEvent","_lazyEvent$detail","_lazyEvent$detail2","_customEvent$detail","resizeWidth","width","nodeName","dataAttr","isElementEligibleForResizing","shouldRevertToOriginalSizes","revertToOriginalSizesIfNeeded","preventDefault","customEvent","triggerEvent","defaultPrevented","src","getDataSrc","isFromSmushCDN","resizeImageWithCDN","isChildOfPicture","resizeSourceElements","parentNode","querySelectorAll","imageElement","wrapper","isInlineElement","wrapperWidth","offsetWidth","imageWidth","el","nodeType","display","window","getComputedStyle","_imageElement$parentN","sourceElements","_this2","forEach","sourceElement","resizeSourceElement","srcset","sortedSources","parseSrcSet","baseSourceSrc","getBaseSourceSrcForResize","updateSrcsetForResize","largestSource","unit","isThumbnail","existOriginalSizes","getOriginalSizesAttr","existSrc","existSrcSet","getDataSrcSet","Boolean","getElementWidth","shouldSkipAutoWidth","originalSizes","maxWidthFromSizes","getMaxWidthFromSizes","shouldAutoResize","elem","name","event","CustomEvent","bubbles","cancelable","dispatchEvent","baseImageSrc","getBaseImageSrcForResize","sources","newSrcset","updateSrcsetWithTargetWidth","updateSrcsetWithRetinaWidth","updateElementSrcset","largerSource","find","source","join","findSimilarSource","getResizedCDNURL","scale","getPixelRatio","retinaWidth","Math","ceil","originalSrcset","devicePixelRatio","_this3","isFuzzyMatch","url","parseURL","searchParams","URLSearchParams","search","set","baseUrl","origin","pathname","toString","URL","error","extractSourcesFromSrcSet","sortSources","split","map","item","_item$trim$split2","_slicedToArray","descriptor","endsWith","parseFloat","markup","sort","a","b","removeAttribute","_element$style","inlineWidth","style","widthStr","match","includes","number1","number2","abs","_window$smushLazyLoad","_window$smushLazyLoad2","smushLazyLoadOptions","autoResizingEnabled","autoResizeOptions","Object","assign","_window","LAZY_LOADED_CLASS","USER_INTERACTION_EVENT","FALLBACK_VIDEO_RENDER_DELAY","LazyLoadVideo","smush_video_render_delay","shouldDelayVideoRenderingForMobile","supportsIntersectionObserver","queuedVideoElements","isMobileOrSafari","init","handleVideoLazyLoad","enableVideoRenderingForMobile","once","passive","setTimeout","videoWrapper","classList","contains","handleButtonPlay","maybePrepareVideoForPlay","playButton","querySelector","playHandler","loadIframeVideoWithAutoPlay","_window$console","loadIframeVideo","console","warning","shouldAutoPlay","shouldPrepareIframeForPlay","maybePrepareVideoForMobileAndSafari","maybeObserveQueuedVideoElements","observeQueuedVideoElements","observer","IntersectionObserver","entries","entry","isIntersecting","unobserve","rootMargin","threshold","observe","push","checkIfMobileOrSafari","userAgent","navigator","_iframe$dataset","autoPlay","add","iframe","videoUrl","dataset","allowAttribute","remove","_window$console3","_window$console2","lazySizes","Date","lazysizes","lazySizesCfg","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","documentElement","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","bind","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","Array","prototype","hasClass","ele","cls","addClass","removeClass","reg","addRemoveLoadEvents","dom","fn","action","evt","noBubbles","noCancelable","createEvent","initEvent","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","elements","getCSS","getWidth","parent","_lazysizesWidth","rAF","firstFns","secondFns","fns","run","runFns","running","waiting","shift","rafBatch","queue","apply","hidden","_lsFlush","rAFIt","simple","that","args","throttle","lastTime","gDelay","rICTimeout","now","idleCallback","timeout","isPriority","delay","debounce","func","timestamp","wait","later","last","loader","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","body","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","i","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","eLvW","innerWidth","elvH","innerHeight","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","location","handleSources","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","isPicture","firesLoad","clearTimeout","resetPreloadingTimer","call","getElementsByTagName","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","started","_","persisted","loadingElements","img","MutationObserver","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","_aLSL","sizeElement","len","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","factory","module","exports","JSON","stringify","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","obj","hasOwnProperty","r","Symbol","toStringTag","originalLazySizesConfig","require"],"sourceRoot":""}