{"version":3,"file":"app.js","mappings":"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","sources":["webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/chunk loaded","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/load script","webpack://@upstatement/harvard-law-school-wp-theme/./.modernizrrc.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/page-scrolls.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/menu.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/algolia/widgets/searchbox.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/utils/algolia.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/algolia/menu-search.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/subnav.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/app.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/utils/onDocumentReady.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/algolia/algolia-client.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/utils/constants.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/utils/on.js","webpack://@upstatement/harvard-law-school-wp-theme/./templates/components/search/menu-results-group.twig","webpack://@upstatement/harvard-law-school-wp-theme/./templates/components/search/menu-results.twig","webpack://@upstatement/harvard-law-school-wp-theme/webpack/bootstrap","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/compat get default export","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/define property getters","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/ensure chunk","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/get javascript chunk filename","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/get mini-css chunk filename","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/global","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/hasOwnProperty shorthand","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/make namespace object","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/node module decorator","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/runtimeId","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/publicPath","webpack://@upstatement/harvard-law-school-wp-theme/webpack/runtime/jsonp chunk loading","webpack://@upstatement/harvard-law-school-wp-theme/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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(function(key) { return __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 inProgress = {};\nvar dataWebpackPrefix = \"@upstatement/harvard-law-school-wp-theme:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};",";(function(window){var hadGlobal='Modernizr' in window;var oldGlobal=window.Modernizr;/*!\n * modernizr v3.13.1\n * Build https://modernizr.com/download?-emoji-flexbox-promises-addtest-fnbind-printshiv-setclasses-testprop-dontmin\n *\n * Copyright (c)\n * Faruk Ates\n * Paul Irish\n * Alex Sexton\n * Ryan Seddon\n * Patrick Kettner\n * Stu Cox\n * Richard Herrera\n * Veeck\n\n * MIT License\n */\n\n/*\n * Modernizr tests which native CSS3 and HTML5 features are available in the\n * current UA and makes the results available to you in two ways: as properties on\n * a global `Modernizr` object, and as classes on the `` element. This\n * information allows you to progressively enhance your pages with a granular level\n * of control over the experience.\n*/\n\n;(function(scriptGlobalObject, window, document, undefined){\n\n var tests = [];\n \n\n /**\n * ModernizrProto is the constructor for Modernizr\n *\n * @class\n * @access public\n */\n var ModernizrProto = {\n _version: '3.13.1',\n\n // Any settings that don't work as separate modules\n // can go in here as configuration.\n _config: {\n 'classPrefix': '',\n 'enableClasses': true,\n 'enableJSClass': true,\n 'usePrefixes': true\n },\n\n // Queue of tests\n _q: [],\n\n // Stub these for people who are listening\n on: function(test, cb) {\n // I don't really think people should do this, but we can\n // safe guard it a bit.\n // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests.\n // This is in case people listen to synchronous tests. I would leave it out,\n // but the code to *disallow* sync tests in the real version of this\n // function is actually larger than this.\n var self = this;\n setTimeout(function() {\n cb(self[test]);\n }, 0);\n },\n\n addTest: function(name, fn, options) {\n tests.push({name: name, fn: fn, options: options});\n },\n\n addAsyncTest: function(fn) {\n tests.push({name: null, fn: fn});\n }\n };\n\n \n\n // Fake some of Object.create so we can force non test results to be non \"own\" properties.\n var Modernizr = function() {};\n Modernizr.prototype = ModernizrProto;\n\n // Leak modernizr globally when you `require` it rather than force it here.\n // Overwrite name so constructor name is nicer :D\n Modernizr = new Modernizr();\n\n \n\n var classes = [];\n \n\n /**\n * is returns a boolean if the typeof an obj is exactly type.\n *\n * @access private\n * @function is\n * @param {*} obj - A thing we want to check the type of\n * @param {string} type - A string to compare the typeof against\n * @returns {boolean} true if the typeof the first parameter is exactly the specified type, false otherwise\n */\n function is(obj, type) {\n return typeof obj === type;\n }\n\n ;\n\n /**\n * Run through all tests and detect their support in the current UA.\n *\n * @access private\n * @returns {void}\n */\n function testRunner() {\n var featureNames;\n var feature;\n var aliasIdx;\n var result;\n var nameIdx;\n var featureName;\n var featureNameSplit;\n\n for (var featureIdx in tests) {\n if (tests.hasOwnProperty(featureIdx)) {\n featureNames = [];\n feature = tests[featureIdx];\n // run the test, throw the return value into the Modernizr,\n // then based on that boolean, define an appropriate className\n // and push it into an array of classes we'll join later.\n //\n // If there is no name, it's an 'async' test that is run,\n // but not directly added to the object. That should\n // be done with a post-run addTest call.\n if (feature.name) {\n featureNames.push(feature.name.toLowerCase());\n\n if (feature.options && feature.options.aliases && feature.options.aliases.length) {\n // Add all the aliases into the names list\n for (aliasIdx = 0; aliasIdx < feature.options.aliases.length; aliasIdx++) {\n featureNames.push(feature.options.aliases[aliasIdx].toLowerCase());\n }\n }\n }\n\n // Run the test, or use the raw value if it's not a function\n result = is(feature.fn, 'function') ? feature.fn() : feature.fn;\n\n // Set each of the names on the Modernizr object\n for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) {\n featureName = featureNames[nameIdx];\n // Support dot properties as sub tests. We don't do checking to make sure\n // that the implied parent tests have been added. You must call them in\n // order (either in the test, or make the parent test a dependency).\n //\n // Cap it to TWO to make the logic simple and because who needs that kind of subtesting\n // hashtag famous last words\n featureNameSplit = featureName.split('.');\n\n if (featureNameSplit.length === 1) {\n Modernizr[featureNameSplit[0]] = result;\n } else {\n // cast to a Boolean, if not one already or if it doesnt exist yet (like inputtypes)\n if (!Modernizr[featureNameSplit[0]] || Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\n }\n\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result;\n }\n\n classes.push((result ? '' : 'no-') + featureNameSplit.join('-'));\n }\n }\n }\n }\n ;\n\n /**\n * docElement is a convenience wrapper to grab the root element of the document\n *\n * @access private\n * @returns {HTMLElement|SVGElement} The root element of the document\n */\n var docElement = document.documentElement;\n \n\n /**\n * A convenience helper to check if the document we are running in is an SVG document\n *\n * @access private\n * @returns {boolean}\n */\n var isSVG = docElement.nodeName.toLowerCase() === 'svg';\n\n \n\n /**\n * setClasses takes an array of class names and adds them to the root element\n *\n * @access private\n * @function setClasses\n * @param {string[]} classes - Array of class names\n */\n // Pass in an and array of class names, e.g.:\n // ['no-webp', 'borderradius', ...]\n function setClasses(classes) {\n var className = docElement.className;\n var classPrefix = Modernizr._config.classPrefix || '';\n\n if (isSVG) {\n className = className.baseVal;\n }\n\n // Change `no-js` to `js` (independently of the `enableClasses` option)\n // Handle classPrefix on this too\n if (Modernizr._config.enableJSClass) {\n var reJS = new RegExp('(^|\\\\s)' + classPrefix + 'no-js(\\\\s|$)');\n className = className.replace(reJS, '$1' + classPrefix + 'js$2');\n }\n\n if (Modernizr._config.enableClasses) {\n // Add the new classes\n if (classes.length > 0) {\n className += ' ' + classPrefix + classes.join(' ' + classPrefix);\n }\n if (isSVG) {\n docElement.className.baseVal = className;\n } else {\n docElement.className = className;\n }\n }\n }\n\n ;\n\n /**\n * hasOwnProp is a shim for hasOwnProperty that is needed for Safari 2.0 support\n *\n * @author kangax\n * @access private\n * @function hasOwnProp\n * @param {object} object - The object to check for a property\n * @param {string} property - The property to check for\n * @returns {boolean}\n */\n\n // hasOwnProperty shim by kangax needed for Safari 2.0 support\n var hasOwnProp;\n\n (function() {\n var _hasOwnProperty = ({}).hasOwnProperty;\n /* istanbul ignore else */\n /* we have no way of testing IE 5.5 or safari 2,\n * so just assume the else gets hit */\n if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) {\n hasOwnProp = function(object, property) {\n return _hasOwnProperty.call(object, property);\n };\n }\n else {\n hasOwnProp = function(object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */\n return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\n };\n }\n })();\n\n \n\n\n // _l tracks listeners for async tests, as well as tests that execute after the initial run\n ModernizrProto._l = {};\n\n /**\n * Modernizr.on is a way to listen for the completion of async tests. Being\n * asynchronous, they may not finish before your scripts run. As a result you\n * will get a possibly false negative `undefined` value.\n *\n * @memberOf Modernizr\n * @name Modernizr.on\n * @access public\n * @function on\n * @param {string} feature - String name of the feature detect\n * @param {Function} cb - Callback function returning a Boolean - true if feature is supported, false if not\n * @returns {void}\n * @example\n *\n * ```js\n * Modernizr.on('flash', function( result ) {\n * if (result) {\n * // the browser has flash\n * } else {\n * // the browser does not have flash\n * }\n * });\n * ```\n */\n ModernizrProto.on = function(feature, cb) {\n // Create the list of listeners if it doesn't exist\n if (!this._l[feature]) {\n this._l[feature] = [];\n }\n\n // Push this test on to the listener list\n this._l[feature].push(cb);\n\n // If it's already been resolved, trigger it on next tick\n if (Modernizr.hasOwnProperty(feature)) {\n // Next Tick\n setTimeout(function() {\n Modernizr._trigger(feature, Modernizr[feature]);\n }, 0);\n }\n };\n\n /**\n * _trigger is the private function used to signal test completion and run any\n * callbacks registered through [Modernizr.on](#modernizr-on)\n *\n * @memberOf Modernizr\n * @name Modernizr._trigger\n * @access private\n * @function _trigger\n * @param {string} feature - string name of the feature detect\n * @param {Function|boolean} [res] - A feature detection function, or the boolean =\n * result of a feature detection function\n * @returns {void}\n */\n ModernizrProto._trigger = function(feature, res) {\n if (!this._l[feature]) {\n return;\n }\n\n var cbs = this._l[feature];\n\n // Force async\n setTimeout(function() {\n var i, cb;\n for (i = 0; i < cbs.length; i++) {\n cb = cbs[i];\n cb(res);\n }\n }, 0);\n\n // Don't trigger these again\n delete this._l[feature];\n };\n\n /**\n * addTest allows you to define your own feature detects that are not currently\n * included in Modernizr (under the covers it's the exact same code Modernizr\n * uses for its own [feature detections](https://github.com/Modernizr/Modernizr/tree/master/feature-detects)).\n * Just like the official detects, the result\n * will be added onto the Modernizr object, as well as an appropriate className set on\n * the html element when configured to do so\n *\n * @memberOf Modernizr\n * @name Modernizr.addTest\n * @optionName Modernizr.addTest()\n * @optionProp addTest\n * @access public\n * @function addTest\n * @param {string|object} feature - The string name of the feature detect, or an\n * object of feature detect names and test\n * @param {Function|boolean} test - Function returning true if feature is supported,\n * false if not. Otherwise a boolean representing the results of a feature detection\n * @returns {object} the Modernizr object to allow chaining\n * @example\n *\n * The most common way of creating your own feature detects is by calling\n * `Modernizr.addTest` with a string (preferably just lowercase, without any\n * punctuation), and a function you want executed that will return a boolean result\n *\n * ```js\n * Modernizr.addTest('itsTuesday', function() {\n * var d = new Date();\n * return d.getDay() === 2;\n * });\n * ```\n *\n * When the above is run, it will set Modernizr.itstuesday to `true` when it is tuesday,\n * and to `false` every other day of the week. One thing to notice is that the names of\n * feature detect functions are always lowercased when added to the Modernizr object. That\n * means that `Modernizr.itsTuesday` will not exist, but `Modernizr.itstuesday` will.\n *\n *\n * Since we only look at the returned value from any feature detection function,\n * you do not need to actually use a function. For simple detections, just passing\n * in a statement that will return a boolean value works just fine.\n *\n * ```js\n * Modernizr.addTest('hasjquery', 'jQuery' in window);\n * ```\n *\n * Just like before, when the above runs `Modernizr.hasjquery` will be true if\n * jQuery has been included on the page. Not using a function saves a small amount\n * of overhead for the browser, as well as making your code much more readable.\n *\n * Finally, you also have the ability to pass in an object of feature names and\n * their tests. This is handy if you want to add multiple detections in one go.\n * The keys should always be a string, and the value can be either a boolean or\n * function that returns a boolean.\n *\n * ```js\n * var detects = {\n * 'hasjquery': 'jQuery' in window,\n * 'itstuesday': function() {\n * var d = new Date();\n * return d.getDay() === 2;\n * }\n * }\n *\n * Modernizr.addTest(detects);\n * ```\n *\n * There is really no difference between the first methods and this one, it is\n * just a convenience to let you write more readable code.\n */\n function addTest(feature, test) {\n\n if (typeof feature === 'object') {\n for (var key in feature) {\n if (hasOwnProp(feature, key)) {\n addTest(key, feature[ key ]);\n }\n }\n } else {\n\n feature = feature.toLowerCase();\n var featureNameSplit = feature.split('.');\n var last = Modernizr[featureNameSplit[0]];\n\n // Again, we don't check for parent test existence. Get that right, though.\n if (featureNameSplit.length === 2) {\n last = last[featureNameSplit[1]];\n }\n\n if (typeof last !== 'undefined') {\n // we're going to quit if you're trying to overwrite an existing test\n // if we were to allow it, we'd do this:\n // var re = new RegExp(\"\\\\b(no-)?\" + feature + \"\\\\b\");\n // docElement.className = docElement.className.replace( re, '' );\n // but, no rly, stuff 'em.\n return Modernizr;\n }\n\n test = typeof test === 'function' ? test() : test;\n\n // Set the value (this is the magic, right here).\n if (featureNameSplit.length === 1) {\n Modernizr[featureNameSplit[0]] = test;\n } else {\n // cast to a Boolean, if not one already\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\n }\n\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = test;\n }\n\n // Set a single class (either `feature` or `no-feature`)\n setClasses([(!!test && test !== false ? '' : 'no-') + featureNameSplit.join('-')]);\n\n // Trigger the event\n Modernizr._trigger(feature, test);\n }\n\n return Modernizr; // allow chaining.\n }\n\n // After all the tests are run, add self to the Modernizr prototype\n Modernizr._q.push(function() {\n ModernizrProto.addTest = addTest;\n });\n\n \n\n\n /**\n * @optionName html5printshiv\n * @optionProp html5printshiv\n */\n\n // Take the html5 variable out of the html5shiv scope so we can return it.\n var html5;\n if (!isSVG) {\n /**\n * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed\n */\n ;(function(window, document) {\n /*jshint evil:true */\n /** version */\n var version = '3.7.3';\n\n /** Preset options */\n var options = window.html5 || {};\n\n /** Used to skip problem elements */\n var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;\n\n /** Not all elements can be cloned in IE **/\n var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;\n\n /** Detect whether the browser supports default html5 styles */\n var supportsHtml5Styles;\n\n /** Name of the expando, to work with multiple documents or to re-shiv one document */\n var expando = '_html5shiv';\n\n /** The id for the the documents expando */\n var expanID = 0;\n\n /** Cached data for each document */\n var expandoData = {};\n\n /** Detect whether the browser supports unknown elements */\n var supportsUnknownElements;\n\n (function() {\n try {\n var a = document.createElement('a');\n a.innerHTML = '';\n //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles\n supportsHtml5Styles = ('hidden' in a);\n\n supportsUnknownElements = a.childNodes.length == 1 || (function() {\n // assign a false positive if unable to shiv\n (document.createElement)('a');\n var frag = document.createDocumentFragment();\n return (\n typeof frag.cloneNode == 'undefined' ||\n typeof frag.createDocumentFragment == 'undefined' ||\n typeof frag.createElement == 'undefined'\n );\n }());\n } catch(e) {\n // assign a false positive if detection fails => unable to shiv\n supportsHtml5Styles = true;\n supportsUnknownElements = true;\n }\n\n }());\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a style sheet with the given CSS text and adds it to the document.\n * @private\n * @param {Document} ownerDocument The document.\n * @param {String} cssText The CSS text.\n * @returns {StyleSheet} The style element.\n */\n function addStyleSheet(ownerDocument, cssText) {\n var p = ownerDocument.createElement('p'),\n parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;\n\n p.innerHTML = 'x';\n return parent.insertBefore(p.lastChild, parent.firstChild);\n }\n\n /**\n * Returns the value of `html5.elements` as an array.\n * @private\n * @returns {Array} An array of shived element node names.\n */\n function getElements() {\n var elements = html5.elements;\n return typeof elements == 'string' ? elements.split(' ') : elements;\n }\n\n /**\n * Extends the built-in list of html5 elements\n * @memberOf html5\n * @param {String|Array} newElements whitespace separated list or array of new element names to shiv\n * @param {Document} ownerDocument The context document.\n */\n function addElements(newElements, ownerDocument) {\n var elements = html5.elements;\n if(typeof elements != 'string'){\n elements = elements.join(' ');\n }\n if(typeof newElements != 'string'){\n newElements = newElements.join(' ');\n }\n html5.elements = elements +' '+ newElements;\n shivDocument(ownerDocument);\n }\n\n /**\n * Returns the data associated to the given document\n * @private\n * @param {Document} ownerDocument The document.\n * @returns {Object} An object of data.\n */\n function getExpandoData(ownerDocument) {\n var data = expandoData[ownerDocument[expando]];\n if (!data) {\n data = {};\n expanID++;\n ownerDocument[expando] = expanID;\n expandoData[expanID] = data;\n }\n return data;\n }\n\n /**\n * returns a shived element for the given nodeName and document\n * @memberOf html5\n * @param {String} nodeName name of the element\n * @param {Document} ownerDocument The context document.\n * @returns {Object} The shived element.\n */\n function createElement(nodeName, ownerDocument, data){\n if (!ownerDocument) {\n ownerDocument = document;\n }\n if(supportsUnknownElements){\n return ownerDocument.createElement(nodeName);\n }\n if (!data) {\n data = getExpandoData(ownerDocument);\n }\n var node;\n\n if (data.cache[nodeName]) {\n node = data.cache[nodeName].cloneNode();\n } else if (saveClones.test(nodeName)) {\n node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();\n } else {\n node = data.createElem(nodeName);\n }\n\n // Avoid adding some elements to fragments in IE < 9 because\n // * Attributes like `name` or `type` cannot be set/changed once an element\n // is inserted into a document/fragment\n // * Link elements with `src` attributes that are inaccessible, as with\n // a 403 response, will cause the tab/window to crash\n // * Script elements appended to fragments will execute when their `src`\n // or `text` property is set\n return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;\n }\n\n /**\n * returns a shived DocumentFragment for the given document\n * @memberOf html5\n * @param {Document} ownerDocument The context document.\n * @returns {Object} The shived DocumentFragment.\n */\n function createDocumentFragment(ownerDocument, data){\n if (!ownerDocument) {\n ownerDocument = document;\n }\n if(supportsUnknownElements){\n return ownerDocument.createDocumentFragment();\n }\n data = data || getExpandoData(ownerDocument);\n var clone = data.frag.cloneNode(),\n i = 0,\n elems = getElements(),\n l = elems.length;\n for(;i+~])(' + getElements().join('|') + ')(?=[[\\\\s,>+~#.:]|$)', 'gi'),\n replacement = '$1' + shivNamespace + '\\\\:$2';\n\n while (index--) {\n pair = parts[index] = parts[index].split('}');\n pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement);\n parts[index] = pair.join('}');\n }\n return parts.join('{');\n }\n\n /**\n * Removes the given wrappers, leaving the original elements.\n * @private\n * @params {Array} wrappers An array of printable wrappers.\n */\n function removeWrappers(wrappers) {\n var index = wrappers.length;\n while (index--) {\n wrappers[index].removeNode();\n }\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Shivs the given document for print.\n * @memberOf html5\n * @param {Document} ownerDocument The document to shiv.\n * @returns {Document} The shived document.\n */\n function shivPrint(ownerDocument) {\n var shivedSheet,\n wrappers,\n data = getExpandoData(ownerDocument),\n namespaces = ownerDocument.namespaces,\n ownerWindow = ownerDocument.parentWindow;\n\n if (!supportsShivableSheets || ownerDocument.printShived) {\n return ownerDocument;\n }\n if (typeof namespaces[shivNamespace] == 'undefined') {\n namespaces.add(shivNamespace);\n }\n\n function removeSheet() {\n clearTimeout(data._removeSheetTimer);\n if (shivedSheet) {\n shivedSheet.removeNode(true);\n }\n shivedSheet= null;\n }\n\n ownerWindow.attachEvent('onbeforeprint', function() {\n\n removeSheet();\n\n var imports,\n length,\n sheet,\n collection = ownerDocument.styleSheets,\n cssText = [],\n index = collection.length,\n sheets = Array(index);\n\n // convert styleSheets collection to an array\n while (index--) {\n sheets[index] = collection[index];\n }\n // concat all style sheet CSS text\n while ((sheet = sheets.pop())) {\n // IE does not enforce a same origin policy for external style sheets...\n // but has trouble with some dynamically created stylesheets\n if (!sheet.disabled && reMedia.test(sheet.media)) {\n\n try {\n imports = sheet.imports;\n length = imports.length;\n } catch(er){\n length = 0;\n }\n\n for (index = 0; index < length; index++) {\n sheets.push(imports[index]);\n }\n\n try {\n cssText.push(sheet.cssText);\n } catch(er){}\n }\n }\n\n // wrap all HTML5 elements with printable elements and add the shived style sheet\n cssText = shivCssText(cssText.reverse().join(''));\n wrappers = addWrappers(ownerDocument);\n shivedSheet = addStyleSheet(ownerDocument, cssText);\n\n });\n\n ownerWindow.attachEvent('onafterprint', function() {\n // remove wrappers, leaving the original elements, and remove the shived style sheet\n removeWrappers(wrappers);\n clearTimeout(data._removeSheetTimer);\n data._removeSheetTimer = setTimeout(removeSheet, 500);\n });\n\n ownerDocument.printShived = true;\n return ownerDocument;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // expose API\n html5.type += ' print';\n html5.shivPrint = shivPrint;\n\n // shiv for print\n shivPrint(document);\n\n if(typeof module == 'object' && module.exports){\n module.exports = html5;\n }\n\n }(typeof window !== \"undefined\" ? window : this, document));\n }\n\n ;\n\n /**\n * contains checks to see if a string contains another string\n *\n * @access private\n * @function contains\n * @param {string} str - The string we want to check for substrings\n * @param {string} substr - The substring we want to search the first string for\n * @returns {boolean} true if and only if the first string 'str' contains the second string 'substr'\n */\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n ;\n\n /**\n * createElement is a convenience wrapper around document.createElement. Since we\n * use createElement all over the place, this allows for (slightly) smaller code\n * as well as abstracting away issues with creating elements in contexts other than\n * HTML documents (e.g. SVG documents).\n *\n * @access private\n * @function createElement\n * @returns {HTMLElement|SVGElement} An HTML or SVG element\n */\n function createElement() {\n if (typeof document.createElement !== 'function') {\n // This is the case in IE7, where the type of createElement is \"object\".\n // For this reason, we cannot call apply() as Object is not a Function.\n return document.createElement(arguments[0]);\n } else if (isSVG) {\n return document.createElementNS.call(document, 'http://www.w3.org/2000/svg', arguments[0]);\n } else {\n return document.createElement.apply(document, arguments);\n }\n }\n\n ;\n\n /**\n * Create our \"modernizr\" element that we do most feature tests on.\n *\n * @access private\n */\n var modElem = {\n elem: createElement('modernizr')\n };\n\n // Clean up this element\n Modernizr._q.push(function() {\n delete modElem.elem;\n });\n\n \n\n var mStyle = {\n style: modElem.elem.style\n };\n\n // kill ref for gc, must happen before mod.elem is removed, so we unshift on to\n // the front of the queue.\n Modernizr._q.unshift(function() {\n delete mStyle.style;\n });\n\n \n\n /**\n * getBody returns the body of a document, or an element that can stand in for\n * the body if a real body does not exist\n *\n * @access private\n * @function getBody\n * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an\n * artificially created element that stands in for the body\n */\n function getBody() {\n // After page load injecting a fake body doesn't work so check if body exists\n var body = document.body;\n\n if (!body) {\n // Can't use the real body create a fake one.\n body = createElement(isSVG ? 'svg' : 'body');\n body.fake = true;\n }\n\n return body;\n }\n\n ;\n\n /**\n * injectElementWithStyles injects an element with style element and some CSS rules\n *\n * @access private\n * @function injectElementWithStyles\n * @param {string} rule - String representing a css rule\n * @param {Function} callback - A function that is used to test the injected element\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\n * @returns {boolean} the result of the specified callback test\n */\n function injectElementWithStyles(rule, callback, nodes, testnames) {\n var mod = 'modernizr';\n var style;\n var ret;\n var node;\n var docOverflow;\n var div = createElement('div');\n var body = getBody();\n\n if (parseInt(nodes, 10)) {\n // In order not to give false positives we create a node for each test\n // This also allows the method to scale for unspecified uses\n while (nodes--) {\n node = createElement('div');\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\n div.appendChild(node);\n }\n }\n\n style = createElement('style');\n style.type = 'text/css';\n style.id = 's' + mod;\n\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\n (!body.fake ? div : body).appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(document.createTextNode(rule));\n }\n div.id = mod;\n\n if (body.fake) {\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = 'hidden';\n docOverflow = docElement.style.overflow;\n docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n ret = callback(div, rule);\n // If this is done after page load we don't want to remove the body so check if body exists\n if (body.fake && body.parentNode) {\n body.parentNode.removeChild(body);\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n } else {\n div.parentNode.removeChild(div);\n }\n\n return !!ret;\n }\n\n ;\n\n /**\n * domToCSS takes a camelCase string and converts it to hyphen-case\n * e.g. boxSizing -> box-sizing\n *\n * @access private\n * @function domToCSS\n * @param {string} name - String name of camelCase prop we want to convert\n * @returns {string} The hyphen-case version of the supplied name\n */\n function domToCSS(name) {\n return name.replace(/([A-Z])/g, function(str, m1) {\n return '-' + m1.toLowerCase();\n }).replace(/^ms-/, '-ms-');\n }\n\n ;\n\n\n /**\n * wrapper around getComputedStyle, to fix issues with Firefox returning null when\n * called inside of a hidden iframe\n *\n * @access private\n * @function computedStyle\n * @param {HTMLElement|SVGElement} elem - The element we want to find the computed styles of\n * @param {string|null} [pseudo] - An optional pseudo element selector (e.g. :before), of null if none\n * @param {string} prop - A CSS property\n * @returns {CSSStyleDeclaration} the value of the specified CSS property\n */\n function computedStyle(elem, pseudo, prop) {\n var result;\n\n if ('getComputedStyle' in window) {\n result = getComputedStyle.call(window, elem, pseudo);\n var console = window.console;\n\n if (result !== null) {\n if (prop) {\n result = result.getPropertyValue(prop);\n }\n } else {\n if (console) {\n var method = console.error ? 'error' : 'log';\n console[method].call(console, 'getComputedStyle returning null, its possible modernizr test results are inaccurate');\n }\n }\n } else {\n result = !pseudo && elem.currentStyle && elem.currentStyle[prop];\n }\n\n return result;\n }\n\n ;\n\n /**\n * nativeTestProps allows for us to use native feature detection functionality if available.\n * some prefixed form, or false, in the case of an unsupported rule\n *\n * @access private\n * @function nativeTestProps\n * @param {Array} props - An array of property names\n * @param {string} value - A string representing the value we want to check via @supports\n * @returns {boolean|undefined} A boolean when @supports exists, undefined otherwise\n */\n // Accepts a list of property names and a single value\n // Returns `undefined` if native detection not available\n function nativeTestProps(props, value) {\n var i = props.length;\n // Start with the JS API: https://www.w3.org/TR/css3-conditional/#the-css-interface\n if ('CSS' in window && 'supports' in window.CSS) {\n // Try every prefixed variant of the property\n while (i--) {\n if (window.CSS.supports(domToCSS(props[i]), value)) {\n return true;\n }\n }\n return false;\n }\n // Otherwise fall back to at-rule (for Opera 12.x)\n else if ('CSSSupportsRule' in window) {\n // Build a condition string for every prefixed variant\n var conditionText = [];\n while (i--) {\n conditionText.push('(' + domToCSS(props[i]) + ':' + value + ')');\n }\n conditionText = conditionText.join(' or ');\n return injectElementWithStyles('@supports (' + conditionText + ') { #modernizr { position: absolute; } }', function(node) {\n return computedStyle(node, null, 'position') === 'absolute';\n });\n }\n return undefined;\n }\n ;\n\n /**\n * cssToDOM takes a hyphen-case string and converts it to camelCase\n * e.g. box-sizing -> boxSizing\n *\n * @access private\n * @function cssToDOM\n * @param {string} name - String name of hyphen-case prop we want to convert\n * @returns {string} The camelCase version of the supplied name\n */\n function cssToDOM(name) {\n return name.replace(/([a-z])-([a-z])/g, function(str, m1, m2) {\n return m1 + m2.toUpperCase();\n }).replace(/^-/, '');\n }\n\n ;\n\n // testProps is a generic CSS / DOM property test.\n\n // In testing support for a given CSS property, it's legit to test:\n // `elem.style[styleName] !== undefined`\n // If the property is supported it will return an empty string,\n // if unsupported it will return undefined.\n\n // We'll take advantage of this quick test and skip setting a style\n // on our modernizr element, but instead just testing undefined vs\n // empty string.\n\n // Property names can be provided in either camelCase or hyphen-case.\n\n function testProps(props, prefixed, value, skipValueTest) {\n skipValueTest = is(skipValueTest, 'undefined') ? false : skipValueTest;\n\n // Try native detect first\n if (!is(value, 'undefined')) {\n var result = nativeTestProps(props, value);\n if (!is(result, 'undefined')) {\n return result;\n }\n }\n\n // Otherwise do it properly\n var afterInit, i, propsLength, prop, before;\n\n // If we don't have a style element, that means we're running async or after\n // the core tests, so we'll need to create our own elements to use.\n\n // Inside of an SVG element, in certain browsers, the `style` element is only\n // defined for valid tags. Therefore, if `modernizr` does not have one, we\n // fall back to a less used element and hope for the best.\n // For strict XHTML browsers the hardly used samp element is used.\n var elems = ['modernizr', 'tspan', 'samp'];\n while (!mStyle.style && elems.length) {\n afterInit = true;\n mStyle.modElem = createElement(elems.shift());\n mStyle.style = mStyle.modElem.style;\n }\n\n // Delete the objects if we created them.\n function cleanElems() {\n if (afterInit) {\n delete mStyle.style;\n delete mStyle.modElem;\n }\n }\n\n propsLength = props.length;\n for (i = 0; i < propsLength; i++) {\n prop = props[i];\n before = mStyle.style[prop];\n\n if (contains(prop, '-')) {\n prop = cssToDOM(prop);\n }\n\n if (mStyle.style[prop] !== undefined) {\n\n // If value to test has been passed in, do a set-and-check test.\n // 0 (integer) is a valid property value, so check that `value` isn't\n // undefined, rather than just checking it's truthy.\n if (!skipValueTest && !is(value, 'undefined')) {\n\n // Needs a try catch block because of old IE. This is slow, but will\n // be avoided in most cases because `skipValueTest` will be used.\n try {\n mStyle.style[prop] = value;\n } catch (e) {}\n\n // If the property value has changed, we assume the value used is\n // supported. If `value` is empty string, it'll fail here (because\n // it hasn't changed), which matches how browsers have implemented\n // CSS.supports()\n if (mStyle.style[prop] !== before) {\n cleanElems();\n return prefixed === 'pfx' ? prop : true;\n }\n }\n // Otherwise just return true, or the property name if this is a\n // `prefixed()` call\n else {\n cleanElems();\n return prefixed === 'pfx' ? prop : true;\n }\n }\n }\n cleanElems();\n return false;\n }\n\n ;\n\n /**\n * testProp() investigates whether a given style property is recognized\n * Property names can be provided in either camelCase or hyphen-case.\n *\n * @memberOf Modernizr\n * @name Modernizr.testProp\n * @access public\n * @optionName Modernizr.testProp()\n * @optionProp testProp\n * @function testProp\n * @param {string} prop - Name of the CSS property to check\n * @param {string} [value] - Name of the CSS value to check\n * @param {boolean} [useValue] - Whether or not to check the value if @supports isn't supported\n * @returns {boolean} an empty string if the property is supported, undefined if its unsupported\n * @example\n *\n * Just like [testAllProps](#modernizr-testallprops), only it does not check any vendor prefixed\n * version of the string.\n *\n * Note that the property name must be provided in camelCase (e.g. boxSizing not box-sizing)\n *\n * ```js\n * Modernizr.testProp('pointerEvents') // true\n * ```\n *\n * You can also provide a value as an optional second argument to check if a\n * specific value is supported\n *\n * ```js\n * Modernizr.testProp('pointerEvents', 'none') // true\n * Modernizr.testProp('pointerEvents', 'penguin') // false\n * ```\n */\n var testProp = ModernizrProto.testProp = function(prop, value, useValue) {\n return testProps([prop], undefined, value, useValue);\n };\n\n \n\n /**\n * fnBind is a super small [bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) polyfill.\n *\n * @access private\n * @function fnBind\n * @param {Function} fn - a function you want to change `this` reference to\n * @param {object} that - the `this` you want to call the function with\n * @returns {Function} The wrapped version of the supplied function\n */\n function fnBind(fn, that) {\n return function() {\n return fn.apply(that, arguments);\n };\n }\n\n ;\n/*!\n{\n \"name\": \"Canvas\",\n \"property\": \"canvas\",\n \"caniuse\": \"canvas\",\n \"tags\": [\"canvas\", \"graphics\"],\n \"polyfills\": [\"flashcanvas\", \"excanvas\", \"slcanvas\", \"fxcanvas\"]\n}\n!*/\n/* DOC\nDetects support for the `` element for 2D drawing.\n*/\n\n // On the S60 and BB Storm, getContext exists, but always returns undefined\n // so we actually have to call getContext() to verify\n // github.com/Modernizr/Modernizr/issues/issue/97/\n Modernizr.addTest('canvas', function() {\n var elem = createElement('canvas');\n return !!(elem.getContext && elem.getContext('2d'));\n });\n\n/*!\n{\n \"name\": \"Canvas text\",\n \"property\": \"canvastext\",\n \"caniuse\": \"canvas-text\",\n \"tags\": [\"canvas\", \"graphics\"],\n \"polyfills\": [\"canvastext\"]\n}\n!*/\n/* DOC\nDetects support for the text APIs for `` elements.\n*/\n\n Modernizr.addTest('canvastext', function() {\n if (Modernizr.canvas === false) {\n return false;\n }\n return typeof createElement('canvas').getContext('2d').fillText === 'function';\n });\n\n/*!\n{\n \"name\": \"Emoji\",\n \"property\": \"emoji\"\n}\n!*/\n/* DOC\nDetects support for emoji character sets.\n*/\n\n Modernizr.addTest('emoji', function() {\n if (!Modernizr.canvastext) {\n return false;\n }\n var node = createElement('canvas');\n var ctx = node.getContext('2d');\n var backingStoreRatio =\n ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1;\n var offset = 12 * backingStoreRatio;\n ctx.fillStyle = '#f00';\n ctx.textBaseline = 'top';\n ctx.font = '32px Arial';\n ctx.fillText('\\ud83d\\udc28', 0, 0); // U+1F428 KOALA\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n });\n\n\n /**\n * If the browsers follow the spec, then they would expose vendor-specific styles as:\n * elem.style.WebkitBorderRadius\n * instead of something like the following (which is technically incorrect):\n * elem.style.webkitBorderRadius\n *\n * WebKit ghosts their properties in lowercase but Opera & Moz do not.\n * Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+\n * erik.eae.net/archives/2008/03/10/21.48.10/\n *\n * More here: github.com/Modernizr/Modernizr/issues/issue/21\n *\n * @access private\n * @returns {string} The string representing the vendor-specific style properties\n */\n var omPrefixes = 'Moz O ms Webkit';\n \n\n var cssomPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.split(' ') : []);\n ModernizrProto._cssomPrefixes = cssomPrefixes;\n \n\n /**\n * List of JavaScript DOM values used for tests\n *\n * @memberOf Modernizr\n * @name Modernizr._domPrefixes\n * @optionName Modernizr._domPrefixes\n * @optionProp domPrefixes\n * @access public\n * @example\n *\n * Modernizr._domPrefixes is exactly the same as [_prefixes](#modernizr-_prefixes), but rather\n * than hyphen-case properties, all properties are their Capitalized variant\n *\n * ```js\n * Modernizr._domPrefixes === [ \"Moz\", \"O\", \"ms\", \"Webkit\" ];\n * ```\n */\n var domPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.toLowerCase().split(' ') : []);\n ModernizrProto._domPrefixes = domPrefixes;\n \n\n /**\n * testDOMProps is a generic DOM property test; if a browser supports\n * a certain property, it won't return undefined for it.\n *\n * @access private\n * @function testDOMProps\n * @param {Array} props - An array of properties to test for\n * @param {object} obj - An object or Element you want to use to test the parameters again\n * @param {boolean|object} elem - An Element to bind the property lookup again. Use `false` to prevent the check\n * @returns {boolean|*} returns `false` if the prop is unsupported, otherwise the value that is supported\n */\n function testDOMProps(props, obj, elem) {\n var item;\n\n for (var i in props) {\n if (props[i] in obj) {\n\n // return the property name as a string\n if (elem === false) {\n return props[i];\n }\n\n item = obj[props[i]];\n\n // let's bind a function\n if (is(item, 'function')) {\n // bind to obj unless overridden\n return fnBind(item, elem || obj);\n }\n\n // return the unbound function or obj or value\n return item;\n }\n }\n return false;\n }\n\n ;\n\n /**\n * testPropsAll tests a list of DOM properties we want to check against.\n * We specify literally ALL possible (known and/or likely) properties on\n * the element including the non-vendor prefixed one, for forward-\n * compatibility.\n *\n * @access private\n * @function testPropsAll\n * @param {string} prop - A string of the property to test for\n * @param {string|object} [prefixed] - An object to check the prefixed properties on. Use a string to skip\n * @param {HTMLElement|SVGElement} [elem] - An element used to test the property and value against\n * @param {string} [value] - A string of a css value\n * @param {boolean} [skipValueTest] - An boolean representing if you want to test if value sticks when set\n * @returns {string|boolean} returns the string version of the property, or `false` if it is unsupported\n */\n function testPropsAll(prop, prefixed, elem, value, skipValueTest) {\n\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\n props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\n\n // did they call .prefixed('boxSizing') or are we just testing a prop?\n if (is(prefixed, 'string') || is(prefixed, 'undefined')) {\n return testProps(props, prefixed, value, skipValueTest);\n\n // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])\n } else {\n props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\n return testDOMProps(props, prefixed, elem);\n }\n }\n\n // Modernizr.testAllProps() investigates whether a given style property,\n // or any of its vendor-prefixed variants, is recognized\n //\n // Note that the property names must be provided in the camelCase variant.\n // Modernizr.testAllProps('boxSizing')\n ModernizrProto.testAllProps = testPropsAll;\n\n \n\n /**\n * testAllProps determines whether a given CSS property is supported in the browser\n *\n * @memberOf Modernizr\n * @name Modernizr.testAllProps\n * @optionName Modernizr.testAllProps()\n * @optionProp testAllProps\n * @access public\n * @function testAllProps\n * @param {string} prop - String naming the property to test (either camelCase or hyphen-case)\n * @param {string} [value] - String of the value to test\n * @param {boolean} [skipValueTest=false] - Whether to skip testing that the value is supported when using non-native detection\n * @returns {string|boolean} returns the string version of the property, or `false` if it is unsupported\n * @example\n *\n * testAllProps determines whether a given CSS property, in some prefixed form,\n * is supported by the browser.\n *\n * ```js\n * testAllProps('boxSizing') // true\n * ```\n *\n * It can optionally be given a CSS value in string form to test if a property\n * value is valid\n *\n * ```js\n * testAllProps('display', 'block') // true\n * testAllProps('display', 'penguin') // false\n * ```\n *\n * A boolean can be passed as a third parameter to skip the value check when\n * native detection (@supports) isn't available.\n *\n * ```js\n * testAllProps('shapeOutside', 'content-box', true);\n * ```\n */\n function testAllProps(prop, value, skipValueTest) {\n return testPropsAll(prop, undefined, undefined, value, skipValueTest);\n }\n\n ModernizrProto.testAllProps = testAllProps;\n\n \n/*!\n{\n \"name\": \"Flexbox\",\n \"property\": \"flexbox\",\n \"caniuse\": \"flexbox\",\n \"tags\": [\"css\"],\n \"notes\": [{\n \"name\": \"The _new_ flexbox\",\n \"href\": \"https://www.w3.org/TR/css-flexbox-1/\"\n }],\n \"warnings\": [\n \"A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect.\"\n ]\n}\n!*/\n/* DOC\nDetects support for the Flexible Box Layout model, a.k.a. Flexbox, which allows easy manipulation of layout order and sizing within a container.\n*/\n\n Modernizr.addTest('flexbox', testAllProps('flexBasis', '1px', true));\n\n/*!\n{\n \"name\": \"ES6 Promises\",\n \"property\": \"promises\",\n \"caniuse\": \"promises\",\n \"polyfills\": [\"es6promises\"],\n \"authors\": [\"Krister Kari\", \"Jake Archibald\"],\n \"tags\": [\"es6\"],\n \"notes\": [{\n \"name\": \"The ES6 promises spec\",\n \"href\": \"https://github.com/domenic/promises-unwrapping\"\n }, {\n \"name\": \"Chromium dashboard - ES6 Promises\",\n \"href\": \"https://www.chromestatus.com/features/5681726336532480\"\n }, {\n \"name\": \"JavaScript Promises: an Introduction\",\n \"href\": \"https://developers.google.com/web/fundamentals/primers/promises/\"\n }]\n}\n!*/\n/* DOC\nCheck if browser implements ECMAScript 6 Promises per specification.\n*/\n\n Modernizr.addTest('promises', function() {\n return 'Promise' in window &&\n // Some of these methods are missing from\n // Firefox/Chrome experimental implementations\n 'resolve' in window.Promise &&\n 'reject' in window.Promise &&\n 'all' in window.Promise &&\n 'race' in window.Promise &&\n // Older version of the spec had a resolver object\n // as the arg rather than a function\n (function() {\n var resolve;\n new window.Promise(function(r) { resolve = r; });\n return typeof resolve === 'function';\n }());\n });\n\n\n // Run each test\n testRunner();\n\n // Remove the \"no-js\" class if it exists\n setClasses(classes);\n\n delete ModernizrProto.addTest;\n delete ModernizrProto.addAsyncTest;\n\n // Run the things that are supposed to run after the tests\n for (var i = 0; i < Modernizr._q.length; i++) {\n Modernizr._q[i]();\n }\n\n // Leak Modernizr namespace\n scriptGlobalObject.Modernizr = Modernizr;\n\n\n;\n\n})(window, window, document);\nmodule.exports=window.Modernizr;if(hadGlobal){window.Modernizr=oldGlobal;}else{delete window.Modernizr;}})(window);","class PageScrolls {\n constructor() {\n this.bodyEl = document.body;\n this.observer = null;\n\n // Add any observable elements here.\n const observerMap = [\n {\n el: document.querySelector('.nav'),\n modifier: 'past-nav',\n },\n {\n el: document.querySelector('.topper-blog,.topper-blog-single'),\n modifier: 'past-topper',\n },\n ];\n\n this.observedElements = observerMap\n .filter(({ el, active }) => active !== false && el)\n .map(({ el, modifier }) => {\n el.dataset.modifier = modifier;\n return el;\n });\n\n if (this.observedElements.length > 0) {\n this.buildObserver();\n }\n }\n\n deinit() {\n this.observedElements.forEach(el => this.observer.unobserve(el));\n }\n\n buildObserver() {\n const observerOptions = {\n rootMargin: '0px',\n threshold: 0,\n };\n\n this.observer = new IntersectionObserver(this.onIntersect.bind(this), observerOptions);\n\n this.observedElements.forEach(el => this.observer.observe(el));\n }\n\n onIntersect(entries) {\n entries.forEach(entry => {\n const { modifier } = entry.target.dataset;\n\n if (!entry.isIntersecting) {\n this.bodyEl.classList.add(modifier);\n } else {\n this.bodyEl.classList.remove(modifier);\n }\n });\n }\n}\n\nexport default PageScrolls;\n","import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { on } from '@src/utils';\nimport { KEY_CODES } from '@src/utils/constants';\n\nclass Menu {\n constructor(classname) {\n this.classname = classname;\n this.menu = document.querySelector(`${this.classname}`);\n\n if (!this.menu) {\n return;\n }\n\n this.body = document.querySelector('body');\n this.content = document.querySelector('#content-wrapper') || document.createElement('div');\n\n this.menuOpen = Array.from(document.querySelectorAll(`${this.classname}-open`));\n this.menuClose = Array.from(document.querySelectorAll(`${this.classname}-close`));\n this.menuTopHeadings = Array.from(\n document.querySelectorAll('.menu__top-headings-list .menu__item-link'),\n );\n\n this.searchInput = null;\n this.menuIsOpen = false;\n\n this.listeners = [];\n this.onCloseCallbacks = [];\n\n this.setupFocusable();\n this.setupListeners();\n }\n\n /**\n * Returns the classname without the starting `.`\n *\n * @example\n * this.classname = '.js--menu';\n * // this.plainClassname === 'js--menu'\n */\n get plainClassname() {\n return this.classname.replace(/^\\.*/g, '');\n }\n\n get activeClass() {\n return `${this.plainClassname}-active`;\n }\n\n setupListeners() {\n on(this.menuOpen, 'click', this.toggle.bind(this));\n on(this.menuClose, 'click', this.toggle.bind(this));\n }\n\n setupFocusable() {\n const logo = document.querySelector('.nav__logo-link');\n\n // Set focusable elements\n this.focusableEls = [\n logo,\n ...this.menuOpen,\n ...this.menuClose,\n\n ...Array.from(this.menu.querySelectorAll('a')),\n ].filter(x => x);\n\n this.firstFocusableEl = this.focusableEls[0];\n this.lastFocusableEl = this.focusableEls[this.focusableEls.length - 1];\n }\n\n open(args) {\n const settings = {\n focus: 'menu',\n ...args,\n };\n\n this.menu.setAttribute('aria-hidden', false);\n this.menu.setAttribute('tabindex', 0);\n this.content.setAttribute('aria-hidden', true);\n this.body.classList.add(this.activeClass);\n this.menuIsOpen = true;\n\n setTimeout(() => {\n if (settings.focus === 'search') {\n this.triggerInputFocus();\n } else {\n this.menu.focus();\n }\n }, 500);\n\n this.listeners.push(on(document, 'keydown', this.keydown.bind(this)));\n this.listeners.push(on(this.menuTopHeadings, 'click', this.toggleHeading.bind(this)));\n\n disableBodyScroll(this.menu);\n }\n\n close() {\n this.menu.setAttribute('aria-hidden', true);\n this.menu.removeAttribute('tabindex');\n this.content.setAttribute('aria-hidden', false);\n this.body.classList.remove(this.activeClass);\n this.menuOpen[0].focus();\n this.menuIsOpen = false;\n\n this.listeners.forEach(off => {\n off();\n });\n enableBodyScroll(this.menu);\n\n this.onCloseCallbacks.forEach(fn => (typeof fn === 'function' ? fn() : null));\n }\n\n toggle(event) {\n if (this.menuIsOpen) {\n this.close();\n } else {\n const args = {};\n\n if (event.currentTarget.hasAttribute('data-focus-search')) {\n args.focus = 'search';\n }\n\n this.open(args);\n }\n }\n\n triggerInputFocus() {\n if (this.searchInput === null) {\n const input = document.querySelector('#searchbox input[type=\"search\"]');\n this.searchInput = input || false;\n }\n\n if (this.searchInput) {\n this.searchInput.focus();\n }\n }\n\n toggleHeading(e) {\n const ACTIVE_CLASS = 'menu__item-link--active';\n const currentlyActive = e.currentTarget.classList.contains(ACTIVE_CLASS);\n\n this.menu.querySelectorAll(`.${ACTIVE_CLASS}`).forEach(el => {\n el.nextElementSibling.setAttribute('aria-hidden', true);\n el.nextElementSibling\n .querySelectorAll('a, button')\n .forEach(focusable => focusable.setAttribute('tabindex', -1));\n el.classList.remove(ACTIVE_CLASS);\n });\n\n if (window.matchMedia('(max-width: 767px)').matches && currentlyActive) {\n return;\n }\n\n e.currentTarget.nextElementSibling.removeAttribute('aria-hidden');\n e.currentTarget.nextElementSibling\n .querySelectorAll('a, button')\n .forEach(focusable => focusable.removeAttribute('tabindex'));\n e.currentTarget.classList.add(ACTIVE_CLASS);\n }\n\n handleBackwardTab(e) {\n if (document.activeElement === this.firstFocusableEl) {\n e.preventDefault();\n this.lastFocusableEl.focus();\n }\n }\n\n handleForwardTab(e) {\n if (document.activeElement === this.lastFocusableEl) {\n e.preventDefault();\n this.firstFocusableEl.focus();\n }\n }\n\n keydown(e) {\n switch (e.key) {\n case KEY_CODES.ESCAPE:\n case KEY_CODES.ESCAPE_IE11: {\n this.close();\n break;\n }\n\n case KEY_CODES.TAB: {\n if (this.focusableEls.length === 1) {\n e.preventDefault();\n break;\n }\n if (e.shiftKey) {\n this.handleBackwardTab(e);\n } else {\n this.handleForwardTab(e);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n }\n\n onClose(fn) {\n if (this.onCloseCallbacks) {\n this.onCloseCallbacks.push(fn);\n } else {\n this.onCloseCallbacks = [fn];\n }\n }\n}\n\nexport default Menu;\n","export const renderSearchBox = (renderOptions, isFirstRender) => {\n const { query, refine, widgetParams } = renderOptions;\n const inputEl = widgetParams.inputEl || document.createElement('input');\n\n if (isFirstRender) {\n inputEl.addEventListener('input', event => {\n refine(event.target.value);\n });\n }\n\n if (query === '') {\n inputEl.value = query;\n }\n};\n","import { highlight, snippet } from 'instantsearch.js/es/helpers';\n\nexport const highlighter = (attribute, hit) => highlight({ attribute, hit });\nexport const snippetter = (attribute, hit) => snippet({ attribute, hit });\n","import instantsearch from 'instantsearch.js';\nimport { configure } from 'instantsearch.js/es/widgets';\nimport { connectHits, connectSearchBox } from 'instantsearch.js/es/connectors';\nimport algoliaClient from './algolia-client';\nimport { renderSearchBox } from './widgets';\nimport { highlighter, snippetter, on } from '@src/utils';\nimport { POST_TYPE_MAP, SEARCH_SETTINGS } from '@src/utils/constants';\nimport template from '@templates/components/search/menu-results.twig';\n\nconst { ALGOLIA_INDEX_NAME, GLOBAL_MENU_SEARCH_FILTERS, ALGOLIA_SECONDARY_INDEX_NAME } =\n window.algoliaSettings || {};\nconst ACTIVE_SEARCH_CLASS = 'global-search-active';\n\nclass MenuSearch {\n loaded = false;\n search = null;\n\n constructor() {\n // Bail if we don't have our Algolia info.\n if (!algoliaClient) {\n return;\n }\n\n this.body = document.body;\n this.hitsEl = document.querySelector('#hits') || document.createElement('div');\n this.resetButtons = Array.from(this.hitsEl.querySelectorAll('[data-search-reset]'));\n this.searchInputEl = document.querySelector('#hls-global-site-search');\n\n this.setup();\n this.setupListeners();\n this.init();\n }\n\n setup() {\n const search = instantsearch({\n indexName: ALGOLIA_INDEX_NAME,\n searchClient: {\n ...algoliaClient,\n search(requests) {\n if (requests.every(({ params }) => !params.query)) {\n return Promise.resolve({\n results: requests.map(() => ({\n hits: [],\n nbHits: 0,\n nbPages: 0,\n page: 0,\n processingTimeMS: 0,\n })),\n });\n }\n\n return algoliaClient.search(requests);\n },\n },\n // https://www.algolia.com/doc/api-reference/widgets/instantsearch/js/#widget-param-searchfunction\n searchFunction: helper => {\n // If this is the first load and there is no query param, don't perform a search\n if (!this.loaded) {\n this.loaded = true;\n return;\n }\n\n // Hide the results if there is no query\n const { query } = helper.state;\n this.hitsEl.classList.toggle('hidden', !query);\n helper.search();\n },\n });\n\n let timerId;\n\n search.addWidgets([\n configure({\n hitsPerPage: SEARCH_SETTINGS.searchItems,\n distinct: 1,\n filters: GLOBAL_MENU_SEARCH_FILTERS,\n }),\n\n connectSearchBox(renderSearchBox)({\n inputEl: this.searchInputEl,\n queryHook(query, refine) {\n clearTimeout(timerId);\n timerId = setTimeout(() => refine(query), 10);\n },\n }),\n\n connectHits(this.renderHits.bind(this))({\n container: this.hitsEl,\n }),\n ]);\n this.search = search;\n }\n\n setupListeners() {\n on(this.resetButtons, 'click', this.reset.bind(this));\n }\n\n init() {\n this.search.start();\n }\n\n async renderHits(renderOptions) {\n const { hits, results, widgetParams } = renderOptions;\n\n // If `results` is undefined, we haven't performed a search yet.\n if (!results) {\n widgetParams.container.innerHTML = '';\n return;\n }\n\n const numberOfHits = hits.length;\n if (numberOfHits < 16) {\n // If we haven't filled in enough results, query for reverse events\n const currentTime = Math.floor(Date.now() / 1000);\n const searchParams = {\n query: this?.searchInputEl?.value,\n indexName: ALGOLIA_SECONDARY_INDEX_NAME,\n filters: `type:event AND start < ${currentTime}`,\n page: 0,\n hitsPerPage: 16 - numberOfHits,\n };\n const secondaryResults = await algoliaClient.search([searchParams]);\n if (secondaryResults?.results[0].hits) {\n hits.push(...secondaryResults.results[0].hits);\n }\n }\n\n const nbHits = results.nbHits || 0;\n const query = results.query || '';\n let pageHits = 0;\n\n if ('' === query) {\n this.body.classList.remove(ACTIVE_SEARCH_CLASS);\n } else {\n this.body.classList.add(ACTIVE_SEARCH_CLASS);\n }\n\n const filterGroup = new Map();\n\n // Set up the map and determine some basic information we can use to limit displayed results.\n for (const item of hits) {\n item.title = decodeHTMLEntities(item.title);\n item._highlightResult.title.value = decodeHTMLEntities(item._highlightResult.title.value);\n const { type } = item;\n if (!filterGroup.has(type)) {\n filterGroup.set(type, {\n title: POST_TYPE_MAP[type] || type,\n key: type,\n hits: [],\n raw: 0,\n maxItems: 0,\n });\n }\n filterGroup.get(type).raw++;\n }\n\n const searchKeys = Array.from(filterGroup.keys());\n\n // We want to try to create an even number of results on both sides, prioritizing earlier hits, while simultaneously\n // filling as much of the screen as we can. If we can't get the desired number from a particular type, we will\n // rearrange things so that the other types are expanded to take up the space.\n\n // Try to keep an even number of items in each column, but bias towards the left (hence ceiling)\n const columnSplit = Math.ceil(filterGroup.size / SEARCH_SETTINGS.columns);\n\n // Divide up items evenly to start.\n let columnCount = 0;\n const column = [];\n for (const key of searchKeys) {\n const typeData = filterGroup.get(key);\n if (!column[columnCount]) {\n column[columnCount] = {\n groups: [],\n raw: 0,\n };\n }\n column[columnCount].raw += typeData.raw;\n column[columnCount].groups.push(typeData);\n if (\n column[columnCount].groups.length >= columnSplit &&\n column[columnCount].raw > SEARCH_SETTINGS.column_size\n ) {\n columnCount++;\n }\n }\n\n // Try to ensure that every column has at least the right number of items.\n let moved = true;\n while (moved && !column.every(c => c.raw >= SEARCH_SETTINGS.column_size)) {\n moved = false;\n for (let i = 0; i < column.length - 1; i++) {\n // See if we can push a group from this column to the left to try to even things out.\n const current = column[i];\n const candidate = current.groups[current.groups.length - 1];\n const leftCount = current.raw - candidate.raw;\n if (leftCount < SEARCH_SETTINGS.column_size) {\n // If we can't afford to lose the last group, skip this column.\n continue;\n }\n const next = column[i + 1];\n current.raw = leftCount;\n next.raw += candidate.raw;\n next.groups.unshift(current.groups.pop());\n moved = true;\n // As long as can keep moving things, we'll keep checking, but if we go a cycle without moving anything, it\n // means we're out of valid moves to make and the loop should exit.\n }\n }\n\n // Figure out how many items to show in each section based on the relative sizes in that column\n for (const current of column) {\n const maxItems = Math.floor(SEARCH_SETTINGS.column_size / current.groups.length);\n let total = 0;\n const unfilledGroups = [];\n for (const group of current.groups) {\n if (maxItems > group.raw) {\n group.maxItems = group.raw;\n } else {\n group.maxItems = maxItems;\n if (group.raw > maxItems) {\n unfilledGroups.push(group);\n }\n }\n total += group.maxItems;\n }\n let deficit = SEARCH_SETTINGS.column_size - total;\n // If we have a deficit, evenly distribute it to areas that have more raw items, favoring the earlier ones.\n while (deficit > 0 && unfilledGroups.length) {\n const removals = [];\n for (let i = 0; i < unfilledGroups.length && deficit > 0; i++) {\n const group = unfilledGroups[i];\n group.maxItems++;\n deficit--;\n if (group.maxItems >= group.raw) {\n removals.push(i);\n }\n }\n removals.sort((a, b) => b - a); // reverse sort so that removing later indices won't affect earlier\n for (const removal of removals) {\n unfilledGroups.splice(removal, 1);\n }\n }\n }\n\n // Sort hits into the appropriate groups.\n for (const item of hits) {\n const cleanItem = { ...item };\n const { type } = item;\n const typeData = filterGroup.get(type);\n\n if (typeData.hits.length >= typeData.maxItems) {\n // We're only displaying a few hits per type, and we've got enough of this type already.\n continue;\n }\n\n cleanItem.title = highlighter('title', item);\n cleanItem.content = snippetter('content', item);\n cleanItem.aoi_intro = snippetter('aoi_intro', item);\n\n typeData.hits.push(cleanItem);\n pageHits++;\n }\n\n widgetParams.container.innerHTML = template({ column, nbHits, query, pageHits });\n\n // Reset the reset button\n this.resetButtons = Array.from(this.hitsEl.querySelectorAll('[data-search-reset]'));\n this.setupListeners();\n }\n\n /**\n * Reset the search state.\n */\n reset() {\n this.body.classList.remove(ACTIVE_SEARCH_CLASS);\n this.hitsEl.innerHTML = '';\n this.search.setUiState({\n [ALGOLIA_INDEX_NAME]: {\n query: '',\n },\n });\n }\n}\n\nfunction decodeHTMLEntities(text) {\n const textArea = document.createElement('textarea');\n textArea.innerHTML = text;\n const value = textArea.value;\n textArea.remove();\n return value;\n}\n\nexport default MenuSearch;\n","import { on } from '@src/utils';\n\nconst SUBNAV_OPEN_CLASS = 'subnav--mobile-open';\n\nclass SubNav {\n listeners = [];\n\n constructor(el) {\n if (!el) {\n return;\n }\n\n this.el = el;\n this.mobileTrigger = document.querySelector('.js-subnav-more');\n\n // State.\n this.isOpen = false;\n\n // Init.\n this.setupListeners();\n }\n\n deinit() {\n this.close();\n\n this.listeners.forEach(off => (typeof off === 'function' ? off() : null));\n this.listeners = [];\n }\n\n setupListeners() {\n this.listeners = [on(this.mobileTrigger, 'click', this.handleClick.bind(this))];\n }\n\n handleClick(event) {\n event.preventDefault();\n return this.isOpen ? this.close() : this.open();\n }\n\n handleOffClick(event) {\n const { target } = event;\n\n if (target.closest('.nav__subnav')) {\n return;\n }\n\n this.close();\n }\n\n open() {\n if (this.el) {\n this.isOpen = true;\n this.el.classList.add(SUBNAV_OPEN_CLASS);\n this.offClickListener = on(document, 'click', this.handleOffClick.bind(this));\n }\n }\n\n close() {\n if (this.el) {\n this.isOpen = false;\n this.el.classList.remove(SUBNAV_OPEN_CLASS);\n }\n\n if (this.offClickListener) {\n this.offClickListener();\n }\n }\n}\n\nexport default SubNav;\n","/* eslint-disable */\nimport LazySizes from 'lazysizes';\nimport Unveilhooks from 'lazysizes/plugins/unveilhooks/ls.unveilhooks';\nimport 'modernizr';\n/* eslint-enable */\n\nimport { onDocumentReady } from './utils';\n\n// Components\nimport PageScrolls from '@src/components/page-scrolls';\nimport Menu from '@src/components/menu';\nimport MenuSearch from '@src/components/algolia/menu-search';\nimport Subnav from '@src/components/subnav';\nimport VanillaCalendar from 'vanilla-calendar-pro';\n\n/**\n * Initialize the page and return the initialized components.\n *\n * @return array\n */\nconst pageInit = () => {\n // Components holder.\n const components = [];\n\n components.push(new PageScrolls());\n\n // Dynamic components...only load these if we need to.\n const onThisPageEls = document.querySelectorAll('.js-on-this-page');\n if (onThisPageEls.length > 0) {\n import(/* webpackChunkName: \"on-this-page\" */ '@src/components/on-this-page').then(module => {\n const OnThisPage = module.default;\n components.push(...Array.from(onThisPageEls).map(el => new OnThisPage(el)));\n });\n }\n\n const autoplayVideoEls = document.querySelectorAll('.js-autoplay-video');\n if (autoplayVideoEls.length > 0) {\n import(/* webpackChunkName: \"autoplay-video\" */ '@src/components/autoplay-video').then(\n module => {\n const AutoplayVideo = module.default;\n components.push(...Array.from(autoplayVideoEls).map(el => new AutoplayVideo(el)));\n },\n );\n }\n\n const home_topper_logo = document.querySelector('.js-home-topper-logo');\n if (home_topper_logo) {\n import(/* webpackChunkName: \"home-topper-logo\" */ '@src/components/home-topper-logo').then(\n module => {\n const HomeTopperLogo = module.default;\n components.push(new HomeTopperLogo(home_topper_logo));\n },\n );\n }\n\n const homeCirclesEls = document.querySelector('.js-home-circles');\n if (homeCirclesEls) {\n import(/* webpackChunkName: \"home-circles\" */ '@src/components/home-circles').then(module => {\n const HomeCircles = module.default;\n components.push(new HomeCircles(homeCirclesEls));\n });\n }\n\n const sidebar = document.querySelector('.js-sticky-sidebar');\n if (sidebar) {\n import(/* webpackChunkName: \"sticky-sidebar\" */ '@src/components/sticky-sidebar').then(\n module => {\n const StickySidebar = module.default;\n components.push(new StickySidebar(sidebar));\n },\n );\n }\n\n const filterSidebar = document.querySelector('.filter-sidebar');\n const filterFooter = document.querySelector('.footer');\n let footerWasVisible = false;\n if (filterSidebar && filterFooter) {\n window.addEventListener(\n 'scroll',\n function() {\n const windowWidth = window.innerWidth || document.clientWidth;\n if (windowWidth < 800) {\n return;\n }\n const footerBoundaries = filterFooter.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.clientHeight;\n const sidebarBoundaries = filterSidebar.getBoundingClientRect();\n const sidebarHeight = sidebarBoundaries.bottom - sidebarBoundaries.top;\n if (footerBoundaries.top <= windowHeight && sidebarHeight >= windowHeight) {\n if (!footerWasVisible) {\n filterSidebar.scrollTop = 9999;\n }\n footerWasVisible = true;\n } else {\n footerWasVisible = false;\n }\n },\n false,\n );\n }\n\n const hangPunctuationEls = document.querySelectorAll('.js-hang-punc');\n if (hangPunctuationEls.length > 0) {\n import(/* webpackChunkName: \"hang-punctuation\" */ '@src/components/hang-punctuation').then(\n module => {\n const HangPunctuation = module.default;\n new HangPunctuation(hangPunctuationEls);\n },\n );\n }\n\n const galleries = document.querySelectorAll('.js-modal-gallery');\n if (galleries.length > 0) {\n import(/* webpackChunkName: \"modal-gallery\" */ '@src/components/modal-gallery').then(module => {\n const ModalGallery = module.default;\n components.push(...Array.from(galleries).map(el => new ModalGallery(el)));\n });\n }\n\n const galleryBlockGalleries = document.querySelectorAll('.js-gallery-block-modal-gallery');\n if (galleryBlockGalleries.length > 0) {\n import(\n /* webpackChunkName: \"gallery-block-modal-gallery\" */ '@src/components/gallery-block-modal-gallery'\n ).then(module => {\n const GalleryBlockModalGallery = module.default;\n components.push(\n ...Array.from(galleryBlockGalleries).map(el => new GalleryBlockModalGallery(el)),\n );\n });\n }\n\n const courseSearchApp = document.querySelector('#hls-course-app');\n if (courseSearchApp) {\n import(\n /* webpackChunkName: \"course-search-app\" */ '@src/components/algolia/course-search'\n ).then(module => {\n const CourseSearch = module.default;\n components.push(new CourseSearch(courseSearchApp));\n });\n }\n\n const facultySearchApp = document.querySelector('#hls-faculty-app');\n if (facultySearchApp) {\n import(\n /* webpackChunkName: \"faculty-search-app\" */ '@src/components/algolia/faculty-search'\n ).then(module => {\n const FacultySearch = module.default;\n components.push(new FacultySearch(facultySearchApp));\n });\n }\n\n const bibliographySearchApp = document.querySelector('#hls-bibliography-app');\n if (bibliographySearchApp) {\n import(\n /* webpackChunkName: \"bibliography-search-app\" */ '@src/components/algolia/bibliography-search'\n ).then(module => {\n const BibliographySearch = module.default;\n components.push(new BibliographySearch(bibliographySearchApp));\n });\n }\n\n const globalSearchApp = document.querySelector('#hls-global-search-app');\n if (globalSearchApp) {\n import(\n /* webpackChunkName: \"global-search-app\" */ '@src/components/algolia/global-search'\n ).then(module => {\n const GlobalSearch = module.default;\n components.push(new GlobalSearch(globalSearchApp));\n });\n }\n\n const eventSearchApp = document.querySelector('#hls-events-app');\n if (eventSearchApp) {\n import(/* webpackChunkName: \"event-search-app\" */ '@src/components/algolia/event-search').then(\n module => {\n const EventSearch = module.default;\n const eventSearch = new EventSearch(eventSearchApp);\n components.push(eventSearch);\n const pastLimit = new Date();\n pastLimit.setFullYear(pastLimit.getFullYear() - 1);\n if (pastLimit.getMonth() > 6) {\n pastLimit.setMonth(pastLimit.getMonth() - 6);\n } else {\n pastLimit.setMonth(pastLimit.getMonth() + 6);\n pastLimit.setFullYear(pastLimit.getFullYear() - 1);\n }\n const futureLimit = new Date();\n futureLimit.setFullYear(futureLimit.getFullYear() + 1);\n\n const calendar = new VanillaCalendar('#event-calendar', {\n date: {\n min: `${pastLimit.getFullYear()}-${`${pastLimit.getMonth()}`.padStart(\n 2,\n '0',\n )}-${`${pastLimit.getDate()}`.padStart(2, '0')}`,\n max: `${futureLimit.getFullYear()}-${`${futureLimit.getMonth()}`.padStart(\n 2,\n '0',\n )}-${`${futureLimit.getDate()}`.padStart(2, '0')}`,\n },\n settings: {\n iso8601: false,\n visibility: {\n weekend: false,\n },\n lang: 'define',\n },\n locale: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekday: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n },\n actions: {\n clickDay(e) {\n const controls = eventSearch.controls;\n const newParams = { ...controls.state.get('params') };\n const newDate = e.target.dataset.calendarDay;\n\n if (newDate) {\n newParams.start = newDate;\n controls.state.set('params', newParams);\n controls.triggerChange();\n }\n },\n },\n DOMTemplates: {\n default: `\n
\n
\n <#Month />\n <#Year />\n
\n \n \n
\n
\n <#WeekNumbers />\n
\n <#Week />\n <#Days />\n
\n
\n `,\n month: `\n
\n
\n <#Month />\n <#Year />\n
\n
\n
\n
\n <#Months />\n
\n
\n `,\n year: `\n
\n
\n <#Month />\n <#Year />\n
\n \n \n
\n
\n
\n <#Years />\n
\n
\n `,\n },\n });\n\n // Find initial date value (if any)\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n const newDate = urlParams.get('start');\n if (newDate) {\n calendar.settings.selected.dates = [newDate];\n calendar.settings.selected.year = Number(newDate.substr(0, 4));\n calendar.settings.selected.month = Number(newDate.substr(5, 2)) - 1;\n }\n\n calendar.init();\n window.calendar = calendar;\n },\n );\n }\n\n const visualCardsCarouselEls = document.querySelectorAll('.js-visual-cards-carousel');\n if (visualCardsCarouselEls.length > 0) {\n import(\n /* webpackChunkName: \"visual-cards-carousel\" */ '@src/components/visual-cards-carousel'\n ).then(module => {\n const VisualCardsCarousel = module.default;\n components.push(...Array.from(visualCardsCarouselEls).map(el => new VisualCardsCarousel(el)));\n });\n }\n\n return components;\n};\n\n/**\n * Anything that happens on the initial page load.\n */\nonDocumentReady(() => {\n // Globals.\n const menuSearch = new MenuSearch();\n const menu = new Menu('.js--menu');\n\n document.querySelectorAll('.js-subnav').forEach(el => new Subnav(el));\n\n // Handle the menu close.\n menu.onClose(() => {\n setTimeout(menuSearch.reset.bind(menuSearch), 500);\n });\n\n // Page anchors.\n if (location.hash) {\n document.querySelector(location.hash)?.scrollIntoView();\n }\n\n // Components.\n pageInit();\n\n // DEV\n if (process.env.NODE_ENV === 'development') {\n import(/* webpackChunkName: \"toggle-grid\" */ '@src/components/toggle-grid').then(module => {\n const ToggleGrid = module.default;\n new ToggleGrid();\n });\n }\n});\n\n// Enables hot module replacement with Webpack\n// https://webpack.js.org/guides/hot-module-replacement/\nif (module.hot) {\n module.hot.accept();\n}\n","/**\n * Event listener for when the document is ready. This serves as replacement for\n * JQuery's `$(document).ready()` function.\n *\n * @see http://youmightnotneedjquery.com/#ready\n *\n * @param {Function} callback the function to call when the DOM is ready\n */\nconst onDocumentReady = callback => {\n if (document.readyState !== 'loading') {\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback, { once: true });\n }\n};\n\nexport default onDocumentReady;\n","import * as algoliasearch from 'algoliasearch/lite';\n\nconst { ALGOLIA_APPLICATION_ID, ALGOLIA_SEARCH_ONLY_API_KEY } = window['algoliaSettings'] || {};\n\nlet algoliaClient = null;\n\ntry {\n algoliaClient = algoliasearch.liteClient(ALGOLIA_APPLICATION_ID, ALGOLIA_SEARCH_ONLY_API_KEY);\n} catch (e) {\n console.error(e);\n}\n\nexport default algoliaClient;\n","export const KEY_CODES = {\n ARROW_LEFT: 'ArrowLeft',\n ARROW_LEFT_IE11: 'Left',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_RIGHT_IE11: 'Right',\n ESCAPE: 'Escape',\n ESCAPE_IE11: 'Esc',\n TAB: 'Tab',\n SPACE: ' ',\n SPACE_IE11: 'Spacebar',\n ENTER: 'Enter',\n};\n\nexport const POST_TYPE_MAP = {\n hls_course: 'Courses',\n hls_bibliography: 'Bibliography',\n hls_today_post: 'News',\n hls_faculty: 'Faculty',\n hls_aoi: 'Areas of Interest',\n page: 'Pages',\n post: 'Posts',\n event: 'Events',\n};\n\nexport const SEARCH_SETTINGS = {\n searchItems: 400,\n columns: 2,\n column_size: 8,\n};\n","/**\n * Applies the event listener to the given element(s).\n *\n * @example\n * ```js\n * // Creates an event listener on window scroll\n * const off = on(window, 'scroll', onScroll);\n * // Returns function to remove event listener when you're done\n * off();\n * ```\n *\n * @example\n * ```js\n * // Handles one or multiple elements\n * const off = on([input, input2, input3], 'blur', onBlur);\n * ```\n *\n * @param {HTMLElement|HTMLElement[]} elementOrMultiple one or many HTML elements to apply the listener to\n * @param {string} type the type of event to apply\n * @param {Function} listener the event listener callback\n * @param {boolean|EventListenerOptions} options the event listener options to use\n * @return {Function} a function that unsubscribes from any event listeners\n */\nconst on = (elementOrMultiple, type, listener, options) => {\n /**\n * @type {HTMLElement[]} the elements to attach listeners to\n */\n let elements = elementOrMultiple;\n if (!Array.isArray(elementOrMultiple)) {\n elements = [elementOrMultiple];\n }\n\n elements.forEach(el => {\n if (el) {\n el.addEventListener(type, listener, options);\n }\n });\n\n return () => {\n elements.forEach(el => {\n if (el) {\n el.removeEventListener(type, listener, options);\n }\n });\n };\n};\n\nexport default on;\n","var twig = require(\"twig\").twig;\nvar tpl = twig({\"allowInlineIncludes\":true,\"data\":[{\"type\":\"raw\",\"value\":\"
\\n\\n

\",\"position\":{\"start\":147,\"end\":186}},{\"type\":\"output\",\"position\":{\"start\":186,\"end\":203},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"group\",\"match\":[\"group\"],\"position\":{\"start\":186,\"end\":203}},{\"type\":\"Twig.expression.type.key.period\",\"position\":{\"start\":186,\"end\":203},\"key\":\"title\"}]},{\"type\":\"raw\",\"value\":\"

\\n\\n \",\"position\":{\"start\":203,\"end\":216}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"group\",\"match\":[\"group\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"hits\"}],\"position\":{\"start\":216,\"end\":235},\"output\":[{\"type\":\"raw\",\"value\":\"
    \\n \",\"position\":{\"start\":236,\"end\":274}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.for\",\"keyVar\":null,\"valueVar\":\"hit\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"group\",\"match\":[\"group\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"hits\"}],\"position\":{\"start\":274,\"end\":301},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":302,\"end\":308}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":405,\"end\":412}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"content\"}],\"position\":{\"start\":412,\"end\":443}},\"position\":{\"start\":412,\"end\":443}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":444,\"end\":450}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":450,\"end\":475}},\"position\":{\"start\":450,\"end\":475}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":476,\"end\":482}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":482,\"end\":506}},\"position\":{\"start\":482,\"end\":506}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":507,\"end\":513}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail_alt\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"Thumb for \"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"title\"},{\"type\":\"Twig.expression.type.filter\",\"value\":\"striptags\",\"match\":[\"| striptags\",\"striptags\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"~\",\"precidence\":6,\"associativity\":\"leftToRight\",\"operator\":\"~\"},{\"type\":\"Twig.expression.type.string\",\"value\":\" search result\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"~\",\"precidence\":6,\"associativity\":\"leftToRight\",\"operator\":\"~\"}],\"position\":{\"start\":513,\"end\":594}},\"position\":{\"start\":513,\"end\":594}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":595,\"end\":602}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":634,\"end\":641}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"hls_course\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":641,\"end\":674},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":675,\"end\":683}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"hls_course_term\"},{\"type\":\"Twig.expression.type.filter\",\"value\":\"join\",\"match\":[\"| join\",\"join\"],\"params\":[{\"type\":\"Twig.expression.type.parameter.start\",\"value\":\"(\",\"match\":[\"(\"]},{\"type\":\"Twig.expression.type.string\",\"value\":\", \"},{\"type\":\"Twig.expression.type.parameter.end\",\"value\":\")\",\"match\":[\")\"],\"expression\":false}]}],\"position\":{\"start\":683,\"end\":739}},\"position\":{\"start\":683,\"end\":739}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":740,\"end\":748}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":748,\"end\":770}},\"position\":{\"start\":748,\"end\":770}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":771,\"end\":778}}]},\"position\":{\"open\":{\"start\":641,\"end\":674},\"close\":{\"start\":778,\"end\":819}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"hls_today_post\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":778,\"end\":819},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":820,\"end\":828}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"date\"}],\"position\":{\"start\":828,\"end\":859}},\"position\":{\"start\":828,\"end\":859}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":860,\"end\":868}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"thumbnail\"}],\"position\":{\"start\":868,\"end\":903}},\"position\":{\"start\":868,\"end\":903}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":904,\"end\":912}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":912,\"end\":934}},\"position\":{\"start\":912,\"end\":934}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":935,\"end\":942}}]},\"position\":{\"open\":{\"start\":778,\"end\":819},\"close\":{\"start\":942,\"end\":973}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"post\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":942,\"end\":973},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":974,\"end\":982}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"date\"}],\"position\":{\"start\":982,\"end\":1012}},\"position\":{\"start\":982,\"end\":1012}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1013,\"end\":1021}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"thumbnail\"}],\"position\":{\"start\":1021,\"end\":1056}},\"position\":{\"start\":1021,\"end\":1056}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1057,\"end\":1065}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"blog_name\"}],\"position\":{\"start\":1065,\"end\":1098}},\"position\":{\"start\":1065,\"end\":1098}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":1099,\"end\":1106}}]},\"position\":{\"open\":{\"start\":942,\"end\":973},\"close\":{\"start\":1106,\"end\":1144}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"hls_faculty\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":1106,\"end\":1144},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1145,\"end\":1153}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":1153,\"end\":1175}},\"position\":{\"start\":1153,\"end\":1175}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1176,\"end\":1184}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"primary_appointment_title\"}],\"position\":{\"start\":1184,\"end\":1235}},\"position\":{\"start\":1184,\"end\":1235}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1236,\"end\":1244}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"thumbnail\"}],\"position\":{\"start\":1244,\"end\":1279}},\"position\":{\"start\":1244,\"end\":1279}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1280,\"end\":1288}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"thumbnail_alt\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"name\"}],\"position\":{\"start\":1288,\"end\":1322}},\"position\":{\"start\":1288,\"end\":1322}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":1323,\"end\":1330}}]},\"position\":{\"open\":{\"start\":1106,\"end\":1144},\"close\":{\"start\":1330,\"end\":1362}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"event\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":1330,\"end\":1362},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1363,\"end\":1371}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":1371,\"end\":1393}},\"position\":{\"start\":1371,\"end\":1393}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1394,\"end\":1402}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"meta_info\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"start_date\"}],\"position\":{\"start\":1402,\"end\":1439}},\"position\":{\"start\":1402,\"end\":1439}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":1440,\"end\":1447}}]},\"position\":{\"open\":{\"start\":1330,\"end\":1362},\"close\":{\"start\":1447,\"end\":1481}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"hls_aoi\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":1447,\"end\":1481},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1482,\"end\":1490}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"aoi_intro\"}],\"position\":{\"start\":1490,\"end\":1523}},\"position\":{\"start\":1490,\"end\":1523}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":1524,\"end\":1531}}]},\"position\":{\"open\":{\"start\":1447,\"end\":1481},\"close\":{\"start\":1531,\"end\":1562}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"page\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"}],\"position\":{\"start\":1531,\"end\":1562},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1563,\"end\":1571}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.set\",\"key\":\"content\",\"expression\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"\"}],\"position\":{\"start\":1571,\"end\":1593}},\"position\":{\"start\":1571,\"end\":1593}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":1594,\"end\":1600}}]},\"position\":{\"open\":{\"start\":1531,\"end\":1562},\"close\":{\"start\":1600,\"end\":1611}}},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":1612,\"end\":1619}},{\"type\":\"raw\",\"value\":\"\\n
  • \\n
    \\n\\n \",\"position\":{\"start\":1631,\"end\":1725}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"thumbnail\",\"match\":[\"thumbnail\"]}],\"position\":{\"start\":1725,\"end\":1743},\"output\":[{\"type\":\"raw\",\"value\":\" \\n \\\"\",\"position\":{\"start\":1873,\"end\":1880}},{\"type\":\"output\",\"position\":{\"start\":1880,\"end\":1903},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"thumbnail_alt\",\"match\":[\"thumbnail_alt\"],\"position\":{\"start\":1880,\"end\":1903}},{\"type\":\"Twig.expression.type.filter\",\"value\":\"e\",\"match\":[\"|\\n \\n \",\"position\":{\"start\":1903,\"end\":1933}}]},\"position\":{\"open\":{\"start\":1725,\"end\":1743},\"close\":{\"start\":1933,\"end\":1944}}},{\"type\":\"raw\",\"value\":\"\\n

    \\n \\n \",\"position\":{\"start\":2091,\"end\":2108}},{\"type\":\"output\",\"position\":{\"start\":2108,\"end\":2123},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"],\"position\":{\"start\":2108,\"end\":2123}},{\"type\":\"Twig.expression.type.key.period\",\"position\":{\"start\":2108,\"end\":2123},\"key\":\"title\"}]},{\"type\":\"raw\",\"value\":\"\\n \",\"position\":{\"start\":2123,\"end\":2138}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"is_secure\"}],\"position\":{\"start\":2138,\"end\":2160},\"output\":[{\"type\":\"raw\",\"value\":\"\",\"position\":{\"start\":2160,\"end\":2220}}]},\"position\":{\"open\":{\"start\":2138,\"end\":2160},\"close\":{\"start\":2220,\"end\":2231}}},{\"type\":\"raw\",\"value\":\" \\n

    \\n\\n \",\"position\":{\"start\":2232,\"end\":2276}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"content\",\"match\":[\"content\"]}],\"position\":{\"start\":2276,\"end\":2292},\"output\":[{\"type\":\"raw\",\"value\":\"

    \",\"position\":{\"start\":2293,\"end\":2342}},{\"type\":\"output\",\"position\":{\"start\":2342,\"end\":2355},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"content\",\"match\":[\"content\"],\"position\":{\"start\":2342,\"end\":2355}}]},{\"type\":\"raw\",\"value\":\"

    \\n \",\"position\":{\"start\":2355,\"end\":2370}}]},\"position\":{\"open\":{\"start\":2276,\"end\":2292},\"close\":{\"start\":2370,\"end\":2381}}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":2382,\"end\":2392}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"type\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"event\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"==\",\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"==\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"hit\",\"match\":[\"hit\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"is_recurring\"},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"and\",\"precidence\":13,\"associativity\":\"leftToRight\",\"operator\":\"and\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"meta_info\",\"match\":[\"meta_info\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"and\",\"precidence\":13,\"associativity\":\"leftToRight\",\"operator\":\"and\"}],\"position\":{\"start\":2392,\"end\":2455},\"output\":[{\"type\":\"raw\",\"value\":\"

    \\n \",\"position\":{\"start\":2456,\"end\":2593}},{\"type\":\"output\",\"position\":{\"start\":2593,\"end\":2608},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"meta_info\",\"match\":[\"meta_info\"],\"position\":{\"start\":2593,\"end\":2608}}]},{\"type\":\"raw\",\"value\":\"

    \\n \",\"position\":{\"start\":2608,\"end\":2624}}]},\"position\":{\"open\":{\"start\":2392,\"end\":2455},\"close\":{\"start\":2624,\"end\":2646}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.elseif\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"meta_info\",\"match\":[\"meta_info\"]}],\"position\":{\"start\":2624,\"end\":2646},\"output\":[{\"type\":\"raw\",\"value\":\"

    \",\"position\":{\"start\":2647,\"end\":2699}},{\"type\":\"output\",\"position\":{\"start\":2699,\"end\":2714},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"meta_info\",\"match\":[\"meta_info\"],\"position\":{\"start\":2699,\"end\":2714}}]},{\"type\":\"raw\",\"value\":\"

    \\n \",\"position\":{\"start\":2714,\"end\":2730}}]},\"position\":{\"open\":{\"start\":2624,\"end\":2646},\"close\":{\"start\":2730,\"end\":2741}}},{\"type\":\"raw\",\"value\":\" \\n\\n
    \\n
  • \\n \",\"position\":{\"start\":2741,\"end\":2779}}]},\"position\":{\"open\":{\"start\":274,\"end\":301},\"close\":{\"start\":2779,\"end\":2791}}},{\"type\":\"raw\",\"value\":\"
\\n\\n \",\"position\":{\"start\":2792,\"end\":2803}}]},\"position\":{\"open\":{\"start\":216,\"end\":235},\"close\":{\"start\":2803,\"end\":2813}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.else\",\"match\":[\"else\"],\"position\":{\"start\":2803,\"end\":2813},\"output\":[{\"type\":\"raw\",\"value\":\"

No results.

\\n \",\"position\":{\"start\":2814,\"end\":2870}}]},\"position\":{\"open\":{\"start\":2803,\"end\":2813},\"close\":{\"start\":2870,\"end\":2881}}},{\"type\":\"raw\",\"value\":\"
\\n\",\"position\":{\"start\":2882,\"end\":2882}}],\"id\":\"templates/components/search/menu-results-group.twig\",\"rethrow\":true});\nmodule.exports = function(context) { return tpl.render(context); };\nmodule.exports.id = \"templates/components/search/menu-results-group.twig\";\nmodule.exports.default = module.exports;\n","require(\"components/search/menu-results-group.twig\"); \nvar twig = require(\"twig\").twig;\nvar tpl = twig({\"allowInlineIncludes\":true,\"data\":[{\"type\":\"raw\",\"value\":\"
\\n
\\n

\\n \",\"position\":{\"start\":0,\"end\":87}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"nbHits\",\"match\":[\"nbHits\"]},{\"type\":\"Twig.expression.type.number\",\"value\":0,\"match\":[\"0\",null]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\">\",\"precidence\":8,\"associativity\":\"leftToRight\",\"operator\":\">\"}],\"position\":{\"start\":87,\"end\":106},\"output\":[{\"type\":\"raw\",\"value\":\" Showing top \",\"position\":{\"start\":107,\"end\":166}},{\"type\":\"output\",\"position\":{\"start\":166,\"end\":180},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"pageHits\",\"match\":[\"pageHits\"],\"position\":{\"start\":166,\"end\":180}}]},{\"type\":\"raw\",\"value\":\" result\",\"position\":{\"start\":180,\"end\":187}},{\"type\":\"output\",\"position\":{\"start\":187,\"end\":217},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"pageHits\",\"match\":[\"pageHits\"],\"position\":{\"start\":187,\"end\":217}},{\"type\":\"Twig.expression.type.number\",\"value\":1,\"match\":[\"1\",null],\"position\":{\"start\":187,\"end\":217}},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"!=\",\"position\":{\"start\":187,\"end\":217},\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"!=\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"s\",\"position\":{\"start\":187,\"end\":217}},{\"type\":\"Twig.expression.type.string\",\"value\":\"\",\"position\":{\"start\":187,\"end\":217}},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"?\",\"position\":{\"start\":187,\"end\":217},\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\"?\"}]},{\"type\":\"raw\",\"value\":\".\\n \",\"position\":{\"start\":217,\"end\":225}}]},\"position\":{\"open\":{\"start\":87,\"end\":106},\"close\":{\"start\":225,\"end\":235}}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.else\",\"match\":[\"else\"],\"position\":{\"start\":225,\"end\":235},\"output\":[{\"type\":\"raw\",\"value\":\" No results found.\\n \",\"position\":{\"start\":236,\"end\":307}}]},\"position\":{\"open\":{\"start\":225,\"end\":235},\"close\":{\"start\":307,\"end\":318}}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":319,\"end\":325}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"nbHits\",\"match\":[\"nbHits\"]},{\"type\":\"Twig.expression.type.number\",\"value\":0,\"match\":[\"0\",null]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\">\",\"precidence\":8,\"associativity\":\"leftToRight\",\"operator\":\">\"}],\"position\":{\"start\":325,\"end\":344},\"output\":[{\"type\":\"raw\",\"value\":\" View all \",\"position\":{\"start\":422,\"end\":433}},{\"type\":\"output\",\"position\":{\"start\":433,\"end\":461},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"nbHits\",\"match\":[\"nbHits\"],\"position\":{\"start\":433,\"end\":461}},{\"type\":\"Twig.expression.type.filter\",\"value\":\"number_format\",\"match\":[\"| number_format\",\"number_format\"],\"position\":{\"start\":433,\"end\":461}}]},{\"type\":\"raw\",\"value\":\" result\",\"position\":{\"start\":461,\"end\":468}},{\"type\":\"output\",\"position\":{\"start\":468,\"end\":496},\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"nbHits\",\"match\":[\"nbHits\"],\"position\":{\"start\":468,\"end\":496}},{\"type\":\"Twig.expression.type.number\",\"value\":1,\"match\":[\"1\",null],\"position\":{\"start\":468,\"end\":496}},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"!=\",\"position\":{\"start\":468,\"end\":496},\"precidence\":9,\"associativity\":\"leftToRight\",\"operator\":\"!=\"},{\"type\":\"Twig.expression.type.string\",\"value\":\"s\",\"position\":{\"start\":468,\"end\":496}},{\"type\":\"Twig.expression.type.string\",\"value\":\"\",\"position\":{\"start\":468,\"end\":496}},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\"?\",\"position\":{\"start\":468,\"end\":496},\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\"?\"}]},{\"type\":\"raw\",\"value\":\".\\n \",\"position\":{\"start\":496,\"end\":515}}]},\"position\":{\"open\":{\"start\":325,\"end\":344},\"close\":{\"start\":515,\"end\":526}}},{\"type\":\"raw\",\"value\":\"

\\n\\n \\n
\\n\\n \",\"position\":{\"start\":527,\"end\":680}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.if\",\"stack\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"nbHits\",\"match\":[\"nbHits\"]},{\"type\":\"Twig.expression.type.number\",\"value\":0,\"match\":[\"0\",null]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\">\",\"precidence\":8,\"associativity\":\"leftToRight\",\"operator\":\">\"}],\"position\":{\"start\":680,\"end\":699},\"output\":[{\"type\":\"raw\",\"value\":\"
\\n\\n \",\"position\":{\"start\":700,\"end\":747}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.for\",\"keyVar\":null,\"valueVar\":\"col\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"column\",\"match\":[\"column\"]}],\"position\":{\"start\":747,\"end\":770},\"output\":[{\"type\":\"raw\",\"value\":\"
\\n \",\"position\":{\"start\":771,\"end\":826}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.for\",\"keyVar\":null,\"valueVar\":\"group\",\"expression\":[{\"type\":\"Twig.expression.type.variable\",\"value\":\"col\",\"match\":[\"col\"]},{\"type\":\"Twig.expression.type.key.period\",\"key\":\"groups\"}],\"position\":{\"start\":826,\"end\":855},\"output\":[{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":856,\"end\":866}},{\"type\":\"logic\",\"token\":{\"type\":\"Twig.logic.type.include\",\"only\":false,\"ignoreMissing\":false,\"stack\":[{\"type\":\"Twig.expression.type.string\",\"value\":\"templates/components/search/menu-results-group.twig\"}],\"withStack\":[{\"type\":\"Twig.expression.type.object.start\",\"value\":\"{\",\"match\":[\"{\"]},{\"type\":\"Twig.expression.type.operator.binary\",\"value\":\":\",\"precidence\":16,\"associativity\":\"rightToLeft\",\"operator\":\":\",\"key\":\"group\"},{\"type\":\"Twig.expression.type.variable\",\"value\":\"group\",\"match\":[\"group\"]},{\"type\":\"Twig.expression.type.object.end\",\"value\":\"}\",\"match\":[\"}\"]}],\"position\":{\"start\":866,\"end\":945}},\"position\":{\"start\":866,\"end\":945}},{\"type\":\"raw\",\"value\":\" \",\"position\":{\"start\":946,\"end\":954}}]},\"position\":{\"open\":{\"start\":826,\"end\":855},\"close\":{\"start\":954,\"end\":966}}},{\"type\":\"raw\",\"value\":\"
\\n \",\"position\":{\"start\":967,\"end\":992}}]},\"position\":{\"open\":{\"start\":747,\"end\":770},\"close\":{\"start\":992,\"end\":1004}}},{\"type\":\"raw\",\"value\":\"\\n
\\n \",\"position\":{\"start\":1005,\"end\":1019}}]},\"position\":{\"open\":{\"start\":680,\"end\":699},\"close\":{\"start\":1019,\"end\":1030}}},{\"type\":\"raw\",\"value\":\"
\\n\",\"position\":{\"start\":1031,\"end\":1031}}],\"id\":\"templates/components/search/menu-results.twig\",\"rethrow\":true});\nmodule.exports = function(context) { return tpl.render(context); };\nmodule.exports.id = \"templates/components/search/menu-results.twig\";\nmodule.exports.default = module.exports;\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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"15\":\"course-search-app\",\"25\":\"global-search-app\",\"36\":\"hang-punctuation\",\"59\":\"modal-gallery\",\"144\":\"event-search-app\",\"410\":\"gallery-block-modal-gallery\",\"475\":\"home-topper-logo\",\"542\":\"home-circles\",\"549\":\"sticky-sidebar\",\"670\":\"bibliography-search-app\",\"692\":\"visual-cards-carousel\",\"766\":\"autoplay-video\",\"823\":\"on-this-page\",\"912\":\"faculty-search-app\"}[chunkId] || chunkId) + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 524;","__webpack_require__.p = \"/wp-content/themes/hls/dist/\";","// 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\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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(function(id) { return 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[\"webpackChunk_upstatement_harvard_law_school_wp_theme\"] = self[\"webpackChunk_upstatement_harvard_law_school_wp_theme\"] || [];\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, [121], function() { return __webpack_require__(84315); })\n__webpack_require__.O(undefined, [121], function() { return __webpack_require__(7452); })\n__webpack_require__.O(undefined, [121], function() { return __webpack_require__(15279); })\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], function() { return __webpack_require__(8879); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","window","hadGlobal","oldGlobal","Modernizr","scriptGlobalObject","document","undefined","tests","ModernizrProto","_version","_config","_q","on","test","cb","self","this","setTimeout","addTest","name","fn","options","push","addAsyncTest","prototype","classes","is","obj","type","_typeof","hasOwnProp","_hasOwnProperty","docElement","documentElement","isSVG","nodeName","toLowerCase","setClasses","className","classPrefix","baseVal","enableJSClass","reJS","RegExp","replace","enableClasses","length","join","feature","key","featureNameSplit","split","last","Boolean","_trigger","createElement","arguments","createElementNS","call","apply","hasOwnProperty","object","property","constructor","_l","res","cbs","i","supportsHtml5Styles","supportsUnknownElements","html5","reSkip","saveClones","expando","expanID","expandoData","addStyleSheet","ownerDocument","cssText","p","parent","getElementsByTagName","innerHTML","insertBefore","lastChild","firstChild","getElements","elements","getExpandoData","data","node","cache","cloneNode","createElem","canHaveChildren","tagUrn","frag","appendChild","shivDocument","shivCSS","hasCSS","createFrag","createDocumentFragment","shivMethods","Function","a","childNodes","e","clone","elems","l","addElements","newElements","docEl","reMedia","shivNamespace","supportsShivableSheets","namespaces","parentWindow","applyElement","removeNode","attachEvent","createWrapper","element","nodes","attributes","index","wrapper","specified","setAttribute","nodeValue","style","shivPrint","shivedSheet","wrappers","ownerWindow","printShived","removeSheet","clearTimeout","_removeSheetTimer","add","imports","sheet","collection","styleSheets","sheets","Array","pop","disabled","media","er","pair","parts","reElements","replacement","shivCssText","reverse","result","addWrappers","removeWrappers","module","exports","modElem","elem","mStyle","domToCSS","str","m1","nativeTestProps","props","value","CSS","supports","conditionText","rule","callback","testnames","ret","docOverflow","mod","div","body","fake","getBody","parseInt","id","styleSheet","createTextNode","background","overflow","parentNode","removeChild","offsetHeight","injectElementWithStyles","pseudo","prop","getComputedStyle","console","getPropertyValue","error","currentStyle","computedStyle","testProps","prefixed","skipValueTest","afterInit","propsLength","before","shift","cleanElems","indexOf","m2","toUpperCase","fnBind","that","unshift","testProp","useValue","getContext","canvas","fillText","canvastext","ctx","offset","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","fillStyle","textBaseline","font","getImageData","omPrefixes","cssomPrefixes","usePrefixes","_cssomPrefixes","domPrefixes","testPropsAll","ucProp","charAt","slice","item","testDOMProps","testAllProps","_domPrefixes","Promise","r","resolve","featureNames","aliasIdx","nameIdx","featureIdx","aliases","testRunner","PageScrolls","_classCallCheck","bodyEl","observer","observerMap","el","querySelector","modifier","observedElements","filter","_ref","active","map","_ref2","dataset","buildObserver","_this","forEach","unobserve","_this2","IntersectionObserver","onIntersect","bind","rootMargin","threshold","observe","entries","_this3","entry","target","isIntersecting","classList","remove","Menu","classname","menu","concat","content","menuOpen","from","querySelectorAll","menuClose","menuTopHeadings","searchInput","menuIsOpen","listeners","onCloseCallbacks","setupFocusable","setupListeners","get","plainClassname","toggle","logo","focusableEls","_toConsumableArray","x","firstFocusableEl","lastFocusableEl","args","settings","_objectSpread","focus","activeClass","triggerInputFocus","keydown","toggleHeading","disableBodyScroll","removeAttribute","off","enableBodyScroll","event","close","currentTarget","hasAttribute","open","input","ACTIVE_CLASS","currentlyActive","contains","nextElementSibling","focusable","matchMedia","matches","activeElement","preventDefault","KEY_CODES","ESCAPE","ESCAPE_IE11","TAB","shiftKey","handleBackwardTab","handleForwardTab","renderSearchBox","renderOptions","isFirstRender","query","refine","inputEl","widgetParams","addEventListener","snippetter","attribute","hit","snippet","_regeneratorRuntime","t","Object","n","o","defineProperty","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","keys","prev","stop","rval","handle","complete","finish","catch","delegateYield","_createForOfIteratorHelper","isArray","_unsupportedIterableToArray","_n","F","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","toString","asyncGeneratorStep","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","_toPropertyKey","toPrimitive","String","_toPrimitive","algoliaSettings","ALGOLIA_INDEX_NAME","GLOBAL_MENU_SEARCH_FILTERS","ALGOLIA_SECONDARY_INDEX_NAME","ACTIVE_SEARCH_CLASS","MenuSearch","algoliaClient","hitsEl","resetButtons","searchInputEl","setup","init","timerId","search","instantsearch","indexName","searchClient","requests","every","params","results","hits","nbHits","nbPages","page","processingTimeMS","searchFunction","helper","loaded","state","addWidgets","configure","hitsPerPage","SEARCH_SETTINGS","searchItems","distinct","filters","connectSearchBox","queryHook","connectHits","renderHits","container","start","_callee","numberOfHits","_this$searchInputEl","currentTime","searchParams","secondaryResults","pageHits","filterGroup","_iterator","_step","searchKeys","columnSplit","columnCount","column","_i","_searchKeys","typeData","moved","current","candidate","leftCount","_i2","_column","_current","maxItems","total","unfilledGroups","_iterator2","_step2","_group","deficit","removals","_i3","group","_i4","_removals","removal","_iterator3","_step3","_item","cleanItem","_type","_typeData","_context","Math","floor","Date","now","Map","title","decodeHTMLEntities","_highlightResult","has","set","POST_TYPE_MAP","raw","err","ceil","size","columns","groups","column_size","sort","b","splice","highlight","aoi_intro","t0","template","_renderHits","_next","_throw","_x","setUiState","text","textArea","SUBNAV_OPEN_CLASS","SubNav","mobileTrigger","isOpen","handleClick","closest","offClickListener","handleOffClick","_document$querySelect","menuSearch","Subnav","onClose","location","hash","scrollIntoView","components","onThisPageEls","OnThisPage","default","autoplayVideoEls","AutoplayVideo","home_topper_logo","HomeTopperLogo","homeCirclesEls","HomeCircles","sidebar","StickySidebar","filterSidebar","filterFooter","footerWasVisible","innerWidth","clientWidth","footerBoundaries","getBoundingClientRect","windowHeight","innerHeight","clientHeight","sidebarBoundaries","sidebarHeight","bottom","top","scrollTop","hangPunctuationEls","HangPunctuation","galleries","ModalGallery","galleryBlockGalleries","GalleryBlockModalGallery","courseSearchApp","CourseSearch","facultySearchApp","FacultySearch","bibliographySearchApp","BibliographySearch","globalSearchApp","GlobalSearch","eventSearchApp","eventSearch","EventSearch","pastLimit","setFullYear","getFullYear","getMonth","setMonth","futureLimit","calendar","VanillaCalendar","date","min","padStart","getDate","max","iso8601","visibility","weekend","lang","locale","months","weekday","actions","clickDay","controls","newParams","newDate","calendarDay","triggerChange","DOMTemplates","month","year","queryString","URLSearchParams","selected","dates","Number","substr","visualCardsCarouselEls","VisualCardsCarousel","pageInit","readyState","once","ALGOLIA_APPLICATION_ID","ALGOLIA_SEARCH_ONLY_API_KEY","algoliasearch","ARROW_LEFT","ARROW_LEFT_IE11","ARROW_RIGHT","ARROW_RIGHT_IE11","SPACE","SPACE_IE11","ENTER","hls_course","hls_bibliography","hls_today_post","hls_faculty","hls_aoi","post","elementOrMultiple","listener","removeEventListener","tpl","twig","context","render","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","getter","__esModule","definition","chunkId","all","reduce","promises","miniCssF","globalThis","url","script","needAttach","scripts","getAttribute","charset","timeout","nc","src","onScriptComplete","onerror","onload","doneFns","head","nmd","paths","children","installedChunks","installedChunkData","promise","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}