{"version":3,"sources":["ls.bgset.js","ls.unveilhooks.js","ls.object-fit.js","ls.respimg.js","ls.config.js","lazysizes.js"],"names":["window","factory","globalInstall","lazySizes","removeEventListener","bind","document","module","exports","require","define","amd","addEventListener","lazySizesCfg","regWhite","regSplitSet","regSource","regType","regBgUrlEscape","allowedBackgroundSize","setTypeOrMedia","proxyLoad","cfg","contain","cover","source","match","typeMatch","setAttribute","customMedia","e","image","elem","target","_lazybgset","bg","currentSrc","src","event","fire","useSrc","test","JSON","stringify","defaultPrevented","style","backgroundImage","detail","_lazybgsetLoading","sets","picture","sizes","ratio","set","getAttribute","createElement","alt","firesLoad","img","sizesAttr","optimumx","parentNode","removeChild","Object","defineProperty","value","writable","replace","split","display","className","lazyClass","length","forEach","srcsetAttr","appendChild","removeAttribute","setTimeout","loader","unveil","rAF","complete","bgSize","instance","dataAttr","getComputedStyle","getPropertyValue","backgroundSize","_lazysizesParentFit","documentElement","width","gW","_lazysizesWidth","bgLoad","uniqueUrls","addStyleScript","insertElem","getElementsByTagName","rel","href","insertBefore","url","cb","onload","onerror","tmp","poster","preload","autoplay","play","er","requestAnimationFrame","aC","requireJs","initialEvent","cloneElementClass","onRead","fitSupport","positionSupport","regCssFit","regCssPosition","blankSrc","positionDefaults","center","50% 50%","initFix","element","config","onChange","addedSrc","styleElementStyle","switchClassesAdded","rC","styleElement","lazysizesCfg","loadingClass","loadedClass","rafedOnChange","fit","hideElement","container","nodeName","toUpperCase","prev","previousElementSibling","hC","position","visibility","objectFitClass","querySelector","cloneNode","curSrc","srcset","autosizesClass","srcAttr","attr","backgroundRepeat","backgroundPosition","_objectFitPolyfilledDisplay","obj","content","fontFamily","objectPosition","objectFit","polyfill","regDescriptors","candidates","regWCandidates","regMultiple","regPxLength","parseWsrcset","runMatchMedia","matchesMedia","sels","supportSrcset","regHDesc","fixEdgeHDescriptor","Array","prototype","removeHDescriptors","handler","call","ascendingSort","a","b","w","addCandidate","candidate","wDescriptor","push","c","u","createSrcset","isImage","parsedSet","srcSet","_lazypolyfill","_set","isPicture","matchMedia","getCandidate","sources","i","len","srces","dpr","supportsType","parseInt","d","devicePixelRatio","optimum","getX","Math","min","lowerCandidate","bonusFactor","cached","pow","reduceCandidate","sort","p","cur","type","HTMLPictureElement","hasHDescriptorFix","msElementsFromPoint","picturefill","pf","options","elements","timer","matchMediaElems","run","init","getElementsByClassName","clearTimeout","media","matches","parse","input","trim","sel","querySelectorAll","join","lazySizesConfig","--xs","--sm","--md","--lg","--xl","--xxs-max","--xs-max","--sm-max","--md-max","--lg-max","Date","prop","lazySizesDefaults","preloadClass","errorClass","expFactor","hFac","proxyWidth","ricTimeout","throttleDelay","lazysizesConfig","getBgSize","noSupport","ele","cls","regClassCache","RegExp","_getAttribute","addClass","reg","name","noBubbles","noCancelable","createEvent","lazysizes","el","full","reevaluate","getCSS","getWidth","parent","offsetWidth","minSize","fns","supportPicture","_addEventListener","createPicture","regPicture","dom","fn","add","loadEvents","evt","rafBatch","_lsFlush","firstFns","secondFns","waiting","running","queue","rAFIt","simple","that","this","args","arguments","apply","later","last","now","timestamp","timeout","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","elvH","eLbottom","isBodyHidden","lastTime","gDelay","rICTimeout","idleCallback","regImg","regIframe","supportScroll","lowRuns","rafedSwitchLoadingClass","unveilElement","afterScroll","navigator","userAgent","checkElements","requestIdleCallback","switchLoadingClass","isAuto","isImg","triggerEvent","resetPreloading","addRemoveLoadEvents","rafSwitchLoadingClass","handleSources","contentWindow","_lazyRace","removeClass","isLoaded","naturalWidth","_lazyCache","debounce","throttledCheckElements","altLoadmodeScrollListner","_","loadingElements","persisted","MutationObserver","observe","docElem","childList","attributes","setInterval","readyState","checkElems","isPriority","delay","hasClass","autoSizer","updateElem","isLoading","lazyUnveil","_aLSL","isVisible","body","autoLoadElem","loadedSomething","elemExpand","elemNegativeExpand","beforeExpandVal","defaultExpand","preloadExpand","eLlen","lazyloadElems","prematureUnveil","elemExpandVal","expand","clientHeight","clientWidth","currentExpand","getObject","eLvW","innerWidth","innerHeight","generateStyleClass","rect","getBoundingClientRect","top","eLright","right","eLleft","left","removePrevClone","eLtop","visible","load","outerRect","bottom","preloadAfterLoad","autosizesElems","sizeElement","debouncedUpdateElementsSizes","getSizeElement","uP","updatePolyfill"],"mappings":"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","file":"../lazysizes.min.js","sourcesContent":["(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t'use strict';\n\tif(!window.addEventListener){return;}\n\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar regWhite = /\\s+/g;\n\tvar regSplitSet = /\\s*\\|\\s+|\\s+\\|\\s*/g;\n\tvar regSource = /^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])(?:\\s+\\[\\s*(.+?)\\s*\\])?$/;\n\tvar regType = /^\\s*\\(*\\s*type\\s*:\\s*(.+?)\\s*\\)*\\s*$/;\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar allowedBackgroundSize = {contain: 1, cover: 1};\n\tvar proxyWidth = function(elem){\n\t\tvar width = lazySizes.gW(elem, elem.parentNode);\n\n\t\tif(!elem._lazysizesWidth || width > elem._lazysizesWidth){\n\t\t\telem._lazysizesWidth = width;\n\t\t}\n\t\treturn elem._lazysizesWidth;\n\t};\n\tvar getBgSize = function(elem){\n\t\tvar bgSize;\n\n\t\tbgSize = (getComputedStyle(elem) || {getPropertyValue: function(){}}).getPropertyValue('background-size');\n\n\t\tif(!allowedBackgroundSize[bgSize] && allowedBackgroundSize[elem.style.backgroundSize]){\n\t\t\tbgSize = elem.style.backgroundSize;\n\t\t}\n\n\t\treturn bgSize;\n\t};\n\tvar setTypeOrMedia = function(source, match){\n\t\tif(match){\n\t\t\tvar typeMatch = match.match(regType);\n\t\t\tif(typeMatch && typeMatch[1]){\n\t\t\t\tsource.setAttribute('type', typeMatch[1]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute('media', lazySizesCfg.customMedia[match] || match);\n\t\t\t}\n\t\t}\n\t};\n\tvar createPicture = function(sets, elem, img){\n\t\tvar picture = document.createElement('picture');\n\t\tvar sizes = elem.getAttribute(lazySizesCfg.sizesAttr);\n\t\tvar ratio = elem.getAttribute('data-ratio');\n\t\tvar optimumx = elem.getAttribute('data-optimumx');\n\n\t\tif(elem._lazybgset && elem._lazybgset.parentNode == elem){\n\t\t\telem.removeChild(elem._lazybgset);\n\t\t}\n\n\t\tObject.defineProperty(img, '_lazybgset', {\n\t\t\tvalue: elem,\n\t\t\twritable: true\n\t\t});\n\t\tObject.defineProperty(elem, '_lazybgset', {\n\t\t\tvalue: picture,\n\t\t\twritable: true\n\t\t});\n\n\t\tsets = sets.replace(regWhite, ' ').split(regSplitSet);\n\n\t\tpicture.style.display = 'none';\n\t\timg.className = lazySizesCfg.lazyClass;\n\n\t\tif(sets.length == 1 && !sizes){\n\t\t\tsizes = 'auto';\n\t\t}\n\n\t\tsets.forEach(function(set){\n\t\t\tvar match;\n\t\t\tvar source = document.createElement('source');\n\n\t\t\tif(sizes && sizes != 'auto'){\n\t\t\t\tsource.setAttribute('sizes', sizes);\n\t\t\t}\n\n\t\t\tif((match = set.match(regSource))){\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, match[1]);\n\n\t\t\t\tsetTypeOrMedia(source, match[2]);\n\t\t\t\tsetTypeOrMedia(source, match[3]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, set);\n\t\t\t}\n\n\t\t\tpicture.appendChild(source);\n\t\t});\n\n\t\tif(sizes){\n\t\t\timg.setAttribute(lazySizesCfg.sizesAttr, sizes);\n\t\t\telem.removeAttribute(lazySizesCfg.sizesAttr);\n\t\t\telem.removeAttribute('sizes');\n\t\t}\n\t\tif(optimumx){\n\t\t\timg.setAttribute('data-optimumx', optimumx);\n\t\t}\n\t\tif(ratio) {\n\t\t\timg.setAttribute('data-ratio', ratio);\n\t\t}\n\n\t\tpicture.appendChild(img);\n\n\t\telem.appendChild(picture);\n\t};\n\n\tvar proxyLoad = function(e){\n\t\tif(!e.target._lazybgset){return;}\n\n\t\tvar image = e.target;\n\t\tvar elem = image._lazybgset;\n\t\tvar bg = image.currentSrc || image.src;\n\n\n\t\tif(bg){\n\t\t\tvar event = lazySizes.fire(elem, 'bgsetproxy', {\n\t\t\t\tsrc: bg,\n\t\t\t\tuseSrc: regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg,\n\t\t\t});\n\n\t\t\tif(!event.defaultPrevented){\n\t\t\t\telem.style.backgroundImage = 'url(' + event.detail.useSrc + ')';\n\t\t\t}\n\t\t}\n\n\t\tif(image._lazybgsetLoading){\n\t\t\tlazySizes.fire(elem, '_lazyloaded', {}, false, true);\n\t\t\tdelete image._lazybgsetLoading;\n\t\t}\n\t};\n\n\taddEventListener('lazybeforeunveil', function(e){\n\t\tvar set, image, elem;\n\n\t\tif(e.defaultPrevented || !(set = e.target.getAttribute('data-bgset'))){return;}\n\n\t\telem = e.target;\n\t\timage = document.createElement('img');\n\n\t\timage.alt = '';\n\n\t\timage._lazybgsetLoading = true;\n\t\te.detail.firesLoad = true;\n\n\t\tcreatePicture(set, elem, image);\n\n\t\tsetTimeout(function(){\n\t\t\tlazySizes.loader.unveil(image);\n\n\t\t\tlazySizes.rAF(function(){\n\t\t\t\tlazySizes.fire(image, '_lazyloaded', {}, true, true);\n\t\t\t\tif(image.complete) {\n\t\t\t\t\tproxyLoad({target: image});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t});\n\n\tdocument.addEventListener('load', proxyLoad, true);\n\n\twindow.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.detail.instance != lazySizes){return;}\n\t\tif(e.target._lazybgset && e.detail.dataAttr){\n\t\t\tvar elem = e.target._lazybgset;\n\t\t\tvar bgSize = getBgSize(elem);\n\n\t\t\tif(allowedBackgroundSize[bgSize]){\n\t\t\t\te.target._lazysizesParentFit = bgSize;\n\n\t\t\t\tlazySizes.rAF(function(){\n\t\t\t\t\te.target.setAttribute('data-parent-fit', bgSize);\n\t\t\t\t\tif(e.target._lazysizesParentFit){\n\t\t\t\t\t\tdelete e.target._lazysizesParentFit;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, true);\n\n\tdocument.documentElement.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || !e.target._lazybgset || e.detail.instance != lazySizes){return;}\n\t\te.detail.width = proxyWidth(e.target._lazybgset);\n\t});\n}));\n","/*\nThis plugin extends lazySizes to lazyLoad:\nbackground images, videos/posters and scripts\n\nBackground-Image:\nFor background images, use data-bg attribute:\n
\n\n Video:\n For video/audio use data-poster and preload=\"none\":\n \n\n For video that plays automatically if in view:\n \n\n Scripts:\n For scripts use data-script:\n \n\n\n Script modules using require:\n For modules using require use data-require:\n \n*/\n\n(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar bgLoad, regBgUrlEscape;\n\tvar uniqueUrls = {};\n\n\tif(document.addEventListener){\n\t\tregBgUrlEscape = /\\(|\\)|\\s|'/;\n\n\t\tbgLoad = function (url, cb){\n\t\t\tvar img = document.createElement('img');\n\t\t\timg.onload = function(){\n\t\t\t\timg.onload = null;\n\t\t\t\timg.onerror = null;\n\t\t\t\timg = null;\n\t\t\t\tcb();\n\t\t\t};\n\t\t\timg.onerror = img.onload;\n\n\t\t\timg.src = url;\n\n\t\t\tif(img && img.complete && img.onload){\n\t\t\t\timg.onload();\n\t\t\t}\n\t\t};\n\n\t\taddEventListener('lazybeforeunveil', function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar tmp, load, bg, poster;\n\t\t\tif(!e.defaultPrevented) {\n\n\t\t\t\tvar target = e.target;\n\n\t\t\t\tif(target.preload == 'none'){\n\t\t\t\t\ttarget.preload = target.getAttribute('data-preload') || 'auto';\n\t\t\t\t}\n\n\t\t\t\tif (target.getAttribute('data-autoplay') != null) {\n\t\t\t\t\tif (target.getAttribute('data-expand') && !target.autoplay) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttarget.play();\n\t\t\t\t\t\t} catch (er) {}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\ttarget.setAttribute('data-expand', '-10');\n\t\t\t\t\t\t\tlazySizes.aC(target, lazySizes.cfg.lazyClass);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttmp = target.getAttribute('data-link');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp, true);\n\t\t\t\t}\n\n\t\t\t\t// handle data-script\n\t\t\t\ttmp = target.getAttribute('data-script');\n\t\t\t\tif(tmp){\n\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t}\n\n\t\t\t\t// handle data-require\n\t\t\t\ttmp = target.getAttribute('data-require');\n\t\t\t\tif(tmp){\n\t\t\t\t\tif(lazySizes.cfg.requireJs){\n\t\t\t\t\t\tlazySizes.cfg.requireJs([tmp]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddStyleScript(tmp);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// handle data-bg\n\t\t\t\tbg = target.getAttribute('data-bg');\n\t\t\t\tif (bg) {\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg ) + ')';\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(bg, load);\n\t\t\t\t}\n\n\t\t\t\t// handle data-poster\n\t\t\t\tposter = target.getAttribute('data-poster');\n\t\t\t\tif(poster){\n\t\t\t\t\te.detail.firesLoad = true;\n\t\t\t\t\tload = function(){\n\t\t\t\t\t\ttarget.poster = poster;\n\t\t\t\t\t\te.detail.firesLoad = false;\n\t\t\t\t\t\tlazySizes.fire(target, '_lazyloaded', {}, true, true);\n\t\t\t\t\t};\n\n\t\t\t\t\tbgLoad(poster, load);\n\n\t\t\t\t}\n\t\t\t}\n\t\t}, false);\n\n\t}\n\n\tfunction addStyleScript(src, style){\n\t\tif(uniqueUrls[src]){\n\t\t\treturn;\n\t\t}\n\t\tvar elem = document.createElement(style ? 'link' : 'script');\n\t\tvar insertElem = document.getElementsByTagName('script')[0];\n\n\t\tif(style){\n\t\t\telem.rel = 'stylesheet';\n\t\t\telem.href = src;\n\t\t} else {\n\t\t\telem.src = src;\n\t\t}\n\t\tuniqueUrls[src] = true;\n\t\tuniqueUrls[elem.src || elem.href] = true;\n\t\tinsertElem.parentNode.insertBefore(elem, insertElem);\n\t}\n}));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(initialEvent){\n\t\tfactory(window.lazySizes, initialEvent);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes, initialEvent) {\n\t'use strict';\n\tvar cloneElementClass;\n\tvar style = document.createElement('a').style;\n\tvar fitSupport = 'objectFit' in style;\n\tvar positionSupport = fitSupport && 'objectPosition' in style;\n\tvar regCssFit = /object-fit[\"']*\\s*:\\s*[\"']*(contain|cover)/;\n\tvar regCssPosition = /object-position[\"']*\\s*:\\s*[\"']*(.+?)(?=($|,|'|\"|;))/;\n\tvar blankSrc = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar positionDefaults = {\n\t\tcenter: 'center',\n\t\t'50% 50%': 'center',\n\t};\n\n\tfunction getObject(element){\n\t\tvar css = (getComputedStyle(element, null) || {});\n\t\tvar content = css.fontFamily || '';\n\t\tvar objectFit = content.match(regCssFit) || '';\n\t\tvar objectPosition = objectFit && content.match(regCssPosition) || '';\n\n\t\tif(objectPosition){\n\t\t\tobjectPosition = objectPosition[1];\n\t\t}\n\n\t\treturn {\n\t\t\tfit: objectFit && objectFit[1] || '',\n\t\t\tposition: positionDefaults[objectPosition] || objectPosition || 'center',\n\t\t};\n\t}\n\n\tfunction generateStyleClass() {\n\t\tif (cloneElementClass) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar styleElement = document.createElement('style');\n\n\t\tcloneElementClass = lazySizes.cfg.objectFitClass || 'lazysizes-display-clone';\n\n\t\tdocument.querySelector('head').appendChild(styleElement);\n\t}\n\n\tfunction removePrevClone(element) {\n\t\tvar prev = element.previousElementSibling;\n\n\t\tif (prev && lazySizes.hC(prev, cloneElementClass)) {\n\t\t\tprev.parentNode.removeChild(prev);\n\t\t\telement.style.position = prev.getAttribute('data-position') || '';\n\t\t\telement.style.visibility = prev.getAttribute('data-visibility') || '';\n\t\t}\n\t}\n\n\tfunction initFix(element, config){\n\t\tvar switchClassesAdded, addedSrc, styleElement, styleElementStyle;\n\t\tvar lazysizesCfg = lazySizes.cfg;\n\n\t\tvar onChange = function(){\n\t\t\tvar src = element.currentSrc || element.src;\n\n\t\t\tif(src && addedSrc !== src){\n\t\t\t\taddedSrc = src;\n\t\t\t\tstyleElementStyle.backgroundImage = 'url(' + (regBgUrlEscape.test(src) ? JSON.stringify(src) : src ) + ')';\n\n\t\t\t\tif(!switchClassesAdded){\n\t\t\t\t\tswitchClassesAdded = true;\n\t\t\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadingClass);\n\t\t\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadedClass);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar rafedOnChange = function(){\n\t\t\tlazySizes.rAF(onChange);\n\t\t};\n\n\t\telement._lazysizesParentFit = config.fit;\n\n\t\telement.addEventListener('lazyloaded', rafedOnChange, true);\n\t\telement.addEventListener('load', rafedOnChange, true);\n\n\t\tlazySizes.rAF(function(){\n\n\t\t\tvar hideElement = element;\n\t\t\tvar container = element.parentNode;\n\n\t\t\tif(container.nodeName.toUpperCase() == 'PICTURE'){\n\t\t\t\thideElement = container;\n\t\t\t\tcontainer = container.parentNode;\n\t\t\t}\n\n\t\t\tremovePrevClone(hideElement);\n\n\t\t\tif (!cloneElementClass) {\n\t\t\t\tgenerateStyleClass();\n\t\t\t}\n\n\t\t\tstyleElement = element.cloneNode(false);\n\t\t\tstyleElementStyle = styleElement.style;\n\n\t\t\tstyleElement.addEventListener('load', function(){\n\t\t\t\tvar curSrc = styleElement.currentSrc || styleElement.src;\n\n\t\t\t\tif(curSrc && curSrc != blankSrc){\n\t\t\t\t\tstyleElement.src = blankSrc;\n\t\t\t\t\tstyleElement.srcset = '';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadedClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.lazyClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.autosizesClass);\n\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadingClass);\n\t\t\tlazySizes.aC(styleElement, cloneElementClass);\n\n\t\t\t['data-parent-fit', 'data-parent-container', 'data-object-fit-polyfilled',\n\t\t\t\tlazysizesCfg.srcsetAttr, lazysizesCfg.srcAttr].forEach(function(attr) {\n\t\t\t\tstyleElement.removeAttribute(attr);\n\t\t\t});\n\n\t\t\tstyleElement.src = blankSrc;\n\t\t\tstyleElement.srcset = '';\n\n\t\t\tstyleElementStyle.backgroundRepeat = 'no-repeat';\n\t\t\tstyleElementStyle.backgroundPosition = config.position;\n\t\t\tstyleElementStyle.backgroundSize = config.fit;\n\n\t\t\tstyleElement.setAttribute('data-position', hideElement.style.position);\n\t\t\tstyleElement.setAttribute('data-visibility', hideElement.style.visibility);\n\n\t\t\thideElement.style.visibility = 'hidden';\n\t\t\thideElement.style.position = 'absolute';\n\n\t\t\telement.setAttribute('data-parent-fit', config.fit);\n\t\t\telement.setAttribute('data-parent-container', 'prev');\n\t\t\telement.setAttribute('data-object-fit-polyfilled', '');\n\t\t\telement._objectFitPolyfilledDisplay = styleElement;\n\n\t\t\tcontainer.insertBefore(styleElement, hideElement);\n\n\t\t\tif(element._lazysizesParentFit){\n\t\t\t\tdelete element._lazysizesParentFit;\n\t\t\t}\n\n\t\t\tif(element.complete){\n\t\t\t\tonChange();\n\t\t\t}\n\t\t});\n\t}\n\n\tif(!fitSupport || !positionSupport){\n\t\tvar onRead = function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar element = e.target;\n\t\t\tvar obj = getObject(element);\n\n\t\t\tif(obj.fit && (!fitSupport || (obj.position != 'center'))){\n\t\t\t\tinitFix(element, obj);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\twindow.addEventListener('lazybeforesizes', function(e) {\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\tvar element = e.target;\n\n\t\t\tif (element.getAttribute('data-object-fit-polyfilled') != null && !element._objectFitPolyfilledDisplay) {\n\t\t\t\tif(!onRead(e)){\n\t\t\t\t\tlazySizes.rAF(function () {\n\t\t\t\t\t\telement.removeAttribute('data-object-fit-polyfilled');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('lazyunveilread', onRead, true);\n\n\t\tif(initialEvent && initialEvent.detail){\n\t\t\tonRead(initialEvent);\n\t\t}\n\t}\n}));\n","(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif(typeof module == 'object' && module.exports){\n\t\tfactory(require('lazysizes'));\n\t} else if (typeof define == 'function' && define.amd) {\n\t\tdefine(['lazysizes'], factory);\n\t} else if(window.lazySizes) {\n\t\tglobalInstall();\n\t} else {\n\t\twindow.addEventListener('lazyunveilread', globalInstall, true);\n\t}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar polyfill;\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar img = document.createElement('img');\n\tvar supportSrcset = ('sizes' in img) && ('srcset' in img);\n\tvar regHDesc = /\\s+\\d+h/g;\n\tvar fixEdgeHDescriptor = (function(){\n\t\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\t\tvar forEach = Array.prototype.forEach;\n\n\t\treturn function(){\n\t\t\tvar img = document.createElement('img');\n\t\t\tvar removeHDescriptors = function(source){\n\t\t\t\tvar ratio, match;\n\t\t\t\tvar srcset = source.getAttribute(lazySizesCfg.srcsetAttr);\n\t\t\t\tif(srcset){\n\t\t\t\t\tif((match = srcset.match(regDescriptors))){\n\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\tratio = match[1] / match[3];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tratio = match[3] / match[1];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(ratio){\n\t\t\t\t\t\t\tsource.setAttribute('data-aspectratio', ratio);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, srcset.replace(regHDesc, ''));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar handler = function(e){\n\t\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\t\tvar picture = e.target.parentNode;\n\n\t\t\t\tif(picture && picture.nodeName == 'PICTURE'){\n\t\t\t\t\tforEach.call(picture.getElementsByTagName('source'), removeHDescriptors);\n\t\t\t\t}\n\t\t\t\tremoveHDescriptors(e.target);\n\t\t\t};\n\n\t\t\tvar test = function(){\n\t\t\t\tif(!!img.currentSrc){\n\t\t\t\t\tdocument.removeEventListener('lazybeforeunveil', handler);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.addEventListener('lazybeforeunveil', handler);\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\n\t\t\timg.srcset = 'data:,a 1w 1h';\n\n\t\t\tif(img.complete){\n\t\t\t\ttest();\n\t\t\t}\n\t\t};\n\t})();\n\n\tif(!lazySizesCfg.supportsType){\n\t\tlazySizesCfg.supportsType = function(type/*, elem*/){\n\t\t\treturn !type;\n\t\t};\n\t}\n\n\tif (window.HTMLPictureElement && supportSrcset) {\n\t\tif(!lazySizes.hasHDescriptorFix && document.msElementsFromPoint){\n\t\t\tlazySizes.hasHDescriptorFix = true;\n\t\t\tfixEdgeHDescriptor();\n\t\t}\n\t\treturn;\n\t}\n\n\tif(window.picturefill || lazySizesCfg.pf){return;}\n\n\tlazySizesCfg.pf = function(options){\n\t\tvar i, len;\n\t\tif(window.picturefill){return;}\n\t\tfor(i = 0, len = options.elements.length; i < len; i++){\n\t\t\tpolyfill(options.elements[i]);\n\t\t}\n\t};\n\n\t// partial polyfill\n\tpolyfill = (function(){\n\t\tvar ascendingSort = function( a, b ) {\n\t\t\treturn a.w - b.w;\n\t\t};\n\t\tvar regPxLength = /^\\s*\\d+\\.*\\d*px\\s*$/;\n\t\tvar reduceCandidate = function (srces) {\n\t\t\tvar lowerCandidate, bonusFactor;\n\t\t\tvar len = srces.length;\n\t\t\tvar candidate = srces[len -1];\n\t\t\tvar i = 0;\n\n\t\t\tfor(i; i < len;i++){\n\t\t\t\tcandidate = srces[i];\n\t\t\t\tcandidate.d = candidate.w / srces.w;\n\n\t\t\t\tif(candidate.d >= srces.d){\n\t\t\t\t\tif(!candidate.cached && (lowerCandidate = srces[i - 1]) &&\n\t\t\t\t\t\tlowerCandidate.d > srces.d - (0.13 * Math.pow(srces.d, 2.2))){\n\n\t\t\t\t\t\tbonusFactor = Math.pow(lowerCandidate.d - 0.6, 1.6);\n\n\t\t\t\t\t\tif(lowerCandidate.cached) {\n\t\t\t\t\t\t\tlowerCandidate.d += 0.15 * bonusFactor;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(lowerCandidate.d + ((candidate.d - srces.d) * bonusFactor) > srces.d){\n\t\t\t\t\t\t\tcandidate = lowerCandidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn candidate;\n\t\t};\n\n\t\tvar parseWsrcset = (function(){\n\t\t\tvar candidates;\n\t\t\tvar regWCandidates = /(([^,\\s].[^\\s]+)\\s+(\\d+)w)/g;\n\t\t\tvar regMultiple = /\\s/;\n\t\t\tvar addCandidate = function(match, candidate, url, wDescriptor){\n\t\t\t\tcandidates.push({\n\t\t\t\t\tc: candidate,\n\t\t\t\t\tu: url,\n\t\t\t\t\tw: wDescriptor * 1\n\t\t\t\t});\n\t\t\t};\n\n\t\t\treturn function(input){\n\t\t\t\tcandidates = [];\n\t\t\t\tinput = input.trim();\n\t\t\t\tinput\n\t\t\t\t\t.replace(regHDesc, '')\n\t\t\t\t\t.replace(regWCandidates, addCandidate)\n\t\t\t\t;\n\n\t\t\t\tif(!candidates.length && input && !regMultiple.test(input)){\n\t\t\t\t\tcandidates.push({\n\t\t\t\t\t\tc: input,\n\t\t\t\t\t\tu: input,\n\t\t\t\t\t\tw: 99\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn candidates;\n\t\t\t};\n\t\t})();\n\n\t\tvar runMatchMedia = function(){\n\t\t\tif(runMatchMedia.init){return;}\n\n\t\t\trunMatchMedia.init = true;\n\t\t\taddEventListener('resize', (function(){\n\t\t\t\tvar timer;\n\t\t\t\tvar matchMediaElems = document.getElementsByClassName('lazymatchmedia');\n\t\t\t\tvar run = function(){\n\t\t\t\t\tvar i, len;\n\t\t\t\t\tfor(i = 0, len = matchMediaElems.length; i < len; i++){\n\t\t\t\t\t\tpolyfill(matchMediaElems[i]);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function(){\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = setTimeout(run, 66);\n\t\t\t\t};\n\t\t\t})());\n\t\t};\n\n\t\tvar createSrcset = function(elem, isImage){\n\t\t\tvar parsedSet;\n\t\t\tvar srcSet = elem.getAttribute('srcset') || elem.getAttribute(lazySizesCfg.srcsetAttr);\n\n\t\t\tif(!srcSet && isImage){\n\t\t\t\tsrcSet = !elem._lazypolyfill ?\n\t\t\t\t\t(elem.getAttribute(lazySizesCfg.srcAttr) || elem.getAttribute('src')) :\n\t\t\t\t\telem._lazypolyfill._set\n\t\t\t\t;\n\t\t\t}\n\n\t\t\tif(!elem._lazypolyfill || elem._lazypolyfill._set != srcSet){\n\n\t\t\t\tparsedSet = parseWsrcset( srcSet || '' );\n\t\t\t\tif(isImage && elem.parentNode){\n\t\t\t\t\tparsedSet.isPicture = elem.parentNode.nodeName.toUpperCase() == 'PICTURE';\n\n\t\t\t\t\tif(parsedSet.isPicture){\n\t\t\t\t\t\tif(window.matchMedia){\n\t\t\t\t\t\t\tlazySizes.aC(elem, 'lazymatchmedia');\n\t\t\t\t\t\t\trunMatchMedia();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tparsedSet._set = srcSet;\n\t\t\t\tObject.defineProperty(elem, '_lazypolyfill', {\n\t\t\t\t\tvalue: parsedSet,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tvar getX = function(elem){\n\t\t\tvar dpr = window.devicePixelRatio || 1;\n\t\t\tvar optimum = lazySizes.getX && lazySizes.getX(elem);\n\t\t\treturn Math.min(optimum || dpr, 2.5, dpr);\n\t\t};\n\n\t\tvar matchesMedia = function(media){\n\t\t\tif(window.matchMedia){\n\t\t\t\tmatchesMedia = function(media){\n\t\t\t\t\treturn !media || (matchMedia(media) || {}).matches;\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn !media;\n\t\t\t}\n\n\t\t\treturn matchesMedia(media);\n\t\t};\n\n\t\tvar getCandidate = function(elem){\n\t\t\tvar sources, i, len, media, source, srces, src, width;\n\n\t\t\tsource = elem;\n\t\t\tcreateSrcset(source, true);\n\t\t\tsrces = source._lazypolyfill;\n\n\t\t\tif(srces.isPicture){\n\t\t\t\tfor(i = 0, sources = elem.parentNode.getElementsByTagName('source'), len = sources.length; i < len; i++){\n\t\t\t\t\tif( lazySizesCfg.supportsType(sources[i].getAttribute('type'), elem) && matchesMedia( sources[i].getAttribute('media')) ){\n\t\t\t\t\t\tsource = sources[i];\n\t\t\t\t\t\tcreateSrcset(source);\n\t\t\t\t\t\tsrces = source._lazypolyfill;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(srces.length > 1){\n\t\t\t\twidth = source.getAttribute('sizes') || '';\n\t\t\t\twidth = regPxLength.test(width) && parseInt(width, 10) || lazySizes.gW(elem, elem.parentNode);\n\t\t\t\tsrces.d = getX(elem);\n\t\t\t\tif(!srces.src || !srces.w || srces.w < width){\n\t\t\t\t\tsrces.w = width;\n\t\t\t\t\tsrc = reduceCandidate(srces.sort(ascendingSort));\n\t\t\t\t\tsrces.src = src;\n\t\t\t\t} else {\n\t\t\t\t\tsrc = srces.src;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsrc = srces[0];\n\t\t\t}\n\n\t\t\treturn src;\n\t\t};\n\n\t\tvar p = function(elem){\n\t\t\tif(supportSrcset && elem.parentNode && elem.parentNode.nodeName.toUpperCase() != 'PICTURE'){return;}\n\t\t\tvar candidate = getCandidate(elem);\n\n\t\t\tif(candidate && candidate.u && elem._lazypolyfill.cur != candidate.u){\n\t\t\t\telem._lazypolyfill.cur = candidate.u;\n\t\t\t\tcandidate.cached = true;\n\t\t\t\telem.setAttribute(lazySizesCfg.srcAttr, candidate.u);\n\t\t\t\telem.setAttribute('src', candidate.u);\n\t\t\t}\n\t\t};\n\n\t\tp.parse = parseWsrcset;\n\n\t\treturn p;\n\t})();\n\n\tif(lazySizesCfg.loadedClass && lazySizesCfg.loadingClass){\n\t\t(function(){\n\t\t\tvar sels = [];\n\t\t\t['img[sizes$=\"px\"][srcset].', 'picture > img:not([srcset]).'].forEach(function(sel){\n\t\t\t\tsels.push(sel + lazySizesCfg.loadedClass);\n\t\t\t\tsels.push(sel + lazySizesCfg.loadingClass);\n\t\t\t});\n\t\t\tlazySizesCfg.pf({\n\t\t\t\telements: document.querySelectorAll(sels.join(', '))\n\t\t\t});\n\t\t})();\n\n\t}\n}));\n","window.lazySizesConfig = window.lazySizesConfig || {};\r\nwindow.lazySizesConfig.customMedia = {\r\n '--xs': '(min-width: 540px)',\r\n '--sm': '(min-width: 720px)',\r\n '--md': '(min-width: 960px)',\r\n '--lg': '(min-width: 1240px)',\r\n '--xl': '(min-width: 1600px)',\r\n '--xxs-max': '(max-width: 539px)',\r\n '--xs-max': '(max-width: 719px)',\r\n '--sm-max': '(max-width: 959px)',\r\n '--md-max': '(max-width: 1239px)',\r\n '--lg-max': '(max-width: 1599px)',\r\n};\r\n","(function (window, factory) {\n var lazySizes = factory(window, window.document, Date);\n window.lazySizes = lazySizes;\n if (typeof module == 'object' && module.exports) {\n module.exports = lazySizes;\n }\n})(\n typeof window != 'undefined' ? window : {},\n function l(window, document, Date) {\n // Pass in the windoe Date function also for SSR because the Date class can be lost\n 'use strict';\n /*jshint eqnull:true */\n\n var lazysizes, lazySizesCfg;\n\n (function () {\n var prop;\n\n var lazySizesDefaults = {\n lazyClass: 'lazyload',\n loadedClass: 'lazyloaded',\n loadingClass: 'lazyloading',\n preloadClass: 'lazypreload',\n errorClass: 'lazyerror',\n //strictClass: 'lazystrict',\n autosizesClass: 'lazyautosizes',\n srcAttr: 'data-src',\n srcsetAttr: 'data-srcset',\n sizesAttr: 'data-sizes',\n //preloadAfterLoad: false,\n minSize: 40,\n customMedia: {},\n init: true,\n expFactor: 1.5,\n hFac: 0.8,\n loadMode: 2,\n loadHidden: true,\n ricTimeout: 0,\n throttleDelay: 125,\n };\n\n lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n for (prop in lazySizesDefaults) {\n if (!(prop in lazySizesCfg)) {\n lazySizesCfg[prop] = lazySizesDefaults[prop];\n }\n }\n })();\n\n if (!document || !document.getElementsByClassName) {\n return {\n init: function () {},\n cfg: lazySizesCfg,\n noSupport: true,\n };\n }\n\n var docElem = document.documentElement;\n\n var supportPicture = window.HTMLPictureElement;\n\n var _addEventListener = 'addEventListener';\n\n var _getAttribute = 'getAttribute';\n\n /**\n * Update to bind to window because 'this' becomes null during SSR\n * builds.\n */\n var addEventListener = window[_addEventListener].bind(window);\n\n var setTimeout = window.setTimeout;\n\n var requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n var requestIdleCallback = window.requestIdleCallback;\n\n var regPicture = /^picture$/i;\n\n var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n var regClassCache = {};\n\n var forEach = Array.prototype.forEach;\n\n var hasClass = function (ele, cls) {\n if (!regClassCache[cls]) {\n regClassCache[cls] = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\n }\n return (\n regClassCache[cls].test(ele[_getAttribute]('class') || '') &&\n regClassCache[cls]\n );\n };\n\n var addClass = function (ele, cls) {\n if (!hasClass(ele, cls)) {\n ele.setAttribute(\n 'class',\n (ele[_getAttribute]('class') || '').trim() + ' ' + cls\n );\n }\n };\n\n var removeClass = function (ele, cls) {\n var reg;\n if ((reg = hasClass(ele, cls))) {\n ele.setAttribute(\n 'class',\n (ele[_getAttribute]('class') || '').replace(reg, ' ')\n );\n }\n };\n\n var addRemoveLoadEvents = function (dom, fn, add) {\n var action = add ? _addEventListener : 'removeEventListener';\n if (add) {\n addRemoveLoadEvents(dom, fn);\n }\n loadEvents.forEach(function (evt) {\n dom[action](evt, fn);\n });\n };\n\n var triggerEvent = function (elem, name, detail, noBubbles, noCancelable) {\n var event = document.createEvent('Event');\n\n if (!detail) {\n detail = {};\n }\n\n detail.instance = lazysizes;\n\n event.initEvent(name, !noBubbles, !noCancelable);\n\n event.detail = detail;\n\n elem.dispatchEvent(event);\n return event;\n };\n\n var updatePolyfill = function (el, full) {\n var polyfill;\n if (\n !supportPicture &&\n (polyfill = window.picturefill || lazySizesCfg.pf)\n ) {\n if (full && full.src && !el[_getAttribute]('srcset')) {\n el.setAttribute('srcset', full.src);\n }\n polyfill({ reevaluate: true, elements: [el] });\n } else if (full && full.src) {\n el.src = full.src;\n }\n };\n\n var getCSS = function (elem, style) {\n return (getComputedStyle(elem, null) || {})[style];\n };\n\n var getWidth = function (elem, parent, width) {\n width = width || elem.offsetWidth;\n\n while (width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth) {\n width = parent.offsetWidth;\n parent = parent.parentNode;\n }\n\n return width;\n };\n\n var rAF = (function () {\n var running, waiting;\n var firstFns = [];\n var secondFns = [];\n var fns = firstFns;\n\n var run = function () {\n var runFns = fns;\n\n fns = firstFns.length ? secondFns : firstFns;\n\n running = true;\n waiting = false;\n\n while (runFns.length) {\n runFns.shift()();\n }\n\n running = false;\n };\n\n var rafBatch = function (fn, queue) {\n if (running && !queue) {\n fn.apply(this, arguments);\n } else {\n fns.push(fn);\n\n if (!waiting) {\n waiting = true;\n (document.hidden ? setTimeout : requestAnimationFrame)(run);\n }\n }\n };\n\n rafBatch._lsFlush = run;\n\n return rafBatch;\n })();\n\n var rAFIt = function (fn, simple) {\n return simple\n ? function () {\n rAF(fn);\n }\n : function () {\n var that = this;\n var args = arguments;\n rAF(function () {\n fn.apply(that, args);\n });\n };\n };\n\n var throttle = function (fn) {\n var running;\n var lastTime = 0;\n var gDelay = lazySizesCfg.throttleDelay;\n var rICTimeout = lazySizesCfg.ricTimeout;\n var run = function () {\n running = false;\n lastTime = Date.now();\n fn();\n };\n var idleCallback =\n requestIdleCallback && rICTimeout > 49\n ? function () {\n requestIdleCallback(run, { timeout: rICTimeout });\n\n if (rICTimeout !== lazySizesCfg.ricTimeout) {\n rICTimeout = lazySizesCfg.ricTimeout;\n }\n }\n : rAFIt(function () {\n setTimeout(run);\n }, true);\n return function (isPriority) {\n var delay;\n\n if ((isPriority = isPriority === true)) {\n rICTimeout = 33;\n }\n\n if (running) {\n return;\n }\n\n running = true;\n\n delay = gDelay - (Date.now() - lastTime);\n\n if (delay < 0) {\n delay = 0;\n }\n\n if (isPriority || delay < 9) {\n idleCallback();\n } else {\n setTimeout(idleCallback, delay);\n }\n };\n };\n\n //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n var debounce = function (func) {\n var timeout, timestamp;\n var wait = 99;\n var run = function () {\n timeout = null;\n func();\n };\n var later = function () {\n var last = Date.now() - timestamp;\n\n if (last < wait) {\n setTimeout(later, wait - last);\n } else {\n (requestIdleCallback || run)(run);\n }\n };\n\n return function () {\n timestamp = Date.now();\n\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n };\n };\n\n var loader = (function () {\n var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n var regImg = /^img$/i;\n var regIframe = /^iframe$/i;\n\n var supportScroll =\n 'onscroll' in window && !/(gle|ing)bot/.test(navigator.userAgent);\n\n var shrinkExpand = 0;\n var currentExpand = 0;\n\n var isLoading = 0;\n var lowRuns = -1;\n\n var resetPreloading = function (e) {\n isLoading--;\n if (!e || isLoading < 0 || !e.target) {\n isLoading = 0;\n }\n };\n\n var isVisible = function (elem) {\n if (isBodyHidden == null) {\n isBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n }\n\n return (\n isBodyHidden ||\n !(\n getCSS(elem.parentNode, 'visibility') == 'hidden' &&\n getCSS(elem, 'visibility') == 'hidden'\n )\n );\n };\n\n var isNestedVisible = function (elem, elemExpand) {\n var outerRect;\n var parent = elem;\n var visible = isVisible(elem);\n\n eLtop -= elemExpand;\n eLbottom += elemExpand;\n eLleft -= elemExpand;\n eLright += elemExpand;\n\n while (\n visible &&\n (parent = parent.offsetParent) &&\n parent != document.body &&\n parent != docElem\n ) {\n visible = (getCSS(parent, 'opacity') || 1) > 0;\n\n if (visible && getCSS(parent, 'overflow') != 'visible') {\n outerRect = parent.getBoundingClientRect();\n visible =\n eLright > outerRect.left &&\n eLleft < outerRect.right &&\n eLbottom > outerRect.top - 1 &&\n eLtop < outerRect.bottom + 1;\n }\n }\n\n return visible;\n };\n\n var checkElements = function () {\n var eLlen,\n i,\n rect,\n autoLoadElem,\n loadedSomething,\n elemExpand,\n elemNegativeExpand,\n elemExpandVal,\n beforeExpandVal,\n defaultExpand,\n preloadExpand,\n hFac;\n var lazyloadElems = lazysizes.elements;\n\n if (\n (loadMode = lazySizesCfg.loadMode) &&\n isLoading < 8 &&\n (eLlen = lazyloadElems.length)\n ) {\n i = 0;\n\n lowRuns++;\n\n for (; i < eLlen; i++) {\n if (!lazyloadElems[i] || lazyloadElems[i]._lazyRace) {\n continue;\n }\n\n if (\n !supportScroll ||\n (lazysizes.prematureUnveil &&\n lazysizes.prematureUnveil(lazyloadElems[i]))\n ) {\n unveilElement(lazyloadElems[i]);\n continue;\n }\n\n if (\n !(elemExpandVal =\n lazyloadElems[i][_getAttribute]('data-expand')) ||\n !(elemExpand = elemExpandVal * 1)\n ) {\n elemExpand = currentExpand;\n }\n\n if (!defaultExpand) {\n defaultExpand =\n !lazySizesCfg.expand || lazySizesCfg.expand < 1\n ? docElem.clientHeight > 500 && docElem.clientWidth > 500\n ? 500\n : 370\n : lazySizesCfg.expand;\n\n lazysizes._defEx = defaultExpand;\n\n preloadExpand = defaultExpand * lazySizesCfg.expFactor;\n hFac = lazySizesCfg.hFac;\n isBodyHidden = null;\n\n if (\n currentExpand < preloadExpand &&\n isLoading < 1 &&\n lowRuns > 2 &&\n loadMode > 2 &&\n !document.hidden\n ) {\n currentExpand = preloadExpand;\n lowRuns = 0;\n } else if (loadMode > 1 && lowRuns > 1 && isLoading < 6) {\n currentExpand = defaultExpand;\n } else {\n currentExpand = shrinkExpand;\n }\n }\n\n if (beforeExpandVal !== elemExpand) {\n eLvW = innerWidth + elemExpand * hFac;\n elvH = innerHeight + elemExpand;\n elemNegativeExpand = elemExpand * -1;\n beforeExpandVal = elemExpand;\n }\n\n rect = lazyloadElems[i].getBoundingClientRect();\n\n if (\n (eLbottom = rect.bottom) >= elemNegativeExpand &&\n (eLtop = rect.top) <= elvH &&\n (eLright = rect.right) >= elemNegativeExpand * hFac &&\n (eLleft = rect.left) <= eLvW &&\n (eLbottom || eLright || eLleft || eLtop) &&\n (lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n ((isCompleted &&\n isLoading < 3 &&\n !elemExpandVal &&\n (loadMode < 3 || lowRuns < 4)) ||\n isNestedVisible(lazyloadElems[i], elemExpand))\n ) {\n unveilElement(lazyloadElems[i]);\n loadedSomething = true;\n if (isLoading > 9) {\n break;\n }\n } else if (\n !loadedSomething &&\n isCompleted &&\n !autoLoadElem &&\n isLoading < 4 &&\n lowRuns < 4 &&\n loadMode > 2 &&\n (preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n (preloadElems[0] ||\n (!elemExpandVal &&\n (eLbottom ||\n eLright ||\n eLleft ||\n eLtop ||\n lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) !=\n 'auto')))\n ) {\n autoLoadElem = preloadElems[0] || lazyloadElems[i];\n }\n }\n\n if (autoLoadElem && !loadedSomething) {\n unveilElement(autoLoadElem);\n }\n }\n };\n\n var throttledCheckElements = throttle(checkElements);\n\n var switchLoadingClass = function (e) {\n var elem = e.target;\n\n if (elem._lazyCache) {\n delete elem._lazyCache;\n return;\n }\n\n resetPreloading(e);\n addClass(elem, lazySizesCfg.loadedClass);\n removeClass(elem, lazySizesCfg.loadingClass);\n addRemoveLoadEvents(elem, rafSwitchLoadingClass);\n triggerEvent(elem, 'lazyloaded');\n };\n var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n var rafSwitchLoadingClass = function (e) {\n rafedSwitchLoadingClass({ target: e.target });\n };\n\n var changeIframeSrc = function (elem, src) {\n try {\n elem.contentWindow.location.replace(src);\n } catch (e) {\n elem.src = src;\n }\n };\n\n var handleSources = function (source) {\n var customMedia;\n\n var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n if (\n (customMedia =\n lazySizesCfg.customMedia[\n source[_getAttribute]('data-media') ||\n source[_getAttribute]('media')\n ])\n ) {\n source.setAttribute('media', customMedia);\n }\n\n if (sourceSrcset) {\n source.setAttribute('srcset', sourceSrcset);\n }\n };\n\n var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg) {\n var src, srcset, parent, isPicture, event, firesLoad;\n\n if (\n !(event = triggerEvent(elem, 'lazybeforeunveil', detail))\n .defaultPrevented\n ) {\n if (sizes) {\n if (isAuto) {\n addClass(elem, lazySizesCfg.autosizesClass);\n } else {\n elem.setAttribute('sizes', sizes);\n }\n }\n\n srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n src = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n if (isImg) {\n parent = elem.parentNode;\n isPicture = parent && regPicture.test(parent.nodeName || '');\n }\n\n firesLoad =\n detail.firesLoad || ('src' in elem && (srcset || src || isPicture));\n\n event = { target: elem };\n\n addClass(elem, lazySizesCfg.loadingClass);\n\n if (firesLoad) {\n clearTimeout(resetPreloadingTimer);\n resetPreloadingTimer = setTimeout(resetPreloading, 2500);\n addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n }\n\n if (isPicture) {\n forEach.call(parent.getElementsByTagName('source'), handleSources);\n }\n\n if (srcset) {\n elem.setAttribute('srcset', srcset);\n } else if (src && !isPicture) {\n if (regIframe.test(elem.nodeName)) {\n changeIframeSrc(elem, src);\n } else {\n elem.src = src;\n }\n }\n\n if (isImg && (srcset || isPicture)) {\n updatePolyfill(elem, { src: src });\n }\n }\n\n if (elem._lazyRace) {\n delete elem._lazyRace;\n }\n removeClass(elem, lazySizesCfg.lazyClass);\n\n rAF(function () {\n // 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 var isLoaded = elem.complete && elem.naturalWidth > 1;\n\n if (!firesLoad || isLoaded) {\n if (isLoaded) {\n addClass(elem, 'ls-is-cached');\n }\n switchLoadingClass(event);\n elem._lazyCache = true;\n setTimeout(function () {\n if ('_lazyCache' in elem) {\n delete elem._lazyCache;\n }\n }, 9);\n }\n if (elem.loading == 'lazy') {\n isLoading--;\n }\n }, true);\n });\n\n var unveilElement = function (elem) {\n if (elem._lazyRace) {\n return;\n }\n var detail;\n\n var isImg = regImg.test(elem.nodeName);\n\n //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 var sizes =\n isImg &&\n (elem[_getAttribute](lazySizesCfg.sizesAttr) ||\n elem[_getAttribute]('sizes'));\n var isAuto = sizes == 'auto';\n\n if (\n (isAuto || !isCompleted) &&\n isImg &&\n (elem[_getAttribute]('src') || elem.srcset) &&\n !elem.complete &&\n !hasClass(elem, lazySizesCfg.errorClass) &&\n hasClass(elem, lazySizesCfg.lazyClass)\n ) {\n return;\n }\n\n detail = triggerEvent(elem, 'lazyunveilread').detail;\n\n if (isAuto) {\n autoSizer.updateElem(elem, true, elem.offsetWidth);\n }\n\n elem._lazyRace = true;\n isLoading++;\n\n lazyUnveil(elem, detail, isAuto, sizes, isImg);\n };\n\n var afterScroll = debounce(function () {\n lazySizesCfg.loadMode = 3;\n throttledCheckElements();\n });\n\n var altLoadmodeScrollListner = function () {\n if (lazySizesCfg.loadMode == 3) {\n lazySizesCfg.loadMode = 2;\n }\n afterScroll();\n };\n\n var onload = function () {\n if (isCompleted) {\n return;\n }\n if (Date.now() - started < 999) {\n setTimeout(onload, 999);\n return;\n }\n\n isCompleted = true;\n\n lazySizesCfg.loadMode = 3;\n\n throttledCheckElements();\n\n addEventListener('scroll', altLoadmodeScrollListner, true);\n };\n\n return {\n _: function () {\n started = Date.now();\n\n lazysizes.elements = document.getElementsByClassName(\n lazySizesCfg.lazyClass\n );\n preloadElems = document.getElementsByClassName(\n lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass\n );\n\n addEventListener('scroll', throttledCheckElements, true);\n\n addEventListener('resize', throttledCheckElements, true);\n\n addEventListener('pageshow', function (e) {\n if (e.persisted) {\n var loadingElements = document.querySelectorAll(\n '.' + lazySizesCfg.loadingClass\n );\n\n if (loadingElements.length && loadingElements.forEach) {\n requestAnimationFrame(function () {\n loadingElements.forEach(function (img) {\n if (img.complete) {\n unveilElement(img);\n }\n });\n });\n }\n }\n });\n\n if (window.MutationObserver) {\n new MutationObserver(throttledCheckElements).observe(docElem, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n } else {\n docElem[_addEventListener](\n 'DOMNodeInserted',\n throttledCheckElements,\n true\n );\n docElem[_addEventListener](\n 'DOMAttrModified',\n throttledCheckElements,\n true\n );\n setInterval(throttledCheckElements, 999);\n }\n\n addEventListener('hashchange', throttledCheckElements, true);\n\n //, 'fullscreenchange'\n [\n 'focus',\n 'mouseover',\n 'click',\n 'load',\n 'transitionend',\n 'animationend',\n ].forEach(function (name) {\n document[_addEventListener](name, throttledCheckElements, true);\n });\n\n if (/d$|^c/.test(document.readyState)) {\n onload();\n } else {\n addEventListener('load', onload);\n document[_addEventListener](\n 'DOMContentLoaded',\n throttledCheckElements\n );\n setTimeout(onload, 20000);\n }\n\n if (lazysizes.elements.length) {\n checkElements();\n rAF._lsFlush();\n } else {\n throttledCheckElements();\n }\n },\n checkElems: throttledCheckElements,\n unveil: unveilElement,\n _aLSL: altLoadmodeScrollListner,\n };\n })();\n\n var autoSizer = (function () {\n var autosizesElems;\n\n var sizeElement = rAFIt(function (elem, parent, event, width) {\n var sources, i, len;\n elem._lazysizesWidth = width;\n width += 'px';\n\n elem.setAttribute('sizes', width);\n\n if (regPicture.test(parent.nodeName || '')) {\n sources = parent.getElementsByTagName('source');\n for (i = 0, len = sources.length; i < len; i++) {\n sources[i].setAttribute('sizes', width);\n }\n }\n\n if (!event.detail.dataAttr) {\n updatePolyfill(elem, event.detail);\n }\n });\n var getSizeElement = function (elem, dataAttr, width) {\n var event;\n var parent = elem.parentNode;\n\n if (parent) {\n width = getWidth(elem, parent, width);\n event = triggerEvent(elem, 'lazybeforesizes', {\n width: width,\n dataAttr: !!dataAttr,\n });\n\n if (!event.defaultPrevented) {\n width = event.detail.width;\n\n if (width && width !== elem._lazysizesWidth) {\n sizeElement(elem, parent, event, width);\n }\n }\n }\n };\n\n var updateElementsSizes = function () {\n var i;\n var len = autosizesElems.length;\n if (len) {\n i = 0;\n\n for (; i < len; i++) {\n getSizeElement(autosizesElems[i]);\n }\n }\n };\n\n var debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n return {\n _: function () {\n autosizesElems = document.getElementsByClassName(\n lazySizesCfg.autosizesClass\n );\n addEventListener('resize', debouncedUpdateElementsSizes);\n },\n checkElems: debouncedUpdateElementsSizes,\n updateElem: getSizeElement,\n };\n })();\n\n var init = function () {\n if (!init.i && document.getElementsByClassName) {\n init.i = true;\n autoSizer._();\n loader._();\n }\n };\n\n setTimeout(function () {\n if (lazySizesCfg.init) {\n init();\n }\n });\n\n lazysizes = {\n cfg: lazySizesCfg,\n autoSizer: autoSizer,\n loader: loader,\n init: init,\n uP: updatePolyfill,\n aC: addClass,\n rC: removeClass,\n hC: hasClass,\n fire: triggerEvent,\n gW: getWidth,\n rAF: rAF,\n };\n\n return lazysizes;\n }\n);\n"]}