{"version":3,"file":"vendors.min.js","mappings":"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","sources":["webpack://Danfoss-WebEx/webpack/runtime/chunk loaded","webpack://Danfoss-WebEx/webpack/runtime/create fake namespace object","webpack://Danfoss-WebEx/./Scripts/cropper-jquery-plugin.js","webpack://Danfoss-WebEx/./.modernizrrc.js","webpack://Danfoss-WebEx/./node_modules/dom7/dist/dom7.modular.js","webpack://Danfoss-WebEx/./node_modules/ssr-window/dist/ssr-window.esm.js","webpack://Danfoss-WebEx/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://Danfoss-WebEx/./node_modules/lazysizes/lazysizes.js","webpack://Danfoss-WebEx/./node_modules/picturefill/dist/picturefill.js","webpack://Danfoss-WebEx/./node_modules/react-dom/index.js","webpack://Danfoss-WebEx/./node_modules/react/index.js","webpack://Danfoss-WebEx/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://Danfoss-WebEx/./node_modules/scheduler/index.js","webpack://Danfoss-WebEx/./node_modules/url-search-params-polyfill/index.js","webpack://Danfoss-WebEx/webpack/bootstrap","webpack://Danfoss-WebEx/webpack/runtime/compat get default export","webpack://Danfoss-WebEx/webpack/runtime/define property getters","webpack://Danfoss-WebEx/webpack/runtime/global","webpack://Danfoss-WebEx/webpack/runtime/hasOwnProperty shorthand","webpack://Danfoss-WebEx/webpack/runtime/make namespace object","webpack://Danfoss-WebEx/webpack/runtime/node module decorator","webpack://Danfoss-WebEx/webpack/runtime/runtimeId","webpack://Danfoss-WebEx/webpack/runtime/jsonp chunk loading","webpack://Danfoss-WebEx/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","/* eslint-disable no-undef */\r\n/*!\r\n * jQuery.ellipsis\r\n * http://github.com/jjenzz/jquery.ellipsis\r\n * --------------------------------------------------------------------------\r\n * Copyright (c) 2013 J. Smith (@jjenzz)\r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n *\r\n * adds a class to the last 'allowed' line of text so you can apply\r\n * text-overflow: ellipsis;\r\n */\r\n(function (factory) {\r\n 'use strict';\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. register as an anonymous module\r\n define(['jquery'], factory);\r\n } else {\r\n // browser globals\r\n factory(jQuery);\r\n }\r\n})(function ($) {\r\n 'use strict';\r\n\r\n var namespace = 'ellipsis',\r\n span = '',\r\n defaults = {\r\n lines: 'auto',\r\n ellipClass: 'ellip',\r\n responsive: false,\r\n wrap: false,\r\n };\r\n\r\n var startEllipAt,\r\n setStartEllipAt,\r\n currLine = 0,\r\n currOffset;\r\n\r\n /**\r\n * init(base)\r\n */\r\n function init(base) {\r\n // if they only want one line just add\r\n // the class and do nothing else\r\n if (typeof base.opts.lines === 'number' && base.opts.lines < 2) {\r\n base.$el.addClass(base.opts.ellipLineClass);\r\n return;\r\n }\r\n\r\n var contHeight = base.$cont.height();\r\n\r\n // if they only want to ellipsis the overflow\r\n // then do nothing if there is no overflow\r\n if (base.opts.lines === 'auto' && base.$el.prop('scrollHeight') <= contHeight) {\r\n return;\r\n }\r\n\r\n if (!setStartEllipAt) {\r\n return;\r\n }\r\n\r\n // create an array of words from our string\r\n var words = $.trim(base.text).split(/\\s+/);\r\n\r\n // wrap each word in a span and temporarily append to the DOM\r\n base.$el.html(span + words.join(' ' + span) + '');\r\n\r\n // loop through words to determine which word the\r\n // ellipsis container should start from (need to\r\n // re-query spans from DOM so we can get their offset)\r\n base.$el.find('span').each(setStartEllipAt);\r\n\r\n // startEllipAt could be 0 so make sure we're\r\n // checking undefined instead of falsey\r\n if (startEllipAt != null) {\r\n updateText(startEllipAt, base, words);\r\n }\r\n\r\n if (base.opts.wrap) {\r\n base.$el.wrapInner('');\r\n }\r\n }\r\n\r\n /**\r\n * updateText() updates the text in the DOM\r\n * with a span around the line that needs\r\n * to be truncated\r\n *\r\n * @param {Number} i\r\n */\r\n function updateText(nth, base, words) {\r\n // add a span that wraps from nth\r\n // word to the end of the string\r\n words[nth] = '' + words[nth];\r\n words.push('');\r\n\r\n // update the DOM with\r\n // our new string/markup\r\n base.$el.html(words.join(' '));\r\n }\r\n\r\n function startEllipByLine(i, word) {\r\n var $word = $(word),\r\n $wordFake = $word.text($word.text() + ' '),\r\n top = $wordFake.position().top;\r\n\r\n // if top isn't currOfset\r\n // then we're on a new line\r\n if (top !== currOffset) {\r\n currOffset = top;\r\n currLine += 1;\r\n }\r\n\r\n // if the word's currLine is equal\r\n // to the line limit passed via options\r\n // then start ellip from this\r\n // word and stop looping\r\n if (currLine === base.opts.lines) {\r\n startEllipAt = i;\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Ellipsis()\r\n * --------------------------------------------------------------------------\r\n * @param {Node} el\r\n * @param {Object} opts\r\n */\r\n function Ellipsis(el, opts) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var base = this,\r\n lines = [],\r\n resizeTimer,\r\n lineHeight,\r\n contHeight;\r\n\r\n base.$cont = $(el);\r\n base.opts = $.extend({}, defaults, opts);\r\n\r\n /**\r\n * create() happens once when\r\n * instance is created\r\n */\r\n function create() {\r\n base.text = base.$cont.text();\r\n base.opts.ellipLineClass = base.opts.ellipClass + '-line';\r\n\r\n base.$el = $('');\r\n\r\n base.$el.text(base.text);\r\n base.$cont.empty().append(base.$el);\r\n\r\n init(base);\r\n }\r\n\r\n init(base);\r\n\r\n // only define the method if it's required\r\n if (base.opts.lines === 'auto') {\r\n /**\r\n * setStartEllipByHeight() sets the start\r\n * position to the first word in the last\r\n * line of the element that doesn't overflow\r\n *\r\n * @param {Number} i\r\n * @param {Node} word\r\n */\r\n var setStartEllipByHeight = function (i, word) {\r\n var $word = $(word),\r\n top = $word.position().top;\r\n\r\n lineHeight = lineHeight || $word.height();\r\n\r\n if (top === currOffset) {\r\n // if it's top matches currOffset\r\n // then it's on the same line\r\n // as the previous word\r\n lines[currLine].push($word);\r\n } else {\r\n // otherwise we're\r\n // on a new line\r\n currOffset = top;\r\n currLine += 1;\r\n lines[currLine] = [$word];\r\n }\r\n\r\n // if the bottom of the word is outside\r\n // the element (overflowing) then\r\n // stop looping and set startEllipAt to\r\n // the first word in the previous line\r\n if (top + lineHeight > contHeight) {\r\n startEllipAt = i - lines[currLine - 1].length;\r\n return false;\r\n }\r\n };\r\n\r\n setStartEllipAt = setStartEllipByHeight;\r\n }\r\n\r\n // only define the method if it's required\r\n if (typeof base.opts.lines === 'number' && base.opts.lines > 1) {\r\n /**\r\n * setStartEllipByLine() sets the start\r\n * position to the first word in the line\r\n * that was passed to opts. This forces\r\n * the ellipsis on a specific line\r\n * regardless of overflow\r\n *\r\n * @param {Number} i\r\n * @param {Node} word\r\n */\r\n var setStartEllipByLine = startEllipByLine(i, word);\r\n\r\n setStartEllipAt = setStartEllipByLine;\r\n }\r\n\r\n // only bind to window resize if required\r\n if (base.opts.responsive) {\r\n /**\r\n * resize() resets necessary vars\r\n * and content and then re-initialises\r\n * the Ellipsis script\r\n */\r\n var resize = function () {\r\n lines = [];\r\n currLine = 0;\r\n currOffset = null;\r\n startEllipAt = null;\r\n\r\n clearTimeout(resizeTimer);\r\n resizeTimer = setTimeout(function () {\r\n base.$el.html(base.text);\r\n init(base);\r\n }, 50);\r\n };\r\n\r\n $(window).on('resize.' + namespace, resize);\r\n }\r\n\r\n // start 'er up\r\n create();\r\n }\r\n\r\n $.fn[namespace] = function (opts) {\r\n return this.each(function () {\r\n try {\r\n $(this).data(namespace, new Ellipsis(this, opts));\r\n } catch (err) {\r\n if (window.console) {\r\n console.error(namespace + ': ' + err);\r\n }\r\n }\r\n });\r\n };\r\n});\r\n",";(function(window){\n var hadGlobal = 'Modernizr' in window;\n var oldGlobal = window.Modernizr;\n /*! modernizr 3.12.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-forcetouch-setclasses-cssclassprefix:no-touchevents !*/\n!function(e,n,t,r){function o(e,n){return typeof e===n}function i(){return\"function\"!=typeof t.createElement?t.createElement(arguments[0]):S?t.createElementNS.call(t,\"http://www.w3.org/2000/svg\",arguments[0]):t.createElement.apply(t,arguments)}function s(e,n){return!!~(\"\"+e).indexOf(n)}function l(){var e=t.body;return e||(e=i(S?\"svg\":\"body\"),e.fake=!0),e}function a(e,n,r,o){var s,a,f,u,c=\"modernizr\",p=i(\"div\"),d=l();if(parseInt(r,10))for(;r--;)f=i(\"div\"),f.id=o?o[r]:c+(r+1),p.appendChild(f);return s=i(\"style\"),s.type=\"text/css\",s.id=\"s\"+c,(d.fake?d:p).appendChild(s),d.appendChild(p),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(t.createTextNode(e)),p.id=c,d.fake&&(d.style.background=\"\",d.style.overflow=\"hidden\",u=_.style.overflow,_.style.overflow=\"hidden\",_.appendChild(d)),a=n(p,e),d.fake&&d.parentNode?(d.parentNode.removeChild(d),_.style.overflow=u,_.offsetHeight):p.parentNode.removeChild(p),!!a}function f(e){return e.replace(/([A-Z])/g,function(e,n){return\"-\"+n.toLowerCase()}).replace(/^ms-/,\"-ms-\")}function u(e,t,r){var o;if(\"getComputedStyle\"in n){o=getComputedStyle.call(n,e,t);var i=n.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(i){var s=i.error?\"error\":\"log\";i[s].call(i,\"getComputedStyle returning null, its possible modernizr test results are inaccurate\")}}else o=!t&&e.currentStyle&&e.currentStyle[r];return o}function c(e,t){var o=e.length;if(\"CSS\"in n&&\"supports\"in n.CSS){for(;o--;)if(n.CSS.supports(f(e[o]),t))return!0;return!1}if(\"CSSSupportsRule\"in n){for(var i=[];o--;)i.push(\"(\"+f(e[o])+\":\"+t+\")\");return i=i.join(\" or \"),a(\"@supports (\"+i+\") { #modernizr { position: absolute; } }\",function(e){return\"absolute\"===u(e,null,\"position\")})}return r}function p(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,\"\")}function d(e,n,t,l){function a(){u&&(delete O.style,delete O.modElem)}if(l=!o(l,\"undefined\")&&l,!o(t,\"undefined\")){var f=c(e,t);if(!o(f,\"undefined\"))return f}for(var u,d,v,m,y,h=[\"modernizr\",\"tspan\",\"samp\"];!O.style&&h.length;)u=!0,O.modElem=i(h.shift()),O.style=O.modElem.style;for(v=e.length,d=0;d0&&(n+=\" \"+t+e.join(\" \"+t)),S?_.className.baseVal=n:_.className=n)}(C),delete g.addTest,delete g.addAsyncTest;for(var A=0;A= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","\"use strict\";\n\n// eslint-disable-next-line func-names\nmodule.exports = function () {\n if (typeof globalThis === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if (typeof self === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n *\n *\n * @author Jerry Bendy \n * @licence MIT\n *\n */\n\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var forSureUsePolyfill = !decodesPlusesCorrectly;\n var useProxy = (!forSureUsePolyfill && nativeURLSearchParams && !isSupportObjectConstructor && self.Proxy);\n var propValue; \n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n /*\n * Apply polifill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n USPProto.forEach = USPProto.forEach || function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n\n /**\n * Sort all name-value pairs\n */\n USPProto.sort = USPProto.sort || function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.keys = USPProto.keys || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.values = USPProto.values || function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.entries = USPProto.entries || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = \"vendors\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"vendors\": 0,\n\t\"forms/jquery-validation\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkDanfoss_WebEx\"] = self[\"webpackChunkDanfoss_WebEx\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(69606)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(15598)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(49253)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(77090)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(47229)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(9669)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(67294)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(73935)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(35449)))\n__webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(82702)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"jqueryvendor\",\"pagemodules\",\"shared\",\"reactvendor\",\"sharedlargemodules\"], () => (__webpack_require__(50183)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","factory","$","startEllipAt","setStartEllipAt","currOffset","namespace","span","defaults","lines","ellipClass","responsive","wrap","currLine","init","base","opts","$el","addClass","ellipLineClass","contHeight","$cont","height","prop","words","trim","text","split","html","join","find","each","updateText","wrapInner","nth","push","startEllipByLine","i","word","$word","top","position","Ellipsis","el","resizeTimer","lineHeight","this","create","empty","append","extend","length","setStartEllipByLine","resize","clearTimeout","setTimeout","window","on","fn","data","err","console","error","hadGlobal","oldGlobal","Modernizr","e","n","t","r","o","createElement","arguments","S","createElementNS","call","apply","s","indexOf","a","f","u","c","p","d","body","fake","l","parseInt","id","appendChild","type","styleSheet","cssText","createTextNode","style","background","overflow","_","parentNode","removeChild","offsetHeight","replace","toLowerCase","CSS","supports","getComputedStyle","getPropertyValue","currentStyle","toUpperCase","O","modElem","v","m","y","h","shift","charAt","slice","x","N","g","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","addTest","name","options","addAsyncTest","prototype","C","documentElement","nodeName","w","setAttribute","removeAttribute","hasEvent","E","_cssomPrefixes","b","elem","unshift","_domPrefixes","testAllProps","T","prefixes","CSSRule","atRule","z","prefixed","MouseEvent","WEBKIT_FORCE_AT_MOUSE_DOWN","WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN","hasOwnProperty","aliases","Boolean","className","baseVal","RegExp","A","document","module","exports","Dom7","_createClass","arr","_classCallCheck","selector","context","els","tempParent","toCreate","innerHTML","childNodes","match","querySelectorAll","nodeType","unique","uniqueArray","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","getAttribute","attrName","removeAttr","key","dom7ElementDataStorage","dataKey","concat","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","_len","args","Array","_key","eventType","targetSelector","listener","capture","handleLiveEvent","target","eventData","dom7EventData","is","parents","k","handleEvent","undefined","events","event","dom7LiveListeners","proxyListener","addEventListener","dom7Listeners","off","_len2","_key2","handlers","handler","dom7proxy","removeEventListener","splice","trigger","_len5","_key5","evt","detail","bubbles","cancelable","initEvent","filter","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","left","css","props","matchedItems","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","newChild","tempDiv","firstChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","closest","foundElements","found","children","_len6","_key6","toAdd","Class","isObject","obj","_typeof","constructor","Object","src","keys","forEach","doc","ssrDocument","activeElement","blur","querySelector","getElementById","createEvent","getElementsByTagName","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","win","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","Image","Date","screen","matchMedia","globalThis","Function","self","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","bind","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","test","reg","addRemoveLoadEvents","action","triggerEvent","noBubbles","noCancelable","instance","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","elements","getCSS","getWidth","width","_lazysizesWidth","rAF","firstFns","secondFns","fns","run","runFns","running","waiting","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","throttle","lastTime","gDelay","rICTimeout","now","idleCallback","timeout","isPriority","delay","debounce","func","timestamp","wait","later","last","loader","regImg","regIframe","supportScroll","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","offsetParent","right","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","clientWidth","_defEx","eLvW","innerWidth","elvH","innerHeight","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","contentWindow","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","resetPreloadingTimer","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","started","persisted","loadingElements","img","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","_aLSL","sizeElement","sources","len","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","timer","dummySrc","fixRespimg","findPictureImgs","onResize","mq","ua","$1","picture","cloneNode","firstElementChild","_pfLastSize","imgs","addListener","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","noop","image","getImgAttr","setImgAttr","removeImgAttr","types","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","attachEvent","memoize","cache","input","isSpace","regLength","buildStr","image2","width1","isDomReady","regReady","timerId","lastClientWidth","evalCSS","string","parsedLength","setResolution","candidate","sizesattr","cWidth","calcListLength","res","opt","plen","qsa","reselect","sel","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","set","candidates","parseSet","makeUrl","url","warn","implementation","hasFeature","ns","getTime","substr","supSrcset","supSizes","supPicture","onerror","setSize","matchesMedia","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","exec","substring","pos","descriptors","currentDescriptor","state","inputLength","parseDescriptors","desc","lastChar","intVal","floatVal","pError","has1x","tokenize","parseSrcset","getEmValue","div","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","regexCssLengthWithUnits","regexCssCalc","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","pop","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","imageData","dpr","sets","setSrcToCur","cached","sort","Math","pow","sqrt","setSrc","origWidth","getSet","parseSets","element","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","getAllSourceElements","supported","parsed","extreme","evaled","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","max","vw","vh","em","rem","fillImgs","typeUri","detectTypeSupport","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","sortIndex","performance","unstable_now","q","B","D","F","setImmediate","G","startTime","expirationTime","H","I","J","K","L","M","priorityLevel","scheduling","isInputPending","P","Q","R","MessageChannel","U","port2","port1","onmessage","postMessage","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_shouldYield","unstable_wrapCallback","ampersandTest","nativeURLSearchParams","URLSearchParams","get","isSupportObjectConstructor","toString","decodesPlusesCorrectly","__URLSearchParams__","encodesAmpersandsCorrectly","URLSearchParamsPolyfill","iterable","Symbol","iterator","propValue","appendTo","dict","has","getAll","query","encode","Proxy","construct","defineProperty","USPProto","thisArg","parseToDict","getOwnPropertyNames","values","items","item","makeIterator","entries","encodeURIComponent","decode","decodeURIComponent","done","isArray","TypeError","pairs","val","JSON","stringify","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","getPrototypeOf","mode","then","def","current","definition","enumerable","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}