{"id":223887,"date":"2020-09-18T21:57:51","date_gmt":"2020-09-18T18:57:51","guid":{"rendered":"http:\/\/ww-vb.mine.nu\/w108\/the-iphones-voice-memos-feature-tracks-your-location\/"},"modified":"2020-09-18T21:59:05","modified_gmt":"2020-09-18T18:59:05","slug":"the-iphones-voice-memos-feature-tracks-your-location","status":"publish","type":"post","link":"https:\/\/hameed.nwar.uk\/sa\/the-iphones-voice-memos-feature-tracks-your-location\/","title":{"rendered":"The iPhone&#8217;s Voice Memos function tracks your location."},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div itemprop=\"mainEntityOfPage\">\n<figure data-uri=\"slate.com\/_components\/image\/instances\/ckf8gcd14001d7fj888zw12qc@published\" class=\"image image--center \" data-editable=\"imageInfo\">\n<div class=\"lazy-container\" style=\"padding-bottom: 66.66666666666666%;\">\n          <img decoding=\"async\" class=\"image__src\" src=\"https:\/\/compote.slate.com\/images\/a78026b4-31df-46d2-bc97-e5dce75a43fa.jpeg?width=780&amp;height=520&amp;rect=5160x3440&amp;offset=0x0\" alt=\"A man using an iPhone\"\/><noscript><br \/>\n            <img decoding=\"async\" src=\"https:\/\/compote.slate.com\/images\/a78026b4-31df-46d2-bc97-e5dce75a43fa.jpeg?width=780&amp;height=520&amp;rect=5160x3440&amp;offset=0x0\" alt=\"A man using an iPhone\" loading=\"lazy\"\/><\/noscript>\n        <\/div><figcaption class=\"image__meta\"><span class=\"image__caption\">Watch out utilizing this as a microphone.<\/span><br \/>\n<span class=\"image__credit\">Joseph Eid\/AFP by way of Getty Pictures<\/span><br \/>\n<\/figcaption><\/figure>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8gcd14001e7fj8nzmhi56h@published\" data-word-count=\"59\" class=\"slate-paragraph slate-graf\">Like Zoom calls and Amazon Prime, one of many applied sciences having a pandemic second is the iPhone Voice Memos app. Historic societies, information organizations, and faculties have been asking folks to file their insights and dispatches in the course of the coronavirus disaster. Some have steered socially distanced buddies might swap voice recordings as a substitute for one more exhausting video name.<\/p>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8ghu12000g3h61np3e5kae@published\" data-word-count=\"98\" class=\"slate-paragraph slate-graf\">Podcasting is one other space that\u2019s relying closely on Voice Memos, together with at Slate. As a result of our podcast studios are closed proper now, our hosts and friends have at occasions been turning to audio memos to file segments at house. One factor my colleagues have observed, nonetheless, is a peculiar and probably invasive quirk: For those who don\u2019t label the memo your self, the app will robotically use the placement the place the recording came about because the title. In different phrases, Voice Memos is monitoring your location. You don\u2019t should be too paranoid to see why that could be an issue.<\/p>\n<figure data-uri=\"slate.com\/_components\/image\/instances\/ckf8gpzsl00193h61fn94g40w@published\" class=\"image image--right \" data-editable=\"imageInfo\">\n<div class=\"lazy-container\" style=\"padding-bottom: 150%;\">\n          <img decoding=\"async\" class=\"image__src\" src=\"https:\/\/compote.slate.com\/images\/17f0e0a0-2dec-4b12-9a7f-a0ee8405061c.png?width=780&amp;height=1170&amp;rect=738x1107&amp;offset=9x100\" alt=\"Screenshot of Voice Memos app showing locations where the author was walking.\"\/><noscript><br \/>\n            <img decoding=\"async\" src=\"https:\/\/compote.slate.com\/images\/17f0e0a0-2dec-4b12-9a7f-a0ee8405061c.png?width=780&amp;height=1170&amp;rect=738x1107&amp;offset=9x100\" alt=\"Screenshot of Voice Memos app showing locations where the author was walking.\" loading=\"lazy\"\/><\/noscript>\n        <\/div><figcaption class=\"image__meta\"><span class=\"image__caption\">Voice Memos from a stroll.<\/span><br \/>\n<span class=\"image__credit\">Aaron Mak<\/span><br \/>\n<\/figcaption><\/figure>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8ghudl000h3h61hzak0wfx@published\" data-word-count=\"91\" class=\"slate-paragraph slate-graf\">It seems this isn\u2019t a bug. Apple refers to it as \u201clocation-based naming.\u201d The function, which makes use of native Wi-Fi networks to divine places, is presumably meant to assist jog folks\u2019s recollections once they look again by their recordings. They\u2019ll be capable to seek for the recording they made within the workplace or at house. This naming scheme has been round for some time now; it got here with iOS 12\u2019s Voice Memos revamp in 2018 for iPhones, iPads, and Macs. Gadget reviewers famous the weirdness of the function upon its launch.<\/p>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8ghug2000i3h6189ysgh8j@published\" data-word-count=\"117\" class=\"slate-paragraph slate-graf\">To check out how the placement monitoring works, I took a stroll round northwest D.C. with my iPhone and recorded memos at varied stops alongside the best way. As you possibly can see, the app will typically label recordings based mostly on close by neighborhoods, main streets, and landmarks like parks and statues. For those who have been to mark these places on a map, you might get a fairly good sense of my strolling path together with time markers. Among the file names on recordings from Slate workers, nonetheless, have been much more granular, with precise addresses that embody home numbers. Customers on Apple\u2019s assist boards have even reported that their recordings have been labeled with the names of close by companies.<\/p>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8gs8db001m3h61yxrlqaz1@published\" data-word-count=\"81\" class=\"slate-paragraph slate-graf\">For those who\u2019re the kind of one that\u2019s recording your ideas and observations all through the day utilizing Voice Memos, location-based naming might be a reasonably handy solution to manage every thing. The problem is that it seems iPhones have location-based naming enabled because the default. (Apple didn\u2019t reply to my questions in regards to the function.) The Slate staffers who observed the naming taking place hadn\u2019t really determined to show the function on, and they also have been unpleasantly stunned to see their places have been being logged.<\/p>\n<aside data-uri=\"slate.com\/_components\/in-article-recirc\/instances\/ckf8gcd14001f7fj8ihdxnnll@published\" class=\"in-article-recirc\" data-via=\"article-inline_recirc-rubric-future-tense\">\n<ol class=\"in-article-recirc__list\">\n<li class=\"in-article-recirc__item\">\n<p>            Fb\u2019s New Mission Aria Might Be an Augmented Actuality Turning Level<\/p>\n<\/li>\n<li class=\"in-article-recirc__item\">\n<p>            Right here\u2019s What the Trump Administration\u2019s TikTok and WeChat Bans Really Do<\/p>\n<\/li>\n<li class=\"in-article-recirc__item\">\n<p>            <em>The Social Dilemma <\/em>Fails to Deal with the Actual Points in Tech<\/p>\n<\/li>\n<li class=\"in-article-recirc__item\">\n<p>            American Woman\u2019s New Doll \u201cCourtney\u201d Is the Sport Developer the \u201980s Wanted<\/p>\n<\/li>\n<\/ol>\n<\/aside>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8h86dv000g3h61xs30sagj@published\" data-word-count=\"65\" class=\"slate-paragraph slate-graf\">There are a selection of privateness dangers inherent to this function, significantly as a result of it seems to be robotically enabled. As an example, a few of Slate\u2019s podcast producers have discovered that individuals will inadvertently e mail them Voice Memo recordsdata that embody precise addresses. In a extra sinister situation, a malefactor might hack into an iPhone and entry a file of the place a Voice Memo consumer has been.<\/p>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8h6bbz000d3h61uf0g6tgl@published\" data-word-count=\"44\" class=\"slate-paragraph slate-graf\">With a view to disable location-based naming in your iPhone, go into the settings for Voice Memos to modify the function off and ensure the app by no means has entry to your location. After doing so, the app will as a substitute simply quantity the recordings sequentially.<\/p>\n<figure data-uri=\"slate.com\/_components\/image\/instances\/ckf8gst30001t3h61kdyzgl68@published\" class=\"image image--center \" data-editable=\"imageInfo\">\n<div class=\"lazy-container\" style=\"padding-bottom: 150%;\">\n          <img decoding=\"async\" class=\"image__src\" src=\"https:\/\/compote.slate.com\/images\/585843fa-de51-418d-95f4-fc8ab6a9f060.png?width=780&amp;height=1170&amp;rect=746x1119&amp;offset=4x134\" alt=\"Screenshot showing how to turn off location-based naming.\"\/><noscript><br \/>\n            <img decoding=\"async\" src=\"https:\/\/compote.slate.com\/images\/585843fa-de51-418d-95f4-fc8ab6a9f060.png?width=780&amp;height=1170&amp;rect=746x1119&amp;offset=4x134\" alt=\"Screenshot showing how to turn off location-based naming.\" loading=\"lazy\"\/><\/noscript>\n        <\/div><figcaption class=\"image__meta\"><span class=\"image__caption\">Voice Memos settings.<\/span><br \/>\n<span class=\"image__credit\">Aaron Mak<\/span><br \/>\n<\/figcaption><\/figure>\n<p data-uri=\"slate.com\/_components\/slate-paragraph\/instances\/ckf8gw03q002k3h61nx7ez0jr@published\" data-word-count=\"16\" class=\"slate-paragraph slate-graf\"><em>Future Tense<\/em><em>\u00a0is a partnership of\u00a0<\/em><em>Slate<\/em><em>,\u00a0<\/em><em>New America<\/em><em>, and\u00a0<\/em><em>Arizona State College<\/em><em>\u00a0that examines rising applied sciences, public coverage, and society.<\/em><\/p>\n<\/p><\/div>\n<p><script type=\"text\/javascript\">\n      \/\/ <![CDATA[\n        window.modules=[];\nwindow.modules[\"1\"] = [function(require,module,exports){\"use strict\";\n\/* globals amplitude: false *\/\n\n\/* globals document: false *\/\n\n\/**\n * An API wrapper for our various analytics services\n *\n *\/\n\nvar domEventData;\n\nvar getDomEventData = function getDomEventData(el) ; \/\/ See https:\/\/segment.com\/docs\/sources\/website\/analytics.js\/#track\n\/\/ analytics.track(event, [properties], [options], [callback]);\n\n\/**\n * This function wraps the call to amplitude's logEvent method, but always looks for and adds the data in\n *\/\n\n\nvar track = function track(event, properties, callback) {\n  var data = getDomEventData();\n  var props = {};\n  Object.assign(props, data, properties);\n  amplitude.getInstance().logEvent(event, props, callback);\n}; \/\/ Page is a special event that does its own properties\n\n\nvar page = function page(properties, callback) {\n  amplitude.getInstance().logEvent(\"Loaded a Page\", properties, callback);\n};\n\nmodule.exports.getDomEventData = getDomEventData;\nmodule.exports.page = page;\nmodule.exports.track = track;\n}, {}];\nwindow.modules[\"2\"] = [function(require,module,exports){\/* globals document: false *\/\n\"use strict\";\n\nfunction isAbEnabled() {\n  \/**\n   * Create a temporary \"ad\" node for adblockers to target\n   *\/\n  var tempAd = document.createElement(\"div\");\n  tempAd.innerHTML = \"&#038;nbsp\";\n  tempAd.className = \"ad-container\";\n  document.body.appendChild(tempAd);\n  var enabled = tempAd.offsetHeight === 0;\n  document.body.removeChild(tempAd);\n  return enabled;\n}\n\nmodule.exports = {\n  isAbEnabled: isAbEnabled\n};\n}, {}];\nwindow.modules[\"3\"] = [function(require,module,exports){\"use strict\"; \/\/ get Slate Plus (splus) cookie\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar cookies = require(43),\n    splusCookieJson = cookies.getJSON(\"splus\");\n\/**\n * Return if Member\n * @returns {boolean}\n *\/\n\n\nfunction isMember() {\n  var isMember = false;\n\n  if (splusCookieJson) {\n    isMember = true;\n  }\n\n  return isMember;\n}\n\/**\n * Return Member Type\n * @returns {string}\n *\/\n\n\nfunction getMembershipType() {\n  var membershipType = \"none\";\n\n  if (splusCookieJson) {\n    membershipType = splusCookieJson.membershipType;\n  }\n\n  return membershipType;\n}\n\/**\n * Return Member Info\n * @returns {json}\n *\/\n\n\nfunction getMembershipInfo() {\n  var myslateUrl = document.documentElement.dataset.myslateurl;\n  var url = myslateUrl + \"\/users\/slate_page_info\/\";\n  var options = {\n    method: \"GET\",\n    credentials: \"include\",\n    \/\/pass cookies\n    headers: {\n      Accept: \"application\/json\"\n    }\n  };\n\n  if (splusCookieJson) {\n    \/\/Returns a promise. To get the value, use `then` in component's js\n    return fetch(url, options).then(function (response) {\n      return response.json();\n    }).catch(function (error) {\n      console.log(\"Fetch for myslate membership info failed:\", error);\n    });\n  }\n}\n\nvar isPianoEnabled;\n\nfunction getLoginId() {\n  return _getLoginId.apply(this, arguments);\n}\n\nfunction _getLoginId() {\n  _getLoginId = _asyncToGenerator(\n  \/*#__PURE__*\/\n  regeneratorRuntime.mark(function _callee() {\n    var myslateUrl, result, payload;\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            myslateUrl = document.documentElement.dataset.myslateurl;\n            _context.prev = 1;\n\n            if (!(isPianoEnabled === undefined)) {\n              _context.next = 15;\n              break;\n            }\n\n            _context.prev = 3;\n            _context.next = 6;\n            return fetch(\"\".concat(myslateUrl, \"\/api\/me\/id\"));\n\n          case 6:\n            result = _context.sent;\n            _context.next = 9;\n            return result.json();\n\n          case 9:\n            payload = _context.sent;\n            isPianoEnabled = payload.is_piano_enabled;\n            _context.next = 15;\n            break;\n\n          case 13:\n            _context.prev = 13;\n            _context.t0 = _context[\"catch\"](3);\n\n          case 15:\n            if (!isPianoEnabled) {\n              _context.next = 19;\n              break;\n            }\n\n            return _context.abrupt(\"return\", getPianoId());\n\n          case 19:\n            return _context.abrupt(\"return\", cookies.getJSON(\"wapo_login_id\"));\n\n          case 20:\n            _context.next = 26;\n            break;\n\n          case 22:\n            _context.prev = 22;\n            _context.t1 = _context[\"catch\"](1);\n            console.error(\"getLoginId error\", _context.t1);\n            return _context.abrupt(\"return\", false);\n\n          case 26:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, null, [[1, 22], [3, 13]]);\n  }));\n  return _getLoginId.apply(this, arguments);\n}\n\nfunction getPianoId() {\n  var pianoJwt = cookies.get(\"__utp\");\n\n  if (pianoJwt) {\n    try {\n      var payload = atob(pianoJwt.split(\".\")[1]);\n      return JSON.parse(payload)[\"sub\"];\n    } catch (e) {\n      return;\n    }\n  }\n}\n\nfunction isLoggedIn() {\n  return _isLoggedIn.apply(this, arguments);\n}\n\/**\n * get the podcast url for a given podcast name\n *\n * @typedef Podcast\n * @type {Object}\n * @property {display_name}\n * @property {feed_url}\n *\n * @param {String} podcastName should equal the `display_name` of one entry from the second param\n * @param {Array<Podcast>} podcastsList personalized feed links from myslate\n * @return undefined\n *\/\n\n\nfunction _isLoggedIn() {\n  _isLoggedIn = _asyncToGenerator(\n  \/*#__PURE__*\/\n  regeneratorRuntime.mark(function _callee2() {\n    var result;\n    return regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            _context2.next = 2;\n            return getLoginId();\n\n          case 2:\n            result = _context2.sent;\n            return _context2.abrupt(\"return\", !!result);\n\n          case 4:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n  return _isLoggedIn.apply(this, arguments);\n}\n\nfunction getFeedUrl(podcastName, podcastsList) {\n  for (var i = 0; i < podcastsList.length; i++) {\n    var p = podcastsList[i];\n\n    if (p.display_name === podcastName) {\n      return p.feed_url;\n    }\n  }\n}\n\nmodule.exports.getLoginId = getLoginId;\nmodule.exports.getMembershipType = getMembershipType;\nmodule.exports.getMembershipInfo = getMembershipInfo;\nmodule.exports.isLoggedIn = isLoggedIn;\nmodule.exports.isMember = isMember;\nmodule.exports.getFeedUrl = getFeedUrl;\n}, {\"43\":43}];\nwindow.modules[\"9\"] = [function(require,module,exports){\"use strict\";\n\nvar slateAmplitude = require(1);\n\nvar slatePermutive = require(40);\n\nfunction attachEvents(el) {\n  var shareLinks = el.getElementsByClassName(\"js-share-link\");\n\n  for (var i = 0; i < shareLinks.length; i++) {\n    shareLinks[i].addEventListener(\"click\", handleClick);\n  }\n}\n\nfunction handleClick(event) {\n  event.preventDefault();\n  var el = this;\n  var platform = el.dataset.share;\n  var eventProperties = {\n    type: platform,\n    action: el.dataset.parselyEvent\n  };\n  slateAmplitude.track(\"Clicked Social Share\", eventProperties);\n  slatePermutive.track(\"Social\", {\n    platform: platform\n  });\n  openPopupWindow(el);\n}\n\nfunction openPopupWindow(el) {\n  var shareURL = el.href;\n  window.open(shareURL, \"sharewindow\"https:\/\/slate.com\/,\"toolbar=0,status=0,width=620,height=280\");\n}\n\nmodule.exports.attachEvents = attachEvents;\n}, {\"1\":1,\"40\":40}];\nwindow.modules[\"11\"] = [function(require,module,exports){\"use strict\";\n\nmodule.exports = {\n  URL: URL,\n  URLSearchParams: URLSearchParams\n};\n}, {}];\nwindow.modules[\"28\"] = [function(require,module,exports){\"use strict\";\n\n\/\/ https:\/\/www.w3.org\/TR\/wai-aria-practices-1.1\/#disclosure\n\/\/ classnames match rulesets in _dropdown.scss\nvar dropdownSelector = \".dropdown\";\nvar openModifier = \"dropdown--open\";\nvar buttonSelector = \".dropdown__button\";\nvar contentSelector = \".dropdown__content\";\n\nmodule.exports = function (el) {\n  var dropdownEl = el.matches(dropdownSelector) ? el : el.querySelector(dropdownSelector); \/\/ some views have conditional dropdowns, e.g. based on whether the user is logged in\n  \/\/ check for that here rather than requiring each client script to do the same check\n\n  if (!dropdownEl) return;\n  var content = dropdownEl.querySelector(contentSelector);\n  content.id = \"dropdown-\" + new Date().getTime(); \/\/ poor person's uid\n\n  var button = dropdownEl.querySelector(buttonSelector);\n  button.setAttribute(\"aria-controls\", content.id);\n  var closingEventListeners = {\n    click: function click(e) {\n      if (!dropdownEl.contains(e.target)) close();\n    },\n    keyup: function keyup(e) {\n      if ([\"Escape\"https:\/\/slate.com\/,\"Esc\"].includes(e.key)) close();\n    }\n  }; \/\/ let listeners = 0;\n\n  function open() {\n    dropdownEl.classList.add(openModifier);\n    button.setAttribute(\"aria-expanded\"https:\/\/slate.com\/,\"true\");\n\n    for (var type in closingEventListeners) {\n      document.body.addEventListener(type, closingEventListeners[type]);\n    } \/\/ console.debug(\"listeners\", ++listeners);\n\n  }\n\n  function close() {\n    dropdownEl.classList.remove(openModifier);\n    button.setAttribute(\"aria-expanded\"https:\/\/slate.com\/,\"false\");\n\n    for (var type in closingEventListeners) {\n      document.body.removeEventListener(type, closingEventListeners[type]);\n    } \/\/ console.debug(\"listeners\", --listeners); \/\/ should always settle at zero!\n\n  }\n\n  button.addEventListener(\"click\", function () {\n    return dropdownEl.classList.contains(openModifier) ? close() : open();\n  });\n};\n}, {}];\nwindow.modules[\"29\"] = [function(require,module,exports){\"use strict\";\n\nfunction _slicedToArray(arr, i)  _nonIterableRest(); \n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i &#038;&#038; _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n &#038;&#038; _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _require = require(11),\n    URL = _require.URL,\n    URLSearchParams = _require.URLSearchParams;\n\nexports.toUrl = function (urlStr, newParams) {\n  var url;\n\n  try {\n    url = new URL(urlStr);\n    if (newParams) url.search = updateParams(url.search, newParams);\n  } catch (e) {\n    url = null;\n  }\n\n  return url;\n};\n\/**\n * Merges the current URL params with new ones\n * @param {String} paramStr\n * @param {Object} newParams\n * @returns String\n *\/\n\n\nfunction updateParams(paramStr, newParams) {\n  var oldParamsObj = paramStringToObject(paramStr);\n  var updatedParams = new URLSearchParams(_objectSpread({}, oldParamsObj, {}, newParams));\n  return updatedParams.toString();\n}\n\/**\n * Converts a string like \"?foo=1&#038;bar=2\" into { foo: 1, bar: 2 }\n * @param {String} paramStr\n * @returns {Object} paramsObj\n *\/\n\n\nfunction paramStringToObject(paramStr) {\n  var params = new URLSearchParams(paramStr).entries();\n  var paramsObj = {};\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    for (var _iterator = params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      var _step$value = _slicedToArray(_step.value, 2),\n          key = _step$value[0],\n          value = _step$value[1];\n\n      paramsObj[key] = value;\n    }\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion &#038;&#038; _iterator.return != null) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n\n  return paramsObj;\n}\n}, {\"11\":11}];\nwindow.modules[\"40\"] = [function(require,module,exports){\"use strict\";\n\nmodule.exports.track = function (eventName, extraData, options) {\n  try {\n    \/\/ check for permutive Data object\n    var data = Object.assign({}, window.slatePermutiveData &#038;&#038; window.slatePermutiveData.page || {});\n\n    if (extraData) {\n      data = Object.assign(data, extraData);\n    }\n\n    if (data.article &#038;&#038; data.article.gsChannels) {\n      delete data.article.gsChannels;\n    }\n\n    window.permutive &#038;&#038; window.permutive.track(eventName, data, options);\n  } catch (e) {\n    console.error(\"failed to log permutive\", e);\n  }\n};\n}, {}];\nwindow.modules[\"42\"] = [function(require,module,exports){\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i)  _nonIterableRest(); \n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i &#038;&#038; _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n &#038;&#038; _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n\/**\n * Mostly copied from static\/js\/morgioni.es6.js in my-slate\n * Responsible for getting\/setting utm params on localStorage so product can track\n * how people purchase Slate Plus.\n *\n * The name was chosen because anything remotely utm\/analytics-y gets picked up and blocked by ad-blockers.\n *\/\nvar STORAGE_KEY = \"morgioni\";\nvar PARAM_NAMES = [\"utm_medium\"https:\/\/slate.com\/,\"utm_campaign\"https:\/\/slate.com\/,\"utm_content\"https:\/\/slate.com\/,\"utm_source\"];\n\nfunction setMorgioniProps() {\n  if (location.search) {\n    var redirectUri = new URLSearchParams(location.search).get(\"redirect_uri\");\n    var newMorgioniProps = {};\n\n    if (redirectUri) {\n      var redirectParams = new URLSearchParams(redirectUri);\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = redirectParams[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var _step$value = _slicedToArray(_step.value, 2),\n              key = _step$value[0],\n              value = _step$value[1];\n\n          if (value &#038;&#038; PARAM_NAMES.includes(key)) {\n            newMorgioniProps[key] = value;\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion &#038;&#038; _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    }\n\n    if (Object.keys(newMorgioniProps).length > 0) {\n      \/\/ merge new props with anything in storage, and save it back\n      var morgioniProps = _objectSpread({}, getMorgioniProps(), {}, newMorgioniProps);\n\n      try {\n        localStorage.setItem(STORAGE_KEY, JSON.stringify(morgioniProps));\n      } catch (e) {\n        \/\/ probably a \"block all cookies\" user, nothin we can do\n        console.error(\"failed to store event props\", e);\n      }\n    }\n  }\n} \/\/ @returns a {String: String} object of utm names and values, or undefined\n\n\nfunction getMorgioniProps() {\n  try  undefined;\n   catch (e) {\n    console.error(\"failed to access event props\", e);\n  }\n}\n\nfunction removeMorgioniProps() {\n  localStorage.removeItem(STORAGE_KEY);\n}\n\nmodule.exports = {\n  getMorgioniProps: getMorgioniProps,\n  setMorgioniProps: setMorgioniProps,\n  removeMorgioniProps: removeMorgioniProps\n};\n}, {}];\nwindow.modules[\"43\"] = [function(require,module,exports){\/*!\n * JavaScript Cookie v2.2.1\n * https:\/\/github.com\/js-cookie\/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n *\/\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(\/(%[0-9A-Z]{2})+\/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '\/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t\/\/ We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (\/^[{[]\/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(\/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)\/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(\/%(23|24|26|2B|5E|60|7C)\/g, decodeURIComponent)\n\t\t\t\t.replace(\/[()]\/g, escape);\n\n\t\t\tvar stringifiedAttributes=\"\";\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t\/\/ Considers RFC 6265 section 5.2:\n\t\t\t\t\/\/ ...\n\t\t\t\t\/\/ 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t\/\/     character:\n\t\t\t\t\/\/ Consume the characters of the unparsed-attributes up to,\n\t\t\t\t\/\/ not including, the first %x3B (\";\") character.\n\t\t\t\t\/\/ ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t\/\/ To prevent the for loop in the first place assign an empty array\n\t\t\t\/\/ in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json &#038;&#038; cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false \/* read as raw *\/);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true \/* read as json *\/);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n}, {}];\nwindow.modules[\"48\"] = [function(require,module,exports){\"use strict\";\n\nvar abStringRe = new RegExp(\"^([0-9]+)_([0-9]+)$\");\n\nfunction parseAbTestString(abTestString) {\n  var abTest = abStringRe.exec(abTestString);\n  return abTest;\n}\n\nfunction isValidAbTestString(abTestString) {\n  return !!parseAbTestString(abTestString);\n}\n\nmodule.exports.parseAbTestString = parseAbTestString;\nmodule.exports.isValidAbTestString = isValidAbTestString;\n}, {}];\nwindow.modules[\"49\"] = [function(require,module,exports){\"use strict\";\n\nvar Cookies = require(43);\n\nvar MPV_COOKIE_NAME = \"mpv\";\nvar PAGE_HASH_KEY = \"pageHashes\";\nvar INITIAL_PAGE_VIEW_COUNT = 0;\n\/**\n * Set the mpv cookie\n * @param {Object} mpvCookie\n * @returns {Void}\n *\/\n\nfunction setMpvCookie(mpvCookie) {\n  Cookies.remove(MPV_COOKIE_NAME);\n  var domain = document.documentElement.dataset.trackingdomain;\n  Cookies.set(MPV_COOKIE_NAME, mpvCookie, {\n    domain: domain,\n    expires: 365\n  });\n}\n\/**\n * Get the mpvCookie value when the user hits the page or return a default value if it doesn't exist\n * @returns {Object} mpvCookie object\n *\/\n\n\nfunction getMpvCookie() {\n  var defaultMpv = \"{\"pv\":\".concat(INITIAL_PAGE_VIEW_COUNT, \",\"first\":null}\");\n  var nthPageViewCookie = Cookies.get(MPV_COOKIE_NAME) || defaultMpv;\n  return JSON.parse(nthPageViewCookie);\n}\n\/**\n * Check the currentMpv object against localStorage, return the updated mpv\n * @param {Object} currentMpv\n * @param {String} pageHash\n * @returns {Object} newMpv\n *\/\n\n\nfunction updateMpvValue(currentMpv, pageHash) {\n  var pv = currentMpv.pv,\n      first = currentMpv.first;\n  pv = parseInt(pv, 10);\n  var now = new Date().getTime(); \/\/ restart every 30 days\n\n  if (first &#038;&#038; now - first > 30 * 86400 * 1000) {\n    pv = INITIAL_PAGE_VIEW_COUNT;\n    localStorage.removeItem(PAGE_HASH_KEY);\n  } \/\/ Check if the current page ID is hashed in localStorage\n\n\n  var storedPages = localStorage.getItem(PAGE_HASH_KEY) || \"\";\n  var storedPagesArr = storedPages.split(\",\").filter(Boolean);\n  var pageHasBeenViewed = storedPagesArr.includes(pageHash); \/\/ Increment if the page hasn't been viewed\n\n  if (!pageHasBeenViewed) {\n    \/\/ Reset first on your first page\n    if (pv === INITIAL_PAGE_VIEW_COUNT) {\n      first = now;\n    } \/\/ Add page hash to localStorage\n\n\n    storedPagesArr.push(pageHash);\n    localStorage.setItem(PAGE_HASH_KEY, storedPagesArr.join());\n    pv++;\n  }\n\n  return {\n    pv: pv,\n    first: first\n  };\n}\n\nmodule.exports = {\n  getMpvCookie: getMpvCookie,\n  updateMpvValue: updateMpvValue,\n  setMpvCookie: setMpvCookie\n};\n}, {\"43\":43}];\nwindow.modules[\"60\"] = [function(require,module,exports){var baseGet = require(607);\n\n\/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param string path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * \/\/ => 3\n *\n * _.get(object, ['a\"https:\/\/slate.com\/,\"0\"https:\/\/slate.com\/,\"b\"https:\/\/slate.com\/,\"c']);\n * \/\/ => 3\n *\n * _.get(object, 'a.b.c\"https:\/\/slate.com\/,\"default');\n * \/\/ => 'default'\n *\/\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n}, {\"607\":607}];\nwindow.modules[\"63\"] = [function(require,module,exports){var Module = (function () {\n  'use strict';\n\n  \/**\n   * Is obj an Element via duck-typing\n   * @param {{}} obj\n   * @returns {boolean}\n   *\/\n  function isElement(obj) {\n    return !!(obj && obj.nodeType === 1);\n  }\n\n  \/**\n   * Get the first item in arguments that is a DOM\/jQuery element via duck-typing\n   * @param args\n   * @returns {Element}\n   * @throws Error if no element is found\n   *\/\n  function getFirstElementArgument(args) {\n    var $el, i;\n    for (i = 0; i < args.length; i++) {\n      \/\/assume first element in arguments is root element\n      if (!$el &#038;&#038; isElement(args[i])) {\n        return args[i]; \/\/do not cast to jq, because we can't assume that it exists\n      }\n    }\n    throw new Error('Must have element to bind controller');\n  }\n\n  \/**\n   * Iterates through all event definitions in object\n   * @param {{}} events\n   * @param {Element} el\n   * @param {function} controller\n   *\/\n  function addEvents(events, el, controller) {\n    var i, event, eventName, indexOfLastSpace, elList;\n\n    \/\/ loop through the defined events\n    for (event in events) {\n      if (events.hasOwnProperty(event)) {\n        indexOfLastSpace = event.lastIndexOf(' ');\n\n        if (indexOfLastSpace === -1) {\n          \/\/ event is defined on the component el, e.g. 'click'\n          el.addEventListener(event, controller[events[event]].bind(controller));\n        } else {\n          \/\/ event is defined on a child el, e.g. 'div a click'\n          eventName = event.substring(indexOfLastSpace + 1);\n          elList = el.querySelectorAll(event.substring(0, indexOfLastSpace)); \/\/ get all child els that match\n\n          \/\/ loop through child els (could be just one!) and add event listeners\n          for (i = 0; i < elList.length; i++) {\n            elList[i].addEventListener(eventName, controller[events[event]].bind(controller));\n          }\n        }\n      }\n    }\n  }\n\n\n  \/**\n   * Create a Service\n   *\n   * Basically any kind of stand-alone singleton.\n   *\n   * @param definition\n   * @param dependencies\n   * @constructor\n   *\/\n  function DSService(definition, dependencies) {\n    \/\/jshint -W058\n    \/\/the 'new' keyword resets the service's context\n    var service = new (Function.prototype.bind.apply(definition, [null].concat(dependencies)));\n    definition.module.context[definition.refName] = service;\n    return service;\n  }\n\n  \/**\n   * Create a Controller\n   *\n   * Mimics both AngularJS controllers and directives, since we don't need double-binding or scopes\n   *\n   * @param definition\n   * @param dependencies\n   * @param instanceArguments\n   * @constructor\n   *\/\n  function DSController(definition, dependencies, instanceArguments) {\n    \/\/jshint -W058\n    var el = getFirstElementArgument(instanceArguments),\n      constructor = definition.apply(null, dependencies),\n      controller = new (Function.prototype.bind.apply(constructor, [null].concat(instanceArguments)));\n\n    \/\/we handle event registration, ala Marionette\n    \/\/ so event attachment does not need to be unit tested\n    if (controller.events) {\n      addEvents(controller.events, el, controller);\n    }\n\n    return controller;\n  }\n\n  \/**\n   * Define a thing that can be instantiated using a provider strategy\n   *\n   * NOTE: keep private because it's a reclusive iterator\n   *\n   * @param {Module} module\n   * @param {function} providerStrategy\n   * @param {string} name\n   * @param  function definition\n   * @returns {function}\n   * @private\n   *\/\n  function define(module, providerStrategy, name, definition) {\n    var dependencies;\n    if (typeof name !== 'string') {\n      throw new Error('Name must be a string');\n    }\n\n    if (typeof definition === 'function') {\n      dependencies = [];\n    } else {\n      dependencies = definition.slice(0, definition.length - 1);\n      definition = definition[definition.length - 1];\n    }\n\n    if (typeof definition !== 'function') {\n      throw new Error('Must define function as last argument or last element of definition array');\n    }\n\n    \/\/everything needed to create this thing on demand\n    definition.refName = name;\n    definition.dependencies = dependencies;\n    definition.module = module;\n    definition.providerStrategy = providerStrategy;\n    return definition;\n  }\n\n  \/**\n   * Create a new thing based solely on definition\n   *\n   * NOTE: Visitor pattern.  Can jump from module to module, do not reference 'this'.\n   * @param definition\n   * @returns {*}\n   *\/\n  function instantiate(definition) {\n    var i,\n      constructorArgs = [],\n      module = definition.module,\n      dependencies = definition.dependencies;\n\n    \/\/get dependencies\n    for (i = 0; i < dependencies.length; i++) {\n      if (module.context[dependencies[i]]) {\n        constructorArgs[i] = module.context[dependencies[i]];\n      } else if (module.definitions[dependencies[i]]) {\n        constructorArgs[i] = instantiate(module.definitions[dependencies[i]]);\n      } else {\n        throw new Error(dependencies[i] + ' not defined');\n      }\n    }\n\n    return definition.providerStrategy(definition, constructorArgs, Array.prototype.slice.call(arguments, 1));\n  }\n\n  var constructor = function () {\n    this.definitions = {};\n    this.context = {};\n  };\n  constructor.prototype = {\n\n    providers: {\n      controller: DSController,\n      service: DSService\n    },\n\n    \/**\n     * Create a new thing based solely on definition\n     *\n     * NOTE: Is safe, because instantiate does not and should not reference 'this'.\n     * @param definition\n     * @returns {*}\n     *\/\n    instantiate: instantiate,\n\n    \/**\n     * Gets or instantiates thing\n     * @param name\n     * @returns {*}\n     *\/\n    get: function (name) {\n      if (this.context[name]) {\n        return this.context[name];\n      }\n\n      if (this.definitions[name] &#038;&#038; typeof this.definitions[name] === 'function') {\n        return instantiate.apply(this, [this.definitions[name]].concat(Array.prototype.slice.call(arguments, 1)));\n      } else if (typeof require !== 'undefined') {\n        return instantiate.apply(this, [define(this, DSController, name, require(name))].concat(Array.prototype.slice.call(arguments, 1)));\n        \/\/ note: this will throw an error if `name` doesn't exist anywhere\n      } else {\n        \/\/ note: this can only be hit when not using browserify\n        throw new Error(name + ' is not defined');\n      }\n    },\n\n    \/**\n     * Only create if exists in DOM.  Has distinct graphical attachment.  Scope represents container for thing on the\n     * page.  Remembers container element.\n     * @param name\n     * @param definition\n     * @returns {Module}\n     *\/\n    controller: function (name, definition) {\n      this.definitions[name] = define(this, DSController, name, definition);\n      return this;\n    },\n\n    \/**\n     * Singleton helper classes and abstractions\n     * @param {string} name\n     * @param  function definition\n     *\/\n    service: function (name, definition) {\n      \/\/definition always becomes a function when defined\n      this.definitions[name] = define(this, DSService, name, definition);\n      return this;\n    },\n\n    \/**\n     * @param name\n     * @param value\n     * @returns {Module}\n     *\/\n    value: function (name, value) {\n      this.context[name] = value;\n      return this;\n    }\n  };\n  return constructor;\n})();\n\n\/\/at least always one default module\nvar DS = new Module();\nvar attach = this;\n\nif (this === undefined) {\n  \/\/ support for es2015 module strictness (this will be undefined, so explicitly add it to window)\n  attach = window;\n} \/\/ older browsers, commonjs modules, etc will simply use `this`\n\n\/\/ internally defined components should start with $, ala Angular convention\nDS.value('$window', attach);\nDS.value('$document', attach.document);\n\n\/\/explicitly global\nattach.DS = DS;\n\n\/\/reliable self reference\nDS.value('$module', DS);\n\n\/\/ export it for node and browserify\nif (typeof exports !== 'undefined') {\n  module.exports = DS;\n}\n}, {}];\nwindow.modules[\"64\"] = [function(require,module,exports){\/\/ Eventify\n\/\/ -----------------\n\/\/ Copyright(c) 2010-2012 Jeremy Ashkenas, DocumentCloud\n\/\/ Copyright(c) 2014 Bermi Ferrer <bermi@bermilabs.com>\n\/\/ Copyright(c) 2013 Nicolas Perriault\n\n\/\/ MIT Licensed\n\n\n\/\/ A module that can be mixed in to *any object* in order to provide it with\n\/\/ custom events. You may bind with `on` or remove with `off` callback functions\n\/\/ to an event; trigger`-ing an event fires all callbacks in succession.\n\/\/\n\/\/     var object = {};\n\/\/     Eventify.enable(object);\n\/\/     object.on('expand', function(){ alert('expanded'); });\n\/\/     object.trigger('expand');\n(function (name, global, definition) {\n  if (typeof module !== 'undefined') {\n    module.exports = definition(name, global);\n  } else if (typeof define === 'function' && typeof define.amd === 'object') {\n    define(definition);\n  } else {\n   \/\/  global[name] = definition(name, global);\n    var self = definition(),\n\n    \/\/ Save the previous value of the `Eventify` variable.\n    prev = global[name];\n\n    \/\/ Run Eventify in *noConflict* mode, returning the `Eventify`\n    \/\/ variable to its previous owner. Returns a reference to\n    \/\/ the Eventify object.\n    self.noConflict = function () {\n      global[name] = prev;\n      return self;\n    };\n\n    global[name] = self;\n  }\n\n}(this.localEventifyLibraryName || \"Eventify\", this, function () {\n  'use strict';\n\n  \/\/ Eventify, based on Backbone.Events\n  \/\/ -----------------\n\n\n  function uniqueId(prefix) {\n    idCounter = idCounter + 1;\n    var id = idCounter + '';\n    return prefix ? prefix + id : id;\n  }\n\n  function once(func) {\n    var ran = false,\n      memo;\n    return function () {\n      if (ran) {\n        return memo;\n      }\n      var args = (arguments.length === 1 ?\n              [arguments[0]] : Array.apply(null, arguments));\n      ran = true;\n      memo = func.apply(this, args);\n      func = null;\n      return memo;\n    };\n  }\n\n  var EventifyInstance,\n    listenMethods = {\n      listenTo: 'on',\n      listenToOnce: 'once'\n    },\n    slice = Array.prototype.slice,\n    idCounter = 0,\n\n    \/\/ Regular expression used to split event strings\n    eventSplitter = \/s+\/,\n\n    \/\/ Defines the name of the local variable the Eventify library will use\n    \/\/ this is specially useful if window.Eventify is already being used\n    \/\/ by your application and you want a different name. For example:\n    \/\/    \/\/ Declare before including the Eventify library\n    \/\/    var localEventifyLibraryName=\"EventManager\";\n\n    \/\/ Create a safe reference to the Eventify object for use below.\n    Eventify = function () {\n      return this;\n    };\n\n  Eventify.prototype = {\n\n    \/\/ Event Functions\n    \/\/ -----------------\n\n    \/\/ Bind an event to a `callback` function. Passing `\"all\"` will bind\n    \/\/ the callback to all events fired.\n    on: function (name, callback, context) {\n      if (!eventsApi(this, 'on', name, [callback, context]) || !callback) {\n        return this;\n      }\n      this._events = this._events || {};\n      var events = this._events[name] || (this._events[name] = []);\n      events.push();\n      return this;\n    },\n\n\n    \/\/ Bind an event to only be triggered a single time. After the first time\n    \/\/ the callback is invoked, it will be removed.\n    once: function (name, callback, context) {\n      var self = this,\n        onceListener;\n\n      if (!eventsApi(this, 'once', name, [callback, context]) || !callback) {\n        return this;\n      }\n\n      onceListener = once(function () {\n        self.off(name, onceListener);\n        var args = (arguments.length === 1 ?\n                [arguments[0]] : Array.apply(null, arguments));\n        callback.apply(this, args);\n      });\n\n      onceListener._callback = callback;\n      return this.on(name, onceListener, context);\n    },\n\n    \/\/ Remove one or many callbacks. If `context` is null, removes all\n    \/\/ callbacks with that function. If `callback` is null, removes all\n    \/\/ callbacks for the event. If `name` is null, removes all bound\n    \/\/ callbacks for all events.\n    off: function (name, callback, context) {\n      var retain, ev, events, names, i, l, j, k;\n      if (!this._events || !eventsApi(this, 'off', name, [callback, context])) {\n        return this;\n      }\n      if (!name && !callback && !context) {\n        this._events = {};\n        return this;\n      }\n\n      names = name ? [name] : Object.keys(this._events);\n      for (i = 0, l = names.length; i < l; i += 1) {\n        name = names[i];\n        events = this._events[name];\n        if (events) {\n          this._events[name] = retain = [];\n          if (callback || context) {\n            for (j = 0, k = events.length; j < k; j += 1) {\n              ev = events[j];\n              if ((callback &#038;&#038;\n                  callback !== ev.callback &#038;&#038;\n                  callback !== ev.callback._callback) ||\n                (context &#038;&#038; context !== ev.context)) {\n                retain.push(ev);\n              }\n            }\n          }\n          if (!retain.length) {\n            delete this._events[name];\n          }\n        }\n      }\n\n      return this;\n    },\n\n    \/\/ Trigger one or many events, firing all bound callbacks. Callbacks are\n    \/\/ passed the same arguments as `trigger` is, apart from the event name\n    \/\/ (unless you're listening on `\"all\"`, which will cause your callback to\n    \/\/ receive the true name of the event as the first argument).\n    trigger: function () {\n      if (!this._events) {\n        return this;\n      }\n      \/\/ #6 arguments should not be leaked in order to allow V8 optimizations.\n      \/\/ https:\/\/github.com\/petkaantonov\/bluebird\/wiki\/Optimization-killers\n      var args = (arguments.length === 1 ?\n              [arguments[0]] : Array.apply(null, arguments));\n\n      var events, allEvents;\n      var name = args[0];\n      var extraArgs = args.slice(1);\n      if (!eventsApi(this, 'trigger', name, extraArgs)) {\n        return this;\n      }\n      events = this._events[name];\n      allEvents = this._events.all;\n      if (events) {\n        triggerEvents(events, extraArgs);\n      }\n      if (allEvents) {\n        triggerEvents(allEvents, args);\n      }\n      return this;\n    },\n\n    \/\/ Tell this object to stop listening to either specific events ... or\n    \/\/ to every object it's currently listening to.\n    stopListening: function (obj, name, callback) {\n      var deleteListener, id,\n        listeners = this._listeners;\n      if (!listeners) {\n        return this;\n      }\n      deleteListener = !name &#038;&#038; !callback;\n      if (typeof name === 'object') {\n        callback = this;\n      }\n      listeners = {};\n      if (obj) {\n        listeners[obj._listenerId] = obj;\n      }\n      for (id in listeners) {\n        if (listeners.hasOwnProperty(id)) {\n          listenerstag:google.com,2013:googlealerts\/feed:9681778700527838885.off(name, callback, this);\n          if (deleteListener) {\n            delete this._listenerstag:google.com,2013:googlealerts\/feed:9681778700527838885;\n          }\n        }\n      }\n      return this;\n    },\n\n  };\n\n\n\n  \/\/ Implement fancy features of the Events API such as multiple event\n  \/\/ names `\"change blur\"` and jQuery-style event maps `{change: action}`\n  \/\/ in terms of the existing API.\n  function eventsApi(obj, action, name, rest) {\n    var key, i, l, names;\n\n    if (!name) {\n      return true;\n    }\n\n    \/\/ Handle event maps.\n    if (typeof name === 'object') {\n      for (key in name) {\n        if (name.hasOwnProperty(key)) {\n          obj[action].apply(obj, [key, name[key]].concat(rest));\n        }\n      }\n      return false;\n    }\n\n    \/\/ Handle space separated event names.\n    if (eventSplitter.test(name)) {\n      names = name.split(eventSplitter);\n      for (i = 0, l = names.length; i < l; i += 1) {\n        obj[action].apply(obj, [names[i]].concat(rest));\n      }\n      return false;\n    }\n\n    return true;\n  }\n\n  \/\/ A difficult-to-believe, but optimized internal dispatch function for\n  \/\/ triggering events. Tries to keep the usual cases speedy (most internal\n  \/\/ Backbone events have 3 arguments).\n\n  function triggerEvents(events, args) {\n    var ev,\n      i = 0,\n      l = events.length,\n      a1 = args[0],\n      a2 = args[1],\n      a3 = args[2];\n    switch (args.length) {\n    case 0:\n      while (i < l) {\n        ev = events[i];\n        ev.callback.call(ev.ctx);\n        i += 1;\n      }\n      return;\n    case 1:\n      while (i < l) {\n        ev = events[i];\n        ev.callback.call(ev.ctx, a1);\n        i += 1;\n      }\n      return;\n    case 2:\n      while (i < l) {\n        ev = events[i];\n        ev.callback.call(ev.ctx, a1, a2);\n        i += 1;\n      }\n      return;\n    case 3:\n      while (i < l) {\n        ev = events[i];\n        ev.callback.call(ev.ctx, a1, a2, a3);\n        i += 1;\n      }\n      return;\n    default:\n      while (i < l) {\n        ev = events[i];\n        ev.callback.apply(ev.ctx, args);\n        i += 1;\n      }\n    }\n  }\n\n\n  \/\/ Inversion-of-control versions of `on` and `once`. Tell *this* object to\n  \/\/ listen to an event in another object ... keeping track of what it's\n  \/\/ listening to.\n  Object.keys(listenMethods).forEach(function (method) {\n    var implementation = listenMethods[method];\n    Eventify.prototype[method] = function (obj, name, callback) {\n      var id,\n        listeners = this._listeners || (this._listeners = {});\n      obj._listenerId = obj._listenerId || uniqueId('l');\n      id = obj._listenerId;\n      listenerstag:google.com,2013:googlealerts\/feed:9681778700527838885 = obj;\n      if (typeof name === 'object') {\n        callback = this;\n      }\n      obj[implementation](name, callback, this);\n      return this;\n    };\n  });\n\n\n  \/\/ Export an Eventify instance for **Node.js**, with\n  \/\/ backwards-compatibility for the old `require()` API. If we're in\n  \/\/ the browser, add `Eventify` as a global object via a string identifier,\n  \/\/ for Closure Compiler \"advanced\" mode.\n  EventifyInstance = new Eventify();\n\n  EventifyInstance.version = \"2.0.0\";\n\n\n  \/\/ Utility Functions\n  \/\/ -----------------\n\n\n  \/\/ Adds the methods on, off and trigger to a target Object\n  EventifyInstance.enable = function enable(target) {\n    var i, len,\n      methods = Object.keys(Eventify.prototype);\n    target = target || {};\n    for (i = 0, len = methods.length; i < len; i = i + 1) {\n      target[methods[i]] = this[methods[i]];\n    }\n    return target;\n  };\n\n  EventifyInstance.create = function () {\n    return Object.create(Eventify.prototype);\n  };\n\n  \/\/ Backbone.Events drop in replacement compatibility\n  EventifyInstance.mixin = EventifyInstance.enable;\n\n  \/\/ Expose prototype so other objects can extend it\n  EventifyInstance.proto = Eventify.prototype;\n\n  \/\/ Sets Eventify on the browser window or on the process\n  return EventifyInstance;\n\n  \/\/ Establish the root object, `window` in the browser,\n  \/\/ or `global` on the server.\n}));\n}, {}];\nwindow.modules[\"65\"] = [function(require,module,exports){var debounce = require(721),\n    isObject = require(594);\n\n\/** Error message constants. *\/\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and\/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https:\/\/css-tricks.com\/debouncing-throttling-explained-examples\/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * \/\/ Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * \/\/ Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * \/\/ Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n *\/\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n}, {\"594\":594,\"721\":721}];\nwindow.modules[\"66\"] = [function(require,module,exports){var before = require(719);\n\n\/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * \/\/ => `createApplication` is invoked once\n *\/\nfunction once(func) {\n  return before(2, func);\n}\n\nmodule.exports = once;\n}, {\"719\":719}];\nwindow.modules[\"67\"] = [function(require,module,exports){module.exports = require(725);\n}, {\"725\":725}];\nwindow.modules[\"68\"] = [function(require,module,exports){var arrayMap = require(580),\n    baseIteratee = require(634),\n    basePickBy = require(662),\n    getAllKeysIn = require(702);\n\n\/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2\"https:\/\/slate.com\/,\"c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * \/\/ => { 'a': 1, 'c': 3 }\n *\/\nfunction pickBy(object, predicate) {\n  if (object == null) {\n    return {};\n  }\n  var props = arrayMap(getAllKeysIn(object), function(prop) {\n    return [prop];\n  });\n  predicate = baseIteratee(predicate);\n  return basePickBy(object, props, function(value, path) {\n    return predicate(value, path[0]);\n  });\n}\n\nmodule.exports = pickBy;\n}, {\"580\":580,\"634\":634,\"662\":662,\"702\":702}];\nwindow.modules[\"69\"] = [function(require,module,exports){(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t\/*jshint eqnull:true *\/\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener=\"addEventListener\";\n\n\tvar _getAttribute=\"getAttribute\";\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = \/^picture$\/i;\n\n\tvar loadEvents = ['load\"https:\/\/slate.com\/,\"error\"https:\/\/slate.com\/,\"lazyincluded\"https:\/\/slate.com\/,\"_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) ;\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)) '').trim() + ' ' + cls);\n\t\t\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls)))  '').replace(reg, ' '));\n\t\t\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize &#038;&#038; parent &#038;&#038; !elem._lazysizesWidth){\n\t\t\twidth =  parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running &#038;&#038; !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesConfig.throttleDelay;\n\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback &#038;&#038; rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesConfig.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesConfig.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning =  true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t\/\/based on http:\/\/modernjavascript.blogspot.de\/2013\/08\/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else \n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t\/\/strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t\/\/preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = \/^img$\/i;\n\t\tvar regIframe = \/^iframe$\/i;\n\n\t\tvar supportScroll = ('onscroll' in window) &#038;&#038; !(\/(gle|ing)bot\/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || (getCSS(elem.parentNode, 'visibility') != 'hidden' &#038;&#038; getCSS(elem, 'visibility') != 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible &#038;&#038; (parent = parent.offsetParent) &#038;&#038; parent != document.body &#038;&#038; parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &#038;&#038;\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) &#038;&#038; isLoading < 8 &#038;&#038; (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tdefaultExpand = (!lazySizesConfig.expand || lazySizesConfig.expand < 1) ?\n\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\tlazySizesConfig.expand;\n\n\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\thFac = lazySizesConfig.hFac;\n\t\t\t\tisBodyHidden = null;\n\n\t\t\t\tif(currentExpand < preloadExpand &#038;&#038; isLoading < 1 &#038;&#038; lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &#038;&#038;\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &#038;&#038;\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &#038;&#038;\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) &#038;&#038;\n\t\t\t\t\t\t((isCompleted &#038;&#038; isLoading < 3 &#038;&#038; !elemExpandVal &#038;&#038; (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 &#038;&#038; lowRuns < 4 &#038;&#038; loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto'))))\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(elem, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg)  '');\n\t\t\t\t\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t\/\/ Part of this can be removed as soon as this fix is older: https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, 'ls-is-cached');\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t\/\/allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t\/\/, 'fullscreenchange'\n\t\t\t\t['focus\"https:\/\/slate.com\/,\"mouseover\"https:\/\/slate.com\/,\"click\"https:\/\/slate.com\/,\"load\"https:\/\/slate.com\/,\"transitionend\"https:\/\/slate.com\/,\"animationend\"https:\/\/slate.com\/,\"webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((\/d$|^c\/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width &#038;&#038; width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n}, {}];\nwindow.modules[\"70\"] = [function(require,module,exports){(function (global, factory) {\n  typeof exports === 'object' &#038;&#038; typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' &#038;&#038; define.amd ? define(factory) :\n  (global.Layzr = factory());\n}(this, (function () { 'use strict';\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nvar knot = function knot() {\n  var extended = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var events = Object.create(null);\n\n  function on(name, handler) \n\n  function once(name, handler) {\n    handler._once = true;\n    on(name, handler);\n    return this;\n  }\n\n  function off(name) {\n    var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    handler ? events[name].splice(events[name].indexOf(handler), 1) : delete events[name];\n\n    return this;\n  }\n\n  function emit(name) {\n    var _this = this;\n\n    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    \/\/ cache the events, to avoid consequences of mutation\n    var cache = events[name] &#038;&#038; events[name].slice();\n\n    \/\/ only fire handlers if they exist\n    cache &#038;&#038; cache.forEach(function (handler) {\n      \/\/ remove handlers added with 'once'\n      handler._once &#038;&#038; off(name, handler);\n\n      \/\/ set 'this' context, pass args to handlers\n      handler.apply(_this, args);\n    });\n\n    return this;\n  }\n\n  return _extends({}, extended, {\n\n    on: on,\n    once: once,\n    off: off,\n    emit: emit\n  });\n};\n\nvar layzr = (function () {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  \/\/ private\n\n  var prevLoc = getLoc();\n  var ticking = void 0;\n\n  var nodes = void 0;\n  var windowHeight = void 0;\n\n  \/\/ options\n\n  var settings = ;\n\n  \/\/ feature detection\n  \/\/ https:\/\/github.com\/Modernizr\/Modernizr\/blob\/master\/feature-detects\/img\/srcset.js\n\n  var srcset = document.body.classList.contains('srcset') || 'srcset' in document.createElement('img');\n\n  \/\/ device pixel ratio\n  \/\/ not supported in IE10 - https:\/\/msdn.microsoft.com\/en-us\/library\/dn265030(v=vs.85).aspx\n\n  var dpr = window.devicePixelRatio || window.screen.deviceXDPI \/ window.screen.logicalXDPI;\n\n  \/\/ instance\n\n  var instance = knot({\n    handlers: handlers,\n    check: check,\n    update: update\n  });\n\n  return instance;\n\n  \/\/ location helper\n\n  function getLoc()  window.pageYOffset;\n  \n\n  \/\/ debounce helpers\n\n  function requestScroll() {\n    prevLoc = getLoc();\n    requestFrame();\n  }\n\n  function requestFrame() {\n    if (!ticking) {\n      window.requestAnimationFrame(function () {\n        return check();\n      });\n      ticking = true;\n    }\n  }\n\n  \/\/ offset helper\n\n  function getOffset(node) {\n    return node.getBoundingClientRect().top + prevLoc;\n  }\n\n  \/\/ in viewport helper\n\n  function inViewport(node) {\n    var viewTop = prevLoc;\n    var viewBot = viewTop + windowHeight;\n\n    var nodeTop = getOffset(node);\n    var nodeBot = nodeTop + node.offsetHeight;\n\n    var offset = settings.threshold \/ 100 * windowHeight;\n\n    return nodeBot >= viewTop - offset && nodeTop <= viewBot + offset;\n  }\n\n  \/\/ source helper\n\n  function setSource(node) {\n    instance.emit('src:before', node);\n\n    \/\/ prefer srcset, fallback to pixel density\n    if (srcset &#038;&#038; node.hasAttribute(settings.srcset)) {\n      node.setAttribute('srcset', node.getAttribute(settings.srcset));\n    } else  node.getAttribute(settings.normal));\n    \n\n    instance.emit('src:after', node);[settings.normal, settings.retina, settings.srcset].forEach(function (attr) {\n      return node.removeAttribute(attr);\n    });\n\n    update();\n  }\n\n  \/\/ API\n\n  function handlers(flag) {\n    var action = flag ? 'addEventListener' : 'removeEventListener';['scroll\"https:\/\/slate.com\/,\"resize'].forEach(function (event) {\n      return window[action](event, requestScroll);\n    });\n    return this;\n  }\n\n  function check() {\n    windowHeight = window.innerHeight;\n\n    nodes.forEach(function (node) {\n      return inViewport(node) &#038;&#038; setSource(node);\n    });\n\n    ticking = false;\n    return this;\n  }\n\n  function update() {\n    nodes = Array.prototype.slice.call(document.querySelectorAll('[' + settings.normal + ']'));\n    return this;\n  }\n});\n\nreturn layzr;\n\n})));\n}, {}];\nwindow.modules[\"534\"] = [function(require,module,exports){var getNative = require(536),\n    root = require(535);\n\n\/* Built-in method references that are verified to be native. *\/\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n}, {\"535\":535,\"536\":536}];\nwindow.modules[\"535\"] = [function(require,module,exports) Function('return this')();\n\nmodule.exports = root;\n, {\"700\":700}];\nwindow.modules[\"536\"] = [function(require,module,exports){var baseIsNative = require(628),\n    getValue = require(706);\n\n\/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n *\/\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n}, {\"628\":628,\"706\":706}];\nwindow.modules[\"537\"] = [function(require,module,exports){var hashClear = require(541),\n    hashDelete = require(538),\n    hashGet = require(540),\n    hashHas = require(542),\n    hashSet = require(539);\n\n\/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n *\/\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n\/\/ Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n}, {\"538\":538,\"539\":539,\"540\":540,\"541\":541,\"542\":542}];\nwindow.modules[\"538\"] = [function(require,module,exports){\/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n *\/\nfunction hashDelete(key) {\n  var result = this.has(key) &#038;&#038; delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n}, {}];\nwindow.modules[\"539\"] = [function(require,module,exports){var nativeCreate = require(712);\n\n\/** Used to stand-in for `undefined` hash values. *\/\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n *\/\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate &#038;&#038; value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n}, {\"712\":712}];\nwindow.modules[\"540\"] = [function(require,module,exports){var nativeCreate = require(712);\n\n\/** Used to stand-in for `undefined` hash values. *\/\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n *\/\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n}, {\"712\":712}];\nwindow.modules[\"541\"] = [function(require,module,exports){var nativeCreate = require(712);\n\n\/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n *\/\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n}, {\"712\":712}];\nwindow.modules[\"542\"] = [function(require,module,exports){var nativeCreate = require(712);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n *\/\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n}, {\"712\":712}];\nwindow.modules[\"543\"] = [function(require,module,exports){var listCacheClear = require(544),\n    listCacheDelete = require(546),\n    listCacheGet = require(547),\n    listCacheHas = require(548),\n    listCacheSet = require(545);\n\n\/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n *\/\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n\/\/ Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n}, {\"544\":544,\"545\":545,\"546\":546,\"547\":547,\"548\":548}];\nwindow.modules[\"544\"] = [function(require,module,exports){\/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n *\/\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n}, {}];\nwindow.modules[\"545\"] = [function(require,module,exports){var assocIndexOf = require(591);\n\n\/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n *\/\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n}, {\"591\":591}];\nwindow.modules[\"546\"] = [function(require,module,exports){var assocIndexOf = require(591);\n\n\/** Used for built-in method references. *\/\nvar arrayProto = Array.prototype;\n\n\/** Built-in value references. *\/\nvar splice = arrayProto.splice;\n\n\/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n *\/\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n}, {\"591\":591}];\nwindow.modules[\"547\"] = [function(require,module,exports){var assocIndexOf = require(591);\n\n\/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n *\/\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n}, {\"591\":591}];\nwindow.modules[\"548\"] = [function(require,module,exports){var assocIndexOf = require(591);\n\n\/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n *\/\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n}, {\"591\":591}];\nwindow.modules[\"549\"] = [function(require,module,exports){var getNative = require(536),\n    root = require(535);\n\n\/* Built-in method references that are verified to be native. *\/\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n}, {\"535\":535,\"536\":536}];\nwindow.modules[\"550\"] = [function(require,module,exports){var mapCacheClear = require(555),\n    mapCacheDelete = require(551),\n    mapCacheGet = require(554),\n    mapCacheHas = require(553),\n    mapCacheSet = require(552);\n\n\/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n *\/\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n\/\/ Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n}, {\"551\":551,\"552\":552,\"553\":553,\"554\":554,\"555\":555}];\nwindow.modules[\"551\"] = [function(require,module,exports){var getMapData = require(704);\n\n\/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n *\/\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n}, {\"704\":704}];\nwindow.modules[\"552\"] = [function(require,module,exports){var getMapData = require(704);\n\n\/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n *\/\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n}, {\"704\":704}];\nwindow.modules[\"553\"] = [function(require,module,exports){var getMapData = require(704);\n\n\/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n *\/\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n}, {\"704\":704}];\nwindow.modules[\"554\"] = [function(require,module,exports){var getMapData = require(704);\n\n\/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n *\/\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n}, {\"704\":704}];\nwindow.modules[\"555\"] = [function(require,module,exports){var Hash = require(537),\n    ListCache = require(543),\n    Map = require(549);\n\n\/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n *\/\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = ;\n}\n\nmodule.exports = mapCacheClear;\n}, {\"537\":537,\"543\":543,\"549\":549}];\nwindow.modules[\"556\"] = [function(require,module,exports){var getNative = require(536),\n    root = require(535);\n\n\/* Built-in method references that are verified to be native. *\/\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n}, {\"535\":535,\"536\":536}];\nwindow.modules[\"557\"] = [function(require,module,exports){var getNative = require(536),\n    root = require(535);\n\n\/* Built-in method references that are verified to be native. *\/\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n}, {\"535\":535,\"536\":536}];\nwindow.modules[\"558\"] = [function(require,module,exports){var MapCache = require(550),\n    setCacheAdd = require(560),\n    setCacheHas = require(559);\n\n\/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n *\/\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n\/\/ Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n}, {\"550\":550,\"559\":559,\"560\":560}];\nwindow.modules[\"559\"] = [function(require,module,exports){\/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n *\/\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n}, {}];\nwindow.modules[\"560\"] = [function(require,module,exports){\/** Used to stand-in for `undefined` hash values. *\/\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n *\/\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n}, {}];\nwindow.modules[\"561\"] = [function(require,module,exports){var ListCache = require(543),\n    stackClear = require(565),\n    stackDelete = require(562),\n    stackGet = require(563),\n    stackHas = require(564),\n    stackSet = require(566);\n\n\/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n *\/\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n\/\/ Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n}, {\"543\":543,\"562\":562,\"563\":563,\"564\":564,\"565\":565,\"566\":566}];\nwindow.modules[\"562\"] = [function(require,module,exports){\/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n *\/\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n}, {}];\nwindow.modules[\"563\"] = [function(require,module,exports){\/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n *\/\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n}, {}];\nwindow.modules[\"564\"] = [function(require,module,exports){\/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n *\/\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n}, {}];\nwindow.modules[\"565\"] = [function(require,module,exports){var ListCache = require(543);\n\n\/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n *\/\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n}, {\"543\":543}];\nwindow.modules[\"566\"] = [function(require,module,exports){var ListCache = require(543),\n    Map = require(549),\n    MapCache = require(550);\n\n\/** Used as the size to enable large array optimizations. *\/\nvar LARGE_ARRAY_SIZE = 200;\n\n\/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n *\/\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n}, {\"543\":543,\"549\":549,\"550\":550}];\nwindow.modules[\"567\"] = [function(require,module,exports){var root = require(535);\n\n\/** Built-in value references. *\/\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n}, {\"535\":535}];\nwindow.modules[\"568\"] = [function(require,module,exports){var root = require(535);\n\n\/** Built-in value references. *\/\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n}, {\"535\":535}];\nwindow.modules[\"569\"] = [function(require,module,exports){var getNative = require(536),\n    root = require(535);\n\n\/* Built-in method references that are verified to be native. *\/\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n}, {\"535\":535,\"536\":536}];\nwindow.modules[\"571\"] = [function(require,module,exports){\/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n *\/\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nmodule.exports = arrayEach;\n}, {}];\nwindow.modules[\"572\"] = [function(require,module,exports){\/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n *\/\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n}, {}];\nwindow.modules[\"573\"] = [function(require,module,exports){var baseTimes = require(579),\n    isArguments = require(574),\n    isArray = require(577),\n    isBuffer = require(575),\n    isIndex = require(578),\n    isTypedArray = require(576);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n *\/\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr &#038;&#038; isArguments(value),\n      isBuff = !isArr &#038;&#038; !isArg &#038;&#038; isBuffer(value),\n      isType = !isArr &#038;&#038; !isArg &#038;&#038; !isBuff &#038;&#038; isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &#038;&#038;\n        !(skipIndexes &#038;&#038; (\n           \/\/ Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           \/\/ Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff &#038;&#038; (key == 'offset' || key == 'parent')) ||\n           \/\/ PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType &#038;&#038; (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           \/\/ Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n}, {\"574\":574,\"575\":575,\"576\":576,\"577\":577,\"578\":578,\"579\":579}];\nwindow.modules[\"574\"] = [function(require,module,exports){var baseIsArguments = require(619),\n    isObjectLike = require(620);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/** Built-in value references. *\/\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n\/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * \/\/ => true\n *\n * _.isArguments([1, 2, 3]);\n * \/\/ => false\n *\/\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n}, {\"619\":619,\"620\":620}];\nwindow.modules[\"575\"] = [function(require,module,exports){var root = require(535),\n    stubFalse = require(733);\n\n\/** Detect free variable `exports`. *\/\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n\/** Detect free variable `module`. *\/\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n\/** Detect the popular CommonJS extension `module.exports`. *\/\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\/** Built-in value references. *\/\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n\/* Built-in method references for those with the same name as other `lodash` methods. *\/\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n\/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * \/\/ => true\n *\n * _.isBuffer(new Uint8Array(2));\n * \/\/ => false\n *\/\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n}, {\"535\":535,\"733\":733}];\nwindow.modules[\"576\"] = [function(require,module,exports){var baseIsTypedArray = require(632),\n    baseUnary = require(676),\n    nodeUtil = require(715);\n\n\/* Node.js helper references. *\/\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n\/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * \/\/ => true\n *\n * _.isTypedArray([]);\n * \/\/ => false\n *\/\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n}, {\"632\":632,\"676\":676,\"715\":715}];\nwindow.modules[\"577\"] = [function(require,module,exports){\/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * \/\/ => true\n *\n * _.isArray(document.body.children);\n * \/\/ => false\n *\n * _.isArray('abc');\n * \/\/ => false\n *\n * _.isArray(_.noop);\n * \/\/ => false\n *\/\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n}, {}];\nwindow.modules[\"578\"] = [function(require,module,exports){\/** Used as references for various `Number` constants. *\/\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\/** Used to detect unsigned integer values. *\/\nvar reIsUint = \/^(?:0|[1-9]d*)$\/;\n\n\/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n *\/\nfunction isIndex(value, length) \n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n\n\nmodule.exports = isIndex;\n}, {}];\nwindow.modules[\"579\"] = [function(require,module,exports){\/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n *\/\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n}, {}];\nwindow.modules[\"580\"] = [function(require,module,exports){\/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n *\/\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n}, {}];\nwindow.modules[\"581\"] = [function(require,module,exports){\/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n *\/\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n}, {}];\nwindow.modules[\"584\"] = [function(require,module,exports){\/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n *\/\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n}, {}];\nwindow.modules[\"588\"] = [function(require,module,exports){\/**\n * Performs a\n * [`SameValueZero`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * \/\/ => true\n *\n * _.eq(object, other);\n * \/\/ => false\n *\n * _.eq('a\"https:\/\/slate.com\/,\"a');\n * \/\/ => true\n *\n * _.eq('a', Object('a'));\n * \/\/ => false\n *\n * _.eq(NaN, NaN);\n * \/\/ => true\n *\/\nfunction eq(value, other) \n\nmodule.exports = eq;\n}, {}];\nwindow.modules[\"589\"] = [function(require,module,exports){var defineProperty = require(592);\n\n\/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n *\/\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n}, {\"592\":592}];\nwindow.modules[\"590\"] = [function(require,module,exports){var baseAssignValue = require(589),\n    eq = require(588);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n *\/\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n}, {\"588\":588,\"589\":589}];\nwindow.modules[\"591\"] = [function(require,module,exports){var eq = require(588);\n\n\/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n *\/\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n}, {\"588\":588}];\nwindow.modules[\"592\"] = [function(require,module,exports){var getNative = require(536);\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n}, {\"536\":536}];\nwindow.modules[\"594\"] = [function(require,module,exports){\/**\n * Checks if `value` is the\n * [language type](http:\/\/www.ecma-international.org\/ecma-262\/7.0\/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * \/\/ => true\n *\n * _.isObject([1, 2, 3]);\n * \/\/ => true\n *\n * _.isObject(_.noop);\n * \/\/ => true\n *\n * _.isObject(null);\n * \/\/ => false\n *\/\nfunction isObject(value) \n\nmodule.exports = isObject;\n}, {}];\nwindow.modules[\"595\"] = [function(require,module,exports){var baseForOwn = require(597),\n    createBaseEach = require(596);\n\n\/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param Object collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns Object Returns `collection`.\n *\/\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n}, {\"596\":596,\"597\":597}];\nwindow.modules[\"596\"] = [function(require,module,exports){var isArrayLike = require(645);\n\n\/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n *\/\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nmodule.exports = createBaseEach;\n}, {\"645\":645}];\nwindow.modules[\"597\"] = [function(require,module,exports){var baseFor = require(603),\n    keys = require(605);\n\n\/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n *\/\nfunction baseForOwn(object, iteratee) {\n  return object &#038;&#038; baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n}, {\"603\":603,\"605\":605}];\nwindow.modules[\"603\"] = [function(require,module,exports){var createBaseFor = require(604);\n\n\/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n *\/\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n}, {\"604\":604}];\nwindow.modules[\"604\"] = [function(require,module,exports){\/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n *\/\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n}, {}];\nwindow.modules[\"605\"] = [function(require,module,exports){var arrayLikeKeys = require(573),\n    baseKeys = require(639),\n    isArrayLike = require(645);\n\n\/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * \/\/ => ['a\"https:\/\/slate.com\/,\"b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * \/\/ => ['0\"https:\/\/slate.com\/,\"1']\n *\/\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n}, {\"573\":573,\"639\":639,\"645\":645}];\nwindow.modules[\"607\"] = [function(require,module,exports){var castPath = require(609),\n    toKey = require(608);\n\n\/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param string path The path of the property to get.\n * @returns {*} Returns the resolved value.\n *\/\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index &#038;&#038; index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n}, {\"608\":608,\"609\":609}];\nwindow.modules[\"608\"] = [function(require,module,exports){var isSymbol = require(675);\n\n\/** Used as references for various `Number` constants. *\/\nvar INFINITY = 1 \/ 0;\n\n\/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns symbol Returns the key.\n *\/\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' &#038;&#038; (1 \/ value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n}, {\"675\":675}];\nwindow.modules[\"609\"] = [function(require,module,exports){var isArray = require(577),\n    isKey = require(648),\n    stringToPath = require(681),\n    toString = require(680);\n\n\/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n *\/\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n}, {\"577\":577,\"648\":648,\"680\":680,\"681\":681}];\nwindow.modules[\"610\"] = [function(require,module,exports){var arrayPush = require(581),\n    isArray = require(577);\n\n\/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n *\/\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n}, {\"577\":577,\"581\":581}];\nwindow.modules[\"611\"] = [function(require,module,exports){var Symbol = require(567),\n    getRawTag = require(613),\n    objectToString = require(612);\n\n\/** `Object#toString` result references. *\/\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n\/** Built-in value references. *\/\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n\/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n *\/\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag &#038;&#038; symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n}, {\"567\":567,\"612\":612,\"613\":613}];\nwindow.modules[\"612\"] = [function(require,module,exports){\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/**\n * Used to resolve the\n * [`toStringTag`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-object.prototype.tostring)\n * of values.\n *\/\nvar nativeObjectToString = objectProto.toString;\n\n\/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n *\/\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n}, {}];\nwindow.modules[\"613\"] = [function(require,module,exports){var Symbol = require(567);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * Used to resolve the\n * [`toStringTag`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-object.prototype.tostring)\n * of values.\n *\/\nvar nativeObjectToString = objectProto.toString;\n\n\/** Built-in value references. *\/\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n\/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n *\/\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n}, {\"567\":567}];\nwindow.modules[\"615\"] = [function(require,module,exports){\/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param string key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n *\/\nfunction baseHasIn(object, key) {\n  return object != null &#038;&#038; key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n}, {}];\nwindow.modules[\"619\"] = [function(require,module,exports){var baseGetTag = require(611),\n    isObjectLike = require(620);\n\n\/** `Object#toString` result references. *\/\nvar argsTag = '[object Arguments]';\n\n\/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *\/\nfunction baseIsArguments(value) {\n  return isObjectLike(value) &#038;&#038; baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n}, {\"611\":611,\"620\":620}];\nwindow.modules[\"620\"] = [function(require,module,exports){\/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * \/\/ => true\n *\n * _.isObjectLike([1, 2, 3]);\n * \/\/ => true\n *\n * _.isObjectLike(_.noop);\n * \/\/ => false\n *\n * _.isObjectLike(null);\n * \/\/ => false\n *\/\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n}, {}];\nwindow.modules[\"621\"] = [function(require,module,exports){var baseIsEqualDeep = require(622),\n    isObjectLike = require(620);\n\n\/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n *\/\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n}, {\"620\":620,\"622\":622}];\nwindow.modules[\"622\"] = [function(require,module,exports){var Stack = require(561),\n    equalArrays = require(626),\n    equalByTag = require(624),\n    equalObjects = require(625),\n    getTag = require(623),\n    isArray = require(577),\n    isBuffer = require(575),\n    isTypedArray = require(576);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1;\n\n\/** `Object#toString` result references. *\/\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n *\/\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj)  isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  \n  if (!(bitmask & COMPARE_PARTIAL_FLAG))  othIsWrapped) \n  \n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n}, {\"561\":561,\"575\":575,\"576\":576,\"577\":577,\"623\":623,\"624\":624,\"625\":625,\"626\":626}];\nwindow.modules[\"623\"] = [function(require,module,exports){var DataView = require(534),\n    Map = require(549),\n    Promise = require(556),\n    Set = require(557),\n    WeakMap = require(569),\n    baseGetTag = require(611),\n    toSource = require(630);\n\n\/** `Object#toString` result references. *\/\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n\/** Used to detect maps, sets, and weakmaps. *\/\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n\/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n *\/\nvar getTag = baseGetTag;\n\n\/\/ Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView &#038;&#038; getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map &#038;&#038; getTag(new Map) != mapTag) ||\n    (Promise &#038;&#038; getTag(Promise.resolve()) != promiseTag) ||\n    (Set &#038;&#038; getTag(new Set) != setTag) ||\n    (WeakMap &#038;&#038; getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n}, {\"534\":534,\"549\":549,\"556\":556,\"557\":557,\"569\":569,\"611\":611,\"630\":630}];\nwindow.modules[\"624\"] = [function(require,module,exports){var Symbol = require(567),\n    Uint8Array = require(568),\n    eq = require(588),\n    equalArrays = require(626),\n    mapToArray = require(697),\n    setToArray = require(698);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n\/** `Object#toString` result references. *\/\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n\/** Used to convert symbols to primitives and strings. *\/\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n *\/\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      \/\/ Coerce booleans to `1` or `0` and dates to milliseconds.\n      \/\/ Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name &#038;&#038; object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      \/\/ Coerce regexes to strings and treat strings, primitives and objects,\n      \/\/ as equal. See http:\/\/www.ecma-international.org\/ecma-262\/7.0\/#sec-regexp.prototype.tostring\n      \/\/ for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask &#038; COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size &#038;&#038; !isPartial) {\n        return false;\n      }\n      \/\/ Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      \/\/ Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n}, {\"567\":567,\"568\":568,\"588\":588,\"626\":626,\"697\":697,\"698\":698}];\nwindow.modules[\"625\"] = [function(require,module,exports){var getAllKeys = require(699);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1;\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n *\/\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask &#038; COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength &#038;&#038; !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  \/\/ Assume cyclic values are equal.\n  var stacked = stack.get(object);\n  if (stacked &#038;&#038; stack.get(other)) {\n    return stacked == other;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    \/\/ Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result &#038;&#038; !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    \/\/ Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &#038;&#038;\n        ('constructor' in object &#038;&#038; 'constructor' in other) &#038;&#038;\n        !(typeof objCtor == 'function' &#038;&#038; objCtor instanceof objCtor &#038;&#038;\n          typeof othCtor == 'function' &#038;&#038; othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n}, {\"699\":699}];\nwindow.modules[\"626\"] = [function(require,module,exports){var SetCache = require(558),\n    arraySome = require(584),\n    cacheHas = require(678);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n\/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n *\/\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask &#038; COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength &#038;&#038; !(isPartial &#038;&#038; othLength > arrLength)) {\n    return false;\n  }\n  \/\/ Assume cyclic values are equal.\n  var stacked = stack.get(array);\n  if (stacked && stack.get(other)) {\n    return stacked == other;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  \/\/ Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    \/\/ Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &#038;&#038;\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n}, {\"558\":558,\"584\":584,\"678\":678}];\nwindow.modules[\"627\"] = [function(require,module,exports){var Stack = require(561),\n    baseIsEqual = require(621);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n\/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n *\/\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer &#038;&#038; data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer &#038;&#038; data[2]) {\n      if (objValue === undefined &#038;&#038; !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n}, {\"561\":561,\"621\":621}];\nwindow.modules[\"628\"] = [function(require,module,exports){var isFunction = require(629),\n    isMasked = require(631),\n    isObject = require(594),\n    toSource = require(630);\n\n\/**\n * Used to match `RegExp`\n * [syntax characters](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-patterns).\n *\/\nvar reRegExpChar = \/[^$.*+?()[]{}|]\/g;\n\n\/** Used to detect host constructors (Safari). *\/\nvar reIsHostCtor = \/^[object .+?Constructor]$\/;\n\n\/** Used for built-in method references. *\/\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n\/** Used to resolve the decompiled source of functions. *\/\nvar funcToString = funcProto.toString;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/** Used to detect if a method is native. *\/\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '$&#038;')\n  .replace(\/hasOwnProperty|(function).*?(?=()| for .+?(?=])\/g, '$1.*?') + '$'\n);\n\n\/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n *\/\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n}, {\"594\":594,\"629\":629,\"630\":630,\"631\":631}];\nwindow.modules[\"629\"] = [function(require,module,exports){var baseGetTag = require(611),\n    isObject = require(594);\n\n\/** `Object#toString` result references. *\/\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n\/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * \/\/ => true\n *\n * _.isFunction(\/abc\/);\n * \/\/ => false\n *\/\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  \/\/ The use of `Object#toString` avoids issues with the `typeof` operator\n  \/\/ in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n}, {\"594\":594,\"611\":611}];\nwindow.modules[\"630\"] = [function(require,module,exports){\/** Used for built-in method references. *\/\nvar funcProto = Function.prototype;\n\n\/** Used to resolve the decompiled source of functions. *\/\nvar funcToString = funcProto.toString;\n\n\/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n *\/\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n}, {}];\nwindow.modules[\"631\"] = [function(require,module,exports){var coreJsData = require(686);\n\n\/** Used to detect methods masquerading as native. *\/\nvar maskSrcKey = (function() ());\n\n\/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n *\/\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n}, {\"686\":686}];\nwindow.modules[\"632\"] = [function(require,module,exports){var baseGetTag = require(611),\n    isLength = require(633),\n    isObjectLike = require(620);\n\n\/** `Object#toString` result references. *\/\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n\/** Used to identify `toStringTag` values of typed arrays. *\/\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n\/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n *\/\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n}, {\"611\":611,\"620\":620,\"633\":633}];\nwindow.modules[\"633\"] = [function(require,module,exports){\/** Used as references for various `Number` constants. *\/\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * \/\/ => true\n *\n * _.isLength(Number.MIN_VALUE);\n * \/\/ => false\n *\n * _.isLength(Infinity);\n * \/\/ => false\n *\n * _.isLength('3');\n * \/\/ => false\n *\/\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n}, {}];\nwindow.modules[\"634\"] = [function(require,module,exports){var baseMatches = require(636),\n    baseMatchesProperty = require(638),\n    identity = require(635),\n    isArray = require(577),\n    property = require(637);\n\n\/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n *\/\nfunction baseIteratee(value) {\n  \/\/ Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  \/\/ See https:\/\/bugs.webkit.org\/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n}, {\"577\":577,\"635\":635,\"636\":636,\"637\":637,\"638\":638}];\nwindow.modules[\"635\"] = [function(require,module,exports){\/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * \/\/ => true\n *\/\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n}, {}];\nwindow.modules[\"636\"] = [function(require,module,exports){var baseIsMatch = require(627),\n    getMatchData = require(647),\n    matchesStrictComparable = require(646);\n\n\/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n *\/\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object)  baseIsMatch(object, source, matchData);\n  ;\n}\n\nmodule.exports = baseMatches;\n}, {\"627\":627,\"646\":646,\"647\":647}];\nwindow.modules[\"637\"] = [function(require,module,exports){var baseProperty = require(664),\n    basePropertyDeep = require(665),\n    isKey = require(648),\n    toKey = require(608);\n\n\/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param string path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * \/\/ => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a\"https:\/\/slate.com\/,\"b'])), 'a.b');\n * \/\/ => [1, 2]\n *\/\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n}, {\"608\":608,\"648\":648,\"664\":664,\"665\":665}];\nwindow.modules[\"638\"] = [function(require,module,exports){var baseIsEqual = require(621),\n    get = require(60),\n    hasIn = require(650),\n    isKey = require(648),\n    isStrictComparable = require(649),\n    matchesStrictComparable = require(646),\n    toKey = require(608);\n\n\/** Used to compose bitmasks for value comparisons. *\/\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n\/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n *\/\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object)  COMPARE_UNORDERED_FLAG);\n  ;\n}\n\nmodule.exports = baseMatchesProperty;\n}, {\"60\":60,\"608\":608,\"621\":621,\"646\":646,\"648\":648,\"649\":649,\"650\":650}];\nwindow.modules[\"639\"] = [function(require,module,exports){var isPrototype = require(640),\n    nativeKeys = require(641);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n *\/\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n}, {\"640\":640,\"641\":641}];\nwindow.modules[\"640\"] = [function(require,module,exports){\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n *\/\nfunction isPrototype(value) \n\nmodule.exports = isPrototype;\n}, {}];\nwindow.modules[\"641\"] = [function(require,module,exports){var overArg = require(708);\n\n\/* Built-in method references for those with the same name as other `lodash` methods. *\/\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n}, {\"708\":708}];\nwindow.modules[\"642\"] = [function(require,module,exports){var isObject = require(594),\n    isPrototype = require(640),\n    nativeKeysIn = require(643);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Used to check objects for own properties. *\/\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n *\/\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeysIn;\n}, {\"594\":594,\"640\":640,\"643\":643}];\nwindow.modules[\"643\"] = [function(require,module,exports){\/**\n * This function is like\n * [`Object.keys`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n *\/\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = nativeKeysIn;\n}, {}];\nwindow.modules[\"645\"] = [function(require,module,exports){var isFunction = require(629),\n    isLength = require(633);\n\n\/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * \/\/ => true\n *\n * _.isArrayLike(document.body.children);\n * \/\/ => true\n *\n * _.isArrayLike('abc');\n * \/\/ => true\n *\n * _.isArrayLike(_.noop);\n * \/\/ => false\n *\/\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n}, {\"629\":629,\"633\":633}];\nwindow.modules[\"646\"] = [function(require,module,exports){\/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n *\/\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n}, {}];\nwindow.modules[\"647\"] = [function(require,module,exports){var isStrictComparable = require(649),\n    keys = require(605);\n\n\/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n *\/\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n}, {\"605\":605,\"649\":649}];\nwindow.modules[\"648\"] = [function(require,module,exports){var isArray = require(577),\n    isSymbol = require(675);\n\n\/** Used to match property names within property paths. *\/\nvar reIsDeepProp = \/.|[(?:[^[]]*|([\"'])(?:(?!1)[^]|.)*?1)]\/,\n    reIsPlainProp = \/^w*$\/;\n\n\/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n *\/\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n}, {\"577\":577,\"675\":675}];\nwindow.modules[\"649\"] = [function(require,module,exports){var isObject = require(594);\n\n\/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n *\/\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n}, {\"594\":594}];\nwindow.modules[\"650\"] = [function(require,module,exports){var baseHasIn = require(615),\n    hasPath = require(710);\n\n\/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param string path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * \/\/ => true\n *\n * _.hasIn(object, 'a.b');\n * \/\/ => true\n *\n * _.hasIn(object, ['a\"https:\/\/slate.com\/,\"b']);\n * \/\/ => true\n *\n * _.hasIn(object, 'b');\n * \/\/ => false\n *\/\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n}, {\"615\":615,\"710\":710}];\nwindow.modules[\"653\"] = [function(require,module,exports){var arrayLikeKeys = require(573),\n    baseKeysIn = require(642),\n    isArrayLike = require(645);\n\n\/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * \/\/ => ['a\"https:\/\/slate.com\/,\"b\"https:\/\/slate.com\/,\"c'] (iteration order is not guaranteed)\n *\/\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n}, {\"573\":573,\"642\":642,\"645\":645}];\nwindow.modules[\"662\"] = [function(require,module,exports){var baseGet = require(607),\n    baseSet = require(663),\n    castPath = require(609);\n\n\/**\n * The base implementation of  `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n *\/\nfunction basePickBy(object, paths, predicate) {\n  var index = -1,\n      length = paths.length,\n      result = {};\n\n  while (++index < length) {\n    var path = paths[index],\n        value = baseGet(object, path);\n\n    if (predicate(value, path)) {\n      baseSet(result, castPath(path, object), value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = basePickBy;\n}, {\"607\":607,\"609\":609,\"663\":663}];\nwindow.modules[\"663\"] = [function(require,module,exports){var assignValue = require(590),\n    castPath = require(609),\n    isIndex = require(578),\n    isObject = require(594),\n    toKey = require(608);\n\n\/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param string path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n *\/\nfunction baseSet(object, path, value, customizer) {\n  if (!isObject(object)) {\n    return object;\n  }\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      lastIndex = length - 1,\n      nested = object;\n\n  while (nested != null &#038;&#038; ++index < length) {\n    var key = toKey(path[index]),\n        newValue = value;\n\n    if (index != lastIndex) {\n      var objValue = nested[key];\n      newValue = customizer ? customizer(objValue, key, nested) : undefined;\n      if (newValue === undefined) {\n        newValue = isObject(objValue)\n          ? objValue\n          : (isIndex(path[index + 1]) ? [] : {});\n      }\n    }\n    assignValue(nested, key, newValue);\n    nested = nested[key];\n  }\n  return object;\n}\n\nmodule.exports = baseSet;\n}, {\"578\":578,\"590\":590,\"594\":594,\"608\":608,\"609\":609}];\nwindow.modules[\"664\"] = [function(require,module,exports){\/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n *\/\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n}, {}];\nwindow.modules[\"665\"] = [function(require,module,exports){var baseGet = require(607);\n\n\/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param string path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n *\/\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n}, {\"607\":607}];\nwindow.modules[\"674\"] = [function(require,module,exports){var Symbol = require(567),\n    arrayMap = require(580),\n    isArray = require(577),\n    isSymbol = require(675);\n\n\/** Used as references for various `Number` constants. *\/\nvar INFINITY = 1 \/ 0;\n\n\/** Used to convert symbols to primitives and strings. *\/\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n\/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n *\/\nfunction baseToString(value) {\n  \/\/ Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    \/\/ Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' &#038;&#038; (1 \/ value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n}, {\"567\":567,\"577\":577,\"580\":580,\"675\":675}];\nwindow.modules[\"675\"] = [function(require,module,exports){var baseGetTag = require(611),\n    isObjectLike = require(620);\n\n\/** `Object#toString` result references. *\/\nvar symbolTag = '[object Symbol]';\n\n\/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * \/\/ => true\n *\n * _.isSymbol('abc');\n * \/\/ => false\n *\/\nfunction isSymbol(value) \n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n\n\nmodule.exports = isSymbol;\n}, {\"611\":611,\"620\":620}];\nwindow.modules[\"676\"] = [function(require,module,exports){\/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n *\/\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n}, {}];\nwindow.modules[\"678\"] = [function(require,module,exports){\/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n *\/\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n}, {}];\nwindow.modules[\"679\"] = [function(require,module,exports){var identity = require(635);\n\n\/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n *\/\nfunction castFunction(value) {\n  return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n}, {\"635\":635}];\nwindow.modules[\"680\"] = [function(require,module,exports){var baseToString = require(674);\n\n\/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * \/\/ => ''\n *\n * _.toString(-0);\n * \/\/ => '-0'\n *\n * _.toString([1, 2, 3]);\n * \/\/ => '1,2,3'\n *\/\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n}, {\"674\":674}];\nwindow.modules[\"681\"] = [function(require,module,exports){var memoizeCapped = require(713);\n\n\/** Used to match property names within property paths. *\/\nvar rePropName = \/[^.[]]+|[(?:(-?d+(?:.d+)?)|([\"'])((?:(?!2)[^]|.)*?)2)]|(?=(?:.|[])(?:.|[]|$))\/g;\n\n\/** Used to match backslashes in property paths. *\/\nvar reEscapeChar = \/()?\/g;\n\n\/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n *\/\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 \/* . *\/) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) );\n  return result;\n});\n\nmodule.exports = stringToPath;\n}, {\"713\":713}];\nwindow.modules[\"686\"] = [function(require,module,exports){var root = require(535);\n\n\/** Used to detect overreaching core-js shims. *\/\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n}, {\"535\":535}];\nwindow.modules[\"697\"] = [function(require,module,exports){\/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n *\/\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n}, {}];\nwindow.modules[\"698\"] = [function(require,module,exports){\/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n *\/\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n}, {}];\nwindow.modules[\"699\"] = [function(require,module,exports){var baseGetAllKeys = require(610),\n    getSymbols = require(701),\n    keys = require(605);\n\n\/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n *\/\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n}, {\"605\":605,\"610\":610,\"701\":701}];\nwindow.modules[\"700\"] = [function(require,module,exports){(function (global){\n\/** Detect free variable `global` from Node.js. *\/\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})}, {}];\nwindow.modules[\"701\"] = [function(require,module,exports){var arrayFilter = require(572),\n    stubArray = require(709);\n\n\/** Used for built-in method references. *\/\nvar objectProto = Object.prototype;\n\n\/** Built-in value references. *\/\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n\/* Built-in method references for those with the same name as other `lodash` methods. *\/\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n\/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n *\/\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n}, {\"572\":572,\"709\":709}];\nwindow.modules[\"702\"] = [function(require,module,exports){var baseGetAllKeys = require(610),\n    getSymbolsIn = require(703),\n    keysIn = require(653);\n\n\/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n *\/\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n}, {\"610\":610,\"653\":653,\"703\":703}];\nwindow.modules[\"703\"] = [function(require,module,exports){var arrayPush = require(581),\n    getPrototype = require(707),\n    getSymbols = require(701),\n    stubArray = require(709);\n\n\/* Built-in method references for those with the same name as other `lodash` methods. *\/\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n\/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n *\/\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\n\nmodule.exports = getSymbolsIn;\n}, {\"581\":581,\"701\":701,\"707\":707,\"709\":709}];\nwindow.modules[\"704\"] = [function(require,module,exports){var isKeyable = require(705);\n\n\/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n *\/\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n}, {\"705\":705}];\nwindow.modules[\"705\"] = [function(require,module,exports){\/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n *\/\nfunction isKeyable(value) \n\nmodule.exports = isKeyable;\n}, {}];\nwindow.modules[\"706\"] = [function(require,module,exports){\/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n *\/\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n}, {}];\nwindow.modules[\"707\"] = [function(require,module,exports){var overArg = require(708);\n\n\/** Built-in value references. *\/\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n}, {\"708\":708}];\nwindow.modules[\"708\"] = [function(require,module,exports){\/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n *\/\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n}, {}];\nwindow.modules[\"709\"] = [function(require,module,exports){\/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * \/\/ => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * \/\/ => false\n *\/\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n}, {}];\nwindow.modules[\"710\"] = [function(require,module,exports){var castPath = require(609),\n    isArguments = require(574),\n    isArray = require(577),\n    isIndex = require(578),\n    isLength = require(633),\n    toKey = require(608);\n\n\/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param string path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n *\/\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null &#038;&#038; hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length &#038;&#038; isLength(length) &#038;&#038; isIndex(key, length) &#038;&#038;\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n}, {\"574\":574,\"577\":577,\"578\":578,\"608\":608,\"609\":609,\"633\":633}];\nwindow.modules[\"712\"] = [function(require,module,exports){var getNative = require(536);\n\n\/* Built-in method references that are verified to be native. *\/\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n}, {\"536\":536}];\nwindow.modules[\"713\"] = [function(require,module,exports){var memoize = require(714);\n\n\/** Used as the maximum memoize cache size. *\/\nvar MAX_MEMOIZE_SIZE = 500;\n\n\/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n *\/\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n}, {\"714\":714}];\nwindow.modules[\"714\"] = [function(require,module,exports){var MapCache = require(550);\n\n\/** Error message constants. *\/\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http:\/\/ecma-international.org\/ecma-262\/7.0\/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * \/\/ => [1, 2]\n *\n * values(other);\n * \/\/ => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * \/\/ => [1, 2]\n *\n * \/\/ Modify the result cache.\n * values.cache.set(object, ['a\"https:\/\/slate.com\/,\"b']);\n * values(object);\n * \/\/ => ['a\"https:\/\/slate.com\/,\"b']\n *\n * \/\/ Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n *\/\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n\/\/ Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n}, {\"550\":550}];\nwindow.modules[\"715\"] = [function(require,module,exports){var freeGlobal = require(700);\n\n\/** Detect free variable `exports`. *\/\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n\/** Detect free variable `module`. *\/\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n\/** Detect the popular CommonJS extension `module.exports`. *\/\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\/** Detect free variable `process` from Node.js. *\/\nvar freeProcess = moduleExports && freeGlobal.process;\n\n\/** Used to access faster Node.js helpers. *\/\nvar nodeUtil = (function() {\n  try {\n    \/\/ Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    \/\/ Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess &#038;&#038; freeProcess.binding &#038;&#038; freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n}, {\"700\":700}];\nwindow.modules[\"719\"] = [function(require,module,exports){var toInteger = require(720);\n\n\/** Error message constants. *\/\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * \/\/ => Allows adding up to 4 contacts to the list.\n *\/\nfunction before(n, func) {\n  var result;\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  n = toInteger(n);\n  return function() {\n    if (--n > 0) {\n      result = func.apply(this, arguments);\n    }\n    if (n <= 1) {\n      func = undefined;\n    }\n    return result;\n  };\n}\n\nmodule.exports = before;\n}, {\"720\":720}];\nwindow.modules[\"720\"] = [function(require,module,exports){var toFinite = require(742);\n\n\/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http:\/\/www.ecma-international.org\/ecma-262\/7.0\/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * \/\/ => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * \/\/ => 0\n *\n * _.toInteger(Infinity);\n * \/\/ => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * \/\/ => 3\n *\/\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n}, {\"742\":742}];\nwindow.modules[\"721\"] = [function(require,module,exports){var isObject = require(594),\n    now = require(723),\n    toNumber = require(722);\n\n\/** Error message constants. *\/\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\/* Built-in method references for those with the same name as other `lodash` methods. *\/\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n\/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and\/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https:\/\/css-tricks.com\/debouncing-throttling-explained-examples\/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * \/\/ Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * \/\/ Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * \/\/ Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('\/stream');\n * jQuery(source).on('message', debounced);\n *\n * \/\/ Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n *\/\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options))  0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  \n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    \/\/ Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    \/\/ Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    \/\/ Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) \n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    \/\/ Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    \/\/ Only invoke if we have `lastArgs` which means `func` has been\n    \/\/ debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        \/\/ Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n}, {\"594\":594,\"722\":722,\"723\":723}];\nwindow.modules[\"722\"] = [function(require,module,exports){var isObject = require(594),\n    isSymbol = require(675);\n\n\/** Used as references for various `Number` constants. *\/\nvar NAN = 0 \/ 0;\n\n\/** Used to match leading and trailing whitespace. *\/\nvar reTrim = \/^s+|s+$\/g;\n\n\/** Used to detect bad signed hexadecimal string values. *\/\nvar reIsBadHex = \/^[-+]0x[0-9a-f]+$\/i;\n\n\/** Used to detect binary string values. *\/\nvar reIsBinary = \/^0b[01]+$\/i;\n\n\/** Used to detect octal string values. *\/\nvar reIsOctal = \/^0o[0-7]+$\/i;\n\n\/** Built-in method references without a dependency on `root`. *\/\nvar freeParseInt = parseInt;\n\n\/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * \/\/ => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * \/\/ => 5e-324\n *\n * _.toNumber(Infinity);\n * \/\/ => Infinity\n *\n * _.toNumber('3.2');\n * \/\/ => 3.2\n *\/\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n}, {\"594\":594,\"675\":675}];\nwindow.modules[\"723\"] = [function(require,module,exports){var root = require(535);\n\n\/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * \/\/ => Logs the number of milliseconds it took for the deferred invocation.\n *\/\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n}, {\"535\":535}];\nwindow.modules[\"725\"] = [function(require,module,exports){var arrayEach = require(571),\n    baseEach = require(595),\n    castFunction = require(679),\n    isArray = require(577);\n\n\/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param Object collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns Object Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n *   console.log(value);\n * });\n * \/\/ => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n *   console.log(key);\n * });\n * \/\/ => Logs 'a' then 'b' (iteration order is not guaranteed).\n *\/\nfunction forEach(collection, iteratee) {\n  var func = isArray(collection) ? arrayEach : baseEach;\n  return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n}, {\"571\":571,\"577\":577,\"595\":595,\"679\":679}];\nwindow.modules[\"733\"] = [function(require,module,exports){\/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * \/\/ => [false, false]\n *\/\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n}, {}];\nwindow.modules[\"742\"] = [function(require,module,exports){var toNumber = require(722);\n\n\/** Used as references for various `Number` constants. *\/\nvar INFINITY = 1 \/ 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n\/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * \/\/ => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * \/\/ => 5e-324\n *\n * _.toFinite(Infinity);\n * \/\/ => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * \/\/ => 3.2\n *\/\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n}, {\"722\":722}];\nwindow.modules[\"slate-ad.client\"] = [function(require,module,exports){\"use strict\";\n\nvar googletag = googletag || {};\ngoogletag.cmd = googletag.cmd || [];\nDS.controller(\"slate-ad\", [\"adService\"https:\/\/slate.com\/,\"$visibility\"https:\/\/slate.com\/,\"headerBidding\"https:\/\/slate.com\/,\"adsPlus\", function (adService, $visibility, headerBidding) {\n  var Ad = function Ad(el) {\n    var ad = adService.createAd(el);\n\n    if (isSponsored() || isBouncex(ad) || isPodcastTextAd(ad)) {\n      \/\/ if there is a homepage sponsorhip today or\n      \/\/ this is an bouncex ad\n      \/\/ request ad now instead of lazy loading\n      requestAdNow(ad, el);\n    } else {\n      \/\/ in all other cases ads\n      \/\/ are lazy loaded\n      lazyLoadAd(ad, el);\n    }\n  };\n\n  function isBouncex(ad) {\n    return ad.type === \"non-standard\";\n  }\n\n  function isPodcastTextAd(ad) {\n    return ad.type === \"podcast-headline\";\n  }\n\n  function requestAdNow(ad, el) {\n    if ($visibility.isElementNotHidden(el)) {\n      window.googletag.cmd.push(function () {\n        adService.requestAd(ad);\n      });\n    }\n  }\n\n  function lazyLoadAd(ad, el) {\n    var visible = new $visibility.Visible(el, {\n      preloadThreshhold: 400\n    });\n    visible.on(\"preload\", function () {\n      if ($visibility.isElementNotHidden(el)) {\n        if (ad.prebid) {\n          \/\/ run header bidding first then request ad from dfp\n          headerBidding.prebid(ad);\n        } else {\n          \/\/ request ads from DFP without header bidding\n          window.googletag.cmd.push(function () {\n            adService.requestAd(ad);\n          });\n        }\n      }\n    });\n  }\n\n  function isSponsored() {\n    var hpSponsorship = document.querySelector(\".homepage-sponsorship\");\n    isSponsored = false;\n\n    if (hpSponsorship) {\n      var sponsorshipStart = hpSponsorship.getAttribute(\"data-sponsorship-start\"),\n          currentTime = new Date().getTime(),\n          oneDayInMs = 24 * 60 * 60 * 1000,\n          isSponsored = currentTime > sponsorshipStart && currentTime - sponsorshipStart < oneDayInMs;\n    }\n\n    return isSponsored;\n  }\n\n  return Ad;\n}]);\nDS.service(\"adsPlus\", [\"$window\", function ($window) {\n  var membership = require(3),\n      isMember = membership.isMember();\n\n  if (isMember) {\n    $window.googletag.cmd.push(function () {\n      $window.googletag.pubads().setTargeting(\"segs\"https:\/\/slate.com\/,\"plus\");\n    });\n  }\n}]);\n}, {\"3\":3}];\nwindow.modules[\"slate-paywall.client\"] = [function(require,module,exports){\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar cookies = require(43);\n\nvar slateAmplitude = require(1);\n\nvar membership = require(3);\n\nvar _require = require(29),\n    toUrl = _require.toUrl;\n\nvar ANALYTICS_ENVIRONMENTS = [\"local\"https:\/\/slate.com\/,\"dev\"https:\/\/slate.com\/,\"stage\"https:\/\/slate.com\/,\"prod\"];\n\nmodule.exports = function (el) {\n  document.addEventListener(\"articleLoaded\", function (event) {\n    checkPaywall(el, event.detail);\n  }); \/\/ Warning close button\n\n  var closeButton = el.querySelector(\".slate-paywall__close-button\");\n  closeButton.addEventListener(\"click\", function () {\n    el.classList.add(\"slate-paywall--hidden\");\n  });\n};\n\/**\n * Check whether to show paywall\/warning\/roadblock\n * @param {HTMLElement} el\n * @param {Object} articlePaywallData\n * @returns {void}\n *\/\n\n\nfunction checkPaywall(el, articlePaywallData) {\n  var isRoadblockVisible = articlePaywallData.isRoadblockVisible,\n      paywallDisabled = articlePaywallData.paywallDisabled,\n      rubric = articlePaywallData.rubric; \/\/ We never show the warning or the paywall if the roadblock is on the page\n\n  if (isRoadblockVisible) {\n    el.parentElement.classList.add(\"roadblock-visible\");\n    firePaywallComplete(true);\n    return;\n  }\n\n  var maxMpv = JSON.parse(el.dataset.maxMpv);\n  var mpv = cookies.getJSON(\"mpv\") ? cookies.getJSON(\"mpv\").pv : 1; \/\/ Account for if a user has deleted their cookies\n\n  var excludedContent = JSON.parse(el.dataset.excludedContent);\n  var pageTags = slateAmplitude.getDomEventData().tags;\n  var isSplus = membership.isMember();\n  var hasExcludedContent = checkExcludedContent(excludedContent, {\n    pageTags: pageTags,\n    rubric: rubric\n  }); \/\/ Basic conditions needed to show a paywall or warning\n  \/\/ prettier-ignore\n\n  var commonConditions = [maxMpv !== -1, \/\/ A page view limit exists\n  !isSplus, \/\/ Is not a Slate Plus user\n  !isRoadblockVisible \/\/ No roadblock present\n  ];\n\n  if (commonConditions.every(Boolean)) {\n    \/\/ Show the paywall\n    var paywallConditions = mpv >= maxMpv && !hasExcludedContent && !paywallDisabled;\n\n    if (paywallConditions) {\n      enablePaywall(el);\n      firePaywallComplete(true);\n      return;\n    } \/\/ Show the warning\n\n\n    var warningConditions = maxMpv - mpv <= 5 &#038;&#038; mpv < maxMpv;\n    if (warningConditions) enableWarning(el);\n  }\n\n  firePaywallComplete();\n}\n\/**\n * Event to fire for Taboola when the paywall check has finished\n * @param {Boolean} isSplus\n * @param {Boolean} isPaywalledOrRoadblocked\n * @returns {void}\n *\/\n\n\nfunction firePaywallComplete() {\n  return _firePaywallComplete.apply(this, arguments);\n}\n\/**\n * Toggle the warning, update its links, and fire the Amplitude event\n * @param {HTMLElement} el\n *\/\n\n\nfunction _firePaywallComplete() {\n  _firePaywallComplete = _asyncToGenerator(\n  \/*#__PURE__*\/\n  regeneratorRuntime.mark(function _callee() {\n    var isPaywalledOrRoadblocked,\n        paywallComplete,\n        _args = arguments;\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            isPaywalledOrRoadblocked = _args.length > 0 && _args[0] !== undefined ? _args[0] : false;\n            _context.t0 = CustomEvent;\n            _context.t1 = isPaywalledOrRoadblocked;\n            _context.t2 = membership.isMember();\n            _context.next = 6;\n            return membership.isLoggedIn();\n\n          case 6:\n            _context.t3 = _context.sent;\n            _context.t4 = {\n              isPaywalled: _context.t1,\n              isMember: _context.t2,\n              isLoggedIn: _context.t3\n            };\n            _context.t5 = {\n              detail: _context.t4\n            };\n            paywallComplete = new _context.t0(\"paywallComplete\", _context.t5);\n            document.dispatchEvent(paywallComplete);\n\n          case 11:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n  return _firePaywallComplete.apply(this, arguments);\n}\n\nfunction enableWarning(el) {\n  el.parentElement.classList.add(\"warning-eligible\");\n  var buttonLinkEl = el.querySelector(\".slate-paywall__content--warning .slate-paywall__button\"); \/\/ Button link\n\n  buttonLinkEl.href = buildWarningButtonLink(el);\n  var env = document.documentElement.getAttribute(\"data-env\");\n\n  if (ANALYTICS_ENVIRONMENTS.includes(env)) {\n    sendWarningAmplitude(buttonLinkEl);\n  }\n}\n\/**\n * Toggle the paywall, update its links, and fire the Amplitude event\n * @param {HTMLElement} el\n *\/\n\n\nfunction enablePaywall(el) {\n  el.parentElement.classList.add(\"paywall-eligible\");\n  var buttonLinkEl = el.querySelector(\".slate-paywall__content--paywall .slate-paywall__button\"); \/\/ Button link\n\n  buttonLinkEl.href = buildPaywallButtonLink(el);\n  var env = document.documentElement.getAttribute(\"data-env\");\n\n  if (ANALYTICS_ENVIRONMENTS.includes(env)) {\n    sendPaywallAmplitude(buttonLinkEl);\n  }\n}\n\/**\n * Check if the page contains any content that exempts it from the paywall\n * @param {Object} excludedContent\n * @param {Array} pageContent\n * @returns {Boolean}\n *\/\n\n\nfunction checkExcludedContent(excludedContent, _ref) \n\/**\n * Check if the page contains paywall-exempted tags\n * @param {Array} excludedTags\n * @param {Array} pageTags\n * @returns {Boolean}\n *\/\n\n\nfunction checkExcludedTags(excludedTags, pageTags) {\n  return pageTags.some(function (tag) {\n    return excludedTags.includes(tag);\n  });\n}\n\/**\n * Add params to the paywall button URL\n * @param {HTMLElement} el\n *\/\n\n\nfunction buildPaywallButtonLink(el) {\n  var buttonLink = el.querySelector(\".slate-paywall__button\").href;\n  var headlineEl = el.querySelector(\".article__hed\");\n  var params = {\n    redirect_uri: window.location.href,\n    utm_medium: \"paywall\",\n    utm_campaign: \"plus100\",\n    utm_source: \"article\",\n    via: \"paywall\"\n  };\n  if (headlineEl) params.utm_content = firstTwoWords(headlineEl.textContent);\n  return toUrl(buttonLink, params).href;\n}\n\nfunction buildWarningButtonLink(el) {\n  var buttonLink = el.querySelector(\".slate-paywall__button\").href;\n  var params = {\n    utm_medium: \"link\",\n    utm_campaign: \"plus\",\n    utm_content: \"meter_warning\",\n    utm_source: \"sticky_banner\"\n  };\n  return toUrl(buttonLink, params);\n}\n\/**\n * Paywall amplitude tracking events\n * @param {HTMLElement} buttonLinkEl\n *\/\n\n\nfunction sendPaywallAmplitude(buttonLinkEl) {\n  window.slateAmplitudeQueue.push(function () {\n    slateAmplitude.track(\"MeterWallShown\", {\n      value: true\n    });\n  });\n  buttonLinkEl.addEventListener(\"click\", function () {\n    slateAmplitude.track(\"Click Paywall CTA\");\n  });\n}\n\/**\n * Warning amplitude tracking events\n * @param {HTMLElement} buttonLinkEl\n *\/\n\n\nfunction sendWarningAmplitude(buttonLinkEl) {\n  window.slateAmplitudeQueue.push(function () {\n    slateAmplitude.track(\"MeterWarningShown\", {\n      value: true\n    });\n  });\n  buttonLinkEl.addEventListener(\"click\", function () {\n    slateAmplitude.track(\"Click Meter Warning CTA\");\n  });\n}\n\/**\n * Get the first two words of a string and join them with an underscore\n * ie. \"Foo Bar Baz\" => \"Foo_Bar\"\n * @param {String} str\n * @returns {String}\n *\/\n\n\nfunction firstTwoWords() {\n  var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n  return str.split(\" \").slice(0, 2).join(\"_\");\n}\n}, {\"1\":1,\"3\":3,\"29\":29,\"43\":43}];\nwindow.modules[\"analytics-js-loader.client\"] = [function(require,module,exports){\"use strict\";\n\nmodule.exports = function (el) {\n  if (el.dataset.disableClientJs !== undefined) return; \/\/ prettier-ignore\n\n  (function (e, t) {\n    var n = e.amplitude || {\n      _q: [],\n      _iq: {}\n    };\n    var r = t.createElement(\"script\");\n    r.type = \"text\/javascript\";\n    r.integrity = \"sha384-t5vT47el2d0e6uQ1h75P9Lbzo8by6pbk+Rg41Gm4xuTGR+eDLpbWslKUtZMDe9Bj\";\n    r.crossOrigin = \"anonymous\";\n    r.defer = true;\n    r.src = \"https:\/\/cdn.amplitude.com\/libs\/amplitude-5.6.0-min.gz.js\";\n\n    r.onload = function () {\n      if (!e.amplitude.runQueuedFunctions) {\n        console.log(\"[Amplitude] Error: could not load SDK\");\n      }\n    };\n\n    var i = t.getElementsByTagName(\"script\")[0];\n    i.parentNode.insertBefore(r, i);\n\n    function s(e, t) {\n      e.prototype[t] = function () {\n        this._q.push([t].concat(Array.prototype.slice.call(arguments, 0)));\n\n        return this;\n      };\n    }\n\n    var o = function o() {\n      this._q = [];\n      return this;\n    };\n\n    var a = [\"add\"https:\/\/slate.com\/,\"append\"https:\/\/slate.com\/,\"clearAll\"https:\/\/slate.com\/,\"prepend\"https:\/\/slate.com\/,\"set\"https:\/\/slate.com\/,\"setOnce\"https:\/\/slate.com\/,\"unset\"];\n\n    for (var u = 0; u < a.length; u++) {\n      s(o, a[u]);\n    }\n\n    n.Identify = o;\n\n    var c = function c() {\n      this._q = [];\n      return this;\n    };\n\n    var l = [\"setProductId\"https:\/\/slate.com\/,\"setQuantity\"https:\/\/slate.com\/,\"setPrice\"https:\/\/slate.com\/,\"setRevenueType\"https:\/\/slate.com\/,\"setEventProperties\"];\n\n    for (var p = 0; p < l.length; p++) {\n      s(c, l[p]);\n    }\n\n    n.Revenue = c;\n    var d = [\"init\"https:\/\/slate.com\/,\"logEvent\"https:\/\/slate.com\/,\"logRevenue\"https:\/\/slate.com\/,\"setUserId\"https:\/\/slate.com\/,\"setUserProperties\"https:\/\/slate.com\/,\"setOptOut\"https:\/\/slate.com\/,\"setVersionName\"https:\/\/slate.com\/,\"setDomain\"https:\/\/slate.com\/,\"setDeviceId\"https:\/\/slate.com\/,\"setGlobalUserProperties\"https:\/\/slate.com\/,\"identify\"https:\/\/slate.com\/,\"clearUserProperties\"https:\/\/slate.com\/,\"setGroup\"https:\/\/slate.com\/,\"logRevenueV2\"https:\/\/slate.com\/,\"regenerateDeviceId\"https:\/\/slate.com\/,\"groupIdentify\"https:\/\/slate.com\/,\"onInit\"https:\/\/slate.com\/,\"logEventWithTimestamp\"https:\/\/slate.com\/,\"logEventWithGroups\"https:\/\/slate.com\/,\"setSessionId\"https:\/\/slate.com\/,\"resetSessionId\"];\n\n    function v(e) {\n      function t(t) {\n        e[t] = function () {\n          e._q.push([t].concat(Array.prototype.slice.call(arguments, 0)));\n        };\n      }\n\n      for (var n = 0; n < d.length; n++) {\n        t(d[n]);\n      }\n    }\n\n    v(n);\n\n    n.getInstance = function (e) {\n      e = (!e || e.length === 0 ? \"$default_instance\" : e).toLowerCase();\n\n      if (!n._iq.hasOwnProperty(e)) {\n        n._iq[e] = {\n          _q: []\n        };\n        v(n._iq[e]);\n      }\n\n      return n._iq[e];\n    };\n\n    e.amplitude = n;\n  })(window, document); \/\/ Register amplitude\n\n\n  window.nonIabVendorApi.registerVendor(\"amplitude\", {\n    categories: [\"C0002\"],\n    initFunc: function initFunc(consent) {\n      window.amplitude.getInstance().init(el.dataset.amplitudeApiKey, null, {\n        includeUtm: true,\n        includeReferrer: true,\n        includeGclid: true,\n        logLevel: el.dataset.amplitudeLogLevel,\n        saveParamsReferrerOncePerSession: false,\n        domain: el.dataset.amplitudeDomain\n      }, function (instance) {\n        window.slateAmplitudeQueue.init(instance, consent);\n      });\n      return true;\n    },\n    updateConsentFunc: function updateConsentFunc(consent) {\n      window.slateAmplitudeQueue.push(function (instance) {\n        instance.setOptOut(!consent);\n      });\n    }\n  });\n  window.nonIabVendorApi.registerVendor(\"parsely\", {\n    categories: [\"C0002\"],\n    initFunc: function initFunc(consent) {\n      if (!consent) return false;\n\n      if (window.PARSELY) {\n        delete window.PARSELY;\n      }\n\n      var elem = document.createElement(\"script\");\n      elem.id = \"parsely-cfg\";\n      elem[\"data-parsely-site\"] = \"slate.com\";\n      elem.src = el.dataset.parselyScriptSrc;\n      elem.defer = true;\n      var scpt = document.getElementsByTagName(\"script\")[0];\n      scpt.parentNode.insertBefore(elem, scpt);\n      return true;\n    },\n    updateConsentFunc: function updateConsentFunc(consent) {\n      if (!consent) if (window.PARSELY) {\n        window.PARSELY = Function.prototype; \/\/ noop\n      }\n    }\n  });\n  window.nonIabVendorApi.registerVendor(\"fbPixel\", {\n    categories: [\"C0002\"https:\/\/slate.com\/,\"C0003\"https:\/\/slate.com\/,\"C0004\"],\n    initFunc: function initFunc(consent) {\n      if (!consent) return false; \/\/ prettier-ignore\n\n      !function (f, b, e, v, n, t, s) {\n        if (f.fbq) return;\n\n        n = f.fbq = function () {\n          n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n        };\n\n        if (!f._fbq) f._fbq = n;\n        n.push = n;\n        n.loaded = !0;\n        n.version = '2.0';\n        n.queue = [];\n        t = b.createElement(e);\n        t.async = !0;\n        t.src = v;\n        s = b.getElementsByTagName(e)[0];\n        s.parentNode.insertBefore(t, s);\n      }(window, document, 'script\"https:\/\/slate.com\/,\"https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n      fbq(\"consent\"https:\/\/slate.com\/,\"grant\");\n      fbq(\"set\"https:\/\/slate.com\/,\"autoConfig\", false, \"166975463695820\");\n      fbq(\"init\"https:\/\/slate.com\/,\"166975463695820\");\n      fbq(\"track\"https:\/\/slate.com\/,\"PageView\");\n      return true;\n    },\n    updateConsentFunc: function updateConsentFunc(consent) {\n      if (window.fbq) \n    }\n  });\n};\n}, {}];\nwindow.modules[\"slate-ad-aps.client\"] = [function(require,module,exports){\"use strict\";\n\ntry {\n  window.__uspapi(\"getUSPData\", 1, function (uspData, success) {\n    var params = {\n      si_section: getApsSection()\n    };\n\n    if (success) {\n      params[\"us_privacy\"] = uspData.uspString;\n    }\n\n    window.apstag &#038;&#038; window.apstag.init({\n      pubID: \"3075\",\n      adServer: \"googletag\",\n      params: params,\n      gdpr: {\n        cmpTimeout: 200\n      }\n    });\n  });\n} catch (e) {\n  console.error(\"__uspapi failed\", e);\n}\n\nfunction getApsSection() {\n  var adNodeElement = document.querySelector(\"div[data-adnode]\"),\n      adNode = \"\";\n\n  if (adNodeElement) {\n    adNode = adNodeElement.getAttribute(\"data-adnode\");\n  }\n\n  return adNode.replace(\"\/\"https:\/\/slate.com\/,\"   \").replace(\/_\/g, \" \");\n}\n}, {}];\nwindow.modules[\"masthead.client\"] = [function(require,module,exports){\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n\/* globals document: false, location: false, DS: false, URL: false *\/\n\/\/ todo: should refactor this into a DS.service, especially if we include it anywhere else\nvar membership = require(3);\n\nvar dropdown = require(28);\n\nDS.controller(\"masthead\", [function () {\n  var Constructor =\n  \/*#__PURE__*\/\n  function () {\n    var _ref = _asyncToGenerator(\n    \/*#__PURE__*\/\n    regeneratorRuntime.mark(function _callee(el) {\n      var sectionLinks, i, sectionLink, selectors, _i, selector;\n\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              \/\/ highlight the appropriate section\n              sectionLinks = el.querySelectorAll(\".sections__link\");\n\n              for (i = 0; i < sectionLinks.length; ++i) {\n                sectionLink = sectionLinks[i];\n\n                if (location.pathname.indexOf(sectionLink.getAttribute(\"href\")) !== -1) {\n                  sectionLink.classList.add(\"sections__link--current\");\n                }\n              }\n\n              _context.next = 4;\n              return getVisibleSelectors();\n\n            case 4:\n              selectors = _context.sent;\n\n              for (_i = 0; _i < selectors.length; _i++) {\n                selector = \".js-account--\".concat(selectors[_i]);\n                document.querySelectorAll(selector).forEach(function (el) {\n                  return el.hidden = false;\n                });\n              }\n\n              this.menu = el.querySelector(\".menu\");\n              dropdown(el);\n\n            case 8:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    }));\n\n    return function Constructor(_x) {\n      return _ref.apply(this, arguments);\n    };\n  }();\n\n  Constructor.prototype = {\n    events: {\n      \".js-toggle-menu click\": \"toggleMenu\",\n      \".js-redirect-return click\": \"addRedirectParam\"\n    },\n    toggleMenu: function toggleMenu(e) {\n      this.menu.classList.toggle(\"menu--open\");\n      document.documentElement.classList.toggle(\"menu-open\", this.menu.classList.contains(\"menu--open\"));\n    },\n    addRedirectParam: function addRedirectParam(e) {\n      var url = new URL(e.currentTarget.href);\n      url.searchParams.set(\"redirect_uri\", location.href);\n      e.currentTarget.href = url.toString();\n    }\n  };\n  return Constructor;\n}]);\n\nfunction getVisibleSelectors() {\n  return _getVisibleSelectors.apply(this, arguments);\n}\n\nfunction _getVisibleSelectors() {\n  _getVisibleSelectors = _asyncToGenerator(\n  \/*#__PURE__*\/\n  regeneratorRuntime.mark(function _callee2() {\n    var stateMap, state, isLoggedIn;\n    return regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            \/\/ Keys represent different states, strings in the arrays are the suffixes of CSS classes associated with the elements that are visible in those states. The full class names look like \"js-account--subscribe,\" \"js-account--profile,\" etc.\n            stateMap = {\n              signedOut: [\"mobile-subscribe\"https:\/\/slate.com\/,\"sign-in\"https:\/\/slate.com\/,\"subscribe\"],\n              signedIn: [\"mobile-subscribe\"https:\/\/slate.com\/,\"profile\"https:\/\/slate.com\/,\"sign-out\"https:\/\/slate.com\/,\"subscribe\"],\n              member: [\"mobile-profile\"https:\/\/slate.com\/,\"profile\"https:\/\/slate.com\/,\"sign-out\"https:\/\/slate.com\/,\"slate-plus\"]\n            };\n\n            if (!membership.isMember()) {\n              _context2.next = 5;\n              break;\n            }\n\n            state = \"member\";\n            _context2.next = 9;\n            break;\n\n          case 5:\n            _context2.next = 7;\n            return membership.isLoggedIn();\n\n          case 7:\n            isLoggedIn = _context2.sent;\n\n            if (isLoggedIn) {\n              state = \"signedIn\";\n            } else {\n              state = \"signedOut\";\n            }\n\n          case 9:\n            return _context2.abrupt(\"return\", stateMap[state]);\n\n          case 10:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n  return _getVisibleSelectors.apply(this, arguments);\n}\n}, {\"3\":3,\"28\":28}];\nwindow.modules[\"article.client\"] = [function(require,module,exports){\"use strict\";\n\nmodule.exports = function (el) {\n  \/\/ For slate-paywall component\n  var articleLoaded = new CustomEvent(\"articleLoaded\", {\n    detail: {\n      isRoadblockVisible: JSON.parse(el.dataset.hasRoadblock),\n      paywallDisabled: JSON.parse(el.dataset.paywallDisabled),\n      rubric: el.dataset.rubric\n    }\n  });\n  document.dispatchEvent(articleLoaded);\n};\n}, {}];\nwindow.modules[\"slate-parsely.client\"] = [function(require,module,exports){\"use strict\";\n\nDS.controller(\"slate-parsely\", [function () {\n  \"use strict\";\n\n  function Constructor(el) {\n    return;\n  }\n\n  Constructor.prototype = {\n    events: {\n      click: \"handler\"\n    },\n    handler: function handler(e) {\n      console.log(e.target);\n    }\n  };\n  return Constructor;\n}]);\n}, {}];\nwindow.modules[\"slate-analytics-js.client\"] = [function(require,module,exports){\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n\/* globals DS: false, Scroll: false, amplitude: false *\/\n\n\/* eslint no-console: [\"error\", { allow: [\"warn\"https:\/\/slate.com\/,\"error\"] }] *\/\nDS.controller(\"slate-analytics-js\", [\"via\"https:\/\/slate.com\/,\"_once\"https:\/\/slate.com\/,\"_throttle\"https:\/\/slate.com\/,\"Cookies\",\n\/*#__PURE__*\/\nfunction () {\n  var _ref = _asyncToGenerator(\n  \/*#__PURE__*\/\n  regeneratorRuntime.mark(function _callee(via, _once, _throttle, Cookies) {\n    \"use strict\";\n\n    var slateAmplitude, slatePermutive, _require, getLoginId, _require2, isAbEnabled, _require3, isValidAbTestString, _require4, getMpvCookie, updateMpvValue, setMpvCookie, loginId, castAsAmplitudeBool, isTaboolaLoaded, isTaboolaEligible, getAffiliateLinks, trackAffiliateLinks, getUserMembershipType, isVisitStart, findComponent, getLayoutBreakpoint, logPageView, setMemberStatusUserProp, setUserLoginId, setScrollUserProp, setABUserProp, trackEndOfArticle, logUserProperties, Constructor;\n\n    return regeneratorRuntime.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            Constructor = function _ref17(el) {\n              \/\/ TODO, this should come from config in env\n              var ANALYTICS_ENVIRONMENTS = [\"local\"https:\/\/slate.com\/,\"dev\"https:\/\/slate.com\/,\"stage\"https:\/\/slate.com\/,\"prod\"],\n                  env = document.documentElement.getAttribute(\"data-env\");\n\n              if (ANALYTICS_ENVIRONMENTS.indexOf(env) !== -1) {\n                window.slateAmplitudeQueue.push(function (instance) {\n                  \/\/ Add some tracking callbacks\n                  trackAffiliateLinks();\n                  trackEndOfArticle();\n                  logPageView(instance, el);\n                  logUserProperties();\n                  via.setPageType(el.dataset.pagetype);\n                });\n              }\n            };\n\n            logUserProperties = function _ref16(instance) {\n              instance = instance || amplitude.getInstance();\n              var userProps = {};\n              setABUserProp(userProps);\n              setMemberStatusUserProp(userProps);\n              setUserLoginId(userProps);\n              setScrollUserProp(userProps); \/\/ see https:\/\/help.amplitude.com\/hc\/en-us\/articles\/115001361248#setting-multiple-user-properties\n\n              instance.setUserProperties(userProps);\n            };\n\n            trackEndOfArticle = function _ref15() {\n              var parahTombstone = document.querySelector(\".slate-paragraph--tombstone\");\n\n              if (!parahTombstone) {\n                return;\n              } \/\/makes sure tracking is only sent once because of throttling\n\n\n              var trackSent = _once(function () {\n                slateAmplitude.track(\"Completed article\");\n                slatePermutive.track(\"ArticleCompletion\");\n                document.removeEventListener(\"scroll\", trackScrolling);\n              });\n\n              var trackScrolling = _throttle(function () {\n                var scrollY = \"scrollY\" in window ? window.scrollY : window.pageYOffset; \/\/ non-standard prop for IE11\n\n                if (parahTombstone.offsetTop + parahTombstone.offsetHeight <= scrollY + window.innerHeight) {\n                  trackSent();\n                }\n              }, 300);\n\n              document.addEventListener(\"scroll\", trackScrolling);\n            };\n\n            setABUserProp = function _ref14(userProps) {\n              var abCookie = Cookies.get(\"AB\"); \/\/ sanitize the cookie\n\n              userProps.abTest = isValidAbTestString(abCookie) ? abCookie : \"0\";\n            };\n\n            setScrollUserProp = function _ref13(userProps) {\n              var isScrollUser = window.Scroll &#038;&#038; Scroll.config.detected;\n\n              if (isScrollUser) {\n                userProps.scrollUser = isScrollUser;\n              }\n            };\n\n            setUserLoginId = function _ref12(userProps) {\n              if (loginId) {\n                userProps.signed_in_uuid = loginId;\n              }\n            };\n\n            setMemberStatusUserProp = function _ref11(userProps) {\n              var membershipType = getUserMembershipType();\n\n              if (membershipType) {\n                userProps.plan = membershipType;\n              }\n            };\n\n            logPageView = function _ref10(instance, el) {\n              var pageviewProperties = slateAmplitude.getDomEventData(el);\n              pageviewProperties.search = window.location.search;\n              pageviewProperties.amplitude_id = instance.options ? instance.options.deviceId : \"no options - no deviceId\";\n              pageviewProperties.viewportWidth = document.documentElement.clientWidth;\n              pageviewProperties.layoutBreakpoint = getLayoutBreakpoint(pageviewProperties.viewportWidth);\n              var membershipType = getUserMembershipType();\n\n              if (membershipType) {\n                pageviewProperties.plan = membershipType;\n              }\n\n              if (loginId) {\n                pageviewProperties.signed_in_uuid = loginId;\n              }\n\n              pageviewProperties.taboola_loaded = castAsAmplitudeBool(isTaboolaLoaded());\n              pageviewProperties.taboola_eligible = castAsAmplitudeBool(isTaboolaEligible());\n\n              if (window.Scroll &#038;&#038; Scroll.config.detected) {\n                pageviewProperties.isScrollUser = true;\n              }\n              \/* In case session api errors out *\/\n\n\n              pageviewProperties.visitstart = castAsAmplitudeBool(isVisitStart());\n\n              try {\n                pageviewProperties.adBlocker = castAsAmplitudeBool(isAbEnabled());\n              } catch (e) {\n                console.error(e);\n              }\n\n              var pageTypesThatIncrement = [\"article\"https:\/\/slate.com\/,\"coverstory\"https:\/\/slate.com\/,\"plus\"];\n              var pageType = el.dataset.pagetype;\n              var isCorrectPageType = pageTypesThatIncrement.includes(pageType);\n              var mpvCookie = getMpvCookie();\n\n              if (isCorrectPageType) {\n                mpvCookie = updateMpvValue(mpvCookie, el.dataset.pageHash);\n                setMpvCookie(mpvCookie);\n              }\n\n              if (!isNaN(mpvCookie.pv)) {\n                pageviewProperties.Nth_pageview = mpvCookie.pv + \"\";\n              } \/\/ add event properties to help measure effectiveness of affiliate and product links\n\n\n              if (getAffiliateLinks().length > 0) {\n                pageviewProperties[\"Affiliate Link\"] = \"\u2705\";\n              }\n\n              var product = findComponent(\"product\");\n\n              if (product) {\n                pageviewProperties[\"Product Component\"] = \"\u2705\";\n              } \/\/ event properties to measure the effectiveness of newsletter signups\n\n\n              var newsletterSignup = findComponent(\"newsletter-signup\");\n              pageviewProperties[\"Includes Newsletter Signup\"] = castAsAmplitudeBool(newsletterSignup);\n\n              if (newsletterSignup) {\n                pageviewProperties[\"Newsletter Signup Placement\"] = \"In Content\"; \/\/ eventually there will be other values for this\n              } \/\/ event properties to measure the effectiveness of slate plus button\n\n\n              var slatePlusButtonComponent = findComponent(\"slate-plus-button\");\n\n              if (slatePlusButtonComponent) {\n                var slatePlusButton = slatePlusButtonComponent.querySelector(\".slate-plus-button__basic\");\n\n                if (slatePlusButton) {\n                  pageviewProperties[\"Slate Plus Button Component\"] = slatePlusButton.innerText;\n                }\n              }\n\n              var roadblock = !membershipType && findComponent(\"slate-roadblock\");\n              pageviewProperties[\"Includes Slate Plus Roadblock\"] = castAsAmplitudeBool(roadblock);\n              var headerPromo = findComponent(\"header-promo\");\n\n              if (headerPromo) {\n                pageviewProperties[\"Includes Header Promo\"] = \"TRUE\";\n              }\n\n              slateAmplitude.page(pageviewProperties); \/\/ after the pageview was logged, trim the \"via\" from the url to prevent users from sharing it\n\n              via.removeFromLocation();\n            };\n\n            getLayoutBreakpoint = function _ref9(viewportWidth) {\n              \/\/ see app\/global\/scss\/settings\/_units.scss#L1\n              var breakpoints = [[\"sm\", 320], [\"md\", 768], [\"lg\", 1024], [\"xl\", 1440]];\n              var i = breakpoints.length;\n\n              while (i--) {\n                if (viewportWidth >= breakpoints[i][1]) return breakpoints[i][0];\n              }\n\n              return breakpoints[0][0];\n            };\n\n            findComponent = function _ref8(name) {\n              var component = document.body.querySelector(\".\" + name);\n\n              if (component) {\n                var uri = component.dataset.uri;\n\n                if (uri && uri.split(\"\/\")[2] === name) {\n                  return component;\n                }\n              }\n            };\n\n            isVisitStart = function _ref7() {\n              try {\n                if (!window.sessionStorage.getItem(\"visitstarted\")) {\n                  window.sessionStorage.setItem(\"visitstarted\"https:\/\/slate.com\/,\"1\");\n                  return true;\n                }\n\n                return false;\n              } catch (e) {\n                console.error(e);\n              }\n            };\n\n            getUserMembershipType = function _ref6() {\n              var membership = require(3),\n                  isMember = membership.isMember();\n\n              if (isMember) {\n                return membership.getMembershipType();\n              }\n            };\n\n            trackAffiliateLinks = function _ref5() {\n              getAffiliateLinks().forEach(function (a) {\n                a.addEventListener(\"click\", function (e) {\n                  slateAmplitude.track(\"Click - Affiliate Link\");\n                });\n              });\n            };\n\n            isTaboolaEligible = function _ref4() {\n              return window._taboola !== undefined;\n            };\n\n            isTaboolaLoaded = function _ref3() {\n              return isTaboolaEligible() && window._taboola.registered !== undefined;\n            };\n\n            castAsAmplitudeBool = function _ref2(boolValue) ;\n\n            slateAmplitude = require(1), slatePermutive = require(40), _require = require(3), getLoginId = _require.getLoginId, _require2 = require(2), isAbEnabled = _require2.isAbEnabled, _require3 = require(48), isValidAbTestString = _require3.isValidAbTestString;\n            _require4 = require(49), getMpvCookie = _require4.getMpvCookie, updateMpvValue = _require4.updateMpvValue, setMpvCookie = _require4.setMpvCookie;\n            _context.next = 20;\n            return getLoginId();\n\n          case 20:\n            loginId = _context.sent;\n            getAffiliateLinks = _once(function () {\n              var affiliateLinks = [];\n              var nodeList = document.body.querySelectorAll( \/\/ not a perfect test of the apex domain, we'll verify just below\n              'a[href*=\"amazon\"]'); \/\/ todo: use `Array.from` to simplify this a bit, when we drop support for IE\n\n              for (var i = 0; i < nodeList.length; i++) {\n                var a = nodeList[i]; \/\/ double-check that \"amazon\" is in the domain, and it's not internal to a product component\n\n                if (new URL(a.href).host.indexOf(\"amazon\") !== -1 &#038;&#038; !a.matches(\".product a\")) {\n                  affiliateLinks.push(a);\n                }\n              }\n\n              return affiliateLinks;\n            });\n            return _context.abrupt(\"return\", Constructor);\n\n          case 23:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n\n  return function (_x, _x2, _x3, _x4) {\n    return _ref.apply(this, arguments);\n  };\n}()]);\n}, {\"1\":1,\"2\":2,\"3\":3,\"40\":40,\"48\":48,\"49\":49}];\nwindow.modules[\"social-share.client\"] = [function(require,module,exports){\"use strict\";\n\nvar socialPopupWindow = require(9);\n\nDS.controller(\"social-share\", [function () {\n  return function (el) {\n    return socialPopupWindow.attachEvents(el);\n  };\n}]);\n}, {\"9\":9}];\nwindow.modules[\"in-article-recirc.client\"] = [function(require,module,exports){\"use strict\";\n\n\/\/ recirc component needs to be before the first graf to align properly when floated,\n\/\/ but we don't want it to appear _above_ the first paragraph in stacked mobile views\nDS.controller(\"in-article-recirc\", [function () {\n  function Constructor(el) {\n    this.el = el; \/\/ if the recirc component is in its initial position, directly above the first graf\n    \/\/ and has not been manually re-located by copy\/production, then spring into action\n\n    var p1 = el.nextElementSibling;\n    var ref = this.getOriginalReferenceNode();\n\n    if (p1 &#038;&#038; p1 === ref) {\n      this.updatePosition(); \/\/ using setTimeout because it seems necessary for mqs in css to propagate?\n\n      var updatePosition = function (e) {\n        setTimeout(function () {\n          this.updatePosition();\n        }.bind(this));\n      }.bind(this); \/\/ mqs here match up with breakpoints defined in settings.scss and mqs defined in layouts.scss\n      \/\/ listening to mq changes because it affects ad visibility\n      \/\/ todo: import variables from scss https:\/\/github.com\/slategroup\/slate-redux\/issues\/2881\n\n\n      [320, 768, 1024, 1440].forEach(function (breakpoint) {\n        window.matchMedia(\"(min-width: \" + breakpoint + \"px)\").addListener(updatePosition);\n      });\n    }\n  }\n\n  Constructor.prototype = {\n    \/\/ when this query finds the element immediately following the recirc,\n    \/\/ we will execute the repositioning logic - it's ok to cautiously add components here\n    \/\/ but be sure to test the layout at all breakpoints\n    getOriginalReferenceNode: function getOriginalReferenceNode() {\n      return this.el.parentNode.querySelector(\".slate-paragraph, .partner-branding\");\n    },\n    \/\/ given a parent node, find the first suitable child element\n    \/\/ to insert the recirc element before (on mobile devices)\n    getOverrideReferenceNode: function getOverrideReferenceNode() {\n      \/\/ re-insert after the second paragraph or visible ad\n      var refCount = 0;\n      var numSibs = this.el.parentNode.children.length;\n      var ref = this.el.parentNode.firstElementChild;\n\n      for (var i = 0; i < numSibs; i++) {\n        var refStyles = window.getComputedStyle(ref);\n        if (ref.matches(\"p.slate-paragraph, div.ad\") &#038;&#038; refStyles.display !== \"none\") refCount++; \/\/ note that this will be `null` if the second passing element is the last child\n\n        ref = ref.nextElementSibling;\n        if (refCount === 2) break;\n      }\n\n      return ref;\n    },\n    updatePosition: function updatePosition() {\n      \/\/ n.b. the max-width here is coupled with mqs in styles.scss\n      var isMobile = !window.matchMedia(\"(min-width: 1024px)\").matches;\n      var el = this.el;\n      var parent = el.parentNode;\n\n      if (!isMobile) {\n        \/\/ on desktop, move to original position near the top of the content\n        var _referenceNode = this.getOriginalReferenceNode();\n\n        parent.insertBefore(el, _referenceNode);\n        el.hidden = false;\n        return;\n      }\n\n      var referenceNode = this.getOverrideReferenceNode();\n\n      if (referenceNode) {\n        \/\/ move it to the appropriate position and display it\n        parent.insertBefore(el, referenceNode);\n        el.hidden = false;\n      } else {\n        \/\/ if a suitable reference node couldn't be determined, hide recirc on mobile;\n        \/\/ our taboola contract specifies max space b\/w the end of the article\n        \/\/ and the beginning of the chumbox, and recirc isn't really article content,\n        \/\/ so we should try to ensure that recirc is not the last thing on the page.\n        el.hidden = isMobile;\n      }\n    }\n  };\n  return Constructor;\n}]);\n}, {}];\nwindow.modules[\"permutive.client\"] = [function(require,module,exports){\"use strict\";\n\n\/* global permutive: false *\/\nmodule.exports = function (el) {\n  var consentTokenName = \"slate-token\";\n  window.nonIabVendorApi.registerVendor(\"permutive\", {\n    categories: [\"C0002\"https:\/\/slate.com\/,\"C0003\"https:\/\/slate.com\/,\"C0004\"],\n    initFunc: function initFunc(consent) {\n      if (!consent) return false;\n\n      function getCookie(a) [^;]+)s*\" + a + \"s*=s*([^;]+)\");\n        return b ? b.pop() : \"\";\n      \n\n      function getSearchParam(paramName) {\n        try {\n          var search = new URL(document.location).searchParams;\n          return search.get(paramName);\n        } catch (e) {\n          console.error(\"could not get \" + paramName + \" url param\", e);\n        }\n      }\n\n      function addUserPermutiveParam(key, value) {\n        if (!window.slatePermutiveData.page.user) {\n          window.slatePermutiveData[\"page\"][\"user\"] = {};\n        }\n\n        window.slatePermutiveData[\"page\"][\"user\"][key] = value;\n      }\n\n      try {\n        var search = new URL(document.location).searchParams;\n\n        if (search.get(\"utm_source\")) {\n          window.slatePermutiveData[\"page\"][\"utmSource\"] = search.get(\"utm_source\");\n        }\n\n        if (search.get(\"utm_medium\")) {\n          window.slatePermutiveData[\"page\"][\"utmMedium\"] = search.get(\"utm_medium\");\n        }\n\n        if (search.get(\"utm_campaign\")) {\n          window.slatePermutiveData[\"page\"][\"utmCampaign\"] = search.get(\"utm_campaign\");\n        }\n      } catch (e) {\n        console.error(e);\n      }\n\n      if (el.dataset.isSplusUser) {\n        try {\n          addUserPermutiveParam(\"slatePlus\", true);\n        } catch (e) {\n          console.error(e);\n        }\n      } \/\/ {{!-- \/\/ identify calls we can do immediately  --}}\n\n\n      var identities = []; \/\/ add an identity to the list and also tack it onto the pageview event\n\n      function addUserIdentity(tag, id) {\n        if (id) {\n          identities.push({\n            tag: tag,\n            id: id\n          });\n          addUserPermutiveParam(tag, id);\n        }\n      }\n\n      addUserIdentity(\"slateId\", getCookie(\"wapo_login_id\"));\n      addUserIdentity(\"publisherUserId\", getCookie(\"slate-uuid-js\"));\n      addUserIdentity(\"sailthruId\", getSearchParam(\"sid\"));\n\n      if (identities.length > 0) {\n        window.permutive.identify(identities);\n      }\n\n      permutive.consent({\n        opt_in: consent,\n        token: consentTokenName\n      });\n      permutive.addon(\"web\", window.slatePermutiveData);\n      var elem = document.createElement(\"script\");\n      elem.src = \"https:\/\/cdn.permutive.com\/\" + el.dataset.permutiveProjectId + \"-web.js\";\n      elem.defer = true;\n      var scpt = document.getElementsByTagName(\"script\")[0];\n      scpt.parentNode.insertBefore(elem, scpt);\n      return true;\n    },\n    updateConsentFunc: function updateConsentFunc(consent) {\n      if (permutive) {\n        try {\n          var currentConsent = JSON.parse(localStorage[\"permutive-consent\"]).opt_in;\n\n          if (currentConsent != consent) {\n            permutive.consent({\n              opt_in: consent,\n              token: consentTokenName\n            });\n          }\n        } catch (e) {\n          permutive.consent({\n            opt_in: consent,\n            token: consentTokenName\n          });\n        }\n      }\n    }\n  });\n  permutive.ready(function () {\n    \/\/ Amplitude is loaded later, so we have to queue our identify call\n    window.slateAmplitudeQueue.push(function () {\n      var permutiveIdentities = [];\n\n      if (permutive.context) {\n        permutiveIdentities.push({\n          tag: \"puid\",\n          id: permutive.context.user_id\n        });\n      }\n\n      try {\n        var amplitudeId = window.amplitude.getInstance().options.deviceId;\n\n        if (amplitudeId) {\n          permutiveIdentities.push({\n            tag: \"amplitudeId\",\n            id: amplitudeId\n          });\n        }\n      } catch (e) {\n        console.error(\"Error setting amplitudeId\", e);\n      }\n\n      if (permutiveIdentities.length > 0) {\n        permutive.identify(permutiveIdentities);\n      }\n    });\n  });\n};\n}, {}];\nwindow.modules[\"piano.client\"] = [function(require,module,exports){\"use strict\";\n\nvar slateAmplitude = require(1);\n\nvar _require = require(42),\n    getMorgioniProps = _require.getMorgioniProps,\n    setMorgioniProps = _require.setMorgioniProps;\n\nvar cookies = require(43); \/\/ tp implicit global variable initialization -\n\/\/ this differs from their docs, our scripts do not run in the global context,\n\/\/ and the global tp object gets replaced on init so the variable reference becomes wrong\n\n\nif (!window.tp) window.tp = [];\nvar tp = window.tp; \/\/ this bit could turn out to be useful if we need to do anything with the hydrated tp object\n\/\/ tp.push([\"init\", () => void (tp = window.tp)]); \/\/ re-assign local variable after init\n\/\/ todo: is it ok to run this after tp init?\n\ntry {\n  var articleData = slateAmplitude.getDomEventData(); \/\/ The content published date\n\n  tp.push([\"setContentCreated\", articleData.pub_date]); \/\/ The content author -only one is allowed according to their docs..\n\n  tp.push([\"setContentAuthor\", articleData.authors.join(\",\")]); \/\/ The content section - or should we use the rubric?\n\n  tp.push([\"setContentSection\", articleData.section]); \/\/ Add custom variables as any key-value pair. The first parameter is the key; second is the value\n\n  tp.push([\"setCustomVariable\"https:\/\/slate.com\/,\"contentRubric\", articleData.rubric]); \/\/ The content tags\n\n  tp.push([\"setTags\", articleData.tags]);\n} catch (e) {\n  console.error(e);\n} \/\/ If the content is native advertising\n\/\/ tp.push([\"setContentIsNative\", false]);\n\/\/ The custom params\n\/\/ todo: what is this and how does it differ from a custom variable\n\/\/ tp.push([\"setCustomParam\"https:\/\/slate.com\/,\"type\"https:\/\/slate.com\/,\"premium\"https:\/\/slate.com\/,\"content\"]);\n\/\/ The AAM Zone\n\/\/ tp.push([\"setZone\"https:\/\/slate.com\/,\"Web\"]);\n\n\ntp.push([\"setUsePianoIdUserProvider\", true]);\ntp.push([\"init\", function () {\n  var tp = window.tp; \/\/ fuuuuuuck\n  \/\/ I hate this\n\n  tp.amplitude = slateAmplitude;\n  tp.morgioni = {\n    getMorgioniProps: getMorgioniProps,\n    setMorgioniProps: setMorgioniProps\n  }; \/\/ Called by Piano Composer\n\n  tp.fireAmplitude = function (event) {\n    tp.morgioni.setMorgioniProps();\n    var eventProps = tp.morgioni.getMorgioniProps();\n    slateAmplitude.track(event, eventProps);\n  };\n\n  tp.pianoId.init({\n    loginSuccess: function loginSuccess() {\n      if (!cookies.get(\"sp_secure_id\")) {\n        var myslateUrl = document.documentElement.dataset.myslateurl; \/\/ set sp_secure_id cookie and splus cookie for members\n\n        fetch(\"\".concat(myslateUrl, \"\/membership\/verify\/\"), {\n          credentials: \"include\"\n        }); \/\/ see slate-comments\/client.js for lf_secure_login_id\n      }\n    },\n    loggedOut: function loggedOut() {\n      \/\/ these cookies are set by myslate and we don't know what domain the cookie is on\n      [\".local.dev.slate.com\"https:\/\/slate.com\/,\".dev.slate.com\"https:\/\/slate.com\/,\".stage.slate.com\"https:\/\/slate.com\/,\".slate.com\"].forEach(function (d) {\n        [\"splus\"https:\/\/slate.com\/,\"sp_secure_id\"https:\/\/slate.com\/,\"lf_secure_login_id\"].forEach(function (c) {\n          cookies.remove(c, {\n            domain: d\n          });\n        });\n      });\n\n      try {\n        for (var i = 0; i < localStorage.length; i++) {\n          if (localStorage.key(i).indexOf(\"fyre\") > -1) {\n            localStorage.removeItem(localStorage.key(i));\n          }\n        }\n      } catch (e) {\/\/ do nothing, if an exception is thrown accessing cookies or storage,\n        \/\/ then we probably never had anything stored in the first place\n      }\n    }\n  });\n}]);\n}, {\"1\":1,\"42\":42,\"43\":43}];\nwindow.modules[\"adblock-message.client\"] = [function(require,module,exports){\"use strict\";\n\nvar membership = require(3),\n    isMember = membership.isMember(),\n    isAbEnabled = require(2).isAbEnabled,\n    slateAmplitude = require(1);\n\nDS.controller(\"adblock-message\", [function () {\n  var Constructor;\n  \/**\n   * @param {Element} el\n   * @constructor\n   * @property {Element} el\n   *\/\n\n  Constructor = function Constructor(el) {\n    this.el = el;\n    this.message = el.querySelector(\".adblock-message__content\"); \/\/ it's not in the spec but in practice browsers may raise exceptions for \"getItem\"\n\n    try  catch (e) {\n      return; \/\/ we can't access storage to keep track of pageviews, bail out\n    }\n\n    function setPageViewCookie(count) {\n      try {\n        localStorage.pageview = count;\n      } catch (e) {\/\/ swallow the error, users may disable storage access after the component is constructed\n      }\n    }\n\n    function isActivePageView() {\n      return (pageView - 2) % 3 === 0;\n    }\n    \/**\n     * Set and increment pageview cookie on page load\n     *\/\n\n\n    window.addEventListener(\"load\", function () {\n      pageView++;\n      setPageViewCookie(pageView);\n    });\n    \/**\n     * Check conditions for displaying the adblock message\n     *\/\n\n    var _this = this;\n\n    window.setTimeout(function () {\n      var adblockEnabled = isAbEnabled(),\n          activeView = isActivePageView();\n\n      if (!isMember && adblockEnabled && activeView) {\n        _this.showMessage();\n      }\n    }, 1000);\n    \/**\n     * Close the ad message if user clicks outside of the message container\n     *\/\n\n    document.body.addEventListener(\"click\", function (e) {\n      if (_this.messageIsVisible()) {\n        if (!_this.message.contains(e.target)) {\n          _this.hideMessage();\n        }\n      }\n    });\n    document.addEventListener(\"keyup\", function (e) {\n      if (_this.messageIsVisible() && (e.key === \"Escape\" || e.key === \"Esc\")) {\n        _this.hideMessage();\n      }\n    });\n  };\n\n  Constructor.prototype = {\n    events: {\n      \".js-message-close click\": \"hideMessage\",\n      \".js-message-button click\": \"buttonAnalytics\"\n    },\n    messageIsVisible: function messageIsVisible() {\n      return document.body.classList.contains(\"adblock-enabled\");\n    },\n    showMessage: function showMessage() {\n      document.body.classList.add(\"adblock-enabled\");\n      slateAmplitude.track(\"Adblocker - View Overlay\");\n    },\n    hideMessage: function hideMessage(e) {\n      document.body.classList.remove(\"adblock-enabled\");\n    },\n    buttonAnalytics: function buttonAnalytics(e) {\n      var button = e.target,\n          buttonEvent = button.text;\n      slateAmplitude.track(\"Adblocker - Click \" + buttonEvent);\n    }\n  };\n  return Constructor;\n}]);\n}, {\"1\":1,\"2\":2,\"3\":3}];\nwindow.modules[\"webapp-serviceworker.client\"] = [function(require,module,exports){\"use strict\";\n\n(function () {\n  \"use strict\";\n\n  if (!navigator.serviceWorker) {\n    return;\n  } \/\/ Temp patch on issue that affected ads. This is not permanent business logic.\n  \/\/ https:\/\/github.com\/slategroup\/slate-redux\/issues\/3212\n\n\n  if (navigator.vendor === \"Apple Computer, Inc.\") {\n    navigator.serviceWorker.getRegistrations().then(function (registrations) {\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = registrations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var reg = _step.value;\n          var valid = reg && reg.active && reg.active.scriptURL;\n\n          if (valid && reg.active.scriptURL.indexOf(\"sw.js\") > -1) {\n            console.log(\"removing serviceworker\");\n            reg.unregister();\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n    });\n    return;\n  }\n\n  var slateAmplitude = require(1);\n\n  window.addEventListener(\"load\", function () {\n    navigator.serviceWorker.register(\"\/sw.js\").then(function (registration) {\/\/ Registration was successful\n    }, function (err) {\n      \/\/ registration failed :(\n      console.error(\"ServiceWorker registration failed: \", err);\n    });\n  }); \/\/ via https:\/\/developers.google.com\/web\/fundamentals\/app-install-banners\/\n\n  window.addEventListener(\"beforeinstallprompt\", function (e) {\n    e.userChoice.then(function (choiceResult) {\n      if (choiceResult.outcome === \"dismissed\") {\n        slateAmplitude.track(\"PWA - dismissed install prompt\");\n      } else {\n        slateAmplitude.track(\"PWA - Added to Home Screen\");\n      }\n    });\n  });\n})();\n}, {\"1\":1}];\nwindow.modules[\"amazon-oneclick.client\"] = [function(require,module,exports){\"use strict\";\n\nmodule.exports = function (el) {\n  window.nonIabVendorApi.registerVendor(\"amazon-oneclick\", {\n    categories: [\"C0004\"],\n    initFunc: function initFunc(consent) {\n      if (!consent) return;\n      var elem = document.createElement(\"script\");\n      elem.src = \"https:\/\/z-na.amazon-adsystem.com\/widgets\/onejs?MarketPlace=US&adInstanceId=797217ac-ca6e-482f-8925-4c302e9c855c\";\n      elem.defer = true;\n      elem.type = \"text\/javascript\";\n      var scpt = document.getElementsByTagName(\"script\")[0];\n      scpt.parentNode.insertBefore(elem, scpt);\n    },\n    updateConsentFunc: function updateConsentFunc(consent) {\n      if (!consent) {\/\/ not much we can do here. the script already ran.\n      }\n    }\n  });\n};\n}, {}];\nwindow.modules[\"aaa-module-mounting.legacy\"] = [function(require,module,exports){'use strict'; \/\/ blame somebody else for this shit: https:\/\/github.com\/nymag\/sites\/blame\/master\/global\/js\/aaa-module-mounting.js\n\/\/ Note: this mounts before all client.js files, so legacy client controllers may call DS.controller()\n\/\/ it also mounts before other legacy services (because of the filename) so they can call DS.service()\n\nvar eventify = require(64),\n    _pickBy = require(68),\n    _each = require(67),\n    DS = require(63);\n\nvar _once = require(66);\n\nvar _throttle = require(65);\n\nvar Cookies = require(43);\n\nfunction registerGlobals() {\n  window.DS = DS;\n  window.Eventify = eventify; \/\/ allow these libs to be imported into Dollar Slice components\n\n  DS.value('Eventify', eventify);\n  DS.value('_once', _once);\n  DS.value('_throttle', _throttle);\n  DS.value('Cookies', Cookies);\n  DS.value('$document', window.document);\n  DS.value('$window', window);\n}\n\/**\n * Mount all Dollar Slice components.\n *\/\n\n\nfunction mountDollarSliceComponents() {\n  \/\/ search page for components, and instantiate their controllers\n  DS.service('components', ['$document\"https:\/\/slate.com\/,\"$module', function ($document, $module) {\n    var controllers = _pickBy($module.definitions, function (definition) {\n      return definition.providerStrategy === $module.providers.controller;\n    }),\n        list = Object.keys(controllers); \/\/ for each component on the page, loop through the instances and kickoff the controller\n\n\n    _each(list, function (name) {\n      var components = $document.querySelectorAll('[data-uri*=\"\/_components\/' + name + '\/\"]'),\n          \/\/ matches data-uri=\"<site prefix>\/_components\/<name>\/instances\/<id>\"\n      defaultComponents = $document.querySelectorAll('[data-uri$=\"\/_components\/' + name + '\"]'); \/\/ matches data-uri=\"<site prefix>\/_components\/<name>\"\n\n      _each(components, initController(name));\n\n      _each(defaultComponents, initController(name));\n    }); \/\/ expose list of components on the page\n\n\n    this.components = list;\n\n    function initController(name) {\n      return function (component) {\n        try {\n          $module.get(name, component);\n        } catch (error) {\n          logMountError(component, error);\n        }\n      };\n    }\n  }]); \/\/ other components might want to interact with our service, but we'll start it here.\n\n  DS.get('components');\n}\n\/**\n * Log an error mounting the client script for the specified element.\n * @param  {HtmlElement} el\n * @param  {Error} error\n *\/\n\n\nfunction logMountError(el, error) {\n  \/\/ element tag will be the full contents of the component's tag such as:\n  \/\/ \n\n<div data-uri=\"nymag.com\/selectall\/_components\/ad-recirc\/instances\/article@published\" class=\"ad-recirc\" data-placeholder=\"title\" data-delay=\"3.5\" data-disable-recirc=\"\">\n  var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));\n  console.error('Error attaching controller to ' + elementTag, error);\n} \/\/ globals (like DS) must be registered before other files call DS.service() or DS.component()\n\n\nregisterGlobals(); \/\/ wait until everything else has been mounted before instantiating legacy DS controllers\n\ndocument.addEventListener('DOMContentLoaded', function () {\n  mountDollarSliceComponents();\n});\n}, {\"43\":43,\"63\":63,\"64\":64,\"65\":65,\"66\":66,\"67\":67,\"68\":68}];\nwindow.modules[\"ads.legacy\"] = [function(require,module,exports){\"use strict\";\n\nDS.service(\"adService\", [\"$window\"https:\/\/slate.com\/,\"headerBidding\"https:\/\/slate.com\/,\"$visibility\", function ($window, headerBidding, $visibility) {\n  $window.googletag = $window.googletag || {}, $window.googletag.cmd = $window.googletag.cmd || [];\n  $window.pbjs = $window.pbjs || {};\n  $window.pbjs.que = $window.pbjs.que || [];\n  var adIndex = {},\n      adSlotsWithRefresh = [],\n      testParam = getTestParam(),\n      pageId = getPageId(),\n      slotData = [];\n  \/**\n   * Checks if url query parameters contain 'test_ads' and returns it's value\n   * @return {string}\n   *\/\n\n  function getTestParam() {\n    var TEST_ADS_REGEX = \/[?&]test_ads=([^&#?]+)\/;\n    var results = TEST_ADS_REGEX.exec($window.location.search);\n    return results ? results[1] : \"\";\n  }\n  \/*\n   * Config GPT scripts\n   *\/\n\n\n  $window.googletag.cmd.push(function () {\n    var pageType = document.querySelector(\".js-analytics-js-data\").getAttribute(\"data-pagetype\").replace(\" \"https:\/\/slate.com\/,\"-\");\n    $window.googletag.pubads().disableInitialLoad();\n    $window.googletag.enableServices();\n    var cacheBustValue = Math.floor(Math.random() * 10000000000000),\n        cacheBustMeta = document.querySelectorAll('meta[name=\"dfp-cache-buster\"]')[0];\n\n    if (cacheBustMeta && cacheBustMeta.content) {\n      cacheBustValue = cacheBustMeta.content;\n    }\n\n    $window.googletag.pubads().setTargeting(\"dfp_cache_buster\", cacheBustValue).setTargeting(\"page_id\", pageId).setTargeting(\"page_type\", pageType);\n    var usprivacyRegex = \/usprivacy=d+[YN]Y\/;\n\n    if (document.cookie.match(usprivacyRegex)) {\n      $window.googletag.pubads().setRequestNonPersonalizedAds(1);\n    }\n\n    if (testParam) {\n      googletag.pubads().setTargeting(\"kw\"https:\/\/slate.com\/,\"test_\" + testParam);\n    } \/\/ AB value\n\n\n    var ABCookie = document.cookie.match(\/AB=(d+_d+)\/);\n\n    if (ABCookie && ABCookie.length > 1) {\n      googletag.pubads().setTargeting(\"ab_var\", ABCookie[1]);\n    }\n\n    enableAdRefresh();\n  });\n  \/*\n   * Request ad from the DFP\n   *\/\n\n  this.requestAd = function (ad_data) {\n    ad_data.defineSlot();\n    googletag.pubads().refresh([ad_data.gptSlot], {\n      changeCorrelator: false\n    });\n  };\n  \/**\n   * Add refresh to some ad slots\n   *\/\n\n\n  function enableAdRefresh() {\n    googletag.pubads().addEventListener(\"slotRenderEnded\", function (event) {\n      var slot = event.slot;\n      var slotId = slot.getSlotElementId();\n      var slotElement = $window.document.getElementById(slotId);\n\n      if (Array.isArray(event.size) && event.size[0] && event.size[1]) {\n        var size = event.size[0] + \"x\" + event.size[1];\n\n        if (refreshEnabled(size) && !adSlotsWithRefresh[slotId]) {\n          updateSlotTargeting(slot);\n          addRefreshToSlot(slot, slotData[slotId], slotElement);\n          adSlotsWithRefresh[slotId] = true;\n        }\n      }\n    });\n  }\n  \/**\n   * Every 20 sec check if slot is in view\n   * If it is, request new ad from the DFP\n   *\/\n\n\n  function addRefreshToSlot(slot, ad_data, slotElement) {\n    var refreshInterval = 30000;\n    setInterval(function () {\n      if (adIsInView(slotElement)) {\n        headerBidding.prebid(ad_data, slot);\n      }\n    }, refreshInterval);\n  }\n  \/**\n   * Removes prebid targeting\n   * Adds targetig for the specific height\n   *\/\n\n\n  function updateSlotTargeting(slot) {\n    slot.clearTargeting(\"hb_adid\");\n    slot.clearTargeting(\"hb_bidder\");\n    slot.clearTargeting(\"hb_pb\");\n    slot.clearTargeting(\"hb_size\");\n    slot.setTargeting(\"refresh\"https:\/\/slate.com\/,\"yes\");\n  }\n  \/**\n   * Checks ad's size to make sure it's enabled to refresh\n   *\/\n\n\n  function refreshEnabled(size) {\n    \/\/ Nonstandard ad sizes, not allowed to refresh\n    var teadsSize = \"2x2\",\n        nativeSize = \"1x2\",\n        customSize = \"1x3\",\n        podcastTextAdSize = \"1x4\";\n    return size !== teadsSize && size !== nativeSize && size !== customSize && size !== podcastTextAdSize;\n  }\n  \/**\n   * Checks if ad slot is in view and window is focused\n   *\/\n\n\n  function adIsInView(slotElement) {\n    var windowHasFocus = $window.document.hasFocus();\n\n    if (!windowHasFocus) {\n      return false;\n    } else {\n      return $visibility.isElementInViewport(slotElement);\n    }\n  }\n  \/*\n   * Create ad object\n   *\/\n\n\n  this.createAd = function (el) {\n    var type = el.getAttribute(\"data-type\"),\n        prebid = el.getAttribute(\"data-prebid\"),\n        dataDfpSizes = el.getAttribute(\"data-sizes\"),\n        dataPrebidSizes = el.getAttribute(\"data-prebid-sizes\"),\n        rubiconZoneId = el.getAttribute(\"data-zone-id\"),\n        appnexusPlacementId = el.getAttribute(\"data-placement-id\"),\n        trustxId = el.getAttribute(\"data-trustx-id\"),\n        criteoZoneId = el.getAttribute(\"data-criteo-id\"),\n        indexSiteId = el.getAttribute(\"data-site-id\"),\n        tripleliftCode = el.getAttribute(\"data-tl-code\");\n\n    if (!adIndex[type]) {\n      adIndex[type] = 1;\n    }\n\n    el.id = type + \"-\" + adIndex[type];\n    adIndex[type]++;\n    var ad = {\n      id: el.id,\n      type: type,\n      adUnit: getAdUnit(),\n      prebid: getBoolean(prebid),\n      dfpSizes: getSizeArray(dataDfpSizes),\n      prebidSizes: getSizeArray(dataPrebidSizes),\n      rubiconZoneId: rubiconZoneId,\n      appnexusPlacementId: appnexusPlacementId,\n      trustxId: trustxId,\n      criteoZoneId: criteoZoneId,\n      indexSiteId: indexSiteId,\n      tripleliftCode: tripleliftCode,\n      gptSlot: null,\n      defineSlot: function defineSlot() {\n        this.gptSlot = $window.googletag.defineSlot(this.adUnit, this.dfpSizes, this.id);\n        slotData[this.id] = this;\n        this.gptSlot.addService(googletag.pubads()); \/\/ slot level targeting\n\n        this.gptSlot.setTargeting(\"site\"https:\/\/slate.com\/,\"redux\");\n        this.gptSlot.setTargeting(\"refresh\"https:\/\/slate.com\/,\"no\");\n        this.gptSlot.setTargeting(\"pos\", this.id);\n        $window.googletag.display(this.id);\n      }\n    };\n    return ad;\n  };\n  \/**\n   * Converts \"true\" \/ \"false\" strings to boolean\n   * @param {string} value\n   * @returns {boolean}\n   *\/\n\n\n  function getBoolean(value) {\n    return value === \"true\" ? true : false;\n  }\n  \/**\n   * Returns sizes as an array\n   * @param {string} sizes\n   * @returns {array}\n   *\/\n\n\n  function getSizeArray(sizes) {\n    var sizesArray = [];\n\n    if (sizes && sizes.length) {\n      sizes = sizes.split(\",\");\n      sizes.map(function (size) {\n        size = size.split(\"x\");\n        var w = parseInt(size[0]);\n        var h = parseInt(size[1]);\n        sizesArray.push([w, h]);\n      });\n    }\n\n    return sizesArray;\n  }\n  \/**\n   * Returns ad node\n   * @returns {string}\n   *\/\n\n\n  function getAdNode() {\n    var adNodeElement = document.querySelector(\"div[data-adnode]\"),\n        adNode = \"\";\n\n    if (adNodeElement) {\n      adNode = adNodeElement.getAttribute(\"data-adnode\");\n    }\n\n    return adNode;\n  }\n  \/**\n   * Returns DFP ad unit\n   * @returns {string}\n   *\/\n\n\n  function getAdUnit() {\n    var networkCode = \"91898098\",\n        platform = \"slate.com\",\n        adNode = getAdNode();\n    return networkCode + \"\/\" + platform + \"\/\" + adNode;\n  }\n  \/**\n   * Returns page id\n   * @returns {string}\n   *\/\n\n\n  function getPageId() {\n    var html = window.document.documentElement,\n        dataUri = html.getAttribute(\"data-uri\"),\n        pageId = dataUri.split(\"\/\")[2].replace(\"@published\"https:\/\/slate.com\/,\"\");\n    return pageId;\n  }\n}]);\n}, {}];\nwindow.modules[\"headerbidding.legacy\"] = [function(require,module,exports){\"use strict\";\n\nDS.service(\"headerBidding\", function () {\n  var adData,\n      permutiveData = getPermutiveData(),\n      isMember = require(3).isMember(),\n      HARD_TIMEOUT = 1500; \/\/ max amount of time ad calls are delayed for headerbidding\n\n\n  this.prebid = function (data) {\n    adData = data;\n    adData.biddersManager = {\n      adserverRequestSent: false,\n      prebid: false,\n      amazon: false\n    };\n    this.requestBidsFromExchanges(); \/\/ header bidding has a fixed amount of time to finish\n    \/\/ after that we call ad server\n\n    setTimeout(function () {\n      googletag.cmd.push(function () {\n        defineGptSlot(adData);\n        callAdServer(adData);\n      });\n    }, HARD_TIMEOUT);\n  }; \/\/ Request bids from the exchanges\n\n\n  this.requestBidsFromExchanges = function () {\n    this.getBidsFromPrebidExchanges();\n    this.getBidsFromAmazon();\n  }; \/\/ get bids from all prebid partners\n\n\n  this.getBidsFromPrebidExchanges = function () {\n    var prebidAdUnit = this.createPrebidAdUnit();\n    pbjs.que.push(function () {\n      pbjs.addAdUnits([prebidAdUnit]); \/\/ cache a reference to the ad data at this time,\n      \/\/ before we re-assign those variable names when we run auctions for other ad units\n\n      var data = adData;\n      pbjs.requestBids({\n        adUnitCodes: [adData.id],\n        bidsBackHandler: function bidsBackHandler() {\n          googletag.cmd.push(function () {\n            pbjs.que.push(function () {\n              \/\/ gpt slot must be defined before bids are set\n              defineGptSlot(data);\n              pbjs.setTargetingForGPTAsync([data.id]); \/\/ add winning bid to the ad slot\n\n              pbjs.removeAdUnit(data.id); \/\/ remove ad unit from prebid\n\n              data.biddersManager.prebid = true; \/\/ mark prebid as done\n\n              bidderFinished(data);\n            });\n          });\n        }\n      });\n    });\n  }; \/\/ get bids from amazon\n\n\n  this.getBidsFromAmazon = function () {\n    var apsAdUnit = this.createApsAdUnit(),\n        prebidTimeout = pbjs.getConfig(\"bidderTimeout\"),\n        timeout = prebidTimeout ? prebidTimeout : 800,\n        \/\/ cache a reference to the ad data at this time,\n    \/\/ before we re-assign those variable names when we run auctions for other ad units\n    data = adData;\n\n    if (apstag) {\n      apstag.fetchBids({\n        slots: [apsAdUnit],\n        timeout: timeout\n      }, function (bids) {\n        googletag.cmd.push(function () {\n          \/\/ gpt slot must be defined before bids are set\n          defineGptSlot(data);\n          apstag.setDisplayBids();\n          data.biddersManager.amazon = true; \/\/ mark amazon as done\n\n          bidderFinished(data);\n        });\n      });\n    }\n  }; \/\/ check if both prebid and amazon are done\n  \/\/ and if the ad server request hasn't been sent yet\n\n\n  function bidderFinished(data) {\n    if (data.biddersManager.amazon && data.biddersManager.prebid) {\n      callAdServer(data);\n    }\n  } \/\/ call ad server\n\n\n  function callAdServer(data) {\n    if (data.biddersManager.adserverRequestSent) {\n      return;\n    }\n\n    data.biddersManager.adserverRequestSent = true;\n    googletag.cmd.push(function () {\n      googletag.pubads().refresh([data.gptSlot], {\n        changeCorrelator: false\n      }); \/\/ send request to the dfp\n    });\n  } \/\/ gpt slot is defined here, after header bidding, because we don't\n  \/\/ want to delay header bidding until gpt is ready\n  \/\/ this function will be called from amazon callback, prebid callback and after timeout\n  \/\/ slot will be defined just once\n\n\n  function defineGptSlot(data) {\n    \/\/ check if gpt slot has been already defined\n    if (!data.gptSlot) {\n      data.defineSlot();\n    }\n  } \/\/ Returns prebid ad unit\n\n\n  this.createPrebidAdUnit = function () {\n    var outstreamMediaType = {\n      context: \"outstream\",\n      playerSize: [444, 250]\n    };\n    var bannerMediaType = {\n      sizes: adData.prebidSizes\n    };\n    var adUnit = {\n      code: adData.id,\n      mediaTypes: {\n        banner: bannerMediaType\n      },\n      bids: this.getBidders()\n    }; \/\/ add outstream configs if outstream is enabled for this slot\n\n    if (this.outstreamEnabled(adData.type)) {\n      adUnit.mediaTypes.video = outstreamMediaType;\n    }\n\n    return adUnit;\n  }; \/\/ returns an array of bidders to call\n  \/\/ bidders are added in the order they will be called by prebid\n\n\n  this.getBidders = function () {\n    var isMobile = window.innerWidth < 768,\n        isMobileLeaderboard = adData.type === \"leaderboard-mobile\",\n        bidders = [];\n\n    if (this.outstreamEnabled(adData.type)) {\n      bidders.push(this.teads());\n    }\n\n    bidders.push(this.appnexus());\n    bidders.push(this.triplelift()); \/\/ kargo is a mobile only partner\n\n    if (isMobile) {\n      if (!isMobileLeaderboard) {\n        \/\/ if this isn't mobile leaderboard kargo can be added\n        bidders.push(this.kargo());\n      } else if (!isMember) {\n        \/\/ kargo uses mobile leaderboard to server sticky ads\n        \/\/ we don't want to show sticky ads to slate plus users\n        \/\/ therefore if this is mobile leaderboard, include kargo\n        \/\/ only if this isn't slate plus user\n        bidders.push(this.kargo());\n      }\n    }\n\n    bidders.push(this.rubicon()); \/\/ do not include index in prebid for EU users\n\n    if (!this.isEuUser()) {\n      \/\/ index exchange needs one bid per size\n      for (var i = 0; i < adData.prebidSizes.length; i++) {\n        var size = adData.prebidSizes[i];\n        var indexBidForSize = this.index(size);\n        bidders.push(indexBidForSize);\n      }\n    }\n\n    bidders.push(this.trustx());\n    bidders.push(this.criteo());\n    return bidders;\n  }; \/\/ Returns ad unit for amazon publisher service\n\n\n  this.createApsAdUnit = function () {\n    return {\n      slotID: adData.id,\n      slotName: adData.adUnit,\n      sizes: adData.prebidSizes\n    };\n  }; \/\/ Returns data for appnexus bid request\n\n\n  this.appnexus = function () {\n    return {\n      bidder: \"appnexusAst\",\n      params: {\n        placementId: adData.appnexusPlacementId,\n        keywords: {\n          permutive: permutiveData\n        }\n      }\n    };\n  }; \/\/ Returns data for rubicon bid request\n\n\n  this.rubicon = function () {\n    return {\n      bidder: \"rubicon\",\n      params: {\n        accountId: \"13590\",\n        siteId: \"60302\",\n        zoneId: adData.rubiconZoneId\n      }\n    };\n  }; \/\/ Returns data for trustx bid request\n\n\n  this.trustx = function () {\n    return {\n      bidder: \"trustx\",\n      params: {\n        uid: adData.trustxId\n      }\n    };\n  };\n\n  this.criteo = function () {\n    return {\n      bidder: \"criteo\",\n      params: {\n        zoneId: adData.criteoZoneId\n      }\n    };\n  }; \/\/ Returns data for index bid request\n\n\n  this.index = function (size) {\n    return {\n      bidder: \"ix\",\n      params: {\n        siteId: adData.indexSiteId,\n        size: size\n      }\n    };\n  };\n\n  this.kargo = function () {\n    var placementId = adData.type === \"leaderboard-mobile\" ? \"_mBJrAZ6WvF\" : \"_uG77kNNswo\";\n    return {\n      bidder: \"kargo\",\n      params: {\n        placementId: placementId\n      }\n    };\n  };\n\n  this.triplelift = function () {\n    return {\n      bidder: \"triplelift\",\n      params: {\n        inventoryCode: adData.tripleliftCode\n      }\n    };\n  };\n\n  this.teads = function () {\n    var teadsData = getTeadsData();\n    return {\n      bidder: \"teads\",\n      params: {\n        pageId: teadsData.pageId,\n        placementId: teadsData.placementId\n      }\n    };\n  }; \/\/ outstream is enabled only for some in-article slots\n  \/\/ slate plus members are excluded\n\n\n  this.outstreamEnabled = function (type) {\n    var outstreamEnabledTypes = [\"mid-article-spot\"https:\/\/slate.com\/,\"mid-article-spot-tablet\"https:\/\/slate.com\/,\"mid-article-spot-mobile\"],\n        isOutstreamSlot = outstreamEnabledTypes.includes(type);\n    return isOutstreamSlot &#038;&#038; !isMember;\n  }; \/\/ Returns whether user is from EU\n\n\n  this.isEuUser = function () {\n    return document.cookie.indexOf(\"GDPR_consent=1\") > -1;\n  }; \/\/ returns permutive data\n\n\n  function getPermutiveData() {\n    var pSegs;\n\n    try  \"[]\").slice(0, 250).map(String);\n     catch (e) {\n      pSegs = [];\n    }\n\n    return pSegs;\n  }\n\n  function getTeadsData() {\n    var adnodeElement = document.querySelector(\"div[data-adnode]\");\n    var adNode = adnodeElement.getAttribute(\"data-adnode\");\n    var section = adNode.split(\"\/\")[0]; \/\/ teads data for each section\n\n    var teadsData = {\n      news_and_politics: {\n        pageId: 79225,\n        placementId: 85784\n      },\n      culture: {\n        pageId: 90291,\n        placementId: 97769\n      },\n      technology: {\n        pageId: 90293,\n        placementId: 97775\n      },\n      business: {\n        pageId: 90294,\n        placementId: 97778\n      },\n      human_interest: {\n        pageId: 90292,\n        placementId: 97772\n      }\n    };\n    return teadsData[section];\n  }\n});\n}, {\"3\":3}];\nwindow.modules[\"lazyload.legacy\"] = [function(require,module,exports){\"use strict\";\n\nrequire(69); \/\/ for side effects\n\n\nvar Layzr = require(70);\n\nvar instance = Layzr({\n  threshold: 100\n});\ninstance.on(\"src:before\", function (element) {\n  \/\/ add a load event listener\n  element.addEventListener(\"load\", function (event) {\n    element.parentElement.classList.add(\"loaded\");\n  });\n});\ndocument.addEventListener(\"DOMContentLoaded\", function (event) {\n  instance.update().check().handlers(true);\n});\n}, {\"69\":69,\"70\":70}];\nwindow.modules[\"prebid.min.legacy\"] = [function(require,module,exports){\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\/* prebid.js v3.23.0\nUpdated : 2020-06-22 *\/\n!function (u) {\n  var s = window.pbjsChunk;\n\n  window.pbjsChunk = function (e, t, n) {\n    for (var r, o, i, a = 0, c = []; a < e.length; a++) {\n      o = e[a], d[o] &#038;&#038; c.push(d[o][0]), d[o] = 0;\n    }\n\n    for (r in t) {\n      Object.prototype.hasOwnProperty.call(t, r) &#038;&#038; (u[r] = t[r]);\n    }\n\n    for (s &#038;&#038; s(e, t, n); c.length;) {\n      c.shift()();\n    }\n\n    if (n) for (a = 0; a < n.length; a++) {\n      i = f(f.s = n[a]);\n    }\n    return i;\n  };\n\n  var n = {},\n      d = {\n    313: 0\n  };\n\n  function f(e) {\n    if (n[e]) return n[e].exports;\n    var t = n[e] = {\n      i: e,\n      l: !1,\n      exports: {}\n    };\n    return u[e].call(t.exports, t, t.exports, f), t.l = !0, t.exports;\n  }\n\n  f.m = u, f.c = n, f.d = function (e, t, n) {\n    f.o(e, t) || Object.defineProperty(e, t, {\n      configurable: !1,\n      enumerable: !0,\n      get: n\n    });\n  }, f.n = function (e) {\n    var t = e &#038;&#038; e.__esModule ? function () {\n      return e.default;\n    } : function () {\n      return e;\n    };\n    return f.d(t, \"a\", t), t;\n  }, f.o = function (e, t) {\n    return Object.prototype.hasOwnProperty.call(e, t);\n  }, f.p = \"\", f.oe = function (e) {\n    throw (console.error(e), e);\n  }, f(f.s = 831);\n}([function (e, t, n) {\n  \"use strict\";\n\n  Object.defineProperty(t, \"__esModule\", {\n    value: !0\n  }), n.d(t, \"internal\", function () {\n    return k;\n  }), n.d(t, \"bind\", function () {\n    return N;\n  }), t.getUniqueIdentifierStr = q, t.generateUUID = function e(t) {\n    return t ? (t ^ G() >> t \/ 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(\/[018]\/g, e);\n  }, t.getBidIdParameter = function (e, t) {\n    if (t && t[e]) return t[e];\n    return \"\";\n  }, t.tryAppendQueryString = function (e, t, n) {\n    if (n) return e + t + \"=\" + encodeURIComponent(n) + \"&\";\n    return e;\n  }, t.parseQueryStringParameters = function (e) {\n    var t = \"\";\n\n    for (var n in e) {\n      e.hasOwnProperty(n) && (t += n + \"=\" + encodeURIComponent(e[n]) + \"&\");\n    }\n\n    return t = t.replace(\/&$\/, \"\");\n  }, t.transformAdServerTargetingObj = function (t) {\n    return t && 0 < Object.getOwnPropertyNames(t).length ? ge(t).map(function (e) {\n      return \"\".concat(e, \"=\").concat(encodeURIComponent(ye(t, e)));\n    }).join(\"&#038;\") : \"\";\n  }, t.getAdUnitSizes = function (e) {\n    if (!e) return;\n    var t = [];\n    {\n      var n;\n      e.mediaTypes &#038;&#038; e.mediaTypes.banner &#038;&#038; Array.isArray(e.mediaTypes.banner.sizes) ? (n = e.mediaTypes.banner.sizes, Array.isArray(n[0]) ? t = n : t.push(n)) : Array.isArray(e.sizes) &#038;&#038; (Array.isArray(e.sizes[0]) ? t = e.sizes : t.push(e.sizes));\n    }\n    return t;\n  }, t.parseSizesInput = function (e) {\n    var t = [];\n\n    if (\"string\" == typeof e) {\n      var n = e.split(\",\"),\n          r = \/^(d)+x(d)+$\/i;\n      if (n) for (var o in n) {\n        ae(n, o) &#038;&#038; n[o].match(r) &#038;&#038; t.push(n[o]);\n      }\n    } else if (\"object\" === S(e)) {\n      var i = e.length;\n      if (0 < i) if (2 === i &#038;&#038; \"number\" == typeof e[0] &#038;&#038; \"number\" == typeof e[1]) t.push(F(e));else for (var a = 0; a < i; a++) {\n        t.push(F(e[a]));\n      }\n    }\n\n    return t;\n  }, t.parseGPTSingleSizeArray = F, t.parseGPTSingleSizeArrayToRtbSize = function (e) {\n    if (W(e)) return {\n      w: e[0],\n      h: e[1]\n    };\n  }, t.getWindowTop = L, t.getWindowSelf = z, t.getWindowLocation = V, t.logMessage = H, t.logInfo = J, t.logWarn = K, t.logError = $, t.hasConsoleLogger = function () {\n    return _;\n  }, t.debugTurnedOn = Q, t.createInvisibleIframe = function () {\n    var e = document.createElement(\"iframe\");\n    return e.id = q(), e.height = 0, e.width = 0, e.border = \"0px\", e.hspace = \"0\", e.vspace = \"0\", e.marginWidth = \"0\", e.marginHeight = \"0\", e.style.border = \"0\", e.scrolling = \"no\", e.frameBorder = \"0\", e.src = \"https:\/\/slate.com\/about:blank\", e.style.display = \"none\", e;\n  }, t.getParameterByName = function (e) , t.isA = X, t.isFn = Z, t.isStr = ee, t.isArray = te, t.isNumber = ne, t.isPlainObject = re, t.isBoolean = function (e) {\n    return X(e, C);\n  }, t.isEmpty = oe, t.isEmptyStr = function (e)  0 === e.length);\n  , t._each = ie, t.contains = function (e, t) {\n    if (oe(e)) return !1;\n    if (Z(e.indexOf)) return -1 !== e.indexOf(t);\n    var n = e.length;\n\n    for (; n--;) {\n      if (e[n] === t) return !0;\n    }\n\n    return !1;\n  }, t._map = function (n, r) {\n    if (oe(n)) return [];\n    if (Z(n.map)) return n.map(r);\n    var o = [];\n    return ie(n, function (e, t) {\n      o.push(r(e, t, n));\n    }), o;\n  }, t.hasOwn = ae, t.insertElement = ce, t.triggerPixel = ue, t.callBurl = function (e) {\n    var t = e.source,\n        n = e.burl;\n    t === E.S2S.SRC &#038;&#038; n &#038;&#038; k.triggerPixel(n);\n  }, t.insertHtmlIntoIframe = function (e) {\n    if (!e) return;\n    var t = document.createElement(\"iframe\");\n    t.id = q(), t.width = 0, t.height = 0, t.hspace = \"0\", t.vspace = \"0\", t.marginWidth = \"0\", t.marginHeight = \"0\", t.style.display = \"none\", t.style.height = \"0px\", t.style.width = \"0px\", t.scrolling = \"no\", t.frameBorder = \"0\", t.allowtransparency = \"true\", k.insertElement(t, document, \"body\"), t.contentWindow.document.open(), t.contentWindow.document.write(e), t.contentWindow.document.close();\n  }, t.insertUserSyncIframe = se, t.createTrackPixelHtml = function (e) {\n    if (!e) return \"\";\n    var t = encodeURI(e),\n        n = '\n\n<div style=\"position:absolute;left:0px;top:0px;visibility:hidden;\">';\n    return n += '<img decoding=\"async\" src=\"' + t + '\"><\/div>\n\n';\n  }, t.createTrackPixelIframeHtml = de, t.getValueString = fe, t.uniques = le, t.flatten = pe, t.getBidRequest = function (n, e) {\n    return n ? (e.some(function (e) {\n      var t = s()(e.bids, function (t) {\n        return [\"bidId\"https:\/\/slate.com\/,\"adId\"https:\/\/slate.com\/,\"bid_id\"].some(function (e) {\n          return t[e] === n;\n        });\n      });\n      return t && (r = t), t;\n    }), r) : void 0;\n    var r;\n  }, t.getKeys = ge, t.getValue = ye, t.getKeyByValue = function (e, t) {\n    for (var n in e) {\n      if (e.hasOwnProperty(n) && e[n] === t) return n;\n    }\n  }, t.getBidderCodes = function () {\n    return (0 < arguments.length &#038;&#038; void 0 !== arguments[0] ? arguments[0] : pbjs.adUnits).map(function (e) {\n      return e.bids.map(function (e) {\n        return e.bidder;\n      }).reduce(pe, []);\n    }).reduce(pe).filter(le);\n  }, t.isGptPubadsDefined = be, n.d(t, \"getHighestCpm\", function () {\n    return ve;\n  }), n.d(t, \"getOldestHighestCpmBid\", function () {\n    return he;\n  }), n.d(t, \"getLatestHighestCpmBid\", function () {\n    return me;\n  }), t.shuffle = function (e) {\n    var t = e.length;\n\n    for (; 0 < t;) {\n      var n = Math.floor(Math.random() * t),\n          r = e[--t];\n      e[t] = e[n], e[n] = r;\n    }\n\n    return e;\n  }, t.adUnitsFilter = function (e, t) {\n    return f()(e, t &#038;&#038; t.adUnitCode);\n  }, t.deepClone = Ae, t.inIframe = function () {\n    try {\n      return k.getWindowSelf() !== k.getWindowTop();\n    } catch (e) {\n      return !0;\n    }\n  }, t.isSafariBrowser = function () crios, t.replaceAuctionPrice = function (e, t) {\n    if (!e) return;\n    return e.replace(\/${AUCTION_PRICE}\/g, t);\n  }, t.timestamp = function () {\n    return new Date().getTime();\n  }, t.hasDeviceAccess = function () {\n    return !1 !== r.b.getConfig(\"deviceAccess\");\n  }, t.checkCookieSupport = Ee, t.delayExecution = function (e, t) {\n    if (t < 1) throw new Error(\"numRequiredCalls must be a positive number. Got \".concat(t));\n    var n = 0;\n    return function () {\n      ++n === t &#038;&#038; e.apply(this, arguments);\n    };\n  }, t.groupBy = function (e, n) {\n    return e.reduce(function (e, t)  []).push(t), e;\n    , {});\n  }, t.getDefinedParams = function (n, e) {\n    return e.filter(function (e) {\n      return n[e];\n    }).reduce(function (e, t) {\n      return m(e, h({}, t, n[t]));\n    }, {});\n  }, t.isValidMediaTypes = function (e) {\n    var t = [\"banner\"https:\/\/slate.com\/,\"native\"https:\/\/slate.com\/,\"video\"];\n    if (!Object.keys(e).every(function (e) {\n      return f()(t, e);\n    })) return !1;\n    if (e.video &#038;&#038; e.video.context) return f()([\"instream\"https:\/\/slate.com\/,\"outstream\"https:\/\/slate.com\/,\"adpod\"], e.video.context);\n    return !0;\n  }, t.getBidderRequest = function (e, t, n) {\n    return s()(e, function (e) {\n      return 0 < e.bids.filter(function (e) {\n        return e.bidder === t &#038;&#038; e.adUnitCode === n;\n      }).length;\n    }) || {\n      start: null,\n      auctionId: null\n    };\n  }, t.getUserConfiguredParams = function (e, t, n) {\n    return e.filter(function (e) {\n      return e.code === t;\n    }).map(function (e) {\n      return e.bids;\n    }).reduce(pe, []).filter(function (e) {\n      return e.bidder === n;\n    }).map(function (e) {\n      return e.params || {};\n    });\n  }, t.getOrigin = function () {\n    return window.location.origin ? window.location.origin : window.location.protocol + \"\/\/\" + window.location.hostname + (window.location.port ? \":\" + window.location.port : \"\");\n  }, t.getDNT = function ()  \"yes\" === navigator.doNotTrack;\n  , t.isAdUnitCodeMatchingSlot = function (t) {\n    return function (e) {\n      return Oe(t, e);\n    };\n  }, t.isSlotMatchingAdUnitCode = Ie, t.getGptSlotInfoForAdUnitCode = function (e) {\n    var t;\n    be() &#038;&#038; (t = s()(window.googletag.pubads().getSlots(), Ie(e)));\n    if (t) return {\n      gptSlot: t.getAdUnitPath(),\n      divId: t.getSlotElementId()\n    };\n    return {};\n  }, t.unsupportedBidderMessage = function (e, t) {\n    var n = Object.keys(e.mediaTypes || {\n      banner: \"banner\"\n    }).join(\"https:\/\/slate.com\/,\");\n    return \"n    \".concat(e.code, \" is a \").concat(n, \" ad unitn    containing bidders that don't support \").concat(n, \": \").concat(t, \".n    This bidder won't fetch demand.n  \");\n  }, t.isInteger = Te, t.convertCamelToUnderscore = function (e) {\n    return e.replace(\/(?:^|.?)([A-Z])\/g, function (e, t) {\n      return \"_\" + t.toLowerCase();\n    }).replace(\/^_\/, \"\");\n  }, t.cleanObj = function (n) {\n    return Object.keys(n).reduce(function (e, t) {\n      return void 0 !== n[t] &#038;&#038; (e[t] = n[t]), e;\n    }, {});\n  }, t.pick = function (a, c) {\n    return \"object\" === S(a) ? c.reduce(function (e, t, n) {\n      if (\"function\" == typeof t) return e;\n      var r = t,\n          o = t.match(\/^(.+?)sass(.+?)$\/i);\n      o &#038;&#038; (t = o[1], r = o[2]);\n      var i = a[t];\n      return \"function\" == typeof c[n + 1] &#038;&#038; (i = c[n + 1](i, e)), void 0 !== i &#038;&#038; (e[r] = i), e;\n    }, {}) : {};\n  }, t.transformBidderParamKeywords = function (e) {\n    var r = 1 < arguments.length &#038;&#038; void 0 !== arguments[1] ? arguments[1] : \"keywords\",\n        o = [];\n    return ie(e, function (e, t) {\n      if (te(e)) {\n        var n = [];\n        ie(e, function (e) ), e = n;\n      } else {\n        if (!ee(e = fe(r + \".\" + t, e))) return;\n        e = [e];\n      }\n\n      o.push({\n        key: t,\n        value: e\n      });\n    }), o;\n  }, t.convertTypes = function (r, o) {\n    return Object.keys(r).forEach(function (e) {\n      var t, n;\n      o[e] &#038;&#038; (Z(r[e]) ? o[e] = r[e](o[e]) : o[e] = (t = r[e], n = o[e], \"string\" === t ? n &#038;&#038; n.toString() : \"number\" === t ? Number(n) : n), isNaN(o[e]) &#038;&#038; delete o.key);\n    }), o;\n  }, t.isArrayOfNums = function (e, t) , t.fill = function (e, t) {\n    for (var n = [], r = 0; r < t; r++) {\n      var o = re(e) ? Ae(e) : e;\n      n.push(o);\n    }\n\n    return n;\n  }, t.chunk = function (e, t) {\n    for (var n = [], r = 0; r < Math.ceil(e.length \/ t); r++) {\n      var o = r * t,\n          i = o + t;\n      n.push(e.slice(o, i));\n    }\n\n    return n;\n  }, t.getMinValueFromArray = function (e) {\n    return Math.min.apply(Math, y(e));\n  }, t.getMaxValueFromArray = function (e) {\n    return Math.max.apply(Math, y(e));\n  }, t.compareOn = function (n) {\n    return function (e, t) {\n      return e[n] < t[n] ? 1 : e[n] > t[n] ? -1 : 0;\n    };\n  }, t.parseQS = je, t.formatQS = we, t.parseUrl = function (e, t) {\n    var n = document.createElement(\"a\");\n    t && \"noDecodeWholeURL\" in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e);\n    var r = t && \"decodeSearchAsString\" in t && t.decodeSearchAsString;\n    return ;\n  }, t.buildUrl = function (e)  \"\")) : \"\") + (e.hash ? \"#\".concat(e.hash) : \"\");\n  , t.deepEqual = Ce, t.mergeDeep = xe;\n  var r = n(3),\n      o = n(167),\n      i = n.n(o),\n      a = n(168),\n      c = n.n(a),\n      u = n(11),\n      s = n.n(u),\n      d = n(12),\n      f = n.n(d),\n      l = n(182);\n  n.d(t, \"deepAccess\", function () {\n    return l.a;\n  });\n  var p = n(183);\n\n  function g(e, t) {\n    return function (e) {\n      if (Array.isArray(e)) return e;\n    }(e) || function (e, t) {\n      if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n      var n = [],\n          r = !0,\n          o = !1,\n          i = void 0;\n\n      try {\n        for (var a, c = e[Symbol.iterator](); !(r = (a = c.next()).done) && (n.push(a.value), !t || n.length !== t); r = !0) {\n          ;\n        }\n      } catch (e) {\n        o = !0, i = e;\n      } finally {\n        try  c.return();\n         finally {\n          if (o) throw i;\n        }\n      }\n\n      return n;\n    }(e, t) || b(e, t) || function () {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function y(e) {\n    return function (e) {\n      if (Array.isArray(e)) return v(e);\n    }(e) || function (e) {\n      if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);\n    }(e) || b(e) || function () {\n      throw new TypeError(\"Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function b(e, t) {\n    if (e) \n  }\n\n  function v(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  function h(e, t, n) {\n    return t in e ? Object.defineProperty(e, t, {\n      value: n,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }) : e[t] = n, e;\n  }\n\n  function m() {\n    return (m = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  function S(e) {\n    return (S = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  n.d(t, \"deepSetValue\", function () {\n    return p.a;\n  });\n\n  var A,\n      E = n(5),\n      O = \"Array\",\n      I = \"String\",\n      T = \"Function\",\n      j = \"Number\",\n      w = \"Object\",\n      C = \"Boolean\",\n      x = Object.prototype.toString,\n      U = Boolean(window.console),\n      _ = Boolean(U &#038;&#038; window.console.log),\n      B = Boolean(U &#038;&#038; window.console.info),\n      R = Boolean(U &#038;&#038; window.console.warn),\n      P = Boolean(U &#038;&#038; window.console.error),\n      k = {\n    checkCookieSupport: Ee,\n    createTrackPixelIframeHtml: de,\n    getWindowSelf: z,\n    getWindowTop: L,\n    getWindowLocation: V,\n    insertUserSyncIframe: se,\n    insertElement: ce,\n    isFn: Z,\n    triggerPixel: ue,\n    logError: $,\n    logWarn: K,\n    logMessage: H,\n    logInfo: J,\n    parseQS: je,\n    formatQS: we,\n    deepEqual: Ce\n  },\n      D = {},\n      N = function (e, t) {\n    return t;\n  }.bind(null, 1, D)() === D ? Function.prototype.bind : function (e) {\n    var t = this,\n        n = Array.prototype.slice.call(arguments, 1);\n    return function () {\n      return t.apply(e, n.concat(Array.prototype.slice.call(arguments)));\n    };\n  },\n      M = (A = 0, function () {\n    return ++A;\n  });\n\n  function q() {\n    return M() + Math.random().toString(16).substr(2);\n  }\n\n  function G() {\n    return window &#038;&#038; window.crypto &#038;&#038; window.crypto.getRandomValues ? crypto.getRandomValues(new Uint8Array(1))[0] % 16 : 16 * Math.random();\n  }\n\n  function F(e) {\n    if (W(e)) return e[0] + \"x\" + e[1];\n  }\n\n  function W(e) {\n    return te(e) &#038;&#038; 2 === e.length &#038;&#038; !isNaN(e[0]) &#038;&#038; !isNaN(e[1]);\n  }\n\n  function L() {\n    return window.top;\n  }\n\n  function z() {\n    return window.self;\n  }\n\n  function V() {\n    return window.location;\n  }\n\n  function H() {\n    Q() &#038;&#038; _ &#038;&#038; console.log.apply(console, Y(arguments, \"MESSAGE:\"));\n  }\n\n  function J() {\n    Q() &#038;&#038; B &#038;&#038; console.info.apply(console, Y(arguments, \"INFO:\"));\n  }\n\n  function K() {\n    Q() &#038;&#038; R &#038;&#038; console.warn.apply(console, Y(arguments, \"WARNING:\"));\n  }\n\n  function $() {\n    Q() &#038;&#038; P &#038;&#038; console.error.apply(console, Y(arguments, \"ERROR:\"));\n  }\n\n  function Y(e, t) {\n    return e = [].slice.call(e), t &#038;&#038; e.unshift(t), e.unshift(\"display: inline-block; color: #fff; background: #3b88c3; padding: 1px 4px; border-radius: 3px;\"), e.unshift(\"%cPrebid\"), e;\n  }\n\n  function Q() {\n    return !!r.b.getConfig(\"debug\");\n  }\n\n  function X(e, t) {\n    return x.call(e) === \"[object \" + t + \"]\";\n  }\n\n  function Z(e) {\n    return X(e, T);\n  }\n\n  function ee(e) {\n    return X(e, I);\n  }\n\n  function te(e) {\n    return X(e, O);\n  }\n\n  function ne(e) {\n    return X(e, j);\n  }\n\n  function re(e) {\n    return X(e, w);\n  }\n\n  function oe(e) {\n    if (!e) return !0;\n    if (te(e) || ee(e)) return !(0 < e.length);\n\n    for (var t in e) {\n      if (hasOwnProperty.call(e, t)) return !1;\n    }\n\n    return !0;\n  }\n\n  function ie(e, t) {\n    if (!oe(e)) {\n      if (Z(e.forEach)) return e.forEach(t, this);\n      var n = 0,\n          r = e.length;\n      if (0 < r) for (; n < r; n++) {\n        t(e[n], n, e);\n      } else for (n in e) {\n        hasOwnProperty.call(e, n) &#038;&#038; t.call(this, e[n], n);\n      }\n    }\n  }\n\n  function ae(e, t) {\n    return e.hasOwnProperty ? e.hasOwnProperty(t) : void 0 !== e[t] &#038;&#038; e.constructor.prototype[t] !== e[t];\n  }\n\n  function ce(e, t, n, r) {\n    var o;\n    t = t || document, o = n ? t.getElementsByTagName(n) : t.getElementsByTagName(\"head\");\n\n    try {\n      if ((o = o.length ? o : t.getElementsByTagName(\"body\")).length) {\n        o = o[0];\n        var i = r ? null : o.firstChild;\n        return o.insertBefore(e, i);\n      }\n    } catch (e) {}\n  }\n\n  function ue(e, t) {\n    var n = new Image();\n    t &#038;&#038; k.isFn(t) &#038;&#038; (n.addEventListener(\"load\", t), n.addEventListener(\"error\", t)), n.src = e;\n  }\n\n  function se(e, t) {\n    var n = k.createTrackPixelIframeHtml(e, !1, \"allow-scripts allow-same-origin\"),\n        r = document.createElement(\"div\");\n    r.innerHTML = n;\n    var o = r.firstChild;\n    t &#038;&#038; k.isFn(t) &#038;&#038; (o.addEventListener(\"load\", t), o.addEventListener(\"error\", t)), k.insertElement(o, document, \"html\", !0);\n  }\n\n  function de(e)  arguments[1]) &#038;&#038; (e = encodeURI(e)), t = t &#038;&#038; 'sandbox=\"'.concat(t, '\"'), \"<iframe loading=\"lazy\" \".concat(t, ' id=\"').concat(q(), '\"n      frameborder=\"0\"n      allowtransparency=\"true\"n      marginheight=\"0\" marginwidth=\"0\"n      width=\"0\" hspace=\"0\" vspace=\"0\" height=\"0\"n      style=\"height:0px;width:0px;display:none;\"n      scrolling=\"no\"n      src=\"').concat(e, '\">n    <\/iframe>')) : \"\";\n  \n\n  function fe(e, t, n) {\n    return null == t ? n : ee(t) ? t : ne(t) ? t.toString() : void k.logWarn(\"Unsuported type for param: \" + e + \" required type: String\");\n  }\n\n  function le(e, t, n) {\n    return n.indexOf(e) === t;\n  }\n\n  function pe(e, t) {\n    return e.concat(t);\n  }\n\n  function ge(e) {\n    return Object.keys(e);\n  }\n\n  function ye(e, t) {\n    return e[t];\n  }\n\n  function be() {\n    if (window.googletag && Z(window.googletag.pubads) && Z(window.googletag.pubads().getSlots)) return !0;\n  }\n\n  var ve = Se(\"timeToRespond\", function (e, t) {\n    return t < e;\n  }),\n      he = Se(\"responseTimestamp\", function (e, t) {\n    return t < e;\n  }),\n      me = Se(\"responseTimestamp\", function (e, t) {\n    return e < t;\n  });\n\n  function Se(n, r) {\n    return function (e, t) {\n      return e.cpm === t.cpm ? r(e[n], t[n]) ? t : e : e.cpm < t.cpm ? t : e;\n    };\n  }\n\n  function Ae(e) {\n    return i()(e);\n  }\n\n  function Ee() \n\n  var Oe = function Oe(e, t)  e.getSlotElementId() === t;\n  ;\n\n  function Ie(t) {\n    return function (e) {\n      return Oe(e, t);\n    };\n  }\n\n  function Te(e) {\n    return Number.isInteger ? Number.isInteger(e) : \"number\" == typeof e &#038;&#038; isFinite(e) &#038;&#038; Math.floor(e) === e;\n  }\n\n  function je(e) {\n    return e ? e.replace(\/^?\/, \"\").split(\"&#038;\").reduce(function (e, t)  [], e[r].push(o)) : e[r] = o , {}) : {};\n  }\n\n  function we(e) {\n    return Object.keys(e).map(function (t) {\n      return Array.isArray(e[t]) ? e[t].map(function (e) {\n        return \"\".concat(t, \"[]=\").concat(e);\n      }).join(\"&#038;\") : \"\".concat(t, \"=\").concat(e[t]);\n    }).join(\"&#038;\");\n  }\n\n  function Ce(e, t) {\n    return c()(e, t);\n  }\n\n  function xe(e) {\n    for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) {\n      n[r - 1] = arguments[r];\n    }\n\n    if (!n.length) return e;\n    var o = n.shift();\n    if (re(e) &#038;&#038; re(o)) for (var i in o) {\n      re(o[i]) ? (e[i] || m(e, h({}, i, {})), xe(e[i], o[i])) : te(o[i]) &#038;&#038; e[i] ? te(e[i]) &#038;&#038; (e[i] = e[i].concat(o[i])) : m(e, h({}, i, o[i]));\n    }\n    return xe.apply(void 0, [e].concat(n));\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  Object.defineProperty(t, \"__esModule\", {\n    value: !0\n  }), n.d(t, \"storage\", function () {\n    return T;\n  }), t.registerBidder = function (t) {\n    var n = Array.isArray(t.supportedMediaTypes) ? {\n      supportedMediaTypes: t.supportedMediaTypes\n    } : void 0;\n\n    function r(e) {\n      var t = C(e);\n      c.default.registerBidAdapter(t, e.code, n);\n    }\n\n    r(t), Array.isArray(t.aliases) &#038;&#038; t.aliases.forEach(function (e) {\n      c.default.aliasRegistry[e] = t.code, r(I({}, t, {\n        code: e\n      }));\n    });\n  }, t.newBidder = C, n.d(t, \"registerSyncInner\", function () {\n    return x;\n  }), t.preloadBidderMappingFile = U, t.getIabSubCategory = function (t, e) {\n    var n = c.default.getBidAdapter(t);\n\n    if (n.getSpec().getMappingFileInfo) {\n      var r = n.getSpec().getMappingFileInfo(),\n          o = r.localStorageKey ? r.localStorageKey : n.getBidderCode(),\n          i = T.getDataFromLocalStorage(o);\n\n      if (i) {\n        try {\n          i = JSON.parse(i);\n        } catch (e) {\n          Object(m.logError)(\"Failed to parse \".concat(t, \" mapping data stored in local storage\"));\n        }\n\n        return i.mapping[e] ? i.mapping[e] : null;\n      }\n    }\n  }, t.isValid = _;\n  var r = n(100),\n      c = n(7),\n      u = n(3),\n      b = n(32),\n      s = n(44),\n      i = n(35),\n      a = n(38),\n      o = n(5),\n      v = n.n(o),\n      d = n(8),\n      h = n.n(d),\n      f = n(12),\n      l = n.n(f),\n      p = n(4),\n      m = n(0),\n      g = n(2),\n      y = n(13),\n      S = n(9);\n\n  function A(e, t) {\n    return function (e) {\n      if (Array.isArray(e)) return e;\n    }(e) || function (e, t) {\n      if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n      var n = [],\n          r = !0,\n          o = !1,\n          i = void 0;\n\n      try {\n        for (var a, c = e[Symbol.iterator](); !(r = (a = c.next()).done) &#038;&#038; (n.push(a.value), !t || n.length !== t); r = !0) {\n          ;\n        }\n      } catch (e) {\n        o = !0, i = e;\n      } finally {\n        try  c.return();\n         finally {\n          if (o) throw i;\n        }\n      }\n\n      return n;\n    }(e, t) || function (e, t) 32)(?:Clamped)?Array$\/.test(n)) return E(e, t);\n    (e, t) || function () {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function E(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  function O(e) {\n    return (O = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  function I() {\n    return (I = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var T = Object(S.a)(\"bidderFactory\"),\n      j = [\"requestId\"https:\/\/slate.com\/,\"cpm\"https:\/\/slate.com\/,\"ttl\"https:\/\/slate.com\/,\"creativeId\"https:\/\/slate.com\/,\"netRevenue\"https:\/\/slate.com\/,\"currency\"],\n      w = 1;\n\n  function C(p) {\n    return I(new r.a(p.code), {\n      getSpec: function getSpec() {\n        return Object.freeze(p);\n      },\n      registerSyncs: g,\n      callBids: function callBids(i, a, e, n, c, r) {\n        var u, s, t, d, o, f;\n\n        function l() {\n          e(), h.a.emit(v.a.EVENTS.BIDDER_DONE, i), g(s, i.gdprConsent, i.uspConsent);\n        }\n\n        Array.isArray(i.bids) &#038;&#038; (u = {}, s = [], 0 !== (t = i.bids.filter(y)).length ? (d = {}, t.forEach(function (e) ), (o = p.buildRequests(t, i)) &#038;&#038; 0 !== o.length ? (Array.isArray(o) || (o = [o]), f = Object(m.delayExecution)(r(l), o.length), o.forEach(function (o) {\n          switch (o.method) {\n            case \"GET\":\n              n(\"\".concat(o.url).concat(function (e) {\n                if (e) return \"?\".concat(\"object\" === O(e) ? Object(m.parseQueryStringParameters)(e) : e);\n                return \"\";\n              }(o.data)), {\n                success: r(e),\n                error: t\n              }, void 0, I({\n                method: \"GET\",\n                withCredentials: !0\n              }, o.options));\n              break;\n\n            case \"POST\":\n              n(o.url, {\n                success: r(e),\n                error: t\n              }, \"string\" == typeof o.data ? o.data : JSON.stringify(o.data), I({\n                method: \"POST\",\n                contentType: \"text\/plain\",\n                withCredentials: !0\n              }, o.options));\n              break;\n\n            default:\n              Object(m.logWarn)(\"Skipping invalid request from \".concat(p.code, \". Request type \").concat(o.type, \" must be GET or POST\")), f();\n          }\n\n          function e(e, t) {\n            c(p.code);\n\n            try {\n              e = JSON.parse(e);\n            } catch (e) {}\n\n            var n;\n            e = {\n              body: e,\n              headers: {\n                get: t.getResponseHeader.bind(t)\n              }\n            }, s.push(e);\n\n            try {\n              n = p.interpretResponse(e, o);\n            } catch (e) {\n              return Object(m.logError)(\"Bidder \".concat(p.code, \" failed to interpret the server's response. Continuing without bids\"), null, e), void f();\n            }\n\n            function r(e) {\n              var t,\n                  n,\n                  r,\n                  o = d[e.requestId];\n              o ? (e.originalCpm = e.cpm, e.originalCurrency = e.currency, t = I(Object(b.a)(v.a.STATUS.GOOD, o), e), n = o.adUnitCode, r = t, u[n] = !0, _(n, r, [i]) &#038;&#038; a(n, r)) : Object(m.logWarn)(\"Bidder \".concat(p.code, \" made bid for unknown request ID: \").concat(e.requestId, \". Ignoring.\"));\n            }\n\n            n &#038;&#038; (Object(m.isArray)(n) ? n.forEach(r) : r(n)), f(n);\n          }\n\n          function t(e) {\n            c(p.code), Object(m.logError)(\"Server call for \".concat(p.code, \" failed: \").concat(e, \". Continuing without bids.\")), f();\n          }\n        })) : l()) : l());\n      }\n    });\n\n    function g(e, t, n) {\n      x(p, e, t, n);\n    }\n\n    function y(e)  (Object(m.logWarn)(\"Invalid bid sent to bidder \".concat(p.code, \": \").concat(JSON.stringify(e))), !1);\n    \n  }\n\n  var x = Object(y.b)(\"async\", function (t, e, n, r) {\n    var o,\n        i,\n        a = u.b.getConfig(\"userSync.aliasSyncEnabled\");\n    !t.getUserSyncs || !a &#038;&#038; c.default.aliasRegistry[t.code] || (o = u.b.getConfig(\"userSync.filterSettings\"), (i = t.getUserSyncs( !o.iframe &#038;&#038; !o.all),\n      pixelEnabled: !(!o , e, n, r)) &#038;&#038; (Array.isArray(i) || (i = [i]), i.forEach(function (e) {\n      s.a.registerSync(e.type, t.code, e.url);\n    })));\n  }, \"registerSyncs\");\n\n  function U(e, t) {\n    if (!u.b.getConfig(\"adpod.brandCategoryExclusion\")) return e.call(this, t);\n    t.filter(function (e) {\n      return Object(m.deepAccess)(e, \"mediaTypes.video.context\") === g.a;\n    }).map(function (e) {\n      return e.bids.map(function (e) {\n        return e.bidder;\n      });\n    }).reduce(m.flatten, []).filter(m.uniques).forEach(function (n) {\n      var e = c.default.getBidAdapter(n);\n\n      if (e.getSpec().getMappingFileInfo) {\n        var t = e.getSpec().getMappingFileInfo(),\n            r = t.refreshInDays ? t.refreshInDays : w,\n            o = t.localStorageKey ? t.localStorageKey : e.getSpec().code,\n            i = T.getDataFromLocalStorage(o);\n\n        try {\n          (!(i = i ? JSON.parse(i) : void 0) || Object(m.timestamp)() > i.lastUpdated + 24 * r * 60 * 60 * 1e3) && Object(p.a)(t.url, {\n            success: function success(e) {\n              try {\n                e = JSON.parse(e);\n                var t = {\n                  lastUpdated: Object(m.timestamp)(),\n                  mapping: e.mapping\n                };\n                T.setDataInLocalStorage(o, JSON.stringify(t));\n              } catch (e) {\n                Object(m.logError)(\"Failed to parse \".concat(n, \" bidder translation mapping file\"));\n              }\n            },\n            error: function error() {\n              Object(m.logError)(\"Failed to load \".concat(n, \" bidder translation file\"));\n            }\n          });\n        } catch (e) {\n          Object(m.logError)(\"Failed to parse \".concat(n, \" bidder translation mapping file\"));\n        }\n      }\n    }), e.call(this, t);\n  }\n\n  function _(e, t, n) {\n    function r(e) {\n      return \"Invalid bid from \".concat(t.bidderCode, \". Ignoring bid: \").concat(e);\n    }\n\n    return e ? t ? (o = Object.keys(t), j.every(function (e) {\n      return l()(o, e) && !l()([void 0, null], t[e]);\n    }) ? \"native\" !== t.mediaType || Object(i.f)(t, n) ? \"video\" !== t.mediaType || Object(a.d)(t, n) ? !(\"banner\" === t.mediaType && !function (e, t, n) {\n      if ((t.width || 0 === parseInt(t.width, 10)) && (t.height || 0 === parseInt(t.height, 10))) return t.width = parseInt(t.width, 10), t.height = parseInt(t.height, 10), 1;\n      var r = Object(m.getBidderRequest)(n, t.bidderCode, e),\n          o = r && r.bids && r.bids[0] && r.bids[0].sizes,\n          i = Object(m.parseSizesInput)(o);\n\n      if (1 === i.length) {\n        var a = A(i[0].split(\"x\"), 2),\n            c = a[0],\n            u = a[1];\n        return t.width = parseInt(c, 10), t.height = parseInt(u, 10), 1;\n      }\n    }(e, t, n)) || (Object(m.logError)(r(\"Banner bids require a width and height\")), !1) : (Object(m.logError)(r(\"Video bid does not have required vastUrl or renderer property\")), !1) : (Object(m.logError)(r(\"Native bid missing some required properties.\")), !1) : (Object(m.logError)(r(\"Bidder \".concat(t.bidderCode, \" is missing required params. Check http:\/\/prebid.org\/dev-docs\/bidder-adapter-1.html for list of params.\"))), !1)) : (Object(m.logWarn)(\"Some adapter tried to add an undefined bid for \".concat(e, \".\")), !1) : (Object(m.logWarn)(\"No adUnitCode was supplied to addBidResponse.\"), !1);\n    var o;\n  }\n\n  Object(y.a)(\"checkAdUnitSetup\").before(U);\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"c\", function () {\n    return r;\n  }), n.d(t, \"d\", function () {\n    return o;\n  }), n.d(t, \"b\", function () {\n    return i;\n  }), n.d(t, \"a\", function () {\n    return a;\n  });\n  var r = \"native\",\n      o = \"video\",\n      i = \"banner\",\n      a = \"adpod\";\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return v;\n  }), n.d(t, \"b\", function () {\n    return j;\n  });\n  var r = n(45),\n      o = n(11),\n      a = n.n(o),\n      i = n(12),\n      c = n.n(i),\n      u = n(80),\n      s = n.n(u),\n      d = n(0);\n\n  function f() {\n    return (f = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var l = n(92),\n      p = n(0),\n      g = n(5),\n      y = \"TRUE\" === p.getParameterByName(g.DEBUG_MODE).toUpperCase(),\n      b = window.location.origin,\n      v = \"random\",\n      h = {};\n  h[v] = !0, h.fixed = !0;\n  var m = v,\n      S = {\n    LOW: \"low\",\n    MEDIUM: \"medium\",\n    HIGH: \"high\",\n    AUTO: \"auto\",\n    DENSE: \"dense\",\n    CUSTOM: \"custom\"\n  };\n  var A,\n      E,\n      O,\n      I,\n      T,\n      j = (I = [], T = null, w(), {\n    getCurrentBidder: function getCurrentBidder() {\n      return T;\n    },\n    getConfig: function getConfig() {\n      if (arguments.length <= 1 &#038;&#038; \"function\" != typeof (arguments.length <= 0 ? void 0 : arguments[0])) {\n        var e = arguments.length <= 0 ? void 0 : arguments[0];\n        return e ? p.deepAccess(C(), e) : C();\n      }\n\n      return function (e, t) {\n        var n = t;\n\n        if (\"string\" != typeof e &#038;&#038; (n = e, e = \"*\"), \"function\" == typeof n) {\n          var r = {\n            topic: e,\n            callback: n\n          };\n          return I.push(r), function () {\n            I.splice(I.indexOf(r), 1);\n          };\n        }\n\n        p.logError(\"listener must be a function\");\n      }.apply(void 0, arguments);\n    },\n    setConfig: function setConfig(n) {\n      var e, r;\n      p.isPlainObject(n) ? (e = Object.keys(n), r = {}, e.forEach(function (e) {\n        var t = n[e];\n        p.isPlainObject(A[e]) &#038;&#038; p.isPlainObject(t) &#038;&#038; (t = f({}, A[e], t)), r[e] = E[e] = t;\n      }), x(r)) : p.logError(\"setConfig options must be an object\");\n    },\n    setDefaults: function setDefaults(e) {\n      p.isPlainObject(A) ? (f(A, e), f(E, e)) : p.logError(\"defaults must be an object\");\n    },\n    resetConfig: w,\n    runWithBidder: U,\n    callbackWithBidder: function callbackWithBidder(i) {\n      return function (o) {\n        return function () {\n          if (\"function\" == typeof o) {\n            for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++) {\n              n[r] = arguments[r];\n            }\n\n            return U(i, (e = p.bind).call.apply(e, [o, this].concat(n)));\n          }\n\n          p.logWarn(\"config.callbackWithBidder callback is not a function\");\n        };\n      };\n    },\n    setBidderConfig: function setBidderConfig(r) {\n      try {\n        !function (e)  !e.bidders.length) throw \"setBidderConfig bidder options must contain a bidders list with at least 1 bidder\";\n          if (!p.isPlainObject(e.config)) throw \"setBidderConfig bidder options must contain a config object\";\n        (r), r.bidders.forEach(function (n) {\n          O[n] || (O[n] = {}), Object.keys(r.config).forEach(function (e) {\n            var t = r.config[e];\n            p.isPlainObject(t) ? O[n][e] = f({}, O[n][e] || {}, t) : O[n][e] = t;\n          });\n        });\n      } catch (e) {\n        p.logError(e);\n      }\n    },\n    getBidderConfig: function getBidderConfig() {\n      return O;\n    }\n  });\n\n  function w() {\n    A = {};\n    var n = {\n      _debug: y,\n\n      get debug() {\n        return this._debug;\n      },\n\n      set debug(e) {\n        this._debug = e;\n      },\n\n      _bidderTimeout: 3e3,\n\n      get bidderTimeout() {\n        return this._bidderTimeout;\n      },\n\n      set bidderTimeout(e) {\n        this._bidderTimeout = e;\n      },\n\n      _publisherDomain: b,\n\n      get publisherDomain() {\n        return this._publisherDomain;\n      },\n\n      set publisherDomain(e) {\n        this._publisherDomain = e;\n      },\n\n      _priceGranularity: S.MEDIUM,\n\n      set priceGranularity(e) {\n        i(e) &#038;&#038; (\"string\" == typeof e ? this._priceGranularity = o(e) ? e : S.MEDIUM : p.isPlainObject(e) &#038;&#038; (this._customPriceBucket = e, this._priceGranularity = S.CUSTOM, p.logMessage(\"Using custom price granularity\")));\n      },\n\n      get priceGranularity() {\n        return this._priceGranularity;\n      },\n\n      _customPriceBucket: {},\n\n      get customPriceBucket() {\n        return this._customPriceBucket;\n      },\n\n      _mediaTypePriceGranularity: {},\n\n      get mediaTypePriceGranularity() {\n        return this._mediaTypePriceGranularity;\n      },\n\n      set mediaTypePriceGranularity(n) {\n        var r = this;\n        this._mediaTypePriceGranularity = Object.keys(n).reduce(function (e, t) {\n          return i(n[t]) ? \"string\" == typeof n ? e[t] = o(n[t]) ? n[t] : r._priceGranularity : p.isPlainObject(n) &#038;&#038; (e[t] = n[t], p.logMessage(\"Using custom price granularity for \".concat(t))) : p.logWarn(\"Invalid price granularity for media type: \".concat(t)), e;\n        }, {});\n      },\n\n      _sendAllBids: !0,\n\n      get enableSendAllBids() {\n        return this._sendAllBids;\n      },\n\n      set enableSendAllBids(e) {\n        this._sendAllBids = e;\n      },\n\n      _useBidCache: !1,\n\n      get useBidCache() {\n        return this._useBidCache;\n      },\n\n      set useBidCache(e) {\n        this._useBidCache = e;\n      },\n\n      _deviceAccess: !0,\n\n      get deviceAccess() {\n        return this._deviceAccess;\n      },\n\n      set deviceAccess(e) {\n        this._deviceAccess = e;\n      },\n\n      _bidderSequence: m,\n\n      get bidderSequence() {\n        return this._bidderSequence;\n      },\n\n      set bidderSequence(e) {\n        h[e] ? this._bidderSequence = e : p.logWarn(\"Invalid order: \".concat(e, \". Bidder Sequence was not set.\"));\n      },\n\n      _timeoutBuffer: 400,\n\n      get timeoutBuffer() {\n        return this._timeoutBuffer;\n      },\n\n      set timeoutBuffer(e) {\n        this._timeoutBuffer = e;\n      },\n\n      _disableAjaxTimeout: !1,\n\n      get disableAjaxTimeout() {\n        return this._disableAjaxTimeout;\n      },\n\n      set disableAjaxTimeout(e) {\n        this._disableAjaxTimeout = e;\n      }\n\n    };\n\n    function o(t) {\n      return a()(Object.keys(S), function (e) {\n        return t === S[e];\n      });\n    }\n\n    function i(e) {\n      if (e)  p.logWarn(\"Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.\");else if (p.isPlainObject(e) &#038;&#038; !Object(r.b)(e)) return void p.logError(\"Invalid custom price value passed to `setPriceGranularity()`\");\n        return 1;\n      \n\n      p.logError(\"Prebid Error: no value passed to `setPriceGranularity()`\");\n    }\n\n    E &#038;&#038; x(Object.keys(E).reduce(function (e, t) {\n      return E[t] !== n[t] &#038;&#038; (e[t] = n[t] || {}), e;\n    }, {})), E = n, O = {};\n  }\n\n  function C() {\n    if (T &#038;&#038; O &#038;&#038; p.isPlainObject(O[T])) {\n      var n = O[T],\n          e = new s.a(Object.keys(E).concat(Object.keys(n)));\n      return l(e).reduce(function (e, t) {\n        return void 0 === n[t] ? e[t] = E[t] : void 0 !== E[t] &#038;&#038; p.isPlainObject(n[t]) ? e[t] = Object(d.mergeDeep)({}, E[t], n[t]) : e[t] = n[t], e;\n      }, {});\n    }\n\n    return f({}, E);\n  }\n\n  function x(o) {\n    var t = Object.keys(o);\n    I.filter(function (e) {\n      return c()(t, e.topic);\n    }).forEach(function (e) {\n      var t, n, r;\n      e.callback((t = {}, n = e.topic, r = o[e.topic], n in t ? Object.defineProperty(t, n, {\n        value: r,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : t[n] = r, t));\n    }), I.filter(function (e) {\n      return \"*\" === e.topic;\n    }).forEach(function (e) {\n      return e.callback(o);\n    });\n  }\n\n  function U(e, t) {\n    T = e;\n\n    try {\n      return t();\n    } finally {\n      T = null;\n    }\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return r;\n  }), t.b = o;\n  var l = n(3);\n\n  function p() {\n    return (p = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  function g(e) {\n    return (g = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  var y = n(0),\n      b = 4,\n      r = o();\n\n  function o() {\n    var s = 0 < arguments.length &#038;&#038; void 0 !== arguments[0] ? arguments[0] : 3e3,\n        e = 1 < arguments.length &#038;&#038; void 0 !== arguments[1] ? arguments[1] : {},\n        d = e.request,\n        f = e.done;\n    return function (e, t, n) {\n      var r = 3 < arguments.length &#038;&#038; void 0 !== arguments[3] ? arguments[3] : {};\n\n      try {\n        var o,\n            i = r.method || (n ? \"POST\" : \"GET\"),\n            a = document.createElement(\"a\");\n        a.href = e;\n        var c,\n            u = \"object\" === g(t) &#038;&#038; null !== t ? t : {\n          success: function success() {\n            y.logMessage(\"xhr success\");\n          },\n          error: function error(e) {\n            y.logError(\"xhr error\", null, e);\n          }\n        };\n        \"function\" == typeof t &#038;&#038; (u.success = t), (o = new window.XMLHttpRequest()).onreadystatechange = function () , l.b.getConfig(\"disableAjaxTimeout\") || (o.ontimeout = function () {\n          y.logError(\"  xhr timeout after \", o.timeout, \"ms\");\n        }), \"GET\" === i &#038;&#038; n &#038;&#038; (p((c = y.parseUrl(e, r)).search, n), e = y.buildUrl(c)), o.open(i, e, !0), l.b.getConfig(\"disableAjaxTimeout\") || (o.timeout = s), r.withCredentials &#038;&#038; (o.withCredentials = !0), y._each(r.customHeaders, function (e, t) {\n          o.setRequestHeader(t, e);\n        }), r.preflight &#038;&#038; o.setRequestHeader(\"X-Requested-With\"https:\/\/slate.com\/,\"XMLHttpRequest\"), o.setRequestHeader(\"Content-Type\", r.contentType || \"text\/plain\"), \"function\" == typeof d &#038;&#038; d(a.origin), \"POST\" === i &#038;&#038; n ? o.send(n) : o.send();\n      } catch (e) {\n        y.logError(\"xhr construction\", e);\n      }\n    };\n  }\n}, function (e, t) {\n  e.exports = {\n    JSON_MAPPING: {\n      PL_CODE: \"code\",\n      PL_SIZE: \"sizes\",\n      PL_BIDS: \"bids\",\n      BD_BIDDER: \"bidder\",\n      BD_ID: \"paramsd\",\n      BD_PL_ID: \"placementId\",\n      ADSERVER_TARGETING: \"adserverTargeting\",\n      BD_SETTING_STANDARD: \"standard\"\n    },\n    DEBUG_MODE: \"pbjs_debug\",\n    STATUS: {\n      GOOD: 1,\n      NO_BID: 2\n    },\n    CB: {\n      TYPE: {\n        ALL_BIDS_BACK: \"allRequestedBidsBack\",\n        AD_UNIT_BIDS_BACK: \"adUnitBidsBack\",\n        BID_WON: \"bidWon\",\n        REQUEST_BIDS: \"requestBids\"\n      }\n    },\n    EVENTS: {\n      AUCTION_INIT: \"auctionInit\",\n      AUCTION_END: \"auctionEnd\",\n      BID_ADJUSTMENT: \"bidAdjustment\",\n      BID_TIMEOUT: \"bidTimeout\",\n      BID_REQUESTED: \"bidRequested\",\n      BID_RESPONSE: \"bidResponse\",\n      NO_BID: \"noBid\",\n      BID_WON: \"bidWon\",\n      BIDDER_DONE: \"bidderDone\",\n      SET_TARGETING: \"setTargeting\",\n      BEFORE_REQUEST_BIDS: \"beforeRequestBids\",\n      REQUEST_BIDS: \"requestBids\",\n      ADD_AD_UNITS: \"addAdUnits\",\n      AD_RENDER_FAILED: \"adRenderFailed\"\n    },\n    AD_RENDER_FAILED_REASON: {\n      PREVENT_WRITING_ON_MAIN_DOCUMENT: \"preventWritingOnMainDocuemnt\",\n      NO_AD: \"noAd\",\n      EXCEPTION: \"exception\",\n      CANNOT_FIND_AD: \"cannotFindAd\",\n      MISSING_DOC_OR_ADID: \"missingDocOrAdid\"\n    },\n    EVENT_ID_PATHS: {\n      bidWon: \"adUnitCode\"\n    },\n    GRANULARITY_OPTIONS: {\n      LOW: \"low\",\n      MEDIUM: \"medium\",\n      HIGH: \"high\",\n      AUTO: \"auto\",\n      DENSE: \"dense\",\n      CUSTOM: \"custom\"\n    },\n    TARGETING_KEYS: {\n      BIDDER: \"hb_bidder\",\n      AD_ID: \"hb_adid\",\n      PRICE_BUCKET: \"hb_pb\",\n      SIZE: \"hb_size\",\n      DEAL: \"hb_deal\",\n      SOURCE: \"hb_source\",\n      FORMAT: \"hb_format\",\n      UUID: \"hb_uuid\",\n      CACHE_ID: \"hb_cache_id\",\n      CACHE_HOST: \"hb_cache_host\"\n    },\n    NATIVE_KEYS: {\n      title: \"hb_native_title\",\n      body: \"hb_native_body\",\n      body2: \"hb_native_body2\",\n      privacyLink: \"hb_native_privacy\",\n      privacyIcon: \"hb_native_privicon\",\n      sponsoredBy: \"hb_native_brand\",\n      image: \"hb_native_image\",\n      icon: \"hb_native_icon\",\n      clickUrl: \"hb_native_linkurl\",\n      displayUrl: \"hb_native_displayurl\",\n      cta: \"hb_native_cta\",\n      rating: \"hb_native_rating\",\n      address: \"hb_native_address\",\n      downloads: \"hb_native_downloads\",\n      likes: \"hb_native_likes\",\n      phone: \"hb_native_phone\",\n      price: \"hb_native_price\",\n      salePrice: \"hb_native_saleprice\"\n    },\n    S2S: {\n      SRC: \"s2s\",\n      DEFAULT_ENDPOINT: \"https:\/\/prebid.adnxs.com\/pbs\/v1\/openrtb2\/auction\",\n      SYNCED_BIDDERS_KEY: \"pbjsSyncs\"\n    },\n    BID_STATUS: {\n      BID_TARGETING_SET: \"targetingSet\",\n      RENDERED: \"rendered\",\n      BID_REJECTED: \"bidRejected\"\n    }\n  };\n},, function (e, t, n) {\n  \"use strict\";\n\n  Object.defineProperty(t, \"__esModule\", {\n    value: !0\n  }), n.d(t, \"gdprDataHandler\", function () {\n    return B;\n  }), n.d(t, \"uspDataHandler\", function () {\n    return R;\n  }), t.setS2STestingModule = function (e) {\n    T = e;\n  };\n  var S = n(0),\n      p = n(101),\n      g = n(35),\n      d = n(1),\n      h = n(4),\n      A = n(3),\n      r = n(13),\n      o = n(12),\n      E = n.n(o),\n      i = n(11),\n      O = n.n(i),\n      y = n(68),\n      I = n(30);\n\n  function m(e, t) {\n    return function (e) {\n      if (Array.isArray(e)) return e;\n    }(e) || function (e, t) {\n      if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n      var n = [],\n          r = !0,\n          o = !1,\n          i = void 0;\n\n      try {\n        for (var a, c = e[Symbol.iterator](); !(r = (a = c.next()).done) &#038;&#038; (n.push(a.value), !t || n.length !== t); r = !0) {\n          ;\n        }\n      } catch (e) {\n        o = !0, i = e;\n      } finally {\n        try  c.return();\n         finally {\n          if (o) throw i;\n        }\n      }\n\n      return n;\n    }(e, t) || function (e, t)  \"Set\" === n) return Array.from(e);\n      if (\"Arguments\" === n (e, t) || function () {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function a(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  function b() {\n    return (b = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var T,\n      j = n(0),\n      w = n(5),\n      C = n(8),\n      f = {},\n      x = f.bidderRegistry = {},\n      l = f.aliasRegistry = {},\n      U = {};\n  A.b.getConfig(\"s2sConfig\", function (e) {\n    U = e.s2sConfig;\n  });\n  var c = {};\n\n  var _ = Object(r.b)(\"sync\", function (e) {\n    var o = e.bidderCode,\n        s = e.auctionId,\n        d = e.bidderRequestId,\n        t = e.adUnits,\n        f = e.labels,\n        l = e.src;\n    return t.reduce(function (e, c) {\n      var t = Object(p.b)(Object(p.a)(c, f), c.mediaTypes, c.sizes),\n          n = t.active,\n          u = t.mediaTypes,\n          r = t.filterResults;\n      return n ? r &#038;&#038; j.logInfo('Size mapping filtered adUnit \"'.concat(c.code, '\" banner sizes from '), r.before, \"to \", r.after) : j.logInfo('Size mapping disabled adUnit \"'.concat(c.code, '\"')), n &#038;&#038; e.push(c.bids.filter(function (e) {\n        return e.bidder === o;\n      }).reduce(function (e, t) {\n        var n = c.nativeParams || j.deepAccess(c, \"mediaTypes.native\");\n        n &#038;&#038; (t = b({}, t, {\n          nativeParams: Object(g.g)(n)\n        })), t = b({}, t, Object(S.getDefinedParams)(c, [\"fpd\"https:\/\/slate.com\/,\"mediaType\"https:\/\/slate.com\/,\"renderer\"https:\/\/slate.com\/,\"storedAuctionResponse\"]));\n        var r = Object(p.b)(Object(p.a)(t, f), u),\n            o = r.active,\n            i = r.mediaTypes,\n            a = r.filterResults;\n        return o ? a &#038;&#038; j.logInfo('Size mapping filtered adUnit \"'.concat(c.code, '\" bidder \"').concat(t.bidder, '\" banner sizes from '), a.before, \"to \", a.after) : j.logInfo('Size mapping deactivated adUnit \"'.concat(c.code, '\" bidder \"').concat(t.bidder, '\"')), j.isValidMediaTypes(i) ? t = b({}, t, {\n          mediaTypes: i\n        }) : j.logError(\"mediaTypes is not correctly configured for adunit \".concat(c.code)), o &#038;&#038; e.push(b({}, t, )), e;\n      }, [])), e;\n    }, []).reduce(S.flatten, []).filter(function (e) {\n      return \"\" !== e;\n    });\n  }, \"getBids\");\n\n  var B = {\n    consentData: null,\n    setConsentData: function setConsentData(e) {\n      B.consentData = e;\n    },\n    getConsentData: function getConsentData() {\n      return B.consentData;\n    }\n  },\n      R = {\n    consentData: null,\n    setConsentData: function setConsentData(e) {\n      R.consentData = e;\n    },\n    getConsentData: function getConsentData() {\n      return R.consentData;\n    }\n  };\n\n  function P() {\n    return U &#038;&#038; U.enabled &#038;&#038; U.testing &#038;&#038; T;\n  }\n\n  function u(t, n, e) {\n    try {\n      var r = x[t].getSpec();\n      r &#038;&#038; r[n] &#038;&#038; \"function\" == typeof r[n] &#038;&#038; (j.logInfo(\"Invoking \".concat(t, \".\").concat(n)), A.b.runWithBidder(t, S.bind.call(r[n], r, e)));\n    } catch (e) {\n      j.logWarn(\"Error calling \".concat(n, \" of \").concat(t));\n    }\n  }\n\n  f.makeBidRequests = Object(r.b)(\"sync\", function (e, o, i, a, c) {\n    C.emit(w.EVENTS.BEFORE_REQUEST_BIDS, e);\n    var u = [],\n        t = Object(S.getBidderCodes)(e);\n    A.b.getConfig(\"bidderSequence\") === A.a &#038;&#038; (t = Object(S.shuffle)(t));\n    var n,\n        r,\n        s,\n        d,\n        f,\n        l,\n        p,\n        g = Object(I.b)(),\n        y = t,\n        b = [];\n    U.enabled &#038;&#038; (P() &#038;&#038; (b = T.getSourceBidderMap(e)[T.CLIENT]), n = U.bidders, y = t.filter(function (e)  E()(b, e);\n    ), Boolean(P() &#038;&#038; U.testServerOnly) &#038;&#038; (p = e, Boolean(O()(p, function (e) {\n      return O()(e.bids, function (e)  U.bidderControl &#038;&#038; U.bidderControl[e.bidder]) &#038;&#038; e.finalSource === T.SERVER;\n      );\n    }))) &#038;&#038; (y.length = 0), d = e, f = U.bidders, (l = j.deepClone(d)).forEach(function (e) {\n      e.bids = e.bids.filter(function (e) ).map(function (e) {\n        return e.bid_id = j.getUniqueIdentifierStr(), e;\n      });\n    }), r = l = l.filter(function (e) {\n      return 0 !== e.bids.length;\n    }), s = j.generateUUID(), n.forEach(function (e) {\n      var t = j.getUniqueIdentifierStr(),\n          n = {\n        bidderCode: e,\n        auctionId: i,\n        bidderRequestId: t,\n        tid: s,\n        bids: _({\n          bidderCode: e,\n          auctionId: i,\n          bidderRequestId: t,\n          adUnits: j.deepClone(r),\n          labels: c,\n          src: w.S2S.SRC\n        }),\n        auctionStart: o,\n        timeout: U.timeout,\n        src: w.S2S.SRC,\n        refererInfo: g\n      };\n      0 !== n.bids.length &#038;&#038; u.push(n);\n    }), r.forEach(function (e) {\n      var t = e.bids.filter(function (t) {\n        return O()(u, function (e) {\n          return O()(e.bids, function (e) {\n            return e.bidId === t.bid_id;\n          });\n        });\n      });\n      e.bids = t;\n    }), u.forEach(function (e) {\n      e.adUnitsS2SCopy = r.filter(function (e) {\n        return 0 < e.bids.length;\n      });\n    }));\n    var v,\n        h,\n        m = (v = e, (h = j.deepClone(v)).forEach(function (e) {\n      e.bids = e.bids.filter(function (e) );\n    }), h = h.filter(function (e) {\n      return 0 !== e.bids.length;\n    }));\n    return y.forEach(function (e) {\n      var t = j.getUniqueIdentifierStr(),\n          n = {\n        bidderCode: e,\n        auctionId: i,\n        bidderRequestId: t,\n        bids: _({\n          bidderCode: e,\n          auctionId: i,\n          bidderRequestId: t,\n          adUnits: j.deepClone(m),\n          labels: c,\n          src: \"client\"\n        }),\n        auctionStart: o,\n        timeout: a,\n        refererInfo: g\n      },\n          r = x[e];\n      r || j.logError(\"Trying to make a request for bidder that does not exist: \".concat(e)), r &#038;&#038; n.bids &#038;&#038; 0 !== n.bids.length &#038;&#038; u.push(n);\n    }), B.getConsentData() &#038;&#038; u.forEach(function (e) {\n      e.gdprConsent = B.getConsentData();\n    }), R.getConsentData() &#038;&#038; u.forEach(function (e) {\n      e.uspConsent = R.getConsentData();\n    }), u;\n  }, \"makeBidRequests\"), f.callBids = function (e, t, o, i, a, c, u) {\n    var n, r, s, d, f, l, p, g, y, b, v;\n    t.length ? (r = (n = m(t.reduce(function (e, t) {\n      return e[Number(void 0 !== t.src &#038;&#038; t.src === w.S2S.SRC)].push(t), e;\n    }, [[], []]), 2))[0], (s = n[1]).length &#038;&#038; (d = Object(h.b)(c, a ? {\n      request: a.request.bind(null, \"s2s\"),\n      done: a.done\n    } : void 0), f = U.bidders, l = x[U.adapter], p = s[0].tid, g = s[0].adUnitsS2SCopy, l ? (y = {\n      tid: p,\n      ad_units: g\n    }).ad_units.length &#038;&#038; (b = s.map(function (e) {\n      return e.start = Object(S.timestamp)(), i.bind(e);\n    }), v = y.ad_units.reduce(function (e, t) {\n      return e.concat((t.bids || []).reduce(function (e, t) {\n        return e.concat(t.bidder);\n      }, []));\n    }, []), j.logMessage(\"CALLING S2S HEADER BIDDERS ==== \".concat(f.filter(function (e) {\n      return E()(v, e);\n    }).join(\",\"))), s.forEach(function (e) {\n      C.emit(w.EVENTS.BID_REQUESTED, e);\n    }), l.callBids(y, s, function (e, t) {\n      var n = Object(S.getBidderRequest)(s, t.bidderCode, e);\n      n &#038;&#038; o.call(n, e, t);\n    }, function () {\n      return b.forEach(function (e) {\n        return e();\n      });\n    }, d)) : j.logError(\"missing \" + U.adapter)), r.forEach(function (t) {\n      t.start = Object(S.timestamp)();\n      var e = x[t.bidderCode];\n      j.logMessage(\"CALLING BIDDER ======= \".concat(t.bidderCode)), C.emit(w.EVENTS.BID_REQUESTED, t);\n      var n = Object(h.b)(c, a ? {\n        request: a.request.bind(null, t.bidderCode),\n        done: a.done\n      } : void 0),\n          r = i.bind(t);\n\n      try {\n        A.b.runWithBidder(t.bidderCode, S.bind.call(e.callBids, e, t, o.bind(t), r, n, u, A.b.callbackWithBidder(t.bidderCode)));\n      } catch (e) {\n        j.logError(\"\".concat(t.bidderCode, \" Bid Adapter emitted an uncaught error when parsing their bidRequest\"), {\n          e: e,\n          bidRequest: t\n        }), r();\n      }\n    })) : j.logWarn(\"callBids executed with no bidRequests.  Were they filtered by labels or sizing?\");\n  }, f.videoAdapters = [], f.registerBidAdapter = function (e, t) {\n    var n = (2 < arguments.length &#038;&#038; void 0 !== arguments[2] ? arguments[2] : {}).supportedMediaTypes,\n        r = void 0 === n ? [] : n;\n    e &#038;&#038; t ? \"function\" == typeof e.callBids ? (x[t] = e, E()(r, \"video\") &#038;&#038; f.videoAdapters.push(t), E()(r, \"native\") &#038;&#038; g.e.push(t)) : j.logError(\"Bidder adaptor error for bidder code: \" + t + \"bidder must implement a callBids() function\") : j.logError(\"bidAdaptor or bidderCode not specified\");\n  }, f.aliasBidAdapter = function (t, e) {\n    var n, r;\n\n    if (void 0 === x[e]) {\n      var o = x[t];\n\n      if (void 0 === o) {\n        var i = A.b.getConfig(\"s2sConfig\"),\n            a = i &#038;&#038; i.bidders;\n        a &#038;&#038; E()(a, e) ? l[e] = t : j.logError('bidderCode \"' + t + '\" is not an existing bidder.\"https:\/\/slate.com\/,\"adapterManager.aliasBidAdapter\");\n      } else try {\n        var c,\n            u,\n            s = (n = t, r = [], E()(f.videoAdapters, n) &#038;&#038; r.push(\"video\"), E()(g.e, n) &#038;&#038; r.push(\"native\"), r);\n        o.constructor.prototype != Object.prototype ? (u = new o.constructor()).setBidderCode(e) : (c = o.getSpec(), u = Object(d.newBidder)(b({}, c, {\n          code: e\n        })), l[e] = t), f.registerBidAdapter(u, e, {\n          supportedMediaTypes: s\n        });\n      } catch (e) {\n        j.logError(t + \" bidder does not currently support aliasing.\"https:\/\/slate.com\/,\"adapterManager.aliasBidAdapter\");\n      }\n    } else j.logMessage('alias name \"' + e + '\" has been already specified.');\n  }, f.registerAnalyticsAdapter = function (e) {\n    var t = e.adapter,\n        n = e.code;\n    t &#038;&#038; n ? \"function\" == typeof t.enableAnalytics ? (t.code = n, c[n] = t) : j.logError('Prebid Error: Analytics adaptor error for analytics \"'.concat(n, '\"n        analytics adapter must implement an enableAnalytics() function')) : j.logError(\"Prebid Error: analyticsAdapter or analyticsCode not specified\");\n  }, f.enableAnalytics = function (e) {\n    j.isArray(e) || (e = [e]), j._each(e, function (e) {\n      var t = c[e.provider];\n      t ? t.enableAnalytics(e) : j.logError(\"Prebid Error: no analytics adapter found in registry forn        \".concat(e.provider, \".\"));\n    });\n  }, f.getBidAdapter = function (e) {\n    return x[e];\n  }, f.callTimedOutBidders = function (t, n, r) {\n    n = n.map(function (e) {\n      return e.params = j.getUserConfiguredParams(t, e.adUnitCode, e.bidder), e.timeout = r, e;\n    }), n = j.groupBy(n, \"bidder\"), Object.keys(n).forEach(function (e) {\n      u(e, \"onTimeout\", n[e]);\n    });\n  }, f.callBidWonBidder = function (e, t, n) {\n    t.params = j.getUserConfiguredParams(n, t.adUnitCode, t.bidder), y.a.incrementBidderWinsCounter(t.adUnitCode, t.bidder), u(e, \"onBidWon\", t);\n  }, f.callSetTargetingBidder = function (e, t) {\n    u(e, \"onSetTargeting\", t);\n  }, t.default = f;\n}, function (e, t, n) {\n  function r() {\n    return (r = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var c,\n      o,\n      u = n(0),\n      i = n(5),\n      a = Array.prototype.slice,\n      s = Array.prototype.push,\n      d = u._map(i.EVENTS, function (e) {\n    return e;\n  }),\n      f = i.EVENT_ID_PATHS,\n      l = [];\n\n  e.exports = (c = {}, (o = {}).on = function (e, t, n) {\n    var r, o;\n    o = e, u.contains(d, o) ? (r = c[e] || {\n      que: []\n    }, n ? (r[n] = r[n] || {\n      que: []\n    }, r[n].que.push(t)) : r.que.push(t), c[e] = r) : u.logError(\"Wrong event name : \" + e + \" Valid event names :\" + d);\n  }, o.emit = function (e) {\n    !function (e, t) {\n      u.logMessage(\"Emitting event for: \" + e);\n\n      var n = t[0] || {},\n          r = n[f[e]],\n          o = c[e] || {\n        que: []\n      },\n          i = u._map(o, function (e, t) {\n        return t;\n      }),\n          a = [];\n\n      l.push({\n        eventType: e,\n        args: n,\n        id: r\n      }), r &#038;&#038; u.contains(i, r) &#038;&#038; s.apply(a, o[r].que), s.apply(a, o.que), u._each(a, function (e) {\n        if (e) try {\n          e.apply(null, t);\n        } catch (e) {\n          u.logError(\"Error executing handler:\"https:\/\/slate.com\/,\"events.js\", e);\n        }\n      });\n    }(e, a.call(arguments, 1));\n  }, o.off = function (e, n, r) {\n    var o = c[e];\n    u.isEmpty(o) || u.isEmpty(o.que) &#038;&#038; u.isEmpty(o[r]) || r &#038;&#038; (u.isEmpty(o[r]) || u.isEmpty(o[r].que)) || (r ? u._each(o[r].que, function (e) {\n      var t = o[r].que;\n      e === n &#038;&#038; t.splice(t.indexOf(e), 1);\n    }) : u._each(o.que, function (e) {\n      var t = o.que;\n      e === n &#038;&#038; t.splice(t.indexOf(e), 1);\n    }), c[e] = o);\n  }, o.get = function () {\n    return c;\n  }, o.getEvents = function () {\n    var n = [];\n    return u._each(l, function (e) {\n      var t = r({}, e);\n      n.push(t);\n    }), n;\n  }, o);\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"c\", function () {\n    return f;\n  }), n.d(t, \"d\", function () {\n    return l;\n  }), t.a = function (e) {\n    return i({\n      moduleName: e,\n      moduleType: \"core\"\n    });\n  }, t.b = function (e, t) {\n    return i({\n      gvlid: e,\n      moduleName: t\n    });\n  };\n  var r = n(13),\n      c = n(0),\n      o = n(12),\n      u = n.n(o),\n      d = [\"core\"https:\/\/slate.com\/,\"prebid-module\"],\n      f = [];\n\n  function i(e) {\n    var t = 0 < arguments.length &#038;&#038; void 0 !== e ? e : {},\n        o = t.gvlid,\n        i = t.moduleName,\n        a = t.moduleType;\n\n    function s(n) {\n      if (u()(d, a)) {\n        return n({\n          valid: !0\n        });\n      }\n\n      var r;\n      return l(o, i, {\n        hasEnforcementHook: !1\n      }, function (e) {\n        var t;\n        r = e &#038;&#038; e.hasEnforcementHook ? n(e) : (t = {\n          hasEnforcementHook: !1,\n          valid: c.hasDeviceAccess()\n        }, n(t));\n      }), r;\n    }\n\n    return {\n      setCookie: function setCookie(o, i, a, c, u, t) {\n        function n(e) {\n          var t, n, r;\n          e &#038;&#038; e.valid &#038;&#038; (t = u &#038;&#038; \"\" !== u ? \" ;domain=\".concat(encodeURIComponent(u)) : \"\", n = a &#038;&#038; \"\" !== a ? \" ;expires=\".concat(a) : \"\", r = null != c &#038;&#038; \"none\" == c.toLowerCase() ? \"; Secure\" : \"\", document.cookie = \"\".concat(o, \"=\").concat(encodeURIComponent(i)).concat(n, \"; path=\/\").concat(t).concat(c ? \"; SameSite=\".concat(c) : \"\").concat(r));\n        }\n\n        if (!t || \"function\" != typeof t) return s(n);\n        f.push(function () {\n          var e = s(n);\n          t(e);\n        });\n      },\n      getCookie: function getCookie(n, t) {\n        function r(e) {\n          if (e &#038;&#038; e.valid) ;)s*\" + n + \"s*=s*([^;]*)s*(;\n\n          return null;\n        }\n\n        if (!t || \"function\" != typeof t) return s(r);\n        f.push(function () {\n          var e = s(r);\n          t(e);\n        });\n      },\n      localStorageIsEnabled: function localStorageIsEnabled(t) {\n        function n(e) {\n          if (e &#038;&#038; e.valid) try {\n            return localStorage.setItem(\"prebid.cookieTest\"https:\/\/slate.com\/,\"1\"), \"1\" === localStorage.getItem(\"prebid.cookieTest\");\n          } catch (e) {}\n          return !1;\n        }\n\n        if (!t || \"function\" != typeof t) return s(n);\n        f.push(function () {\n          var e = s(n);\n          t(e);\n        });\n      },\n      cookiesAreEnabled: function cookiesAreEnabled(t) {\n        function n(e) \n\n        if (!t || \"function\" != typeof t) return s(n);\n        f.push(function () {\n          var e = s(n);\n          t(e);\n        });\n      },\n      setDataInLocalStorage: function setDataInLocalStorage(t, n, r) {\n        function o(e) {\n          e &#038;&#038; e.valid &#038;&#038; window.localStorage.setItem(t, n);\n        }\n\n        if (!r || \"function\" != typeof r) return s(o);\n        f.push(function () {\n          var e = s(o);\n          r(e);\n        });\n      },\n      getDataFromLocalStorage: function getDataFromLocalStorage(t, n) {\n        function r(e) {\n          return e &#038;&#038; e.valid ? window.localStorage.getItem(t) : null;\n        }\n\n        if (!n || \"function\" != typeof n) return s(r);\n        f.push(function () {\n          var e = s(r);\n          n(e);\n        });\n      },\n      removeDataFromLocalStorage: function removeDataFromLocalStorage(t, n) {\n        function r(e) {\n          e &#038;&#038; e.valid &#038;&#038; window.localStorage.removeItem(t);\n        }\n\n        if (!n || \"function\" != typeof n) return s(r);\n        f.push(function () {\n          var e = s(r);\n          n(e);\n        });\n      },\n      hasLocalStorage: function hasLocalStorage(t) {\n        function n(e) {\n          if (e &#038;&#038; e.valid) try {\n            return !!window.localStorage;\n          } catch (e) {\n            c.logError(\"Local storage api disabled\");\n          }\n          return !1;\n        }\n\n        if (!t || \"function\" != typeof t) return s(n);\n        f.push(function () {\n          var e = s(n);\n          t(e);\n        });\n      },\n      findSimilarCookies: function findSimilarCookies(i, t) {\n        function n(e) {\n          if (e &#038;&#038; e.valid) {\n            var t = [];\n            if (c.hasDeviceAccess()) for (var n = document.cookie.split(\";\"); n.length;) {\n              var r = n.pop(),\n                  o = (o = r.indexOf(\"=\")) < 0 ? r.length : o;\n              0 <= decodeURIComponent(r.slice(0, o).replace(\/^s+\/, \"\")).indexOf(i) &#038;&#038; t.push(decodeURIComponent(r.slice(o + 1)));\n            }\n            return t;\n          }\n        }\n\n        if (!t || \"function\" != typeof t) return s(n);\n        f.push(function () {\n          var e = s(n);\n          t(e);\n        });\n      }\n    };\n  }\n\n  var l = Object(r.b)(\"async\", function (e, t, n, r) {\n    r(n);\n  }, \"validateStorageEnforcement\");\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = o, t.c = function (e) , t.b = function (e, t) {\n    e.render(t);\n  };\n  var u = n(39),\n      s = n(0),\n      r = n(11),\n      d = n.n(r),\n      f = \"outstream\";\n\n  function o(e) {\n    var t = this,\n        r = e.url,\n        n = e.config,\n        o = e.id,\n        i = e.callback,\n        a = e.loaded,\n        c = e.adUnitCode;\n    this.url = r, this.config = n, this.handlers = {}, this.id = o, this.loaded = a, this.cmd = [], this.push = function (e) {\n      \"function\" == typeof e ? t.loaded ? e.call() : t.cmd.push(e) : s.logError(\"Commands given to Renderer.push must be wrapped in a function\");\n    }, this.callback = i || function () {\n      t.loaded = !0, t.process();\n    }, this.render = function () {\n      var t, e, n;\n      t = c, e = pbjs.adUnits, (n = d()(e, function (e) {\n        return e.code === t;\n      })) &#038;&#038; n.renderer &#038;&#038; n.renderer.url &#038;&#038; n.renderer.render ? s.logWarn(\"External Js not loaded by Renderer since renderer url and callback is already defined on adUnit \".concat(c)) : Object(u.a)(r, f, this.callback), this._render ? this._render.apply(this, arguments) : s.logWarn(\"No render function was provided, please use .setRender on the renderer\");\n    }.bind(this);\n  }\n\n  o.install = function (e) {\n    return new o({\n      url: e.url,\n      config: e.config,\n      id: e.id,\n      callback: e.callback,\n      loaded: e.loaded,\n      adUnitCode: e.adUnitCode\n    });\n  }, o.prototype.getConfig = function () {\n    return this.config;\n  }, o.prototype.setRender = function (e) {\n    this._render = e;\n  }, o.prototype.setEventHandlers = function (e) {\n    this.handlers = e;\n  }, o.prototype.handleVideoEvent = function (e) {\n    var t = e.id,\n        n = e.eventName;\n    \"function\" == typeof this.handlers[n] &#038;&#038; this.handlers[n](), s.logMessage(\"Prebid Renderer event for id \".concat(t, \" type \").concat(n));\n  }, o.prototype.process = function () {\n    for (; 0 < this.cmd.length;) {\n      try {\n        this.cmd.shift().call();\n      } catch (e) {\n        s.logError(\"Error processing Renderer command: \", e);\n      }\n    }\n  };\n}, function (e, t, n) {\n  var r = n(105);\n  e.exports = r;\n}, function (e, t, n) {\n  var r = n(114);\n  e.exports = r;\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"b\", function () {\n    return a;\n  }), n.d(t, \"a\", function () {\n    return c;\n  }), t.d = function (e, t) {\n    var n = 2 < arguments.length &#038;&#038; void 0 !== arguments[2] ? arguments[2] : 15;\n    0 === e.getHooks({\n      hook: t\n    }).length &#038;&#038; e.before(t, n);\n  }, t.c = function (e, n) {\n    a(\"async\", function (e) {\n      e.forEach(function (e) {\n        return n.apply(void 0, function (e) {\n          if (Array.isArray(e)) return i(e);\n        }(t = e) || function (e) {\n          if (\"undefined\" != typeof Symbol &#038;&#038; Symbol.iterator in Object(e)) return Array.from(e);\n        }(t) || function (e, t) {\n          if (e) \n        }(t) || function () {\n          throw new TypeError(\"Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n        }());\n        var t;\n      });\n    }, e)([]);\n  }, t.e = function (e) {\n    for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) {\n      n[r - 1] = arguments[r];\n    }\n\n    c(e).before(function (e, t) {\n      t.push(n), e(t);\n    });\n  };\n  var r = n(184),\n      o = n.n(r);\n\n  function i(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  var a = o()( o.a.QUEUE\n  ),\n      c = a.get;\n}, function (e, t, n) {\n  \"use strict\";\n\n  function v(r) {\n    function e(e, t, n) {\n      if (this instanceof r) {\n        switch (arguments.length) {\n          case 0:\n            return new r();\n\n          case 1:\n            return new r(e);\n\n          case 2:\n            return new r(e, t);\n        }\n\n        return new r(e, t, n);\n      }\n\n      return r.apply(this, arguments);\n    }\n\n    return e.prototype = r.prototype, e;\n  }\n\n  var h = n(22),\n      m = n(107).f,\n      S = n(109),\n      A = n(42),\n      E = n(21),\n      O = n(29),\n      I = n(24);\n\n  e.exports = function (e, t) {\n    var n,\n        r,\n        o,\n        i,\n        a,\n        c,\n        u,\n        s,\n        d = e.target,\n        f = e.global,\n        l = e.stat,\n        p = e.proto,\n        g = f ? h : l ? h[d] : (h[d] || {}).prototype,\n        y = f ? A : A[d] || (A[d] = {}),\n        b = y.prototype;\n\n    for (o in t) {\n      n = !S(f ? o : d + (l ? \".\" : \"#\") + o, e.forced) &#038;&#038; g &#038;&#038; I(g, o), a = y[o], n &#038;&#038; (c = e.noTargetGet ? (s = m(g, o)) &#038;&#038; s.value : g[o]), i = n &#038;&#038; c ? c : t[o], n &#038;&#038; _typeof(a) == _typeof(i) || (u = e.bind &#038;&#038; n ? E(i, h) : e.wrap &#038;&#038; n ? v(i) : p &#038;&#038; \"function\" == typeof i ? E(Function.call, i) : i, (e.sham || i &#038;&#038; i.sham || a &#038;&#038; a.sham) &#038;&#038; O(u, \"sham\", !0), y[o] = u, p &#038;&#038; (I(A, r = d + \"Prototype\") || O(A, r, {}), A[r][o] = i, e.real &#038;&#038; b &#038;&#038; !b[o] &#038;&#038; O(b, o, i)));\n    }\n  };\n}, function (e, t, n) {\n  var r = n(23);\n\n  e.exports = function (e) {\n    if (!r(e)) throw TypeError(String(e) + \" is not an object\");\n    return e;\n  };\n}, function (e, t) {\n  e.exports = !0;\n}, function (e, t, n) {\n  function p(e, t) {\n    this.stopped = e, this.result = t;\n  }\n\n  var g = n(15),\n      y = n(82),\n      b = n(50),\n      v = n(21),\n      h = n(61),\n      m = n(83);\n\n  (e.exports = function (e, t, n, r, o) {\n    var i,\n        a,\n        c,\n        u,\n        s,\n        d,\n        f,\n        l = v(t, n, r ? 2 : 1);\n    if (o) i = e;else {\n      if (\"function\" != typeof (a = h(e))) throw TypeError(\"Target is not iterable\");\n\n      if (y(a)) {\n        for (c = 0, u = b(e.length); c < u; c++) {\n          if ((s = r ? l(g(f = e[c])[0], f[1]) : l(e[c])) &#038;&#038; s instanceof p) return s;\n        }\n\n        return new p(!1);\n      }\n\n      i = a.call(e);\n    }\n\n    for (d = i.next; !(f = d.call(i)).done;) {\n      if (\"object\" == _typeof(s = m(i, l, f.value, r)) &#038;&#038; s &#038;&#038; s instanceof p) return s;\n    }\n\n    return new p(!1);\n  }).stop = function (e) {\n    return new p(!0, e);\n  };\n}, function (e, t) {\n  e.exports = function (e) {\n    if (\"function\" != typeof e) throw TypeError(String(e) + \" is not a function\");\n    return e;\n  };\n}, function (e, t, n) , function (e, t, n) {\n  \"use strict\";\n\n  t.a = function () {\n    return window.pbjs;\n  }, window.pbjs = window.pbjs || {}, window.pbjs.cmd = window.pbjs.cmd || [], window.pbjs.que = window.pbjs.que || [], window._pbjsGlobals = window._pbjsGlobals || [], window._pbjsGlobals.push(\"pbjs\");\n}, function (e, t, n) {\n  var i = n(18);\n\n  e.exports = function (r, o, e) {\n    if (i(r), void 0 === o) return r;\n\n    switch (e) {\n      case 0:\n        return function () {\n          return r.call(o);\n        };\n\n      case 1:\n        return function (e) {\n          return r.call(o, e);\n        };\n\n      case 2:\n        return function (e, t) {\n          return r.call(o, e, t);\n        };\n\n      case 3:\n        return function (e, t, n) {\n          return r.call(o, e, t, n);\n        };\n    }\n\n    return function () {\n      return r.apply(o, arguments);\n    };\n  };\n}, function (n, e, t) {\n  (function (e) {\n    function t(e) {\n      return e &#038;&#038; e.Math == Math &#038;&#038; e;\n    }\n\n    n.exports = t(\"object\" == (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) &#038;&#038; globalThis) || t(\"object\" == (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) &#038;&#038; window) || t(\"object\" == (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) &#038;&#038; self) || t(\"object\" == _typeof(e) &#038;&#038; e) || Function(\"return this\")();\n  }).call(e, t(33));\n}, function (e, t) {\n  e.exports = function (e) {\n    return \"object\" == _typeof(e) ? null !== e : \"function\" == typeof e;\n  };\n}, function (e, t) {\n  var n = {}.hasOwnProperty;\n\n  e.exports = function (e, t) {\n    return n.call(e, t);\n  };\n}, function (e, t, n) {\n  function r(e) {\n    return \"function\" == typeof e ? e : void 0;\n  }\n\n  var o = n(42),\n      i = n(22);\n\n  e.exports = function (e, t)  r(i[e]) : o[e] &#038;&#038; o[e][t] ;\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return u;\n  });\n  var r = n(0),\n      s = n(40),\n      o = n(11),\n      i = n.n(o),\n      a = n(5);\n  var d,\n      c,\n      u = (d = [], (c = {}).addWinningBid = function (t) {\n    var e = i()(d, function (e) {\n      return e.getAuctionId() === t.auctionId;\n    });\n    e ? (t.status = a.BID_STATUS.RENDERED, e.addWinningBid(t)) : Object(r.logWarn)(\"Auction not found when adding winning bid\");\n  }, c.getAllWinningBids = function () {\n    return d.map(function (e) {\n      return e.getWinningBids();\n    }).reduce(r.flatten, []);\n  }, c.getBidsRequested = function () {\n    return d.map(function (e) {\n      return e.getBidRequests();\n    }).reduce(r.flatten, []);\n  }, c.getNoBids = function () {\n    return d.map(function (e) {\n      return e.getNoBids();\n    }).reduce(r.flatten, []);\n  }, c.getBidsReceived = function () {\n    return d.map(function (e) {\n      if (e.getAuctionStatus() === s.a) return e.getBidsReceived();\n    }).reduce(r.flatten, []).filter(function (e) {\n      return e;\n    });\n  }, c.getAdUnits = function () {\n    return d.map(function (e) {\n      return e.getAdUnits();\n    }).reduce(r.flatten, []);\n  }, c.getAdUnitCodes = function () {\n    return d.map(function (e) {\n      return e.getAdUnitCodes();\n    }).reduce(r.flatten, []).filter(r.uniques);\n  }, c.createAuction = function (e) {\n    var t,\n        n = e.adUnits,\n        r = e.adUnitCodes,\n        o = e.callback,\n        i = e.cbTimeout,\n        a = e.labels,\n        c = e.auctionId,\n        u = Object(s.k)({\n      adUnits: n,\n      adUnitCodes: r,\n      callback: o,\n      cbTimeout: i,\n      labels: a,\n      auctionId: c\n    });\n    return t = u, d.push(t), u;\n  }, c.findBidByAdId = function (t) {\n    return i()(d.map(function (e) {\n      return e.getBidsReceived();\n    }).reduce(r.flatten, []), function (e) {\n      return e.adId === t;\n    });\n  }, c.getStandardBidderAdServerTargeting = function () {\n    return Object(s.j)()[a.JSON_MAPPING.ADSERVER_TARGETING];\n  }, c.setStatusForBids = function (e, t) {\n    var n,\n        r = c.findBidByAdId(e);\n    r &#038;&#038; (r.status = t), !r || t !== a.BID_STATUS.BID_TARGETING_SET || (n = i()(d, function (e) {\n      return e.getAuctionId() === r.auctionId;\n    })) &#038;&#038; n.setBidTargeting(r);\n  }, c.getLastAuctionId = function () {\n    return d.length &#038;&#038; d[d.length - 1].getAuctionId();\n  }, c);\n}, function (e, t, n) {\n  var r = n(28);\n  e.exports = !r(function () {\n    return 7 != Object.defineProperty({}, 1, {\n      get: function get() {\n        return 7;\n      }\n    })[1];\n  });\n}, function (e, t) {\n  e.exports = function (e) {\n    try {\n      return !!e();\n    } catch (e) {\n      return !0;\n    }\n  };\n}, function (e, t, n) {\n  var r = n(27),\n      o = n(31),\n      i = n(46);\n  e.exports = r ? function (e, t, n) {\n    return o.f(e, t, i(1, n));\n  } : function (e, t, n) {\n    return e[t] = n, e;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = r, n.d(t, \"b\", function () {\n    return o;\n  });\n  var a = n(0);\n\n  function c() {\n    return (c = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  function r(o) {\n    function i() {\n      var e = function () {\n        var t,\n            n = [];\n\n        do {\n          try {\n            t = t ? t.parent : o;\n\n            try {\n              var e = t == o.top,\n                  r =  null,\n                location: t.location.href ;\n              e &#038;&#038; (r = c(r, {\n                canonicalUrl: function (e) {\n                  try {\n                    var t = e.querySelector(\"link[rel=\"canonical\"]\");\n                    if (null !== t) return t.href;\n                  } catch (e) {}\n\n                  return null;\n                }(t.document)\n              })), n.push(r);\n            } catch (e) {\n              n.push({\n                referrer: null,\n                location: null,\n                isTop: t == o.top\n              }), Object(a.logWarn)(\"Trying to access cross domain iframe. Continuing without referrer and location\");\n            }\n          } catch (e) {\n            return n.push({\n              referrer: null,\n              location: null,\n              isTop: !1\n            }), n;\n          }\n        } while (t != o.top);\n\n        return n;\n      }(),\n          t = function () {\n        try {\n          if (!o.location.ancestorOrigins) return;\n          return o.location.ancestorOrigins;\n        } catch (e) {}\n      }();\n\n      if (t) for (var n = 0, r = t.length; n < r; n++) {\n        e[n].ancestor = t[n];\n      }\n      return e;\n    }\n\n    return function () {\n      try {\n        var e,\n            t = i(),\n            n = t.length - 1,\n            r = null !== t[n].location || 0 < n &#038;&#038; null !== t[n - 1].referrer,\n            o = function (e) {\n          for (var t = [], n = null, r = null, o = null, i = null, a = null, c = null, u = e.length - 1; 0 <= u; u--) {\n            try {\n              r = e[u].location;\n            } catch (e) {}\n\n            if (r) t.push(r), c = c || r;else if (0 !== u) {\n              o = e[u - 1];\n\n              try {\n                i = o.referrer, a = o.ancestor;\n              } catch (e) {}\n\n              i ? (t.push(i), c = c || i) : a ? (t.push(a), c = c || a) : t.push(n);\n            } else t.push(n);\n          }\n\n          return {\n            stack: t,\n            detectedRefererUrl: c\n          };\n        }(t);\n\n        return t[t.length - 1].canonicalUrl &#038;&#038; (e = t[t.length - 1].canonicalUrl), {\n          referer: o.detectedRefererUrl,\n          reachedTop: r,\n          numIframes: n,\n          stack: o.stack,\n          canonicalUrl: e\n        };\n      } catch (e) {}\n    };\n  }\n\n  var o = r(window);\n}, function (e, t, n) {\n  var r = n(27),\n      o = n(74),\n      i = n(15),\n      a = n(55),\n      c = Object.defineProperty;\n  t.f = r ? c : function (e, t, n) {\n    if (i(e), t = a(t, !0), i(n), o) try {\n      return c(e, t, n);\n    } catch (e) {}\n    if (\"get\" in n || \"set\" in n) throw TypeError(\"Accessors not supported\");\n    return \"value\" in n &#038;&#038; (e[t] = n.value), e;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (e, t) {\n    return new r(e, t);\n  };\n\n  var o = n(0);\n\n  function r(e, t) {\n    var n = t &#038;&#038; t.src || \"client\",\n        r = e || 0;\n    this.bidderCode = t &#038;&#038; t.bidder || \"\", this.width = 0, this.height = 0, this.statusMessage = function () {\n      switch (r) {\n        case 0:\n          return \"Pending\";\n\n        case 1:\n          return \"Bid available\";\n\n        case 2:\n          return \"Bid returned empty or error response\";\n\n        case 3:\n          return \"Bid timed out\";\n      }\n    }(), this.adId = o.getUniqueIdentifierStr(), this.requestId = t &#038;&#038; t.bidId, this.mediaType = \"banner\", this.source = n, this.getStatusCode = function () {\n      return r;\n    }, this.getSize = function () {\n      return this.width + \"x\" + this.height;\n    };\n  }\n}, function (e, t) {\n  var n = function () {\n    return this;\n  }();\n\n  try  catch (e) {\n    \"object\" == (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) &#038;&#038; (n = window);\n  }\n\n  e.exports = n;\n}, function (e, t, n) {\n  var r = n(16),\n      o = n(91);\n  e.exports = r ? o : function (e) {\n    return Set.prototype.values.call(e);\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"e\", function () {\n    return i;\n  }), n.d(t, \"a\", function () {\n    return s;\n  }), t.g = function (e) {\n    if (e &#038;&#038; e.type &#038;&#038; function (e) (e.type)) return d[e.type];\n    return e;\n  }, t.f = function (t, e) {\n    var n = Object(a.getBidRequest)(t.requestId, e);\n    if (!n) return !1;\n    if (!Object(a.deepAccess)(t, \"native.clickUrl\")) return !1;\n    if (Object(a.deepAccess)(t, \"native.image\") &#038;&#038; (!Object(a.deepAccess)(t, \"native.image.height\") || !Object(a.deepAccess)(t, \"native.image.width\"))) return !1;\n    if (Object(a.deepAccess)(t, \"native.icon\") &#038;&#038; (!Object(a.deepAccess)(t, \"native.icon.height\") || !Object(a.deepAccess)(t, \"native.icon.width\"))) return !1;\n    var r = n.nativeParams;\n    if (!r) return !0;\n    var o = Object.keys(r).filter(function (e) {\n      return r[e].required;\n    }),\n        i = Object.keys(t.native).filter(function (e) {\n      return t.native[e];\n    });\n    return o.every(function (e) {\n      return c()(i, e);\n    });\n  }, t.b = function (e, t)  []).forEach(a.triggerPixel), e.action;\n  , t.d = function (r, o) {\n    var i = {};\n    return Object.keys(r.native).forEach(function (e) {\n      var t = u.NATIVE_KEYS[e],\n          n = f(r.native[e]);\n      Object(a.deepAccess)(o, \"mediaTypes.native.\".concat(e, \".sendId\")) &#038;&#038; (n = \"\".concat(t, \":\").concat(r.adId)), t &#038;&#038; n &#038;&#038; (i[t] = n);\n    }), i;\n  }, t.c = function (e, r) {\n    var o = {\n      message: \"assetResponse\",\n      adId: e.adId,\n      assets: []\n    };\n    return e.assets.forEach(function (e) {\n      var t = Object(a.getKeyByValue)(u.NATIVE_KEYS, e),\n          n = f(r.native[t]);\n      o.assets.push({\n        key: t,\n        value: n\n      });\n    }), o;\n  };\n  var a = n(0),\n      r = n(12),\n      c = n.n(r);\n\n  function o(e) {\n    return (o = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  var u = n(5),\n      i = [],\n      s = Object.keys(u.NATIVE_KEYS).map(function (e) {\n    return u.NATIVE_KEYS[e];\n  }),\n      d = {\n    image: {\n      image: {\n        required: !0\n      },\n      title: {\n        required: !0\n      },\n      sponsoredBy: {\n        required: !0\n      },\n      clickUrl: {\n        required: !0\n      },\n      body: {\n        required: !1\n      },\n      icon: {\n        required: !1\n      }\n    }\n  };\n\n  function f(e) {\n    return \"object\" === o(e) &#038;&#038; e.url ? e.url : e;\n  }\n}, function (e, t) {\n  e.exports = {};\n}, function (e, t, n) {\n  var o = n(15),\n      i = n(18),\n      a = n(19)(\"species\");\n\n  e.exports = function (e, t)  null == (n = o(r)[a]) ? t : i(n);\n  ;\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"b\", function () {\n    return c;\n  }), n.d(t, \"a\", function () {\n    return u;\n  }), t.d = function (e, t) {\n    var n = Object(i.getBidRequest)(e.requestId, t),\n        r = n &#038;&#038; Object(i.deepAccess)(n, \"mediaTypes.video\"),\n        o = r &#038;&#038; Object(i.deepAccess)(r, \"context\");\n    return s(e, n, r, o);\n  }, n.d(t, \"c\", function () {\n    return s;\n  });\n  n(7);\n  var i = n(0),\n      o = n(3),\n      r = n(12),\n      a = (n.n(r), n(13)),\n      c = \"outstream\",\n      u = \"instream\";\n  var s = Object(a.b)(\"sync\", function (e, t, n, r) {\n    return !t || n &#038;&#038; r !== c ? o.b.getConfig(\"cache.url\") || !e.vastXml || e.vastUrl ? !(!e.vastUrl &#038;&#038; !e.vastXml) : (Object(i.logError)('n        This bid contains only vastXml and will not work when a prebid cache url is not specified.n        Try enabling prebid cache with pbjs.setConfig({ cache: {url: \"...\"} });n      '), !1) : r !== c || !(!e.renderer &#038;&#038; !t.renderer);\n  }, \"checkVideoBidSetup\");\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (r, e, t) {\n    if (!e || !r) return void i.logError(\"cannot load external script without url and moduleCode\");\n    if (!o()(c, e)) return void i.logError(\"\".concat(e, \" not whitelisted for loading external JavaScript\"));\n    if (a[r]) return t &#038;&#038; \"function\" == typeof t &#038;&#038; (a[r].loaded ? t() : a[r].callbacks.push(t)), a[r].tag;\n    a[r] = {\n      loaded: !1,\n      tag: null,\n      callbacks: []\n    }, t &#038;&#038; \"function\" == typeof t &#038;&#038; a[r].callbacks.push(t);\n    return i.logWarn(\"module \".concat(e, \" is loading external JavaScript\")), function (e, t) {\n      var n = document.createElement(\"script\");\n      n.type = \"text\/javascript\", n.async = !0, (a[r].tag = n).readyState ? n.onreadystatechange = function ()  (n.onreadystatechange = null, t());\n       : n.onload = function () {\n        t();\n      };\n      return n.src = e, i.insertElement(n), n;\n    }(r, function () {\n      a[r].loaded = !0;\n\n      try {\n        for (var e = 0; e < a[r].callbacks.length; e++) {\n          a[r].callbacks[e]();\n        }\n      } catch (e) {\n        i.logError(\"Error executing callback\"https:\/\/slate.com\/,\"adloader.js:loadExternalScript\", e);\n      }\n    });\n  };\n\n  var r = n(12),\n      o = n.n(r),\n      i = n(0),\n      a = {},\n      c = [\"criteo\"https:\/\/slate.com\/,\"outstream\"https:\/\/slate.com\/,\"adagio\"https:\/\/slate.com\/,\"browsi\"];\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"b\", function () {\n    return F;\n  }), n.d(t, \"a\", function () {\n    return W;\n  }), t.k = function (e) {\n    var t,\n        o,\n        y,\n        b,\n        i = e.adUnits,\n        n = e.adUnitCodes,\n        r = e.callback,\n        a = e.cbTimeout,\n        c = e.labels,\n        u = e.auctionId,\n        v = i,\n        s = c,\n        d = n,\n        h = [],\n        f = [],\n        l = [],\n        p = u || D.generateUUID(),\n        g = r,\n        m = a,\n        S = [],\n        A = new Set();\n\n    function E() {\n      return {\n        auctionId: p,\n        timestamp: t,\n        auctionEnd: o,\n        auctionStatus: y,\n        adUnits: v,\n        adUnitCodes: d,\n        labels: s,\n        bidderRequests: h,\n        noBids: l,\n        bidsReceived: f,\n        winningBids: S,\n        timeout: m\n      };\n    }\n\n    function O(n, e) {\n      var r, t;\n      e &#038;&#038; clearTimeout(b), void 0 === o &#038;&#038; (r = [], n &#038;&#038; (D.logMessage(\"Auction \".concat(p, \" timedOut\")), t = A, (r = h.map(function (e) {\n        return (e.bids || []).filter(function (e) {\n          return !t.has(e.bidder);\n        });\n      }).reduce(w.flatten, []).map(function (e) {\n        return {\n          bidId: e.bidId,\n          bidder: e.bidder,\n          adUnitCode: e.adUnitCode,\n          auctionId: e.auctionId\n        };\n      })).length &#038;&#038; M.emit(q.EVENTS.BID_TIMEOUT, r)), y = W, o = Date.now(), M.emit(q.EVENTS.AUCTION_END, E()), $(v, function () {\n        try {\n          var e;\n          null != g &#038;&#038; (e = f.filter(D.bind.call(w.adUnitsFilter, this, d)).reduce(Z, {}), g.apply(pbjs, [e, n, p]), g = null);\n        } catch (e) {\n          D.logError(\"Error executing bidsBackHandler\", null, e);\n        } finally {\n          r.length &#038;&#038; N.callTimedOutBidders(i, r, m);\n          var t = U.b.getConfig(\"userSync\") || {};\n          t.enableOverride || k(t.syncDelay);\n        }\n      }));\n    }\n\n    function I() {\n      D.logInfo(\"Bids Received for Auction with id: \".concat(p), f), y = W, O(!1, !0);\n    }\n\n    function T(e) {\n      A.add(e);\n    }\n\n    function j(d) {\n      var f = this;\n      d.forEach(function (e) {\n        var t;\n        t = e, h = h.concat(t);\n      });\n      var l = {},\n          e = {\n        bidRequests: d,\n        run: function run() {\n          var e, t;\n          e = O.bind(null, !0), t = setTimeout(e, m), b = t, y = F, M.emit(q.EVENTS.AUCTION_INIT, E());\n          var n,\n              r,\n              o,\n              i,\n              a,\n              c,\n              u = (n = I, r = f, o = 0, i = !1, a = new Set(), c = {}, {\n            addBidResponse: function addBidResponse(e, t) {\n              c[t.requestId] = !0, o++;\n\n              var n = function (e) {\n                var t = e.adUnitCode,\n                    n = e.bid,\n                    r = e.bidderRequest,\n                    o = e.auctionId,\n                    i = r.start,\n                    a = P({}, n, );\n                a.timeToRespond = a.responseTimestamp - a.requestTimestamp, M.emit(q.EVENTS.BID_ADJUSTMENT, a);\n\n                var c = r.bids &#038;&#038; _()(r.bids, function (e) {\n                  return e.adUnitCode == t;\n                }),\n                    u = c &#038;&#038; c.renderer;\n\n                u &#038;&#038; u.url &#038;&#038; (a.renderer = x.a.install({\n                  url: u.url\n                }), a.renderer.setRender(u.render));\n                var s = X(n.mediaType, c, U.b.getConfig(\"mediaTypePriceGranularity\")),\n                    d = Object(C.a)(a.cpm, \"object\" === R(s) ? s : U.b.getConfig(\"customPriceBucket\"), U.b.getConfig(\"currency.granularityMultiplier\"));\n                return a.pbLg = d.low, a.pbMg = d.med, a.pbHg = d.high, a.pbAg = d.auto, a.pbDg = d.dense, a.pbCg = d.custom, a;\n              }({\n                adUnitCode: e,\n                bid: t,\n                bidderRequest: this,\n                auctionId: r.getAuctionId()\n              });\n\n              \"video\" === n.mediaType ? function (e, t, n, r)  (D.logError(\"videoCacheKey specified but not required vastUrl for video bid\"), o = !1) : (o = !1, Q(e, t, r, i))), o &#038;&#038; (Y(e, t), r());\n              (r, n, this, s) : (Y(r, n), s());\n            },\n            adapterDone: function adapterDone() {\n              a.add(this), i = r.getBidRequests().every(function (e) {\n                return a.has(e);\n              }), this.bids.forEach(function (e) ), i &#038;&#038; 0 === o &#038;&#038; n();\n            }\n          });\n\n          function s() {\n            o--, i &#038;&#038; 0 === o &#038;&#038; n();\n          }\n\n          N.callBids(v, d, function () {\n            for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) {\n              t[n] = arguments[n];\n            }\n\n            J.apply({\n              dispatch: u.addBidResponse,\n              bidderRequest: this\n            }, t);\n          }, u.adapterDone, {\n            request: function request(e, t) {\n              g(z, t), g(l, e), V[e] || (V[e] = {\n                SRA: !0,\n                origin: t\n              }), 1 < l[e] &#038;&#038; (V[e].SRA = !1);\n            },\n            done: function done(e) {\n              z[e]--, H[0] &#038;&#038; p(H[0]) &#038;&#038; H.shift();\n            }\n          }, m, T);\n        }\n      };\n\n      function p(e) {\n        var r = !0,\n            o = U.b.getConfig(\"maxRequestsPerOrigin\") || L;\n        return e.bidRequests.some(function (e) {\n          var t = 1,\n              n = void 0 !== e.src &#038;&#038; e.src === q.S2S.SRC ? \"s2s\" : e.bidderCode;\n          return V[n] &#038;&#038; (!1 === V[n].SRA &#038;&#038; (t = Math.min(e.bids.length, o)), z[V[n].origin] + t > o && (r = !1)), !r;\n        }), r && e.run(), r;\n      }\n\n      function g(e, t) {\n        void 0 === e[t] ? e[t] = 1 : e[t]++;\n      }\n\n      p(e) || (D.logWarn(\"queueing auction due to limited endpoint capacity\"), H.push(e));\n    }\n\n    return {\n      addBidReceived: function addBidReceived(e) {\n        f = f.concat(e);\n      },\n      addNoBid: function addNoBid(e) {\n        l = l.concat(e);\n      },\n      executeCallback: O,\n      callBids: function callBids() {\n        y = G, t = Date.now();\n        var e = N.makeBidRequests(v, t, p, m, s);\n        D.logInfo(\"Bids Requested for Auction with id: \".concat(p), e), e.length < 1 ? (D.logWarn(\"No valid bid requests returned for auction\"), I()) : K.call({\n          dispatch: j,\n          context: this\n        }, e);\n      },\n      addWinningBid: function addWinningBid(e) {\n        S = S.concat(e), N.callBidWonBidder(e.bidder, e, i);\n      },\n      setBidTargeting: function setBidTargeting(e) {\n        N.callSetTargetingBidder(e.bidder, e);\n      },\n      getWinningBids: function getWinningBids() {\n        return S;\n      },\n      getTimeout: function getTimeout() {\n        return m;\n      },\n      getAuctionId: function getAuctionId() {\n        return p;\n      },\n      getAuctionStatus: function getAuctionStatus() {\n        return y;\n      },\n      getAdUnits: function getAdUnits() {\n        return v;\n      },\n      getAdUnitCodes: function getAdUnitCodes() {\n        return d;\n      },\n      getBidRequests: function getBidRequests() {\n        return h;\n      },\n      getBidsReceived: function getBidsReceived() {\n        return f;\n      },\n      getNoBids: function getNoBids() {\n        return l;\n      }\n    };\n  }, n.d(t, \"c\", function () {\n    return J;\n  }), n.d(t, \"e\", function () {\n    return K;\n  }), t.g = s, t.d = Y, n.d(t, \"f\", function () {\n    return Q;\n  }), n.d(t, \"i\", function () {\n    return d;\n  }), n.d(t, \"h\", function () {\n    return f;\n  }), t.j = l;\n\n  var w = n(0),\n      C = n(45),\n      a = n(35),\n      i = n(102),\n      x = n(10),\n      U = n(3),\n      r = n(44),\n      o = n(13),\n      c = n(11),\n      _ = n.n(c),\n      B = n(38),\n      u = n(2);\n\n  function R(e) {\n    return (R = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  function P() {\n    return (P = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var k = r.a.syncUsers,\n      D = n(0),\n      N = n(7).default,\n      M = n(8),\n      q = n(5),\n      G = \"started\",\n      F = \"inProgress\",\n      W = \"completed\";\n  M.on(q.EVENTS.BID_ADJUSTMENT, function (e) {\n    !function (e) {\n      var t,\n          n = e.bidderCode,\n          r = e.cpm;\n      if (pbjs.bidderSettings &#038;&#038; (n &#038;&#038; pbjs.bidderSettings[n] &#038;&#038; \"function\" == typeof pbjs.bidderSettings[n].bidCpmAdjustment ? t = pbjs.bidderSettings[n].bidCpmAdjustment : pbjs.bidderSettings[q.JSON_MAPPING.BD_SETTING_STANDARD] &#038;&#038; \"function\" == typeof pbjs.bidderSettings[q.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment &#038;&#038; (t = pbjs.bidderSettings[q.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment), t)) try {\n        r = t(e.cpm, P({}, e));\n      } catch (e) {\n        D.logError(\"Error during bid adjustment\"https:\/\/slate.com\/,\"bidmanager.js\", e);\n      }\n      0 <= r &#038;&#038; (e.cpm = r);\n    }(e);\n  });\n  var L = 4,\n      z = {},\n      V = {},\n      H = [];\n  var J = Object(o.b)(\"async\", function (e, t) {\n    this.dispatch.call(this.bidderRequest, e, t);\n  }, \"addBidResponse\"),\n      K = Object(o.b)(\"sync\", function (e) {\n    this.dispatch.call(this.context, e);\n  }, \"addBidderRequests\"),\n      $ = Object(o.b)(\"async\", function (e, t) {\n    t &#038;&#038; t();\n  }, \"bidsBackCallback\");\n\n  function s(e, t) {\n    t.timeToRespond > e.getTimeout() + U.b.getConfig(\"timeoutBuffer\") && e.executeCallback(!0);\n  }\n\n  function Y(e, t) {\n    var n = e.getBidRequests(),\n        r = _()(n, function (e) {\n      return e.bidderCode === t.bidderCode;\n    });\n\n    !function (t, e) {\n      var n;\n      {\n        var r;\n        t.bidderCode && (0 < t.cpm || t.dealId) &#038;&#038; (r = _()(e.bids, function (e) {\n          return e.adUnitCode === t.adUnitCode;\n        }), n = function (e, t, n) {\n          if (!t) return {};\n          var r = {},\n              o = pbjs.bidderSettings;\n          {\n            var i;\n            o &#038;&#038; (i = l(t.mediaType, e, n), p(r, i, t), e &#038;&#038; o[e] &#038;&#038; o[e][q.JSON_MAPPING.ADSERVER_TARGETING] &#038;&#038; (p(r, o[e], t), t.sendStandardTargeting = o[e].sendStandardTargeting));\n          }\n          t.native &#038;&#038; (r = P({}, r, Object(a.d)(t, n)));\n          return r;\n        }(t.bidderCode, t, r));\n      }\n      t.adserverTargeting = P(t.adserverTargeting || {}, n);\n    }(t, r), M.emit(q.EVENTS.BID_RESPONSE, t), e.addBidReceived(t), s(e, t);\n  }\n\n  var Q = Object(o.b)(\"async\", function (n, r, o, e) {\n    Object(i.b)([r], function (e, t) , e);\n  }, \"callPrebidCache\");\n\n  function X(e, t, n) {\n    if (e &#038;&#038; n) {\n      if (e === u.d) {\n        var r = Object(w.deepAccess)(t, \"mediaTypes.\".concat(u.d, \".context\"), \"instream\");\n        if (n[\"\".concat(u.d, \"-\").concat(r)]) return n[\"\".concat(u.d, \"-\").concat(r)];\n      }\n\n      return n[e];\n    }\n  }\n\n  var d = function d(e, t) {\n    var n = X(e, t, U.b.getConfig(\"mediaTypePriceGranularity\"));\n    return \"string\" == typeof e &#038;&#038; n ? \"string\" == typeof n ? n : \"custom\" : U.b.getConfig(\"priceGranularity\");\n  },\n      f = function f(t) {\n    return function (e) {\n      return t === q.GRANULARITY_OPTIONS.AUTO ? e.pbAg : t === q.GRANULARITY_OPTIONS.DENSE ? e.pbDg : t === q.GRANULARITY_OPTIONS.LOW ? e.pbLg : t === q.GRANULARITY_OPTIONS.MEDIUM ? e.pbMg : t === q.GRANULARITY_OPTIONS.HIGH ? e.pbHg : t === q.GRANULARITY_OPTIONS.CUSTOM ? e.pbCg : void 0;\n    };\n  };\n\n  function l(e, t, n) {\n    function r(e, t) {\n      return {\n        key: e,\n        val: \"function\" == typeof t ? function (e) {\n          return t(e);\n        } : function (e) {\n          return Object(w.getValue)(e, t);\n        }\n      };\n    }\n\n    var o,\n        i,\n        a = q.TARGETING_KEYS,\n        c = d(e, n),\n        u = pbjs.bidderSettings;\n    return u[q.JSON_MAPPING.BD_SETTING_STANDARD] || (u[q.JSON_MAPPING.BD_SETTING_STANDARD] = {}), u[q.JSON_MAPPING.BD_SETTING_STANDARD][q.JSON_MAPPING.ADSERVER_TARGETING] || (u[q.JSON_MAPPING.BD_SETTING_STANDARD][q.JSON_MAPPING.ADSERVER_TARGETING] = [r(a.BIDDER, \"bidderCode\"), r(a.AD_ID, \"adId\"), r(a.PRICE_BUCKET, f(c)), r(a.SIZE, \"size\"), r(a.DEAL, \"dealId\"), r(a.SOURCE, \"source\"), r(a.FORMAT, \"mediaType\")]), \"video\" === e &#038;&#038; (o = u[q.JSON_MAPPING.BD_SETTING_STANDARD][q.JSON_MAPPING.ADSERVER_TARGETING], [a.UUID, a.CACHE_ID].forEach(function (t) {\n      void 0 === _()(o, function (e) {\n        return e.key === t;\n      }) &#038;&#038; o.push(r(t, \"videoCacheKey\"));\n    }), !U.b.getConfig(\"cache.url\") || t &#038;&#038; !1 === D.deepAccess(u, \"\".concat(t, \".sendStandardTargeting\")) || (i = Object(w.parseUrl)(U.b.getConfig(\"cache.url\")), void 0 === _()(o, function (e) {\n      return e.key === a.CACHE_HOST;\n    }) &#038;&#038; o.push(r(a.CACHE_HOST, function (e) {\n      return D.deepAccess(e, \"adserverTargeting.\".concat(a.CACHE_HOST)) ? e.adserverTargeting[a.CACHE_HOST] : i.hostname;\n    })))), u[q.JSON_MAPPING.BD_SETTING_STANDARD];\n  }\n\n  function p(r, o, i) {\n    var e = o[q.JSON_MAPPING.ADSERVER_TARGETING];\n    return i.size = i.getSize(), D._each(e, function (e) {\n      var t = e.key,\n          n = e.val;\n      if (r[t] &#038;&#038; D.logWarn(\"The key: \" + t + \" is getting ovewritten\"), D.isFn(n)) try {\n        n = n(i);\n      } catch (e) {\n        D.logError(\"bidmanager\"https:\/\/slate.com\/,\"ERROR\", e);\n      }\n      (void 0 === o.suppressEmptyKeys || !0 !== o.suppressEmptyKeys) &#038;&#038; t !== q.TARGETING_KEYS.DEAL || !D.isEmptyStr(n) &#038;&#038; null != n ? r[t] = n : D.logInfo(\"suppressing empty key '\" + t + \"' from adserver targeting\");\n    }), r;\n  }\n\n  function Z(e, t) {\n    return e[t.adUnitCode] || (e[t.adUnitCode] = {\n      bids: []\n    }), e[t.adUnitCode].bids.push(t), e;\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return p;\n  });\n  var v = n(0),\n      h = n(3),\n      m = n(35),\n      r = n(26),\n      o = n(101),\n      i = n(2),\n      a = n(12),\n      S = n.n(a);\n\n  function A() {\n    return (A = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  function E(e, t, n) {\n    return t in e ? Object.defineProperty(e, t, {\n      value: n,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }) : e[t] = n, e;\n  }\n\n  function O(e) {\n    return function (e) {\n      if (Array.isArray(e)) return c(e);\n    }(e) || function (e) {\n      if (\"undefined\" != typeof Symbol &#038;&#038; Symbol.iterator in Object(e)) return Array.from(e);\n    }(e) || function (e, t) (e) || function () {\n      throw new TypeError(\"Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function c(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  var u = n(0),\n      I = n(5),\n      T = [],\n      j = Object.keys(I.TARGETING_KEYS).map(function (e) {\n    return I.TARGETING_KEYS[e];\n  }),\n      s = function s(e) {\n    return e.responseTimestamp + 1e3 * e.ttl + 1e3 > Object(v.timestamp)();\n  },\n      d = function d(e)  !e.status);\n  ;\n\n  function w(e, r, t) {\n    var o = 2 < arguments.length &#038;&#038; void 0 !== t ? t : 0,\n        i = [],\n        a = h.b.getConfig(\"sendBidsControl.dealPrioritization\"),\n        c = Object(v.groupBy)(e, \"adUnitCode\");\n    return Object.keys(c).forEach(function (e) {\n      var t = [],\n          n = Object(v.groupBy)(c[e], \"bidderCode\");\n      Object.keys(n).forEach(function (e) {\n        return t.push(n[e].reduce(r));\n      }), 0 < o ? (t = a ? t(C(!0)) : t.sort(function (e, t) {\n        return t.cpm - e.cpm;\n      }), i.push.apply(i, O(t.slice(0, o)))) : i.push.apply(i, O(t));\n    }), i;\n  }\n\n  function C(e) {\n    var n = 0 < arguments.length &#038;&#038; void 0 !== e &#038;&#038; e;\n    return function (e, t) {\n      return void 0 !== e.adUnitTargeting.hb_deal &#038;&#038; void 0 === t.adUnitTargeting.hb_deal ? -1 : void 0 === e.adUnitTargeting.hb_deal &#038;&#038; void 0 !== t.adUnitTargeting.hb_deal ? 1 : n ? t.cpm - e.cpm : t.adUnitTargeting.hb_pb - e.adUnitTargeting.hb_pb;\n    };\n  }\n\n  var f,\n      x,\n      l,\n      p = (f = r.a, l = {}, (x = {}).setLatestAuctionForAdUnit = function (e, t) {\n    l[e] = t;\n  }, x.resetPresetTargeting = function (e, t) {\n    var n, o;\n    Object(v.isGptPubadsDefined)() &#038;&#038; (n = _(e), o = f.getAdUnits().filter(function (e) {\n      return S()(n, e.code);\n    }), window.googletag.pubads().getSlots().forEach(function (n) {\n      var r = u.isFn(t) &#038;&#038; t(n);\n      T.forEach(function (t) {\n        o.forEach(function (e)  u.isFn(r) &#038;&#038; r(e.code)) &#038;&#038; n.setTargeting(t, null);\n        );\n      });\n    }));\n  }, x.resetPresetTargetingAST = function (e) {\n    _(e).forEach(function (e) {\n      var t,\n          n,\n          r = window.apntag.getTag(e);\n      r &#038;&#038; r.keywords &#038;&#038; (t = Object.keys(r.keywords), n = {}, t.forEach(function (e)  (n[e] = r.keywords[e]);\n      ), window.apntag.modifyTag(e, {\n        keywords: n\n      }));\n    });\n  }, x.getAllTargeting = function (e) {\n    var n,\n        t,\n        r,\n        o,\n        i,\n        a,\n        c,\n        u,\n        s,\n        d = 1 < arguments.length &#038;&#038; void 0 !== arguments[1] ? arguments[1] : B(),\n        f = _(e),\n        l = (a = f, c = d, u = x.getWinningBids(a, c), s = R(), (u = u.map(function (i) {\n      return E({}, i.adUnitCode, Object.keys(i.adserverTargeting).filter(function (e) ).reduce(function (e, t) {\n        var n = [i.adserverTargeting[t]],\n            r = E({}, t.substring(0, 20), n);\n        if (t !== I.TARGETING_KEYS.DEAL) return [].concat(O(e), [r]);\n        var o = E({}, \"\".concat(t, \"_\").concat(i.bidderCode).substring(0, 20), n);\n        return [].concat(O(e), [r, o]);\n      }, []));\n    })).concat((i = f, d.filter(function (e) {\n      return S()(i, e.adUnitCode);\n    }).map(function (e) {\n      return A({}, e);\n    }).reduce(P, []).map(k).filter(function (e) {\n      return e;\n    }))).concat(h.b.getConfig(\"enableSendAllBids\") ? (n = f, t = d, r = j.concat(m.a), o = h.b.getConfig(\"sendBidsControl.bidLimit\"), w(t, v.getHighestCpm, o).map(function (t) {\n      if (U(t, n)) return E({}, t.adUnitCode, D(t, r.filter(function (e) {\n        return void 0 !== t.adserverTargeting[e];\n      })));\n    }).filter(function (e) {\n      return e;\n    })) : function (e, t) {\n      if (!0 !== h.b.getConfig(\"targetingControls.alwaysIncludeDeals\")) return [];\n      var n = j.concat(m.a);\n      return w(t, v.getHighestCpm).map(function (t) {\n        if (t.dealId &#038;&#038; U(t, e)) return E({}, t.adUnitCode, D(t, n.filter(function (e) {\n          return void 0 !== t.adserverTargeting[e];\n        })));\n      }).filter(function (e) {\n        return e;\n      });\n    }(f, d)));\n\n    l.map(function (t) {\n      Object.keys(t).map(function (e) {\n        t[e].map(function (e) {\n          -1 === T.indexOf(Object.keys(e)[0]) &#038;&#038; (T = Object.keys(e).concat(T));\n        });\n      });\n    }), l = l.map(function (e) {\n      return E({}, Object.keys(e)[0], e[Object.keys(e)[0]].map(function (e) {\n        return E({}, Object.keys(e)[0], e[Object.keys(e)[0]].join(\"https:\/\/slate.com\/,\"));\n      }).reduce(function (e, t) {\n        return A(t, e);\n      }, {}));\n    }).reduce(function (e, t) {\n      var n = Object.keys(t)[0];\n      return e[n] = A({}, e[n], t[n]), e;\n    }, {});\n    var p,\n        g,\n        y,\n        b = h.b.getConfig(\"targetingControls.auctionKeyMaxChars\");\n    return b &#038;&#038; (Object(v.logInfo)(\"Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of \".concat(b, \" characters.  Running checks on auction keys...\")), p = l, g = b, y = Object(v.deepClone)(p), l = Object.keys(y).map(function (e) {\n      return {\n        adUnitCode: e,\n        adUnitTargeting: y[e]\n      };\n    }).sort(C()).reduce(function (e, t, n, r) {\n      var o,\n          i = (o = t.adUnitTargeting, Object.keys(o).reduce(function (e, t) {\n        return e + \"\".concat(t, \"%3d\").concat(encodeURIComponent(o[t]), \"%26\");\n      }, \"\"));\n      n + 1 === r.length &#038;&#038; (i = i.slice(0, -3));\n      var a = t.adUnitCode,\n          c = i.length;\n      return c <= g ? (g -= c, Object(v.logInfo)(\"AdUnit '\".concat(a, \"' auction keys comprised of \").concat(c, \" characters.  Deducted from running threshold; new limit is \").concat(g), y[a]), e[a] = y[a]) : Object(v.logWarn)(\"The following keys for adUnitCode '\".concat(a, \"' exceeded the current limit of the 'auctionKeyMaxChars' setting.nThe key-set size was \").concat(c, \", the current allotted amount was \").concat(g, \".n\"), y[a]), n + 1 === r.length &#038;&#038; 0 === Object.keys(e).length &#038;&#038; Object(v.logError)(\"No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars).  Please review setup and consider adjusting.\"), e;\n    }, {})), f.forEach(function (e) {\n      l[e] || (l[e] = {});\n    }), l;\n  }, x.setTargetingForGPT = function (o, e) {\n    window.googletag.pubads().getSlots().forEach(function (r) {\n      Object.keys(o).filter((e || Object(v.isAdUnitCodeMatchingSlot))(r)).forEach(function (n) {\n        return Object.keys(o[n]).forEach(function (t) {\n          var e = o[n][t].split(\",\");\n          (e = 1 < e.length ? [e] : e).map(function (e) {\n            return u.logMessage(\"Attempting to set key value for slot: \".concat(r.getSlotElementId(), \" key: \").concat(t, \" value: \").concat(e)), e;\n          }).forEach(function (e) {\n            r.setTargeting(t, e);\n          });\n        });\n      });\n    });\n  }, x.getWinningBids = function (e) {\n    var n = 1 < arguments.length &#038;&#038; void 0 !== arguments[1] ? arguments[1] : B(),\n        t = _(e);\n\n    return n.filter(function (e) {\n      return S()(t, e.adUnitCode);\n    }).filter(function (e) {\n      return 0 < e.cpm;\n    }).map(function (e) {\n      return e.adUnitCode;\n    }).filter(v.uniques).map(function (t) {\n      return n.filter(function (e) {\n        return e.adUnitCode === t ? e : null;\n      }).reduce(v.getHighestCpm);\n    });\n  }, x.setTargetingForAst = function (e) {\n    var r = x.getAllTargeting(e);\n\n    try {\n      x.resetPresetTargetingAST(e);\n    } catch (e) {\n      u.logError(\"unable to reset targeting for AST\" + e);\n    }\n\n    Object.keys(r).forEach(function (n) {\n      return Object.keys(r[n]).forEach(function (e) {\n        var t;\n        u.logMessage(\"Attempting to set targeting for targetId: \".concat(n, \" key: \").concat(e, \" value: \").concat(r[n][e])), (u.isStr(r[n][e]) || u.isArray(r[n][e])) &#038;&#038; (t = {}, e.search(\/pt[0-9]\/) < 0 ? t[e.toUpperCase()] = r[n][e] : t[e] = r[n][e], window.apntag.setKeywords(n, t, {\n          overrideKeyValue: !0\n        }));\n      });\n    });\n  }, x.isApntagDefined = function () {\n    if (window.apntag &#038;&#038; u.isFn(window.apntag.setKeywords)) return !0;\n  }, x);\n\n  function U(e, t) \n\n  function _(e) \n\n  function B() {\n    var e = f.getBidsReceived();\n    return h.b.getConfig(\"useBidCache\") || (e = e.filter(function (e) {\n      return l[e.adUnitCode] === e.auctionId;\n    })), w(e = e.filter(function (e) {\n      return Object(v.deepAccess)(e, \"video.context\") !== i.a;\n    }).filter(function (e)  Object(o.c)([e.width, e.height]);\n    ).filter(d).filter(s), v.getOldestHighestCpmBid);\n  }\n\n  function R() {\n    return f.getStandardBidderAdServerTargeting().map(function (e) {\n      return e.key;\n    }).concat(j).filter(v.uniques);\n  }\n\n  function P(r, o, e, t) {\n    return Object.keys(o.adserverTargeting).filter(g()).forEach(function (e) {\n      var t, n;\n      r.length &#038;&#038; r.filter((n = e, function (e) {\n        return e.adUnitCode === o.adUnitCode &#038;&#038; e.adserverTargeting[n];\n      })).forEach((t = e, function (e) ));\n    }), r.push(o), r;\n  }\n\n  function g() {\n    var t = R().concat(m.a);\n    return function (e) {\n      return -1 === t.indexOf(e);\n    };\n  }\n\n  function k(t) {\n    return E({}, t.adUnitCode, Object.keys(t.adserverTargeting).filter(g()).map(function (e) {\n      return E({}, e.substring(0, 20), [t.adserverTargeting[e]]);\n    }));\n  }\n\n  function D(t, e) {\n    return e.map(function (e) {\n      return E({}, \"\".concat(e, \"_\").concat(t.bidderCode).substring(0, 20), [t.adserverTargeting[e]]);\n    });\n  }\n}, function (e, t) {\n  e.exports = {};\n}, function (e, t, n) {\n  \"use strict\";\n\n  function i(e, t, n, r) {\n    var o;\n    t in e &#038;&#038; (\"function\" != typeof (o = r) || \"[object Function]\" !== u.call(o) || !r()) || (f ? d(e, t, {\n      configurable: !0,\n      enumerable: !1,\n      value: n,\n      writable: !0\n    }) : e[t] = n);\n  }\n\n  function r(e, t) {\n    var n = 2 < arguments.length ? arguments[2] : {},\n        r = a(t);\n    c &#038;&#038; (r = s.call(r, Object.getOwnPropertySymbols(t)));\n\n    for (var o = 0; o < r.length; o += 1) {\n      i(e, r[o], t[r[o]], n[r[o]]);\n    }\n  }\n\n  var a = n(93),\n      c = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol(\"foo\")),\n      u = Object.prototype.toString,\n      s = Array.prototype.concat,\n      d = Object.defineProperty,\n      f = d &#038;&#038; function () {\n    var e = {};\n\n    try {\n      for (var t in (d(e, \"x\", {\n        enumerable: !1,\n        value: e\n      }), e)) {\n        return !1;\n      }\n\n      return e.x === e;\n    } catch (e) {\n      return !1;\n    }\n  }();\n\n  r.supportsDescriptors = !!f, e.exports = r;\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return S;\n  });\n  var a = n(0),\n      r = n(3),\n      o = n(12),\n      i = n.n(o),\n      c = n(9);\n\n  function u(e, t) {\n    return function (e) {\n      if (Array.isArray(e)) return e;\n    }(e) || function (e, t) {\n      if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n      var n = [],\n          r = !0,\n          o = !1,\n          i = void 0;\n\n      try {\n        for (var a, c = e[Symbol.iterator](); !(r = (a = c.next()).done) &#038;&#038; (n.push(a.value), !t || n.length !== t); r = !0) {\n          ;\n        }\n      } catch (e) {\n        o = !0, i = e;\n      } finally {\n        try  c.return();\n         finally {\n          if (o) throw i;\n        }\n      }\n\n      return n;\n    }(e, t) || function (e, t) (e, t) || function () {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n    }();\n  }\n\n  function s(e, t) {\n    (null == t || t > e.length) && (t = e.length);\n\n    for (var n = 0, r = new Array(t); n < t; n++) {\n      r[n] = e[n];\n    }\n\n    return r;\n  }\n\n  function d() {\n    return (d = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  r.b.setDefaults({\n    userSync: a.deepClone({\n      syncEnabled: !0,\n      filterSettings: {\n        image: {\n          bidders: \"*\",\n          filter: \"include\"\n        }\n      },\n      syncsPerBidder: 5,\n      syncDelay: 3e3,\n      auctionDelay: 0\n    })\n  });\n  var f = Object(c.a)(\"usersync\");\n  var l,\n      p,\n      g,\n      y,\n      b,\n      v,\n      h,\n      m = !a.isSafariBrowser() &#038;&#038; f.cookiesAreEnabled(),\n      S = (l = {\n    config: r.b.getConfig(\"userSync\"),\n    browserSupportsCookies: m\n  }, p = {}, g = A(), y = new Set(), v = {\n    image: !0,\n    iframe: !(b = {})\n  }, h = l.config, r.b.getConfig(\"userSync\", function (e) {\n    var t;\n    e.userSync &#038;&#038; (t = e.userSync.filterSettings, a.isPlainObject(t) &#038;&#038; (t.image || t.all || (e.userSync.filterSettings.image = {\n      bidders: \"*\",\n      filter: \"include\"\n    }))), h = d(h, e.userSync);\n  }), p.registerSync = function (e, t, n) {\n    return y.has(t) ? a.logMessage('already fired syncs for \"'.concat(t, '\", ignoring registerSync call')) : h.syncEnabled &#038;&#038; a.isArray(g[e]) ? t ? 0 !== h.syncsPerBidder &#038;&#038; Number(b[t]) >= h.syncsPerBidder ? a.logWarn('Number of user syncs exceeded for \"'.concat(t, '\"')) : p.canBidderRegisterSync(e, t) ? (g[e].push([t, n]), (r = b)[o = t] ? r[o] += 1 : r[o] = 1, void (b = r)) : a.logWarn('Bidder \"'.concat(t, '\" not permitted to register their \"').concat(e, '\" userSync pixels.')) : a.logWarn(\"Bidder is required for registering sync\") : a.logWarn('User sync type \"'.concat(e, '\" not supported'));\n    var r, o;\n  }, p.syncUsers = function () {\n    var e = 0 < arguments.length &#038;&#038; void 0 !== arguments[0] ? arguments[0] : 0;\n    if (e) return setTimeout(E, Number(e));\n    E();\n  }, p.triggerUserSyncs = function () {\n    h.enableOverride &#038;&#038; p.syncUsers();\n  }, p.canBidderRegisterSync = function (e, t) , p);\n\n  function A() {\n    return {\n      image: [],\n      iframe: []\n    };\n  }\n\n  function E() {\n    if (h.syncEnabled &#038;&#038; l.browserSupportsCookies) {\n      try {\n        !function () {\n          if (!v.image) return;\n          O(g.image, function (e) {\n            var t = u(e, 2),\n                n = t[0],\n                r = t[1];\n            a.logMessage(\"Invoking image pixel user sync for bidder: \".concat(n)), a.triggerPixel(r);\n          });\n        }(), function () {\n          if (!v.iframe) return;\n          O(g.iframe, function (e) {\n            var t = u(e, 2),\n                n = t[0],\n                r = t[1];\n            a.logMessage(\"Invoking iframe user sync for bidder: \".concat(n)), a.insertUserSyncIframe(r);\n          });\n        }();\n      } catch (e) {\n        return a.logError(\"Error firing user syncs\", e);\n      }\n\n      g = A();\n    }\n  }\n\n  function O(e, t) {\n    a.shuffle(e).forEach(function (e) {\n      t(e), y.add(e[0]);\n    });\n  }\n\n  function I(e, t) {\n    var n = h.filterSettings;\n\n    if (function (e, t) {\n      if (e.all &#038;&#038; e[t]) return a.logWarn('Detected presence of the \"filterSettings.all\" and \"filterSettings.'.concat(t, '\" in userSync config.  You cannot mix \"all\" with \"iframe\/image\" configs; they are mutually exclusive.')), !1;\n      var n = e.all ? e.all : e[t],\n          r = e.all ? \"all\" : t;\n      if (!n) return !1;\n      var o = n.filter,\n          i = n.bidders;\n      if (o &#038;&#038; \"include\" !== o &#038;&#038; \"exclude\" !== o) return a.logWarn('UserSync \"filterSettings.'.concat(r, \".filter\" setting '\").concat(o, \"' is not a valid option; use either 'include' or 'exclude'.\")), !1;\n      return !!(\"*\" === i || Array.isArray(i) &#038;&#038; 0 < i.length &#038;&#038; i.every(function (e) {\n        return a.isStr(e) &#038;&#038; \"*\" !== e;\n      })) || (a.logWarn('Detected an invalid setup in userSync \"filterSettings.'.concat(r, \".bidders\"; use either '*' (to represent all bidders) or an array of bidders.\")), !1);\n    }(n, e)) {\n      v[e] = !0;\n      var r = n.all ? n.all : n[e],\n          o = \"*\" === r.bidders ? [t] : r.bidders;\n      return {\n        include: function include(e, t) {\n          return !i()(e, t);\n        },\n        exclude: function exclude(e, t) {\n          return i()(e, t);\n        }\n      }[r.filter || \"include\"](o, t);\n    }\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return d;\n  }), n.d(t, \"b\", function () {\n    return h;\n  });\n  var r = n(11),\n      b = n.n(r),\n      o = n(0),\n      v = 2,\n      i = {\n    buckets: [{\n      max: 5,\n      increment: .5\n    }]\n  },\n      a = {\n    buckets: [{\n      max: 20,\n      increment: .1\n    }]\n  },\n      c = {\n    buckets: [{\n      max: 20,\n      increment: .01\n    }]\n  },\n      u = {\n    buckets: [{\n      max: 3,\n      increment: .01\n    }, {\n      max: 8,\n      increment: .05\n    }, {\n      max: 20,\n      increment: .5\n    }]\n  },\n      s = {\n    buckets: [{\n      max: 5,\n      increment: .05\n    }, {\n      max: 10,\n      increment: .1\n    }, {\n      max: 20,\n      increment: .5\n    }]\n  };\n\n  function d(e, t) {\n    var n = 2 < arguments.length &#038;&#038; void 0 !== arguments[2] ? arguments[2] : 1,\n        r = parseFloat(e);\n    return isNaN(r) &#038;&#038; (r = \"\"), {\n      low: \"\" === r ? \"\" : f(e, i, n),\n      med: \"\" === r ? \"\" : f(e, a, n),\n      high: \"\" === r ? \"\" : f(e, c, n),\n      auto: \"\" === r ? \"\" : f(e, s, n),\n      dense: \"\" === r ? \"\" : f(e, u, n),\n      custom: \"\" === r ? \"\" : f(e, t, n)\n    };\n  }\n\n  function f(n, e, r) {\n    var o = \"\";\n    if (!h(e)) return o;\n    var t,\n        i,\n        a,\n        c,\n        u,\n        s,\n        d,\n        f,\n        l,\n        p = e.buckets.reduce(function (e, t) {\n      return e.max > t.max ? e : t;\n    }, {\n      max: 0\n    }),\n        g = 0,\n        y = b()(e.buckets, function (e) {\n      if (n > p.max * r) {\n        var t = e.precision;\n        void 0 === t && (t = v), o = (e.max * r).toFixed(t);\n      } else {\n        if (n <= e.max * r &#038;&#038; g * r <= n) return e.min = g, e;\n        g = e.max;\n      }\n    });\n    return y &#038;&#038; (t = n, a = r, c = void 0 !== (i = y).precision ? i.precision : v, u = i.increment * a, s = i.min * a, d = Math.pow(10, c + 2), f = (t * d - s * d) \/ (u * d), l = Math.floor(f) * u + s, o = (l = Number(l.toFixed(10))).toFixed(c)), o;\n  }\n\n  function h(e)  !Array.isArray(e.buckets)) return !1;\n    var t = !0;\n    return e.buckets.forEach(function (e)  (t = !1);\n    ), t;\n  \n}, function (e, t) {\n  e.exports = function (e, t) {\n    return {\n      enumerable: !(1 &#038; e),\n      configurable: !(2 &#038; e),\n      writable: !(4 &#038; e),\n      value: t\n    };\n  };\n}, function (e, t, n) {\n  var r = n(73),\n      o = n(49);\n\n  e.exports = function (e) {\n    return r(o(e));\n  };\n}, function (e, t) {\n  var n = {}.toString;\n\n  e.exports = function (e) {\n    return n.call(e).slice(8, -1);\n  };\n}, function (e, t) {\n  e.exports = function (e) {\n    if (null == e) throw TypeError(\"Can't call method on \" + e);\n    return e;\n  };\n}, function (e, t, n) {\n  var r = n(58),\n      o = Math.min;\n\n  e.exports = function (e) {\n    return 0 < e ? o(r(e), 9007199254740991) : 0;\n  };\n}, function (e, t) {\n  e.exports = function () {};\n}, function (e, t, n) {\n  var r = n(25);\n  e.exports = r;\n}, function (e, t) {\n  e.exports = {};\n}, function (e, t, n) {\n  var r,\n      o,\n      i,\n      a,\n      c,\n      u,\n      s,\n      d,\n      f = n(122),\n      l = n(22),\n      p = n(23),\n      g = n(29),\n      y = n(24),\n      b = n(65),\n      v = n(53),\n      h = l.WeakMap;\n  s = f ? (r = new h(), o = r.get, i = r.has, a = r.set, c = function c(e, t) {\n    return a.call(r, e, t), t;\n  }, u = function u(e) {\n    return o.call(r, e) || {};\n  }, function (e) {\n    return i.call(r, e);\n  }) : (v[d = b(\"state\")] = !0, c = function c(e, t) {\n    return g(e, d, t), t;\n  }, u = function u(e) {\n    return y(e, d) ? e[d] : {};\n  }, function (e) {\n    return y(e, d);\n  }), e.exports = {\n    set: c,\n    get: u,\n    has: s,\n    enforce: function enforce(e) {\n      return s(e) ? u(e) : c(e, {});\n    },\n    getterFor: function getterFor(n) {\n      return function (e) ;\n    }\n  };\n}, function (e, t, n) {\n  var o = n(23);\n\n  e.exports = function (e, t) {\n    if (!o(e)) return e;\n    var n, r;\n    if (t &#038;&#038; \"function\" == typeof (n = e.toString) &#038;&#038; !o(r = n.call(e))) return r;\n    if (\"function\" == typeof (n = e.valueOf) &#038;&#038; !o(r = n.call(e))) return r;\n    if (!t &#038;&#038; \"function\" == typeof (n = e.toString) &#038;&#038; !o(r = n.call(e))) return r;\n    throw TypeError(\"Can't convert object to primitive value\");\n  };\n}, function (e, t, n) {\n  function r(p) {\n    var g = 1 == p,\n        y = 2 == p,\n        b = 3 == p,\n        v = 4 == p,\n        h = 6 == p,\n        m = 5 == p || h;\n    return function (e, t, n, r) {\n      for (var o, i, a = E(e), c = A(a), u = S(t, n, 3), s = O(c.length), d = 0, f = r || I, l = g ? f(e, s) : y ? f(e, 0) : void 0; d < s; d++) {\n        if ((m || d in c) &#038;&#038; (i = u(o = c[d], d, a), p)) if (g) l[d] = i;else if (i) switch (p) {\n          case 3:\n            return !0;\n\n          case 5:\n            return o;\n\n          case 6:\n            return d;\n\n          case 2:\n            T.call(l, o);\n        } else if (v) return !1;\n      }\n\n      return h ? -1 : b || v ? v : l;\n    };\n  }\n\n  var S = n(21),\n      A = n(73),\n      E = n(57),\n      O = n(50),\n      I = n(110),\n      T = [].push;\n  e.exports = {\n    forEach: r(0),\n    map: r(1),\n    filter: r(2),\n    some: r(3),\n    every: r(4),\n    find: r(5),\n    findIndex: r(6)\n  };\n}, function (e, t, n) {\n  var r = n(49);\n\n  e.exports = function (e) {\n    return Object(r(e));\n  };\n}, function (e, t) {\n  var n = Math.ceil,\n      r = Math.floor;\n\n  e.exports = function (e) {\n    return isNaN(e = +e) ? 0 : (0 < e ? r : n)(e);\n  };\n}, function (e, t) {\n  var n = 0,\n      r = Math.random();\n\n  e.exports = function (e) {\n    return \"Symbol(\" + String(void 0 === e ? \"\" : e) + \")_\" + (++n + r).toString(36);\n  };\n}, function (e, t, n) {\n  function a(e) {\n    throw e;\n  }\n\n  var c = n(27),\n      u = n(28),\n      s = n(24),\n      d = Object.defineProperty,\n      f = {};\n\n  e.exports = function (e, t) {\n    if (s(f, e)) return f[e];\n    var n = [][e],\n        r = !!s(t = t || {}, \"ACCESSORS\") &#038;&#038; t.ACCESSORS,\n        o = s(t, 0) ? t[0] : a,\n        i = s(t, 1) ? t[1] : void 0;\n    return f[e] = !!n &#038;&#038; !u(function () {\n      if (r &#038;&#038; !c) return !0;\n      var e = {\n        length: -1\n      };\n      r ? d(e, 1, {\n        enumerable: !0,\n        get: a\n      }) : e[1] = 1, n.call(e, o, i);\n    });\n  };\n}, function (e, t, n) {\n  var r = n(62),\n      o = n(36),\n      i = n(19)(\"iterator\");\n\n  e.exports = function (e)  o[r(e)];\n  ;\n}, function (e, t, n) {\n  var r = n(63),\n      o = n(48),\n      i = n(19)(\"toStringTag\"),\n      a = \"Arguments\" == o(function () {\n    return arguments;\n  }());\n  e.exports = r ? o : function (e) {\n    var t, n, r;\n    return void 0 === e ? \"Undefined\" : null === e ? \"Null\" : \"string\" == typeof (n = function (e, t) {\n      try {\n        return e[t];\n      } catch (e) {}\n    }(t = Object(e), i)) ? n : a ? o(t) : \"Object\" == (r = o(t)) &#038;&#038; \"function\" == typeof t.callee ? \"Arguments\" : r;\n  };\n}, function (e, t, n) {\n  var r = {};\n  r[n(19)(\"toStringTag\")] = \"z\", e.exports = \"[object z]\" === String(r);\n}, function (e, t, n) {\n  var i = n(63),\n      a = n(31).f,\n      c = n(29),\n      u = n(24),\n      s = n(121),\n      d = n(19)(\"toStringTag\");\n\n  e.exports = function (e, t, n, r) {\n    var o;\n    e &#038;&#038; (o = n ? e : e.prototype, u(o, d) || a(o, d, {\n      configurable: !0,\n      value: t\n    }), r &#038;&#038; !i &#038;&#038; c(o, \"toString\", s));\n  };\n}, function (e, t, n) {\n  var r = n(76),\n      o = n(59),\n      i = r(\"keys\");\n\n  e.exports = function (e) ;\n}, function (e, t, n) {\n  \"use strict\";\n\n  function v() {\n    return this;\n  }\n\n  var h = n(14),\n      m = n(130),\n      S = n(89),\n      A = n(132),\n      E = n(64),\n      O = n(29),\n      I = n(87),\n      r = n(19),\n      T = n(16),\n      j = n(36),\n      o = n(88),\n      w = o.IteratorPrototype,\n      C = o.BUGGY_SAFARI_ITERATORS,\n      x = r(\"iterator\"),\n      U = \"values\",\n      _ = \"entries\";\n\n  e.exports = function (e, t, n, r, o, i, a) {\n    m(n, t, r);\n\n    function c(e) {\n      if (e === o &#038;&#038; y) return y;\n      if (!C &#038;&#038; e in p) return p[e];\n\n      switch (e) {\n        case \"keys\":\n        case U:\n        case _:\n          return function () {\n            return new n(this, e);\n          };\n      }\n\n      return function () {\n        return new n(this);\n      };\n    }\n\n    var u,\n        s,\n        d,\n        f = t + \" Iterator\",\n        l = !1,\n        p = e.prototype,\n        g = p[x] || p[\"@@iterator\"] || o &#038;&#038; p[o],\n        y = !C &#038;&#038; g || c(o),\n        b = \"Array\" == t &#038;&#038; p.entries || g;\n    if (b &#038;&#038; (u = S(b.call(new e())), w !== Object.prototype &#038;&#038; u.next &#038;&#038; (T || S(u) === w || (A ? A(u, w) : \"function\" != typeof u[x] &#038;&#038; O(u, x, v)), E(u, f, !0, !0), T &#038;&#038; (j[f] = v))), o == U &#038;&#038; g &#038;&#038; g.name !== U &#038;&#038; (l = !0, y = function y() {\n      return g.call(this);\n    }), T &#038;&#038; !a || p[x] === y || O(p, x, y), j[t] = y, o) if (s = {\n      values: c(U),\n      keys: i ? y : c(\"keys\"),\n      entries: c(_)\n    }, a) for (d in s)  I(p, d, s[d]);\n     else h(, s);\n    return s;\n  };\n}, function (e, t, n)  r;\n, function (e, t, n) {\n  \"use strict\";\n\n  n.d(t, \"a\", function () {\n    return i;\n  });\n  var r = n(0),\n      c = {};\n\n  function o(e, t, n) {\n    var r,\n        o,\n        i,\n        a = (o = n, i = c[r = e] = c[r] || {\n      bidders: {}\n    }, o ? i.bidders[o] = i.bidders[o] || {} : i);\n    return a[t] = (a[t] || 0) + 1, a[t];\n  }\n\n  var i = {\n    incrementRequestsCounter: function incrementRequestsCounter(e) {\n      return o(e, \"requestsCounter\");\n    },\n    incrementBidderRequestsCounter: function incrementBidderRequestsCounter(e, t) {\n      return o(e, \"requestsCounter\", t);\n    },\n    incrementBidderWinsCounter: function incrementBidderWinsCounter(e, t) {\n      return o(e, \"winsCounter\", t);\n    },\n    getRequestsCounter: function getRequestsCounter(e)  0;\n    ,\n    getBidderRequestsCounter: function getBidderRequestsCounter(e, t)  0;\n    ,\n    getBidderWinsCounter: function getBidderWinsCounter(e, t)  0;\n    \n  };\n}, function (e, t, n) {\n  var r = n(238);\n  e.exports = r;\n}, function (e, t, n) {\n  \"use strict\";\n\n  Object.defineProperty(t, \"__esModule\", {\n    value: !0\n  }), n.d(t, \"adUnitSetupChecks\", function () {\n    return z;\n  }), n.d(t, \"checkAdUnitSetup\", function () {\n    return V;\n  }), t.executeStorageCallbacks = K;\n  var r = n(20),\n      o = n(0),\n      i = n(246),\n      a = n(44),\n      d = n(3),\n      v = n(26),\n      f = n(41),\n      c = n(13),\n      u = n(247),\n      s = n(12),\n      l = n.n(s),\n      p = n(68),\n      h = n(10),\n      g = n(32),\n      y = n(9);\n\n  function b(e) {\n    return (b = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  function m() {\n    return (m = Object.assign || function (e) {\n      for (var t = 1; t < arguments.length; t++) {\n        var n = arguments[t];\n\n        for (var r in n) {\n          Object.prototype.hasOwnProperty.call(n, r) &#038;&#038; (e[r] = n[r]);\n        }\n      }\n\n      return e;\n    }).apply(this, arguments);\n  }\n\n  var S = Object(r.a)(),\n      A = n(5),\n      E = n(0),\n      O = n(7).default,\n      I = n(8),\n      T = a.a.triggerUserSyncs,\n      j = A.EVENTS,\n      w = j.ADD_AD_UNITS,\n      C = j.BID_WON,\n      x = j.REQUEST_BIDS,\n      U = j.SET_TARGETING,\n      _ = j.AD_RENDER_FAILED,\n      B = A.AD_RENDER_FAILED_REASON,\n      R = B.PREVENT_WRITING_ON_MAIN_DOCUMENT,\n      P = B.NO_AD,\n      k = B.EXCEPTION,\n      D = B.CANNOT_FIND_AD,\n      N = B.MISSING_DOC_OR_ADID,\n      M = {\n    bidWon: function bidWon(e) {\n      var t = v.a.getBidsRequested().map(function (e) {\n        return e.bids.map(function (e) {\n          return e.adUnitCode;\n        });\n      }).reduce(o.flatten).filter(o.uniques);\n      return !!E.contains(t, e) || void E.logError('The \"' + e + '\" placement is not defined.');\n    }\n  };\n\n  function q(e, t, n) {\n    e.defaultView &#038;&#038; e.defaultView.frameElement &#038;&#038; (e.defaultView.frameElement.width = t, e.defaultView.frameElement.height = n);\n  }\n\n  function G(e, t) {\n    var n = [];\n    return E.isArray(e) &#038;&#038; (t ? e.length === t : 0 < e.length) &#038;&#038; (e.every(function (e) {\n      return Object(o.isArrayOfNums)(e, 2);\n    }) ? n = e : Object(o.isArrayOfNums)(e, 2) &#038;&#038; n.push(e)), n;\n  }\n\n  function F(e) {\n    var t = e.mediaTypes.banner,\n        n = G(t.sizes);\n    0 < n.length ? (t.sizes = n, e.sizes = n) : (E.logError(\"Detected a mediaTypes.banner object without a proper sizes field.  Please ensure the sizes are listed like: [[300, 250], ...].  Removing invalid mediaTypes.banner object from request.\"), delete e.mediaTypes.banner);\n  }\n\n  function W(e) {\n    var t = e.mediaTypes.video,\n        n = \"number\" == typeof t.playerSize[0] ? 2 : 1,\n        r = G(t.playerSize, n);\n    0 < r.length ? (2 == n &#038;&#038; E.logInfo(\"Transforming video.playerSize from [640,480] to [[640,480]] so it's in the proper format.\"), t.playerSize = r, e.sizes = r) : (E.logError(\"Detected incorrect configuration of mediaTypes.video.playerSize.  Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request.\"), delete e.mediaTypes.video.playerSize);\n  }\n\n  function L(e) {\n    var t = e.mediaTypes.native;\n    t.image &#038;&#038; t.image.sizes &#038;&#038; !Array.isArray(t.image.sizes) &#038;&#038; (E.logError(\"Please use an array of sizes for native.image.sizes field.  Removing invalid mediaTypes.native.image.sizes property from request.\"), delete e.mediaTypes.native.image.sizes), t.image &#038;&#038; t.image.aspect_ratios &#038;&#038; !Array.isArray(t.image.aspect_ratios) &#038;&#038; (E.logError(\"Please use an array of sizes for native.image.aspect_ratios field.  Removing invalid mediaTypes.native.image.aspect_ratios property from request.\"), delete e.mediaTypes.native.image.aspect_ratios), t.icon &#038;&#038; t.icon.sizes &#038;&#038; !Array.isArray(t.icon.sizes) &#038;&#038; (E.logError(\"Please use an array of sizes for native.icon.sizes field.  Removing invalid mediaTypes.native.icon.sizes property from request.\"), delete e.mediaTypes.native.icon.sizes);\n  }\n\n  Object(u.a)(), S.bidderSettings = S.bidderSettings || {}, S.libLoaded = !0, S.version = \"v3.23.0\", E.logInfo(\"Prebid.js v3.23.0 loaded\"), S.adUnits = S.adUnits || [], S.triggerUserSyncs = T;\n  var z = {\n    validateBannerMediaType: F,\n    validateVideoMediaType: W,\n    validateNativeMediaType: L,\n    validateSizes: G\n  },\n      V = Object(c.b)(\"sync\", function (e) {\n    return e.filter(function (e) {\n      var t = e.mediaTypes;\n      return t &#038;&#038; 0 !== Object.keys(t).length ? (t.banner &#038;&#038; F(e), t.video &#038;&#038; t.video.playerSize &#038;&#038; W(e), t.native &#038;&#038; L(e), !0) : (E.logError(\"Detected adUnit.code '\".concat(e.code, \"' did not have a 'mediaTypes' object defined.  This is a required field for the auction, so this adUnit has been removed.\")), !1);\n    });\n  }, \"checkAdUnitSetup\");\n\n  function H(e) {\n    var n = v.a[e]().filter(E.bind.call(o.adUnitsFilter, this, v.a.getAdUnitCodes())),\n        r = v.a.getLastAuctionId();\n    return n.map(function (e) {\n      return e.adUnitCode;\n    }).filter(o.uniques).map(function (t) {\n      return n.filter(function (e) {\n        return e.auctionId === r &#038;&#038; e.adUnitCode === t;\n      });\n    }).filter(function (e) {\n      return e &#038;&#038; e[0] &#038;&#038; e[0].adUnitCode;\n    }).map(function (e) {\n      return t = {}, n = e[0].adUnitCode, r = {\n        bids: e\n      }, n in t ? Object.defineProperty(t, n, {\n        value: r,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : t[n] = r, t;\n      var t, n, r;\n    }).reduce(function (e, t) {\n      return m(e, t);\n    }, {});\n  }\n\n  function J(e) {\n    var t = e.reason,\n        n = e.message,\n        r = e.bid,\n        o = e.id,\n        i = {\n      reason: t,\n      message: n\n    };\n    r &#038;&#038; (i.bid = r), o &#038;&#038; (i.adId = o), E.logError(n), I.emit(_, i);\n  }\n\n  function K(e, t) {\n    !function (e) {\n      var t;\n\n      for (; t = e.shift();) {\n        t();\n      }\n    }(y.c), e.call(this, t);\n  }\n\n  function $(e) {\n    e.forEach(function (e) {\n      if (void 0 === e.called) try {\n        e.call(), e.called = !0;\n      } catch (e) {\n        E.logError(\"Error processing command :\"https:\/\/slate.com\/,\"prebid.js\", e);\n      }\n    });\n  }\n\n  S.getAdserverTargetingForAdUnitCodeStr = function (e) {\n    if (E.logInfo(\"Invoking pbjs.getAdserverTargetingForAdUnitCodeStr\", arguments), e) {\n      var t = S.getAdserverTargetingForAdUnitCode(e);\n      return E.transformAdServerTargetingObj(t);\n    }\n\n    E.logMessage(\"Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode\");\n  }, S.getAdserverTargetingForAdUnitCode = function (e) {\n    return S.getAdserverTargeting(e)[e];\n  }, S.getAdserverTargeting = function (e) {\n    return E.logInfo(\"Invoking pbjs.getAdserverTargeting\", arguments), f.a.getAllTargeting(e);\n  }, S.getNoBids = function () {\n    return E.logInfo(\"Invoking pbjs.getNoBids\", arguments), H(\"getNoBids\");\n  }, S.getBidResponses = function () {\n    return E.logInfo(\"Invoking pbjs.getBidResponses\", arguments), H(\"getBidsReceived\");\n  }, S.getBidResponsesForAdUnitCode = function (t) {\n    return {\n      bids: v.a.getBidsReceived().filter(function (e) {\n        return e.adUnitCode === t;\n      })\n    };\n  }, S.setTargetingForGPTAsync = function (e, t) {\n    var n;\n    E.logInfo(\"Invoking pbjs.setTargetingForGPTAsync\", arguments), Object(o.isGptPubadsDefined)() ? (n = f.a.getAllTargeting(e), f.a.resetPresetTargeting(e, t), f.a.setTargetingForGPT(n, t), Object.keys(n).forEach(function (t) {\n      Object.keys(n[t]).forEach(function (e) {\n        \"hb_adid\" === e &#038;&#038; v.a.setStatusForBids(n[t][e], A.BID_STATUS.BID_TARGETING_SET);\n      });\n    }), I.emit(U, n)) : E.logError(\"window.googletag is not defined on the page\");\n  }, S.setTargetingForAst = function (e) {\n    E.logInfo(\"Invoking pbjs.setTargetingForAn\", arguments), f.a.isApntagDefined() ? (f.a.setTargetingForAst(e), I.emit(U, f.a.getAllTargeting())) : E.logError(\"window.apntag is not defined on the page\");\n  }, S.renderAd = function (e, t) {\n    if (E.logInfo(\"Invoking pbjs.renderAd\", arguments), E.logMessage(\"Calling renderAd with adId :\" + t), e &#038;&#038; t) try {\n      var n,\n          r,\n          o,\n          i,\n          a,\n          c,\n          u,\n          s,\n          d,\n          f,\n          l,\n          p,\n          g = v.a.findBidByAdId(t);\n      g ? (g.ad = E.replaceAuctionPrice(g.ad, g.cpm), g.adUrl = E.replaceAuctionPrice(g.adUrl, g.cpm), v.a.addWinningBid(g), I.emit(C, g), n = g.height, r = g.width, o = g.ad, i = g.mediaType, a = g.adUrl, c = g.renderer, u = document.createComment(\"Creative \".concat(g.creativeId, \" served by \").concat(g.bidder, \" Prebid.js Header Bidding\")), E.insertElement(u, e, \"body\"), Object(h.c)(c) ? Object(h.b)(c, g) : e === document &#038;&#038; !E.inIframe() || \"video\" === i ? (s = \"Error trying to write ad. Ad render call ad id \".concat(t, \" was prevented from writing to the main document.\"), J({\n        reason: R,\n        message: s,\n        bid: g,\n        id: t\n      })) : o ? (navigator.userAgent &#038;&#038; -1 < navigator.userAgent.toLowerCase().indexOf(\"firefox\/\") &#038;&#038; (d = navigator.userAgent.toLowerCase().match(\/firefox\/([d.]+)\/)[1]) &#038;&#038; parseInt(d, 10) < 67 &#038;&#038; e.open(\"text\/html\"https:\/\/slate.com\/,\"replace\"), e.write(o), e.close(), q(e, r, n), E.callBurl(g)) : a ? ((f = E.createInvisibleIframe()).height = n, f.width = r, f.style.display = \"inline\", f.style.overflow = \"hidden\", f.src = a, E.insertElement(f, e, \"body\"), q(e, r, n), E.callBurl(g)) : (l = \"Error trying to write ad. No ad for bid response id: \".concat(t), J({\n        reason: P,\n        message: l,\n        bid: g,\n        id: t\n      }))) : (p = \"Error trying to write ad. Cannot find ad by given id : \".concat(t), J({\n        reason: D,\n        message: p,\n        id: t\n      }));\n    } catch (e) {\n      var y = \"Error trying to write ad Id :\".concat(t, \" to the page:\").concat(e.message);\n      J({\n        reason: k,\n        message: y,\n        id: t\n      });\n    } else {\n      var b = \"Error trying to write ad Id :\".concat(t, \" to the page. Missing document or adId\");\n      J({\n        reason: N,\n        message: b,\n        id: t\n      });\n    }\n  }, S.removeAdUnit = function (e) {\n    E.logInfo(\"Invoking pbjs.removeAdUnit\", arguments), e ? (E.isArray(e) ? e : [e]).forEach(function (e) {\n      for (var t = S.adUnits.length - 1; 0 <= t; t--) {\n        S.adUnits[t].code === e &#038;&#038; S.adUnits.splice(t, 1);\n      }\n    }) : S.adUnits = [];\n  }, S.requestBids = Object(c.b)(\"async\", function () {\n    var e = 0 < arguments.length &#038;&#038; void 0 !== arguments[0] ? arguments[0] : {},\n        t = e.bidsBackHandler,\n        n = e.timeout,\n        r = e.adUnits,\n        o = e.adUnitCodes,\n        i = e.labels,\n        a = e.auctionId;\n    I.emit(x);\n    var c = n || d.b.getConfig(\"bidderTimeout\"),\n        r = r || S.adUnits;\n\n    if (E.logInfo(\"Invoking pbjs.requestBids\", arguments), o &#038;&#038; o.length ? r = r.filter(function (e) {\n      return l()(o, e.code);\n    }) : o = r &#038;&#038; r.map(function (e) {\n      return e.code;\n    }), (r = V(r)).forEach(function (o) {\n      var i = Object.keys(o.mediaTypes || {\n        banner: \"banner\"\n      }),\n          e = o.bids.map(function (e) {\n        return e.bidder;\n      }),\n          a = O.bidderRegistry,\n          t = d.b.getConfig(\"s2sConfig\"),\n          n = t &#038;&#038; t.bidders,\n          r = n ? e.filter(function (e) {\n        return !l()(n, e);\n      }) : e;\n      o.transactionId = E.generateUUID(), r.forEach(function (t) {\n        var e = a[t],\n            n = e &#038;&#038; e.getSpec &#038;&#038; e.getSpec(),\n            r = n &#038;&#038; n.supportedMediaTypes || [\"banner\"];\n        i.some(function (e) {\n          return l()(r, e);\n        }) ? p.a.incrementBidderRequestsCounter(o.code, t) : (E.logWarn(E.unsupportedBidderMessage(o, t)), o.bids = o.bids.filter(function (e) {\n          return e.bidder !== t;\n        }));\n      }), p.a.incrementRequestsCounter(o.code);\n    }), r &#038;&#038; 0 !== r.length) {\n      var u = v.a.createAuction({\n        adUnits: r,\n        adUnitCodes: o,\n        callback: t,\n        cbTimeout: c,\n        labels: i,\n        auctionId: a\n      }),\n          s = r.length;\n      15 < s &#038;&#038; E.logInfo(\"Current auction \".concat(u.getAuctionId(), \" contains \").concat(s, \" adUnits.\"), r), o.forEach(function (e) {\n        return f.a.setLatestAuctionForAdUnit(e, u.getAuctionId());\n      }), u.callBids();\n    } else if (E.logMessage(\"No adUnits configured. No bids requested.\"), \"function\" == typeof t) try {\n      t();\n    } catch (e) {\n      E.logError(\"Error executing bidsBackHandler\", null, e);\n    }\n  }), S.requestBids.before(K, 49), S.addAdUnits = function (e) {\n    E.logInfo(\"Invoking pbjs.addAdUnits\", arguments), E.isArray(e) ? S.adUnits.push.apply(S.adUnits, e) : \"object\" === b(e) &#038;&#038; S.adUnits.push(e), I.emit(w);\n  }, S.onEvent = function (e, t, n) , S.offEvent = function (e, t, n) , S.registerBidAdapter = function (e, t) {\n    E.logInfo(\"Invoking pbjs.registerBidAdapter\", arguments);\n\n    try {\n      O.registerBidAdapter(e(), t);\n    } catch (e) {\n      E.logError(\"Error registering bidder adapter : \" + e.message);\n    }\n  }, S.registerAnalyticsAdapter = function (e) {\n    E.logInfo(\"Invoking pbjs.registerAnalyticsAdapter\", arguments);\n\n    try {\n      O.registerAnalyticsAdapter(e);\n    } catch (e) {\n      E.logError(\"Error registering analytics adapter : \" + e.message);\n    }\n  }, S.createBid = function (e) {\n    return E.logInfo(\"Invoking pbjs.createBid\", arguments), Object(g.a)(e);\n  }, S.enableAnalytics = function (e) {\n    e &#038;&#038; !E.isEmpty(e) ? (E.logInfo(\"Invoking pbjs.enableAnalytics for: \", e), O.enableAnalytics(e)) : E.logError(\"pbjs.enableAnalytics should be called with option {}\");\n  }, S.aliasBidder = function (e, t) {\n    E.logInfo(\"Invoking pbjs.aliasBidder\", arguments), e &#038;&#038; t ? O.aliasBidAdapter(e, t) : E.logError(\"bidderCode and alias must be passed as arguments\"https:\/\/slate.com\/,\"pbjs.aliasBidder\");\n  }, S.getAllWinningBids = function () {\n    return v.a.getAllWinningBids();\n  }, S.getAllPrebidWinningBids = function () {\n    return v.a.getBidsReceived().filter(function (e) {\n      return e.status === A.BID_STATUS.BID_TARGETING_SET;\n    });\n  }, S.getHighestCpmBids = function (e) {\n    return f.a.getWinningBids(e);\n  }, S.markWinningBidAsUsed = function (t) {\n    var e = [];\n    t.adUnitCode &#038;&#038; t.adId ? e = v.a.getBidsReceived().filter(function (e) {\n      return e.adId === t.adId &#038;&#038; e.adUnitCode === t.adUnitCode;\n    }) : t.adUnitCode ? e = f.a.getWinningBids(t.adUnitCode) : t.adId ? e = v.a.getBidsReceived().filter(function (e) {\n      return e.adId === t.adId;\n    }) : E.logWarn(\"Inproper usage of markWinningBidAsUsed. It'll need an adUnitCode and\/or adId to function.\"), 0 < e.length &#038;&#038; (e[0].status = A.BID_STATUS.RENDERED);\n  }, S.getConfig = d.b.getConfig, S.setConfig = d.b.setConfig, S.setBidderConfig = d.b.setBidderConfig, S.que.push(function () {\n    return Object(i.a)();\n  }), S.cmd.push = function (e) {\n    if (\"function\" == typeof e) try {\n      e.call();\n    } catch (e) {\n      E.logError(\"Error processing command :\", e.message, e.stack);\n    } else E.logError(\"Commands written into pbjs.cmd.push must be wrapped in a function\");\n  }, S.que.push = S.cmd.push, S.processQueue = function () {\n    c.b.ready(), $(S.que), $(S.cmd);\n  }, t.default = S;\n},, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (t, n) {\n    i.adServers = i.adServers || {}, i.adServers[t] = i.adServers[t] || {}, Object.keys(n).forEach(function (e) {\n      i.adServers[t][e] ? Object(o.logWarn)(\"Attempting to add an already registered function property \".concat(e, \" for AdServer \").concat(t, \".\")) : i.adServers[t][e] = n[e];\n    });\n  };\n\n  var r = n(20),\n      o = n(0),\n      i = Object(r.a)();\n}, function (e, t, n) {\n  var r = n(28),\n      o = n(48),\n      i = \"\".split;\n  e.exports = r(function () {\n    return !Object(\"z\").propertyIsEnumerable(0);\n  }) ? function (e) {\n    return \"String\" == o(e) ? i.call(e, \"\") : Object(e);\n  } : Object;\n}, function (e, t, n) {\n  var r = n(27),\n      o = n(28),\n      i = n(75);\n  e.exports = !r &#038;&#038; !o(function () {\n    return 7 != Object.defineProperty(i(\"div\"), \"a\", {\n      get: function get() {\n        return 7;\n      }\n    }).a;\n  });\n}, function (e, t, n) {\n  var r = n(22),\n      o = n(23),\n      i = r.document,\n      a = o(i) &#038;&#038; o(i.createElement);\n\n  e.exports = function (e) {\n    return a ? i.createElement(e) : {};\n  };\n}, function (e, t, n) {\n  var r = n(16),\n      o = n(77);\n  (e.exports = function (e, t) {\n    return o[e] || (o[e] = void 0 !== t ? t : {});\n  })(\"versions\", []).push({\n    version: \"3.6.4\",\n    mode: r ? \"pure\" : \"global\",\n    copyright: \"\u00a9 2020 Denis Pushkarev (zloirock.ru)\"\n  });\n}, function (e, t, n) {\n  var r = n(22),\n      o = n(112),\n      i = \"__core-js_shared__\",\n      a = r[i] || o(i, {});\n  e.exports = a;\n}, function (e, t, n) {\n  var r = n(28);\n  e.exports = !!Object.getOwnPropertySymbols &#038;&#038; !r(function () {\n    return !String(Symbol());\n  });\n}, function (e, t, n) {\n  function r(c) {\n    return function (e, t, n) {\n      var r,\n          o = u(e),\n          i = s(o.length),\n          a = d(n, i);\n\n      if (c &#038;&#038; t != t) {\n        for (; a < i;) {\n          if ((r = o[a++]) != r) return !0;\n        }\n      } else for (; a < i; a++) \n\n      return !c &#038;&#038; -1;\n    };\n  }\n\n  var u = n(47),\n      s = n(50),\n      d = n(116);\n  e.exports = {\n    includes: r(!0),\n    indexOf: r(!1)\n  };\n}, function (e, t, n) {\n  var r = n(117);\n  n(140), n(142), n(144), n(146), n(148), n(149), n(150), n(151), n(152), n(153), n(154), n(155), n(156), n(157), n(158), n(159), n(160), n(161), e.exports = r;\n}, function (e, t, n) {\n  function r(e) {\n    c(e, d, {\n      value: {\n        objectID: \"O\" + ++f,\n        weakData: {}\n      }\n    });\n  }\n\n  var o = n(53),\n      i = n(23),\n      a = n(24),\n      c = n(31).f,\n      u = n(59),\n      s = n(120),\n      d = u(\"meta\"),\n      f = 0,\n      l = Object.isExtensible || function () {\n    return !0;\n  },\n      p = e.exports = {\n    REQUIRED: !1,\n    fastKey: function fastKey(e, t) {\n      if (!i(e)) return \"symbol\" == _typeof(e) ? e : (\"string\" == typeof e ? \"S\" : \"P\") + e;\n\n      if (!a(e, d)) {\n        if (!l(e)) return \"F\";\n        if (!t) return \"E\";\n        r(e);\n      }\n\n      return e[d].objectID;\n    },\n    getWeakData: function getWeakData(e, t) {\n      if (!a(e, d)) {\n        if (!l(e)) return !0;\n        if (!t) return !1;\n        r(e);\n      }\n\n      return e[d].weakData;\n    },\n    onFreeze: function onFreeze(e) {\n      return s &#038;&#038; p.REQUIRED &#038;&#038; l(e) &#038;&#038; !a(e, d) &#038;&#038; r(e), e;\n    }\n  };\n\n  o[d] = !0;\n}, function (e, t, n) {\n  var r = n(19),\n      o = n(36),\n      i = r(\"iterator\"),\n      a = Array.prototype;\n\n  e.exports = function (e) ;\n}, function (e, t, n) {\n  var i = n(15);\n\n  e.exports = function (t, e, n, r) {\n    try {\n      return r ? e(i(n)[0], n[1]) : e(n);\n    } catch (e) {\n      var o = t.return;\n      throw (void 0 !== o &#038;&#038; i(o.call(t)), e);\n    }\n  };\n}, function (e, t) {\n  e.exports = function (e, t, n) {\n    if (!(e instanceof t)) throw TypeError(\"Incorrect \" + (n ? n + \" \" : \"\") + \"invocation\");\n    return e;\n  };\n}, function (e, t, n) {\n  function r() {}\n\n  function o(e) {\n    return \"<script>\" + e + \"<\/\" + g + \">\";\n  }\n\n  var i,\n      a = n(15),\n      c = n(125),\n      u = n(86),\n      s = n(53),\n      d = n(128),\n      f = n(75),\n      l = n(65),\n      p = \"prototype\",\n      g = \"script\",\n      y = l(\"IE_PROTO\"),\n      _b = function b() {\n    try {\n      i = document.domain && new ActiveXObject(\"htmlfile\");\n    } catch (e) {}\n\n    var e, t;\n    _b = i ? function (e) {\n      e.write(o(\"\")), e.close();\n      var t = e.parentWindow.Object;\n      return e = null, t;\n    }(i) : ((t = f(\"iframe\")).style.display = \"none\", d.appendChild(t), t.src = String(\"javascript:\"), (e = t.contentWindow.document).open(), e.write(o(\"document.F=Object\")), e.close(), e.F);\n\n    for (var n = u.length; n--;) {\n      delete _b[p][u[n]];\n    }\n\n    return _b();\n  };\n\n  s[y] = !0, e.exports = Object.create || function (e, t) {\n    var n;\n    return null !== e ? (r[p] = a(e), n = new r(), r[p] = null, n[y] = e) : n = _b(), void 0 === t ? n : c(n, t);\n  };\n}, function (e, t) {\n  e.exports = [\"constructor\"https:\/\/slate.com\/,\"hasOwnProperty\"https:\/\/slate.com\/,\"isPrototypeOf\"https:\/\/slate.com\/,\"propertyIsEnumerable\"https:\/\/slate.com\/,\"toLocaleString\"https:\/\/slate.com\/,\"toString\"https:\/\/slate.com\/,\"valueOf\"];\n}, function (e, t, n) {\n  var o = n(29);\n\n  e.exports = function (e, t, n, r) {\n    r && r.enumerable ? e[t] = n : o(e, t, n);\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r,\n      o,\n      i,\n      a = n(89),\n      c = n(29),\n      u = n(24),\n      s = n(19),\n      d = n(16),\n      f = s(\"iterator\"),\n      l = !1;\n  [].keys && (\"next\" in (i = [].keys()) ? (o = a(a(i))) !== Object.prototype && (r = o) : l = !0), null == r && (r = {}), d || u(r, f) || c(r, f, function () {\n    return this;\n  }), e.exports = {\n    IteratorPrototype: r,\n    BUGGY_SAFARI_ITERATORS: l\n  };\n}, function (e, t, n) {\n  var r = n(24),\n      o = n(57),\n      i = n(65),\n      a = n(131),\n      c = i(\"IE_PROTO\"),\n      u = Object.prototype;\n  e.exports = a ? Object.getPrototypeOf : function (e) {\n    return e = o(e), r(e, c) ? e[c] : \"function\" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? u : null;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var o = n(136).charAt,\n      r = n(54),\n      i = n(66),\n      a = \"String Iterator\",\n      c = r.set,\n      u = r.getterFor(a);\n  i(String, \"String\", function (e) {\n    c(this, {\n      type: a,\n      string: String(e),\n      index: 0\n    });\n  }, function () {\n    var e,\n        t = u(this),\n        n = t.string,\n        r = t.index;\n    return r >= n.length ? {\n      value: void 0,\n      done: !0\n    } : (e = o(n, r), t.index += e.length, {\n      value: e,\n      done: !1\n    });\n  });\n}, function (e, t, n) {\n  var r = n(15),\n      o = n(61);\n\n  e.exports = function (e) {\n    var t = o(e);\n    if (\"function\" != typeof t) throw TypeError(String(e) + \" is not iterable\");\n    return r(t.call(e));\n  };\n}, function (e, t, n) {\n  var r = n(162);\n  e.exports = r;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = Array.prototype.slice,\n      o = n(94),\n      i = Object.keys,\n      a = i ? function (e) {\n    return i(e);\n  } : n(169),\n      c = Object.keys;\n  a.shim = function () {\n    return Object.keys ? function () {\n      var e = Object.keys(arguments);\n      return e && e.length === arguments.length;\n    }(1, 2) || (Object.keys = function (e) {\n      return o(e) ? c(r.call(e)) : c(e);\n    }) : Object.keys = a, Object.keys || a;\n  }, e.exports = a;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = Object.prototype.toString;\n\n  e.exports = function (e)  \"[object Array]\" !== t && null !== e && \"object\" == _typeof(e) && \"number\" == typeof e.length && 0 <= e.length &#038;&#038; \"[object Function]\" === r.call(e.callee);\n  ;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(67),\n      o = n(173)(\"%Function%\"),\n      i = o.apply,\n      a = o.call;\n  e.exports = function () {\n    return r.apply(a, arguments);\n  }, e.exports.apply = function () {\n    return r.apply(i, arguments);\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  function r(e) {\n    return e != e;\n  }\n\n  e.exports = function (e, t) ;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(96);\n\n  e.exports = function () {\n    return \"function\" == typeof Object.is ? Object.is : r;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = Object,\n      o = TypeError;\n\n  e.exports = function () {\n    if (null != this &#038;&#038; this !== r(this)) throw new o(\"RegExp.prototype.flags getter called on non-object\");\n    var e = \"\";\n    return this.global &#038;&#038; (e += \"g\"), this.ignoreCase &#038;&#038; (e += \"i\"), this.multiline &#038;&#038; (e += \"m\"), this.dotAll &#038;&#038; (e += \"s\"), this.unicode &#038;&#038; (e += \"u\"), this.sticky &#038;&#038; (e += \"y\"), e;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(98),\n      o = n(43).supportsDescriptors,\n      i = Object.getOwnPropertyDescriptor,\n      a = TypeError;\n\n  e.exports = function () {\n    if (!o) throw new a(\"RegExp.prototype.flags requires a true ES5 environment that supports property descriptors\");\n\n    if (\"gim\" === \/a\/gim.flags) {\n      var e = i(RegExp.prototype, \"flags\");\n      if (e &#038;&#038; \"function\" == typeof e.get &#038;&#038; \"boolean\" == typeof \/a\/.dotAll) return e.get;\n    }\n\n    return r;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (e) {\n    var t = e;\n    return {\n      callBids: function callBids() {},\n      setBidderCode: function setBidderCode(e) {\n        t = e;\n      },\n      getBidderCode: function getBidderCode() {\n        return t;\n      }\n    };\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (e, t) {\n    if (e.labelAll) return {\n      labelAll: !0,\n      labels: e.labelAll,\n      activeLabels: t\n    };\n    return {\n      labelAll: !1,\n      labels: e.labelAny,\n      activeLabels: t\n    };\n  }, t.c = function (e) , t.b = function () {\n    var e = 0 < arguments.length &#038;&#038; void 0 !== arguments[0] ? arguments[0] : {},\n        t = e.labels,\n        n = void 0 === t ? [] : t,\n        r = e.labelAll,\n        o = void 0 !== r &#038;&#038; r,\n        i = e.activeLabels,\n        a = void 0 === i ? [] : i,\n        c = 1 < arguments.length ? arguments[1] : void 0,\n        u = 2 < arguments.length ? arguments[2] : void 0,\n        s = b(3 < arguments.length &#038;&#038; void 0 !== arguments[3] ? arguments[3] : y);\n    c = Object(p.isPlainObject)(c) ? Object(p.deepClone)(c) : u ? {\n      banner: {\n        sizes: u\n      }\n    } : {};\n    var d = Object(p.deepAccess)(c, \"banner.sizes\");\n    s.shouldFilter &#038;&#038; d &#038;&#038; (c.banner.sizes = d.filter(function (e) {\n      return s.sizesSupported[e];\n    }));\n    var f = Object.keys(c),\n        l = {\n      active: f.every(function (e) {\n        return \"banner\" !== e;\n      }) || f.some(function (e) {\n        return \"banner\" === e;\n      }) &#038;&#038; 0 < Object(p.deepAccess)(c, \"banner.sizes.length\") &#038;&#038; (0 === n.length || !o &#038;&#038; (n.some(function (e) {\n        return s.labels[e];\n      }) || n.some(function (e) {\n        return g()(a, e);\n      })) || o &#038;&#038; n.reduce(function (e, t)  g()(a, t) : e;\n      , !0)),\n      mediaTypes: c\n    };\n    d &#038;&#038; d.length !== c.banner.sizes.length &#038;&#038; (l.filterResults = {\n      before: d,\n      after: c.banner.sizes\n    });\n    return l;\n  };\n  var r = n(3),\n      p = n(0),\n      o = n(12),\n      g = n.n(o);\n\n  function i(e) {\n    return (i = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n      return _typeof(e);\n    } : function (e) {\n      return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n    })(e);\n  }\n\n  var y = [];\n\n  function b(e) {\n    return e.reduce(function (n, r) {\n      if (\"object\" === i(r) &#038;&#038; \"string\" == typeof r.mediaQuery) {\n        var t = !1;\n        if (\"\" === r.mediaQuery) t = !0;else try {\n          t = Object(p.getWindowTop)().matchMedia(r.mediaQuery).matches;\n        } catch (e) {\n          Object(p.logWarn)(\"Unfriendly iFrame blocks sizeConfig from being correctly evaluated\"), t = matchMedia(r.mediaQuery).matches;\n        }\n        t &#038;&#038; (Array.isArray(r.sizesSupported) &#038;&#038; (n.shouldFilter = !0), [\"labels\"https:\/\/slate.com\/,\"sizesSupported\"].forEach(function (t) {\n          return (r[t] || []).forEach(function (e) {\n            return n[t][e] = !0;\n          });\n        }));\n      } else Object(p.logWarn)('sizeConfig rule missing required property \"mediaQuery\"');\n\n      return n;\n    }, {\n      labels: {},\n      sizesSupported: {},\n      shouldFilter: !1\n    });\n  }\n\n  r.b.getConfig(\"sizeConfig\", function (e) {\n    return t = e.sizeConfig, void (y = t);\n    var t;\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.b = function (e, t, n) {\n    var r = {\n      puts: e.map(c, n)\n    };\n    Object(o.a)(i.b.getConfig(\"cache.url\"), function (n) {\n      return {\n        success: function success(e) {\n          var t;\n\n          try {\n            t = JSON.parse(e).responses;\n          } catch (e) {\n            return void n(e, []);\n          }\n\n          t ? n(null, t) : n(new Error(\"The cache server didn't respond with a responses property.\"), []);\n        },\n        error: function error(e, t) {\n          n(new Error(\"Error storing video ad in the cache: \".concat(e, \": \").concat(JSON.stringify(t))), []);\n        }\n      };\n    }(t), JSON.stringify(r), {\n      contentType: \"text\/plain\",\n      withCredentials: !0\n    });\n  }, t.a = function (e) {\n    return \"\".concat(i.b.getConfig(\"cache.url\"), \"?uuid=\").concat(e);\n  };\n  var o = n(4),\n      i = n(3),\n      a = n(0);\n\n  function c(e) {\n    var t,\n        n,\n        r,\n        o = {\n      type: \"xml\",\n      value: e.vastXml ? e.vastXml : (t = e.vastUrl, n = e.vastImpUrl, r = n ? \"<![CDATA[\".concat(n, \"]]>\") : \"\"https:\/\/slate.com\/,\"<VAST version=\"3.0\">n    <Ad>n      <Wrapper>n        <AdSystem>prebid.org wrapper<\/AdSystem>n        <VASTAdTagURI><![CDATA['.concat(t, \"]]><\/VASTAdTagURI>n        <Impression>\").concat(r, \"<\/Impression>n        <Creatives><\/Creatives>n      <\/Wrapper>n    <\/Ad>n  <\/VAST>\")),\n      ttlseconds: Number(e.ttl)\n    };\n    return i.b.getConfig(\"cache.vasttrack\") && (o.bidder = e.bidder, o.bidid = e.requestId, a.isPlainObject(this) && this.hasOwnProperty(\"auctionStart\") && (o.timestamp = this.auctionStart)), \"string\" == typeof e.customCacheKey && \"\" !== e.customCacheKey && (o.key = e.customCacheKey), o;\n  }\n},,, function (e, t, n) {\n  n(106);\n  var r = n(52);\n  e.exports = r(\"Array\"https:\/\/slate.com\/,\"find\");\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(14),\n      o = n(56).find,\n      i = n(51),\n      a = n(60),\n      c = \"find\",\n      u = !0,\n      s = a(c);\n  c in [] && Array(1)[c](function () {\n    u = !1;\n  }), r(, {\n    find: function find(e, t) {\n      return o(this, e, 1 < arguments.length ? t : void 0);\n    }\n  }), i(c);\n}, function (e, t, n) {\n  var r = n(27),\n      o = n(108),\n      i = n(46),\n      a = n(47),\n      c = n(55),\n      u = n(24),\n      s = n(74),\n      d = Object.getOwnPropertyDescriptor;\n  t.f = r ? d : function (e, t) {\n    if (e = a(e), t = c(t, !0), s) try {\n      return d(e, t);\n    } catch (e) {}\n    if (u(e, t)) return i(!o.f.call(e, t), e[t]);\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = {}.propertyIsEnumerable,\n      o = Object.getOwnPropertyDescriptor,\n      i = o &#038;&#038; !r.call({\n    1: 2\n  }, 1);\n  t.f = i ? function (e) {\n    var t = o(this, e);\n    return !!t &#038;&#038; t.enumerable;\n  } : r;\n}, function (e, t, n) {\n  function r(e, t)  n != u &#038;&#038; (\"function\" == typeof t ? o(t) : !!t);\n  \n\n  var o = n(28),\n      i = \/#|.prototype.\/,\n      a = r.normalize = function (e) {\n    return String(e).replace(i, \".\").toLowerCase();\n  },\n      c = r.data = {},\n      u = r.NATIVE = \"N\",\n      s = r.POLYFILL = \"P\";\n\n  e.exports = r;\n}, function (e, t, n) {\n  var r = n(23),\n      o = n(111),\n      i = n(19)(\"species\");\n\n  e.exports = function (e, t) ;\n}, function (e, t, n) {\n  var r = n(48);\n\n  e.exports = Array.isArray || function (e) {\n    return \"Array\" == r(e);\n  };\n}, function (e, t, n) {\n  var r = n(22),\n      o = n(29);\n\n  e.exports = function (t, n) {\n    try {\n      o(r, t, n);\n    } catch (e) {\n      r[t] = n;\n    }\n\n    return n;\n  };\n}, function (e, t, n) {\n  var r = n(78);\n  e.exports = r &#038;&#038; !Symbol.sham &#038;&#038; \"symbol\" == _typeof(Symbol.iterator);\n}, function (e, t, n) {\n  n(115);\n  var r = n(52);\n  e.exports = r(\"Array\"https:\/\/slate.com\/,\"includes\");\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(79).includes,\n      i = n(51);\n  r({\n    target: \"Array\",\n    proto: !0,\n    forced: !n(60)(\"indexOf\", {\n      ACCESSORS: !0,\n      1: 0\n    })\n  }, {\n    includes: function includes(e, t) {\n      return o(this, e, 1 < arguments.length ? t : void 0);\n    }\n  }), i(\"includes\");\n}, function (e, t, n) {\n  var r = n(58),\n      o = Math.max,\n      i = Math.min;\n\n  e.exports = function (e, t) {\n    var n = r(e);\n    return n < 0 ? o(n + t, 0) : i(n, t);\n  };\n}, function (e, t, n) {\n  n(118), n(135), n(90), n(137);\n  var r = n(42);\n  e.exports = r.Set;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(119),\n      o = n(124);\n  e.exports = r(\"Set\", function (t) {\n    return function (e) {\n      return t(this, arguments.length ? e : void 0);\n    };\n  }, o);\n}, function (e, t, n) {\n  \"use strict\";\n\n  var f = n(14),\n      l = n(22),\n      p = n(81),\n      g = n(28),\n      y = n(29),\n      b = n(17),\n      v = n(84),\n      h = n(23),\n      m = n(64),\n      S = n(31).f,\n      A = n(56).forEach,\n      E = n(27),\n      r = n(54),\n      O = r.set,\n      I = r.getterFor;\n\n  e.exports = function (n, e, t) {\n    var r,\n        a,\n        o = -1 !== n.indexOf(\"Map\"),\n        c = -1 !== n.indexOf(\"Weak\"),\n        i = o ? \"set\" : \"add\",\n        u = l[n],\n        s = u &#038;&#038; u.prototype,\n        d = {};\n    return E &#038;&#038; \"function\" == typeof u &#038;&#038; (c || s.forEach &#038;&#038; !g(function () {\n      new u().entries().next();\n    })) ? (r = e(function (e, t) {\n      O(v(e, r, n), {\n        type: n,\n        collection: new u()\n      }), null != t &#038;&#038; b(t, e[i], e, o);\n    }), a = I(n), A([\"add\"https:\/\/slate.com\/,\"clear\"https:\/\/slate.com\/,\"delete\"https:\/\/slate.com\/,\"forEach\"https:\/\/slate.com\/,\"get\"https:\/\/slate.com\/,\"has\"https:\/\/slate.com\/,\"set\"https:\/\/slate.com\/,\"keys\"https:\/\/slate.com\/,\"values\"https:\/\/slate.com\/,\"entries\"], function (o) {\n      var i = \"add\" == o || \"set\" == o;\n      o in s &#038;&#038; (!c || \"clear\" != o) &#038;&#038; y(r.prototype, o, function (e, t) {\n        var n = a(this).collection;\n        if (!i &#038;&#038; c &#038;&#038; !h(e)) return \"get\" == o &#038;&#038; void 0;\n        var r = n[o](0 === e ? 0 : e, t);\n        return i ? this : r;\n      });\n    }), c || S(r.prototype, \"size\", {\n      configurable: !0,\n      get: function get() {\n        return a(this).collection.size;\n      }\n    })) : (r = t.getConstructor(e, n, o, i), p.REQUIRED = !0), m(r, n, !1, !0), d[n] = r, f({\n      global: !0,\n      forced: !0\n    }, d), c || t.setStrong(r, n, o), r;\n  };\n}, function (e, t, n) {\n  var r = n(28);\n  e.exports = !r(function () {\n    return Object.isExtensible(Object.preventExtensions({}));\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(63),\n      o = n(62);\n  e.exports = r ? {}.toString : function () {\n    return \"[object \" + o(this) + \"]\";\n  };\n}, function (e, t, n) {\n  var r = n(22),\n      o = n(123),\n      i = r.WeakMap;\n  e.exports = \"function\" == typeof i &#038;&#038; \/native code\/.test(o(i));\n}, function (e, t, n) {\n  var r = n(77),\n      o = Function.toString;\n  \"function\" != typeof r.inspectSource &#038;&#038; (r.inspectSource = function (e) {\n    return o.call(e);\n  }), e.exports = r.inspectSource;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var s = n(31).f,\n      d = n(85),\n      f = n(129),\n      l = n(21),\n      p = n(84),\n      g = n(17),\n      a = n(66),\n      c = n(134),\n      y = n(27),\n      b = n(81).fastKey,\n      r = n(54),\n      v = r.set,\n      h = r.getterFor;\n  e.exports = {\n    getConstructor: function getConstructor(e, n, r, o) {\n      function i(e, t, n) {\n        var r,\n            o,\n            i = c(e),\n            a = u(e, t);\n        return a ? a.value = n : (i.last = a = {\n          index: o = b(t, !0),\n          key: t,\n          value: n,\n          previous: r = i.last,\n          next: void 0,\n          removed: !1\n        }, i.first || (i.first = a), r &#038;&#038; (r.next = a), y ? i.size++ : e.size++, \"F\" !== o &#038;&#038; (i.index[o] = a)), e;\n      }\n\n      var a = e(function (e, t) {\n        p(e, a, n), v(e, {\n          type: n,\n          index: d(null),\n          first: void 0,\n          last: void 0,\n          size: 0\n        }), y || (e.size = 0), null != t &#038;&#038; g(t, e[o], e, r);\n      }),\n          c = h(n),\n          u = function u(e, t) {\n        var n,\n            r = c(e),\n            o = b(t);\n        if (\"F\" !== o) return r.index[o];\n\n        for (n = r.first; n; n = n.next) {\n          if (n.key == t) return n;\n        }\n      };\n\n      return f(a.prototype, {\n        clear: function clear() {\n          for (var e = c(this), t = e.index, n = e.first; n;) {\n            n.removed = !0, n.previous &#038;&#038; (n.previous = n.previous.next = void 0), delete t[n.index], n = n.next;\n          }\n\n          e.first = e.last = void 0, y ? e.size = 0 : this.size = 0;\n        },\n        delete: function _delete(e) {\n          var t,\n              n,\n              r = c(this),\n              o = u(this, e);\n          return o &#038;&#038; (t = o.next, n = o.previous, delete r.index[o.index], o.removed = !0, n &#038;&#038; (n.next = t), t &#038;&#038; (t.previous = n), r.first == o &#038;&#038; (r.first = t), r.last == o &#038;&#038; (r.last = n), y ? r.size-- : this.size--), !!o;\n        },\n        forEach: function forEach(e, t) {\n          for (var n, r = c(this), o = l(e, 1 < arguments.length ? t : void 0, 3); n = n ? n.next : r.first;) {\n            for (o(n.value, n.key, this); n &#038;&#038; n.removed;) {\n              n = n.previous;\n            }\n          }\n        },\n        has: function has(e) {\n          return !!u(this, e);\n        }\n      }), f(a.prototype, r ? {\n        get: function get(e) {\n          var t = u(this, e);\n          return t &#038;&#038; t.value;\n        },\n        set: function set(e, t) {\n          return i(this, 0 === e ? 0 : e, t);\n        }\n      } : {\n        add: function add(e) {\n          return i(this, e = 0 === e ? 0 : e, e);\n        }\n      }), y &#038;&#038; s(a.prototype, \"size\", {\n        get: function get() {\n          return c(this).size;\n        }\n      }), a;\n    },\n    setStrong: function setStrong(e, t, n) {\n      var r = t + \" Iterator\",\n          o = h(t),\n          i = h(r);\n      a(e, t, function (e, t) {\n        v(this, {\n          type: r,\n          target: e,\n          state: o(e),\n          kind: t,\n          last: void 0\n        });\n      }, function () {\n        for (var e = i(this), t = e.kind, n = e.last; n &#038;&#038; n.removed;) {\n          n = n.previous;\n        }\n\n        return e.target &#038;&#038; (e.last = n = n ? n.next : e.state.first) ? \"keys\" == t ? {\n          value: n.key,\n          done: !1\n        } : \"values\" == t ? {\n          value: n.value,\n          done: !1\n        } : {\n          value: [n.key, n.value],\n          done: !1\n        } : {\n          value: e.target = void 0,\n          done: !0\n        };\n      }, n ? \"entries\" : \"values\", !n, !0), c(t);\n    }\n  };\n}, function (e, t, n) {\n  var r = n(27),\n      a = n(31),\n      c = n(15),\n      u = n(126);\n  e.exports = r ? Object.defineProperties : function (e, t) {\n    c(e);\n\n    for (var n, r = u(t), o = r.length, i = 0; i < o;) {\n      a.f(e, n = r[i++], t[n]);\n    }\n\n    return e;\n  };\n}, function (e, t, n) {\n  var r = n(127),\n      o = n(86);\n\n  e.exports = Object.keys || function (e) {\n    return r(e, o);\n  };\n}, function (e, t, n) {\n  var a = n(24),\n      c = n(47),\n      u = n(79).indexOf,\n      s = n(53);\n\n  e.exports = function (e, t) {\n    var n,\n        r = c(e),\n        o = 0,\n        i = [];\n\n    for (n in r) {\n      !a(s, n) &#038;&#038; a(r, n) &#038;&#038; i.push(n);\n    }\n\n    for (; t.length > o;)  i.push(n));<\/p>\n<p>    return i;\n  };\n}, function (e, t, n) {\n  var r = n(25);\n  e.exports = r(\"document\"https:\/\/slate.com\/,\"documentElement\");\n}, function (e, t, n) {\n  var o = n(87);<\/p>\n<p>  e.exports = function (e, t, n) {\n    for (var r in t) {\n      n && n.unsafe && e[r] ? e[r] = t[r] : o(e, r, t[r], n);\n    }<\/p>\n<p>    return e;\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  function o() {\n    return this;\n  }<\/p>\n<p>  var i = n(88).IteratorPrototype,\n      a = n(85),\n      c = n(46),\n      u = n(64),\n      s = n(36);<\/p>\n<p>  e.exports = function (e, t, n) {\n    var r = t + \" Iterator\";\n    return e.prototype = a(i, {\n      next: c(1, n)\n    }), u(e, r, !1, !0), s[r] = o, e;\n  };\n}, function (e, t, n) {\n  var r = n(28);\n  e.exports = !r(function () {\n    function e() {}<\/p>\n<p>    return e.prototype.constructor = null, Object.getPrototypeOf(new e()) !== e.prototype;\n  });\n}, function (e, t, n) {\n  var o = n(15),\n      i = n(133);\n  e.exports = Object.setPrototypeOf || (\"__proto__\" in {} ? function () {\n    var n,\n        r = !1,\n        e = {};<\/p>\n<p>    try {\n      (n = Object.getOwnPropertyDescriptor(Object.prototype, \"__proto__\").set).call(e, []), r = e instanceof Array;\n    } catch (e) {}<\/p>\n<p>    return function (e, t) {\n      return o(e), i(t), r ? n.call(e, t) : e.__proto__ = t, e;\n    };\n  }() : void 0);\n}, function (e, t, n) {\n  var r = n(23);<\/p>\n<p>  e.exports = function (e) {\n    if (!r(e) && null !== e) throw TypeError(\"Can't set \" + String(e) + \" as a prototype\");\n    return e;\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(25),\n      o = n(31),\n      i = n(19),\n      a = n(27),\n      c = i(\"species\");<\/p>\n<p>  e.exports = function (e) {\n    var t = r(e),\n        n = o.f;\n    a && t && !t[c] && n(t, c, {\n      configurable: !0,\n      get: function get() {\n        return this;\n      }\n    });\n  };\n}, function (e, t) {}, function (e, t, n) {\n  function r(c) {\n    return function (e, t)  a <= i ? c ? \"\" : void 0 : (n = o.charCodeAt(i)) < 55296 ;\n  }\n\n  var u = n(58),\n      s = n(49);\n  e.exports = {\n    codeAt: r(!1),\n    charAt: r(!0)\n  };\n}, function (e, t, n) {\n  n(138);\n  var r = n(139),\n      o = n(22),\n      i = n(62),\n      a = n(29),\n      c = n(36),\n      u = n(19)(\"toStringTag\");\n\n  for (var s in r) {\n    var d = o[s],\n        f = d &#038;&#038; d.prototype;\n    f &#038;&#038; i(f) !== u &#038;&#038; a(f, u, s), c[s] = c.Array;\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(47),\n      o = n(51),\n      i = n(36),\n      a = n(54),\n      c = n(66),\n      u = \"Array Iterator\",\n      s = a.set,\n      d = a.getterFor(u);\n  e.exports = c(Array, \"Array\", function (e, t) {\n    s(this, {\n      type: u,\n      target: r(e),\n      index: 0,\n      kind: t\n    });\n  }, function () {\n    var e = d(this),\n        t = e.target,\n        n = e.kind,\n        r = e.index++;\n    return !t || r >= t.length ? {\n      value: e.target = void 0,\n      done: !0\n    } : \"keys\" == n ? {\n      value: r,\n      done: !1\n    } : \"values\" == n ? {\n      value: t[r],\n      done: !1\n    } : {\n      value: [r, t[r]],\n      done: !1\n    };\n  }, \"values\"), i.Arguments = i.Array, o(\"keys\"), o(\"values\"), o(\"entries\");\n}, function (e, t) {\n  e.exports = {\n    CSSRuleList: 0,\n    CSSStyleDeclaration: 0,\n    CSSValueList: 0,\n    ClientRectList: 0,\n    DOMRectList: 0,\n    DOMStringList: 0,\n    DOMTokenList: 1,\n    DataTransferItemList: 0,\n    FileList: 0,\n    HTMLAllCollection: 0,\n    HTMLCollection: 0,\n    HTMLFormElement: 0,\n    HTMLSelectElement: 0,\n    MediaList: 0,\n    MimeTypeArray: 0,\n    NamedNodeMap: 0,\n    NodeList: 1,\n    PaintRequestList: 0,\n    Plugin: 0,\n    PluginArray: 0,\n    SVGLengthList: 0,\n    SVGNumberList: 0,\n    SVGPathSegList: 0,\n    SVGPointList: 0,\n    SVGStringList: 0,\n    SVGTransformList: 0,\n    SourceBufferList: 0,\n    StyleSheetList: 0,\n    TextTrackCueList: 0,\n    TextTrackList: 0,\n    TouchList: 0\n  };\n}, function (e, t, n) {\n  n(14)({\n    target: \"Set\",\n    stat: !0\n  }, {\n    from: n(141)\n  });\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var s = n(18),\n      d = n(21),\n      f = n(17);<\/p>\n<p>  e.exports = function (e, t, n) {\n    var r,\n        o,\n        i,\n        a,\n        c = arguments.length,\n        u = 1 < c ? t : void 0;\n    return s(this), (r = void 0 !== u) &#038;&#038; s(u), null == e ? new this() : (o = [], r ? (i = 0, a = d(u, 2 < c ? n : void 0, 2), f(e, function (e) {\n      o.push(a(e, i++));\n    })) : f(e, o.push, o), new this(o));\n  };\n}, function (e, t, n) {\n  n(14)({\n    target: \"Set\",\n    stat: !0\n  }, {\n    of: n(143)\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  e.exports = function () {\n    for (var e = arguments.length, t = new Array(e); e--;) {\n      t[e] = arguments[e];\n    }\n\n    return new this(t);\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(145);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    addAll: function addAll() {\n      return i.apply(this, arguments);\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var o = n(15),\n      i = n(18);\n\n  e.exports = function () {\n    for (var e = o(this), t = i(e.add), n = 0, r = arguments.length; n < r; n++) {\n      t.call(e, arguments[n]);\n    }\n\n    return e;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(147);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    deleteAll: function deleteAll() {\n      return i.apply(this, arguments);\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var a = n(15),\n      c = n(18);\n\n  e.exports = function () {\n    for (var e, t = a(this), n = c(t.delete), r = !0, o = 0, i = arguments.length; o < i; o++) {\n      e = n.call(t, arguments[o]), r = r &#038;&#038; e;\n    }\n\n    return !!r;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(21),\n      c = n(34),\n      u = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    every: function every(e, t) {\n      var n = i(this),\n          r = c(n),\n          o = a(e, 1 < arguments.length ? t : void 0, 3);\n      return !u(r, function (e) {\n        if (!o(e, e, n)) return u.stop();\n      }, void 0, !1, !0).stopped;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(25),\n      a = n(15),\n      c = n(18),\n      u = n(37),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    difference: function difference(e) {\n      var t = a(this),\n          n = new (u(t, i(\"Set\")))(t),\n          r = c(n.delete);\n      return s(e, function (e) {\n        r.call(n, e);\n      }), n;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      c = n(25),\n      u = n(15),\n      s = n(18),\n      d = n(21),\n      f = n(37),\n      l = n(34),\n      p = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    filter: function filter(e, t) {\n      var n = u(this),\n          r = l(n),\n          o = d(e, 1 < arguments.length ? t : void 0, 3),\n          i = new (f(n, c(\"Set\")))(),\n          a = s(i.add);\n      return p(r, function (e) {\n        o(e, e, n) &#038;&#038; a.call(i, e);\n      }, void 0, !1, !0), i;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(21),\n      c = n(34),\n      u = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    find: function find(e, t) {\n      var n = i(this),\n          r = c(n),\n          o = a(e, 1 < arguments.length ? t : void 0, 3);\n      return u(r, function (e) {\n        if (o(e, e, n)) return u.stop(e);\n      }, void 0, !1, !0).result;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(25),\n      a = n(15),\n      c = n(18),\n      u = n(37),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    intersection: function intersection(e) {\n      var t = a(this),\n          n = new (u(t, i(\"Set\")))(),\n          r = c(t.has),\n          o = c(n.add);\n      return s(e, function (e) {\n        r.call(t, e) &#038;&#038; o.call(n, e);\n      }), n;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(18),\n      c = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    isDisjointFrom: function isDisjointFrom(e) {\n      var t = i(this),\n          n = a(t.has);\n      return !c(e, function (e) {\n        if (!0 === n.call(t, e)) return c.stop();\n      }).stopped;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(25),\n      a = n(15),\n      c = n(18),\n      u = n(91),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    isSubsetOf: function isSubsetOf(e) {\n      var t = u(this),\n          n = a(e),\n          r = n.has;\n      return \"function\" != typeof r &#038;&#038; (n = new (i(\"Set\"))(e), r = c(n.has)), !s(t, function (e) {\n        if (!1 === r.call(n, e)) return s.stop();\n      }, void 0, !1, !0).stopped;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(18),\n      c = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    isSupersetOf: function isSupersetOf(e) {\n      var t = i(this),\n          n = a(t.has);\n      return !c(e, function (e) {\n        if (!1 === n.call(t, e)) return c.stop();\n      }).stopped;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(34),\n      c = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    join: function join(e) {\n      var t = i(this),\n          n = a(t),\n          r = void 0 === e ? \",\" : String(e),\n          o = [];\n      return c(n, o.push, o, !1, !0), o.join(r);\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      c = n(25),\n      u = n(15),\n      s = n(18),\n      d = n(21),\n      f = n(37),\n      l = n(34),\n      p = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    map: function map(e, t) {\n      var n = u(this),\n          r = l(n),\n          o = d(e, 1 < arguments.length ? t : void 0, 3),\n          i = new (f(n, c(\"Set\")))(),\n          a = s(i.add);\n      return p(r, function (e) {\n        a.call(i, o(e, e, n));\n      }, void 0, !1, !0), i;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      a = n(15),\n      c = n(18),\n      u = n(34),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    reduce: function reduce(t, e) {\n      var n = a(this),\n          r = u(n),\n          o = arguments.length < 2,\n          i = o ? void 0 : e;\n      if (c(t), s(r, function (e) {\n        i = o ? (o = !1, e) : t(i, e, e, n);\n      }, void 0, !1, !0), o) throw TypeError(\"Reduce of empty set with no initial value\");\n      return i;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(15),\n      a = n(21),\n      c = n(34),\n      u = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    some: function some(e, t) {\n      var n = i(this),\n          r = c(n),\n          o = a(e, 1 < arguments.length ? t : void 0, 3);\n      return u(r, function (e) {\n        if (o(e, e, n)) return u.stop();\n      }, void 0, !1, !0).stopped;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(25),\n      a = n(15),\n      c = n(18),\n      u = n(37),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    symmetricDifference: function symmetricDifference(e) {\n      var t = a(this),\n          n = new (u(t, i(\"Set\")))(t),\n          r = c(n.delete),\n          o = c(n.add);\n      return s(e, function (e)  o.call(n, e);\n      ), n;\n    }\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(16),\n      i = n(25),\n      a = n(15),\n      c = n(18),\n      u = n(37),\n      s = n(17);\n  r({\n    target: \"Set\",\n    proto: !0,\n    real: !0,\n    forced: o\n  }, {\n    union: function union(e) {\n      var t = a(this),\n          n = new (u(t, i(\"Set\")))(t);\n      return s(e, c(n.add), n), n;\n    }\n  });\n}, function (e, t, n) {\n  n(90), n(163);\n  var r = n(42);\n  e.exports = r.Array.from;\n}, function (e, t, n) {\n  var r = n(14),\n      o = n(164);\n  r({\n    target: \"Array\",\n    stat: !0,\n    forced: !n(166)(function (e) {\n      Array.from(e);\n    })\n  }, {\n    from: o\n  });\n}, function (e, t, n) {\n  \"use strict\";\n\n  var b = n(21),\n      v = n(57),\n      h = n(83),\n      m = n(82),\n      S = n(50),\n      A = n(165),\n      E = n(61);\n\n  e.exports = function (e, t, n) {\n    var r,\n        o,\n        i,\n        a,\n        c,\n        u,\n        s = v(e),\n        d = \"function\" == typeof this ? this : Array,\n        f = arguments.length,\n        l = 1 < f ? t : void 0,\n        p = void 0 !== l,\n        g = E(s),\n        y = 0;\n    if (p &#038;&#038; (l = b(l, 2 < f ? n : void 0, 2)), null == g || d == Array &#038;&#038; m(g)) for (o = new d(r = S(s.length)); y < r; y++) {\n      u = p ? l(s[y], y) : s[y], A(o, y, u);\n    } else for (c = (a = g.call(s)).next, o = new d(); !(i = c.call(a)).done; y++) {\n      u = p ? h(a, l, [i.value, y], !0) : i.value, A(o, y, u);\n    }\n    return o.length = y, o;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var o = n(55),\n      i = n(31),\n      a = n(46);\n\n  e.exports = function (e, t, n) {\n    var r = o(t);\n    r in e ? i.f(e, r, a(0, n)) : e[r] = n;\n  };\n}, function (e, t, n) {\n  var o = n(19)(\"iterator\"),\n      i = !1;\n\n  try {\n    var r = 0,\n        a = {\n      next: function next() {\n        return {\n          done: !!r++\n        };\n      },\n      return: function _return() {\n        i = !0;\n      }\n    };\n    a[o] = function () {\n      return this;\n    }, Array.from(a, function () {\n      throw 2;\n    });\n  } catch (e) {}\n\n  e.exports = function (e, t) {\n    if (!t &#038;&#038; !i) return !1;\n    var n = !1;\n\n    try {\n      var r = {};\n      r[o] = function () {\n        return {\n          next: function next() {\n            return {\n              done: n = !0\n            };\n          }\n        };\n      }, e(r);\n    } catch (e) {}\n\n    return n;\n  };\n}, function (e, t) {\n  e.exports = function e(t) {\n    var n = Array.isArray(t) ? [] : {};\n\n    for (var r in t) {\n      var o = t[r];\n      n[r] = o &#038;&#038; \"object\" == _typeof(o) ? e(o) : o;\n    }\n\n    return n;\n  };\n}, function (e, t, n) {\n  var f = n(93),\n      l = n(170),\n      o = n(171),\n      p = n(177),\n      g = n(179),\n      y = n(181),\n      b = Date.prototype.getTime;\n\n  function v(e, t, n) {\n    var r = n || {};\n    return !(r.strict ? !o(e, t) : e !== t) || (!e || !t || \"object\" != _typeof(e) &#038;&#038; \"object\" != _typeof(t) ? r.strict ? o(e, t) : e == t : function (e, t, n) {\n      var r, o;\n      if (_typeof(e) != _typeof(t)) return !1;\n      if (h(e) || h(t)) return !1;\n      if (e.prototype !== t.prototype) return !1;\n      if (l(e) !== l(t)) return !1;\n      var i = p(e),\n          a = p(t);\n      if (i !== a) return !1;\n      if (i || a) return e.source === t.source &#038;&#038; g(e) === g(t);\n      if (y(e) &#038;&#038; y(t)) return b.call(e) === b.call(t);\n      var c = m(e),\n          u = m(t);\n      if (c !== u) return !1;\n\n      if (c || u) {\n        if (e.length !== t.length) return !1;\n\n        for (r = 0; r < e.length; r++) {\n          if (e[r] !== t[r]) return !1;\n        }\n\n        return !0;\n      }\n\n      if (_typeof(e) != _typeof(t)) return !1;\n\n      try {\n        var s = f(e),\n            d = f(t);\n      } catch (e) {\n        return !1;\n      }\n\n      if (s.length !== d.length) return !1;\n\n      for (s.sort(), d.sort(), r = s.length - 1; 0 <= r; r--) {\n        if (s[r] != d[r]) return !1;\n      }\n\n      for (r = s.length - 1; 0 <= r; r--) {\n        if (o = s[r], !v(e[o], t[o], n)) return !1;\n      }\n\n      return !0;\n    }(e, t, r));\n  }\n\n  function h(e) {\n    return null == e;\n  }\n\n  function m(e)  \"object\" != _typeof(e) \n\n  e.exports = v;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var l, p, g, r, y, b, v, h, o, m, i;\n  Object.keys || (l = Object.prototype.hasOwnProperty, p = Object.prototype.toString, g = n(94), r = Object.prototype.propertyIsEnumerable, y = !r.call({\n    toString: null\n  }, \"toString\"), b = r.call(function () {}, \"prototype\"), v = [\"toString\"https:\/\/slate.com\/,\"toLocaleString\"https:\/\/slate.com\/,\"valueOf\"https:\/\/slate.com\/,\"hasOwnProperty\"https:\/\/slate.com\/,\"isPrototypeOf\"https:\/\/slate.com\/,\"propertyIsEnumerable\"https:\/\/slate.com\/,\"constructor\"], h = function h(e) {\n    var t = e.constructor;\n    return t &#038;&#038; t.prototype === e;\n  }, o = {\n    $applicationCache: !0,\n    $console: !0,\n    $external: !0,\n    $frame: !0,\n    $frameElement: !0,\n    $frames: !0,\n    $innerHeight: !0,\n    $innerWidth: !0,\n    $onmozfullscreenchange: !0,\n    $onmozfullscreenerror: !0,\n    $outerHeight: !0,\n    $outerWidth: !0,\n    $pageXOffset: !0,\n    $pageYOffset: !0,\n    $parent: !0,\n    $scrollLeft: !0,\n    $scrollTop: !0,\n    $scrollX: !0,\n    $scrollY: !0,\n    $self: !0,\n    $webkitIndexedDB: !0,\n    $webkitStorageInfo: !0,\n    $window: !0\n  }, m = function () {\n    if (\"undefined\" == typeof window) return !1;\n\n    for (var e in window) {\n      try {\n        if (!o[\"$\" + e] &#038;&#038; l.call(window, e) &#038;&#038; null !== window[e] &#038;&#038; \"object\" == _typeof(window[e])) try {\n          h(window[e]);\n        } catch (e) {\n          return !0;\n        }\n      } catch (e) {\n        return !0;\n      }\n    }\n\n    return !1;\n  }(), i = function i(e) {\n    var t = null !== e &#038;&#038; \"object\" == _typeof(e),\n        n = \"[object Function]\" === p.call(e),\n        r = g(e),\n        o = t &#038;&#038; \"[object String]\" === p.call(e),\n        i = [];\n\n    if (!t &#038;&#038; !n &#038;&#038; !r) throw new TypeError(\"Object.keys called on a non-object\");\n    var a = b &#038;&#038; n;\n    if (o &#038;&#038; 0 < e.length &#038;&#038; !l.call(e, 0)) for (var c = 0; c < e.length; ++c) {\n      i.push(String(c));\n    }\n    if (r &#038;&#038; 0 < e.length) for (var u = 0; u < e.length; ++u) {\n      i.push(String(u));\n    } else for (var s in e)  !l.call(e, s) \n    if (y) for (var d = function (e) {\n      if (\"undefined\" == typeof window || !m) return h(e);\n\n      try {\n        return h(e);\n      } catch (e) {\n        return !1;\n      }\n    }(e), f = 0; f < v.length; ++f)  !l.call(e, v[f]) \n    return i;\n  }), e.exports = i;\n}, function (e, t, n) {\n  \"use strict\";\n\n  function r(e) {\n    return !(i &#038;&#038; e &#038;&#038; \"object\" == _typeof(e) &#038;&#038; Symbol.toStringTag in e) &#038;&#038; \"[object Arguments]\" === a.call(e);\n  }\n\n  function o(e) \n\n  var i = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.toStringTag),\n      a = Object.prototype.toString,\n      c = function () {\n    return r(arguments);\n  }();\n\n  r.isLegacyArguments = o, e.exports = c ? r : o;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(43),\n      o = n(95),\n      i = n(96),\n      a = n(97),\n      c = n(176),\n      u = o(a(), Object);\n  r(u, {\n    getPolyfill: a,\n    implementation: i,\n    shim: c\n  }), e.exports = u;\n}, function (e, t, n) {\n  \"use strict\";\n\n  var u = Array.prototype.slice,\n      s = Object.prototype.toString;\n\n  e.exports = function (t) {\n    var n = this;\n    if (\"function\" != typeof n || \"[object Function]\" !== s.call(n)) throw new TypeError(\"Function.prototype.bind called on incompatible \" + n);\n\n    for (var r, e, o = u.call(arguments, 1), i = Math.max(0, n.length - o.length), a = [], c = 0; c < i; c++) {\n      a.push(\"$\" + c);\n    }\n\n    return r = Function(\"binder\"https:\/\/slate.com\/,\"return function (\" + a.join(\",\") + \"){ return binder.apply(this,arguments); }\")(function () {\n      if (this instanceof r) {\n        var e = n.apply(this, o.concat(u.call(arguments)));\n        return Object(e) === e ? e : this;\n      }\n\n      return n.apply(t, o.concat(u.call(arguments)));\n    }), n.prototype &#038;&#038; ((e = function e() {}).prototype = n.prototype, r.prototype = new e(), e.prototype = null), r;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r,\n      c = TypeError,\n      u = Object.getOwnPropertyDescriptor;\n  if (u) try {\n    u({}, \"\");\n  } catch (e) {\n    u = null;\n  }\n\n  function o() {\n    throw new c();\n  }\n\n  var i = u ? function () {\n    try {\n      return o;\n    } catch (e) {\n      try {\n        return u(arguments, \"callee\").get;\n      } catch (e) {\n        return o;\n      }\n    }\n  }() : o,\n      a = n(174)(),\n      s = Object.getPrototypeOf || function (e) {\n    return e.__proto__;\n  },\n      d = r,\n      f = \"undefined\" == typeof Uint8Array ? r : s(Uint8Array),\n      l = {\n    \"%Array%\": Array,\n    \"%ArrayBuffer%\": \"undefined\" == typeof ArrayBuffer ? r : ArrayBuffer,\n    \"%ArrayBufferPrototype%\": \"undefined\" == typeof ArrayBuffer ? r : ArrayBuffer.prototype,\n    \"%ArrayIteratorPrototype%\": a ? s([][Symbol.iterator]()) : r,\n    \"%ArrayPrototype%\": Array.prototype,\n    \"%ArrayProto_entries%\": Array.prototype.entries,\n    \"%ArrayProto_forEach%\": Array.prototype.forEach,\n    \"%ArrayProto_keys%\": Array.prototype.keys,\n    \"%ArrayProto_values%\": Array.prototype.values,\n    \"%AsyncFromSyncIteratorPrototype%\": r,\n    \"%AsyncFunction%\": void 0,\n    \"%AsyncFunctionPrototype%\": r,\n    \"%AsyncGenerator%\": r,\n    \"%AsyncGeneratorFunction%\": void 0,\n    \"%AsyncGeneratorPrototype%\": r,\n    \"%AsyncIteratorPrototype%\": d &#038;&#038; a &#038;&#038; Symbol.asyncIterator ? d[Symbol.asyncIterator]() : r,\n    \"%Atomics%\": \"undefined\" == typeof Atomics ? r : Atomics,\n    \"%Boolean%\": Boolean,\n    \"%BooleanPrototype%\": Boolean.prototype,\n    \"%DataView%\": \"undefined\" == typeof DataView ? r : DataView,\n    \"%DataViewPrototype%\": \"undefined\" == typeof DataView ? r : DataView.prototype,\n    \"%Date%\": Date,\n    \"%DatePrototype%\": Date.prototype,\n    \"%decodeURI%\": decodeURI,\n    \"%decodeURIComponent%\": decodeURIComponent,\n    \"%encodeURI%\": encodeURI,\n    \"%encodeURIComponent%\": encodeURIComponent,\n    \"%Error%\": Error,\n    \"%ErrorPrototype%\": Error.prototype,\n    \"%eval%\": eval,\n    \"%EvalError%\": EvalError,\n    \"%EvalErrorPrototype%\": EvalError.prototype,\n    \"%Float32Array%\": \"undefined\" == typeof Float32Array ? r : Float32Array,\n    \"%Float32ArrayPrototype%\": \"undefined\" == typeof Float32Array ? r : Float32Array.prototype,\n    \"%Float64Array%\": \"undefined\" == typeof Float64Array ? r : Float64Array,\n    \"%Float64ArrayPrototype%\": \"undefined\" == typeof Float64Array ? r : Float64Array.prototype,\n    \"%Function%\": Function,\n    \"%FunctionPrototype%\": Function.prototype,\n    \"%Generator%\": r,\n    \"%GeneratorFunction%\": void 0,\n    \"%GeneratorPrototype%\": r,\n    \"%Int8Array%\": \"undefined\" == typeof Int8Array ? r : Int8Array,\n    \"%Int8ArrayPrototype%\": \"undefined\" == typeof Int8Array ? r : Int8Array.prototype,\n    \"%Int16Array%\": \"undefined\" == typeof Int16Array ? r : Int16Array,\n    \"%Int16ArrayPrototype%\": \"undefined\" == typeof Int16Array ? r : Int8Array.prototype,\n    \"%Int32Array%\": \"undefined\" == typeof Int32Array ? r : Int32Array,\n    \"%Int32ArrayPrototype%\": \"undefined\" == typeof Int32Array ? r : Int32Array.prototype,\n    \"%isFinite%\": isFinite,\n    \"%isNaN%\": isNaN,\n    \"%IteratorPrototype%\": a ? s(s([][Symbol.iterator]())) : r,\n    \"%JSON%\": \"object\" == (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) ? JSON : r,\n    \"%JSONParse%\": \"object\" == (typeof JSON === \"undefined\" ? \"undefined\" : _typeof(JSON)) ? JSON.parse : r,\n    \"%Map%\": \"undefined\" == typeof Map ? r : Map,\n    \"%MapIteratorPrototype%\": \"undefined\" != typeof Map &#038;&#038; a ? s(new Map()[Symbol.iterator]()) : r,\n    \"%MapPrototype%\": \"undefined\" == typeof Map ? r : Map.prototype,\n    \"%Math%\": Math,\n    \"%Number%\": Number,\n    \"%NumberPrototype%\": Number.prototype,\n    \"%Object%\": Object,\n    \"%ObjectPrototype%\": Object.prototype,\n    \"%ObjProto_toString%\": Object.prototype.toString,\n    \"%ObjProto_valueOf%\": Object.prototype.valueOf,\n    \"%parseFloat%\": parseFloat,\n    \"%parseInt%\": parseInt,\n    \"%Promise%\": \"undefined\" == typeof Promise ? r : Promise,\n    \"%PromisePrototype%\": \"undefined\" == typeof Promise ? r : Promise.prototype,\n    \"%PromiseProto_then%\": \"undefined\" == typeof Promise ? r : Promise.prototype.then,\n    \"%Promise_all%\": \"undefined\" == typeof Promise ? r : Promise.all,\n    \"%Promise_reject%\": \"undefined\" == typeof Promise ? r : Promise.reject,\n    \"%Promise_resolve%\": \"undefined\" == typeof Promise ? r : Promise.resolve,\n    \"%Proxy%\": \"undefined\" == typeof Proxy ? r : Proxy,\n    \"%RangeError%\": RangeError,\n    \"%RangeErrorPrototype%\": RangeError.prototype,\n    \"%ReferenceError%\": ReferenceError,\n    \"%ReferenceErrorPrototype%\": ReferenceError.prototype,\n    \"%Reflect%\": \"undefined\" == typeof Reflect ? r : Reflect,\n    \"%RegExp%\": RegExp,\n    \"%RegExpPrototype%\": RegExp.prototype,\n    \"%Set%\": \"undefined\" == typeof Set ? r : Set,\n    \"%SetIteratorPrototype%\": \"undefined\" != typeof Set &#038;&#038; a ? s(new Set()[Symbol.iterator]()) : r,\n    \"%SetPrototype%\": \"undefined\" == typeof Set ? r : Set.prototype,\n    \"%SharedArrayBuffer%\": \"undefined\" == typeof SharedArrayBuffer ? r : SharedArrayBuffer,\n    \"%SharedArrayBufferPrototype%\": \"undefined\" == typeof SharedArrayBuffer ? r : SharedArrayBuffer.prototype,\n    \"%String%\": String,\n    \"%StringIteratorPrototype%\": a ? s(\"\"[Symbol.iterator]()) : r,\n    \"%StringPrototype%\": String.prototype,\n    \"%Symbol%\": a ? Symbol : r,\n    \"%SymbolPrototype%\": a ? Symbol.prototype : r,\n    \"%SyntaxError%\": SyntaxError,\n    \"%SyntaxErrorPrototype%\": SyntaxError.prototype,\n    \"%ThrowTypeError%\": i,\n    \"%TypedArray%\": f,\n    \"%TypedArrayPrototype%\": f ? f.prototype : r,\n    \"%TypeError%\": c,\n    \"%TypeErrorPrototype%\": c.prototype,\n    \"%Uint8Array%\": \"undefined\" == typeof Uint8Array ? r : Uint8Array,\n    \"%Uint8ArrayPrototype%\": \"undefined\" == typeof Uint8Array ? r : Uint8Array.prototype,\n    \"%Uint8ClampedArray%\": \"undefined\" == typeof Uint8ClampedArray ? r : Uint8ClampedArray,\n    \"%Uint8ClampedArrayPrototype%\": \"undefined\" == typeof Uint8ClampedArray ? r : Uint8ClampedArray.prototype,\n    \"%Uint16Array%\": \"undefined\" == typeof Uint16Array ? r : Uint16Array,\n    \"%Uint16ArrayPrototype%\": \"undefined\" == typeof Uint16Array ? r : Uint16Array.prototype,\n    \"%Uint32Array%\": \"undefined\" == typeof Uint32Array ? r : Uint32Array,\n    \"%Uint32ArrayPrototype%\": \"undefined\" == typeof Uint32Array ? r : Uint32Array.prototype,\n    \"%URIError%\": URIError,\n    \"%URIErrorPrototype%\": URIError.prototype,\n    \"%WeakMap%\": \"undefined\" == typeof WeakMap ? r : WeakMap,\n    \"%WeakMapPrototype%\": \"undefined\" == typeof WeakMap ? r : WeakMap.prototype,\n    \"%WeakSet%\": \"undefined\" == typeof WeakSet ? r : WeakSet,\n    \"%WeakSetPrototype%\": \"undefined\" == typeof WeakSet ? r : WeakSet.prototype\n  },\n      p = n(67).call(Function.call, String.prototype.replace),\n      g = \/[^%.[]]+|[(?:(-?d+(?:.d+)?)|([\"'])((?:(?!2)[^]|.)*?)2)]|(?=(?:.|[])(?:.|[]|%$))\/g,\n      y = \/()?\/g;\n\n  e.exports = function (e, t) {\n    if (\"string\" != typeof e || 0 === e.length) throw new TypeError(\"intrinsic name must be a non-empty string\");\n    if (1 < arguments.length &#038;&#038; \"boolean\" != typeof t) throw new TypeError('\"allowMissing\" argument must be a boolean');\n\n    for (var o, n = (o = [], p(e, g, function (e, t, n, r)  e;\n    ), o), r = function (e, t) {\n      if (!(e in l)) throw new SyntaxError(\"intrinsic \" + e + \" does not exist!\");\n      if (void 0 === l[e] &#038;&#038; !t) throw new c(\"intrinsic \" + e + \" exists, but is not available. Please file an issue!\");\n      return l[e];\n    }(\"%\" + (0 < n.length ? n[0] : \"\") + \"%\", t), i = 1; i < n.length; i += 1) {\n      if (null != r) if (u &#038;&#038; i + 1 >= n.length)  a.value : r[n[i]];\n       else r = r[n[i]];\n    }<\/p>\n<p>    return r;\n  };\n}, function (r, e, o) {\n  \"use strict\";<\/p>\n<p>  (function (e) {\n    var t = e.Symbol,\n        n = o(175);<\/p>\n<p>    r.exports = function () {\n      return \"function\" == typeof t && \"function\" == typeof Symbol && \"symbol\" == _typeof(t(\"foo\")) && \"symbol\" == _typeof(Symbol(\"bar\")) && n();\n    };\n  }).call(e, o(33));\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  e.exports = function () {\n    if (\"function\" != typeof Symbol || \"function\" != typeof Object.getOwnPropertySymbols) return !1;\n    if (\"symbol\" == _typeof(Symbol.iterator)) return !0;\n    var e = {},\n        t = Symbol(\"test\"),\n        n = Object(t);\n    if (\"string\" == typeof t) return !1;\n    if (\"[object Symbol]\" !== Object.prototype.toString.call(t)) return !1;\n    if (\"[object Symbol]\" !== Object.prototype.toString.call(n)) return !1;<\/p>\n<p>    for (t in (e[t] = 42, e)) {\n      return !1;\n    }<\/p>\n<p>    if (\"function\" == typeof Object.keys && 0 !== Object.keys(e).length) return !1;\n    if (\"function\" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(e).length) return !1;\n    var r = Object.getOwnPropertySymbols(e);\n    if (1 !== r.length || r[0] !== t) return !1;\n    if (!Object.prototype.propertyIsEnumerable.call(e, t)) return !1;<\/p>\n<p>    if (\"function\" == typeof Object.getOwnPropertyDescriptor) <\/p>\n<p>    return !0;\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(97),\n      o = n(43);<\/p>\n<p>  e.exports = function () {\n    var e = r();\n    return o(Object, {\n      is: e\n    }, {\n      is: function is() {\n        return Object.is !== e;\n      }\n    }), e;\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(178),\n      o = RegExp.prototype.exec,\n      i = Object.getOwnPropertyDescriptor,\n      a = Object.prototype.toString,\n      c = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.toStringTag);<\/p>\n<p>  e.exports = function (e) {\n    if (!e || \"object\" != _typeof(e)) return !1;\n    if (!c) return \"[object RegExp]\" === a.call(e);\n    var t = i(e, \"lastIndex\");\n    return !(!t || !r(t, \"value\")) && function (e) {\n      try {\n        var t = e.lastIndex;\n        return e.lastIndex = 0, o.call(e), !0;\n      } catch (e) {\n        return !1;\n      } finally {\n        e.lastIndex = t;\n      }\n    }(e);\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(67);\n  e.exports = r.call(Function.call, Object.prototype.hasOwnProperty);\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(43),\n      o = n(95),\n      i = n(98),\n      a = n(99),\n      c = n(180),\n      u = o(i);\n  r(u, {\n    getPolyfill: a,\n    implementation: i,\n    shim: c\n  }), e.exports = u;\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = n(43).supportsDescriptors,\n      o = n(99),\n      i = Object.getOwnPropertyDescriptor,\n      a = Object.defineProperty,\n      c = TypeError,\n      u = Object.getPrototypeOf,\n      s = \/a\/;<\/p>\n<p>  e.exports = function () {\n    if (!r || !u) throw new c(\"RegExp.prototype.flags requires a true ES5 environment that supports property descriptors\");\n    var e = o(),\n        t = u(s),\n        n = i(t, \"flags\");\n    return n && n.get === e || a(t, \"flags\", {\n      configurable: !0,\n      enumerable: !1,\n      get: e\n    }), e;\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  var r = Date.prototype.getDay,\n      o = Object.prototype.toString,\n      i = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.toStringTag);<\/p>\n<p>  e.exports = function (e) {\n    return \"object\" == _typeof(e) && null !== e && (i ? function (e) {\n      try {\n        return r.call(e), !0;\n      } catch (e) {\n        return !1;\n      }\n    }(e) : \"[object Date]\" === o.call(e));\n  };\n}, function (e, t, n) {\n  \"use strict\";<\/p>\n<p>  t.a = function (e, t, n, r, o) {\n    for (t = t.split ? t.split(\".\") : t, r = 0; r < t.length; r++) {\n      e = e ? e[t[r]] : o;\n    }\n\n    return e === o ? n : e;\n  };\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (e, t, n) {\n    t.split &#038;&#038; (t = t.split(\".\"));\n\n    for (var r, o = 0, i = t.length, a = e; o < i; ++o) {\n      r = a[t[o]], a = a[t[o]] = o === i - 1 ? n : null != r ? r : !~t[o + 1].indexOf(\".\") &#038;&#038; -1 < +t[o + 1] ? [] : {};\n    }\n  };\n}, function (e, t) {\n  h.SYNC = 1, h.ASYNC = 2, h.QUEUE = 4;\n  var g = \"fun-hooks\";\n  var n = Object.freeze({\n    useProxy: !0,\n    ready: 0\n  }),\n      y = new WeakMap(),\n      r = \"2,1,0\" === [1].reduce(function (e, t, n) {\n    return [e, t, n];\n  }, 2).toString() ? Array.prototype.reduce : function (e, t) {\n    var n,\n        r = Object(this),\n        o = r.length >>> 0,\n        i = 0;\n    if (t) n = t;else {\n      for (; i < o &#038;&#038; !(i in r);) {\n        i++;\n      }\n\n      n = r[i++];\n    }\n\n    for (; i < o;) {\n      i in r &#038;&#038; (n = e(n, r[i], i, r)), i++;\n    }\n\n    return n;\n  };\n\n  function b(e, t) {\n    return Array.prototype.slice.call(e, t);\n  }\n\n  var v = Object.assign || function (e) {\n    return r.call(b(arguments, 1), function (t, n) {\n      return n &#038;&#038; Object.keys(n).forEach(function (e) {\n        t[e] = n[e];\n      }), t;\n    }, e);\n  };\n\n  function h(u) {\n    var s,\n        e = {},\n        d = [];\n\n    function t(e, t) {\n      return \"function\" == typeof e ? f.call(null, \"sync\", e, t) : \"string\" == typeof e &#038;&#038; \"function\" == typeof t ? f.apply(null, arguments) : \"object\" == _typeof(e) ? function (i, e, a) {\n        var t = !0;\n        void 0 === e &#038;&#038; (e = Object.getOwnPropertyNames(i), t = !1);\n        var c = {},\n            n = [\"constructor\"];\n\n        for (; (e = e.filter(function (e) )).forEach(function (e)  \"sync\";\n          c[r] ), i = Object.getPrototypeOf(i), t &#038;&#038; i;) {\n          ;\n        }\n\n        return c;\n      }.apply(null, arguments) : void 0;\n    }\n\n    function l(i) {\n      var a = Array.isArray(i) ? i : i.split(\".\");\n      return r.call(a, function (t, n, e) {\n        var r = t[n],\n            o = !1;\n        return r || (e === a.length - 1 ? (s || d.push(function ()  console.warn(g + \": referenced '\" + i + \"' but it was never created\");\n        ), t[n] = p(function (e) {\n          t[n] = e, o = !0;\n        })) : t[n] = {});\n      }, e);\n    }\n\n    function p(r) {\n      var i = [],\n          a = [],\n          c = function c() {},\n          e = {\n        before: function before(e, t) {\n          return n.call(this, i, \"before\", e, t);\n        },\n        after: function after(e, t) {\n          return n.call(this, a, \"after\", e, t);\n        },\n        getHooks: function getHooks(n) {\n          var e = i.concat(a);\n          \"object\" == _typeof(n) &#038;&#038; (e = e.filter(function (t) {\n            return Object.keys(n).every(function (e) {\n              return t[e] === n[e];\n            });\n          }));\n\n          try {\n            v(e, {\n              remove: function remove() {\n                return e.forEach(function (e) {\n                  e.remove();\n                }), this;\n              }\n            });\n          } catch (e) {\n            console.error(\"error adding `remove` to array, did you modify Array.prototype?\");\n          }\n\n          return e;\n        },\n        removeAll: function removeAll() {\n          return this.getHooks().remove();\n        }\n      },\n          t = {\n        install: function install(e, t, n) {\n          this.type = e, (c = n)(i, a), r &#038;&#038; r(t);\n        }\n      };\n\n      return y.set(e.after, t), e;\n\n      function n(t, e, n, r) {\n        var o = {\n          hook: n,\n          type: e,\n          priority: r || 10,\n          remove: function remove() {\n            var e = t.indexOf(o);\n            -1 !== e &#038;&#038; (t.splice(e, 1), c(i, a));\n          }\n        };\n        return t.push(o), t.sort(function (e, t) {\n          return t.priority - e.priority;\n        }), c(i, a), this;\n      }\n    }\n\n    function f(f, e, t) {\n      var n = e.after &#038;&#038; y.get(e.after);\n\n      if (n) {\n        if (n.type !== f) throw g + \": recreated hookable with different type\";\n        return e;\n      }\n\n      var r,\n          o,\n          i = t ? l(t) : p(),\n          a = {\n        get: function get(e, t)  Reflect.get.apply(Reflect, arguments);\n        \n      };\n      return s || d.push(c), u.useProxy &#038;&#038; \"function\" == typeof Proxy &#038;&#038; Proxy.revocable ? o = new Proxy(e, a) : v(o = function o() {\n        return a.apply ? a.apply(e, this, b(arguments)) : e.apply(this, arguments);\n      }, i), y.get(o.after).install(f, o, function (e, t) {\n        var s,\n            d = [];\n        r = e.length || t.length ? (e.forEach(n), s = d.push(void 0) - 1, t.forEach(n), function (n, r, e) {\n          var o,\n              i = 0,\n              a = \"async\" === f &#038;&#038; \"function\" == typeof e[e.length - 1] &#038;&#038; e.pop();\n\n          function c(e) {\n            \"sync\" === f ? o = e : a &#038;&#038; a.apply(null, arguments);\n          }\n\n          function u(e) {\n            if (d[i]) {\n              var t = b(arguments);\n              return u.bail = c, t.unshift(u), d[i++].apply(r, t);\n            }\n\n            \"sync\" === f ? o = e : a &#038;&#038; a.apply(null, arguments);\n          }\n\n          return d[s] = function () {\n            var e = b(arguments, 1);\n            \"async\" === f &#038;&#038; a &#038;&#038; (delete u.bail, e.push(u));\n            var t = n.apply(r, e);\n            \"sync\" === f &#038;&#038; u(t);\n          }, u.apply(null, e), o;\n        }) : void 0;\n\n        function n(e) {\n          d.push(e.hook);\n        }\n\n        c();\n      }), o;\n\n      function c() {\n        !s &#038;&#038; (\"sync\" !== f || u.ready &#038; h.SYNC) &#038;&#038; (\"async\" !== f || u.ready &#038; h.ASYNC) ? \"sync\" !== f &#038;&#038; u.ready &#038; h.QUEUE ? a.apply = function () {\n          var e = arguments;\n          d.push(function () {\n            o.apply(e[1], e[2]);\n          });\n        } : a.apply = function () {\n          throw g + \": hooked function not ready\";\n        } : a.apply = r;\n      }\n    }\n\n    return (u = v({}, n, u)).ready ? t.ready = function () {\n      s = !0, function (e) {\n        for (var t; t = e.shift();) {\n          t();\n        }\n      }(d);\n    } : s = !0, t.get = l, t;\n  }\n\n  e.exports = h;\n},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, function (e, t, n) {\n  n(239);\n  var r = n(52);\n  e.exports = r(\"Array\"https:\/\/slate.com\/,\"findIndex\");\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(56).findIndex,\n      i = n(51),\n      a = n(60),\n      c = \"findIndex\",\n      u = !0,\n      s = a(c);\n  c in [] &#038;&#038; Array(1)[c](function () {\n    u = !1;\n  }), r(, {\n    findIndex: function findIndex(e, t) {\n      return o(this, e, 1 < arguments.length ? t : void 0);\n    }\n  }), i(c);\n},,,,,,, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function () {\n    window.addEventListener(\"message\", c, !1);\n  };\n\n  var r = n(8),\n      g = n.n(r),\n      y = n(35),\n      o = n(5),\n      b = (n.n(o), n(0)),\n      v = n(26),\n      i = n(11),\n      h = n.n(i),\n      m = n(10),\n      a = n(12),\n      S = n.n(a),\n      A = o.EVENTS.BID_WON;\n\n  function c(e) {\n    var t,\n        n,\n        r,\n        o,\n        i,\n        a,\n        c,\n        u,\n        s,\n        d = e.message ? \"message\" : \"data\",\n        f = {};\n\n    try {\n      f = JSON.parse(e[d]);\n    } catch (e) {\n      return;\n    }\n\n    if (f &#038;&#038; f.adId) {\n      var l = h()(v.a.getBidsReceived(), function (e) {\n        return e.adId === f.adId;\n      });\n\n      if (l &#038;&#038; \"Prebid Request\" === f.message &#038;&#038; (n = e, r = (t = l).adId, o = t.ad, i = t.adUrl, a = t.width, c = t.height, u = t.renderer, s = t.cpm, Object(m.c)(u) ? Object(m.b)(u, t) : r &#038;&#038; (function (e) {\n        var i = e.adId,\n            a = e.adUnitCode,\n            r = e.width,\n            o = e.height;\n\n        function c(e) {\n          var t,\n              n,\n              r = (t = i, n = a, window.googletag ? function (n) {\n            return h()(window.googletag.pubads().getSlots(), function (t) {\n              return h()(t.getTargetingKeys(), function (e) {\n                return S()(t.getTargeting(e), n);\n              });\n            }).getSlotElementId();\n          }(t) : window.apntag ? function (e) {\n            var t = window.apntag.getTag(e);\n            return t &#038;&#038; t.targetId;\n          }(n) : n),\n              o = document.getElementById(r);\n          return o &#038;&#038; o.querySelector(e);\n        }\n\n        [\"div\"https:\/\/slate.com\/,\"iframe\"].forEach(function (e) {\n          var t,\n              n = c(e + ':not([style*=\"display: none\"])');\n          n ? ((t = n.style).width = r + \"px\", t.height = o + \"px\") : Object(b.logWarn)(\"Unable to locate matching page element for adUnitCode \".concat(a, \".  Can't resize it to ad's dimensions.  Please review setup.\"));\n        });\n      }(t), n.source.postMessage(JSON.stringify({\n        message: \"Prebid Response\",\n        ad: Object(b.replaceAuctionPrice)(o, s),\n        adUrl: Object(b.replaceAuctionPrice)(i, s),\n        adId: r,\n        width: a,\n        height: c\n      }), n.origin)), v.a.addWinningBid(l), g.a.emit(A, l)), l &#038;&#038; \"Prebid Native\" === f.message) {\n        if (\"assetRequest\" === f.action) {\n          var p = Object(y.c)(f, l);\n          return void e.source.postMessage(JSON.stringify(p), e.origin);\n        }\n\n        if (\"click\" === Object(y.b)(f, l)) return;\n        v.a.addWinningBid(l), g.a.emit(A, l);\n      }\n    }\n  }\n}, function (e, t, n) {\n  \"use strict\";\n\n  t.a = function (e) {\n    var t;\n\n    try  catch (e) {}\n\n    t &#038;&#038; p(t, !0);\n  };\n\n  var r,\n      o,\n      i = n(3),\n      a = n(0),\n      c = n(40),\n      u = \"pbjs:debugging\";\n\n  function s(e) {\n    Object(a.logMessage)(\"DEBUG: \" + e);\n  }\n\n  function d(e) {\n    Object(a.logWarn)(\"DEBUG: \" + e);\n  }\n\n  function f(e) {\n    r = function (e, t, n) {\n      if (y(this.bidders, n.bidderCode)) return void d(\"bidder '\".concat(n.bidderCode, \"' excluded from auction by bidder overrides\"));\n      Array.isArray(this.bids) &#038;&#038; this.bids.forEach(function (e) );\n      e(t, n);\n    }.bind(e), c.c.before(r, 5), o = function (e, t) {\n      var r = this,\n          n = t.filter(function (e) );\n      Array.isArray(r.bidRequests) &#038;&#038; n.forEach(function (n) {\n        r.bidRequests.forEach(function (t) {\n          n.bids.forEach(function (e) );\n        });\n      });\n      e(n);\n    }.bind(e), c.e.before(o, 5);\n  }\n\n  function l() {\n    c.c.getHooks({\n      hook: r\n    }).remove(), c.e.getHooks({\n      hook: o\n    }).remove();\n  }\n\n  function p(e, t) {\n    var n = 1 < arguments.length &#038;&#038; void 0 !== t &#038;&#038; t;\n    i.b.setConfig({\n      debug: !0\n    }), l(), f(e), s(\"bidder overrides enabled\".concat(n ? \" from session\" : \"\"));\n  }\n\n  function g(e, t, n)  e.adUnitCode === n);\n  \n\n  function y(e, t) {\n    return Array.isArray(e) &#038;&#038; -1 === e.indexOf(t);\n  }\n\n  function b(n, e, r) {\n    return Object.keys(n).filter(function (e) {\n      return -1 === [\"adUnitCode\"https:\/\/slate.com\/,\"bidder\"].indexOf(e);\n    }).reduce(function (e, t) {\n      return s(\"bidder overrides changed '\".concat(e.adUnitCode, \"\/\").concat(e.bidderCode, \"' \").concat(r, \".\").concat(t, \" from '\").concat(e[t], \".js' to '\").concat(n[t], \"'\")), e[t] = n[t], e;\n    }, e);\n  }\n\n  function v(e) {\n    if (e.enabled) {\n      try {\n        window.sessionStorage.setItem(u, JSON.stringify(e));\n      } catch (e) {}\n\n      p(e);\n    } else {\n      l(), s(\"bidder overrides disabled\");\n\n      try {\n        window.sessionStorage.removeItem(u);\n      } catch (e) {}\n    }\n  }\n\n  i.b.getConfig(\"debugging\", function (e) {\n    return v(e.debugging);\n  });\n},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, function (e, t, n) {\n  var r = n(361);\n  e.exports = r;\n}, function (e, t, n) {\n  n(362);\n  var r = n(52);\n  e.exports = r(\"String\"https:\/\/slate.com\/,\"includes\");\n}, function (e, t, n) {\n  \"use strict\";\n\n  var r = n(14),\n      o = n(363),\n      i = n(49);\n  r({\n    target: \"String\",\n    proto: !0,\n    forced: !n(365)(\"includes\")\n  }, {\n    includes: function includes(e, t) {\n      return !!~String(i(this)).indexOf(o(e), 1 < arguments.length ? t : void 0);\n    }\n  });\n}, function (e, t, n) {\n  var r = n(364);\n\n  e.exports = function (e) {\n    if (r(e)) throw TypeError(\"The method doesn't accept regular expressions\");\n    return e;\n  };\n}, function (e, t, n) {\n  var r = n(23),\n      o = n(48),\n      i = n(19)(\"match\");\n\n  e.exports = function (e) {\n    var t;\n    return r(e) &#038;&#038; (void 0 !== (t = e[i]) ? !!t : \"RegExp\" == o(e));\n  };\n}, function (e, t, n) {\n  var r = n(19)(\"match\");\n\n  e.exports = function (t) {\n    var n = \/.\/;\n\n    try {\n      \"\/.\/\"[t](n);\n    } catch (e) {\n      try {\n        return n[r] = !1, \"\/.\/\"[t](n);\n      } catch (e) {}\n    }\n\n    return !1;\n  };\n},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, function (e, t, n) {\n  var r = n(484);\n  e.exports = r;\n}, function (e, t, n) {\n  n(485);\n  var r = n(42);\n  e.exports = r.Number.isInteger;\n}, function (e, t, n) {\n  n(14)({\n    target: \"Number\",\n    stat: !0\n  }, {\n    isInteger: n(486)\n  });\n}, function (e, t, n) {\n  var r = n(23),\n      o = Math.floor;\n\n  e.exports = function (e) {\n    return !r(e) &#038;&#038; isFinite(e) &#038;&#038; o(e) === e;\n  };\n},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, function (e, t, n) {\n  e.exports = n(70);\n}]);\npbjsChunk([276], {\n  276: function _(n, e, t) {\n    n.exports = t(277);\n  },\n  277: function _(n, e, t) {\n    \"use strict\";\n\n    function i(n) {\n      return (i = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (n) {\n        return _typeof(n);\n      } : function (n) {\n        return n &#038;&#038; \"function\" == typeof Symbol &#038;&#038; n.constructor === Symbol &#038;&#038; n !== Symbol.prototype ? \"symbol\" : _typeof(n);\n      })(n);\n    }\n\n    Object.defineProperty(e, \"__esModule\", {\n      value: !0\n    });\n    var a = t(8),\n        u = t(0),\n        o = t(5),\n        l = t(7).default,\n        s = o.EVENTS.BID_REQUESTED,\n        c = o.EVENTS.BID_TIMEOUT,\n        d = o.EVENTS.BID_RESPONSE,\n        r = o.EVENTS.BID_WON,\n        f = [],\n        p = null,\n        b = !0,\n        y = 0,\n        v = !0,\n        g = [\"bidder\"https:\/\/slate.com\/,\"bidderCode\"https:\/\/slate.com\/,\"size\"https:\/\/slate.com\/,\"cpm\"https:\/\/slate.com\/,\"statusMessage\"https:\/\/slate.com\/,\"timeToRespond\"https:\/\/slate.com\/,\"adUnitCode\"],\n        m = {};\n\n    function E() {\n      if (b &#038;&#038; \"object\" === i(window[p]) &#038;&#038; \"function\" == typeof window[p].getInstance &#038;&#038; \"object\" === i(window.slateAmplitudeQueue) &#038;&#038; window.slateAmplitudeQueue.initCalled) {\n        for (var n = 0; n < f.length; n++) {\n          f[n].call();\n        }\n\n        f.push = function (n) {\n          n.call();\n        }, b = !1;\n      }\n\n      u.logMessage(\"event count sent to Amplitude: \" + y);\n    }\n\n    function w(e) {\n      var t = {};\n      return g.forEach(function (n) {\n        n in e &#038;&#038; (t[n] = e[n]);\n      }), t;\n    }\n\n    function T(e) {\n      e &#038;&#038; e.bidderCode &#038;&#038; f.push(function () {\n        var n = w(e);\n        y++, window[p].logEvent(\"Prebid.js Requests\", n);\n      }), E();\n    }\n\n    function h(e) {\n      e &#038;&#038; e.bidderCode &#038;&#038; f.push(function () {\n        var n;\n        0 < e.cpm &#038;&#038; (n = w(e), y++, window[p].logEvent(\"Prebid.js Bids\", n));\n      }), E();\n    }\n\n    function S(n) {\n      f.push(function () {\n        u._each(n, function (n) {\n          var e = w(n);\n          y++, window[p].logEvent(\"Prebid.js Timeouts\", e);\n        });\n      }), E();\n    }\n\n    function j(e) {\n      f.push(function () {\n        var n = w(e);\n        y++, window[p].logEvent(\"Prebid.js Wins\", n);\n      }), E();\n    }\n\n    m.enableAnalytics = function (n) {\n      var e = n.provider,\n          t = n.options;\n      p = e || \"amplitude\", v = void 0 === t || void 0 === t.sampling || Math.random() < parseFloat(t.sampling), t &#038;&#038; void 0 !== t.global &#038;&#038; (p = t.global);\n      var o;\n      v ? (o = a.getEvents(), u._each(o, function (n) {\n        var e;\n        \"object\" === i(n) &#038;&#038; (e = n.args, n.eventType === s ? T(e) : n.eventType === d ? h(e) : n.eventType === c ? S(e) : n.eventType === r &#038;&#038; j(e));\n      }), a.on(s, function (n) {\n        T(n);\n      }), a.on(d, function (n) {\n        h(n);\n      }), a.on(c, function (n) {\n        S(n);\n      }), a.on(r, function (n) {\n        j(n);\n      })) : u.logMessage(\"Prebid.js amplitude analytics disabled by sampling\"), this.enableAnalytics = function () {\n        return u.logMessage(\"Analytics adapter already enabled, unnecessary call to `enableAnalytics`.\");\n      };\n    }, l.registerAnalyticsAdapter({\n      adapter: m,\n      code: \"amplitude\"\n    }), e.default = m;\n  }\n}, [276]);\npbjsChunk([272], {\n  288: function _(e, r, t) {\n    e.exports = t(289);\n  },\n  289: function _(e, r, t) {\n    \"use strict\";\n\n    Object.defineProperty(r, \"__esModule\", {\n      value: !0\n    }), t.d(r, \"spec\", function () {\n      return O;\n    });\n\n    var f = t(10),\n        _ = t(0),\n        I = t(3),\n        g = t(1),\n        y = t(2),\n        p = t(26),\n        a = t(11),\n        k = t.n(a),\n        n = t(12),\n        x = t.n(n),\n        v = t(38),\n        i = t(9);\n\n    function s(e) {\n      return (s = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n        return _typeof(e);\n      } : function (e) {\n        return e &#038;&#038; \"function\" == typeof Symbol &#038;&#038; e.constructor === Symbol &#038;&#038; e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n      })(e);\n    }\n\n    function b() {\n      return (b = Object.assign || function (e) {\n        for (var r = 1; r < arguments.length; r++) {\n          var t = arguments[r];\n\n          for (var a in t) {\n            Object.prototype.hasOwnProperty.call(t, a) &#038;&#038; (e[a] = t[a]);\n          }\n        }\n\n        return e;\n      }).apply(this, arguments);\n    }\n\n    function A(e) {\n      return function (e) {\n        if (Array.isArray(e)) return o(e);\n      }(e) || function (e) {\n        if (\"undefined\" != typeof Symbol &#038;&#038; Symbol.iterator in Object(e)) return Array.from(e);\n      }(e) || function (e, r)  \"Set\" === t) return Array.from(e);\n        if (\"Arguments\" === t (e) || function () {\n        throw new TypeError(\"Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n      }();\n    }\n\n    function o(e, r) {\n      (null == r || r > e.length) && (r = e.length);<\/p>\n<p>      for (var t = 0, a = new Array(r); t < r; t++) {\n        a[t] = e[t];\n      }\n\n      return a;\n    }\n\n    var d = \"appnexus\",\n        C = \"https:\/\/ib.adnxs.com\/ut\/v3\/prebid\",\n        u = [\"id\"https:\/\/slate.com\/,\"mimes\"https:\/\/slate.com\/,\"minduration\"https:\/\/slate.com\/,\"maxduration\"https:\/\/slate.com\/,\"startdelay\"https:\/\/slate.com\/,\"skippable\"https:\/\/slate.com\/,\"playback_method\"https:\/\/slate.com\/,\"frameworks\"],\n        S = [\"age\"https:\/\/slate.com\/,\"externalUid\"https:\/\/slate.com\/,\"segments\"https:\/\/slate.com\/,\"gender\"https:\/\/slate.com\/,\"dnt\"https:\/\/slate.com\/,\"language\"],\n        w = [\"geo\"https:\/\/slate.com\/,\"device_id\"],\n        T = [\"enabled\"https:\/\/slate.com\/,\"dongle\"https:\/\/slate.com\/,\"member_id\"https:\/\/slate.com\/,\"debug_timeout\"],\n        c = {\n      body: \"description\",\n      body2: \"desc2\",\n      cta: \"ctatext\",\n      image: {\n        serverName: \"main_image\",\n        requiredParams: {\n          required: !0\n        }\n      },\n      icon: {\n        serverName: \"icon\",\n        requiredParams: {\n          required: !0\n        }\n      },\n      sponsoredBy: \"sponsored_by\",\n      privacyLink: \"privacy_link\",\n      salePrice: \"saleprice\",\n      displayUrl: \"displayurl\"\n    },\n        l = \"<script\",\n        m = \/\/\/cdn.adnxs.com\/v\/,\n        h = \"trk.js\",\n        E = Object(i.b)(32, d),\n        O = {\n      code: d,\n      gvlid: 32,\n      aliases: [\"appnexusAst\"https:\/\/slate.com\/,\"brealtime\"https:\/\/slate.com\/,\"emxdigital\"https:\/\/slate.com\/,\"pagescience\"https:\/\/slate.com\/,\"defymedia\"https:\/\/slate.com\/,\"gourmetads\"https:\/\/slate.com\/,\"matomy\"https:\/\/slate.com\/,\"featureforward\"https:\/\/slate.com\/,\"oftmedia\"https:\/\/slate.com\/,\"districtm\"https:\/\/slate.com\/,\"adasta\"https:\/\/slate.com\/,\"beintoo\"],\n      supportedMediaTypes: [y.b, y.d, y.c],\n      isBidRequestValid: function isBidRequestValid(e)  e.params.member &#038;&#038; e.params.invCode);\n      ,\n      buildRequests: function buildRequests(e, r) {\n        var a = e.map(U),\n            t = k()(e, q),\n            n = {};\n        !0 === I.b.getConfig(\"coppa\") &#038;&#038; (n = {\n          coppa: !0\n        }), t &#038;&#038; Object.keys(t.params.user).filter(function (e) {\n          return x()(S, e);\n        }).forEach(function (e) {\n          var r = _.convertCamelToUnderscore(e);\n\n          n[r] = t.params.user[e];\n        });\n        var i,\n            s = k()(e, z);\n        s &#038;&#038; s.params &#038;&#038; s.params.app &#038;&#038; (i = {}, Object.keys(s.params.app).filter(function (e) {\n          return x()(w, e);\n        }).forEach(function (e) {\n          return i[e] = s.params.app[e];\n        }));\n        var o,\n            d = k()(e, B);\n        d &#038;&#038; d.params &#038;&#038; s.params.app &#038;&#038; s.params.app.id &#038;&#038; (o = {\n          appid: d.params.app.id\n        });\n        var p = {},\n            u = {},\n            c = E.getCookie(\"apn_prebid_debug\") || null;\n        if (c) try {\n          p = JSON.parse(c);\n        } catch (e) {\n          _.logError(\"AppNexus Debug Auction Cookie Error:nn\" + e);\n        } else {\n          var l = k()(e, D);\n          l &#038;&#038; l.debug &#038;&#038; (p = l.debug);\n        }\n        p &#038;&#038; p.enabled &#038;&#038; Object.keys(p).filter(function (e) {\n          return x()(T, e);\n        }).forEach(function (e) {\n          u[e] = p[e];\n        });\n        var m,\n            f = k()(e, M),\n            g = f ? parseInt(f.params.member, 10) : 0,\n            y = e[0].schain,\n            v = {\n          tags: A(a),\n          user: n,\n          sdk: {\n            source: \"pbjs\",\n            version: \"3.23.0\"\n          },\n          schain: y\n        };\n        0 < g &#038;&#038; (v.member_id = g), s &#038;&#038; (v.device = i), d &#038;&#038; (v.app = o), I.b.getConfig(\"adpod.brandCategoryExclusion\") &#038;&#038; (v.brand_category_uniqueness = !0), u.enabled &#038;&#038; (v.debug = u, _.logInfo(\"AppNexus Debug Auction Settings:nn\" + JSON.stringify(u, null, 4))), r &#038;&#038; r.gdprConsent &#038;&#038; (v.gdpr_consent = {\n          consent_string: r.gdprConsent.consentString,\n          consent_required: r.gdprConsent.gdprApplies\n        }), r &#038;&#038; r.uspConsent &#038;&#038; (v.us_privacy = r.uspConsent), r &#038;&#038; r.refererInfo &#038;&#038; (m = {\n          rd_ref: encodeURIComponent(r.refererInfo.referer),\n          rd_top: r.refererInfo.reachedTop,\n          rd_ifs: r.refererInfo.numIframes,\n          rd_stk: r.refererInfo.stack.map(function (e) {\n            return encodeURIComponent(e);\n          }).join(\",\")\n        }, v.referrer_detection = m), k()(e, V) &#038;&#038; e.filter(V).forEach(function (r) {\n          var e = function (e, r) {\n            var t = r.mediaTypes.video,\n                a = t.durationRangeSec,\n                n = t.requireExactDuration,\n                i = function (e) {\n              var r = e.adPodDurationSec,\n                  t = e.durationRangeSec,\n                  a = e.requireExactDuration,\n                  n = _.getMinValueFromArray(t),\n                  i = Math.floor(r \/ n);\n\n              return a ? Math.max(i, t.length) : i;\n            }(r.mediaTypes.video),\n                s = _.getMaxValueFromArray(a),\n                o = e.filter(function (e) {\n              return e.uuid === r.bidId;\n            }),\n                d = _.fill.apply(_, A(o).concat([i]));\n\n            {\n              var p, u;\n              n ? (p = Math.ceil(i \/ a.length), u = _.chunk(d, p), a.forEach(function (r, e) {\n                u[e].map(function (e) {\n                  J(e, \"minduration\", r), J(e, \"maxduration\", r);\n                });\n              })) : d.map(function (e) {\n                return J(e, \"maxduration\", s);\n              });\n            }\n            return d;\n          }(a, r),\n              t = v.tags.filter(function (e) {\n            return e.uuid !== r.bidId;\n          });\n\n          v.tags = [].concat(A(t), A(e));\n        });\n\n        var b,\n            h = _.deepAccess(e[0], \"userId.criteoId\");\n\n        return h &#038;&#038; ((b = []).push({\n          provider: \"criteo\",\n          user_id: h\n        }), v.tpuids = b), a[0].publisher_id &#038;&#038; (v.publisher_id = a[0].publisher_id), function (e, t) {\n          var a = [],\n              n = {};\n          !function (e) {\n            var r = !0;\n            e &#038;&#038; e.gdprConsent &#038;&#038; e.gdprConsent.gdprApplies &#038;&#038; 2 === e.gdprConsent.apiVersion &#038;&#038; (r = !(!0 !== _.deepAccess(e.gdprConsent, \"vendorData.purpose.consents.1\")));\n            return r;\n          }(t) &#038;&#038; (n = {\n            withCredentials: !1\n          });\n          {\n            var i, r;\n            15 < e.tags.length ? (i = _.deepClone(e), _.chunk(e.tags, 15).forEach(function (e) {\n              i.tags = e;\n              var r = JSON.stringify(i);\n              a.push({\n                method: \"POST\",\n                url: C,\n                data: r,\n                bidderRequest: t,\n                options: n\n              });\n            })) : (r = JSON.stringify(e), a = {\n              method: \"POST\",\n              url: C,\n              data: r,\n              bidderRequest: t,\n              options: n\n            });\n          }\n          return a;\n        }(v, r);\n      },\n      interpretResponse: function interpretResponse(e, r) {\n        var i = this,\n            s = r.bidderRequest;\n        e = e.body;\n        var t,\n            o = [];\n        if (e &#038;&#038; !e.error) return e.tags &#038;&#038; e.tags.forEach(function (e) {\n          var r,\n              t,\n              a,\n              n = (r = e) &#038;&#038; r.ads &#038;&#038; r.ads.length &#038;&#038; k()(r.ads, function (e) {\n            return e.rtb;\n          });\n          n &#038;&#038; 0 !== n.cpm &#038;&#038; x()(i.supportedMediaTypes, n.ad_type) &#038;&#038; ((t = function (r, e, t) {\n            var a = _.getBidRequest(r.uuid, [t]),\n                n = {\n              requestId: r.uuid,\n              cpm: e.cpm,\n              creativeId: e.creative_id,\n              dealId: e.deal_id,\n              currency: \"USD\",\n              netRevenue: !0,\n              ttl: 300,\n              adUnitCode: a.adUnitCode,\n              appnexus: {\n                buyerMemberId: e.buyer_member_id,\n                dealPriority: e.deal_priority,\n                dealCode: e.deal_code\n              }\n            };\n\n            e.advertiser_id &#038;&#038; (n.meta = b({}, n.meta, {\n              advertiserId: e.advertiser_id\n            }));\n\n            if (e.rtb.video) {\n              var i, s;\n\n              switch (b(n, {\n                width: e.rtb.video.player_width,\n                height: e.rtb.video.player_height,\n                vastImpUrl: e.notify_url,\n                ttl: 3600\n              }), _.deepAccess(a, \"mediaTypes.video.context\")) {\n                case y.a:\n                  var o = Object(g.getIabSubCategory)(a.bidder, e.brand_category_id);\n                  n.meta = b({}, n.meta, {\n                    primaryCatId: o\n                  });\n                  var d = e.deal_priority;\n                  n.video = {\n                    context: y.a,\n                    durationSeconds: Math.floor(e.rtb.video.duration_ms \/ 1e3),\n                    dealTier: d\n                  }, n.vastUrl = e.rtb.video.asset_url;\n                  break;\n\n                case v.b:\n                  n.adResponse = r, n.adResponse.ad = n.adResponse.ads[0], n.adResponse.ad.video = n.adResponse.ad.rtb.video, n.vastXml = e.rtb.video.content, e.renderer_url &#038;&#038; (i = k()(t.bids, function (e) {\n                    return e.bidId === r.uuid;\n                  }), s = _.deepAccess(i, \"renderer.options\"), n.renderer = function (e, r) {\n                    var t = 2 < arguments.length &#038;&#038; void 0 !== arguments[2] ? arguments[2] : {},\n                        a = f.a.install({\n                      id: r.renderer_id,\n                      url: r.renderer_url,\n                      config: t,\n                      loaded: !1,\n                      adUnitCode: e\n                    });\n\n                    try {\n                      a.setRender(W);\n                    } catch (e) {\n                      _.logWarn(\"Prebid Error calling setRender on renderer\", e);\n                    }\n\n                    return a.setEventHandlers({\n                      impression: function impression() {\n                        return _.logMessage(\"AppNexus outstream video impression event\");\n                      },\n                      loaded: function loaded() {\n                        return _.logMessage(\"AppNexus outstream video loaded event\");\n                      },\n                      ended: function ended() {\n                        _.logMessage(\"AppNexus outstream renderer video event\"), document.querySelector(\"#\".concat(e)).style.display = \"none\";\n                      }\n                    }), a;\n                  }(n.adUnitCode, e, s));\n                  break;\n\n                case v.a:\n                  n.vastUrl = e.notify_url + \"&#038;redir=\" + encodeURIComponent(e.rtb.video.asset_url);\n              }\n            } else if (e.rtb[y.c]) {\n              var p = e.rtb[y.c],\n                  u = e.viewability.config.replace(\"src=\"https:\/\/slate.com\/,\"data-src=\"),\n                  c = p.javascript_trackers;\n              null == c ? c = u : _.isStr(c) ? c = [c, u] : c.push(u), n[y.c] = {\n                title: p.title,\n                body: p.desc,\n                body2: p.desc2,\n                cta: p.ctatext,\n                rating: p.rating,\n                sponsoredBy: p.sponsored,\n                privacyLink: p.privacy_link,\n                address: p.address,\n                downloads: p.downloads,\n                likes: p.likes,\n                phone: p.phone,\n                price: p.price,\n                salePrice: p.saleprice,\n                clickUrl: p.link.url,\n                displayUrl: p.displayurl,\n                clickTrackers: p.link.click_trackers,\n                impressionTrackers: p.impression_trackers,\n                javascriptTrackers: c\n              }, p.main_img &#038;&#038; (n.native.image = {\n                url: p.main_img.url,\n                height: p.main_img.height,\n                width: p.main_img.width\n              }), p.icon &#038;&#038; (n.native.icon = {\n                url: p.icon.url,\n                height: p.icon.height,\n                width: p.icon.width\n              });\n            } else {\n              b(n, {\n                width: e.rtb.banner.width,\n                height: e.rtb.banner.height,\n                ad: e.rtb.banner.content\n              });\n\n              try {\n                var l = e.rtb.trackers[0].impression_urls[0],\n                    m = _.createTrackPixelHtml(l);\n\n                n.ad += m;\n              } catch (e) {\n                _.logError(\"Error appending tracking pixel\", e);\n              }\n            }\n\n            return n;\n          }(e, n, s)).mediaType = (a = n.ad_type) === y.d ? y.d : a === y.c ? y.c : y.b, o.push(t));\n        }), e.debug &#038;&#038; e.debug.debug_info &#038;&#038; (t = (t = \"AppNexus Debug Auction for Prebidnn\" + e.debug.debug_info).replace(\/(\n\n<td>|<\/p>\n<th>)\/gm, \"t\").replace(\/(<\/td>\n<p>|<\/th>\n<p>)\/gm, \"n\").replace(\/^<br \/>\/gm, \"\").replace(\/(<br \/>n|<br \/>)\/gm, \"n\").replace(\/<\/p>\n<h1>(.*)<\/h1>\n<p>\/gm, \"nn===== $1 =====nn\").replace(\/<h[2-6]>(.*)<\/h[2-6]>\/gm, \"nn*** $1 ***nn\").replace(\/(<([^>]+)>)\/gim, \"\"), _.logMessage(\"https:\/\/console.appnexus.com\/docs\/understanding-the-debug-auction\"), _.logMessage(t)), o;\n        var a = \"in response for \".concat(s.bidderCode, \" adapter\");\n        return e && e.error && (a += \": \".concat(e.error)), _.logError(a), o;\n      },\n      getMappingFileInfo: function getMappingFileInfo() {\n        return {\n          url: \"https:\/\/acdn.adnxs.com\/prebid\/appnexus-mapping\/mappings.json\",\n          refreshInDays: 2\n        };\n      },\n      getUserSyncs: function getUserSyncs(e) {\n        if (e.iframeEnabled) return [{\n          type: \"iframe\",\n          url: \"https:\/\/acdn.adnxs.com\/ib\/static\/usersync\/v3\/async_usersync.html\"\n        }];\n      },\n      transformBidParams: function transformBidParams(t, e) {\n        return t = _.convertTypes({\n          member: \"string\",\n          invCode: \"string\",\n          placementId: \"number\",\n          keywords: _.transformBidderParamKeywords,\n          publisherId: \"number\"\n        }, t), e && (t.use_pmt_rule = \"boolean\" == typeof t.usePaymentRule && t.usePaymentRule, t.usePaymentRule && delete t.usePaymentRule, R(t.keywords) && t.keywords.forEach(j), Object.keys(t).forEach(function (e) {\n          var r = _.convertCamelToUnderscore(e);<\/p>\n<p>          r !== e && (t[r] = t[e], delete t[e]);\n        })), t;\n      },\n      onBidWon: function onBidWon(e) {\n        e.native && function (e) {\n          var r = function (e) {\n            var r;\n            if (_.isStr(e) && P(e)) r = e;else if (_.isArray(e)) for (var t = 0; t < e.length; t++) {\n              var a = e[t];\n              P(a) &#038;&#038; (r = a);\n            }\n            return r;\n          }(e.native.javascriptTrackers);\n\n          if (r) for (var t = \"pbjs_adid=\" + e.adId + \";pbjs_auc=\" + e.adUnitCode, a = function (e) {\n            var r = e.indexOf('src=\"') + 5,\n                t = e.indexOf('\"', r);\n            return e.substring(r, t);\n          }(r), n = a.replace(\"dom_id=%native_dom_id%\", t), i = document.getElementsByTagName(\"iframe\"), s = !1, o = 0; o < i.length &#038;&#038; !s; o++) {\n            var d = i[o];\n\n            try {\n              var p = d.contentDocument || d.contentWindow.document;\n              if (p) for (var u = p.getElementsByTagName(\"script\"), c = 0; c < u.length &#038;&#038; !s; c++) {\n                var l = u[c];\n                l.getAttribute(\"data-src\") == a &#038;&#038; (l.setAttribute(\"src\", n), l.setAttribute(\"data-src\"https:\/\/slate.com\/,\"\"), l.removeAttribute &#038;&#038; l.removeAttribute(\"data-src\"), s = !0);\n              }\n            } catch (e) {\n              if (!(e instanceof DOMException &#038;&#038; \"SecurityError\" === e.name)) throw e;\n            }\n          }\n        }(e);\n      }\n    };\n\n    function R(e) {\n      return _.isArray(e) &#038;&#038; 0 < e.length;\n    }\n\n    function j(e) {\n      R(e.value) &#038;&#038; \"\" === e.value[0] &#038;&#038; delete e.value;\n    }\n\n    function P(e) {\n      var r = e.match(m),\n          t = null != r &#038;&#038; 1 <= r.length,\n          a = e.match(h),\n          n = null != a &#038;&#038; 1 <= a.length;\n      return e.startsWith(l) &#038;&#038; n &#038;&#038; t;\n    }\n\n    function U(r) {\n      var e,\n          t,\n          n,\n          i,\n          a = {};\n      a.sizes = N(r.sizes), a.primary_size = a.sizes[0], a.ad_types = [], a.uuid = r.bidId, r.params.placementId ? a.id = parseInt(r.params.placementId, 10) : a.code = r.params.invCode, a.allow_smaller_sizes = r.params.allowSmallerSizes || !1, a.use_pmt_rule = r.params.usePaymentRule || !1, a.prebid = !0, a.disable_psa = !0, r.params.reserve &#038;&#038; (a.reserve = r.params.reserve), r.params.position &#038;&#038; (a.position = {\n        above: 1,\n        below: 2\n      }[r.params.position] || 0), r.params.trafficSourceCode &#038;&#038; (a.traffic_source_code = r.params.trafficSourceCode), r.params.privateSizes &#038;&#038; (a.private_sizes = N(r.params.privateSizes)), r.params.supplyType &#038;&#038; (a.supply_type = r.params.supplyType), r.params.pubClick &#038;&#038; (a.pubclick = r.params.pubClick), r.params.extInvCode &#038;&#038; (a.ext_inv_code = r.params.extInvCode), r.params.publisherId &#038;&#038; (a.publisher_id = parseInt(r.params.publisherId, 10)), r.params.externalImpId &#038;&#038; (a.external_imp_id = r.params.externalImpId), _.isEmpty(r.params.keywords) || (0 < (e = _.transformBidderParamKeywords(r.params.keywords)).length &#038;&#038; e.forEach(j), a.keywords = e), r.mediaType !== y.c &#038;&#038; !_.deepAccess(r, \"mediaTypes.\".concat(y.c)) || (a.ad_types.push(y.c), 0 === a.sizes.length &#038;&#038; (a.sizes = N([1, 1])), r.nativeParams &#038;&#038; (n = r.nativeParams, i = {}, Object.keys(n).forEach(function (e) {\n        var r,\n            t = c[e] &#038;&#038; c[e].serverName || c[e] || e,\n            a = c[e] &#038;&#038; c[e].requiredParams;\n        i[t] = b({}, a, n[e]), t !== c.image.serverName &#038;&#038; t !== c.icon.serverName || !i[t].sizes || (r = i[t].sizes, (_.isArrayOfNums(r) || _.isArray(r) &#038;&#038; 0 < r.length &#038;&#038; r.every(function (e) {\n          return _.isArrayOfNums(e);\n        })) &#038;&#038; (i[t].sizes = N(i[t].sizes))), t === c.privacyLink &#038;&#038; (i.privacy_supported = !0);\n      }), t = i, a[y.c] = {\n        layouts: [t]\n      }));\n\n      var s = _.deepAccess(r, \"mediaTypes.\".concat(y.d)),\n          o = _.deepAccess(r, \"mediaTypes.video.context\");\n\n      a.hb_source = s &#038;&#038; \"adpod\" === o ? 7 : 1, r.mediaType !== y.d &#038;&#038; !s || a.ad_types.push(y.d), (r.mediaType === y.d || s &#038;&#038; \"outstream\" !== o) &#038;&#038; (a.require_asset_url = !0), r.params.video &#038;&#038; (a.video = {}, Object.keys(r.params.video).filter(function (e) {\n        return x()(u, e);\n      }).forEach(function (e) {\n        return a.video[e] = r.params.video[e];\n      })), r.renderer &#038;&#038; (a.video = b({}, a.video, {\n        custom_renderer_present: !0\n      }));\n      var d = k()(p.a.getAdUnits(), function (e) {\n        return r.transactionId === e.transactionId;\n      });\n      return d &#038;&#038; d.mediaTypes &#038;&#038; d.mediaTypes.banner &#038;&#038; a.ad_types.push(y.b), 0 === a.ad_types.length &#038;&#038; delete a.ad_types, a;\n    }\n\n    function N(e) {\n      var r = [],\n          t = {};\n      if (_.isArray(e) &#038;&#038; 2 === e.length &#038;&#038; !_.isArray(e[0])) t.width = parseInt(e[0], 10), t.height = parseInt(e[1], 10), r.push(t);else if (\"object\" === s(e)) for (var a = 0; a < e.length; a++) {\n        var n = e[a];\n        (t = {}).width = parseInt(n[0], 10), t.height = parseInt(n[1], 10), r.push(t);\n      }\n      return r;\n    }\n\n    function q(e) {\n      return !!e.params.user;\n    }\n\n    function M(e) {\n      return !!parseInt(e.params.member, 10);\n    }\n\n    function z(e) {\n      if (e.params) return !!e.params.app;\n    }\n\n    function B(e) {\n      return e.params &#038;&#038; e.params.app ? !!e.params.app.id : !!e.params.app;\n    }\n\n    function D(e) {\n      return !!e.debug;\n    }\n\n    function V(e) {\n      return e.mediaTypes &#038;&#038; e.mediaTypes.video &#038;&#038; e.mediaTypes.video.context === y.a;\n    }\n\n    function J(e, r, t) {\n      _.isEmpty(e.video) &#038;&#038; (e.video = {}), e.video[r] = t;\n    }\n\n    function W(e) {\n      var r, t;\n      r = e.adUnitCode, (t = document.getElementById(r).querySelectorAll(\"div[id^='google_ads']\"))[0] &#038;&#038; t[0].style.setProperty(\"display\"https:\/\/slate.com\/,\"none\"), e.renderer.push(function () {\n        window.ANOutstreamVideo.renderAd({\n          tagId: e.adResponse.tag_id,\n          sizes: [e.getSize().split(\"x\")],\n          targetId: e.adUnitCode,\n          uuid: e.adResponse.uuid,\n          adResponse: e.adResponse,\n          rendererOptions: e.renderer.getConfig()\n        }, function (e, r, t) {\n          e.renderer.handleVideoEvent({\n            id: r,\n            eventName: t\n          });\n        }.bind(null, e));\n      });\n    }\n\n    Object(g.registerBidder)(O);\n  }\n}, [288]);\npbjsChunk([239], {\n  358: function _(n, t, e) {\n    n.exports = e(359);\n  },\n  359: function _(n, t, e) {\n    \"use strict\";\n\n    Object.defineProperty(t, \"__esModule\", {\n      value: !0\n    }), e.d(t, \"userCMP\", function () {\n      return l;\n    }), e.d(t, \"consentTimeout\", function () {\n      return u;\n    }), e.d(t, \"allowAuction\", function () {\n      return p;\n    }), e.d(t, \"gdprScope\", function () {\n      return g;\n    }), e.d(t, \"staticConsentData\", function () {\n      return m;\n    }), t.requestBidsHook = M, t.resetConsentData = function () {\n      C = void 0, l = void 0, w = 0, a.gdprDataHandler.setConsentData(null);\n    }, t.setConsentConfig = _;\n    var d = e(0),\n        o = e(3),\n        a = e(7),\n        i = e(12),\n        s = e.n(i),\n        r = e(360),\n        f = e.n(r);\n\n    function c(n) {\n      return (c = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (n) {\n        return _typeof(n);\n      } : function (n) {\n        return n &#038;&#038; \"function\" == typeof Symbol &#038;&#038; n.constructor === Symbol &#038;&#038; n !== Symbol.prototype ? \"symbol\" : _typeof(n);\n      })(n);\n    }\n\n    var l,\n        u,\n        p,\n        g,\n        m,\n        C,\n        b = \"iab\",\n        v = 1e4,\n        y = !0,\n        w = 0,\n        D = !1,\n        k = {\n      iab: function iab(o, e, s) {\n        function n(n, t) \n\n        var t = function () {\n          var t = {};\n\n          function e() {\n            t.getConsentData &#038;&#038; t.getVendorConsents &#038;&#038; (d.logInfo(\"Received all requested responses from CMP\", t), o(t, s));\n          }\n\n          return {\n            consentDataCallback: function consentDataCallback(n) {\n              t.getConsentData = n, e();\n            },\n            vendorConsentsCallback: function vendorConsentsCallback(n) {\n              t.getVendorConsents = n, e();\n            }\n          };\n        }(),\n            u = {},\n            a = function () {\n          for (var n, t, e = window; !n;) {\n            try {\n              if (\"function\" == typeof e.__tcfapi || \"function\" == typeof e.__cmp) {\n                t = \"function\" == typeof e.__tcfapi ? (w = 2, e.__tcfapi) : (w = 1, e.__cmp), n = e;\n                break;\n              }\n            } catch (n) {}\n\n            try {\n              if (e.frames.__tcfapiLocator) {\n                w = 2, n = e;\n                break;\n              }\n            } catch (n) {}\n\n            try {\n              if (e.frames.__cmpLocator) {\n                w = 1, n = e;\n                break;\n              }\n            } catch (n) {}\n\n            if (e === window.top) break;\n            e = e.parent;\n          }\n\n          return {\n            cmpFrame: n,\n            cmpFunction: t\n          };\n        }(),\n            i = a.cmpFrame,\n            r = a.cmpFunction;\n\n        if (!i) return e(\"CMP not found.\", s);\n        d.isFn(r) ? (d.logInfo(\"Detected CMP API is directly accessible, calling it now...\"), 1 === w ? (r(\"getConsentData\", null, t.consentDataCallback), r(\"getVendorConsents\", null, t.vendorConsentsCallback)) : 2 === w &#038;&#038; r(\"addEventListener\", w, n)) : 1 === w &#038;&#038; window.$sf &#038;&#038; window.$sf.ext &#038;&#038; \"function\" == typeof window.$sf.ext.cmp ? (d.logInfo(\"Detected Prebid.js is encased in a SafeFrame and CMP is registered, calling it now...\"), c(\"getConsentData\", t.consentDataCallback), c(\"getVendorConsents\", t.vendorConsentsCallback)) : (d.logInfo(\"Detected CMP is outside the current iframe where Prebid.js is located, calling it now...\"), 1 === w ? (l(\"getConsentData\", i, t.consentDataCallback), l(\"getVendorConsents\", i, t.vendorConsentsCallback)) : 2 === w &#038;&#038; l(\"addEventListener\", i, n));\n\n        function c(o, a) {\n          var n,\n              t = s.adUnits,\n              e = 1,\n              i = 1;\n          Array.isArray(t) &#038;&#038; 0 < t.length &#038;&#038; (e = (n = d.getAdUnitSizes(t[0]))[0][0], i = n[0][1]), window.$sf.ext.register(e, i, function (n, t) {\n            var e;\n            \"cmpReturn\" === n &#038;&#038; (e = \"getConsentData\" === o ? t.vendorConsentData : t.vendorConsents, a(e));\n          }), window.$sf.ext.cmp(o);\n        }\n\n        function l(n, l, t) {\n          var d = 2 === w ? \"__tcfapi\" : \"__cmp\";\n          window[d] = function (n, t, e) {\n            var o,\n                a,\n                i,\n                s = Math.random() + \"\",\n                r = \"\".concat(d, \"Call\"),\n                c = (i = {\n              command: n,\n              parameter: t,\n              callId: s\n            }, (a = r) in (o = {}) ? Object.defineProperty(o, a, {\n              value: i,\n              enumerable: !0,\n              configurable: !0,\n              writable: !0\n            }) : o[a] = i, o);\n            1 !== w &#038;&#038; (c[r].version = w), u[s] = e, l.postMessage(c, \"*\");\n          }, window.addEventListener(\"message\", function (n) {\n            var t = \"\".concat(d, \"Return\"),\n                e = \"string\" == typeof n.data &#038;&#038; f()(n.data, t) ? JSON.parse(n.data) : n.data;\n            {\n              var o;\n              e[t] &#038;&#038; e[t].callId &#038;&#038; (o = e[t], void 0 !== u[o.callId] &#038;&#038; u[o.callId](o.returnValue, o.success));\n            }\n          }, !1), window[d](n, null, t);\n        }\n      },\n      static: function _static(n, t, e) {\n        n(m, e);\n      }\n    };\n\n    function M(n, t) {\n      var e =  pbjs.adUnits,\n        bidsBackHandler: t.bidsBackHandler,\n        haveExited: !1,\n        timer: null\n      ;\n      return C ? (d.logInfo(\"User consent information already known.  Pulling internally stored information...\"), A(null, e)) : s()(Object.keys(k), l) ? (k[l].call(this, h, P, e), void (e.haveExited || (0 === u ? h(void 0, e) : e.timer = setTimeout(function (n) {\n        P(\"CMP workflow exceeded timeout threshold.\", n);\n      }.bind(null, e), u)))) : (d.logWarn(\"CMP framework (\".concat(l, \") is not a supported framework.  Aborting consentManagement module and resuming auction.\")), e.nextFn.apply(e.context, e.args));\n    }\n\n    function h(e, n) {\n      \"static\" === l &#038;&#038; 2 === (w = e.getConsentData ? 1 : e.getTCData ? 2 : 0) &#038;&#038; (e = e.getTCData);\n      var t = 1 === w ? function (n)  d.isStr(n.getConsentData.consentData) &#038;&#038; d.isPlainObject(n.getVendorConsents) &#038;&#038; 1 < Object.keys(n.getVendorConsents).length));\n       : 2 === w ? function ()  d.isStr(t)));\n       : null;\n      d.isFn(t) ? t(e) ? P(\"CMP returned unexpected value during lookup process.\", n, e) : (clearTimeout(n.timer), S(e), A(null, n)) : P(\"Unable to derive CMP version to process data.  Consent object does not conform to TCF v1 or v2 specs.\", n, e);\n    }\n\n    function P(n, t, e) {\n      clearTimeout(t.timer), p &#038;&#038; S(void 0), A(n, t, e);\n    }\n\n    function S(n) {\n      (C = 1 === w ? {\n        consentString: n ? n.getConsentData.consentData : void 0,\n        vendorData: n ? n.getVendorConsents : void 0,\n        gdprApplies: n ? n.getConsentData.gdprApplies : g\n      } :  void 0,\n        gdprApplies: n &#038;&#038; \"boolean\" == typeof n.gdprApplies ? n.gdprApplies : g\n      ).apiVersion = w, a.gdprDataHandler.setConsentData(C);\n    }\n\n    function A(n, t, e) {\n      var o, a, i;\n      !1 === t.haveExited &#038;&#038; (t.haveExited = !0, o = t.context, a = t.args, i = t.nextFn, n ? p ? (d.logWarn(n + \" Resuming auction without consent data as per consentManagement config.\", e), i.apply(o, a)) : (d.logError(n + \" Canceling auction as per consentManagement config.\", e), \"function\" == typeof t.bidsBackHandler ? t.bidsBackHandler() : d.logError(\"Error executing bidsBackHandler\")) : i.apply(o, a));\n    }\n\n    function _(n) \n\n    o.b.getConfig(\"consentManagement\", function (n) {\n      return _(n.consentManagement);\n    });\n  }\n}, [358]);\npbjsChunk([238], {\n  366: function _(n, t, e) {\n    n.exports = e(367);\n  },\n  367: function _(n, t, e) {\n    \"use strict\";\n\n    Object.defineProperty(t, \"__esModule\", {\n      value: !0\n    }), e.d(t, \"consentAPI\", function () {\n      return c;\n    }), e.d(t, \"consentTimeout\", function () {\n      return r;\n    }), e.d(t, \"staticConsentData\", function () {\n      return u;\n    }), t.requestBidsHook = m, t.resetConsentData = function () {\n      l = void 0, c = void 0, o.uspDataHandler.setConsentData(null);\n    }, t.setConsentConfig = P;\n    var s = e(0),\n        a = e(3),\n        o = e(7);\n\n    function i(n) {\n      return (i = \"function\" == typeof Symbol &#038;&#038; \"symbol\" == _typeof(Symbol.iterator) ? function (n) {\n        return _typeof(n);\n      } : function (n) {\n        return n &#038;&#038; \"function\" == typeof Symbol &#038;&#038; n.constructor === Symbol &#038;&#038; n !== Symbol.prototype ? \"symbol\" : _typeof(n);\n      })(n);\n    }\n\n    var c,\n        r,\n        u,\n        l,\n        d = \"iab\",\n        p = 50,\n        f = !1,\n        g = {\n      iab: function iab(a, o, i) {\n        var t,\n            e = function () {\n          var e = {};\n          return {\n            consentDataCallback: function consentDataCallback(n, t) {\n              t &#038;&#038; n.uspString &#038;&#038; (e.usPrivacy = n.uspString), e.usPrivacy ? a(e, i) : o(\"Unable to get USP consent string.\", i);\n            }\n          };\n        }(),\n            s = {};\n\n        try {\n          window.__uspapi(\"getUSPData\", 1, e.consentDataCallback);\n        } catch (n) {\n          for (var c = window; !t;) {\n            try {\n              c.frames.__uspapiLocator &#038;&#038; (t = c);\n            } catch (n) {}\n\n            if (c === window.top) break;\n            c = c.parent;\n          }\n\n          if (!t) return o(\"USP CMP not found.\", i);\n          !function (n, i, e) {\n            function a(n) {\n              var t = n &#038;&#038; n.data &#038;&#038; n.data.__uspapiReturn;\n              t &#038;&#038; t.callId &#038;&#038; void 0 !== s[t.callId] &#038;&#038; (s[t.callId](t.returnValue, t.success), delete s[t.callId]);\n            }\n\n            window.__uspapi = function (n, t, e) {\n              var a = Math.random() + \"\",\n                  o = {\n                __uspapiCall: {\n                  command: n,\n                  version: t,\n                  callId: a\n                }\n              };\n              s[a] = e, i.postMessage(o, \"*\");\n            }, window.addEventListener(\"message\", a, !1), window.__uspapi(n, 1, function (n, t) {\n              window.removeEventListener(\"message\", a, !1), e(n, t);\n            });\n          }(\"getUSPData\", t, e.consentDataCallback);\n        }\n      },\n      static: function _static(n, t, e) {\n        n(u, e);\n      }\n    };\n\n    function m(n, t) {\n      var e =  pbjs.adUnits,\n        bidsBackHandler: t.bidsBackHandler,\n        haveExited: !1,\n        timer: null\n      ;\n      return l ? y(null, e) : g[c] ? (g[c].call(this, v, b, e), void (e.haveExited || (0 === r ? v(void 0, e) : e.timer = setTimeout(function (n) {\n        b(\"USPAPI workflow exceeded timeout threshold.\", n);\n      }.bind(null, e), r)))) : (s.logWarn(\"USP framework (\".concat(c, \") is not a supported framework. Aborting consentManagement module and resuming auction.\")), e.nextFn.apply(e.context, e.args));\n    }\n\n    function v(n, t)  !n.usPrivacy ? b(\"USPAPI returned unexpected value during lookup process.\", t, n) : (clearTimeout(t.timer), (e = n) &#038;&#038; e.usPrivacy &#038;&#038; (l = e.usPrivacy, o.uspDataHandler.setConsentData(l)), y(null, t));\n    \n\n    function b(n, t, e) {\n      clearTimeout(t.timer), y(n, t, e);\n    }\n\n    function y(n, t, e) {\n      var a, o, i;\n      !1 === t.haveExited &#038;&#038; (t.haveExited = !0, a = t.context, o = t.args, i = t.nextFn, n &#038;&#038; s.logWarn(n + \" Resuming auction without consent data as per consentManagement config.\", e), i.apply(a, o));\n    }\n\n    function P(n) {\n      (n = n.usp) &#038;&#038; \"object\" === i(n) ? (s.isStr(n.cmpApi) ? c = n.cmpApi : (c = d, s.logInfo(\"consentManagement.usp config did not specify cmpApi. Using system default setting (\".concat(d, \").\"))), s.isNumber(n.timeout) ? r = n.timeout : (r = p, s.logInfo(\"consentManagement.usp config did not specify timeout. Using system default setting (\".concat(p, \").\"))), s.logInfo(\"USPAPI consentManagement module has been activated...\"), \"static\" === c &#038;&#038; (s.isPlainObject(n.consentData) &#038;&#038; s.isPlainObject(n.consentData.getUSPData) ? (n.consentData.getUSPData.uspString &#038;&#038; (u = {\n        usPrivacy: n.consentData.getUSPData.uspString\n      }), r = 0) : s.logError(\"consentManagement config with cmpApi: 'static' did not specify consentData. No consents will be available to adapters.\")), f || pbjs.requestBids.before(m, 50), f = !0) : s.logWarn(\"consentManagement.usp config not defined, exiting usp consent manager\");\n    }\n\n    a.b.getConfig(\"consentManagement\", function (n) {\n      return P(n.consentManagement);\n    });\n  }\n}, [366]);\npbjsChunk([0], {\n  380: function _(t, e, r) {\n    t.exports = r(381);\n  },\n  381: function _(t, e, r) {\n    \"use strict\";\n\n    Object.defineProperty(e, \"__esModule\", {\n      value: !0\n    }), r.d(e, \"ADAPTER_VERSION\", function () {\n      return c;\n    }), r.d(e, \"PROFILE_ID_PUBLISHERTAG\", function () {\n      return v;\n    }), r.d(e, \"spec\", function () {\n      return s;\n    }), e.tryGetCriteoFastBid = x;\n    var a = r(39),\n        i = r(1),\n        d = r(3),\n        h = r(2),\n        f = r(0),\n        o = r(11),\n        l = r.n(o),\n        p = r(382),\n        n = (r.n(p), r(9));\n\n    function u() {\n      return (u = Object.assign || function (t) {\n        for (var e = 1; e < arguments.length; e++) {\n          var r = arguments[e];\n\n          for (var i in r) {\n            Object.prototype.hasOwnProperty.call(r, i) &#038;&#038; (t[i] = r[i]);\n          }\n        }\n\n        return t;\n      }).apply(this, arguments);\n    }\n\n    var c = 31,\n        m = \"criteo\",\n        v = 185,\n        y = Object(n.b)(91),\n        b = 65537,\n        g = \"ztQYwCE5BU7T9CDM5he6rKoabstXRmkzx54zFPZkWbK530dwtLBDeaWBMxHBUT55CYyboR\/EZ4efghPi3CoNGfGWezpjko9P6p2EwGArtHEeS4slhu\/SpSIFMjG6fdrpRoNuIAMhq1Z+Pr\/+HOd1pThFKeGFr2\/NhtAg+TXAzaU=\",\n        s = {\n      code: m,\n      gvlid: 91,\n      supportedMediaTypes: [h.b, h.d, h.c],\n      isBidRequestValid: function isBidRequestValid(t) {\n        return !(!t || !t.params || !t.params.zoneId &#038;&#038; !t.params.networkId) &#038;&#038; !(R(t) &#038;&#038; !function (e) {\n          var r = !0;\n\n          if ([\"mimes\"https:\/\/slate.com\/,\"playerSize\"https:\/\/slate.com\/,\"maxduration\"https:\/\/slate.com\/,\"protocols\"https:\/\/slate.com\/,\"api\"].forEach(function (t) {\n            void 0 === f.deepAccess(e, \"mediaTypes.video.\" + t) &#038;&#038; (r = !1, f.logError(\"Criteo Bid Adapter: mediaTypes.video.\" + t + \" is required\"));\n          }), [\"skip\"https:\/\/slate.com\/,\"placement\"https:\/\/slate.com\/,\"playbackmethod\"].forEach(function (t) {\n            void 0 === f.deepAccess(e, \"params.video.\" + t) &#038;&#038; (r = !1, f.logError(\"Criteo Bid Adapter: params.video.\" + t + \" is required\"));\n          }), r) {\n            if (\"instream\" == e.mediaTypes.video.context &#038;&#038; 1 === e.params.video.placement) return !0;\n            if (\"outstream\" == e.mediaTypes.video.context &#038;&#038; 1 !== e.params.video.placement) return !0;\n          }\n\n          return !1;\n        }(t));\n      },\n      buildRequests: function buildRequests(t, e) {\n        var r, i, o, n, s;\n        if (u(e, {\n          publisherExt: d.b.getConfig(\"fpd.context\"),\n          userExt: d.b.getConfig(\"fpd.user\"),\n          ceh: d.b.getConfig(\"criteo.ceh\")\n        }), T() || (window.Criteo = window.Criteo || {}, window.Criteo.usePrebidEvents = !1, x(), setTimeout(function () {\n          Object(a.a)(\"https:\/\/static.criteo.net\/js\/ld\/publishertag.prebid.js\", m);\n        }, e.timeout)), s = T() ? (r = new Criteo.PubTag.Adapters.Prebid(v, c, t, e, \"3.23.0\"), i = d.b.getConfig(\"enableSendAllBids\"), r.setEnableSendAllBids &#038;&#038; \"function\" == typeof r.setEnableSendAllBids &#038;&#038; \"boolean\" == typeof i &#038;&#038; r.setEnableSendAllBids(i), n = r.buildCdbUrl(), r.buildCdbRequest()) : (n = function (t) {\n          var e = \"https:\/\/bidder.criteo.com\/cdb\";\n          e += \"?profileId=207\", e += \"&#038;av=\" + String(c), e += \"&#038;wv=\" + encodeURIComponent(\"3.23.0\"), e += \"&#038;cb=\" + String(Math.floor(99999999999 * Math.random())), t.amp &#038;&#038; (e += \"&#038;im=1\");\n          t.debug &#038;&#038; (e += \"&#038;debug=1\");\n          t.noLog &#038;&#038; (e += \"&#038;nolog=1\");\n          return e;\n        }(o = function (t, e) {\n          var r = \"\";\n          e &#038;&#038; e.refererInfo &#038;&#038; (r = e.refererInfo.referer);\n          var i = f.parseUrl(r).search,\n              o = {\n            url: r,\n            debug: \"1\" === i.pbt_debug,\n            noLog: \"1\" === i.pbt_nolog,\n            amp: !1\n          };\n          return t.forEach(function (t) {\n            \"amp\" === t.params.integrationMode &#038;&#038; (o.amp = !0);\n          }), o;\n        }(t, e)), function (t, e, r) {\n          var o,\n              i = {\n            publisher: {\n              url: t.url,\n              ext: r.publisherExt\n            },\n            slots: e.map(function (t) {\n              o = t.params.networkId || o;\n              var e,\n                  r,\n                  i = {\n                impid: t.adUnitCode,\n                transactionid: t.transactionId,\n                auctionId: t.auctionId\n              };\n              return t.params.zoneId &#038;&#038; (i.zoneid = t.params.zoneId), t.fpd &#038;&#038; t.fpd.context &#038;&#038; (i.ext = t.fpd.context), t.params.ext &#038;&#038; (i.ext = u({}, i.ext, t.params.ext)), t.params.publisherSubId &#038;&#038; (i.publishersubid = t.params.publisherSubId), t.params.nativeCallback || f.deepAccess(t, \"mediaTypes.\".concat(h.c)) ? (i.native = !0, (e = t).nativeParams &#038;&#038; (e.nativeParams.image &#038;&#038; !0 !== e.nativeParams.image.sendId || e.nativeParams.icon &#038;&#038; !0 !== e.nativeParams.icon.sendId || e.nativeParams.clickUrl &#038;&#038; !0 !== e.nativeParams.clickUrl.sendId || e.nativeParams.displayUrl &#038;&#038; !0 !== e.nativeParams.displayUrl.sendId || e.nativeParams.privacyLink &#038;&#038; !0 !== e.nativeParams.privacyLink.sendId || e.nativeParams.privacyIcon &#038;&#038; !0 !== e.nativeParams.privacyIcon.sendId) &#038;&#038; f.logWarn(\"Criteo: all native assets containing URL should be sent as placeholders with sendId(icon, image, clickUrl, displayUrl, privacyLink, privacyIcon)\"), i.sizes = A(C(t), I)) : i.sizes = A(C(t), S), R(t) &#038;&#038; ((r = {\n                playersizes: A(f.deepAccess(t, \"mediaTypes.video.playerSize\"), S),\n                mimes: t.mediaTypes.video.mimes,\n                protocols: t.mediaTypes.video.protocols,\n                maxduration: t.mediaTypes.video.maxduration,\n                api: t.mediaTypes.video.api\n              }).skip = t.params.video.skip, r.placement = t.params.video.placement, r.minduration = t.params.video.minduration, r.playbackmethod = t.params.video.playbackmethod, r.startdelay = t.params.video.startdelay, i.video = r), i;\n            })\n          };\n          o &#038;&#038; (i.publisher.networkid = o);\n          i.user = {\n            ext: r.userExt\n          }, r &#038;&#038; r.ceh &#038;&#038; (i.user.ceh = r.ceh);\n          r &#038;&#038; r.gdprConsent &#038;&#038; (i.gdprConsent = {}, void 0 !== r.gdprConsent.gdprApplies &#038;&#038; (i.gdprConsent.gdprApplies = !!r.gdprConsent.gdprApplies), i.gdprConsent.version = r.gdprConsent.apiVersion, void 0 !== r.gdprConsent.consentString &#038;&#038; (i.gdprConsent.consentData = r.gdprConsent.consentString));\n          r &#038;&#038; r.uspConsent &#038;&#038; (i.user.uspIab = r.uspConsent);\n          return i;\n        }(o, t, e))) return {\n          method: \"POST\",\n          url: n,\n          data: s,\n          bidRequests: t\n        };\n      },\n      interpretResponse: function interpretResponse(t, u) {\n        var e = t.body || t;\n\n        if (T()) {\n          var r = Criteo.PubTag.Adapters.Prebid.GetAdapter(u);\n          if (r) return r.interpretResponse(e, u);\n        }\n\n        var c = [];\n        return e &#038;&#038; e.slots &#038;&#038; f.isArray(e.slots) &#038;&#038; e.slots.forEach(function (e) {\n          var t,\n              r,\n              i,\n              o,\n              n,\n              s = l()(u.bidRequests, function (t)  parseInt(t.params.zoneId) === e.zoneid);\n          ),\n              a = s.bidId,\n              p = ;\n          if (e.native) {\n            if (s.params.nativeCallback) p.ad = (r = a, i = e.native, o = s.params.nativeCallback, n = \"criteo_prebid_native_slots\", window[n] = window[n] || {}, window[n][r] = {\n              callback: o,\n              payload: i\n            }, 'n<script type=\"text\/javascript\">nfor (var i = 0; i < 10; ++i) {n var slots = window.parent.'.concat(n, ';n  if(!slots){continue;}n  var responseSlot = slots[\"').concat(r, '\"];n  responseSlot.callback(responseSlot.payload);n  break;n}n<\/script>'));else {<br \/>\n              if (!0 === d.b.getConfig(\"enableSendAllBids\")) return;<br \/>\n              p.native = {<br \/>\n                title: (t = e.native).merchandise[0].title,<br \/>\n                physique: t.merchandise[0].description,<br \/>\n                sponsoredBy: t.advertiser.description,<br \/>\n                icon: t.advertiser.emblem,<br \/>\n                picture: t.merchandise[0].picture,<br \/>\n                clickUrl: t.merchandise[0].click_url,<br \/>\n                privacyLink: t.privateness.optout_click_url,<br \/>\n                privacyIcon: t.privateness.optout_image_url,<br \/>\n                cta: t.merchandise[0].call_to_action,<br \/>\n                value: t.merchandise[0].value,<br \/>\n                impressionTrackers: t.impression_pixels.map(operate (t) {<br \/>\n                  return t.url;<br \/>\n                })<br \/>\n              }, p.mediaType = h.c;<br \/>\n            }<br \/>\n          } else e.video ? (p.vastUrl = e.displayurl, p.mediaType = h.d) : p.advert = e.inventive;<br \/>\n          c.push(p);<br \/>\n        }), c;<br \/>\n      },<br \/>\n      onTimeout: operate onTimeout(t) {<br \/>\n        T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidTimeout();<br \/>\n      },<br \/>\n      onBidWon: operate onBidWon(t) {<br \/>\n        T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidWon(t);<br \/>\n      },<br \/>\n      onSetTargeting: operate onSetTargeting(t) {<br \/>\n        T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleSetTargeting(t);<br \/>\n      }<br \/>\n    };<\/p>\n<p>    operate T() {<br \/>\n      return \"undefined\" != typeof Criteo && Criteo.PubTag && Criteo.PubTag.Adapters && Criteo.PubTag.Adapters.Prebid;<br \/>\n    }<\/p>\n<p>    operate C(t) <\/p>\n<p>    operate A(t, e) {<br \/>\n      return Array.isArray(t[0]) ? t.map(operate (t) {<br \/>\n        return e(t);<br \/>\n      }) : [e(t)];<br \/>\n    }<\/p>\n<p>    operate S(t) {<br \/>\n      return t[0] + \"x\" + t[1];<br \/>\n    }<\/p>\n<p>    operate I(t) {<br \/>\n      return void 0 === t[0] && void 0 === t[1] ? \"2x2\" : t[0] + \"x\" + t[1];<br \/>\n    }<\/p>\n<p>    operate R(t) {<br \/>\n      return void 0 !== f.deepAccess(t, \"params.video\") && void 0 !== f.deepAccess(t, \"mediaTypes.video\");<br \/>\n    }<\/p>\n<p>    operate x() {<br \/>\n      strive {<br \/>\n        var t,<br \/>\n            e,<br \/>\n            r,<br \/>\n            i,<br \/>\n            o,<br \/>\n            n = \"criteo_fast_bid\",<br \/>\n            s = \"\/\/ Hash: \",<br \/>\n            a = y.getDataFromLocalStorage(n);<br \/>\n        null !== a && (t = a.indexOf(\"n\"), (e = a.substr(0, t).trim()).substr(0, s.size) !== s ? (f.logWarn(\"No hash present in FastBid\"), y.removeDataFromLocalStorage(n)) : (r = e.substr(s.size), i = a.substr(t + 1), Object(p.confirm)(i, r, g, b) ? (f.logInfo(\"Utilizing Criteo FastBid\"), (o = doc.createElement(\"script\")).kind = \"textual content\/javascript\", o.textual content = i, f.insertElement(o)) : (f.logWarn(\"Invalid Criteo FastBid discovered\"), y.removeDataFromLocalStorage(n))));<br \/>\n      } catch (t) {}<br \/>\n    }<\/p>\n<p>    Object(i.registerBidder)(s);<br \/>\n  },<br \/>\n  382: operate _(t, e, r) {<br \/>\n    \"use strict\";<\/p>\n<p>    Object.defineProperty(e, \"__esModule\", {<br \/>\n      worth: !0<br \/>\n    });<br \/>\n    var a = r(383),<br \/>\n        p = r(384);<\/p>\n<p>    e.confirm = operate (t, e, r, i) {<br \/>\n      var o = new a.BigInteger(a.b64toHex(e)),<br \/>\n          n = new a.BigInteger(a.b64toHex(r)),<br \/>\n          s = o.modPowInt(i, n);<br \/>\n      return a.removeExtraSymbols(s.toHexString()) === p.Sha256.hash(t);<br \/>\n    };<br \/>\n  },<br \/>\n  383: operate _(t, e, r) {<br \/>\n    \"use strict\";<\/p>\n<p>    var i;<br \/>\n    Object.defineProperty(e, \"__esModule\", {<br \/>\n      worth: !0<br \/>\n    });<br \/>\n    var o = (g.prototype.toHexString = operate () {<br \/>\n      if (this.s < 0) return \"-\" + this.negate().toHexString();\n      var t,\n          e = !1,\n          r = \"\",\n          i = this.t,\n          o = this.DB - i * this.DB % 4;\n      if (0 < i--) for (o < this.DB &#038;&#038; 0 < (t = this[i] >> o) && (e = !0, r = c(t)); 0 <= i;) = this[--i] >> (o += this.DB - 4)) : (t = this[i] >> (o -= 4) & 15, o <= 0 &#038;&#038; (o += this.DB, --i)), 0 < t &#038;&#038; (e = !0), e &#038;&#038; (r += c(t));\n      \n      return e ? r : \"0\";\n    }, g.prototype.fromHexString = operate (t) {\n      if (null !== t) {\n        this.t = 0, this.s = 0;\n\n        for (var e = t.size, r = !1, i = 0; 0 <= --e;) = (o &#038; (1 << this.DB - i) - 1) << i, this[this.t++] = o >> this.DB - i) : this[this.t - 1] <\/p>\n<p>        this.clamp(), r && g.ZERO.subTo(this, this);<br \/>\n      }<br \/>\n    }, g.prototype.negate = operate () {<br \/>\n      var t = T();<br \/>\n      return g.ZERO.subTo(this, t), t;<br \/>\n    }, g.prototype.abs = operate () {<br \/>\n      return this.s < 0 ? this.negate() : this;\n    }, g.prototype.mod = operate (t) {\n      var e = T();\n      return this.abs().divRemTo(t, null, e), this.s < 0 &#038;&#038; 0 < e.compareTo(g.ZERO) &#038;&#038; t.subTo(e, e), e;\n    }, g.prototype.copyTo = operate (t) {\n      for (var e = this.t - 1; 0 <= e; --e) {\n        t[e] = this[e];\n      }\n\n      t.t = this.t, t.s = this.s;\n    }, g.prototype.lShiftTo = operate (t, e) {\n      for (var r = t % this.DB, i = this.DB - r, o = (1 << i) - 1, n = Math.flooring(t \/ this.DB), s = this.s << r &#038; this.DM, a = this.t - 1; 0 <= a; --a)  s, s = (this[a] &#038; o) << r;\n      \n\n      for (a = n - 1; 0 <= a; --a) {\n        e[a] = 0;\n      }\n\n      e[n] = s, e.t = this.t + n + 1, e.s = this.s, e.clamp();\n    }, g.prototype.invDigit = operate () {\n      if (this.t < 1) return 0;\n      var t = this[0];\n      if (0 == (1 &#038; t)) return 0;\n      var e = 3 &#038; t;\n      return 0 < (e = (e = (e = (e = e * (2 - (15 &#038; t) * e) &#038; 15) * (2 - (255 &#038; t) * e) &#038; 255) * (2 - ((65535 &#038; t) * e &#038; 65535)) &#038; 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e;\n    }, g.prototype.dlShiftTo = operate (t, e) {\n      for (var r = this.t - 1; 0 <= r; --r) {\n        e[r + t] = this[r];\n      }\n\n      for (r = t - 1; 0 <= r; --r) {\n        e[r] = 0;\n      }\n\n      e.t = this.t + t, e.s = this.s;\n    }, g.prototype.squareTo = operate (t) {\n      for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) {\n        t[r] = 0;\n      }\n\n      for (r = 0; r < e.t - 1; ++r) {\n        var i = e.am(r, e[r], t, 2 * r, 0, 1);\n        (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);<br \/>\n      }<\/p>\n<p>      0 < t.t &#038;&#038; (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();\n    }, g.prototype.multiplyTo = operate (t, e) {\n      var r = this.abs(),\n          i = t.abs(),\n          o = r.t;\n\n      for (e.t = o + i.t; 0 <= --o;) {\n        e[o] = 0;\n      }\n\n      for (o = 0; o < i.t; ++o) {\n        e[o + r.t] = r.am(0, i[o], e, o, 0, r.t);\n      }\n\n      e.s = 0, e.clamp(), this.s != t.s &#038;&#038; g.ZERO.subTo(e, e);\n    }, g.prototype.divRemTo = operate (t, e, r) {\n      var i = t.abs();\n\n      if (!(i.t <= 0)) {\n        var o = this.abs();\n        if (o.t < i.t) return null != e &#038;&#038; e.fromHexString(\"0\"), void (null != r &#038;&#038; this.copyTo(r));\n        null == r &#038;&#038; (r = T());\n        var n = T(),\n            s = this.s,\n            a = t.s,\n            p = this.DB - C(i[i.t - 1]);\n        0 < p ? (i.lShiftTo(p, n), o.lShiftTo(p, r)) : (i.copyTo(n), o.copyTo(r));\n        var u = n.t,\n            c = n[u - 1];\n\n        if (0 != c) {\n          var d = c * (1 << this.F1) + (1 < u ? n[u - 2] >> this.F2 : 0),<br \/>\n              h = this.FV \/ d,<br \/>\n              f = (1 << this.F1) \/ d,\n              l = 1 << this.F2,\n              m = r.t,\n              v = m - u,\n              y = null == e ? T() : e;\n\n          for (n.dlShiftTo(v, y), 0 <= r.compareTo(y) &#038;&#038; (r[r.t++] = 1, r.subTo(y, r)), g.ONE.dlShiftTo(u, y), y.subTo(n, n); n.t < u;) {\n            n[n.t++] = 0;\n          }\n\n          for (; 0 <= --v;) {\n            var b = r[--m] == c ? this.DM : Math.flooring(r[m] * h + (r[m - 1] + l) * f);\n            if ((r[m] += n.am(0, b, r, v, 0, u)) < b) for (n.dlShiftTo(v, y), r.subTo(y, r); r[m] < --b;) {\n              r.subTo(y, r);\n            }\n          }\n\n          null != e &#038;&#038; (r.drShiftTo(u, e), s != a &#038;&#038; g.ZERO.subTo(e, e)), r.t = u, r.clamp(), 0 < p &#038;&#038; r.rShiftTo(p, r), s < 0 &#038;&#038; g.ZERO.subTo(r, r);\n        }\n      }\n    }, g.prototype.rShiftTo = function (t, e) {\n      e.s = this.s;\n      var r = Math.floor(t \/ this.DB);\n      if (r >= this.t) e.t = 0;else = (this.s & n) << o), e.t = this.t - r, e.clamp();\n      \n    }, g.prototype.drShiftTo = operate (t, e) {\n      for (var r = t; r < this.t; ++r) {\n        e[r - t] = this[r];\n      }\n\n      e.t = Math.max(this.t - t, 0), e.s = this.s;\n    }, g.prototype.subTo = operate (t, e) {\n      for (var r = 0, i = 0, o = Math.min(t.t, this.t); r < o;) {\n        i += this[r] - t[r], e[r++] = i &#038; this.DM, i >>= this.DB;<br \/>\n      }<\/p>\n<p>      if (t.t < this.t) {\n        for (i -= t.s; r < this.t;) {\n          i += this[r], e[r++] = i &#038; this.DM, i >>= this.DB;<br \/>\n        }<\/p>\n<p>        i += this.s;<br \/>\n      } else {<br \/>\n        for (i += this.s; r < t.t;) {\n          i -= t[r], e[r++] = i &#038; this.DM, i >>= this.DB;<br \/>\n        }<\/p>\n<p>        i -= t.s;<br \/>\n      }<\/p>\n<p>      e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i &#038;&#038; (e[r++] = i), e.t = r, e.clamp();\n    }, g.prototype.clamp = operate () {\n      for (var t = this.s &#038; this.DM; 0 < this.t &#038;&#038; this[this.t - 1] == t;) {\n        --this.t;\n      }\n    }, g.prototype.modPowInt = operate (t, e) , g.prototype.exp = operate (t, e) {\n      if (4294967295 < t || t < 1) return g.ONE;\n      var r,\n          i = T(),\n          o = T(),\n          n = e.convert(this),\n          s = C(t) - 1;\n\n      for (n.copyTo(i); 0 <= --s;) {\n        e.sqrTo(i, o), 0 < (t &#038; 1 << s) ? e.mulTo(o, n, i) : (r = i, i = o, o = r);\n      }\n\n      return e.revert(i);\n    }, g.prototype.isEven = operate () {\n      return 0 == (0 < this.t ? 1 &#038; this[0] : this.s);\n    }, g.prototype.compareTo = operate (t) {\n      var e = this.s - t.s;\n      if (0 != e) return e;\n      var r = this.t;\n      if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;\n\n      for (; 0 <= --r;) {\n        if (0 != (e = this[r] - t[r])) return e;\n      }\n\n      return 0;\n    }, g.prototype.am1 = operate (t, e, r, i, o, n) {\n      for (; 0 <= --n;) {\n        var s = e * this[t++] + r[i] + o;\n        o = Math.floor(s \/ 67108864), r[i++] = 67108863 &#038; s;\n      }\n\n      return o;\n    }, g.prototype.am2 = function (t, e, r, i, o, n) {\n      for (var s = 32767 &#038; e, a = e >> 15; 0 <= --n;) {\n        var p = 32767 &#038; this[t],\n            u = this[t++] >> 15,<br \/>\n            c = a * p + u * s;<br \/>\n        o = ((p = s * p + ((32767 & c) << 15) + r[i] + (1073741823 &#038; o)) >>> 30) + (c >>> 15) + a * u + (o >>> 30), r[i++] = 1073741823 & p;<br \/>\n      }<\/p>\n<p>      return o;<br \/>\n    }, g.prototype.am3 = operate (t, e, r, i, o, n) {<br \/>\n      for (var s = 16383 & e, a = e >> 14; 0 <= --n;) {\n        var p = 16383 &#038; this[t],\n            u = this[t++] >> 14,<br \/>\n            c = a * p + u * s;<br \/>\n        o = ((p = s * p + ((16383 & c) << 14) + r[i] + o) >> 28) + (c >> 14) + a * u, r[i++] = 268435455 & p;<br \/>\n      }<\/p>\n<p>      return o;<br \/>\n    }, g);<\/p>\n<p>    operate g(t) {<br \/>\n      null !== t && this.fromHexString(t);<br \/>\n    }<\/p>\n<p>    operate T() {<br \/>\n      return new o(null);<br \/>\n    }<\/p>\n<p>    operate C(t) {<br \/>\n      var e,<br \/>\n          r = 1;<br \/>\n      return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;<br \/>\n    }<\/p>\n<p>    e.BigInteger = o, e.nbi = T, e.nbits = C;<\/p>\n<p>    for (var n = [], s = \"0\".charCodeAt(0), a = 0; a <= 9; ++a) {\n      n[s++] = a;\n    }\n\n    for (s = \"a\".charCodeAt(0), a = 10; a < 36; ++a) {\n      n[s++] = a;\n    }\n\n    for (s = \"A\".charCodeAt(0), a = 10; a < 36; ++a) {\n      n[s++] = a;\n    }\n\n    operate p(t, e) {\n      var r = n[t.charCodeAt(e)];\n      return null == r ? -1 : r;\n    }\n\n    e.intAt = p;\n    var u = \"0123456789abcdefghijklmnopqrstuvwxyz\";\n\n    operate c(t) {\n      return u.charAt(t);\n    }\n\n    e.int2char = c;\n    e.b64toHex = operate (t) {\n      for (var e = \"\", r = 0, i = 0, o = 0; o < t.size &#038;&#038; \"=\" != t.charAt(o); ++o) \n\n      return 1 == r &#038;&#038; (e += c(i << 2)), e;\n    }, e.removeExtraSymbols = operate (t) {\n      return t.substitute(\/^1f+00\/, \"\").substitute(\"3031300d060960864801650304020105000420\"https:\/\/slate.com\/,\"\");\n    };\n    var d = (h.prototype.convert = operate (t)  0 <= t.compareTo(this.m) ? t.mod(this.m) : t;\n    , h.prototype.revert = operate (t) {\n      return t;\n    }, h.prototype.cut back = operate (t) {\n      t.divRemTo(this.m, null, t);\n    }, h.prototype.mulTo = operate (t, e, r) {\n      t.multiplyTo(e, r), this.cut back(r);\n    }, h.prototype.sqrTo = operate (t, e) {\n      t.squareTo(e), this.cut back(e);\n    }, h);\n\n    operate h(t) {\n      this.m = t;\n    }\n\n    var f = (l.prototype.convert = operate (t) {\n      var e = T();\n      return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 &#038;&#038; 0 < e.compareTo(o.ZERO) &#038;&#038; this.m.subTo(e, e), e;\n    }, l.prototype.revert = operate (t) {\n      var e = T();\n      return t.copyTo(e), this.cut back(e), e;\n    }, l.prototype.cut back = operate (t) {\n      for (; t.t <= this.mt2;) {\n        t[t.t++] = 0;\n      }\n\n      for (var e = 0; e < this.m.t; ++e) {\n        var r = 32767 &#038; t[e],\n            i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) &#038; t.DM;\n\n        for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {<br \/>\n          t[r] -= t.DV, t[++r]++;<br \/>\n        }<br \/>\n      }<\/p>\n<p>      t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) &#038;&#038; t.subTo(this.m, t);\n    }, l.prototype.mulTo = function (t, e, r) {\n      t.multiplyTo(e, r), this.reduce(r);\n    }, l.prototype.sqrTo = function (t, e) {\n      t.squareTo(e), this.reduce(e);\n    }, l);\n\n    function l(t) {\n      this.m = t, this.mp = t.invDigit(), this.mpl = 32767 &#038; this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t;\n    }\n\n    operate m(t) {\n      var e = T();\n      return e.fromHexString(t.toString()), e;\n    }\n\n    e.nbv = m, o.ZERO = m(0), o.ONE = m(1), i = \"Microsoft Web Explorer\" == navigator.appName ? (o.prototype.am = o.prototype.am2, 30) : \"Netscape\" != navigator.appName ? (o.prototype.am = o.prototype.am1, 26) : (o.prototype.am = o.prototype.am3, 28), o.prototype.DB = i, o.prototype.DM = (1 << i) - 1, o.prototype.DV = 1 << i;\n    o.prototype.FV = Math.pow(2, 52), o.prototype.F1 = 52 - i, o.prototype.F2 = 2 * i - 52;\n  },\n  384: operate _(t, e, r) {\n    \"use strict\";\n\n    Object.defineProperty(e, \"__esModule\", {\n      worth: !0\n    });\n    var i = (S.hash = operate (t) {\n      t = S.utf8Encode(t || \"\");\n\n      for (var e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], r = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], i = (t += String.fromCharCode(128)).size \/ 4 + 2, o = Math.ceil(i \/ 16), n = new Array(o), s = 0; s < o; s++) {\n        n[s] = new Array(16);\n\n        for (var a = 0; a < 16; a++)  t.charCodeAt(64 * s + 4 * a + 2) << 8 \n      }\n\n      var p = 8 * (t.length - 1) \/ Math.pow(2, 32),\n          u = 8 * (t.length - 1) >>> 0;<\/p>\n<p>      for (n[o - 1][14] = Math.flooring(p), n[o - 1][15] = u, s = 0; s < o; s++) {\n        for (var c = new Array(64), d = 0; d < 16; d++) {\n          c[d] = n[s][d];\n        }\n\n        for (d = 16; d < 64; d++) {\n          c[d] = S.q1(c[d - 2]) + c[d - 7] + S.q0(c[d - 15]) + c[d - 16] >>> 0;<br \/>\n        }<\/p>\n<p>        for (var h = r[0], f = r[1], l = r[2], m = r[3], v = r[4], y = r[5], b = r[6], g = r[7], d = 0; d < 64; d++) {\n          var T = g + S.z1(v) + S.Ch(v, y, b) + e[d] + c[d],\n              C = S.z0(h) + S.Maj(h, f, l);\n          g = b, b = y, y = v, v = m + T >>> 0, m = l, l = f, f = h, h = T + C >>> 0;<br \/>\n        }<\/p>\n<p>        r[0] = r[0] + h >>> 0, r[1] = r[1] + f >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + m >>> 0, r[4] = r[4] + v >>> 0, r[5] = r[5] + y >>> 0, r[6] = r[6] + b >>> 0, r[7] = r[7] + g >>> 0;<br \/>\n      }<\/p>\n<p>      for (var A = new Array(r.size), g = 0; g < r.length; g++) {\n        A[g] = (\"00000000\" + r[g].toString(16)).slice(-8);\n      }\n\n      return A.join(\"\");\n    }, S.utf8Encode = function (e) {\n      try {\n        return new TextEncoder().encode(e).reduce(function (t, e) {\n          return t + String.fromCharCode(e);\n        }, \"\");\n      } catch (t) {\n        return unescape(encodeURIComponent(e));\n      }\n    }, S.ROTR = function (t, e)  e << 32 - t;\n    , S.z0 = function (t) {\n      return S.ROTR(2, t) ^ S.ROTR(13, t) ^ S.ROTR(22, t);\n    }, S.z1 = function (t) {\n      return S.ROTR(6, t) ^ S.ROTR(11, t) ^ S.ROTR(25, t);\n    }, S.q0 = function (t) {\n      return S.ROTR(7, t) ^ S.ROTR(18, t) ^ t >>> 3;<br \/>\n    }, S.q1 = operate (t) {<br \/>\n      return S.ROTR(17, t) ^ S.ROTR(19, t) ^ t >>> 10;<br \/>\n    }, S.Ch = operate (t, e, r) {<br \/>\n      return t & e ^ ~t & r;<br \/>\n    }, S.Maj = operate (t, e, r) {<br \/>\n      return t & e ^ t & r ^ e & r;<br \/>\n    }, S);<\/p>\n<p>    operate S() {}<\/p>\n<p>    e.Sha256 = i;<br \/>\n  }<br \/>\n}, [380]);<br \/>\npbjsChunk([187], {<br \/>\n  481: operate _(e, r, t) {<br \/>\n    e.exports = t(482);<br \/>\n  },<br \/>\n  482: operate _(e, r, t) {<br \/>\n    \"use strict\";<\/p>\n<p>    Object.defineProperty(r, \"__esModule\", {<br \/>\n      worth: !0<br \/>\n    }), t.d(r, \"spec\", operate () {<br \/>\n      return m;<br \/>\n    });<br \/>\n    var b = t(0),<br \/>\n        y = t(2),<br \/>\n        h = t(3),<br \/>\n        i = t(11),<br \/>\n        l = t.n(i),<br \/>\n        a = t(483),<br \/>\n        n = t.n(a),<br \/>\n        s = t(1);<\/p>\n<p>    operate v(e) {<br \/>\n      return (v = \"operate\" == typeof Image && \"image\" == _typeof(Image.iterator) ? operate (e) {<br \/>\n        return _typeof(e);<br \/>\n      } : operate (e) {<br \/>\n        return e && \"operate\" == typeof Image && e.constructor === Image && e !== Image.prototype ? \"image\" : _typeof(e);<br \/>\n      })(e);<br \/>\n    }<\/p>\n<p>    var o = [y.b, y.d],<br \/>\n        g = 100,<br \/>\n        w = 300,<br \/>\n        x = 3600,<br \/>\n        I = !0,<br \/>\n        P = {<br \/>\n      JPY: 1<br \/>\n    };<\/p>\n<p>    operate p(e) {<br \/>\n      var r = {};<br \/>\n      return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty(\"id\") || \"string\" != typeof e.params.id && \"quantity\" != typeof e.params.id ? r.ext.sid = \"\".concat(e.params.measurement[0], \"x\").concat(e.params.measurement[1]) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty(\"bidFloor\") && e.params.hasOwnProperty(\"bidFloorCur\") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r;<br \/>\n    }<\/p>\n<p>    operate d(e) {<br \/>\n      return Array.isArray(e) && 2 === e.size && n()(e[0]) && n()(e[1]);<br \/>\n    }<\/p>\n<p>    operate c(e, r) {<br \/>\n      if (d(e)) return e[0] === r[0] && e[1] === r[1];<\/p>\n<p>      for (var t = 0; t < e.size; t++) {\n        if (e[t][0] === r[0] &#038;&#038; e[t][1] === r[1]) return 1;\n      }\n    }\n\n    operate u(e, r, t, i) {\n      var a = [];\n\n      if (window.headertag &#038;&#038; \"operate\" == typeof window.headertag.getIdentityInfo) {\n        var n,\n            s = window.headertag.getIdentityInfo();\n        if (s &#038;&#038; \"object\" === v(s)) for (var o in s) \n      }\n\n      var d,\n          p = {};\n      p.id = e[0].bidderRequestId, p.imp = t, p.website = {}, p.ext = {}, p.ext.supply = \"prebid\", e[0].schain &#038;&#038; (p.supply = {\n        ext: {\n          schain: e[0].schain\n        }\n      }), 0 < a.size &#038;&#038; (p.consumer = {}, p.consumer.eids = a), doc.referrer &#038;&#038; \"\" !== doc.referrer &#038;&#038; (p.website.ref = doc.referrer), r &#038;&#038; (r.gdprConsent &#038;&#038; ((d = r.gdprConsent).hasOwnProperty(\"gdprApplies\") &#038;&#038; (p.regs = {\n        ext: {\n          gdpr: d.gdprApplies ? 1 : 0\n        }\n      }), d.hasOwnProperty(\"consentString\") &#038;&#038; (p.consumer = p.consumer || {}, p.consumer.ext = )), r.uspConsent &#038;&#038; b.deepSetValue(p, \"regs.ext.us_privacy\", r.uspConsent), r.refererInfo &#038;&#038; (p.website.web page = r.refererInfo.referer));\n      var c = {},\n          u = r &#038;&#038; r.bidderCode || \"ix\",\n          m = h.b.getConfig(u);\n\n      if (m) {\n        if (\"object\" === v(m.firstPartyData)) {\n          var f = m.firstPartyData,\n              y = \"?\";\n\n          for (var l in f) {\n            f.hasOwnProperty(l) &#038;&#038; (y += \"\".concat(encodeURIComponent(l), \"=\").concat(encodeURIComponent(f[l]), \"&#038;\"));\n          }\n\n          y = y.slice(0, -1), p.website.web page += y;\n        }\n\n        \"quantity\" == typeof m.timeout &#038;&#038; (c.t = m.timeout);\n      }\n\n      return c.s = e[0].params.siteId, c.v = i, c.r = JSON.stringify(p), c.ac = \"j\", c.sd = 1, 8.1 === i &#038;&#038; (c.nf = 1), {\n        methodology: \"GET\",\n        url: \"https:\/\/as-sec.casalemedia.com\/cygnus\",\n        knowledge: c\n      };\n    }\n\n    var m = {\n      code: \"ix\",\n      gvlid: 10,\n      supportedMediaTypes: o,\n      isBidRequestValid: operate isBidRequestValid(e) {\n        if (!d(e.params.measurement)) return b.logError(\"ix bidder params: bid measurement has invalid format.\"), !1;\n        if (!c(e.sizes, e.params.measurement)) return b.logError(\"ix bidder params: bid measurement isn't included in advert unit sizes.\"), !1;\n        if (e.hasOwnProperty(\"mediaType\") &#038;&#038; !b.accommodates(o, e.mediaType)) return !1;\n        if (e.hasOwnProperty(\"mediaTypes\") &#038;&#038; !b.deepAccess(e, \"mediaTypes.banner.sizes\") &#038;&#038; !b.deepAccess(e, \"mediaTypes.video.playerSize\")) return !1;\n        if (\"string\" != typeof e.params.siteId &#038;&#038; \"quantity\" != typeof e.params.siteId) return b.logError(\"ix bidder params: siteId have to be string or quantity worth.\"), !1;\n        var r,\n            t,\n            i = e.params.hasOwnProperty(\"bidFloor\"),\n            a = e.params.hasOwnProperty(\"bidFloorCur\");\n        return !!(!i &#038;&#038; !a || i &#038;&#038; a &#038;&#038; (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean(\"quantity\" == typeof r &#038;&#038; \"string\" == typeof t &#038;&#038; t.match(\/^[A-Z]{3}$\/)))) || (b.logError(\"ix bidder params: bidFloor \/ bidFloorCur parameter has invalid format.\"), !1);\n      },\n      buildRequests: operate buildRequests(e, r) {\n        for (var t, i, a = [], n = [], s = [], o = null, d = 0; d < e.size; d++) {\n          (o = e[d]).mediaType !== y.d &#038;&#038; !b.deepAccess(o, \"mediaTypes.video\") || (o.mediaType === y.d || c(o.mediaTypes.video.playerSize, o.params.measurement) ? s.push(operate (e) {\n            var r = p(e);\n            r.video = b.deepClone(e.params.video), r.video.w = e.params.measurement[0], r.video.h = e.params.measurement[1];\n            var t = b.deepAccess(e, \"mediaTypes.video.context\");\n            return t &#038;&#038; (\"instream\" === t ? r.video.placement = 1 : \"outstream\" === t ? r.video.placement = 4 : b.logWarn(\"ix bidder params: video context '\".concat(t, \"' isn't supported\"))), r;\n          }(o)) : b.logError(\"Bid measurement isn't included in video playerSize\")), o.mediaType !== y.b &#038;&#038; !b.deepAccess(o, \"mediaTypes.banner\") &#038;&#038; (o.mediaType || o.mediaTypes) || n.push((i = void 0, (i = p(t = o)).banner = {}, i.banner.w = t.params.measurement[0], i.banner.h = t.params.measurement[1], i.banner.topframe = b.inIframe() ? 0 : 1, i));\n        }\n\n        return 0 < n.size &#038;&#038; a.push(u(e, r, n, 7.2)), 0 < s.size &#038;&#038; a.push(u(e, r, s, 8.1)), a;\n      },\n      interpretResponse: operate interpretResponse(e, r) {\n        var t = [];\n        if (!e.hasOwnProperty(\"physique\") || !e.physique.hasOwnProperty(\"seatbid\")) return t;\n\n        for (var i, a, n, s, o = e.physique, d = o.seatbid, p = 0; p < d.size; p++) {\n          if (d[p].hasOwnProperty(\"bid\")) for (var c = d[p].bid, u = JSON.parse(r.knowledge.r), m = 0; m < c.size; m++) {\n            var f = operate (r, e) {\n              if (r) return l()(e, operate (e) {\n                return e.id === r;\n              });\n            }(c[m].impid, u.imp);\n\n            i = c[m], a = o.cur, n = f, s = void 0, s = {}, P.hasOwnProperty(a) ? s.cpm = i.value \/ P[a] : s.cpm = i.value \/ g, s.requestId = i.impid, s.dealId = b.deepAccess(i, \"ext.dealid\"), s.netRevenue = I, s.foreign money = a, s.creativeId = i.hasOwnProperty(\"crid\") ? i.crid : \"-\", b.deepAccess(i, \"ext.vasturl\") ? (s.vastUrl = i.ext.vasturl, s.width = n.video.w, s.top = n.video.h, s.mediaType = y.d, s.ttl = x) : (s.advert = i.adm, s.width = i.w, s.top = i.h, s.mediaType = y.b, s.ttl = w), s.meta = {}, s.meta.networkId = b.deepAccess(i, \"ext.dspid\"), s.meta.brandId = b.deepAccess(i, \"ext.advbrandid\"), s.meta.brandName = b.deepAccess(i, \"ext.advbrand\"), t.push(s);\n          }\n        }\n\n        return t;\n      },\n      transformBidParams: operate transformBidParams(e) {\n        return b.convertTypes({\n          siteID: \"quantity\"\n        }, e);\n      },\n      getUserSyncs: operate getUserSyncs(e) {\n        return e.iframeEnabled ? [{\n          type: \"iframe\",\n          url: \"https:\/\/js-sec.indexww.com\/um\/ixmatch.html\"\n        }] : [];\n      }\n    };\n    Object(s.registerBidder)(m);\n  }\n}, [481]);\npbjsChunk([184], {\n  493: operate _(e, t, r) {\n    e.exports = r(494);\n  },\n  494: operate _(e, t, r) {\n    \"use strict\";\n\n    Object.defineProperty(t, \"__esModule\", {\n      worth: !0\n    }), r.d(t, \"spec\", operate () {\n      return l;\n    });\n    var s = r(0),\n        d = r(3),\n        n = r(1),\n        a = r(9);\n\n    operate g() {\n      return (g = Object.assign || operate (e) {\n        for (var t = 1; t < arguments.size; t++) {\n          var r = arguments[t];\n\n          for (var n in r) {\n            Object.prototype.hasOwnProperty.name(r, n) &#038;&#038; (e[n] = r[n]);\n          }\n        }\n\n        return e;\n      }).apply(this, arguments);\n    }\n\n    var o,\n        i,\n        c,\n        u = Object(a.b)(),\n        l = {\n      code: \"kargo\",\n      isBidRequestValid: operate isBidRequestValid(e)  !e.params) &#038;&#038; !!e.params.placementId;\n      ,\n      buildRequests: operate buildRequests(e, t) {\n        var r,\n            n = d.b.getConfig(\"foreign money\"),\n            a = n &#038;&#038; n.adServerCurrency || \"USD\",\n            o = {},\n            i = {};\n        s._each(e, operate (e) {\n          o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes;\n        }), 0 < e.size &#038;&#038; e[0].userId &#038;&#038; e[0].userId.tdid &#038;&#038; (r = e[0].userId.tdid);\n        var c = g({}, {\n          sessionId: l._getSessionId(),\n          requestCount: l._getRequestCount(),\n          timeout: t.timeout,\n          foreign money: a,\n          cpmGranularity: 1,\n          timestamp: new Date().getTime(),\n          cpmRange: {\n            flooring: 0,\n            ceil: 20\n          },\n          bidIDs: o,\n          bidSizes: i,\n          prebidRawBidRequests: e\n        }, l._getAllMetadata(r, t.uspConsent)),\n            u = encodeURIComponent(JSON.stringify(c));\n        return g({}, t, {\n          methodology: \"GET\",\n          url: \"\".concat(\"https:\/\/krk.kargo.com\"https:\/\/slate.com\/,\"\/api\/v2\/bid\"),\n          knowledge: \"json=\".concat(u),\n          foreign money: a\n        });\n      },\n      interpretResponse: operate interpretResponse(e, t) {\n        var r = e.physique,\n            n = [];\n\n        for (var a in r) {\n          var o = r[a],\n              i = void 0;\n          o.metadata &#038;&#038; o.metadata.landingPageDomain &#038;&#038; (i = {\n            clickUrl: o.metadata.landingPageDomain\n          }), n.push({\n            requestId: a,\n            cpm: Quantity(o.cpm),\n            width: o.width,\n            top: o.top,\n            advert: o.adm,\n            ttl: 300,\n            creativeId: o.id,\n            dealId: o.targetingCustom,\n            netRevenue: !0,\n            foreign money: t.foreign money,\n            meta: i\n          });\n        }\n\n        return n;\n      },\n      getUserSyncs: operate getUserSyncs(e) {\n        var t = [],\n            r = l._generateRandomUuid(),\n            n = l._getClientId();\n\n        if (e.iframeEnabled &#038;&#038; r &#038;&#038; n) for (var a = 0; a < 5; a++) {\n          t.push({\n            kind: \"iframe\",\n            url: \"https:\/\/crb.kargo.com\/api\/v1\/initsyncrnd\/{UUID}?seed={SEED}&#038;idx={INDEX}\".substitute(\"{UUID}\", n).substitute(\"{SEED}\", r).substitute(\"{INDEX}\", a)\n          });\n        }\n        return t;\n      },\n      _readCookie: operate _readCookie(e) {\n        if (!u.cookiesAreEnabled()) return null;\n\n        for (var t = \"\".concat(e, \"=\"), r = doc.cookie.cut up(\";\"), n = 0; n < r.length; n++) {\n          for (var a = r[n]; \" \" === a.charAt(0);) {\n            a = a.substring(1, a.length);\n          }\n\n          if (0 === a.indexOf(t)) return a.substring(t.length, a.length);\n        }\n\n        return null;\n      },\n      _getCrbFromCookie: function _getCrbFromCookie() {\n        try {\n          var e = JSON.parse(decodeURIComponent(l._readCookie(\"krg_crb\")));\n\n          if (e &#038;&#038; e.v) {\n            var t = JSON.parse(atob(e.v));\n            if (t) return t;\n          }\n\n          return {};\n        } catch (e) {\n          return {};\n        }\n      },\n      _getCrbFromLocalStorage: function _getCrbFromLocalStorage() {\n        try {\n          return JSON.parse(atob(l._getLocalStorageSafely(\"krg_crb\")));\n        } catch (e) {\n          return {};\n        }\n      },\n      _getCrb: function _getCrb() {\n        var e = l._getCrbFromLocalStorage();\n\n        return Object.keys(e).length ? e : l._getCrbFromCookie();\n      },\n      _getKruxUserId: function _getKruxUserId() {\n        return l._getLocalStorageSafely(\"kxkar_user\");\n      },\n      _getKruxSegments: function _getKruxSegments() {\n        return l._getLocalStorageSafely(\"kxkar_segs\");\n      },\n      _getKrux: function _getKrux() {\n        var e = l._getKruxSegments(),\n            t = [];\n\n        return e &#038;&#038; (t = e.split(\",\")), {\n          userID: l._getKruxUserId(),\n          segments: t\n        };\n      },\n      _getLocalStorageSafely: function _getLocalStorageSafely(e) {\n        try {\n          return u.getDataFromLocalStorage(e);\n        } catch (e) {\n          return null;\n        }\n      },\n      _getUserIds: function _getUserIds(e, t) {\n        var r = l._getCrb(),\n            n = {\n          kargoID: r.userId,\n          clientID: r.clientId,\n          crbIDs: r.syncIds || {},\n          optOut: r.optOut,\n          usp: t\n        };\n\n        return e &#038;&#038; (n.tdID = e), n;\n      },\n      _getClientId: function _getClientId() {\n        return l._getCrb().clientId;\n      },\n      _getAllMetadata: function _getAllMetadata(e, t) {\n        return {\n          userIDs: l._getUserIds(e, t),\n          krux: l._getKrux(),\n          pageURL: window.location.href,\n          rawCRB: l._readCookie(\"krg_crb\"),\n          rawCRBLocalStorage: l._getLocalStorageSafely(\"krg_crb\")\n        };\n      },\n      _getSessionId: function _getSessionId()  l._generateRandomUuid();\n      ,\n      _getRequestCount: function _getRequestCount() {\n        return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0);\n      },\n      _generateRandomUuid: function _generateRandomUuid() {\n        try {\n          var e = new Uint8Array(16);\n          crypto.getRandomValues(e), e[6] = -177 &#038; e[6] | 64, e[8] = -65 &#038; e[8] | 128;\n          var t = Array.prototype.map.call(new Uint8Array(e), function (e) {\n            return (\"00\" + e.toString(16)).slice(-2);\n          }).join(\"\");\n          return t.slice(0, 8) + \"-\" + t.slice(8, 12) + \"-\" + t.slice(12, 16) + \"-\" + t.slice(16, 20) + \"-\" + t.slice(20);\n        } catch (e) {\n          return \"\";\n        }\n      }\n    };\n    Object(n.registerBidder)(l);\n  }\n}, [493]);\npbjsChunk([110], {\n  677: function _(e, r, t) {\n    e.exports = t(678);\n  },\n  678: function _(e, r, t) {\n    \"use strict\";\n\n    Object.defineProperty(r, \"__esModule\", {\n      value: !0\n    }), t.d(r, \"FASTLANE_ENDPOINT\", function () {\n      return o;\n    }), t.d(r, \"VIDEO_ENDPOINT\", function () {\n      return l;\n    }), t.d(r, \"SYNC_ENDPOINT\", function () {\n      return a;\n    }), t.d(r, \"spec\", function () {\n      return h;\n    }), r.hasVideoMediaType = c, r.masSizeOrdering = S, r.determineRubiconVideoSizeId = C, r.getPriceGranularity = j, r.hasValidVideoParams = k, r.hasValidSupplyChainParams = T, r.encodeParam = w, r.resetUserSync = function () {\n      R = !1;\n    };\n    var g = t(0),\n        i = t(1),\n        b = t(3),\n        u = t(2);\n\n    function v(e, r) {\n      return function (e) {\n        if (Array.isArray(e)) return e;\n      }(e) || function (e, r) {\n        if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n        var t = [],\n            i = !0,\n            n = !1,\n            o = void 0;\n\n        try {\n          for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) &#038;&#038; (t.push(a.value), !r || t.length !== r); i = !0) {\n            ;\n          }\n        } catch (e) {\n          n = !0, o = e;\n        } finally {\n          try  finally {\n            if (n) throw o;\n          }\n        }\n\n        return t;\n      }(e, r) || function (e, r) 16(e, r) || function () {\n        throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n      }();\n    }\n\n    function n(e, r) {\n      (null == r || r > e.size) && (r = e.size);<\/p>\n<p>      for (var t = 0, i = new Array(r); t < r; t++) {\n        i[t] = e[t];\n      }\n\n      return i;\n    }\n\n    operate y() {\n      return (y = Object.assign || operate (e) {\n        for (var r = 1; r < arguments.size; r++) {\n          var t = arguments[r];\n\n          for (var i in t) {\n            Object.prototype.hasOwnProperty.name(t, i) &#038;&#038; (e[i] = t[i]);\n          }\n        }\n\n        return e;\n      }).apply(this, arguments);\n    }\n\n    operate p(e, r, t) {\n      return r in e ? Object.defineProperty(e, r, {\n        worth: t,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : e[r] = t, e;\n    }\n\n    operate x(e) {\n      return (x = \"operate\" == typeof Image &#038;&#038; \"image\" == _typeof(Image.iterator) ? operate (e) {\n        return _typeof(e);\n      } : operate (e) {\n        return e &#038;&#038; \"operate\" == typeof Image &#038;&#038; e.constructor === Image &#038;&#038; e !== Image.prototype ? \"image\" : _typeof(e);\n      })(e);\n    }\n\n    var o = \"https:\/\/fastlane.rubiconproject.com\/a\/api\/fastlane.json\",\n        l = \"https:\/\/prebid-server.rubiconproject.com\/openrtb2\/public sale\",\n        a = \"https:\/\/eus.rubiconproject.com\/usync.html\",\n        d = {\n      FASTLANE: {\n        id: \"dt.id\",\n        keyv: \"dt.keyv\",\n        pref: \"dt.pref\"\n      },\n      PREBID_SERVER: {\n        id: \"id\",\n        keyv: \"keyv\"\n      }\n    },\n        f = {\n      1: \"468x60\",\n      2: \"728x90\",\n      5: \"120x90\",\n      8: \"120x600\",\n      9: \"160x600\",\n      10: \"300x600\",\n      13: \"200x200\",\n      14: \"250x250\",\n      15: \"300x250\",\n      16: \"336x280\",\n      17: \"240x400\",\n      19: \"300x100\",\n      31: \"980x120\",\n      32: \"250x360\",\n      33: \"180x500\",\n      35: \"980x150\",\n      37: \"468x400\",\n      38: \"930x180\",\n      39: \"750x100\",\n      40: \"750x200\",\n      41: \"750x300\",\n      42: \"2x4\",\n      43: \"320x50\",\n      44: \"300x50\",\n      48: \"300x300\",\n      53: \"1024x768\",\n      54: \"300x1050\",\n      55: \"970x90\",\n      57: \"970x250\",\n      58: \"1000x90\",\n      59: \"320x80\",\n      60: \"320x150\",\n      61: \"1000x1000\",\n      64: \"580x500\",\n      65: \"640x480\",\n      66: \"930x600\",\n      67: \"320x480\",\n      68: \"1800x1000\",\n      72: \"320x320\",\n      73: \"320x160\",\n      78: \"980x240\",\n      79: \"980x300\",\n      80: \"980x400\",\n      83: \"480x300\",\n      85: \"300x120\",\n      90: \"548x150\",\n      94: \"970x310\",\n      95: \"970x100\",\n      96: \"970x210\",\n      101: \"480x320\",\n      102: \"768x1024\",\n      103: \"480x280\",\n      105: \"250x800\",\n      108: \"320x240\",\n      113: \"1000x300\",\n      117: \"320x100\",\n      125: \"800x250\",\n      126: \"200x600\",\n      144: \"980x600\",\n      145: \"980x150\",\n      152: \"1000x250\",\n      156: \"640x320\",\n      159: \"320x250\",\n      179: \"250x600\",\n      195: \"600x300\",\n      198: \"640x360\",\n      199: \"640x200\",\n      213: \"1030x590\",\n      214: \"980x360\",\n      221: \"1x1\",\n      229: \"320x180\",\n      230: \"2000x1400\",\n      232: \"580x400\",\n      234: \"6x6\",\n      251: \"2x2\",\n      256: \"480x820\",\n      257: \"400x600\",\n      258: \"500x200\",\n      259: \"998x200\",\n      264: \"970x1000\",\n      265: \"1920x1080\",\n      274: \"1800x200\",\n      278: \"320x500\",\n      282: \"320x400\",\n      288: \"640x380\"\n    };\n\n    g._each(f, operate (e, r) {\n      return f[e] = r;\n    });\n\n    var h = {\n      code: \"rubicon\",\n      gvlid: 52,\n      supportedMediaTypes: [u.b, u.d],\n      isBidRequestValid: operate isBidRequestValid(e) {\n        if (\"object\" !== x(e.params)) return !1;\n\n        for (var r = 0, t = [\"accountId\"https:\/\/slate.com\/,\"siteId\"https:\/\/slate.com\/,\"zoneId\"]; r < t.size; r++) {\n          if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return g.logError(\"Rubicon: incorrect format of accountId or siteId or zoneId.\"), !1;\n        }\n\n        var i = m(e, !0);\n        return !!i &#038;&#038; (\"video\" !== i || okay(e));\n      },\n      buildRequests: operate buildRequests(e, u) {\n        var n,\n            r = e.filter(operate (e) {\n          return \"video\" === m(e);\n        }).map(operate (e) {\n          e.startTime = new Date().getTime();\n          var r,\n              t,\n              i = {\n            id: e.transactionId,\n            take a look at: b.b.getConfig(\"debug\") ? 1 : 0,\n            cur: [\"USD\"],\n            supply: {\n              tid: e.transactionId\n            },\n            tmax: b.b.getConfig(\"TTL\") || 1e3,\n            imp: [{\n              exp: 300,\n              id: e.adUnitCode,\n              secure: 1,\n              ext: p({}, e.bidder, e.params),\n              video: g.deepAccess(e, \"mediaTypes.video\") || {}\n            }],\n            ext: {\n              prebid: {\n                cache: {\n                  vastxml: {\n                    returnCreative: !1\n                  }\n                },\n                focusing on: {\n                  includewinners: !0,\n                  includebidderkeys: !1,\n                  pricegranularity: j(b.b)\n                },\n                bidders: {\n                  rubicon: \n                }\n              }\n            }\n          };\n          \"rubicon\" !== e.bidder &#038;&#038; (i.ext.prebid.aliases = p({}, e.bidder, \"rubicon\")), t = \"operate\" != typeof e.getFloor || b.b.getConfig(\"rubicon.disableFloors\") ? parseFloat(g.deepAccess(e, \"params.flooring\")) : \"object\" !== x(r = e.getFloor({\n            foreign money: \"USD\",\n            mediaType: \"video\",\n            measurement: A(e, \"video\")\n          })) || \"USD\" !== r.foreign money || isNaN(parseInt(r.flooring)) ? void 0 : parseFloat(r.flooring), isNaN(t) || (i.imp[0].bidfloor = t), i.imp[0].ext[e.bidder].video.size_id = C(e), operate (r, t, e) {\n            if (!r) return;\n            \"object\" === x(b.b.getConfig(\"app\")) ? r.app = b.b.getConfig(\"app\") : r.website = {\n              web page: I(t, e)\n            };\n            \"object\" === x(b.b.getConfig(\"machine\")) &#038;&#038; (r.machine = b.b.getConfig(\"machine\"));\n            t.params.video.language &#038;&#038; [\"site\"https:\/\/slate.com\/,\"device\"].forEach(operate (e) {\n              r[e] &#038;&#038; (r[e].content material = y({\n                language: t.params.video.language\n              }, r[e].content material));\n            });\n          }(i, e, u), operate (e, r) {\n            \"object\" === x(e.imp[0].video) &#038;&#038; void 0 === e.imp[0].video.skip &#038;&#038; (e.imp[0].video.skip = r.params.video.skip);\n            \"object\" === x(e.imp[0].video) &#038;&#038; void 0 === e.imp[0].video.skipafter &#038;&#038; (e.imp[0].video.skipafter = r.params.video.skipdelay);\n            \"object\" === x(e.imp[0].video) &#038;&#038; void 0 === e.imp[0].video.pos &#038;&#038; (\"atf\" === r.params.place ? e.imp[0].video.pos = 1 : \"btf\" === r.params.place &#038;&#038; (e.imp[0].video.pos = 3));\n            var t = A(r, \"video\");\n            e.imp[0].video.w = t[0], e.imp[0].video.h = t[1];\n          }(i, e);\n\n          var n,\n              o = _(e, \"PREBID_SERVER\");\n\n          o &#038;&#038; g.deepSetValue(i, \"consumer.ext.digitrust\", o), u.gdprConsent &#038;&#038; (\"boolean\" == typeof u.gdprConsent.gdprApplies &#038;&#038; (n = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(i, \"regs.ext.gdpr\", n), g.deepSetValue(i, \"consumer.ext.consent\", u.gdprConsent.consentString)), u.uspConsent &#038;&#038; g.deepSetValue(i, \"regs.ext.us_privacy\", u.uspConsent), e.userId &#038;&#038; \"object\" === x(e.userId) &#038;&#038; (e.userId.tdid || e.userId.pubcid || e.userId.lipb || e.userId.idl_env) &#038;&#038; (g.deepSetValue(i, \"consumer.ext.eids\", []), e.userId.tdid &#038;&#038; i.consumer.ext.eids.push({\n            supply: \"adserver.org\",\n            uids: [{\n              id: e.userId.tdid,\n              ext: {\n                rtiPartner: \"TDID\"\n              }\n            }]\n          }), e.userId.pubcid &#038;&#038; i.consumer.ext.eids.push({\n            supply: \"pubcommon\",\n            uids: [{\n              id: e.userId.pubcid\n            }]\n          }), e.userId.lipb &#038;&#038; e.userId.lipb.lipbid &#038;&#038; (i.consumer.ext.eids.push({\n            supply: \"liveintent.com\",\n            uids: [{\n              id: e.userId.lipb.lipbid\n            }]\n          }), i.consumer.ext.tpid = {\n            supply: \"liveintent.com\",\n            uid: e.userId.lipb.lipbid\n          }, Array.isArray(e.userId.lipb.segments) &#038;&#038; e.userId.lipb.segments.size &#038;&#038; g.deepSetValue(i, \"rp.goal.LIseg\", e.userId.lipb.segments)), e.userId.idl_env &#038;&#038; i.consumer.ext.eids.push({\n            supply: \"liveramp.com\",\n            uids: [{\n              id: e.userId.idl_env\n            }]\n          })), !0 === b.b.getConfig(\"coppa\") &#038;&#038; g.deepSetValue(i, \"regs.coppa\", 1), e.schain &#038;&#038; T(e.schain) &#038;&#038; g.deepSetValue(i, \"supply.ext.schain\", e.schain);\n          var a,\n              s = y({}, e.params.stock, b.b.getConfig(\"fpd.context\")),\n              d = y({}, e.params.customer, b.b.getConfig(\"fpd.consumer\"));\n          g.isEmpty(s) &#038;&#038; g.isEmpty(d) || (a = {\n            bidders: [u.bidderCode],\n            config: {\n              fpd: {}\n            }\n          }, g.isEmpty(s) || (a.config.fpd.website = s), g.isEmpty(d) || (a.config.fpd.consumer = d), g.deepSetValue(i, \"ext.prebid.bidderconfig.0\", a));\n          var c = g.deepAccess(e, \"fpd.context.pbAdSlot\");\n          return \"string\" == typeof c &#038;&#038; c &#038;&#038; g.deepSetValue(i.imp[0].ext, \"context.knowledge.adslot\", c), e.storedAuctionResponse &#038;&#038; g.deepSetValue(i.imp[0], \"ext.prebid.storedauctionresponse.id\", e.storedAuctionResponse.toString()), g.deepSetValue(i.imp[0], \"ext.prebid.auctiontimestamp\", u.auctionStart), {\n            methodology: \"POST\",\n            url: l,\n            knowledge: i,\n            bidRequest: e\n          };\n        });\n        return !0 !== b.b.getConfig(\"rubicon.singleRequest\") ? r.concat(e.filter(operate (e) {\n          return \"banner\" === m(e);\n        }).map(operate (e) {\n          var i = h.createSlotParams(e, u);\n          return {\n            methodology: \"GET\",\n            url: o,\n            knowledge: h.getOrderedParams(i).cut back(operate (e, r) , \"\") + \"slots=1&#038;rand=\".concat(Math.random()),\n            bidRequest: e\n          };\n        })) : (n = e.filter(operate (e) {\n          return \"banner\" === m(e);\n        }).cut back(operate (e, r) , {}), r.concat(Object.keys(n).cut back(operate (r, e) {\n          var t, i;\n          return t = n[e], i = 10, t.map(operate (e, r) {\n            return r % i == 0 ? t.slice(r, r + i) : null;\n          }).filter(operate (e) {\n            return e;\n          }).forEach(operate (e) {\n            var i = h.combineSlotUrlParams(e.map(operate (e) {\n              return h.createSlotParams(e, u);\n            }));\n            r.push({\n              methodology: \"GET\",\n              url: o,\n              knowledge: h.getOrderedParams(i).cut back(operate (e, r) , \"\") + \"slots=\".concat(e.size, \"&#038;rand=\").concat(Math.random()),\n              bidRequest: e\n            });\n          }), r;\n        }, [])));\n      },\n      getOrderedParams: operate getOrderedParams(e) {\n        var r = \/^tg_v\/,\n            t = \/^tg_i\/,\n            i = [\"account_id\"https:\/\/slate.com\/,\"site_id\"https:\/\/slate.com\/,\"zone_id\"https:\/\/slate.com\/,\"size_id\"https:\/\/slate.com\/,\"alt_size_ids\"https:\/\/slate.com\/,\"p_pos\"https:\/\/slate.com\/,\"gdpr\"https:\/\/slate.com\/,\"gdpr_consent\"https:\/\/slate.com\/,\"us_privacy\"https:\/\/slate.com\/,\"rp_schain\"https:\/\/slate.com\/,\"tpid_tdid\"https:\/\/slate.com\/,\"tpid_liveintent.com\"https:\/\/slate.com\/,\"tg_v.LIseg\"https:\/\/slate.com\/,\"dt.id\"https:\/\/slate.com\/,\"dt.keyv\"https:\/\/slate.com\/,\"dt.pref\"https:\/\/slate.com\/,\"rf\"https:\/\/slate.com\/,\"p_geo.latitude\"https:\/\/slate.com\/,\"p_geo.longitude\"https:\/\/slate.com\/,\"kw\"].concat(Object.keys(e).filter(operate (e) {\n          return r.take a look at(e);\n        })).concat(Object.keys(e).filter(operate (e) {\n          return t.take a look at(e);\n        })).concat([\"tk_flint\"https:\/\/slate.com\/,\"x_source.tid\"https:\/\/slate.com\/,\"x_source.pchain\"https:\/\/slate.com\/,\"p_screen_res\"https:\/\/slate.com\/,\"rp_floor\"https:\/\/slate.com\/,\"rp_secure\"https:\/\/slate.com\/,\"tk_user_key\"]);\n        return i.concat(Object.keys(e).filter(operate (e) {\n          return -1 === i.indexOf(e);\n        }));\n      },\n      combineSlotUrlParams: operate combineSlotUrlParams(n) {\n        if (1 === n.size) return n[0];\n        var i = n.cut back(operate (r, t, i) {\n          return Object.keys(t).forEach(operate (e)  (r[e] = new Array(n.size)), r[e].splice(i, 1, t[e]);\n          ), r;\n        }, {}),\n            o = new RegExp(\"^([^;]*)(;1)+$\");\n        return Object.keys(i).forEach(operate (e) {\n          var r = i[e].be a part of(\";\"),\n              t = r.match(o);\n          i[e] = t ? t[1] : r;\n        }), i;\n      },\n      createSlotParams: operate createSlotParams(e, r) {\n        e.startTime = new Date().getTime();\n        var t,\n            i = e.params,\n            n = A(e, \"banner\"),\n            o = v(i.latLong || [], 2),\n            a = o[0],\n            s = o[1],\n            d = b.b.getConfig(\"rubicon.int_type\"),\n            c =  void 0,\n          rp_floor: .01 < (i.flooring = parseFloat(i.flooring)) ? i.flooring : .01,\n          rp_secure: \"1\",\n          tk_flint: \"\".concat(d ;\n        \"operate\" != typeof e.getFloor || b.b.getConfig(\"rubicon.disableFloors\") || (t = e.getFloor({\n          foreign money: \"USD\",\n          mediaType: \"banner\",\n          measurement: \"*\"\n        }), c.rp_hard_floor = \"object\" !== x(t) || \"USD\" !== t.foreign money || isNaN(parseInt(t.flooring)) ? void 0 : t.flooring), c.p_pos = \"atf\" === i.place || \"btf\" === i.place ? i.place : \"\", e.userId &#038;&#038; (e.userId.tdid &#038;&#038; (c.tpid_tdid = e.userId.tdid), e.userId.lipb &#038;&#038; e.userId.lipb.lipbid &#038;&#038; (c[\"tpid_liveintent.com\"] = e.userId.lipb.lipbid, Array.isArray(e.userId.lipb.segments) &#038;&#038; e.userId.lipb.segments.size &#038;&#038; (c[\"tg_v.LIseg\"] = e.userId.lipb.segments.be a part of(\",\"))), e.userId.idl_env &#038;&#038; (c[\"tpid_liveramp.com\"] = e.userId.idl_env)), r.gdprConsent &#038;&#038; (\"boolean\" == typeof r.gdprConsent.gdprApplies &#038;&#038; (c.gdpr = Quantity(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent &#038;&#038; (c.us_privacy = encodeURIComponent(r.uspConsent));\n        var u = y({}, i.customer, b.b.getConfig(\"fpd.consumer\"));\n        Object.keys(u).forEach(operate (e)  Array.isArray(u[e]) ? u[e].toString() : JSON.stringify(u[e]));\n        );\n        var p = y({}, i.stock, b.b.getConfig(\"fpd.context\"));\n        Object.keys(p).forEach(operate (e) );\n        var l = (i.key phrases || []).concat(g.deepAccess(b.b.getConfig(\"fpd.consumer\"), \"key phrases\") || [], g.deepAccess(b.b.getConfig(\"fpd.context\"), \"key phrases\") || []);\n        c.kw = Array.isArray(l) &#038;&#038; l.size ? l.be a part of(\",\") : \"\";\n        var f = g.deepAccess(e, \"fpd.context.pbAdSlot\");\n        \"string\" == typeof f &#038;&#038; f &#038;&#038; (c[\"tg_i.dfp_ad_unit_code\"] = f.substitute(\/^\/+\/, \"\"));\n\n        var m = _(e, \"FASTLANE\");\n\n        return y(c, m), !0 === b.b.getConfig(\"coppa\") &#038;&#038; (c.coppa = 1), e.schain &#038;&#038; T(e.schain) &#038;&#038; (c.rp_schain = h.serializeSupplyChain(e.schain)), c;\n      },\n      serializeSupplyChain: operate serializeSupplyChain(e) {\n        if (!T(e)) return \"\";\n        var r = e.ver,\n            t = e.full,\n            i = e.nodes;\n        return \"\".concat(r, \",\").concat(t, \"!\").concat(h.serializeSupplyChainNodes(i));\n      },\n      serializeSupplyChainNodes: operate serializeSupplyChainNodes(e) {\n        var t = [\"asi\"https:\/\/slate.com\/,\"sid\"https:\/\/slate.com\/,\"hp\"https:\/\/slate.com\/,\"rid\"https:\/\/slate.com\/,\"name\"https:\/\/slate.com\/,\"domain\"];\n        return e.map(operate (r) {\n          return t.map(operate (e)  \"\");\n          ).be a part of(\",\");\n        }).be a part of(\"!\");\n      },\n      interpretResponse: operate interpretResponse(d, e) {\n        var c = e.bidRequest;\n        if (!(d = d.physique) || \"object\" !== x(d)) return [];\n\n        if (d.seatbid) {\n          var r = g.deepAccess(d, \"ext.errors.rubicon\");\n          Array.isArray(r) &#038;&#038; 0 < r.size &#038;&#038; g.logWarn(\"Rubicon: Error in video response\");\n          var o = [];\n          return d.seatbid.forEach(operate (n) {\n            (n.bid || []).forEach(operate (e) {\n              var r = ;\n              e.id &#038;&#038; (r.seatBidId = e.id), e.dealid &#038;&#038; (r.dealId = e.dealid);\n              var t,\n                  i = g.deepAccess(d, \"ext.responsetimemillis.rubicon\");\n              c &#038;&#038; i &#038;&#038; (c.serverResponseTimeMs = i), g.deepAccess(e, \"ext.prebid.kind\") === u.d ? (r.mediaType = u.d, (t = g.deepAccess(e, \"ext.prebid.focusing on\")) &#038;&#038; \"object\" === x(t) &#038;&#038; (r.adserverTargeting = t), e.ext.prebid.cache &#038;&#038; \"object\" === x(e.ext.prebid.cache.vastXml) &#038;&#038; e.ext.prebid.cache.vastXml.cacheId &#038;&#038; e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t &#038;&#038; t.hb_uuid &#038;&#038; t.hb_cache_host &#038;&#038; t.hb_cache_path &#038;&#038; (r.videoCacheKey = t.hb_uuid, r.vastUrl = \"https:\/\/\".concat(t.hb_cache_host).concat(t.hb_cache_path, \"?uuid=\").concat(t.hb_uuid)), e.adm &#038;&#038; (r.vastXml = e.adm), e.nurl &#038;&#038; (r.vastUrl = e.nurl), !r.vastUrl &#038;&#038; e.nurl &#038;&#038; (r.vastUrl = e.nurl)) : g.logWarn(\"Rubicon: video response acquired non-video media kind\"), o.push(r);\n            });\n          }), o;\n        }\n\n        var t = d.advertisements;\n        return \"object\" !== x(c) || Array.isArray(c) || \"video\" !== m(c) || \"object\" !== x(t) || (t = t[c.adUnitCode]), !Array.isArray(t) || t.size < 1 ? [] : t.cut back(operate (e, r, t) {\n          if (\"okay\" !== r.standing) return e;\n          var i,\n              n,\n              o,\n              a,\n              s = Array.isArray(c) ? c[t] : c;\n          return s &#038;&#038; \"object\" === x(s) ? (i = {\n            requestId: s.bidId,\n            foreign money: \"USD\",\n            creativeId: r.creative_id || \"\".concat(r.community || \"\"https:\/\/slate.com\/,\"-\").concat(r.advertiser || \"\"),\n            cpm: r.cpm || 0,\n            dealId: r.deal,\n            ttl: 300,\n            netRevenue: !1 !== b.b.getConfig(\"rubicon.netRevenue\"),\n            rubicon: {\n              advertiserId: r.advertiser,\n              networkId: r.community\n            },\n            meta: {\n              advertiserId: r.advertiser,\n              networkId: r.community\n            }\n          }, r.creative_type &#038;&#038; (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.top = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.advert = (o = r.script, a = r.impression_id, \"<html>n<head><script type=\"text\/javascript\">inDapIF=true;<\/script><\/head>n<body style=\"margin : 0; padding: 0;\">nx3c!-- Rubicon Mission Advert Tag --x3en<\/p>\n<div data-rp-impression-id='\".concat(a, \"'>n<script type=\"text\/javascript\">\").concat(o, \"<\/script>n<\/div>\n<p>n<\/body>n<\/html>\")), n = v(f[r.size_id].cut up(\"x\").map(operate (e) {<br \/>\n            return Quantity(e);<br \/>\n          }), 2), i.width = n[0], i.top = n[1]), i.rubiconTargeting = (Array.isArray(r.focusing on) ? r.focusing on : []).cut back(operate (e, r) {<br \/>\n            return e[r.key] = r.values[0], e;<br \/>\n          }, {<br \/>\n            rpfl_elemid: s.adUnitCode<br \/>\n          }), e.push(i)) : g.logError(\"Rubicon: bidRequest undefined at index place:\".concat(t), c, d), e;<br \/>\n        }, []).kind(operate (e, r) );<br \/>\n      },<br \/>\n      getUserSyncs: operate getUserSyncs(e, r, t, i) {<br \/>\n        if (!R && e.iframeEnabled) {<br \/>\n          var n = \"\";<br \/>\n          return t && \"string\" == typeof t.consentString && (\"boolean\" == typeof t.gdprApplies ? n += \"?gdpr=\".concat(Quantity(t.gdprApplies), \"&gdpr_consent=\").concat(t.consentString) : n += \"?gdpr_consent=\".concat(t.consentString)), i && (n += \"\".concat(n ? \"&\" : \"?\"https:\/\/slate.com\/,\"us_privacy=\").concat(encodeURIComponent(i))), R = !0, {<br \/>\n            kind: \"iframe\",<br \/>\n            url: a + n<br \/>\n          };<br \/>\n        }<br \/>\n      },<br \/>\n      transformBidParams: operate transformBidParams(e) {<br \/>\n        return g.convertTypes({<br \/>\n          accountId: \"quantity\",<br \/>\n          siteId: \"quantity\",<br \/>\n          zoneId: \"quantity\"<br \/>\n        }, e);<br \/>\n      }<br \/>\n    };<\/p>\n<p>    operate _(e, r) {<br \/>\n      var t,<br \/>\n          i = 0 < arguments.size &#038;&#038; void 0 !== e ? e : {},\n          n = 1 < arguments.size ? r : void 0;\n      if (!n || !d[n]) return null;\n      var o = d[n];\n\n      var a = operate () {\n        var e = g.deepAccess(i, \"userId.digitrustid.knowledge\");\n        if (e) return e;\n        var r = window.DigiTrust &#038;&#038; (b.b.getConfig(\"digiTrustId\") || window.DigiTrust.getUser({\n          member: \"T9QSFKPDN9\"\n        }));\n        return r &#038;&#038; r.success &#038;&#038; r.id || null;\n      }();\n\n      if (!a || a.privateness &#038;&#038; a.privateness.optout) return null;\n      var s = (p(t = {}, o.id, a.id), p(t, o.keyv, a.keyv), t);\n      return o.pref &#038;&#038; (s[o.pref] = 0), s;\n    }\n\n    operate I(e, r) \n\n    operate A(e, r) {\n      var t = e.params;\n\n      if (\"video\" === r) {\n        var i = [];\n        return t.video &#038;&#038; t.video.playerWidth &#038;&#038; t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(g.deepAccess(e, \"mediaTypes.video.playerSize\")) &#038;&#038; 1 === e.mediaTypes.video.playerSize.size ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) &#038;&#038; 0 < e.sizes.size &#038;&#038; Array.isArray(e.sizes[0]) &#038;&#038; 1 < e.sizes[0].size &#038;&#038; (i = e.sizes[0]), i;\n      }\n\n      var n = [];\n      return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== g.deepAccess(e, \"mediaTypes.banner.sizes\") ? n = s(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) &#038;&#038; 0 < e.sizes.size ? n = s(e.sizes) : g.logWarn(\"Rubicon: no sizes are setup or discovered\"), S(n);\n    }\n\n    operate s(e) {\n      return g.parseSizesInput(e).cut back(operate (e, r) {\n        var t = parseInt(f[r], 10);\n        return t &#038;&#038; e.push(t), e;\n      }, []);\n    }\n\n    operate c(e) {\n      return \"object\" === x(g.deepAccess(e, \"params.video\")) &#038;&#038; void 0 !== g.deepAccess(e, \"mediaTypes.\".concat(u.d));\n    }\n\n    operate m(e, r) {\n      var t = 1 < arguments.size &#038;&#038; void 0 !== r &#038;&#038; r;\n      return c(e) ? -1 === [\"outstream\"https:\/\/slate.com\/,\"instream\"].indexOf(g.deepAccess(e, \"mediaTypes.\".concat(u.d, \".context\"))) ? void (t &#038;&#038; g.logError(\"Rubicon: mediaTypes.video.context have to be outstream or instream\")) : A(e, \"video\").size < 2 ? void (t &#038;&#038; g.logError(\"Rubicon: couldn't decide the playerSize of the video\")) : (t &#038;&#038; g.logMessage(\"Rubicon: making video request for adUnit\", e.adUnitCode), \"video\") : 0 === A(e, \"banner\").size ? void (t &#038;&#038; g.logError(\"Rubicon: couldn't decide the sizes for banner request\")) : (t &#038;&#038; g.logMessage(\"Rubicon: making banner request for adUnit\", e.adUnitCode), \"banner\");\n    }\n\n    operate S(e) {\n      var n = [15, 2, 9];\n      return e.kind(operate (e, r)  -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r;\n      );\n    }\n\n    function C(e) {\n      var r = parseInt(g.deepAccess(e, \"params.video.size_id\"));\n      return isNaN(r) ? \"outstream\" === g.deepAccess(e, \"mediaTypes.\".concat(u.d, \".context\")) ? 203 : 201 : r;\n    }\n\n    function j(e) {\n      return {\n        ranges: {\n          low: [{\n            max: 5,\n            increment: .5\n          }],\n          medium: [{\n            max: 20,\n            increment: .1\n          }],\n          high: [{\n            max: 20,\n            increment: .01\n          }],\n          auto: [{\n            max: 5,\n            increment: .05\n          }, {\n            min: 5,\n            max: 10,\n            increment: .1\n          }, {\n            min: 10,\n            max: 20,\n            increment: .5\n          }],\n          dense: [{\n            max: 3,\n            increment: .01\n          }, {\n            min: 3,\n            max: 8,\n            increment: .05\n          }, {\n            min: 8,\n            max: 20,\n            increment: .5\n          }],\n          custom: e.getConfig(\"customPriceBucket\") &#038;&#038; e.getConfig(\"customPriceBucket\").buckets\n        }[e.getConfig(\"priceGranularity\")]\n      };\n    }\n\n    function k(r) {\n      var t = !0,\n          e = Object.prototype.toString.call([]),\n          i = Object.prototype.toString.call(0),\n          n = {\n        mimes: e,\n        protocols: e,\n        maxduration: i,\n        linearity: i,\n        api: e\n      };\n      return Object.keys(n).forEach(function (e) {\n        Object.prototype.toString.call(g.deepAccess(r, \"mediaTypes.video.\" + e)) !== n[e] &#038;&#038; (t = !1, g.logError(\"Rubicon: mediaTypes.video.\" + e + \" is required and must be of type: \" + n[e]));\n      }), t;\n    }\n\n    function T(e) {\n      var r = !1,\n          t = [\"asi\"https:\/\/slate.com\/,\"sid\"https:\/\/slate.com\/,\"hp\"];\n      return e.nodes &#038;&#038; ((r = e.nodes.reduce(function (e, r) {\n        return e ? t.every(function (e) {\n          return r[e];\n        }) : e;\n      }, !0)) || g.logError(\"Rubicon: required schain params missing\")), r;\n    }\n\n    function w(e, r) {\n      return \"rp_schain\" === e ? \"rp_schain=\".concat(r) : \"\".concat(e, \"=\").concat(encodeURIComponent(r));\n    }\n\n    var R = !1;\n    Object(i.registerBidder)(h);\n  }\n}, [677]);\npbjsChunk([93], {\n  719: function _(e, t, r) {\n    e.exports = r(720);\n  },\n  720: function _(e, t, r) {\n    \"use strict\";\n\n    Object.defineProperty(t, \"__esModule\", {\n      value: !0\n    }), r.d(t, \"spec\", function () {\n      return o;\n    }), r.d(t, \"_isInbounds\", function () {\n      return a;\n    }), t._getPlatform = v;\n    var n = r(1),\n        y = r(0),\n        i = r(2),\n        c = r(3),\n        g = r(10),\n        d = r(44);\n\n    function h(e, t) {\n      return function (e) {\n        if (Array.isArray(e)) return e;\n      }(e) || function (e, t) {\n        if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n        var r = [],\n            n = !0,\n            i = !1,\n            s = void 0;\n\n        try {\n          for (var o, a = e[Symbol.iterator](); !(n = (o = a.next()).done) &#038;&#038; (r.push(o.value), !t || r.length !== t); n = !0) {\n            ;\n          }\n        } catch (e) {\n          i = !0, s = e;\n        } finally {\n          try  finally {\n            if (i) throw s;\n          }\n        }\n\n        return r;\n      }(e, t) || function (e, t) (e, t) || function () {\n        throw new TypeError(\"Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n      }();\n    }\n\n    function s(e, t) {\n      (null == t || t > e.size) && (t = e.size);<\/p>\n<p>      for (var r = 0, n = new Array(t); r < t; r++) {\n        n[r] = e[r];\n      }\n\n      return n;\n    }\n\n    operate u() {\n      return (u = Object.assign || operate (e) {\n        for (var t = 1; t < arguments.size; t++) {\n          var r = arguments[t];\n\n          for (var n in r) {\n            Object.prototype.hasOwnProperty.name(r, n) &#038;&#038; (e[n] = r[n]);\n          }\n        }\n\n        return e;\n      }).apply(this, arguments);\n    }\n\n    operate p(e, t, r) {\n      return t in e ? Object.defineProperty(e, t, {\n        worth: r,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : e[t] = r, e;\n    }\n\n    var b = \"sonobi\",\n        l = Object(y.generateUUID)(),\n        o = {\n      code: b,\n      supportedMediaTypes: [i.b, i.d],\n      isBidRequestValid: operate isBidRequestValid(e) {\n        if (!e.params) return !1;\n        if (!e.params.ad_unit &#038;&#038; !e.params.placement_id) return !1;\n        if (!Object(y.deepAccess)(e, \"mediaTypes.banner\") &#038;&#038; !Object(y.deepAccess)(e, \"mediaTypes.video\")) return !1;\n\n        if (Object(y.deepAccess)(e, \"mediaTypes.banner\")) {\n          if (!Object(y.deepAccess)(e, \"mediaTypes.banner.sizes\") &#038;&#038; !e.params.sizes) return !1;\n        } else if (Object(y.deepAccess)(e, \"mediaTypes.video\")) {\n          if (\"outstream\" === Object(y.deepAccess)(e, \"mediaTypes.video.context\") &#038;&#038; !e.params.sizes) return !1;\n          if (\"instream\" === Object(y.deepAccess)(e, \"mediaTypes.video.context\") &#038;&#038; !Object(y.deepAccess)(e, \"mediaTypes.video.playerSize\")) return !1;\n        }\n\n        return !0;\n      },\n      buildRequests: operate buildRequests(e, t) {\n        var r = e.map(operate (e) {\n          var t = operate (e) {\n            if (e.params.ad_unit) return e.params.ad_unit;\n            return e.params.placement_id;\n          }(e);\n\n          return \/^[\/]?[d]+[[\/].+[\/]?]?$\/.take a look at(t) ? (t = \"\/\" === t.charAt(0) ? t : \"\/\" + t, p({}, \"\".concat(t, \"|\").concat(e.bidId), \"\".concat(f(e)).concat(m(e)))) : \/^[0-9a-fA-F]{20}$\/.take a look at(t) &#038;&#038; 20 === t.size ? p({}, e.bidId, \"\".concat(t, \"|\").concat(f(e)).concat(m(e))) : void Object(y.logError)(\"The advert unit code or Sonobi Placement id for slot \".concat(e.bidId, \" is invalid\"));\n        }),\n            n = {};\n        r.forEach(operate (e) {\n          u(n, e);\n        });\n        var i = {\n          key_maker: JSON.stringify(n),\n          ref: t.refererInfo.referer,\n          s: Object(y.generateUUID)(),\n          pv: l,\n          vp: v(),\n          lib_name: \"prebid\",\n          lib_v: \"3.23.0\",\n          us: 0\n        };\n        c.b.getConfig(\"userSync\") &#038;&#038; c.b.getConfig(\"userSync\").syncsPerBidder &#038;&#038; (i.us = c.b.getConfig(\"userSync\").syncsPerBidder), d.a.canBidderRegisterSync(\"iframe\", b) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], \"params.hfa\") &#038;&#038; (i.hfa = Object(y.deepAccess)(e[0], \"params.hfa\")), e[0].params.referrer &#038;&#038; (i.ref = e[0].params.referrer), t &#038;&#038; t.gdprConsent &#038;&#038; (i.gdpr = t.gdprConsent.gdprApplies ? \"true\" : \"false\", t.gdprConsent.consentString &#038;&#038; (i.consent_string = t.gdprConsent.consentString));\n\n        var s = operate (t) {\n          var e = operate () {\n            var e = window.DigiTrust &#038;&#038; (c.b.getConfig(\"digiTrustId\") || window.DigiTrust.getUser({\n              member: t\n            }));\n            return e &#038;&#038; e.success &#038;&#038; e.id || null;\n          }();\n\n          if (!e || e.privateness &#038;&#038; e.privateness.optout) return null;\n          return e;\n        }(\"fhnS5drwmH\");\n\n        s &#038;&#038; (i.digid = s.id, i.digkeyv = s.keyv), e[0].schain &#038;&#038; (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], \"userId\") &#038;&#038; 0 < Object.keys(e[0].userId).size &#038;&#038; (i.userid = JSON.stringify(e[0].userId));\n        var o = e[0].params.key phrases;\n        if (o &#038;&#038; (i.kw = o), t &#038;&#038; t.uspConsent &#038;&#038; (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null;\n        var a = \"https:\/\/apex.go.sonobi.com\/trinity.json\";\n        return Object(y.deepAccess)(e[0], \"params.bid_request_url\") &#038;&#038; (a = Object(y.deepAccess)(e[0], \"params.bid_request_url\")), {\n          methodology: \"GET\",\n          url: a,\n          withCredentials: !0,\n          knowledge: i,\n          bidderRequests: e\n        };\n      },\n      interpretResponse: operate interpretResponse(e, l) {\n        var f = e.physique,\n            m = [],\n            v = l.knowledge.ref;\n        return 0 === Object.keys(f.slots).size || Object.keys(f.slots).forEach(operate (e) {\n          var t = f.slots[e],\n              r = e.cut up(\"|\").slice(-1)[0],\n              n = operate (e, t) {\n            for (var r = 0; r < e.size; r++) {\n              if (e[r].bidId === t) return e[r];\n            }\n          }(l.bidderRequests, r),\n              i = null;\n\n          \"video\" === t.sbi_ct &#038;&#038; (i = \"video\"https:\/\/slate.com\/,\"outstream\" === Object(y.deepAccess)(n, \"mediaTypes.video.context\") &#038;&#038; (i = \"outstream\"));\n          var s,\n              o,\n              a,\n              c,\n              d,\n              u,\n              p,\n              b = j(i, v);\n          t.sbi_aid &#038;&#038; t.sbi_mouse &#038;&#038; t.sbi_size &#038;&#038; (a = void 0 === (o = (s = h(t.sbi_size.cut up(\"x\"), 2))[0]) ? 1 : o, d = void 0 === (c = s[1]) ? 1 : c, u = , t.sbi_dozer &#038;&#038; (u.dealId = t.sbi_dozer), \"video\" === i ? (u.mediaType = \"video\", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.advert, delete u.width, delete u.top) : \"outstream\" === i &#038;&#038; n &#038;&#038; (u.mediaType = \"video\", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = operate (e, t) {\n            var r = 2 < arguments.size &#038;&#038; void 0 !== arguments[2] ? arguments[2] : {},\n                n = g.a.set up({\n              id: t.support,\n              url: \"https:\/\/mtrx.go.sonobi.com\/sbi_outstream_renderer.js\",\n              config: r,\n              loaded: !1,\n              adUnitCode: e\n            });\n\n            strive {\n              n.setRender(O);\n            } catch (e) {\n              Object(y.logWarn)(\"Prebid Error calling setRender on renderer\", e);\n            }\n\n            return n.setEventHandlers({\n              impression: operate impression() {\n                return Object(y.logMessage)(\"Sonobi outstream video impression occasion\");\n              },\n              loaded: operate loaded() {\n                return Object(y.logMessage)(\"Sonobi outstream video loaded occasion\");\n              },\n              ended: operate ended() {\n                Object(y.logMessage)(\"Sonobi outstream renderer video occasion\");\n              }\n            }), n;\n          }(n.adUnitCode, u, Object(y.deepAccess)(n, \"renderer.choices\")), p = Object(y.deepAccess)(n, \"params.sizes\"), Array.isArray(p) &#038;&#038; Array.isArray(p[0]) &#038;&#038; (p = p[0]), p &#038;&#038; (u.width = p[0], u.top = p[1])), m.push(u));\n        }), m;\n      },\n      getUserSyncs: operate getUserSyncs(e, t) {\n        var r = [];\n\n        strive {\n          e.pixelEnabled &#038;&#038; t[0].physique.sbi_px.forEach(operate (e) {\n            r.push({\n              kind: e.kind,\n              url: e.url\n            });\n          });\n        } catch (e) {}\n\n        return r;\n      }\n    };\n\n    operate f(e) {\n      return Object(y.deepAccess)(e, \"mediaTypes.video\") ? \"\" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).be a part of(\",\") : Object(y.deepAccess)(e, \"mediaTypes.banner.sizes\") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, \"mediaTypes.banner.sizes\")).be a part of(\",\") : e.sizes ? Object(y.parseSizesInput)(e.sizes).be a part of(\",\") : void 0;\n    }\n\n    operate m(e) f=\".concat(e.params.flooring) : \"\";\n    \n\n    var j = operate j(i, s) {\n      return operate (e, t) ;\n    };\n\n    var a = operate a(e) {\n      var r = 0 < arguments.size &#038;&#038; void 0 !== e ? e : window;\n      return operate () {\n        var e = 0 < arguments.size &#038;&#038; void 0 !== arguments[0] ? arguments[0] : 0,\n            t = 1 < arguments.length &#038;&#038; void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER;\n        return r.innerWidth >= e && r.innerWidth < t;\n      };\n    };\n\n    operate v() {\n      var e = 0 < arguments.size &#038;&#038; void 0 !== arguments[0] ? arguments[0] : window,\n          t = a(e),\n          r = 992,\n          n = 768;\n      return t(0, 768) ? \"cell\" : t(n, r) ? \"pill\" : \"desktop\";\n    }\n\n    operate O(i) {\n      i.renderer.push(operate () {\n        var e = h(i.getSize().cut up(\"x\"), 2),\n            t = e[0],\n            r = e[1],\n            n = new window.SbiOutstreamRenderer();\n        n.init({\n          vastUrl: i.vastUrl,\n          top: r,\n          width: t\n        }), n.setRootElement(i.adUnitCode);\n      });\n    }\n\n    Object(n.registerBidder)(o);\n  }\n}, [719]);\npbjsChunk([85], {\n  741: operate _(e, r, t) {\n    e.exports = t(742);\n  },\n  742: operate _(e, r, t) {\n    \"use strict\";\n\n    Object.defineProperty(r, \"__esModule\", {\n      worth: !0\n    }), t.d(r, \"spec\", operate () {\n      return n;\n    });\n    var a = t(1),\n        d = t(0),\n        p = 12,\n        o = 11,\n        c = 0,\n        u = 22,\n        n = {\n      code: \"teads\",\n      supportedMediaTypes: [\"video\"https:\/\/slate.com\/,\"banner\"],\n      isBidRequestValid: operate isBidRequestValid(e)  d.logError(\"Teads placementId and pageId parameters are required. Bid aborted.\"), a;\n      ,\n      buildRequests: operate buildRequests(e, r) {\n        var t = e.map(I),\n            a = {\n          referrer: operate (e) {\n            var r = \"\";\n            e &#038;&#038; e.refererInfo &#038;&#038; e.refererInfo.referer &#038;&#038; (r = e.refererInfo.referer);\n            return r;\n          }(r),\n          knowledge: t,\n          deviceWidth: display screen.width,\n          hb_version: \"3.23.0\"\n        };\n        e[0].schain &#038;&#038; (a.schain = e[0].schain);\n        var n,\n            d,\n            i,\n            s = r.gdprConsent;\n        return r &#038;&#038; s &#038;&#038; (n = \"boolean\" == typeof s.gdprApplies, d = \"string\" == typeof s.consentString, i = n ? operate (e, r, t) {\n          var a = p;\n          e ? operate (e, r) (r, t) &#038;&#038; (a = o) : a = c;\n          return a;\n        }(s.gdprApplies, s.vendorData, s.apiVersion) : u, a.gdpr_iab = {\n          consent: d ? s.consentString : \"\",\n          standing: i,\n          apiVersion: s.apiVersion\n        }), r &#038;&#038; r.uspConsent &#038;&#038; (a.us_privacy = r.uspConsent), {\n          methodology: \"POST\",\n          url: \"https:\/\/a.teads.television\/hb\/bid-request\",\n          knowledge: JSON.stringify(a)\n        };\n      },\n      interpretResponse: operate interpretResponse(e) {\n        var t = [];\n        return (e = e.physique).responses &#038;&#038; e.responses.forEach(operate (e) {\n          var r = {\n            cpm: e.cpm,\n            width: e.width,\n            top: e.top,\n            foreign money: e.foreign money,\n            netRevenue: !0,\n            ttl: e.ttl,\n            advert: e.advert,\n            requestId: e.bidId,\n            creativeId: e.creativeId,\n            placementId: e.placementId\n          };\n          e.dealId &#038;&#038; (r.dealId = e.dealId), t.push(r);\n        }), t;\n      }\n    };\n\n    operate I(e) {\n      var r,\n          t = {},\n          a = d.getValue(e.params, \"placementId\"),\n          n = d.getValue(e.params, \"pageId\");\n      return t.sizes = (r = e, d.parseSizesInput(operate (e) {\n        var r = d.deepAccess(e, \"mediaTypes.video.playerSize\"),\n            t = d.deepAccess(e, \"mediaTypes.video.sizes\"),\n            a = d.deepAccess(e, \"mediaTypes.banner.sizes\");\n        return d.isArray(a) || d.isArray(r) || d.isArray(t) ? [a, t, r].cut back(operate (r, e) {\n          return d.isArray(e) &#038;&#038; (d.isArray(e[0]) ? e.forEach(operate (e) {\n            r.push(e);\n          }) : r.push(e)), r;\n        }, []) : e.sizes;\n      }(r))), t.bidId = d.getBidIdParameter(\"bidId\", e), t.bidderRequestId = d.getBidIdParameter(\"bidderRequestId\", e), t.placementId = parseInt(a, 10), t.pageId = parseInt(n, 10), t.adUnitCode = d.getBidIdParameter(\"adUnitCode\", e), t.auctionId = d.getBidIdParameter(\"auctionId\", e), t.transactionId = d.getBidIdParameter(\"transactionId\", e), t;\n    }\n\n    operate i(e) {\n      return 0 < parseInt(e);\n    }\n\n    Object(a.registerBidder)(n);\n  }\n}, [741]);\npbjsChunk([76], {\n  761: function _(r, e, t) {\n    r.exports = t(762);\n  },\n  762: function _(r, e, t) {\n    \"use strict\";\n\n    Object.defineProperty(e, \"__esModule\", {\n      value: !0\n    }), t.d(e, \"tripleliftAdapterSpec\", function () {\n      return s;\n    });\n    var n = t(2),\n        i = t(1),\n        o = t(0),\n        u = t(3);\n\n    function p(r) {\n      return function (r) {\n        if (Array.isArray(r)) return d(r);\n      }(r) || function (r) {\n        if (\"undefined\" != typeof Symbol &#038;&#038; Symbol.iterator in Object(r)) return Array.from(r);\n      }(r) || function (r, e) (r) || function () {\n        throw new TypeError(\"Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n      }();\n    }\n\n    function d(r, e) {\n      (null == e || e > r.size) && (e = r.size);<\/p>\n<p>      for (var t = 0, n = new Array(e); t < e; t++) {\n        n[t] = r[t];\n      }\n\n      return n;\n    }\n\n    var a = !0,\n        c = null,\n        s = {\n      code: \"triplelift\",\n      supportedMediaTypes: [n.b],\n      isBidRequestValid: operate isBidRequestValid(r) {\n        return void 0 !== r.params.inventoryCode;\n      },\n      buildRequests: operate buildRequests(r, e) {\n        var t,\n            n = \"https:\/\/tlx.3lift.com\/header\/public sale?\",\n            i = operate (r) {\n          var e = {},\n              t = r[0].schain;\n          e.imp = r.map(operate (r, e) {\n            return {\n              id: e,\n              tagid: r.params.inventoryCode,\n              flooring: r.params.flooring,\n              banner: {\n                format: r.sizes.filter(l).map(operate (r) {\n                  return {\n                    w: r[0],\n                    h: r[1]\n                  };\n                })\n              }\n            };\n          });\n          var n = [].concat(p(operate (r) {\n            return f(r, \"tdid\"https:\/\/slate.com\/,\"adserver.org\"https:\/\/slate.com\/,\"TDID\");\n          }(r)), p(operate (r) {\n            return f(r, \"idl_env\"https:\/\/slate.com\/,\"liveramp.com\"https:\/\/slate.com\/,\"idl\");\n          }(r)), p(operate (r) {\n            return f(r, \"criteoId\"https:\/\/slate.com\/,\"criteo.com\"https:\/\/slate.com\/,\"criteoId\");\n          }(r)));\n          0 < n.size &#038;&#038; (e.consumer = {\n            ext: {\n              eids: n\n            }\n          });\n          t &#038;&#038; (e.ext = {\n            schain: t\n          });\n          return e;\n        }(r);\n\n        return n = o.tryAppendQueryString(n, \"lib\"https:\/\/slate.com\/,\"prebid\"), n = o.tryAppendQueryString(n, \"v\"https:\/\/slate.com\/,\"3.23.0\"), e &#038;&#038; e.refererInfo &#038;&#038; (t = e.refererInfo.referer, n = o.tryAppendQueryString(n, \"referrer\", t)), e &#038;&#038; e.timeout &#038;&#038; (n = o.tryAppendQueryString(n, \"tmax\", e.timeout)), e &#038;&#038; e.gdprConsent &#038;&#038; (void 0 !== e.gdprConsent.gdprApplies &#038;&#038; (a = e.gdprConsent.gdprApplies, n = o.tryAppendQueryString(n, \"gdpr\", a.toString())), void 0 !== e.gdprConsent.consentString &#038;&#038; (c = e.gdprConsent.consentString, n = o.tryAppendQueryString(n, \"cmp_cs\", c))), e &#038;&#038; e.uspConsent &#038;&#038; (n = o.tryAppendQueryString(n, \"us_privacy\", e.uspConsent)), !0 === u.b.getConfig(\"coppa\") &#038;&#038; (n = o.tryAppendQueryString(n, \"coppa\", !0)), n.lastIndexOf(\"&#038;\") === n.size - 1 &#038;&#038; (n = n.substring(0, n.size - 1)), o.logMessage(\"tlCall request constructed: \" + n), {\n          methodology: \"POST\",\n          url: n,\n          knowledge: i,\n          bidderRequest: e\n        };\n      },\n      interpretResponse: operate interpretResponse(r, e) {\n        var t = e.bidderRequest;\n        return (r.physique.bids || []).map(operate (r) {\n          return operate (r, e) {\n            var t = {},\n                n = e.width || 1,\n                i = e.top || 1,\n                u = e.deal_id || \"\",\n                o = e.crid || \"\";\n            0 != e.cpm &#038;&#038; e.advert &#038;&#038; (t = {\n              requestId: r.bids[e.imp_id].bidId,\n              cpm: e.cpm,\n              width: n,\n              top: i,\n              netRevenue: !0,\n              advert: e.advert,\n              creativeId: o,\n              dealId: u,\n              foreign money: \"USD\",\n              ttl: 300,\n              tl_source: e.tl_source\n            });\n            return t;\n          }(t, r);\n        });\n      },\n      getUserSyncs: operate getUserSyncs(r, e, t, n) {\n        var i = operate (r) {\n          if (!r) return;\n          if (r.iframeEnabled) return \"iframe\";\n          if (r.pixelEnabled) return \"picture\";\n        }(r);\n\n        if (i) {\n          var u = \"https:\/\/eb2.3lift.com\/sync?\";\n          return \"picture\" === i &#038;&#038; (u = o.tryAppendQueryString(u, \"px\", 1), u = o.tryAppendQueryString(u, \"src\"https:\/\/slate.com\/,\"prebid\")), null !== c &#038;&#038; (u = o.tryAppendQueryString(u, \"gdpr\", a), u = o.tryAppendQueryString(u, \"cmp_cs\", c)), n &#038;&#038; (u = o.tryAppendQueryString(u, \"us_privacy\", n)), [{\n            type: i,\n            url: u\n          }];\n        }\n      }\n    };\n\n    operate f(r, e, t, n) {\n      return r.map((o = e, operate (r) {\n        return r &#038;&#038; r.userId &#038;&#038; r.userId[o];\n      })).filter(operate (r) {\n        return !!r;\n      }).map((i = t, u = n, operate (r) {\n        return {\n          supply: i,\n          uids: [{\n            id: r,\n            ext: {\n              rtiPartner: u\n            }\n          }]\n        };\n      }));\n      var i, u, o;\n    }\n\n    operate l(r) {\n      return 2 === r.size &#038;&#038; \"quantity\" == typeof r[0] &#038;&#038; \"quantity\" == typeof r[1];\n    }\n\n    Object(i.registerBidder)(s);\n  }\n}, [761]);\npbjsChunk([75], {\n  763: operate _(e, r, t) {\n    e.exports = t(764);\n  },\n  764: operate _(e, r, t) {\n    \"use strict\";\n\n    Object.defineProperty(r, \"__esModule\", {\n      worth: !0\n    }), t.d(r, \"spec\", operate () {\n      return v;\n    });\n    var m = t(0),\n        s = t(1),\n        o = t(10),\n        c = t(2),\n        f = \"Bid from response has no auid parameter - \",\n        l = \"Bid from response has no adm parameter - \",\n        p = \"Array of bid objects is empty\",\n        g = \"Cannot discover in requested bids the bid with auid - \",\n        u = \"Seatbid array from response has empty merchandise\",\n        y = \"Response is empty\",\n        b = \"Response has empty seatbid array\",\n        h = \"Seatbid from response has no array of bid objects - \",\n        v = {\n      code: \"trustx\",\n      supportedMediaTypes: [c.b, c.d],\n      isBidRequestValid: operate isBidRequestValid(e) {\n        return !!e.params.uid;\n      },\n      buildRequests: operate buildRequests(e, r) {\n        var a,\n            o,\n            p = [],\n            u = {},\n            c = {},\n            f = {},\n            l = \"internet\";\n        (e || []).forEach(operate (e) {\n          \"gross\" === e.params.priceType &#038;&#038; (l = \"gross\"), o = e.bidderRequestId;\n          var r = e.params.uid,\n              t = e.adUnitCode;\n          p.push(r);\n          var s,\n              n = m.parseSizesInput(e.sizes);\n          a || m.isEmpty(e.params.key phrases) || (0 < (s = m.transformBidderParamKeywords(e.params.key phrases)).size &#038;&#038; s.forEach(E), a = s), c[r] || (c[r] = {});\n          var d = c[r];\n          d[t] ? d[t].bids.push(e) : d[t] = {\n            adUnitCode: t,\n            bids: [e],\n            mother and father: []\n          };\n          var i = d[t];\n          n.forEach(operate (e) {\n            f[e] = !0, u[r] || (u[r] = {}), u[r][e] ? u[r][e].push(i) : u[r][e] = [i], i.mother and father.push({\n              guardian: u[r],\n              key: e,\n              uid: r\n            });\n          });\n        });\n        var t = {\n          pt: l,\n          auids: p.be a part of(\",\"),\n          sizes: m.getKeys(f).be a part of(\",\"),\n          r: o,\n          wrapperType: \"Prebid_js\",\n          wrapperVersion: \"3.23.0\"\n        };\n        return a &#038;&#038; (t.key phrases = JSON.stringify(a)), r &#038;&#038; (r.refererInfo &#038;&#038; r.refererInfo.referer &#038;&#038; (t.u = r.refererInfo.referer), r.timeout &#038;&#038; (t.wtimeout = r.timeout), r.gdprConsent &#038;&#038; (r.gdprConsent.consentString &#038;&#038; (t.gdpr_consent = r.gdprConsent.consentString), t.gdpr_applies = \"boolean\" == typeof r.gdprConsent.gdprApplies ? Quantity(r.gdprConsent.gdprApplies) : 1), r.uspConsent &#038;&#038; (t.us_privacy = r.uspConsent)), {\n          methodology: \"GET\",\n          url: \"https:\/\/sofia.trustx.org\/hb\",\n          knowledge: m.parseQueryStringParameters(t).substitute(\/&#038;$\/, \"\"),\n          bidsMap: u\n        };\n      },\n      interpretResponse: operate interpretResponse(e, r, t) {\n        var s = 2 < arguments.size &#038;&#038; void 0 !== t ? t : o.a;\n        e = e &#038;&#038; e.physique;\n        var n,\n            d = [],\n            i = r.bidsMap,\n            a = r.knowledge.pt;\n        return e ? e.seatbid &#038;&#038; !e.seatbid.size &#038;&#038; (n = b) : n = y, !n &#038;&#038; e.seatbid &#038;&#038; e.seatbid.forEach(operate (e) {\n          !operate (e, d, r, t, s) {\n            if (!e) return;\n            var n;\n            e.auid || (n = f + JSON.stringify(e));\n            {\n              var i, a, o, p, u;\n              e.adm ? (i = d[e.auid]) ? (a = \"\".concat(e.w, \"x\").concat(e.h), i[a] &#038;&#038; (o = i[a][0], p = o.bids.shift(), u = {\n                requestId: p.bidId,\n                bidderCode: v.code,\n                cpm: e.value,\n                width: e.w,\n                top: e.h,\n                creativeId: e.auid,\n                foreign money: \"USD\",\n                netRevenue: \"gross\" !== r,\n                ttl: 360,\n                dealId: e.dealid\n              }, \"video\" === e.content_type ? (u.vastXml = e.adm, u.mediaType = c.d, u.adResponse = {\n                content material: u.vastXml\n              }, p.renderer || p.mediaTypes &#038;&#038; p.mediaTypes.video &#038;&#038; \"outstream\" !== p.mediaTypes.video.context || (u.renderer = operate (e, r) {\n                var t = r.set up({\n                  id: e.id,\n                  url: e.url,\n                  loaded: !1\n                });\n\n                strive {\n                  t.setRender(w);\n                } catch (e) {\n                  m.logWarn(\"Prebid Error calling setRender on renderer\", e);\n                }\n\n                return t;\n              }({\n                id: p.bidId,\n                url: \"https:\/\/acdn.adnxs.com\/video\/outstream\/ANOutstreamVideo.js\"\n              }, s))) : (u.advert = e.adm, u.mediaType = c.b), t.push(u), o.bids.size || o.mother and father.forEach(operate (e)  (delete r[t], m.getKeys(r).size ))) : n = g + e.auid : n = l + JSON.stringify(e);\n            }\n            n &#038;&#038; m.logError(n);\n          }(operate (e) (e), i, a, d, s);\n        }), n &#038;&#038; m.logError(n), d;\n      },\n      getUserSyncs: operate getUserSyncs(e) {\n        if (e.pixelEnabled) return [{\n          type: \"image\",\n          url: \"https:\/\/sofia.trustx.org\/push_sync\"\n        }];\n      }\n    };\n\n    operate E(e) {\n      var r;\n      r = e.worth, m.isArray(r) &#038;&#038; 0 < r.size &#038;&#038; \"\" === e.worth[0] &#038;&#038; delete e.worth;\n    }\n\n    operate w(e) {\n      e.renderer.push(operate () {\n        window.ANOutstreamVideo.renderAd({\n          targetId: e.adUnitCode,\n          adResponse: e.adResponse\n        });\n      });\n    }\n\n    Object(s.registerBidder)(v);\n  }\n}, [763]);\npbjs.processQueue();\n}, {}];\nwindow.modules[\"via.legacy\"] = [function(require,module,exports){\"use strict\";\n\nDS.service(\"via\", function () {\n  \"use strict\"; \/\/ remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls\n\n  function removeFromLocation() {\n    var url = new URL(location.href);\n    url.searchParams.delete(\"via\");\n    history.replaceState(null, \"\", url.toString());\n  } \/\/ and add `via` param to any outbound links\n\n\n  function addViaToUrl(href, via) {\n    if (!href || href.substr(0, 1) === \"#\") {\n      return href; \/\/ don't add to jumps on the current page, e.g. \"Skip to main content\"\n    }\n\n    var url = new URL(href);\n    var apexDomain = new URL(location.href).hostname.split(\".\").slice(-2).join(\".\");\n\n    if (url.hostname.indexOf(apexDomain) === -1) {\n      return href; \/\/ don't add it to external links\n    }\n\n    url.searchParams.set(\"via\", via);\n    return url.toString();\n  } \/\/ keys correspond to \"page_types\" in editable_components.yml\n\n\n  var PREFIXES = {\n    article: \"article\",\n    homepage: \"homepage\",\n    \"vertical front\": \"section\",\n    \"rubric front\": \"rubric\"\n  };\n  var pageType;\n\n  function setPageType(amplitudePageType) {\n    pageType = PREFIXES[amplitudePageType];\n  }\n\n  var DELIMITER = \"_\";\n\n  operate concatVia(node, by way of) {\n    var tag = node.dataset &#038;&#038; node.dataset.by way of;\n\n    if (tag) {\n      by way of = (by way of.size ? tag + DELIMITER : tag) + by way of;\n    }\n\n    return by way of;\n  }\n\n  operate addToClickedLinks() {\n    doc.documentElement.addEventListener(\"click on\", operate (e) {\n      var a;\n      var by way of = \"\"; \/\/ detect hyperlink nodes and gather by way of directives to append to the href\n\n      var node = e.goal; \/\/ the factor the place this occasion originated could have been faraway from the dom, e.g. within the case of the OIL CMP which disappears after you work together with it\n\n      whereas (node &#038;&#038; node !== e.currentTarget) {\n        if (node.tagName === \"A\") {\n          a = node;\n        }\n\n        by way of = concatVia(node, by way of);\n        node = node.parentNode;\n      }\n\n      if (a &#038;&#038; by way of) {\n        if (pageType) {\n          by way of = pageType + DELIMITER + by way of;\n        }\n\n        a.href = addViaToUrl(a.href, by way of);\n      }\n    });\n  }\n\n  operate addToSubmittedForms() {\n    doc.documentElement.addEventListener(\"submit\", operate (e) {\n      var kind = e.goal; \/\/ gather by way of directives\n\n      var by way of = \"\";\n      var node = e.goal;\n\n      whereas (node !== e.currentTarget) {\n        by way of = concatVia(node, by way of);\n        node = node.parentNode;\n      }\n\n      if (by way of) {\n        if (pageType) {\n          by way of = pageType + DELIMITER + by way of;\n        } \/\/ dynamically create a hidden enter for the shape url\n\n\n        var enter = doc.createElement(\"enter\");\n        enter.kind = \"hidden\";\n        enter.title = \"by way of\";\n        enter.worth = by way of;\n        kind.appendChild(enter);\n      }\n    });\n  } \/\/ begin listening solely as soon as, when first injected\n\n\n  addToClickedLinks();\n  addToSubmittedForms();\n  return {\n    setPageType: setPageType,\n    removeFromLocation: removeFromLocation\n  };\n});\n}, {}];\nwindow.modules[\"visibility.legacy\"] = [operate(require,module,exports){\"use strict\";\n\nDS.service(\"$visibility\", [\"$doc\"https:\/\/slate.com\/,\"$window\"https:\/\/slate.com\/,\"_throttle\"https:\/\/slate.com\/,\"Eventify\", operate ($doc, $window, _throttle, Eventify) {\n  var checklist = [],\n      Seen,\n      VisibleEvent;\n  \/**\n   * @param {quantity} a\n   * @param {quantity} b\n   * @returns {*}\n   * @see http:\/\/jsperf.com\/math-min-vs-if-condition-vs\/8\n   *\/\n\n  operate min(a, b) {\n    return a < b ? a : b;\n  }\n  \/**\n   * @param {number} a\n   * @param {number} b\n   * @returns {*}\n   * @see http:\/\/jsperf.com\/math-min-vs-if-condition-vs\/8\n   *\/\n\n\n  function max(a, b) {\n    return a > b ? a : b;<br \/>\n  }<br \/>\n  \/**<br \/>\n   * Quick loop by watched components<br \/>\n   *\/<\/p>\n<p>  operate onScroll() {<br \/>\n    checklist.forEach(updateVisibility);<br \/>\n  }<br \/>\n  \/**<br \/>\n   * updates seen property<br \/>\n   * @param  {Visble} merchandise<br \/>\n   * @param  {{}} evt<br \/>\n   * @fires Seen#proven<br \/>\n   * @fires Seen#hidden<br \/>\n   *\/<\/p>\n<p>  operate updateSeen(merchandise, evt) {<br \/>\n    var px = evt.visiblePx,<br \/>\n        p.c = evt.visiblePercent; \/\/ if some pixels are seen and we're higher\/equal to threshold<\/p>\n<p>    if (px && p.c >= merchandise.shownThreshold && !merchandise.seen) {<br \/>\n      merchandise.seen = true;<br \/>\n      setTimeout(operate () {<br \/>\n        merchandise.set off(\"proven\", new VisibleEvent(\"proven\", evt));<br \/>\n      }, 15); \/\/ if no pixels or p.c is lower than threshold<br \/>\n    } else if ((!px || p.c < item.hiddenThreshold) &#038;&#038; item.seen) {\n      item.seen = false;\n      setTimeout(function () {\n        item.trigger(\"hidden\", new VisibleEvent(\"hidden\", evt));\n      }, 15);\n    }\n  }\n  \/**\n   * sets preload property\n   * @param  {Visible} item\n   * @param  {{}} evt\n   * @param  {Number} innerHeight\n   * @fires Visible#preload\n   *\/\n\n\n  function updatePreload(item, evt, innerHeight) {\n    if (!item.preload &#038;&#038; item.preloadThreshhold &#038;&#038; shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight)) {\n      item.preload = true;\n      setTimeout(function () {\n        item.trigger(\"preload\", new VisibleEvent(\"preload\", evt));\n      }, 15);\n    }\n  }\n  \/**\n   * Trigger events\n   * @param {Visible} item\n   *\/\n\n\n  function updateVisibility(item) {\n    var rect = item.el.getBoundingClientRect(),\n        innerHeight = $window.innerHeight || $document.documentElement.clientHeight,\n        px = getVerticallyVisiblePixels(rect, innerHeight),\n        percent = px \/ (rect.height || innerHeight),\n        evt = {\n      target: item.el,\n      rect: rect,\n      visiblePx: px,\n      visiblePercent: percent\n    };\n    updateSeen(item, evt);\n    updatePreload(item, evt, innerHeight);\n  }\n  \/**\n   * Return normalized viewport height\n   * @return {number}\n   *\/\n\n\n  function getViewportHeight()  $document.documentElement.clientHeight \n  \/**\n   * Return normalized viewport width\n   * @return {number}\n   *\/\n\n\n  function getViewportWidth()  $document.body.clientWidth;\n  \n  \/**\n   * make sure an element isn't hidden by styles or etc\n   * @param  {Element}  el\n   * @return {Boolean}\n   *\/\n\n\n  function isElementNotHidden(el) {\n    return el &#038;&#038; el.offsetParent !== null &#038;&#038; !el.getAttribute(\"hidden\") &#038;&#038; getComputedStyle(el).display !== \"none\" &#038;&#038; getComputedStyle(el).visibility !== \"hidden\";\n  }\n  \/**\n   * Apparently the fastest way...\n   * @param {Element} el\n   * @returns {boolean}\n   * @example if (!$visibility.isElementInViewport(el)) { ... }\n   *\/\n\n\n  function isElementInViewport(el)  $doc.documentElement.clientWidth);\n  \n  \/**\n   * @param {Component} el\n   * @param  {ClientRect} rect\n   * @param {Quantity} preloadThreshhold\n   * @param {Quantity} innerHeight\n   * @return {Boolean}\n   *\/\n\n\n  operate shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) {\n    return rect.high <= innerHeight + preloadThreshhold &#038;&#038; isElementNotHidden(el);\n  }\n  \/**\n   * Create a one-dimensional spacial hash of x\n   * @param {number} x\n   * @param {number} stepSize\n   * @param {number} optimalK\n   * @param {number} base\n   * @return {number}\n   *\/\n\n\n  function getLinearSpacialHash(x, stepSize, optimalK, base) {\n    var index = Math.floor(x \/ (stepSize || 1)),\n        remainder = x % stepSize,\n        result = index.toString(base);\n\n    if (optimalK > 1) {<br \/>\n      consequence += getLinearSpacialHash(the rest, Math.flooring(stepSize \/ base), optimalK - 1, base);<br \/>\n    }<\/p>\n<p>    return consequence;<br \/>\n  }<br \/>\n  \/**<br \/>\n   * @param {ClientRect} rect<br \/>\n   * @param {quantity} innerHeight<br \/>\n   * @returns {quantity}<br \/>\n   *\/<\/p>\n<p>  operate getVerticallyVisiblePixels(rect, innerHeight) {<br \/>\n    return min(innerHeight, max(rect.backside, 0)) - min(max(rect.high, 0), innerHeight);<br \/>\n  }<br \/>\n  \/**<br \/>\n   * Get offset of factor relative to total web page<br \/>\n   *<br \/>\n   * @param {Component} el<br \/>\n   * @returns {{left: quantity, high: quantity}}<br \/>\n   * @see http:\/\/jsperf.com\/offset-vs-getboundingclientrect\/7<br \/>\n   *\/<\/p>\n<p>  operate getPageOffset(el) {<br \/>\n    var offsetLeft = el.offsetLeft,<br \/>\n        offsetTop = el.offsetTop;<\/p>\n<p>    whereas (el = el.offsetParent) {<br \/>\n      offsetLeft += el.offsetLeft;<br \/>\n      offsetTop += el.offsetTop;<br \/>\n    }<\/p>\n<p>    return {<br \/>\n      left: offsetLeft,<br \/>\n      high: offsetTop<br \/>\n    };<br \/>\n  }<br \/>\n  \/**<br \/>\n   * Create a brand new Seen class to look at when components enter and go away the viewport<br \/>\n   *<br \/>\n   * Name destroy operate to cease listening (that is till we have now higher help for looking forward to Node Elimination)<br \/>\n   * @param {Component} el<br \/>\n   * @param {{shownThreshold: quantity, hiddenThreshold: quantity}} [options]<br \/>\n   * @class<br \/>\n   * @instance  this.seen = new $visibility.Seen(el);<br \/>\n   *\/<\/p>\n<p>  Seen = operate Seen(el, choices) {<br \/>\n    choices = choices || {};<br \/>\n    this.el = el;<br \/>\n    this.seen = false;<br \/>\n    this.preload = false;<br \/>\n    this.preloadThreshhold = choices && choices.preloadThreshhold || 0;<br \/>\n    this.shownThreshold = choices && choices.shownThreshold || 0;<br \/>\n    this.hiddenThreshold = choices && min(choices.shownThreshold, choices.hiddenThreshold) || 0;<br \/>\n    checklist.push(this);<br \/>\n    updateVisibility(this); \/\/ set instantly to seen or not<br \/>\n  };<\/p>\n<p>  Seen.prototype = {<br \/>\n    \/**<br \/>\n     * Cease triggering.<br \/>\n     *\/<br \/>\n    destroy: operate destroy() {<br \/>\n      \/\/ take away from checklist<br \/>\n      checklist.splice(checklist.indexOf(this), 1);<br \/>\n    }<br \/>\n    \/**<br \/>\n     * @title Seen#on<br \/>\n     * @operate<br \/>\n     * @param 'hidden' e  EventName<br \/>\n     * @param {operate} cb  Callback<br \/>\n     *\/<\/p>\n<p>    \/**<br \/>\n     * @title Seen#set off<br \/>\n     * @operate<br \/>\n     * @param 'hidden' e<br \/>\n     * @param {{}}<br \/>\n     *\/<\/p>\n<p>  };<br \/>\n  Eventify.allow(Seen.prototype);<\/p>\n<p>  VisibleEvent = operate VisibleEvent(kind, choices) {<br \/>\n    var _this = this;<\/p>\n<p>    this.kind = kind;<br \/>\n    Object.keys(choices).forEach(operate (key) {<br \/>\n      _this[key] = choices[key];<br \/>\n    });<br \/>\n  }; \/\/ pay attention for scroll occasions (throttled)<\/p>\n<p>  $doc.addEventListener(\"scroll\", _throttle(onScroll, 200)); \/\/ public<\/p>\n<p>  this.getPageOffset = getPageOffset;<br \/>\n  this.getLinearSpacialHash = getLinearSpacialHash;<br \/>\n  this.getVerticallyVisiblePixels = getVerticallyVisiblePixels;<br \/>\n  this.getViewportHeight = getViewportHeight;<br \/>\n  this.getViewportWidth = getViewportWidth;<br \/>\n  this.isElementNotHidden = isElementNotHidden;<br \/>\n  this.isElementInViewport = isElementInViewport;<br \/>\n  this.Seen = Seen;<br \/>\n}]);<br \/>\n}, {}];<br \/>\nrequire=(operate e(t,n,r){operate s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"operate\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Can not discover module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].name(l.exports,operate(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"operate\"&&require;for(var o=0;o<r.size;o++)s(r[o]);return s})(window.modules,{},[]);\n'use strict';\n\/**\n * mount legacy companies from _global.js, if any\n *\/\n\noperate mountLegacyServices() {\n  Object.keys(window.modules).filter(operate (key) {\n    return typeof key === 'string' &#038;&#038; key.match(\/.legacy$\/);\n  }).forEach(operate (key) {\n    return window.require(key);\n  });\n}\n\noperate tryToMount(fn, el, title) {\n  strive {\n    fn(el); \/\/ init the controller\n  } catch (e) {\n    var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));\n    console.error(\"Error initializing controller for \"\".concat(title, \"\" on \"\").concat(elementTag, \"\"\"), e);\n  }\n}\n\/**\n * mount consumer.js part controllers\n *\/\n\n\noperate mountComponentModules() {\n  Object.keys(window.modules).filter(operate (key) {\n    return typeof key === 'string' &#038;&#038; key.match(\/.consumer$\/);\n  }).forEach(operate (key) {\n    var controllerFn = window.require(key);\n\n    if (typeof controllerFn === 'operate') {\n      var title = key.substitute('.consumer\"https:\/\/slate.com\/,\"'),\n          instancesSelector = \"[data-uri*=\"_components\/\".concat(name, \"\/\"]\"),\n          defaultSelector = \"[data-uri$=\"_components\".concat(name, \"\"]\"),\n          situations = doc.querySelectorAll(instancesSelector),\n          defaults = doc.querySelectorAll(defaultSelector);\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      strive {\n        for (var _iterator = situations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.subsequent()).finished); _iteratorNormalCompletion = true) {\n          var el = _step.worth;\n          tryToMount(controllerFn, el, title);\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } lastly {\n        strive {\n          if (!_iteratorNormalCompletion &#038;&#038; _iterator.return != null) {\n            _iterator.return();\n          }\n        } lastly {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      strive {\n        for (var _iterator2 = defaults[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.subsequent()).finished); _iteratorNormalCompletion2 = true) {\n          var _el = _step2.worth;\n          tryToMount(controllerFn, _el, title);\n        }\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } lastly {\n        strive {\n          if (!_iteratorNormalCompletion2 &#038;&#038; _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } lastly {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n    }\n  });\n} \/\/ Ensure that a `window.course of.env.NODE_ENV` is obtainable within the consumer for any dependencies,\n\/\/ companies, or elements that would require it\n\/\/ word: the `` worth is swapped for the precise setting variable in \/lib\/cmd\/compile\/scripts.js\n\n\nwindow.course of = window.course of || {};\nwindow.course of.env = window.course of.env || {};\n\nif (!window.course of.env.NODE_ENV) {\n  window.course of.env.NODE_ENV = '';\n} \/\/ word: legacy controllers that require legacy companies (e.g. dollar-slice) should\n\/\/ look ahead to DOMContentLoaded to initialize themselves, because the recordsdata themselves have to be mounted first\n\n\nmountLegacyServices();\nmountComponentModules();\n      \/\/ ]]\n    <\/script><br \/>\n<br \/>[ad_2]<br \/>\n<br \/><a href=\"https:\/\/slate.com\/technology\/2020\/09\/iphone-voice-memos-location-tracking-apple.html\">Supply hyperlink <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Watch out utilizing this as a microphone. Joseph Eid\/AFP by way of Getty Pictures Like Zoom calls and Amazon Prime, one of many applied sciences having a pandemic second is the iPhone Voice Memos app. Historic societies, information organizations, and faculties have been asking folks to file their insights and dispatches in the course &hellip;<\/p>\n","protected":false},"author":1,"featured_media":223892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-223887","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tie-world"],"_links":{"self":[{"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/posts\/223887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/comments?post=223887"}],"version-history":[{"count":0,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/posts\/223887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/media\/223892"}],"wp:attachment":[{"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/media?parent=223887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/categories?post=223887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hameed.nwar.uk\/sa\/wp-json\/wp\/v2\/tags?post=223887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}