{"version":3,"file":"AE.polyfill.min.js","sources":["AE.polyfill.min.js"],"sourcesContent":["/*https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every*/\nif ( !Array.prototype.every ) {\n     Array.prototype.every = function ( callbackfn, thisArg ) {\n          'use strict';\n          var T, k;\n          if ( this == null ) {\n               throw new TypeError( 'this is null or not defined' );\n          }\n          var O = Object( this );\n          var len = O.length >>> 0;\n          if ( typeof callbackfn !== 'function' ) {\n               throw new TypeError();\n          }\n          if ( arguments.length > 1 ) {\n               T = thisArg;\n          }\n          k = 0;\n          while ( k < len ) {\n               var kValue;\n               if ( k in O ) {\n                    kValue = O[ k ];\n                    var testResult = callbackfn.call( T, kValue, k, O );\n                    if ( !testResult ) {\n                         return false;\n                    }\n               }\n               k++;\n          }\n          return true;\n     };\n}\n\n/*https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter*/\nif ( !Array.prototype.filter )\n     Array.prototype.filter = function ( func, thisArg ) {\n          'use strict';\n          if ( !( ( typeof func === 'Function' || typeof func === 'function' ) && this ) )\n               throw new TypeError();\n          var len = this.length >>> 0,\n               res = new Array( len ),\n               t = this,\n               c = 0,\n               i = -1;\n          if ( thisArg === undefined )\n               while ( ++i !== len )\n                    if ( i in this )\n                         if ( func( t[ i ], i, t ) )\n                              res[ c++ ] = t[ i ];\n                         else\n                              while ( ++i !== len )\n                                   if ( i in this )\n                                        if ( func.call( thisArg, t[ i ], i, t ) )\n                                             res[ c++ ] = t[ i ];\n          res.length = c;\n          return res;\n     };\n\n/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n* Production steps of ECMA-262, Edition 5, 15.4.4.18\n* Reference: http://es5.github.io/#x15.4.4.18\n*/\nif ( !Array.prototype.forEach ) {\n     Array.prototype.forEach = function ( callback /*, thisArg*/ ) {\n          'use strict';\n          var T, k;\n          if ( this == null ) {\n               throw new TypeError( 'this is null or not defined' );\n          }\n          var O = Object( this );\n          var len = O.length >>> 0;\n          if ( typeof callback !== 'function' ) {\n               throw new TypeError( callback + ' is not a function' );\n          }\n          if ( arguments.length > 1 ) {\n               T = arguments[ 1 ];\n          }\n          k = 0;\n          while ( k < len ) {\n               var kValue;\n               if ( k in O ) {\n                    kValue = O[ k ];\n                    callback.call( T, kValue, k, O );\n               }\n               k++;\n          }\n     };\n}\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes\n/*\n * array.includes polyfill\n */\nif (!Array.prototype.includes) {\n    Object.defineProperty(Array.prototype, 'includes', {\n        value: function (searchElement, fromIndex) {\n\n            if (this == null) throw new TypeError('\"this\" is null or not defined');\n\n            var o = Object(this);\n            var len = o.length >>> 0;\n\n            if (len === 0) return false;\n\n            var n = fromIndex | 0;\n            var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n            function sameValueZero(x, y) {\n                return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\n            }\n\n            while (k < len) {\n                if (sameValueZero(o[k], searchElement)) return true;\n                k++;\n            }\n\n            return false;\n        }\n    });\n}\n /* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Compatibility*/\n if ( !Array.prototype.indexOf ) {\n      Array.prototype.indexOf = function ( vMember, nStartFrom ) {\n           'use strict';\n           if ( this == null ) {\n                throw new TypeError( \"Array.prototype.indexOf() - can't convert `\" + this + \"` to object\" );\n           }\n           var nIdx = isFinite( nStartFrom ) ? Math.floor( nStartFrom ) : 0,\n                oThis = this instanceof Object ? this : new Object( this ),\n                nLen = isFinite( oThis.length ) ? Math.floor( oThis.length ) : 0;\n\n           if ( nIdx >= nLen ) {\n                return -1;\n           }\n\n           if ( nIdx < 0 ) {\n                nIdx = Math.max( nLen + nIdx, 0 );\n           }\n\n           if ( vMember === undefined ) {\n                do {\n                     if ( nIdx in oThis && oThis[ nIdx ] === undefined ) {\n                          return nIdx;\n                     }\n                } while ( ++nIdx < nLen );\n           } else {\n                do {\n                     if ( oThis[ nIdx ] === vMember ) {\n                          return nIdx;\n                     }\n                } while ( ++nIdx < nLen );\n           }\n           return -1;\n      };\n }\n\n /* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map\n  * Production steps of ECMA-262, Edition 5, 15.4.4.19\n  * Reference: http://es5.github.io/#x15.4.4.19\n  */\n if ( !Array.prototype.map ) {\n      Array.prototype.map = function ( callback /*, thisArg*/ ) {\n           'use strict';\n           var T, A, k;\n           if ( this == null ) {\n                throw new TypeError( 'this is null or not defined' );\n           }\n           var O = Object( this );\n           var len = O.length >>> 0;\n           if ( typeof callback !== 'function' ) {\n                throw new TypeError( callback + ' is not a function' );\n           }\n           if ( arguments.length > 1 ) {\n                T = arguments[ 1 ];\n           }\n\n           A = new Array( len );\n           k = 0;\n           while ( k < len ) {\n\n                var kValue, mappedValue;\n                if ( k in O ) {\n                     kValue = O[ k ];\n                     mappedValue = callback.call( T, kValue, k, O );\n                     A[ k ] = mappedValue;\n                }\n                k++;\n           }\n           return A;\n      };\n }\n\n/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */\n/*\nhttps://github.com/filamentgroup/loadCSS/blob/master/src/cssrelpreload.jsThis file is meant as a standalone workflow for\n- testing support for link[rel=preload]\n- enabling async CSS loading in browsers that do not support rel=preload\n- applying rel preload css once loaded, whether supported or not.\n*/\n( function ( w ) {\n     \"use strict\";\n     // rel=preload support test\n     if ( !w.loadCSS ) {\n          w.loadCSS = function () {};\n     }\n     // define on the loadCSS obj\n     var rp = loadCSS.relpreload = {};\n     // rel=preload feature support test\n     // runs once and returns a function for compat purposes\n     rp.support = ( function () {\n          var ret;\n          try {\n               ret = w.document.createElement( \"link\" ).relList.supports( \"preload\" );\n          } catch ( e ) {\n               ret = false;\n          }\n          return function () {\n               return ret;\n          };\n     } )();\n\n     // if preload isn't supported, get an asynchronous load by using a non-matching media attribute\n     // then change that media back to its intended value on load\n     rp.bindMediaToggle = function ( link ) {\n          // remember existing media attr for ultimate state, or default to 'all'\n          var finalMedia = link.media || \"all\";\n\n          function enableStylesheet() {\n               link.media = finalMedia;\n          }\n\n          // bind load handlers to enable media\n          if ( link.addEventListener ) {\n               link.addEventListener( \"load\", enableStylesheet );\n          } else if ( link.attachEvent ) {\n               link.attachEvent( \"onload\", enableStylesheet );\n          }\n\n          // Set rel and non-applicable media type to start an async request\n          // note: timeout allows this to happen async to let rendering continue in IE\n          setTimeout( function () {\n               link.rel = \"stylesheet\";\n               link.media = \"only x\";\n          } );\n          // also enable media after 3 seconds,\n          // which will catch very old browsers (android 2.x, old firefox) that don't support onload on link\n          setTimeout( enableStylesheet, 3000 );\n     };\n\n     // loop through link elements in DOM\n     rp.poly = function () {\n          // double check this to prevent external calls from running\n          if ( rp.support() ) {\n               return;\n          }\n          var links = w.document.getElementsByTagName( \"link\" );\n          for ( var i = 0; i < links.length; i++ ) {\n               var link = links[ i ];\n               // qualify links to those with rel=preload and as=style attrs\n               if ( link.rel === \"preload\" && link.getAttribute( \"as\" ) === \"style\" && !link.getAttribute( \"data-loadcss\" ) ) {\n                    // prevent rerunning on link\n                    link.setAttribute( \"data-loadcss\", true );\n                    // bind listeners to toggle media back\n                    rp.bindMediaToggle( link );\n               }\n          }\n     };\n\n     // if unsupported, run the polyfill\n     if ( !rp.support() ) {\n          // run once at least\n          rp.poly();\n\n          // rerun poly on an interval until onload\n          var run = w.setInterval( rp.poly, 500 );\n          if ( w.addEventListener ) {\n               w.addEventListener( \"load\", function () {\n                    rp.poly();\n                    w.clearInterval( run );\n               } );\n          } else if ( w.attachEvent ) {\n               w.attachEvent( \"onload\", function () {\n                    rp.poly();\n                    w.clearInterval( run );\n               } );\n          }\n     }\n\n     // commonjs\n     if ( typeof exports !== \"undefined\" ) {\n          exports.loadCSS = loadCSS;\n     } else {\n          w.loadCSS = loadCSS;\n     }\n}( typeof global !== \"undefined\" ? global : this ) );\n\nif ( !Date.now ) {\n     Date.now = function now() {\n          return new Date().getTime();\n     };\n}\n\n/*https://gist.github.com/jonathantneal/3748027*/\n!window.addEventListener && (function (WindowPrototype, DocumentPrototype, ElementPrototype, addEventListener, removeEventListener, dispatchEvent, registry) {\n\tWindowPrototype[addEventListener] = DocumentPrototype[addEventListener] = ElementPrototype[addEventListener] = function (type, listener) {\n\t\tvar target = this;\n\n\t\tregistry.unshift([target, type, listener, function (event) {\n\t\t\tevent.currentTarget = target;\n\t\t\tevent.preventDefault = function () { event.returnValue = false };\n\t\t\tevent.stopPropagation = function () { event.cancelBubble = true };\n\t\t\tevent.target = event.srcElement || target;\n\n\t\t\tlistener.call(target, event);\n\t\t}]);\n\n\t\tthis.attachEvent(\"on\" + type, registry[0][3]);\n\t};\n\n\tWindowPrototype[removeEventListener] = DocumentPrototype[removeEventListener] = ElementPrototype[removeEventListener] = function (type, listener) {\n\t\tfor (var index = 0, register; register = registry[index]; ++index) {\n\t\t\tif (register[0] == this && register[1] == type && register[2] == listener) {\n\t\t\t\treturn this.detachEvent(\"on\" + type, registry.splice(index, 1)[0][3]);\n\t\t\t}\n\t\t}\n\t};\n\n\tWindowPrototype[dispatchEvent] = DocumentPrototype[dispatchEvent] = ElementPrototype[dispatchEvent] = function (eventObject) {\n\t\treturn this.fireEvent(\"on\" + eventObject.type, eventObject);\n\t};\n})(Window.prototype, HTMLDocument.prototype, Element.prototype, \"addEventListener\", \"removeEventListener\", \"dispatchEvent\", []);\n\n/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create */\nif ( typeof Object.create !== \"function\" ) {\n     Object.create = function ( proto, propertiesObject ) {\n          'use strict';\n          if ( typeof proto !== 'object' && typeof proto !== 'function' ) {\n               throw new TypeError( 'Object prototype may only be an Object: ' + proto );\n          } else if ( proto === null ) {\n               throw new Error( \"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\" );\n          }\n\n          if ( typeof propertiesObject != 'undefined' ) {\n               throw new Error( \"This browser's implementation of Object.create is a shim and doesn't support a second argument.\" );\n          }\n\n          function F() {}\n          F.prototype = proto;\n\n          return new F();\n     };\n}\n\n/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys */\n// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys\nif ( !Object.keys ) {\n     Object.keys = ( function () {\n          'use strict';\n          var hasOwnProperty = Object.prototype.hasOwnProperty,\n               hasDontEnumBug = !( { toString: null } ).propertyIsEnumerable( 'toString' ),\n               dontEnums = [\n          'toString',\n          'toLocaleString',\n          'valueOf',\n          'hasOwnProperty',\n          'isPrototypeOf',\n          'propertyIsEnumerable',\n          'constructor'\n        ],\n               dontEnumsLength = dontEnums.length;\n\n          return function ( obj ) {\n               if ( typeof obj !== 'function' && ( typeof obj !== 'object' || obj === null ) ) {\n                    throw new TypeError( 'Object.keys called on non-object' );\n               }\n\n               var result = [],\n                    prop, i;\n\n               for ( prop in obj ) {\n                    if ( hasOwnProperty.call( obj, prop ) ) {\n                         result.push( prop );\n                    }\n               }\n\n               if ( hasDontEnumBug ) {\n                    for ( i = 0; i < dontEnumsLength; i++ ) {\n                         if ( hasOwnProperty.call( obj, dontEnums[ i ] ) ) {\n                              result.push( dontEnums[ i ] );\n                         }\n                    }\n               }\n               return result;\n          };\n     }() );\n}\n\n/*\n * object.isEmpty polyfill\n *\n * Checks if an array contains some elements\n * @return { Boolean } true: the array is empty\n */\nif (!Object.prototype.isEmpty) {\n\tObject.defineProperty(Object.prototype, \"isEmpty\", {\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t\twritable: true,\n\t\tvalue: function () {\n\t\t\t\t\tfor (var key in this) {\n\t\t\t\t\t\tif (this.hasOwnProperty(key))\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t}\n\t});\n}\n/*\n * object.watch polyfill\n */\nif ( !Object.prototype.watch ) {\n     Object.defineProperty( Object.prototype, \"watch\", {\n          enumerable: false,\n          configurable: true,\n          writable: false,\n          value: function ( prop, handler ) {\n               var oldval = this[ prop ],\n                    newval = oldval,\n                    getter = function () {\n                         return newval;\n                    },\n                    setter = function ( val ) {\n                         oldval = newval;\n                         return newval = handler.call( this, prop, oldval, val );\n                    };\n\n               if ( delete this[ prop ] ) {\n                    Object.defineProperty( this, prop, { get: getter, set: setter, enumerable: true, configurable: true } );\n               }\n          }\n     } );\n}\n\n/*\n * object.unwatch polyfill\n */\nif ( !Object.prototype.unwatch ) {\n     Object.defineProperty( Object.prototype, \"unwatch\", {\n          enumerable: false,\n          configurable: true,\n          writable: false,\n          value: function ( prop ) {\n               var val = this[ prop ];\n               delete this[ prop ];\n               this[ prop ] = val;\n          }\n     } );\n}\n\nif ( 'serviceWorker' in navigator ) {\n\n    if ( !Cache.prototype.add ) {\n        Cache.prototype.add = function add(request) {\n            return this.addAll([request]);\n        };\n    }\n\n    if (!Cache.prototype.addAll) {\n        Cache.prototype.addAll = function addAll(requests) {\n            var cache = this;\n\n            // Since DOMExceptions are not constructable:\n            function NetworkError(message) {\n                this.name = 'NetworkError';\n                this.code = 19;\n                this.message = message;\n            }\n            NetworkError.prototype = Object.create(Error.prototype);\n\n            return Promise.resolve().then(function () {\n                if (arguments.length < 1) throw new TypeError();\n\n                // Simulate sequence<(Request or USVString)> binding:\n                var sequence = [];\n\n                requests = requests.map(function (request) {\n                    if (request instanceof Request) {\n                        return request;\n                    } else {\n                        return String(request); // may throw TypeError\n                    }\n                });\n\n                return Promise.all(\n                    requests.map(function (request) {\n                        if (typeof request === 'string') {\n                            request = new Request(request);\n                        }\n\n                        var scheme = new URL(request.url).protocol;\n\n                        if (scheme !== 'http:' && scheme !== 'https:') {\n                            throw new NetworkError(\"Invalid scheme\");\n                        }\n\n                        return fetch(request.clone());\n                    })\n                );\n            }).then(function (responses) {\n                // TODO: check that requests don't overwrite one another\n                // (don't think this is possible to polyfill due to opaque responses)\n                return Promise.all(\n                    responses.map(function (response, i) {\n                        return cache.put(requests[i], response);\n                    })\n                );\n            }).then(function () {\n                return undefined;\n            });\n        };\n    }\n\n    if (!CacheStorage.prototype.match) {\n        // This is probably vulnerable to race conditions (removing caches etc)\n        CacheStorage.prototype.match = function match(request, opts) {\n            var caches = this;\n\n            return this.keys().then(function (cacheNames) {\n                var match;\n\n                return cacheNames.reduce(function (chain, cacheName) {\n                    return chain.then(function () {\n                        return match || caches.open(cacheName).then(function (cache) {\n                            return cache.match(request, opts);\n                        }).then(function (response) {\n                            match = response;\n                            return match;\n                        });\n                    });\n                }, Promise.resolve());\n            });\n        };\n    }\n    if (!Cache.prototype.add) {\n        Cache.prototype.add = function add(request) {\n            return this.addAll([request]);\n        };\n    }\n\n    if (!Cache.prototype.addAll) {\n        Cache.prototype.addAll = function addAll(requests) {\n            var cache = this;\n\n            // Since DOMExceptions are not constructable:\n            function NetworkError(message) {\n                this.name = 'NetworkError';\n                this.code = 19;\n                this.message = message;\n            }\n            NetworkError.prototype = Object.create(Error.prototype);\n\n            return Promise.resolve().then(function () {\n                if (arguments.length < 1) throw new TypeError();\n\n                // Simulate sequence<(Request or USVString)> binding:\n                var sequence = [];\n\n                requests = requests.map(function (request) {\n                    if (request instanceof Request) {\n                        return request;\n                    } else {\n                        return String(request); // may throw TypeError\n                    }\n                });\n\n                return Promise.all(\n                    requests.map(function (request) {\n                        if (typeof request === 'string') {\n                            request = new Request(request);\n                        }\n\n                        var scheme = new URL(request.url).protocol;\n\n                        if (scheme !== 'http:' && scheme !== 'https:') {\n                            throw new NetworkError(\"Invalid scheme\");\n                        }\n\n                        return fetch(request.clone());\n                    })\n                );\n            }).then(function (responses) {\n                // TODO: check that requests don't overwrite one another\n                // (don't think this is possible to polyfill due to opaque responses)\n                return Promise.all(\n                    responses.map(function (response, i) {\n                        return cache.put(requests[i], response);\n                    })\n                );\n            }).then(function () {\n                return undefined;\n            });\n        };\n    }\n\n    if (!CacheStorage.prototype.match) {\n        // This is probably vulnerable to race conditions (removing caches etc)\n        CacheStorage.prototype.match = function match(request, opts) {\n            var caches = this;\n\n            return this.keys().then(function (cacheNames) {\n                var match;\n\n                return cacheNames.reduce(function (chain, cacheName) {\n                    return chain.then(function () {\n                        return match || caches.open(cacheName).then(function (cache) {\n                            return cache.match(request, opts);\n                        }).then(function (response) {\n                            match = response;\n                            return match;\n                        });\n                    });\n                }, Promise.resolve());\n            });\n        };\n    }\n    if (!Cache.prototype.add) {\n        Cache.prototype.add = function add(request) {\n            return this.addAll([request]);\n        };\n    }\n\n    if (!Cache.prototype.addAll) {\n        Cache.prototype.addAll = function addAll(requests) {\n            var cache = this;\n\n            // Since DOMExceptions are not constructable:\n            function NetworkError(message) {\n                this.name = 'NetworkError';\n                this.code = 19;\n                this.message = message;\n            }\n            NetworkError.prototype = Object.create(Error.prototype);\n\n            return Promise.resolve().then(function () {\n                if (arguments.length < 1) throw new TypeError();\n\n                // Simulate sequence<(Request or USVString)> binding:\n                var sequence = [];\n\n                requests = requests.map(function (request) {\n                    if (request instanceof Request) {\n                        return request;\n                    } else {\n                        return String(request); // may throw TypeError\n                    }\n                });\n\n                return Promise.all(\n                    requests.map(function (request) {\n                        if (typeof request === 'string') {\n                            request = new Request(request);\n                        }\n\n                        var scheme = new URL(request.url).protocol;\n\n                        if (scheme !== 'http:' && scheme !== 'https:') {\n                            throw new NetworkError(\"Invalid scheme\");\n                        }\n\n                        return fetch(request.clone());\n                    })\n                );\n            }).then(function (responses) {\n                // TODO: check that requests don't overwrite one another\n                // (don't think this is possible to polyfill due to opaque responses)\n                return Promise.all(\n                    responses.map(function (response, i) {\n                        return cache.put(requests[i], response);\n                    })\n                );\n            }).then(function () {\n                return undefined;\n            });\n        };\n    }\n\n    if (!CacheStorage.prototype.match) {\n        // This is probably vulnerable to race conditions (removing caches etc)\n        CacheStorage.prototype.match = function match(request, opts) {\n            var caches = this;\n\n            return this.keys().then(function (cacheNames) {\n                var match;\n\n                return cacheNames.reduce(function (chain, cacheName) {\n                    return chain.then(function () {\n                        return match || caches.open(cacheName).then(function (cache) {\n                            return cache.match(request, opts);\n                        }).then(function (response) {\n                            match = response;\n                            return match;\n                        });\n                    });\n                }, Promise.resolve());\n            });\n        };\n    }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nif ( !String.prototype.includes ) {\n     String.prototype.includes = function ( search, start ) {\n          'use strict';\n          if ( typeof start !== 'number' ) start = 0;\n          return !( start + search.length > this.length ) ? this.indexOf( search, start ) !== -1 : false;\n     };\n}\n\n/* https://tosbourn.com/a-fix-for-window-location-origin-in-internet-explorer/  */\nif (!window.location.origin) {\n    window.location.origin = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n}\n/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license */\n\nwindow.matchMedia || (window.matchMedia = function() {\n    \"use strict\";\n\n    // For browsers that support matchMedium api such as IE 9 and webkit\n    var styleMedia = (window.styleMedia || window.media);\n\n    // For those that don't support matchMedium\n    if (!styleMedia) {\n        var style       = document.createElement('style'),\n            script      = document.getElementsByTagName('script')[0],\n            info        = null;\n\n        style.type  = 'text/css';\n        style.id    = 'matchmediajs-test';\n\n        if (!script) {\n          document.head.appendChild(style);\n        } else {\n          script.parentNode.insertBefore(style, script);\n        }\n\n        // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n        info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n        styleMedia = {\n            matchMedium: function(media) {\n                var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n                // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n                if (style.styleSheet) {\n                    style.styleSheet.cssText = text;\n                } else {\n                    style.textContent = text;\n                }\n\n                // Test if media query is true or false\n                return info.width === '1px';\n            }\n        };\n    }\n\n    return function(media) {\n        return {\n            matches: styleMedia.matchMedium(media || 'all'),\n            media: media || 'all'\n        };\n    };\n}());\n\n/*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. MIT license */\n(function(){\n    // Bail out for browsers that have addListener support\n    if (window.matchMedia && window.matchMedia('all').addListener) {\n        return false;\n    }\n\n    var localMatchMedia = window.matchMedia,\n        hasMediaQueries = localMatchMedia('only all').matches,\n        isListening     = false,\n        timeoutID       = 0,    // setTimeout for debouncing 'handleChange'\n        queries         = [],   // Contains each 'mql' and associated 'listeners' if 'addListener' is used\n        handleChange    = function(evt) {\n            // Debounce\n            clearTimeout(timeoutID);\n\n            timeoutID = setTimeout(function() {\n                for (var i = 0, il = queries.length; i < il; i++) {\n                    var mql         = queries[i].mql,\n                        listeners   = queries[i].listeners || [],\n                        matches     = localMatchMedia(mql.media).matches;\n\n                    // Update mql.matches value and call listeners\n                    // Fire listeners only if transitioning to or from matched state\n                    if (matches !== mql.matches) {\n                        mql.matches = matches;\n\n                        for (var j = 0, jl = listeners.length; j < jl; j++) {\n                            listeners[j].call(window, mql);\n                        }\n                    }\n                }\n            }, 30);\n        };\n\n    window.matchMedia = function(media) {\n        var mql         = localMatchMedia(media),\n            listeners   = [],\n            index       = 0;\n\n        mql.addListener = function(listener) {\n            // Changes would not occur to css media type so return now (Affects IE <= 8)\n            if (!hasMediaQueries) {\n                return;\n            }\n\n            // Set up 'resize' listener for browsers that support CSS3 media queries (Not for IE <= 8)\n            // There should only ever be 1 resize listener running for performance\n            if (!isListening) {\n                isListening = true;\n                window.addEventListener('resize', handleChange, true);\n            }\n\n            // Push object only if it has not been pushed already\n            if (index === 0) {\n                index = queries.push({\n                    mql         : mql,\n                    listeners   : listeners\n                });\n            }\n\n            listeners.push(listener);\n        };\n\n        mql.removeListener = function(listener) {\n            for (var i = 0, il = listeners.length; i < il; i++){\n                if (listeners[i] === listener){\n                    listeners.splice(i, 1);\n                }\n            }\n        };\n\n        return mql;\n    };\n}());\n"],"names":["Array","prototype","every","callbackfn","thisArg","T","k","this","TypeError","O","Object","len","length","arguments","kValue","call","filter","func","res","t","c","i","undefined","forEach","callback","includes","defineProperty","value","searchElement","fromIndex","o","x","y","n","Math","max","abs","isNaN","indexOf","vMember","nStartFrom","nIdx","isFinite","floor","oThis","nLen","map","A","mappedValue","w","loadCSS","run","rp","relpreload","support","ret","document","createElement","relList","supports","e","bindMediaToggle","link","finalMedia","media","enableStylesheet","addEventListener","attachEvent","setTimeout","rel","poly","links","getElementsByTagName","getAttribute","setAttribute","setInterval","clearInterval","exports","global","Date","now","getTime","window","WindowPrototype","DocumentPrototype","ElementPrototype","registry","type","listener","target","unshift","event","currentTarget","preventDefault","returnValue","stopPropagation","cancelBubble","srcElement","register","index","detachEvent","splice","eventObject","fireEvent","Window","HTMLDocument","Element","create","proto","propertiesObject","Error","F","keys","hasOwnProperty","hasDontEnumBug","toString","propertyIsEnumerable","dontEnums","dontEnumsLength","obj","prop","result","push","isEmpty","enumerable","configurable","writable","key","watch","handler","oldval","newval","get","set","val","unwatch","navigator","Cache","add","request","addAll","requests","cache","NetworkError","message","name","code","Promise","resolve","then","Request","String","all","scheme","URL","url","protocol","fetch","clone","responses","response","put","CacheStorage","match","opts","caches","cacheNames","reduce","chain","cacheName","open","search","start","location","origin","hostname","port","matchMedia","style","script","info","styleMedia","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","localMatchMedia","hasMediaQueries","isListening","timeoutID","queries","handleChange","addListener","evt","clearTimeout","il","mql","listeners","j","jl","removeListener"],"mappings":"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"}