diff --git a/js/dist/wp-seo-post-scraper-710.js b/js/dist/wp-seo-post-scraper-710.js index 524b9439c98..2eec33ad6ca 100644 --- a/js/dist/wp-seo-post-scraper-710.js +++ b/js/dist/wp-seo-post-scraper-710.js @@ -5245,7 +5245,7 @@ eval("\n/**\n * Removes all marks from a text\n *\n * @param {string} text The m /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isUndefined = __webpack_require__(6);\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Checks if the data API from Gutenberg is available.\n *\n * @returns {boolean} True if the data API is available.\n */\nvar isGutenbergDataAvailable = function isGutenbergDataAvailable() {\n return !(0, _isUndefined2.default)(window.wp) && !(0, _isUndefined2.default)(wp.data);\n}; /* global wp */\n\nexports.default = isGutenbergDataAvailable;\n\n//////////////////\n// WEBPACK FOOTER\n// ./helpers/isGutenbergDataAvailable.js\n// module id = 758\n// module chunks = 0 1\n\n//# sourceURL=webpack:///./helpers/isGutenbergDataAvailable.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isUndefined = __webpack_require__(6);\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Checks if the data API from Gutenberg is available.\n *\n * @returns {boolean} True if the data API is available.\n */\nvar isGutenbergDataAvailable = function isGutenbergDataAvailable() {\n return !(0, _isUndefined2.default)(window.wp) && !(0, _isUndefined2.default)(wp.data);\n}; /* global wp */\n\nexports.default = isGutenbergDataAvailable;\n\n//////////////////\n// WEBPACK FOOTER\n// ./helpers/isGutenbergAvailable.js\n// module id = 758\n// module chunks = 0 1\n\n//# sourceURL=webpack:///./helpers/isGutenbergAvailable.js?"); /***/ }), /* 759 */ @@ -7146,4 +7146,4 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_RES eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* global jQuery, YoastSEO, wpseoPostScraperL10n */\n\nvar _isKeywordAnalysisActive = __webpack_require__(753);\n\nvar _isKeywordAnalysisActive2 = _interopRequireDefault(_isKeywordAnalysisActive);\n\nvar _removeMarks = __webpack_require__(757);\n\nvar _removeMarks2 = _interopRequireDefault(_removeMarks);\n\nvar _wpSeoTinymce = __webpack_require__(739);\n\nvar _wpSeoTinymce2 = _interopRequireDefault(_wpSeoTinymce);\n\nvar _getIndicatorForScore = __webpack_require__(438);\n\nvar _getIndicatorForScore2 = _interopRequireDefault(_getIndicatorForScore);\n\nvar _trafficLight = __webpack_require__(751);\n\nvar _adminBar = __webpack_require__(752);\n\nvar _publishBox = __webpack_require__(1023);\n\nvar _publishBox2 = _interopRequireDefault(_publishBox);\n\nvar _isGutenbergDataAvailable = __webpack_require__(758);\n\nvar _isGutenbergDataAvailable2 = _interopRequireDefault(_isGutenbergDataAvailable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar $ = jQuery;\nvar currentKeyword = \"\";\n\n/**\n * Show warning in console when the unsupported CkEditor is used\n *\n * @param {Object} args The arguments for the post scraper.\n * @param {Object} args.data The data.\n * @param {TabManager} args.tabManager The tab manager for this post.\n *\n * @constructor\n */\nvar PostDataCollector = function PostDataCollector(args) {\n\tif ((typeof CKEDITOR === \"undefined\" ? \"undefined\" : _typeof(CKEDITOR)) === \"object\") {\n\t\tconsole.warn(\"YoastSEO currently doesn't support ckEditor. The content analysis currently only works with the HTML editor or TinyMCE.\");\n\t}\n\n\tthis._data = args.data;\n\tthis._tabManager = args.tabManager;\n};\n\n/**\n * Get data from input fields and store them in an analyzerData object. This object will be used to fill\n * the analyzer and the snippet preview. If Gutenberg data is available, use it.\n *\n * @returns {Object} The data.\n */\nPostDataCollector.prototype.getData = function () {\n\tvar gutenbergData = void 0;\n\n\t// Only use data from Gutenberg if Gutenberg is available.\n\tif ((0, _isGutenbergDataAvailable2.default)()) {\n\t\tgutenbergData = this._data.getData();\n\t}\n\n\treturn {\n\t\tkeyword: (0, _isKeywordAnalysisActive2.default)() ? this.getKeyword() : \"\",\n\t\tmeta: this.getMeta(),\n\t\ttext: gutenbergData && gutenbergData.content ? gutenbergData.content : this.getText(),\n\t\ttitle: gutenbergData && gutenbergData.title ? gutenbergData.title : this.getTitle(),\n\t\turl: gutenbergData && gutenbergData.slug ? gutenbergData.slug : this.getUrl(),\n\t\texcerpt: gutenbergData && gutenbergData.excerpt ? gutenbergData.excerpt : this.getExcerpt(),\n\t\tsnippetTitle: this.getSnippetTitle(),\n\t\tsnippetMeta: this.getSnippetMeta(),\n\t\tsnippetCite: this.getSnippetCite(),\n\t\tprimaryCategory: this.getPrimaryCategory(),\n\t\tsearchUrl: this.getSearchUrl(),\n\t\tpostUrl: this.getPostUrl(),\n\t\tpermalink: this.getPermalink()\n\t};\n};\n\n/**\n * Returns the keyword from the DOM.\n *\n * @returns {string} The keyword.\n */\nPostDataCollector.prototype.getKeyword = function () {\n\tvar val = document.getElementById(\"yoast_wpseo_focuskw_text_input\") && document.getElementById(\"yoast_wpseo_focuskw_text_input\").value || \"\";\n\tcurrentKeyword = val;\n\n\treturn val;\n};\n\n/**\n * Returns the Meta from the DOM.\n *\n * @returns {string} The meta description.\n */\nPostDataCollector.prototype.getMeta = function () {\n\treturn document.getElementById(\"yoast_wpseo_metadesc\") && document.getElementById(\"yoast_wpseo_metadesc\").value || \"\";\n};\n\n/**\n * Returns the Text from the DOM.\n *\n * @returns {string} The text.\n */\nPostDataCollector.prototype.getText = function () {\n\treturn (0, _removeMarks2.default)(_wpSeoTinymce2.default.getContentTinyMce(_wpSeoTinymce.tmceId));\n};\n\n/**\n * Returns the Title from the DOM.\n *\n * @returns {string} The title.\n */\nPostDataCollector.prototype.getTitle = function () {\n\treturn document.getElementById(\"title\") && document.getElementById(\"title\").value || \"\";\n};\n\n/**\n * Returns the Url from the DOM.\n *\n * @returns {string} The url.\n */\nPostDataCollector.prototype.getUrl = function () {\n\tvar url = \"\";\n\n\tvar newPostSlug = $(\"#new-post-slug\");\n\tif (0 < newPostSlug.length) {\n\t\turl = newPostSlug.val();\n\t} else if (document.getElementById(\"editable-post-name-full\") !== null) {\n\t\turl = document.getElementById(\"editable-post-name-full\").textContent;\n\t}\n\n\treturn url;\n};\n\n/**\n * Returns the Excerpt from the DOM.\n *\n * @returns {string} The excerpt.\n */\nPostDataCollector.prototype.getExcerpt = function () {\n\tvar val = \"\";\n\n\tif (document.getElementById(\"excerpt\") !== null) {\n\t\tval = document.getElementById(\"excerpt\") && document.getElementById(\"excerpt\").value || \"\";\n\t}\n\n\treturn val;\n};\n\n/**\n * Returns the SnippetTitle from the DOM.\n *\n * @returns {string} The snippet title.\n */\nPostDataCollector.prototype.getSnippetTitle = function () {\n\treturn document.getElementById(\"yoast_wpseo_title\") && document.getElementById(\"yoast_wpseo_title\").value || \"\";\n};\n\n/**\n * Returns the SnippetMeta from the DOM.\n *\n * @returns {string} The snippet meta.\n */\nPostDataCollector.prototype.getSnippetMeta = function () {\n\treturn document.getElementById(\"yoast_wpseo_metadesc\") && document.getElementById(\"yoast_wpseo_metadesc\").value || \"\";\n};\n\n/**\n * Returns the SnippetCite from the DOM.\n *\n * @returns {string} The snippet cite.\n */\nPostDataCollector.prototype.getSnippetCite = function () {\n\treturn this.getUrl();\n};\n\n/**\n * Returns the PrimaryCategory from the DOM.\n *\n * @returns {string} The primary category.\n */\nPostDataCollector.prototype.getPrimaryCategory = function () {\n\tvar val = \"\";\n\tvar categoryBase = $(\"#category-all\").find(\"ul.categorychecklist\");\n\n\t// If only one is visible than that item is the primary category.\n\tvar checked = categoryBase.find(\"li input:checked\");\n\n\tif (checked.length === 1) {\n\t\tval = this.getCategoryName(checked.parent());\n\n\t\treturn val;\n\t}\n\n\tvar primaryTerm = categoryBase.find(\".wpseo-primary-term > label\");\n\n\tif (primaryTerm.length) {\n\t\tval = this.getCategoryName(primaryTerm);\n\n\t\treturn val;\n\t}\n\n\treturn val;\n};\n\n/**\n * Returns the SearchUrl from the DOM.\n *\n * @returns {string} The search url.\n */\nPostDataCollector.prototype.getSearchUrl = function () {\n\treturn wpseoPostScraperL10n.search_url;\n};\n\n/**\n * Returns the PostUrl from the DOM.\n *\n * @returns {string} The post url.\n */\nPostDataCollector.prototype.getPostUrl = function () {\n\treturn wpseoPostScraperL10n.post_edit_url;\n};\n\n/**\n * Returns the Permalink from the DOM.\n *\n * @returns {string} The permalink.\n */\nPostDataCollector.prototype.getPermalink = function () {\n\tvar url = this.getUrl();\n\n\treturn wpseoPostScraperL10n.base_url + url;\n};\n\n/**\n * Get the category name from the list item.\n *\n * @param {Object} li Item which contains the category.\n *\n * @returns {String} Name of the category.\n */\nPostDataCollector.prototype.getCategoryName = function (li) {\n\tvar clone = li.clone();\n\tclone.children().remove();\n\treturn $.trim(clone.text());\n};\n\n/**\n * When the snippet is updated, update the (hidden) fields on the page.\n *\n * @param {Object} value The value to set.\n * @param {String} type The type to set the value for.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.setDataFromSnippet = function (value, type) {\n\tswitch (type) {\n\t\tcase \"snippet_meta\":\n\t\t\tdocument.getElementById(\"yoast_wpseo_metadesc\").value = value;\n\t\t\tbreak;\n\t\tcase \"snippet_cite\":\n\n\t\t\t/*\n * WordPress leaves the post name empty to signify that it should be generated from the title once the\n * post is saved. So when we receive an auto generated slug from WordPress we should be\n * able to not save this to the UI. This conditional makes that possible.\n */\n\t\t\tif (this.leavePostNameUntouched) {\n\t\t\t\tthis.leavePostNameUntouched = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (document.getElementById(\"post_name\") !== null) {\n\t\t\t\tdocument.getElementById(\"post_name\").value = value;\n\t\t\t}\n\t\t\tif (document.getElementById(\"editable-post-name\") !== null && document.getElementById(\"editable-post-name-full\") !== null) {\n\t\t\t\tdocument.getElementById(\"editable-post-name\").textContent = value;\n\t\t\t\tdocument.getElementById(\"editable-post-name-full\").textContent = value;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"snippet_title\":\n\t\t\tdocument.getElementById(\"yoast_wpseo_title\").value = value;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n};\n\n/**\n * The data passed from the snippet editor.\n *\n * @param {Object} data Object with data value.\n * @param {string} data.title The title.\n * @param {string} data.urlPath The url.\n * @param {string} data.metaDesc The meta description.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.saveSnippetData = function (data) {\n\tthis.setDataFromSnippet(data.title, \"snippet_title\");\n\tthis.setDataFromSnippet(data.urlPath, \"snippet_cite\");\n\tthis.setDataFromSnippet(data.metaDesc, \"snippet_meta\");\n};\n\n/**\n * Calls the event binders.\n *\n * @param {app} app The app object.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.bindElementEvents = function (app) {\n\tthis.inputElementEventBinder(app);\n\tthis.changeElementEventBinder(app);\n};\n\n/**\n * Binds the reanalyze timer on change of dom element.\n *\n * @param {app} app The app object.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.changeElementEventBinder = function (app) {\n\tvar elems = [\"#yoast-wpseo-primary-category\", '.categorychecklist input[name=\"post_category[]\"]'];\n\tfor (var i = 0; i < elems.length; i++) {\n\t\t$(elems[i]).on(\"change\", app.refresh.bind(app));\n\t}\n};\n\n/**\n * Binds the renewData function on the change of input elements.\n *\n * @param {app} app The app object.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.inputElementEventBinder = function (app) {\n\tvar elems = [\"excerpt\", \"content\", \"yoast_wpseo_focuskw_text_input\", \"title\"];\n\tfor (var i = 0; i < elems.length; i++) {\n\t\tvar elem = document.getElementById(elems[i]);\n\t\tif (elem !== null) {\n\t\t\tdocument.getElementById(elems[i]).addEventListener(\"input\", app.refresh.bind(app));\n\t\t}\n\t}\n\n\t_wpSeoTinymce2.default.tinyMceEventBinder(app, _wpSeoTinymce.tmceId);\n\n\tdocument.getElementById(\"yoast_wpseo_focuskw_text_input\").addEventListener(\"blur\", this.resetQueue.bind(this));\n};\n\n/**\n * Resets the current queue if focus keyword is changed and not empty.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.resetQueue = function () {\n\tif (this.app.rawData.keyword !== \"\") {\n\t\tthis.app.runAnalyzer(this.rawData);\n\t}\n};\n\n/**\n * Saves the score to the linkdex.\n * Outputs the score in the overall target.\n *\n * @param {string} score The score to save.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.saveScores = function (score) {\n\tvar indicator = (0, _getIndicatorForScore2.default)(score);\n\n\t// If multi keyword isn't available we need to update the first tab (content).\n\tif (!YoastSEO.multiKeyword) {\n\t\tthis._tabManager.updateKeywordTab(score, currentKeyword);\n\t\t_publishBox2.default.updateScore(\"content\", indicator.className);\n\n\t\t// Updates the input with the currentKeyword value.\n\t\t$(\"#yoast_wpseo_focuskw\").val(currentKeyword);\n\t}\n\n\tif (this._tabManager.isMainKeyword(currentKeyword)) {\n\t\tdocument.getElementById(\"yoast_wpseo_linkdex\").value = score;\n\n\t\tif (\"\" === currentKeyword) {\n\t\t\tindicator.className = \"na\";\n\t\t\tindicator.screenReaderText = this.app.i18n.dgettext(\"js-text-analysis\", \"Enter a focus keyword to calculate the SEO score\");\n\t\t\tindicator.fullText = this.app.i18n.dgettext(\"js-text-analysis\", \"Content optimization: Enter a focus keyword to calculate the SEO score\");\n\t\t}\n\n\t\tthis._tabManager.updateKeywordTab(score, currentKeyword);\n\n\t\t(0, _trafficLight.update)(indicator);\n\t\t(0, _adminBar.update)(indicator);\n\n\t\t_publishBox2.default.updateScore(\"keyword\", indicator.className);\n\t}\n\n\tjQuery(window).trigger(\"YoastSEO:numericScore\", score);\n};\n\n/**\n * Saves the content score to a hidden field.\n *\n * @param {number} score The score to save.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.saveContentScore = function (score) {\n\tthis._tabManager.updateContentTab(score);\n\tvar indicator = (0, _getIndicatorForScore2.default)(score);\n\t_publishBox2.default.updateScore(\"content\", indicator.className);\n\n\tif (!(0, _isKeywordAnalysisActive2.default)()) {\n\t\t(0, _trafficLight.update)(indicator);\n\t\t(0, _adminBar.update)(indicator);\n\t}\n\n\t$(\"#yoast_wpseo_content_score\").val(score);\n};\n\n/**\n * Initializes keyword tab with the correct template if multi keyword isn't available.\n *\n * @returns {void}\n */\nPostDataCollector.prototype.initKeywordTabTemplate = function () {\n\t// If multi keyword is available we don't have to initialize this as multi keyword does this for us.\n\tif (YoastSEO.multiKeyword) {\n\t\treturn;\n\t}\n\n\tvar keyword = $(\"#yoast_wpseo_focuskw\").val();\n\t$(\"#yoast_wpseo_focuskw_text_input\").val(keyword);\n};\n\nexports.default = PostDataCollector;\n\n//////////////////\n// WEBPACK FOOTER\n// ./analysis/PostDataCollector.js\n// module id = 1079\n// module chunks = 0\n\n//# sourceURL=webpack:///./analysis/PostDataCollector.js?"); /***/ }) -],[1076]); \ No newline at end of file +],[1076]); diff --git a/js/dist/wp-seo-post-scraper-710.min.js b/js/dist/wp-seo-post-scraper-710.min.js index 81640a8baf6..1a9ba546fc9 100644 --- a/js/dist/wp-seo-post-scraper-710.min.js +++ b/js/dist/wp-seo-post-scraper-710.min.js @@ -1 +1 @@ -yoastWebpackJsonp([0],[,function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;\n\n var isValidElement = function isValidElement(object) {\n return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(212)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/prop-types/index.js\n// module id = 1\n// module chunks = 0 1 2 3 4\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/prop-types/index.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;\n\n var isValidElement = function isValidElement(object) {\n return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(291)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/prop-types/index.js\n// module id = 2\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/prop-types/index.js?")},,function(module,exports){eval('module.exports = {"$palette_white":"#fff","$palette_grey_ultra_light":"#f7f7f7","$palette_grey_light":"#f1f1f1","$palette_grey":"#ddd","$palette_grey_medium":"#ccc","$palette_grey_disabled":"#a0a5aa","$palette_grey_medium_dark":"#888","$palette_grey_text":"#646464","$palette_grey_dark":"#555","$palette_black":"#000","$palette_purple":"#5d237a","$palette_purple_dark":"#6c2548","$palette_pink":"#d73763","$palette_pink_light":"#e1bee7","$palette_pink_dark":"#a4286a","$palette_blue":"#0066cd","$palette_blue_light":"#a9a9ce","$palette_blue_dark":"#084a67","$palette_green":"#77b227","$palette_green_light":"#7ad03a","$palette_green_medium_light":"#64a60a","$palette_green_medium":"#008a00","$palette_green_blue":"#009288","$palette_orange":"#dc5c04","$palette_orange_light":"#ee7c1b","$palette_red":"#dc3232","$palette_red_light":"#f9bdbd","$palette_yellow":"#ffeb3b","$color_bad":"#dc3232","$color_ok":"#ee7c1b","$color_good":"#7ad03a","$color_score_icon":"#888","$color_white":"#fff","$color_black":"#000","$color_green":"#77b227","$color_green_medium":"#008a00","$color_green_blue":"#009288","$color_grey":"#ddd","$color_grey_dark":"#555","$color_purple":"#5d237a","$color_purple_dark":"#6c2548","$color_pink":"#d73763","$color_pink_light":"#e1bee7","$color_pink_dark":"#a4286a","$color_blue":"#0066cd","$color_blue_light":"#a9a9ce","$color_blue_dark":"#084a67","$color_red":"#dc3232","$color_border_light":"#f7f7f7","$color_border":"#ccc","$color_input_border":"#ddd","$color_background_light":"#f7f7f7","$color_button":"#f7f7f7","$color_button_text":"#555","$color_button_border":"#ccc","$color_button_hover":"#fff","$color_button_border_hover":"#888","$color_button_text_hover":"#000","$color_button_border_active":"#000","$color_headings":"#555","$color_marker_inactive":"#555","$color_marker_active":"#fff","$color_marker_disabled":"#a0a5aa","$color_error":"#dc3232","$color_orange":"#dc5c04","$color_orange_hover":"#c35204","$color_grey_hover":"#cecece","$color_pink_hover":"#cc2956","$color_grey_cta":"#ddd","$color_grey_line":"#ddd","$color_grey_quote":"#646464","$color_grey_text":"#646464","$color_grey_medium_dark":"#888","$color_green_medium_light":"#64a60a","$color_grey_disabled":"#a0a5aa","$color_grey_medium":"#ccc","$color_grey_light":"#f1f1f1","$color_yellow":"#ffeb3b","$color_error_message":"#f9bdbd"}\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/style-guide/colors.json\n// module id = 4\n// module chunks = 0 1 2 3 4\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/style-guide/colors.json?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar arrayEach = __webpack_require__(168),\n baseEach = __webpack_require__(131),\n castFunction = __webpack_require__(636),\n isArray = __webpack_require__(13);\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 {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|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\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/forEach.js\n// module id = 5\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/forEach.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\n/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isUndefined.js\n// module id = 6\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isUndefined.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/classCallCheck.js\n// module id = 7\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/classCallCheck.js?')},function(module,exports,__webpack_require__){"use strict";eval('\n\nmodule.exports = { "default": __webpack_require__(474), __esModule: true };\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/core-js/object/get-prototype-of.js\n// module id = 8\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/core-js/object/get-prototype-of.js?')},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(476);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/createClass.js\n// module id = 9\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/createClass.js?')},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _typeof2 = __webpack_require__(152);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n\n return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/possibleConstructorReturn.js\n// module id = 10\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/possibleConstructorReturn.js?')},function(module,exports,__webpack_require__){"use strict";eval('\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = __webpack_require__(498);\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = __webpack_require__(502);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = __webpack_require__(152);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/inherits.js\n// module id = 11\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/inherits.js?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/simple-assign/index.js\n// module id = 12\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/simple-assign/index.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\n/**\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\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isArray.js\n// module id = 13\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isArray.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n\nvar isUndefined = __webpack_require__(6);\nvar isNumber = __webpack_require__(402);\n/**\n * A function that only returns an empty that can be used as an empty marker\n *\n * @returns {Array} A list of empty marks.\n */\nvar emptyMarker = function emptyMarker() {\n return [];\n};\n/**\n * Construct the AssessmentResult value object.\n *\n * @param {Object} [values] The values for this assessment result.\n *\n * @constructor\n */\nvar AssessmentResult = function AssessmentResult(values) {\n this._hasScore = false;\n this._identifier = "";\n this._hasMarks = false;\n this._marker = emptyMarker;\n this.score = 0;\n this.text = "";\n if (isUndefined(values)) {\n values = {};\n }\n if (!isUndefined(values.score)) {\n this.setScore(values.score);\n }\n if (!isUndefined(values.text)) {\n this.setText(values.text);\n }\n};\n/**\n * Check if a score is available.\n * @returns {boolean} Whether or not a score is available.\n */\nAssessmentResult.prototype.hasScore = function () {\n return this._hasScore;\n};\n/**\n * Get the available score\n * @returns {number} The score associated with the AssessmentResult.\n */\nAssessmentResult.prototype.getScore = function () {\n return this.score;\n};\n/**\n * Set the score for the assessment.\n * @param {number} score The score to be used for the score property\n * @returns {void}\n */\nAssessmentResult.prototype.setScore = function (score) {\n if (isNumber(score)) {\n this.score = score;\n this._hasScore = true;\n }\n};\n/**\n * Check if a text is available.\n * @returns {boolean} Whether or not a text is available.\n */\nAssessmentResult.prototype.hasText = function () {\n return this.text !== "";\n};\n/**\n * Get the available text\n * @returns {string} The text associated with the AssessmentResult.\n */\nAssessmentResult.prototype.getText = function () {\n return this.text;\n};\n/**\n * Set the text for the assessment.\n * @param {string} text The text to be used for the text property\n * @returns {void}\n */\nAssessmentResult.prototype.setText = function (text) {\n if (isUndefined(text)) {\n text = "";\n }\n this.text = text;\n};\n/**\n * Sets the identifier\n *\n * @param {string} identifier An alphanumeric identifier for this result.\n * @returns {void}\n */\nAssessmentResult.prototype.setIdentifier = function (identifier) {\n this._identifier = identifier;\n};\n/**\n * Gets the identifier\n *\n * @returns {string} An alphanumeric identifier for this result.\n */\nAssessmentResult.prototype.getIdentifier = function () {\n return this._identifier;\n};\n/**\n * Sets the marker, a pure function that can return the marks for a given Paper\n *\n * @param {Function} marker The marker to set.\n * @returns {void}\n */\nAssessmentResult.prototype.setMarker = function (marker) {\n this._marker = marker;\n};\n/**\n * Returns whether or not this result has a marker that can be used to mark for a given Paper\n *\n * @returns {boolean} Whether or this result has a marker.\n */\nAssessmentResult.prototype.hasMarker = function () {\n return this._hasMarks && this._marker !== emptyMarker;\n};\n/**\n * Gets the marker, a pure function that can return the marks for a given Paper\n *\n * @returns {Function} The marker.\n */\nAssessmentResult.prototype.getMarker = function () {\n return this._marker;\n};\n/**\n * Sets the value of _hasMarks to determine if there is something to mark.\n *\n * @param {boolean} hasMarks Is there something to mark.\n * @returns {void}\n */\nAssessmentResult.prototype.setHasMarks = function (hasMarks) {\n this._hasMarks = hasMarks;\n};\n/**\n * Returns the value of _hasMarks to determine if there is something to mark.\n *\n * @returns {boolean} Is there something to mark.\n */\nAssessmentResult.prototype.hasMarks = function () {\n return this._hasMarks;\n};\nmodule.exports = AssessmentResult;\n//# sourceMappingURL=AssessmentResult.js.map\n//# sourceMappingURL=AssessmentResult.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoastseo/js/values/AssessmentResult.js\n// module id = 14\n// module chunks = 0 1\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoastseo/js/values/AssessmentResult.js?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\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 var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isObject.js\n// module id = 15\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isObject.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.__esModule = true;\n\nvar _assign = __webpack_require__(467);\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\nexports.default = _assign2.default || 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\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/extends.js\n// module id = 16\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/extends.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/objectWithoutProperties.js\n// module id = 17\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/babel-runtime/helpers/objectWithoutProperties.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar freeGlobal = __webpack_require__(202);\n\n/** Detect free variable `self`. */\nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/_root.js\n// module id = 18\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/_root.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/isarray/index.js\n// module id = 19\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/isarray/index.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar arrayMap = __webpack_require__(59),\n baseIteratee = __webpack_require__(84),\n baseMap = __webpack_require__(678),\n isArray = __webpack_require__(13);\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/map.js\n// module id = 20\n// module chunks = 0 1\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/map.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function("return this")() || (1, eval)("this");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 21\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar core = module.exports = { version: '2.5.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/core-js/library/modules/_core.js\n// module id = 22\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/core-js/library/modules/_core.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function TempCtor() {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/inherits/inherits_browser.js\n// module id = 23\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/inherits/inherits_browser.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n\n easeOutFunction: 'cubic-bezier(0.23, 1, 0.32, 1)',\n easeInOutFunction: 'cubic-bezier(0.445, 0.05, 0.55, 0.95)',\n\n easeOut: function easeOut(duration, property, delay, easeFunction) {\n easeFunction = easeFunction || this.easeOutFunction;\n\n if (property && Object.prototype.toString.call(property) === '[object Array]') {\n var transitions = '';\n for (var i = 0; i < property.length; i++) {\n if (transitions) transitions += ',';\n transitions += this.create(duration, property[i], delay, easeFunction);\n }\n\n return transitions;\n } else {\n return this.create(duration, property, delay, easeFunction);\n }\n },\n create: function create(duration, property, delay, easeFunction) {\n duration = duration || '450ms';\n property = property || 'all';\n delay = delay || '0ms';\n easeFunction = easeFunction || 'linear';\n\n return property + ' ' + duration + ' ' + easeFunction + ' ' + delay;\n }\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/material-ui/styles/transitions.js\n// module id = 24\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/material-ui/styles/transitions.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormattedHTMLMessage = exports.FormattedMessage = exports.FormattedPlural = exports.FormattedNumber = exports.FormattedRelative = exports.FormattedTime = exports.FormattedDate = exports.IntlProvider = exports.defineMessages = exports.injectIntl = exports.intlShape = exports.addLocaleData = undefined;\n\nvar _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar _index = __webpack_require__(350);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _intlMessageformat = __webpack_require__(185);\n\nvar _intlMessageformat2 = _interopRequireDefault(_intlMessageformat);\n\nvar _intlRelativeformat = __webpack_require__(359);\n\nvar _intlRelativeformat2 = _interopRequireDefault(_intlRelativeformat);\n\nvar _propTypes = __webpack_require__(2);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _invariant = __webpack_require__(221);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _intlFormatCache = __webpack_require__(366);\n\nvar _intlFormatCache2 = _interopRequireDefault(_intlFormatCache);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n _intlMessageformat2.default.__addLocaleData(localeData);\n _intlRelativeformat2.default.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(_intlMessageformat2.default.__localeData__[normalizedLocale] && _intlRelativeformat2.default.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\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 inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === 'undefined' ? 'undefined' : _typeof2(superClass)));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === 'undefined' ? 'undefined' : _typeof2(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar toConsumableArray = function toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = _propTypes2.default.bool;\nvar number = _propTypes2.default.number;\nvar string = _propTypes2.default.string;\nvar func = _propTypes2.default.func;\nvar object = _propTypes2.default.object;\nvar oneOf = _propTypes2.default.oneOf;\nvar shape = _propTypes2.default.shape;\nvar any = _propTypes2.default.any;\nvar oneOfType = _propTypes2.default.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n (0, _invariant2.default)(intl, '[React Intl] Could not find required `intl` object. ' + ' needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n (0, _invariant2.default)(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(_react.Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return _intlMessageformat2.default.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return _intlMessageformat2.default.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = _intlRelativeformat2.default.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (true) {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, _intlRelativeformat2.default.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n (0, _invariant2.default)(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && \"development\" === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (true) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (true) {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (true) {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\nvar format = Object.freeze({\n formatDate: formatDate,\n formatTime: formatTime,\n formatRelative: formatRelative,\n formatNumber: formatNumber,\n formatPlural: formatPlural,\n formatMessage: formatMessage,\n formatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n (0, _invariant2.default)(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // ``, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: (0, _intlFormatCache2.default)(Intl.DateTimeFormat),\n getNumberFormat: (0, _intlFormatCache2.default)(Intl.NumberFormat),\n getMessageFormat: (0, _intlFormatCache2.default)(_intlMessageformat2.default),\n getRelativeFormat: (0, _intlFormatCache2.default)(_intlRelativeformat2.default),\n getPluralFormat: (0, _intlFormatCache2.default)(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n if (true) {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return _react.Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(_react.Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\n true ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: _propTypes2.default.element.isRequired,\n initialNow: _propTypes2.default.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return _react2.default.createElement(Text, null, formattedDate);\n }\n }]);\n return FormattedDate;\n}(_react.Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\n true ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: _propTypes2.default.any.isRequired,\n format: _propTypes2.default.string,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return _react2.default.createElement(Text, null, formattedTime);\n }\n }]);\n return FormattedTime;\n}(_react.Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\n true ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: _propTypes2.default.any.isRequired,\n format: _propTypes2.default.string,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return _react2.default.createElement(Text, null, formattedRelative);\n }\n }]);\n return FormattedRelative;\n}(_react.Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\n true ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: _propTypes2.default.any.isRequired,\n format: _propTypes2.default.string,\n updateInterval: _propTypes2.default.number,\n initialNow: _propTypes2.default.any,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return _react2.default.createElement(Text, null, formattedNumber);\n }\n }]);\n return FormattedNumber;\n}(_react.Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\n true ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: _propTypes2.default.any.isRequired,\n format: _propTypes2.default.string,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return _react2.default.createElement(Text, null, formattedPlural);\n }\n }]);\n return FormattedPlural;\n}(_react.Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\n true ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: _propTypes2.default.any.isRequired,\n\n other: _propTypes2.default.node.isRequired,\n zero: _propTypes2.default.node,\n one: _propTypes2.default.node,\n two: _propTypes2.default.node,\n few: _propTypes2.default.node,\n many: _propTypes2.default.node,\n\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if ((0, _react.isValidElement)(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return _react.createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(_react.Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\n true ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: _propTypes2.default.object,\n tagName: _propTypes2.default.string,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return _react2.default.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(_react.Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\n true ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: _propTypes2.default.object,\n tagName: _propTypes2.default.string,\n children: _propTypes2.default.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(_index2.default);\n\nexports.addLocaleData = addLocaleData;\nexports.intlShape = intlShape;\nexports.injectIntl = injectIntl;\nexports.defineMessages = defineMessages;\nexports.IntlProvider = IntlProvider;\nexports.FormattedDate = FormattedDate;\nexports.FormattedTime = FormattedTime;\nexports.FormattedRelative = FormattedRelative;\nexports.FormattedNumber = FormattedNumber;\nexports.FormattedPlural = FormattedPlural;\nexports.FormattedMessage = FormattedMessage;\nexports.FormattedHTMLMessage = FormattedHTMLMessage;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/react-intl/lib/index.es.js\n// module id = 25\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/react-intl/lib/index.es.js?")},,,function(module,exports,__webpack_require__){"use strict";eval("\n\nvar store = __webpack_require__(149)('wks');\nvar uid = __webpack_require__(113);\nvar _Symbol = __webpack_require__(41).Symbol;\nvar USE_SYMBOL = typeof _Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/core-js/library/modules/_wks.js\n// module id = 28\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/core-js/library/modules/_wks.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };\n\n/**\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 === \'undefined\' ? \'undefined\' : _typeof(value)) == \'object\';\n}\n\nmodule.exports = isObjectLike;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isObjectLike.js\n// module id = 29\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isObjectLike.js?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar baseKeys = __webpack_require__(300),\n getTag = __webpack_require__(218),\n isArguments = __webpack_require__(118),\n isArray = __webpack_require__(13),\n isArrayLike = __webpack_require__(36),\n isBuffer = __webpack_require__(119),\n isPrototype = __webpack_require__(96),\n isTypedArray = __webpack_require__(165);\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isEmpty.js\n// module id = 30\n// module chunks = 0 1\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isEmpty.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = function clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/algoliasearch/src/clone.js\n// module id = 31\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoast-components/node_modules/algoliasearch/src/clone.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar _Symbol = __webpack_require__(50),\n getRawTag = __webpack_require__(294),\n objectToString = __webpack_require__(295);\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 && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/_baseGetTag.js\n// module id = 32\n// module chunks = 0 1 2 3\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/_baseGetTag.js?")},function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(global, process) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function (fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = Object({\"NODE_ENV\":\"development\"}).NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n return debugs[set];\n};\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\x1B[' + inspect.colors[style][0] + 'm' + str + '\\x1B[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(760);\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = __webpack_require__(761);\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(21), __webpack_require__(61)))\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/util/util.js\n// module id = 33\n// module chunks = 0 1\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/util/util.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar arrayFilter = __webpack_require__(217),\n baseFilter = __webpack_require__(679),\n baseIteratee = __webpack_require__(84),\n isArray = __webpack_require__(13);\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/filter.js\n// module id = 34\n// module chunks = 0 1\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/filter.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n/** @module stringProcessing/stripSpaces */\n/**\n * Strip double spaces from text\n *\n * @param {String} text The text to strip spaces from.\n * @returns {String} The text without double spaces\n */\n\nmodule.exports = function (text) {\n // Replace multiple spaces with single space\n text = text.replace(/\\s{2,}/g, " ");\n // Replace spaces followed by periods with only the period.\n text = text.replace(/\\s\\./g, ".");\n // Remove first/last character if space\n text = text.replace(/^\\s+|\\s+$/g, "");\n return text;\n};\n//# sourceMappingURL=stripSpaces.js.map\n//# sourceMappingURL=stripSpaces.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoastseo/js/stringProcessing/stripSpaces.js\n// module id = 35\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/yoastseo/js/stringProcessing/stripSpaces.js?')},function(module,exports,__webpack_require__){"use strict";eval("\n\nvar isFunction = __webpack_require__(117),\n isLength = __webpack_require__(204);\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\n//////////////////\n// WEBPACK FOOTER\n// /Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isArrayLike.js\n// module id = 36\n// module chunks = 0 1 2\n\n//# sourceURL=webpack:////Users/jimmy/Yoast/vagrant-local/www/wordpress-default/public_html/wp-content/plugins/wordpress-seo/node_modules/lodash/isArrayLike.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\n// This file hosts our error definitions\n// We use custom error \"types\" so that we can act on them when we need it\n// e.g.: if error instanceof errors.UnparsableJSON then..\n\nvar inherits = __webpack_require__(23);\n\nfunction AlgoliaSearchError(message, extraProperties) {\n var forEach = __webpack_require__(38);\n\n var error = this;\n\n // try to get a stacktrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n error.stack = new Error().stack || 'Cannot get a stacktrace, browser is too old';\n }\n\n this.name = 'AlgoliaSearchError';\n this.message = message || 'Unknown error';\n\n if (extraProperties) {\n forEach(extraProperties, function addToErrorObject(value, key) {\n error[key] = value;\n });\n }\n}\n\ninherits(AlgoliaSearchError, Error);\n\nfunction createCustomError(name, message) {\n function AlgoliaSearchCustomError() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n // custom message not set, use default\n if (typeof args[0] !== 'string') {\n args.unshift(message);\n }\n\n AlgoliaSearchError.apply(this, args);\n this.name = 'AlgoliaSearch' + name + 'Error';\n }\n\n inherits(AlgoliaSearchCustomError, AlgoliaSearchError);\n\n return AlgoliaSearchCustomError;\n}\n\n// late exports to let various fn defs and inherits take place\nmodule.exports = {\n AlgoliaSearchError: AlgoliaSearchError,\n UnparsableJSON: createCustomError('UnparsableJSON', 'Could not parse the incoming response as JSON, see err.more for details'),\n RequestTimeout: createCustomError('RequestTimeout', 'Request timedout before getting a response'),\n Network: createCustomError('Network', 'Network issue, see err.more for details'),\n JSONPScriptFail: createCustomError('JSONPScriptFail', '