PageSourceSearch

https://www.myticket.de/assets/myticket/libs/lazysizes/lazysizes.js?v=91f02ad75e9aafaf96f181bff0f7754b81a804f5

js myticket.de collected 2026-09-24 11:09:07 UTC 19,987 bytes, 814 lines download raw bytes

vendor: 19,987 bytes, lines 1-814
1(function(window, factory) {
2	var lazySizes = factory(window, window.document, Date);
3	window.lazySizes = lazySizes;
4	if(typeof module == 'object' && module.exports){
5		module.exports = lazySizes;
6	}
7}(typeof window != 'undefined' ?
8      window : {}, 
9/**
10 * import("./types/global")
11 * @typedef { import("./types/lazysizes-config").LazySizesConfigPartial } LazySizesConfigPartial
12 */
13function l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost
14	'use strict';
15	/*jshint eqnull:true */
16
17	var lazysizes,
18		/**
19		 * @type { LazySizesConfigPartial }
20		 */
21		lazySizesCfg;
22
23	(function(){
24		var prop;
25
26		var lazySizesDefaults = {
27			lazyClass: 'lazyload',
28			loadedClass: 'lazyloaded',
29			loadingClass: 'lazyloading',
30			preloadClass: 'lazypreload',
31			errorClass: 'lazyerror',
32			//strictClass: 'lazystrict',
33			autosizesClass: 'lazyautosizes',
34			fastLoadedClass: 'ls-is-cached',
35			iframeLoadMode: 0,
36			srcAttr: 'data-src',
37			srcsetAttr: 'data-srcset',
38			sizesAttr: 'data-sizes',
39			//preloadAfterLoad: false,
40			minSize: 40,
41			customMedia: {},
42			init: true,
43			expFactor: 1.5,
44			hFac: 0.8,
45			loadMode: 2,
46			loadHidden: true,
47			ricTimeout: 0,
48			throttleDelay: 125,
49		};
50
51		lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};
52
53		for(prop in lazySizesDefaults){
54			if(!(prop in lazySizesCfg)){
55				lazySizesCfg[prop] = lazySizesDefaults[prop];
56			}
57		}
58	})();
59
60	if (!document || !document.getElementsByClassName) {
61		return {
62			init: function () {},
63			/**
64			 * @type { LazySizesConfigPartial }
65			 */
66			cfg: lazySizesCfg,
67			/**
68			 * @type { true }
69			 */
70			noSupport: true,
71		};
72	}
73
74	var docElem = document.documentElement;
75
76	var supportPicture = window.HTMLPictureElement;
77
78	var _addEventListener = 'addEventListener';
79
80	var _getAttribute = 'getAttribute';
81
82	/**
83	 * Update to bind to window because 'this' becomes null during SSR
84	 * builds.
85	 */
86	var addEventListener = window[_addEventListener].bind(window);
87
88	var setTimeout = window.setTimeout;
89
90	var requestAnimationFrame = window.requestAnimationFrame || setTimeout;
91
92	var requestIdleCallback = window.requestIdleCallback;
93
94	var regPicture = /^picture$/i;
95
96	var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];
97
98	var regClassCache = {};
99
100	var forEach = Array.prototype.forEach;
101
102	/**
103	 * @param ele {Element}
104	 * @param cls {string}
105	 */
106	var hasClass = function(ele, cls) {
107		if(!regClassCache[cls]){
108			regClassCache[cls] = new RegExp('(\\s|^)'+cls+'(\\s|$)');
109		}
110		return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];
111	};
112
113	/**
114	 * @param ele {Element}
115	 * @param cls {string}
116	 */
117	var addClass = function(ele, cls) {
118		if (!hasClass(ele, cls)){
119			ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);
120		}
121	};
122
123	/**
124	 * @param ele {Element}
125	 * @param cls {string}
126	 */
127	var removeClass = function(ele, cls) {
128		var reg;
129		if ((reg = hasClass(ele,cls))) {
130			ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));
131		}
132	};
133
134	var addRemoveLoadEvents = function(dom, fn, add){
135		var action = add ? _addEventListener : 'removeEventListener';
136		if(add){
137			addRemoveLoadEvents(dom, fn);
138		}
139		loadEvents.forEach(function(evt){
140			dom[action](evt, fn);
141		});
142	};
143
144	/**
145	 * @param elem { Element }
146	 * @param name { string }
147	 * @param detail { any }
148	 * @param noBubbles { boolean }
149	 * @param noCancelable { boolean }
150	 * @returns { CustomEvent }
151	 */
152	var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){
153		var event = document.createEvent('Event');
154
155		if(!detail){
156			detail = {};
157		}
158
159		detail.instance = lazysizes;
160
161		event.initEvent(name, !noBubbles, !noCancelable);
162
163		event.detail = detail;
164
165		elem.dispatchEvent(event);
166		return event;
167	};
168
169	var updatePolyfill = function (el, full){
170		var polyfill;
171		if( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){
172			if(full && full.src && !el[_getAttribute]('srcset')){
173				el.setAttribute('srcset', full.src);
174			}
175			polyfill({reevaluate: true, elements: [el]});
176		} else if(full && full.src){
177			el.src = full.src;
178		}
179	};
180
181	var getCSS = function (elem, style){
182		return (getComputedStyle(elem, null) || {})[style];
183	};
184
185	/**
186	 *
187	 * @param elem { Element }
188	 * @param parent { Element }
189	 * @param [width] {number}
190	 * @returns {number}
191	 */
192	var getWidth = function(elem, parent, width){
193		width = width || elem.offsetWidth;
194
195		while(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){
196			width =  parent.offsetWidth;
197			parent = parent.parentNode;
198		}
199
200		return width;
201	};
202
203	var rAF = (function(){
204		var running, waiting;
205		var firstFns = [];
206		var secondFns = [];
207		var fns = firstFns;
208
209		var run = function(){
210			var runFns = fns;
211
212			fns = firstFns.length ? secondFns : firstFns;
213
214			running = true;
215			waiting = false;
216
217			while(runFns.length){
218				runFns.shift()();
219			}
220
221			running = false;
222		};
223
224		var rafBatch = function(fn, queue){
225			if(running && !queue){
226				fn.apply(this, arguments);
227			} else {
228				fns.push(fn);
229
230				if(!waiting){
231					waiting = true;
232					(document.hidden ? setTimeout : requestAnimationFrame)(run);
233				}
234			}
235		};
236
237		rafBatch._lsFlush = run;
238
239		return rafBatch;
240	})();
241
242	var rAFIt = function(fn, simple){
243		return simple ?
244			function() {
245				rAF(fn);
246			} :
247			function(){
248				var that = this;
249				var args = arguments;
250				rAF(function(){
251					fn.apply(that, args);
252				});
253			}
254		;
255	};
256
257	var throttle = function(fn){
258		var running;
259		var lastTime = 0;
260		var gDelay = lazySizesCfg.throttleDelay;
261		var rICTimeout = lazySizesCfg.ricTimeout;
262		var run = function(){
263			running = false;
264			lastTime = Date.now();
265			fn();
266		};
267		var idleCallback = requestIdleCallback && rICTimeout > 49 ?
268			function(){
269				requestIdleCallback(run, {timeout: rICTimeout});
270
271				if(rICTimeout !== lazySizesCfg.ricTimeout){
272					rICTimeout = lazySizesCfg.ricTimeout;
273				}
274			} :
275			rAFIt(function(){
276				setTimeout(run);
277			}, true)
278		;
279
280		return function(isPriority){
281			var delay;
282
283			if((isPriority = isPriority === true)){
284				rICTimeout = 33;
285			}
286
287			if(running){
288				return;
289			}
290
291			running =  true;
292
293			delay = gDelay - (Date.now() - lastTime);
294
295			if(delay < 0){
296				delay = 0;
297			}
298
299			if(isPriority || delay < 9){
300				idleCallback();
301			} else {
302				setTimeout(idleCallback, delay);
303			}
304		};
305	};
306
307	//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html
308	var debounce = function(func) {
309		var timeout, timestamp;
310		var wait = 99;
311		var run = function(){
312			timeout = null;
313			func();
314		};
315		var later = function() {
316			var last = Date.now() - timestamp;
317
318			if (last < wait) {
319				setTimeout(later, wait - last);
320			} else {
321				(requestIdleCallback || run)(run);
322			}
323		};
324
325		return function() {
326			timestamp = Date.now();
327
328			if (!timeout) {
329				timeout = setTimeout(later, wait);
330			}
331		};
332	};
333
334	var loader = (function(){
335		var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;
336
337		var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;
338
339		var regImg = /^img$/i;
340		var regIframe = /^iframe$/i;
341
342		var supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));
343
344		var shrinkExpand = 0;
345		var currentExpand = 0;
346
347		var isLoading = 0;
348		var lowRuns = -1;
349
350		var resetPreloading = function(e){
351			isLoading--;
352			if(!e || isLoading < 0 || !e.target){
353				isLoading = 0;
354			}
355		};
356
357		var isVisible = function (elem) {
358			if (isBodyHidden == null) {
359				isBodyHidden = getCSS(document.body, 'visibility') == 'hidden';
360			}
361
362			return isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');
363		};
364
365		var isNestedVisible = function(elem, elemExpand){
366			var outerRect;
367			var parent = elem;
368			var visible = isVisible(elem);
369
370			eLtop -= elemExpand;
371			eLbottom += elemExpand;
372			eLleft -= elemExpand;
373			eLright += elemExpand;
374
375			while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){
376				visible = ((getCSS(parent, 'opacity') || 1) > 0);
377
378				if(visible && getCSS(parent, 'overflow') != 'visible'){
379					outerRect = parent.getBoundingClientRect();
380					visible = eLright > outerRect.left &&
381						eLleft < outerRect.right &&
382						eLbottom > outerRect.top - 1 &&
383						eLtop < outerRect.bottom + 1
384					;
385				}
386			}
387
388			return visible;
389		};
390
391		var checkElements = function() {
392			var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,
393				beforeExpandVal, defaultExpand, preloadExpand, hFac;
394			var lazyloadElems = lazysizes.elements;
395
396			if((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){
397
398				i = 0;
399
400				lowRuns++;
401
402				for(; i < eLlen; i++){
403
404					if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}
405
406					if(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}
407
408					if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){
409						elemExpand = currentExpand;
410					}
411
412					if (!defaultExpand) {
413						defaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?
414							docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :
415							lazySizesCfg.expand;
416
417						lazysizes._defEx = defaultExpand;
418
419						preloadExpand = defaultExpand * lazySizesCfg.expFactor;
420						hFac = lazySizesCfg.hFac;
421						isBodyHidden = null;
422
423						if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){
424							currentExpand = preloadExpand;
425							lowRuns = 0;
426						} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){
427							currentExpand = defaultExpand;
428						} else {
429							currentExpand = shrinkExpand;
430						}
431					}
432
433					if(beforeExpandVal !== elemExpand){
434						eLvW = innerWidth + (elemExpand * hFac);
435						elvH = innerHeight + elemExpand;
436						elemNegativeExpand = elemExpand * -1;
437						beforeExpandVal = elemExpand;
438					}
439
440					rect = lazyloadElems[i].getBoundingClientRect();
441
442					if ((eLbottom = rect.bottom) >= elemNegativeExpand &&
443						(eLtop = rect.top) <= elvH &&
444						(eLright = rect.right) >= elemNegativeExpand * hFac &&
445						(eLleft = rect.left) <= eLvW &&
446						(eLbottom || eLright || eLleft || eLtop) &&
447						(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&
448						((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){
449						unveilElement(lazyloadElems[i]);
450						loadedSomething = true;
451						if(isLoading > 9){break;}
452					} else if(!loadedSomething && isCompleted && !autoLoadElem &&
453						isLoading < 4 && lowRuns < 4 && loadMode > 2 &&
454						(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&
455						(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){
456						autoLoadElem = preloadElems[0] || lazyloadElems[i];
457					}
458				}
459
460				if(autoLoadElem && !loadedSomething){
461					unveilElement(autoLoadElem);
462				}
463			}
464		};
465
466		var throttledCheckElements = throttle(checkElements);
467
468		var switchLoadingClass = function(e){
469			var elem = e.target;
470
471			if (elem._lazyCache) {
472				delete elem._lazyCache;
473				return;
474			}
475
476			resetPreloading(e);
477			addClass(elem, lazySizesCfg.loadedClass);
478			removeClass(elem, lazySizesCfg.loadingClass);
479			addRemoveLoadEvents(elem, rafSwitchLoadingClass);
480			triggerEvent(elem, 'lazyloaded');
481		};
482		var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);
483		var rafSwitchLoadingClass = function(e){
484			rafedSwitchLoadingClass({target: e.target});
485		};
486
487		var changeIframeSrc = function(elem, src){
488			var loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;
489
490			// loadMode can be also a string!
491			if (loadMode == 0) {
492				elem.contentWindow.location.replace(src);
493			} else if (loadMode == 1) {
494				elem.src = src;
495			}
496		};
497
498		var handleSources = function(source){
499			var customMedia;
500
501			var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);
502
503			if( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){
504				source.setAttribute('media', customMedia);
505			}
506
507			if(sourceSrcset){
508				source.setAttribute('srcset', sourceSrcset);
509			}
510		};
511
512		var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){
513			var src, srcset, parent, isPicture, event, firesLoad;
514
515			if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){
516
517				if(sizes){
518					if(isAuto){
519						addClass(elem, lazySizesCfg.autosizesClass);
520					} else {
521						elem.setAttribute('sizes', sizes);
522					}
523				}
524
525				srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);
526				src = elem[_getAttribute](lazySizesCfg.srcAttr);
527
528				if(isImg) {
529					parent = elem.parentNode;
530					isPicture = parent && regPicture.test(parent.nodeName || '');
531				}
532
533				firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));
534
535				event = {target: elem};
536
537				addClass(elem, lazySizesCfg.loadingClass);
538
539				if(firesLoad){
540					clearTimeout(resetPreloadingTimer);
541					resetPreloadingTimer = setTimeout(resetPreloading, 2500);
542					addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);
543				}
544
545				if(isPicture){
546					forEach.call(parent.getElementsByTagName('source'), handleSources);
547				}
548
549				if(srcset){
550					elem.setAttribute('srcset', srcset);
551				} else if(src && !isPicture){
552					if(regIframe.test(elem.nodeName)){
553						changeIframeSrc(elem, src);
554					} else {
555						elem.src = src;
556					}
557				}
558
559				if(isImg && (srcset || isPicture)){
560					updatePolyfill(elem, {src: src});
561				}
562			}
563
564			if(elem._lazyRace){
565				delete elem._lazyRace;
566			}
567			removeClass(elem, lazySizesCfg.lazyClass);
568
569			rAF(function(){
570				// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)
571				var isLoaded = elem.complete && elem.naturalWidth > 1;
572
573				if( !firesLoad || isLoaded){
574					if (isLoaded) {
575						addClass(elem, lazySizesCfg.fastLoadedClass);
576					}
577					switchLoadingClass(event);
578					elem._lazyCache = true;
579					setTimeout(function(){
580						if ('_lazyCache' in elem) {
581							delete elem._lazyCache;
582						}
583					}, 9);
584				}
585				if (elem.loading == 'lazy') {
586					isLoading--;
587				}
588			}, true);
589		});
590
591		/**
592		 *
593		 * @param elem { Element }
594		 */
595		var unveilElement = function (elem){
596			if (elem._lazyRace) {return;}
597			var detail;
598
599			var isImg = regImg.test(elem.nodeName);
600
601			//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")
602			var sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));
603			var isAuto = sizes == 'auto';
604
605			if( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}
606
607			detail = triggerEvent(elem, 'lazyunveilread').detail;
608
609			if(isAuto){
610				 autoSizer.updateElem(elem, true, elem.offsetWidth);
611			}
612
613			elem._lazyRace = true;
614			isLoading++;
615
616			lazyUnveil(elem, detail, isAuto, sizes, isImg);
617		};
618
619		var afterScroll = debounce(function(){
620			lazySizesCfg.loadMode = 3;
621			throttledCheckElements();
622		});
623
624		var altLoadmodeScrollListner = function(){
625			if(lazySizesCfg.loadMode == 3){
626				lazySizesCfg.loadMode = 2;
627			}
628			afterScroll();
629		};
630
631		var onload = function(){
632			if(isCompleted){return;}
633			if(Date.now() - started < 999){
634				setTimeout(onload, 999);
635				return;
636			}
637
638
639			isCompleted = true;
640
641			lazySizesCfg.loadMode = 3;
642
643			throttledCheckElements();
644
645			addEventListener('scroll', altLoadmodeScrollListner, true);
646		};
647
648		return {
649			_: function(){
650				started = Date.now();
651
652				lazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);
653				preloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);
654
655				addEventListener('scroll', throttledCheckElements, true);
656
657				addEventListener('resize', throttledCheckElements, true);
658
659				addEventListener('pageshow', function (e) {
660					if (e.persisted) {
661						var loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);
662
663						if (loadingElements.length && loadingElements.forEach) {
664							requestAnimationFrame(function () {
665								loadingElements.forEach( function (img) {
666									if (img.complete) {
667										unveilElement(img);
668									}
669								});
670							});
671						}
672					}
673				});
674
675				if(window.MutationObserver){
676					new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );
677				} else {
678					docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);
679					docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);
680					setInterval(throttledCheckElements, 999);
681				}
682
683				addEventListener('hashchange', throttledCheckElements, true);
684
685				//, 'fullscreenchange'
686				['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){
687					document[_addEventListener](name, throttledCheckElements, true);
688				});
689
690				if((/d$|^c/.test(document.readyState))){
691					onload();
692				} else {
693					addEventListener('load', onload);
694					document[_addEventListener]('DOMContentLoaded', throttledCheckElements);
695					setTimeout(onload, 20000);
696				}
697
698				if(lazysizes.elements.length){
699					checkElements();
700					rAF._lsFlush();
701				} else {
702					throttledCheckElements();
703				}
704			},
705			checkElems: throttledCheckElements,
706			unveil: unveilElement,
707			_aLSL: altLoadmodeScrollListner,
708		};
709	})();
710
711
712	var autoSizer = (function(){
713		var autosizesElems;
714
715		var sizeElement = rAFIt(function(elem, parent, event, width){
716			var sources, i, len;
717			elem._lazysizesWidth = width;
718			width += 'px';
719
720			elem.setAttribute('sizes', width);
721
722			if(regPicture.test(parent.nodeName || '')){
723				sources = parent.getElementsByTagName('source');
724				for(i = 0, len = sources.length; i < len; i++){
725					sources[i].setAttribute('sizes', width);
726				}
727			}
728
729			if(!event.detail.dataAttr){
730				updatePolyfill(elem, event.detail);
731			}
732		});
733		/**
734		 *
735		 * @param elem {Element}
736		 * @param dataAttr
737		 * @param [width] { number }
738		 */
739		var getSizeElement = function (elem, dataAttr, width){
740			var event;
741			var parent = elem.parentNode;
742
743			if(parent){
744				width = getWidth(elem, parent, width);
745				event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});
746
747				if(!event.defaultPrevented){
748					width = event.detail.width;
749
750					if(width && width !== elem._lazysizesWidth){
751						sizeElement(elem, parent, event, width);
752					}
753				}
754			}
755		};
756
757		var updateElementsSizes = function(){
758			var i;
759			var len = autosizesElems.length;
760			if(len){
761				i = 0;
762
763				for(; i < len; i++){
764					getSizeElement(autosizesElems[i]);
765				}
766			}
767		};
768
769		var debouncedUpdateElementsSizes = debounce(updateElementsSizes);
770
771		return {
772			_: function(){
773				autosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);
774				addEventListener('resize', debouncedUpdateElementsSizes);
775			},
776			checkElems: debouncedUpdateElementsSizes,
777			updateElem: getSizeElement
778		};
779	})();
780
781	var init = function(){
782		if(!init.i && document.getElementsByClassName){
783			init.i = true;
784			autoSizer._();
785			loader._();
786		}
787	};
788
789	setTimeout(function(){
790		if(lazySizesCfg.init){
791			init();
792		}
793	});
794
795	lazysizes = {
796		/**
797		 * @type { LazySizesConfigPartial }
798		 */
799		cfg: lazySizesCfg,
800		autoSizer: autoSizer,
801		loader: loader,
802		init: init,
803		uP: updatePolyfill,
804		aC: addClass,
805		rC: removeClass,
806		hC: hasClass,
807		fire: triggerEvent,
808		gW: getWidth,
809		rAF: rAF,
810	};
811
812	return lazysizes;
813}
814));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.