-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp-ead52c5184c0b3f53abb.js.map
1 lines (1 loc) · 227 KB
/
app-ead52c5184c0b3f53abb.js.map
1
{"version":3,"sources":["webpack:///app-ead52c5184c0b3f53abb.js","webpack:///./.cache/api-runner-browser.js","webpack:///./.cache/async-requires.js","webpack:///./.cache/component-renderer.js","webpack:///./.cache/emitter.js","webpack:///./.cache/find-page.js","webpack:///./.cache/history.js","webpack:///./.cache/json/about.json?e030","webpack:///./.cache/json/basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json?ea7a","webpack:///./.cache/json/categories-artificial-intelligence.json?01c4","webpack:///./.cache/json/categories-blaat.json?f41e","webpack:///./.cache/json/categories-fpga.json?b1d6","webpack:///./.cache/json/categories-jupyter.json?e9d2","webpack:///./.cache/json/first-post.json?6e00","webpack:///./.cache/json/generating-text-using-an-lstm-neural-network.json?c0ef","webpack:///./.cache/json/index.json?9cdc","webpack:///./.cache/json/layout-index.json?fda3","webpack:///./.cache/json/lstm-neural-network-for-sequence-learning.json?191f","webpack:///./.cache/json/nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json?90b5","webpack:///./.cache/json/offline-plugin-app-shell-fallback.json?de51","webpack:///./.cache/json/real-time-sound-synthesis-with-jupyter.json?8271","webpack:///./.cache/json/tags-artificial-intelligence.json?c9d5","webpack:///./.cache/json/tags-audio.json?455f","webpack:///./.cache/json/tags-blog.json?8e52","webpack:///./.cache/json/tags-github.json?620d","webpack:///./.cache/json/tags-javascript.json?19e4","webpack:///./.cache/json/tags-jupyter.json?2723","webpack:///./.cache/json/tags-lstm.json?4e15","webpack:///./.cache/json/tags-microblaze-fpga-sdk.json?3e76","webpack:///./.cache/json/tags-sound.json?54f8","webpack:///./.cache/json/tags-tensorflow.json?963e","webpack:///./.cache/json/tags-vhdl-fpga-dsp.json?9f77","webpack:///./.cache/json/tags-zynq-microblaze-yocto-linux-xilinx.json?234d","webpack:///./.cache/json/tags-zynq-yocto-fpga-linux-xilinx.json?2b25","webpack:///./.cache/json/vhdl-i-2-s-transmitter.json?0186","webpack:///./.cache/json/vhdl-sine-wave-oscillator.json?2fbc","webpack:///./.cache/json/yocto-linux-on-the-xilinx-zynq-zed-board.json?bf5a","webpack:///./.cache/layouts/index.js?2cc6","webpack:///./.cache/loader.js","webpack:///./.cache/pages.json","webpack:///./.cache/prefetcher.js","webpack:///./.cache/production-app.js","webpack:///./.cache/redirects.json","webpack:///./.cache/register-service-worker.js","webpack:///./~/domready/ready.js","webpack:///./~/gatsby-module-loader/patch.js","webpack:///./~/gatsby-plugin-catch-links/catch-links.js","webpack:///./~/gatsby-plugin-catch-links/gatsby-browser.js","webpack:///./~/gatsby-plugin-google-analytics/gatsby-browser.js","webpack:///./~/gatsby-plugin-nprogress/gatsby-browser.js","webpack:///./~/gatsby-plugin-offline/app-shell.js?cca5","webpack:///./~/gatsby-plugin-offline/gatsby-browser.js","webpack:///./~/gatsby-plugin-twitter/gatsby-browser.js","webpack:///./~/gatsby-remark-autolink-headers/gatsby-browser.js","webpack:///./~/mitt/dist/mitt.js","webpack:///./~/nprogress/nprogress.js","webpack:///./src/pages/about.jsx?49e3","webpack:///./src/pages/index.jsx?0f77","webpack:///./src/templates/category.jsx?f806","webpack:///./src/templates/post.jsx?bee5","webpack:///./src/templates/tag.jsx?0d8f"],"names":["webpackJsonp","112","module","exports","__webpack_require__","apiRunner","api","args","defaultReturn","results","plugins","map","plugin","result","options","filter","length","apiRunnerAsync","reduce","previous","next","then","Promise","resolve","__esModule","trackingId","color","283","_exports$json","components","component---node-modules-gatsby-plugin-offline-app-shell-js","component---src-templates-post-jsx","component---src-templates-tag-jsx","component---src-templates-category-jsx","component---src-pages-about-jsx","component---src-pages-index-jsx","json","layout-index.json","offline-plugin-app-shell-fallback.json","layouts","component---src-layouts-index-jsx","284","_interopRequireDefault","obj","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","_extends","assign","target","i","arguments","source","key","hasOwnProperty","_react","_react2","_propTypes","_propTypes2","_loader","_loader2","_emitter","_emitter2","_apiRunnerBrowser","DefaultLayout","_ref","children","createElement","ComponentRenderer","_React$Component","props","this","_this","location","getPage","pathname","state","pageResources","getResourcesForPathname","componentWillReceiveProps","nextProps","_this2","setState","componentDidMount","_this3","on","e","page","path","shouldComponentUpdate","nextState","component","matchPath","render","pluginResponses","loader","replacementComponent","layout","Component","propTypes","bool","object","80","_mitt","_mitt2","emitter","285","_reactRouterDom","pageCache","pages","pathPrefix","undefined","rawPathname","decodeURIComponent","trimmedPathname","slice","split","join","foundPage","some","exact","286","_createBrowserHistory","_createBrowserHistory2","replacementHistory","history","409","cb","_","error","console","log","410","411","412","413","414","415","416","417","7","418","419","420","421","422","423","424","425","426","427","428","429","430","431","432","433","434","435","436","437","403","168","process","publicLoader","_findPage","_findPage2","findPage","syncRequires","asyncRequires","pathScriptsCache","resourceStrCache","resourceCache","pathArray","pathCount","resourcesArray","resourcesCount","preferDefault","m","prefetcher","inInitialRender","getNextQueuedResources","createResourceDownload","resourceName","fetchResource","r","onResourcedFinished","onPreLoadPageResources","onPostLoadPageResources","sortResourcesByCount","a","b","sortPagesByCount","nextTick","resourceFunction","err","executeChunk","getResourceModule","mountOrder","queue","empty","addPagesArray","newPages","addDevRequires","devRequires","addProdRequires","prodRequires","dequeue","pop","enqueue","p","mountOrderBoost","has","unshift","sort","jsonName","indexOf","componentChunkName","onNewResourcesAdded","getResources","getPages","navigator","serviceWorker","controller","getRegistrations","registrations","_iterator","_isArray","Array","isArray","_i","Symbol","iterator","done","registration","unregister","window","reload","emit","layoutComponentChunkName","c","j","l","peek","482","288","pagesLoading","resourcesDownloading","startResourceDownloading","nextResource","push","reducer","action","type","payload","setTimeout","event","getState","0","_reactDom","_reactDom2","_gatsbyReactRouterScroll","_domready","_domready2","_history","_history2","_pages","_pages2","_redirects","_redirects2","_componentRenderer","_componentRenderer2","_asyncRequires","_asyncRequires2","___emitter","___loader","redirectMap","redirect","fromPath","maybeRedirect","replace","toPath","attachToHistory","___history","listen","shouldUpdateScroll","prevRouterProps","oldPathname","navigateTo","eventHandler","off","clearTimeout","timeoutId","___navigateTo","AltRouter","DefaultRouter","_ref2","Router","ComponentRendererWithRouter","withRouter","Root","ScrollContext","layoutProps","Route","routeProps","NewRoot","document","getElementById","483","289","register","reg","addEventListener","installingWorker","installing","catch","388","name","definition","listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","test","readyState","removeEventListener","shift","fn","5","patch","onError","callback","script","head","lastChild","tagName","warn","onload","onerror","failures","querySelector","ensure","chunks","s","chunkId","immediate","handler","438","root","ev","button","altKey","ctrlKey","metaKey","shiftKey","defaultPrevented","anchor","n","parentNode","nodeName","toLowerCase","hash","search","a1","href","a2","host","preventDefault","getAttribute","439","_gatsbyLink","_catchLinks","_catchLinks2","440","onRouteUpdate","ga","441","_nprogress","_nprogress2","onClientEntry","pluginOptions","configure","start","styles","node","id","innerHTML","appendChild","402","443","registerServiceWorker","444","twttr","widgets","load","449","scrollToHash","offsetY","element","offset","offsetTop","scrollTo","531","t","o","splice","533","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","clamp","min","max","toBarPerc","barPositionCSS","speed","ease","barCSS","Settings","positionUsing","transform","margin-left","transition","hasClass","list","classList","addClass","oldList","newList","className","substring","removeClass","removeElement","removeChild","NProgress","version","settings","minimum","easing","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","status","set","started","isStarted","progress","bar","offsetWidth","getPositioningCSS","css","opacity","remove","work","force","inc","Math","random","amount","initial","current","promise","$promise","always","fromStart","isRendered","spinner","perc","body","bodyStyle","style","vendorPrefix","pending","camelCase","string","match","letter","toUpperCase","getVendorProp","vendorName","cssPrefixes","capName","charAt","getStyleProp","cssProps","applyCss","prop","properties","404","405","406","407","408"],"mappings":"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","file":"app-ead52c5184c0b3f53abb.js","sourcesContent":["webpackJsonp([231608221292675],{\n\n/***/ 112:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.apiRunner = apiRunner;\n\texports.apiRunnerAsync = apiRunnerAsync;\n\tvar plugins = [{\n\t plugin: __webpack_require__(449),\n\t options: { \"plugins\": [] }\n\t}, {\n\t plugin: __webpack_require__(440),\n\t options: { \"plugins\": [], \"trackingId\": \"UA-110475271-1\" }\n\t}, {\n\t plugin: __webpack_require__(441),\n\t options: { \"plugins\": [], \"color\": \"#c62828\" }\n\t}, {\n\t plugin: __webpack_require__(439),\n\t options: { \"plugins\": [] }\n\t}, {\n\t plugin: __webpack_require__(444),\n\t options: { \"plugins\": [] }\n\t}, {\n\t plugin: __webpack_require__(443),\n\t options: { \"plugins\": [] }\n\t}];\n\t// During bootstrap, we write requires at top of this file which looks\n\t// basically like:\n\t// var plugins = [\n\t// require('/path/to/plugin1/gatsby-browser.js'),\n\t// require('/path/to/plugin2/gatsby-browser.js'),\n\t// ]\n\t\n\tfunction apiRunner(api, args, defaultReturn) {\n\t var results = plugins.map(function (plugin) {\n\t if (plugin.plugin[api]) {\n\t var result = plugin.plugin[api](args, plugin.options);\n\t return result;\n\t }\n\t });\n\t\n\t // Filter out undefined results.\n\t results = results.filter(function (result) {\n\t return typeof result !== 'undefined';\n\t });\n\t\n\t if (results.length > 0) {\n\t return results;\n\t } else if (defaultReturn) {\n\t return [defaultReturn];\n\t } else {\n\t return [];\n\t }\n\t}\n\t\n\tfunction apiRunnerAsync(api, args, defaultReturn) {\n\t return plugins.reduce(function (previous, next) {\n\t return next.plugin[api] ? previous.then(function () {\n\t return next.plugin[api](args, next.options);\n\t }) : previous;\n\t }, Promise.resolve());\n\t}\n\n/***/ }),\n\n/***/ 283:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _exports$json;\n\t\n\t// prefer default export if available\n\tvar preferDefault = function preferDefault(m) {\n\t return m && m.default || m;\n\t};\n\t\n\texports.components = {\n\t \"component---node-modules-gatsby-plugin-offline-app-shell-js\": __webpack_require__(402),\n\t \"component---src-templates-post-jsx\": __webpack_require__(407),\n\t \"component---src-templates-tag-jsx\": __webpack_require__(408),\n\t \"component---src-templates-category-jsx\": __webpack_require__(406),\n\t \"component---src-pages-about-jsx\": __webpack_require__(404),\n\t \"component---src-pages-index-jsx\": __webpack_require__(405)\n\t};\n\t\n\texports.json = (_exports$json = {\n\t \"layout-index.json\": __webpack_require__(7),\n\t \"offline-plugin-app-shell-fallback.json\": __webpack_require__(420)\n\t}, _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"first-post.json\"] = __webpack_require__(415), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"generating-text-using-an-lstm-neural-network.json\"] = __webpack_require__(416), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"vhdl-i-2-s-transmitter.json\"] = __webpack_require__(435), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"vhdl-sine-wave-oscillator.json\"] = __webpack_require__(436), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"yocto-linux-on-the-xilinx-zynq-zed-board.json\"] = __webpack_require__(437), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\"] = __webpack_require__(419), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"real-time-sound-synthesis-with-jupyter.json\"] = __webpack_require__(421), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"lstm-neural-network-for-sequence-learning.json\"] = __webpack_require__(418), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\"] = __webpack_require__(410), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-github.json\"] = __webpack_require__(425), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-blog.json\"] = __webpack_require__(424), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-artificial-intelligence.json\"] = __webpack_require__(422), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-lstm.json\"] = __webpack_require__(428), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-vhdl-fpga-dsp.json\"] = __webpack_require__(432), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-zynq-yocto-fpga-linux-xilinx.json\"] = __webpack_require__(434), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-microblaze-fpga-sdk.json\"] = __webpack_require__(429), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-audio.json\"] = __webpack_require__(423), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-sound.json\"] = __webpack_require__(430), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-jupyter.json\"] = __webpack_require__(427), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-javascript.json\"] = __webpack_require__(426), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-tensorflow.json\"] = __webpack_require__(431), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"tags-zynq-microblaze-yocto-linux-xilinx.json\"] = __webpack_require__(433), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"categories-blaat.json\"] = __webpack_require__(412), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"categories-artificial-intelligence.json\"] = __webpack_require__(411), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"categories-fpga.json\"] = __webpack_require__(413), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"categories-jupyter.json\"] = __webpack_require__(414), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"about.json\"] = __webpack_require__(409), _exports$json[\"layout-index.json\"] = __webpack_require__(7), _exports$json[\"index.json\"] = __webpack_require__(417), _exports$json);\n\t\n\texports.layouts = {\n\t \"component---src-layouts-index-jsx\": __webpack_require__(403)\n\t};\n\n/***/ }),\n\n/***/ 284:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _loader = __webpack_require__(168);\n\t\n\tvar _loader2 = _interopRequireDefault(_loader);\n\t\n\tvar _emitter = __webpack_require__(80);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _apiRunnerBrowser = __webpack_require__(112);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar DefaultLayout = function DefaultLayout(_ref) {\n\t var children = _ref.children;\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t children()\n\t );\n\t};\n\t\n\t// Pass pathname in as prop.\n\t// component will try fetching resources. If they exist,\n\t// will just render, else will render null.\n\t\n\tvar ComponentRenderer = function (_React$Component) {\n\t _inherits(ComponentRenderer, _React$Component);\n\t\n\t function ComponentRenderer(props) {\n\t _classCallCheck(this, ComponentRenderer);\n\t\n\t var _this = _possibleConstructorReturn(this, _React$Component.call(this));\n\t\n\t var location = props.location;\n\t\n\t // This covers layout for when page not found, especially during production\n\t if (!_loader2.default.getPage(location.pathname)) {\n\t location = _extends({}, location, _extends({}, location, {\n\t pathname: \"/404.html\"\n\t }));\n\t }\n\t\n\t _this.state = {\n\t location: location,\n\t pageResources: _loader2.default.getResourcesForPathname(props.location.pathname)\n\t };\n\t return _this;\n\t }\n\t\n\t ComponentRenderer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t var _this2 = this;\n\t\n\t // During development, always pass a component's JSON through so graphql\n\t // updates go through.\n\t if (false) {\n\t if (nextProps && nextProps.pageResources && nextProps.pageResources.json) {\n\t this.setState({ pageResources: nextProps.pageResources });\n\t }\n\t }\n\t if (this.state.location.pathname !== nextProps.location.pathname) {\n\t var pageResources = _loader2.default.getResourcesForPathname(nextProps.location.pathname);\n\t if (!pageResources) {\n\t // Page resources won't be set in cases where the browser back button\n\t // or forward button is pushed as we can't wait as normal for resources\n\t // to load before changing the page.\n\t _loader2.default.getResourcesForPathname(nextProps.location.pathname, function (pageResources) {\n\t _this2.setState({\n\t location: nextProps.location,\n\t pageResources: pageResources\n\t });\n\t });\n\t } else {\n\t this.setState({\n\t location: nextProps.location,\n\t pageResources: pageResources\n\t });\n\t }\n\t }\n\t };\n\t\n\t ComponentRenderer.prototype.componentDidMount = function componentDidMount() {\n\t var _this3 = this;\n\t\n\t // Listen to events so when our page gets updated, we can transition.\n\t // This is only useful on delayed transitions as the page will get rendered\n\t // without the necessary page resources and then re-render once those come in.\n\t _emitter2.default.on(\"onPostLoadPageResources\", function (e) {\n\t if (_loader2.default.getPage(_this3.state.location.pathname) && e.page.path === _loader2.default.getPage(_this3.state.location.pathname).path) {\n\t _this3.setState({ pageResources: e.pageResources });\n\t }\n\t });\n\t };\n\t\n\t ComponentRenderer.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n\t // 404\n\t if (!nextState.pageResources) {\n\t return true;\n\t }\n\t\n\t // Check if the component or json have changed.\n\t if (!this.state.pageResources && nextState.pageResources) {\n\t return true;\n\t }\n\t\n\t if (this.state.pageResources.component !== nextState.pageResources.component) {\n\t return true;\n\t }\n\t\n\t if (this.state.pageResources.json !== nextState.pageResources.json) {\n\t return true;\n\t }\n\t\n\t // Check if location has changed on a page using internal routing\n\t // via matchPath configuration.\n\t if (this.state.location.key !== nextState.location.key && nextState.pageResources.page && (nextState.pageResources.page.matchPath || nextState.pageResources.page.path)) {\n\t return true;\n\t }\n\t\n\t return false;\n\t };\n\t\n\t ComponentRenderer.prototype.render = function render() {\n\t var pluginResponses = (0, _apiRunnerBrowser.apiRunner)(\"replaceComponentRenderer\", {\n\t props: _extends({}, this.props, { pageResources: this.state.pageResources }),\n\t loader: _loader.publicLoader\n\t });\n\t var replacementComponent = pluginResponses[0];\n\t // If page.\n\t if (this.props.page) {\n\t if (this.state.pageResources) {\n\t return replacementComponent || (0, _react.createElement)(this.state.pageResources.component, _extends({\n\t key: this.props.location.pathname\n\t }, this.props, this.state.pageResources.json));\n\t } else {\n\t return null;\n\t }\n\t // If layout.\n\t } else if (this.props.layout) {\n\t return replacementComponent || (0, _react.createElement)(this.state.pageResources && this.state.pageResources.layout ? this.state.pageResources.layout : DefaultLayout, _extends({\n\t key: this.state.pageResources && this.state.pageResources.layout ? this.state.pageResources.layout : \"DefaultLayout\"\n\t }, this.props));\n\t } else {\n\t return null;\n\t }\n\t };\n\t\n\t return ComponentRenderer;\n\t}(_react2.default.Component);\n\t\n\tComponentRenderer.propTypes = {\n\t page: _propTypes2.default.bool,\n\t layout: _propTypes2.default.bool,\n\t location: _propTypes2.default.object\n\t};\n\t\n\texports.default = ComponentRenderer;\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n\n/***/ 80:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _mitt = __webpack_require__(531);\n\t\n\tvar _mitt2 = _interopRequireDefault(_mitt);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar emitter = (0, _mitt2.default)();\n\tmodule.exports = emitter;\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _reactRouterDom = __webpack_require__(109);\n\t\n\tvar pageCache = {}; // TODO add tests especially for handling prefixed links.\n\t\n\t\n\tmodule.exports = function (pages) {\n\t var pathPrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\t return function (rawPathname) {\n\t var pathname = decodeURIComponent(rawPathname);\n\t // Remove the pathPrefix from the pathname.\n\t var trimmedPathname = pathname.slice(pathPrefix.length);\n\t\n\t // Remove any hashfragment\n\t if (trimmedPathname.split(\"#\").length > 1) {\n\t trimmedPathname = trimmedPathname.split(\"#\").slice(0, -1).join(\"\");\n\t }\n\t\n\t // Remove search query\n\t if (trimmedPathname.split(\"?\").length > 1) {\n\t trimmedPathname = trimmedPathname.split(\"?\").slice(0, -1).join(\"\");\n\t }\n\t\n\t if (pageCache[trimmedPathname]) {\n\t return pageCache[trimmedPathname];\n\t }\n\t\n\t var foundPage = void 0;\n\t // Array.prototype.find is not supported in IE so we use this somewhat odd\n\t // work around.\n\t pages.some(function (page) {\n\t if (page.matchPath) {\n\t // Try both the path and matchPath\n\t if ((0, _reactRouterDom.matchPath)(trimmedPathname, { path: page.path }) || (0, _reactRouterDom.matchPath)(trimmedPathname, {\n\t path: page.matchPath\n\t })) {\n\t foundPage = page;\n\t pageCache[trimmedPathname] = page;\n\t return true;\n\t }\n\t } else {\n\t if ((0, _reactRouterDom.matchPath)(trimmedPathname, {\n\t path: page.path,\n\t exact: true\n\t })) {\n\t foundPage = page;\n\t pageCache[trimmedPathname] = page;\n\t return true;\n\t }\n\t\n\t // Finally, try and match request with default document.\n\t if ((0, _reactRouterDom.matchPath)(trimmedPathname, {\n\t path: page.path + \"index.html\"\n\t })) {\n\t foundPage = page;\n\t pageCache[trimmedPathname] = page;\n\t return true;\n\t }\n\t }\n\t\n\t return false;\n\t });\n\t\n\t return foundPage;\n\t };\n\t};\n\n/***/ }),\n\n/***/ 286:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _createBrowserHistory = __webpack_require__(133);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _apiRunnerBrowser = __webpack_require__(112);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar pluginResponses = (0, _apiRunnerBrowser.apiRunner)(\"replaceHistory\");\n\tvar replacementHistory = pluginResponses[0];\n\tvar history = replacementHistory || (0, _createBrowserHistory2.default)();\n\tmodule.exports = history;\n\n/***/ }),\n\n/***/ 409:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(273950069227526, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(453) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 410:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(215454216127061, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(454) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 411:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(19120532712671, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(455) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 412:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(28831943093088, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(456) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 413:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(170999283722127, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(457) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 414:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(237721887957054, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(458) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 415:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(98749194253172, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(459) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 416:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(269976026368624, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(460) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 417:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(142629428675168, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(461) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(60335399758886, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(135) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 418:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(75487621532073, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(462) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 419:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(55742354164186, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(463) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 420:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(210333531512890, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(464) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 421:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(152973645723092, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(465) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 422:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(92932695606945, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(466) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 423:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(154462359958523, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(467) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 424:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(17976388717192, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(468) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 425:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(260759634830010, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(469) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 426:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(67335324583948, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(470) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 427:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(255169366617017, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(471) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 428:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(66827178591201, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(472) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 429:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(50219004700979, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(473) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 430:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(210537118814002, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(474) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 431:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(151285986489463, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(475) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 432:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(127133139012176, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(476) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 433:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(40119179568915, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(477) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 434:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(153523028778388, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(478) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 435:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(137055218471202, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(479) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 436:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(36940768073078, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(480) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 437:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(58298523367970, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(481) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 403:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(79611799117203, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(287) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 168:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {\"use strict\";\n\t\n\texports.__esModule = true;\n\texports.publicLoader = undefined;\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _findPage = __webpack_require__(285);\n\t\n\tvar _findPage2 = _interopRequireDefault(_findPage);\n\t\n\tvar _emitter = __webpack_require__(80);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar findPage = void 0;\n\t\n\tvar syncRequires = {};\n\tvar asyncRequires = {};\n\tvar pathScriptsCache = {};\n\tvar resourceStrCache = {};\n\tvar resourceCache = {};\n\tvar pages = [];\n\t// Note we're not actively using the path data atm. There\n\t// could be future optimizations however around trying to ensure\n\t// we load all resources for likely-to-be-visited paths.\n\tvar pathArray = [];\n\tvar pathCount = {};\n\tvar resourcesArray = [];\n\tvar resourcesCount = {};\n\tvar preferDefault = function preferDefault(m) {\n\t return m && m.default || m;\n\t};\n\tvar prefetcher = void 0;\n\tvar inInitialRender = true;\n\t\n\t// Prefetcher logic\n\tif (true) {\n\t prefetcher = __webpack_require__(288)({\n\t getNextQueuedResources: function getNextQueuedResources() {\n\t return resourcesArray.slice(-1)[0];\n\t },\n\t createResourceDownload: function createResourceDownload(resourceName) {\n\t fetchResource(resourceName, function () {\n\t resourcesArray = resourcesArray.filter(function (r) {\n\t return r !== resourceName;\n\t });\n\t prefetcher.onResourcedFinished(resourceName);\n\t });\n\t }\n\t });\n\t _emitter2.default.on(\"onPreLoadPageResources\", function (e) {\n\t prefetcher.onPreLoadPageResources(e);\n\t });\n\t _emitter2.default.on(\"onPostLoadPageResources\", function (e) {\n\t prefetcher.onPostLoadPageResources(e);\n\t });\n\t}\n\t\n\tvar sortResourcesByCount = function sortResourcesByCount(a, b) {\n\t if (resourcesCount[a] > resourcesCount[b]) {\n\t return 1;\n\t } else if (resourcesCount[a] < resourcesCount[b]) {\n\t return -1;\n\t } else {\n\t return 0;\n\t }\n\t};\n\t\n\tvar sortPagesByCount = function sortPagesByCount(a, b) {\n\t if (pathCount[a] > pathCount[b]) {\n\t return 1;\n\t } else if (pathCount[a] < pathCount[b]) {\n\t return -1;\n\t } else {\n\t return 0;\n\t }\n\t};\n\t\n\tvar fetchResource = function fetchResource(resourceName) {\n\t var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\t\n\t if (resourceStrCache[resourceName]) {\n\t process.nextTick(function () {\n\t cb(null, resourceStrCache[resourceName]);\n\t });\n\t } else {\n\t // Find resource\n\t var resourceFunction = resourceName.slice(0, 12) === \"component---\" ? asyncRequires.components[resourceName] || asyncRequires.layouts[resourceName] : asyncRequires.json[resourceName];\n\t\n\t // Download the resource\n\t resourceFunction(function (err, executeChunk) {\n\t resourceStrCache[resourceName] = executeChunk;\n\t cb(err, executeChunk);\n\t });\n\t }\n\t};\n\t\n\tvar getResourceModule = function getResourceModule(resourceName, cb) {\n\t if (resourceCache[resourceName]) {\n\t process.nextTick(function () {\n\t cb(null, resourceCache[resourceName]);\n\t });\n\t } else {\n\t fetchResource(resourceName, function (err, executeChunk) {\n\t if (err) {\n\t cb(err);\n\t } else {\n\t var module = preferDefault(executeChunk());\n\t resourceCache[resourceName] = module;\n\t cb(err, module);\n\t }\n\t });\n\t }\n\t};\n\t\n\tvar mountOrder = 1;\n\tvar queue = {\n\t empty: function empty() {\n\t pathArray = [];\n\t pathCount = {};\n\t resourcesCount = {};\n\t resourcesArray = [];\n\t pages = [];\n\t },\n\t addPagesArray: function addPagesArray(newPages) {\n\t pages = newPages;\n\t var pathPrefix = \"\";\n\t if (true) {\n\t pathPrefix = (\"\");\n\t }\n\t findPage = (0, _findPage2.default)(newPages, pathPrefix);\n\t },\n\t addDevRequires: function addDevRequires(devRequires) {\n\t syncRequires = devRequires;\n\t },\n\t addProdRequires: function addProdRequires(prodRequires) {\n\t asyncRequires = prodRequires;\n\t },\n\t dequeue: function dequeue(path) {\n\t return pathArray.pop();\n\t },\n\t enqueue: function enqueue(path) {\n\t // Check page exists.\n\t if (!pages.some(function (p) {\n\t return p.path === path;\n\t })) {\n\t return false;\n\t }\n\t\n\t var mountOrderBoost = 1 / mountOrder;\n\t mountOrder += 1;\n\t // console.log(\n\t // `enqueue \"${path}\", mountOrder: \"${mountOrder}, mountOrderBoost: ${mountOrderBoost}`\n\t // )\n\t\n\t // Add to path counts.\n\t if (!pathCount[path]) {\n\t pathCount[path] = 1;\n\t } else {\n\t pathCount[path] += 1;\n\t }\n\t\n\t // Add path to queue.\n\t if (!queue.has(path)) {\n\t pathArray.unshift(path);\n\t }\n\t\n\t // Sort pages by pathCount\n\t pathArray.sort(sortPagesByCount);\n\t\n\t // Add resources to queue.\n\t var page = findPage(path);\n\t if (page.jsonName) {\n\t if (!resourcesCount[page.jsonName]) {\n\t resourcesCount[page.jsonName] = 1 + mountOrderBoost;\n\t } else {\n\t resourcesCount[page.jsonName] += 1 + mountOrderBoost;\n\t }\n\t\n\t // Before adding, checking that the JSON resource isn't either\n\t // already queued or been downloading.\n\t if (resourcesArray.indexOf(page.jsonName) === -1 && !resourceStrCache[page.jsonName]) {\n\t resourcesArray.unshift(page.jsonName);\n\t }\n\t }\n\t if (page.componentChunkName) {\n\t if (!resourcesCount[page.componentChunkName]) {\n\t resourcesCount[page.componentChunkName] = 1 + mountOrderBoost;\n\t } else {\n\t resourcesCount[page.componentChunkName] += 1 + mountOrderBoost;\n\t }\n\t\n\t // Before adding, checking that the component resource isn't either\n\t // already queued or been downloading.\n\t if (resourcesArray.indexOf(page.componentChunkName) === -1 && !resourceStrCache[page.jsonName]) {\n\t resourcesArray.unshift(page.componentChunkName);\n\t }\n\t }\n\t\n\t // Sort resources by resourcesCount.\n\t resourcesArray.sort(sortResourcesByCount);\n\t if (true) {\n\t prefetcher.onNewResourcesAdded();\n\t }\n\t\n\t return true;\n\t },\n\t getResources: function getResources() {\n\t return {\n\t resourcesArray: resourcesArray,\n\t resourcesCount: resourcesCount\n\t };\n\t },\n\t getPages: function getPages() {\n\t return {\n\t pathArray: pathArray,\n\t pathCount: pathCount\n\t };\n\t },\n\t getPage: function getPage(pathname) {\n\t return findPage(pathname);\n\t },\n\t has: function has(path) {\n\t return pathArray.some(function (p) {\n\t return p === path;\n\t });\n\t },\n\t getResourcesForPathname: function getResourcesForPathname(path) {\n\t var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\t\n\t if (inInitialRender && navigator && navigator.serviceWorker && navigator.serviceWorker.controller && navigator.serviceWorker.controller.state === \"activated\") {\n\t // If we're loading from a service worker (it's already activated on\n\t // this initial render) and we can't find a page, there's a good chance\n\t // we're on a new page that this (now old) service worker doesn't know\n\t // about so we'll unregister it and reload.\n\t if (!findPage(path)) {\n\t navigator.serviceWorker.getRegistrations().then(function (registrations) {\n\t // We would probably need this to\n\t // prevent unnecessary reloading of the page\n\t // while unregistering of ServiceWorker is not happening\n\t if (registrations.length) {\n\t for (var _iterator = registrations, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n\t var _ref;\n\t\n\t if (_isArray) {\n\t if (_i >= _iterator.length) break;\n\t _ref = _iterator[_i++];\n\t } else {\n\t _i = _iterator.next();\n\t if (_i.done) break;\n\t _ref = _i.value;\n\t }\n\t\n\t var registration = _ref;\n\t\n\t registration.unregister();\n\t }\n\t window.location.reload();\n\t }\n\t });\n\t }\n\t }\n\t inInitialRender = false;\n\t // In development we know the code is loaded already\n\t // so we just return with it immediately.\n\t if (false) {\n\t var page = findPage(path);\n\t if (!page) return cb();\n\t var pageResources = {\n\t component: syncRequires.components[page.componentChunkName],\n\t json: syncRequires.json[page.jsonName],\n\t layout: syncRequires.layouts[page.layoutComponentChunkName],\n\t page: page\n\t };\n\t cb(pageResources);\n\t return pageResources;\n\t // Production code path\n\t } else {\n\t var _page = findPage(path);\n\t\n\t if (!_page) {\n\t console.log(\"A page wasn't found for \\\"\" + path + \"\\\"\");\n\t return cb();\n\t }\n\t\n\t // Use the path from the page so the pathScriptsCache uses\n\t // the normalized path.\n\t path = _page.path;\n\t\n\t // Check if it's in the cache already.\n\t if (pathScriptsCache[path]) {\n\t process.nextTick(function () {\n\t cb(pathScriptsCache[path]);\n\t _emitter2.default.emit(\"onPostLoadPageResources\", {\n\t page: _page,\n\t pageResources: pathScriptsCache[path]\n\t });\n\t });\n\t return pathScriptsCache[path];\n\t }\n\t\n\t _emitter2.default.emit(\"onPreLoadPageResources\", { path: path });\n\t // Nope, we need to load resource(s)\n\t var component = void 0;\n\t var json = void 0;\n\t var layout = void 0;\n\t // Load the component/json/layout and parallel and call this\n\t // function when they're done loading. When both are loaded,\n\t // we move on.\n\t var done = function done() {\n\t if (component && json && (!_page.layoutComponentChunkName || layout)) {\n\t pathScriptsCache[path] = { component: component, json: json, layout: layout, page: _page };\n\t var _pageResources = { component: component, json: json, layout: layout, page: _page };\n\t cb(_pageResources);\n\t _emitter2.default.emit(\"onPostLoadPageResources\", {\n\t page: _page,\n\t pageResources: _pageResources\n\t });\n\t }\n\t };\n\t getResourceModule(_page.componentChunkName, function (err, c) {\n\t if (err) {\n\t console.log(\"Loading the component for \" + _page.path + \" failed\");\n\t }\n\t component = c;\n\t done();\n\t });\n\t getResourceModule(_page.jsonName, function (err, j) {\n\t if (err) {\n\t console.log(\"Loading the JSON for \" + _page.path + \" failed\");\n\t }\n\t json = j;\n\t done();\n\t });\n\t\n\t _page.layoutComponentChunkName && getResourceModule(_page.layoutComponentChunkName, function (err, l) {\n\t if (err) {\n\t console.log(\"Loading the Layout for \" + _page.path + \" failed\");\n\t }\n\t layout = l;\n\t done();\n\t });\n\t\n\t return undefined;\n\t }\n\t },\n\t peek: function peek(path) {\n\t return pathArray.slice(-1)[0];\n\t },\n\t length: function length() {\n\t return pathArray.length;\n\t },\n\t indexOf: function indexOf(path) {\n\t return pathArray.length - pathArray.indexOf(path) - 1;\n\t }\n\t};\n\t\n\tvar publicLoader = exports.publicLoader = {\n\t getResourcesForPathname: queue.getResourcesForPathname\n\t};\n\t\n\texports.default = queue;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(53)))\n\n/***/ }),\n\n/***/ 482:\n/***/ (function(module, exports) {\n\n\tmodule.exports = [{\"componentChunkName\":\"component---node-modules-gatsby-plugin-offline-app-shell-js\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"offline-plugin-app-shell-fallback.json\",\"path\":\"/offline-plugin-app-shell-fallback/\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"first-post.json\",\"path\":\"/first-post\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"generating-text-using-an-lstm-neural-network.json\",\"path\":\"/generating-text-using-an-lstm-neural-network\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"vhdl-i-2-s-transmitter.json\",\"path\":\"/vhdl-i-2-s-transmitter\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"vhdl-sine-wave-oscillator.json\",\"path\":\"/vhdl-sine-wave-oscillator\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"yocto-linux-on-the-xilinx-zynq-zed-board.json\",\"path\":\"/yocto-linux-on-the-xilinx-zynq-zed-board\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\",\"path\":\"/nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"real-time-sound-synthesis-with-jupyter.json\",\"path\":\"/real-time-sound-synthesis-with-jupyter\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"lstm-neural-network-for-sequence-learning.json\",\"path\":\"/lstm-neural-network-for-sequence-learning\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\",\"path\":\"/basic-asymmetric-multi-processor-amp-setup-on-the-zedboard\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-github.json\",\"path\":\"/tags/github/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-blog.json\",\"path\":\"/tags/blog/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-artificial-intelligence.json\",\"path\":\"/tags/artificial-intelligence/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-lstm.json\",\"path\":\"/tags/lstm/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-vhdl-fpga-dsp.json\",\"path\":\"/tags/vhdl-fpga-dsp/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-zynq-yocto-fpga-linux-xilinx.json\",\"path\":\"/tags/zynq-yocto-fpga-linux-xilinx/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-microblaze-fpga-sdk.json\",\"path\":\"/tags/microblaze-fpga-sdk/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-audio.json\",\"path\":\"/tags/audio/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-sound.json\",\"path\":\"/tags/sound/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-jupyter.json\",\"path\":\"/tags/jupyter/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-javascript.json\",\"path\":\"/tags/javascript/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-tensorflow.json\",\"path\":\"/tags/tensorflow/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-zynq-microblaze-yocto-linux-xilinx.json\",\"path\":\"/tags/zynq-microblaze-yocto-linux-xilinx/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-blaat.json\",\"path\":\"/categories/blaat/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-artificial-intelligence.json\",\"path\":\"/categories/artificial-intelligence/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-fpga.json\",\"path\":\"/categories/fpga/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-jupyter.json\",\"path\":\"/categories/jupyter/\"},{\"componentChunkName\":\"component---src-pages-about-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"about.json\",\"path\":\"/about/\"},{\"componentChunkName\":\"component---src-pages-index-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"index.json\",\"path\":\"/\"}]\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (_ref) {\n\t var getNextQueuedResources = _ref.getNextQueuedResources,\n\t createResourceDownload = _ref.createResourceDownload;\n\t\n\t var pagesLoading = [];\n\t var resourcesDownloading = [];\n\t\n\t // Do things\n\t var startResourceDownloading = function startResourceDownloading() {\n\t var nextResource = getNextQueuedResources();\n\t if (nextResource) {\n\t resourcesDownloading.push(nextResource);\n\t createResourceDownload(nextResource);\n\t }\n\t };\n\t\n\t var reducer = function reducer(action) {\n\t switch (action.type) {\n\t case \"RESOURCE_FINISHED\":\n\t resourcesDownloading = resourcesDownloading.filter(function (r) {\n\t return r !== action.payload;\n\t });\n\t break;\n\t case \"ON_PRE_LOAD_PAGE_RESOURCES\":\n\t pagesLoading.push(action.payload.path);\n\t break;\n\t case \"ON_POST_LOAD_PAGE_RESOURCES\":\n\t pagesLoading = pagesLoading.filter(function (p) {\n\t return p !== action.payload.page.path;\n\t });\n\t break;\n\t case \"ON_NEW_RESOURCES_ADDED\":\n\t break;\n\t }\n\t\n\t // Take actions.\n\t // Wait for event loop queue to finish.\n\t setTimeout(function () {\n\t if (resourcesDownloading.length === 0 && pagesLoading.length === 0) {\n\t // Start another resource downloading.\n\t startResourceDownloading();\n\t }\n\t }, 0);\n\t };\n\t\n\t return {\n\t onResourcedFinished: function onResourcedFinished(event) {\n\t // Tell prefetcher that the resource finished downloading\n\t // so it can grab the next one.\n\t reducer({ type: \"RESOURCE_FINISHED\", payload: event });\n\t },\n\t onPreLoadPageResources: function onPreLoadPageResources(event) {\n\t // Tell prefetcher a page load has started so it should stop\n\t // loading anything new\n\t reducer({ type: \"ON_PRE_LOAD_PAGE_RESOURCES\", payload: event });\n\t },\n\t onPostLoadPageResources: function onPostLoadPageResources(event) {\n\t // Tell prefetcher a page load has finished so it should start\n\t // loading resources again.\n\t reducer({ type: \"ON_POST_LOAD_PAGE_RESOURCES\", payload: event });\n\t },\n\t onNewResourcesAdded: function onNewResourcesAdded() {\n\t // Tell prefetcher that more resources to be downloaded have\n\t // been added.\n\t reducer({ type: \"ON_NEW_RESOURCES_ADDED\" });\n\t },\n\t getState: function getState() {\n\t return { pagesLoading: pagesLoading, resourcesDownloading: resourcesDownloading };\n\t },\n\t empty: function empty() {\n\t pagesLoading = [];\n\t resourcesDownloading = [];\n\t }\n\t };\n\t};\n\n/***/ }),\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _apiRunnerBrowser = __webpack_require__(112);\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(11);\n\t\n\tvar _reactDom2 = _interopRequireDefault(_reactDom);\n\t\n\tvar _reactRouterDom = __webpack_require__(109);\n\t\n\tvar _gatsbyReactRouterScroll = __webpack_require__(448);\n\t\n\tvar _domready = __webpack_require__(388);\n\t\n\tvar _domready2 = _interopRequireDefault(_domready);\n\t\n\tvar _history = __webpack_require__(286);\n\t\n\tvar _history2 = _interopRequireDefault(_history);\n\t\n\tvar _emitter = __webpack_require__(80);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tvar _pages = __webpack_require__(482);\n\t\n\tvar _pages2 = _interopRequireDefault(_pages);\n\t\n\tvar _redirects = __webpack_require__(483);\n\t\n\tvar _redirects2 = _interopRequireDefault(_redirects);\n\t\n\tvar _componentRenderer = __webpack_require__(284);\n\t\n\tvar _componentRenderer2 = _interopRequireDefault(_componentRenderer);\n\t\n\tvar _asyncRequires = __webpack_require__(283);\n\t\n\tvar _asyncRequires2 = _interopRequireDefault(_asyncRequires);\n\t\n\tvar _loader = __webpack_require__(168);\n\t\n\tvar _loader2 = _interopRequireDefault(_loader);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tif (true) {\n\t __webpack_require__(376);\n\t}\n\t\n\twindow.___emitter = _emitter2.default;\n\t\n\t_loader2.default.addPagesArray(_pages2.default);\n\t_loader2.default.addProdRequires(_asyncRequires2.default);\n\twindow.asyncRequires = _asyncRequires2.default;\n\twindow.___loader = _loader2.default;\n\twindow.matchPath = _reactRouterDom.matchPath;\n\t\n\t// Convert to a map for faster lookup in maybeRedirect()\n\tvar redirectMap = _redirects2.default.reduce(function (map, redirect) {\n\t map[redirect.fromPath] = redirect;\n\t return map;\n\t}, {});\n\t\n\tvar maybeRedirect = function maybeRedirect(pathname) {\n\t var redirect = redirectMap[pathname];\n\t\n\t if (redirect != null) {\n\t _history2.default.replace(redirect.toPath);\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t};\n\t\n\t// Check for initial page-load redirect\n\tmaybeRedirect(window.location.pathname);\n\t\n\t// Let the site/plugins run code very early.\n\t(0, _apiRunnerBrowser.apiRunnerAsync)(\"onClientEntry\").then(function () {\n\t // Let plugins register a service worker. The plugin just needs\n\t // to return true.\n\t if ((0, _apiRunnerBrowser.apiRunner)(\"registerServiceWorker\").length > 0) {\n\t __webpack_require__(289);\n\t }\n\t\n\t var navigateTo = function navigateTo(pathname) {\n\t var redirect = redirectMap[pathname];\n\t\n\t // If we're redirecting, just replace the passed in pathname\n\t // to the one we want to redirect to.\n\t if (redirect) {\n\t pathname = redirect.toPath;\n\t }\n\t\n\t // If we're already at this path, do nothing.\n\t if (window.location.pathname === pathname) {\n\t return;\n\t }\n\t\n\t // Listen to loading events. If page resources load before\n\t // a second, navigate immediately.\n\t function eventHandler(e) {\n\t if (e.page.path === _loader2.default.getPage(pathname).path) {\n\t _emitter2.default.off(\"onPostLoadPageResources\", eventHandler);\n\t clearTimeout(timeoutId);\n\t window.___history.push(pathname);\n\t }\n\t }\n\t\n\t // Start a timer to wait for a second before transitioning and showing a\n\t // loader in case resources aren't around yet.\n\t var timeoutId = setTimeout(function () {\n\t _emitter2.default.off(\"onPostLoadPageResources\", eventHandler);\n\t _emitter2.default.emit(\"onDelayedLoadPageResources\", { pathname: pathname });\n\t window.___history.push(pathname);\n\t }, 1000);\n\t\n\t if (_loader2.default.getResourcesForPathname(pathname)) {\n\t // The resources are already loaded so off we go.\n\t clearTimeout(timeoutId);\n\t window.___history.push(pathname);\n\t } else {\n\t // They're not loaded yet so let's add a listener for when\n\t // they finish loading.\n\t _emitter2.default.on(\"onPostLoadPageResources\", eventHandler);\n\t }\n\t };\n\t\n\t // window.___loadScriptsForPath = loadScriptsForPath\n\t window.___navigateTo = navigateTo;\n\t\n\t // Call onRouteUpdate on the initial page load.\n\t (0, _apiRunnerBrowser.apiRunner)(\"onRouteUpdate\", {\n\t location: _history2.default.location,\n\t action: _history2.default.action\n\t });\n\t\n\t function attachToHistory(history) {\n\t if (!window.___history) {\n\t window.___history = history;\n\t\n\t history.listen(function (location, action) {\n\t if (!maybeRedirect(location.pathname)) {\n\t (0, _apiRunnerBrowser.apiRunner)(\"onRouteUpdate\", { location: location, action: action });\n\t }\n\t });\n\t }\n\t }\n\t\n\t function shouldUpdateScroll(prevRouterProps, _ref) {\n\t var pathname = _ref.location.pathname;\n\t\n\t var results = (0, _apiRunnerBrowser.apiRunner)(\"shouldUpdateScroll\", {\n\t prevRouterProps: prevRouterProps,\n\t pathname: pathname\n\t });\n\t if (results.length > 0) {\n\t return results[0];\n\t }\n\t\n\t if (prevRouterProps) {\n\t var oldPathname = prevRouterProps.location.pathname;\n\t\n\t if (oldPathname === pathname) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t }\n\t\n\t var AltRouter = (0, _apiRunnerBrowser.apiRunner)(\"replaceRouterComponent\", { history: _history2.default })[0];\n\t var DefaultRouter = function DefaultRouter(_ref2) {\n\t var children = _ref2.children;\n\t return _react2.default.createElement(\n\t _reactRouterDom.Router,\n\t { history: _history2.default },\n\t children\n\t );\n\t };\n\t\n\t var ComponentRendererWithRouter = (0, _reactRouterDom.withRouter)(_componentRenderer2.default);\n\t\n\t _loader2.default.getResourcesForPathname(window.location.pathname, function () {\n\t var Root = function Root() {\n\t return (0, _react.createElement)(AltRouter ? AltRouter : DefaultRouter, null, (0, _react.createElement)(_gatsbyReactRouterScroll.ScrollContext, { shouldUpdateScroll: shouldUpdateScroll }, (0, _react.createElement)(ComponentRendererWithRouter, {\n\t layout: true,\n\t children: function children(layoutProps) {\n\t return (0, _react.createElement)(_reactRouterDom.Route, {\n\t render: function render(routeProps) {\n\t attachToHistory(routeProps.history);\n\t var props = layoutProps ? layoutProps : routeProps;\n\t\n\t if (_loader2.default.getPage(props.location.pathname)) {\n\t return (0, _react.createElement)(_componentRenderer2.default, _extends({\n\t page: true\n\t }, props));\n\t } else {\n\t return (0, _react.createElement)(_componentRenderer2.default, {\n\t page: true,\n\t location: { pathname: \"/404.html\" }\n\t });\n\t }\n\t }\n\t });\n\t }\n\t })));\n\t };\n\t\n\t var NewRoot = (0, _apiRunnerBrowser.apiRunner)(\"wrapRootComponent\", { Root: Root }, Root)[0];\n\t (0, _domready2.default)(function () {\n\t return _reactDom2.default.render(_react2.default.createElement(NewRoot, null), typeof window !== \"undefined\" ? document.getElementById(\"___gatsby\") : void 0, function () {\n\t (0, _apiRunnerBrowser.apiRunner)(\"onInitialClientRender\");\n\t });\n\t });\n\t });\n\t});\n\n/***/ }),\n\n/***/ 483:\n/***/ (function(module, exports) {\n\n\tmodule.exports = []\n\n/***/ }),\n\n/***/ 289:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _emitter = __webpack_require__(80);\n\t\n\tvar _emitter2 = _interopRequireDefault(_emitter);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar pathPrefix = \"/\";\n\tif (false) {\n\t pathPrefix = __PATH_PREFIX__ + \"/\";\n\t}\n\t\n\tif (\"serviceWorker\" in navigator) {\n\t navigator.serviceWorker.register(pathPrefix + \"sw.js\").then(function (reg) {\n\t reg.addEventListener(\"updatefound\", function () {\n\t // The updatefound event implies that reg.installing is set; see\n\t // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n\t var installingWorker = reg.installing;\n\t console.log(\"installingWorker\", installingWorker);\n\t installingWorker.addEventListener(\"statechange\", function () {\n\t switch (installingWorker.state) {\n\t case \"installed\":\n\t if (navigator.serviceWorker.controller) {\n\t // At this point, the old content will have been purged and the fresh content will\n\t // have been added to the cache.\n\t // We reload immediately so the user sees the new content.\n\t // This could/should be made configurable in the future.\n\t window.location.reload();\n\t } else {\n\t // At this point, everything has been precached.\n\t // It's the perfect time to display a \"Content is cached for offline use.\" message.\n\t console.log(\"Content is now available offline!\");\n\t _emitter2.default.emit(\"sw:installed\");\n\t }\n\t break;\n\t\n\t case \"redundant\":\n\t console.error(\"The installing service worker became redundant.\");\n\t break;\n\t }\n\t });\n\t });\n\t }).catch(function (e) {\n\t console.error(\"Error during service worker registration:\", e);\n\t });\n\t}\n\n/***/ }),\n\n/***/ 388:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * domready (c) Dustin Diaz 2014 - License MIT\n\t */\n\t!function (name, definition) {\n\t\n\t if (true) module.exports = definition()\n\t else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n\t else this[name] = definition()\n\t\n\t}('domready', function () {\n\t\n\t var fns = [], listener\n\t , doc = document\n\t , hack = doc.documentElement.doScroll\n\t , domContentLoaded = 'DOMContentLoaded'\n\t , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\t\n\t\n\t if (!loaded)\n\t doc.addEventListener(domContentLoaded, listener = function () {\n\t doc.removeEventListener(domContentLoaded, listener)\n\t loaded = 1\n\t while (listener = fns.shift()) listener()\n\t })\n\t\n\t return function (fn) {\n\t loaded ? setTimeout(fn, 0) : fns.push(fn)\n\t }\n\t\n\t});\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t/* global document: false, __webpack_require__: false */\n\tpatch();\n\t\n\tfunction patch() {\n\t var head = document.querySelector(\"head\");\n\t var ensure = __webpack_require__.e;\n\t var chunks = __webpack_require__.s;\n\t var failures;\n\t\n\t __webpack_require__.e = function (chunkId, callback) {\n\t var loaded = false;\n\t var immediate = true;\n\t\n\t var handler = function handler(error) {\n\t if (!callback) return;\n\t\n\t callback(__webpack_require__, error);\n\t callback = null;\n\t };\n\t\n\t if (!chunks && failures && failures[chunkId]) {\n\t handler(true);\n\t return;\n\t }\n\t\n\t ensure(chunkId, function () {\n\t if (loaded) return;\n\t loaded = true;\n\t\n\t if (immediate) {\n\t // webpack fires callback immediately if chunk was already loaded\n\t // IE also fires callback immediately if script was already\n\t // in a cache (AppCache counts too)\n\t setTimeout(function () {\n\t handler();\n\t });\n\t } else {\n\t handler();\n\t }\n\t });\n\t\n\t // This is |true| if chunk is already loaded and does not need onError call.\n\t // This happens because in such case ensure() is performed in sync way\n\t if (loaded) {\n\t return;\n\t }\n\t\n\t immediate = false;\n\t\n\t onError(function () {\n\t if (loaded) return;\n\t loaded = true;\n\t\n\t if (chunks) {\n\t chunks[chunkId] = void 0;\n\t } else {\n\t failures || (failures = {});\n\t failures[chunkId] = true;\n\t }\n\t\n\t handler(true);\n\t });\n\t };\n\t\n\t function onError(callback) {\n\t var script = head.lastChild;\n\t\n\t if (script.tagName !== \"SCRIPT\") {\n\t if (typeof console !== \"undefined\" && console.warn) {\n\t console.warn(\"Script is not a script\", script);\n\t }\n\t\n\t return;\n\t }\n\t\n\t script.onload = script.onerror = function () {\n\t script.onload = script.onerror = null;\n\t setTimeout(callback, 0);\n\t };\n\t }\n\t}\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function (root, cb) {\n\t root.addEventListener(\"click\", function (ev) {\n\t if (ev.button !== 0 || ev.altKey || ev.ctrlKey || ev.metaKey || ev.shiftKey || ev.defaultPrevented) {\n\t return true;\n\t }\n\t\n\t var anchor = null;\n\t for (var n = ev.target; n.parentNode; n = n.parentNode) {\n\t if (n.nodeName === \"A\") {\n\t anchor = n;\n\t break;\n\t }\n\t }\n\t if (!anchor) return true;\n\t\n\t // Don't catch links where a target (other than self) is set\n\t // e.g. _blank.\n\t if (anchor.target && anchor.target.toLowerCase() !== \"_self\") return true;\n\t\n\t // Don't catch links pointed to the same page but with a hash.\n\t if (anchor.pathname === window.location.pathname && anchor.target.hash !== \"\") {\n\t return true;\n\t }\n\t\n\t // Don't catch links pointed at what look like file extensions (other than\n\t // .htm/html extensions).\n\t if (anchor.pathname.search(/^.*\\.((?!htm)[a-z0-9]{1,5})$/i) !== -1) {\n\t return true;\n\t }\n\t\n\t // IE clears the host value if the anchor href changed after creation, e.g.\n\t // in React. Creating a new anchor element to ensure host value is present\n\t var a1 = document.createElement(\"a\");\n\t a1.href = anchor.href;\n\t\n\t // In IE, the default port is included in the anchor host but excluded from\n\t // the location host. This affects the ability to directly compare\n\t // location host to anchor host. For example: http://example.com would\n\t // have a location.host of 'example.com' and an anchor.host of\n\t // 'example.com:80' Creating anchor from the location.href to normalize the\n\t // host value.\n\t var a2 = document.createElement(\"a\");\n\t a2.href = window.location.href;\n\t\n\t if (a1.host !== a2.host) return true;\n\t\n\t ev.preventDefault();\n\t\n\t cb(anchor.getAttribute(\"href\"));\n\t return false;\n\t });\n\t};\n\n/***/ }),\n\n/***/ 439:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _gatsbyLink = __webpack_require__(22);\n\t\n\tvar _catchLinks = __webpack_require__(438);\n\t\n\tvar _catchLinks2 = _interopRequireDefault(_catchLinks);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t(0, _catchLinks2.default)(window, function (href) {\n\t (0, _gatsbyLink.navigateTo)(href);\n\t});\n\n/***/ }),\n\n/***/ 440:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.onRouteUpdate = function (_ref) {\n\t var location = _ref.location;\n\t\n\t // Don't track while developing.\n\t if ((\"production\") === \"production\" && typeof ga === \"function\") {\n\t window.ga(\"set\", \"page\", (location || {}).pathname);\n\t window.ga(\"send\", \"pageview\");\n\t }\n\t};\n\n/***/ }),\n\n/***/ 441:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _nprogress = __webpack_require__(533);\n\t\n\tvar _nprogress2 = _interopRequireDefault(_nprogress);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.onClientEntry = function (a) {\n\t var pluginOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { color: \"#29d\" };\n\t\n\t window.___emitter.on(\"onDelayedLoadPageResources\", function () {\n\t _nprogress2.default.configure(pluginOptions);\n\t _nprogress2.default.start();\n\t });\n\t window.___emitter.on(\"onPostLoadPageResources\", function () {\n\t _nprogress2.default.done();\n\t });\n\t\n\t // Inject styles.\n\t var styles = \"#nprogress {\\n pointer-events: none;\\n}\\n#nprogress .bar {\\n background: \" + pluginOptions.color + \";\\n position: fixed;\\n z-index: 1031;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 2px;\\n}\\n#nprogress .peg {\\n display: block;\\n position: absolute;\\n right: 0px;\\n width: 100px;\\n height: 100%;\\n box-shadow: 0 0 10px \" + pluginOptions.color + \", 0 0 5px \" + pluginOptions.color + \";\\n opacity: 1.0;\\n -webkit-transform: rotate(3deg) translate(0px, -4px);\\n -ms-transform: rotate(3deg) translate(0px, -4px);\\n transform: rotate(3deg) translate(0px, -4px);\\n}\\n#nprogress .spinner {\\n display: block;\\n position: fixed;\\n z-index: 1031;\\n top: 15px;\\n right: 15px;\\n}\\n#nprogress .spinner-icon {\\n width: 18px;\\n height: 18px;\\n box-sizing: border-box;\\n border: solid 2px transparent;\\n border-top-color: \" + pluginOptions.color + \";\\n border-left-color: \" + pluginOptions.color + \";\\n border-radius: 50%;\\n -webkit-animation: nprogress-spinner 400ms linear infinite;\\n animation: nprogress-spinner 400ms linear infinite;\\n}\\n.nprogress-custom-parent {\\n overflow: hidden;\\n position: relative;\\n}\\n.nprogress-custom-parent #nprogress .spinner,\\n.nprogress-custom-parent #nprogress .bar {\\n position: absolute;\\n}\\n@-webkit-keyframes nprogress-spinner {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n }\\n}\\n@keyframes nprogress-spinner {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\";\n\t\n\t var node = document.createElement(\"style\");\n\t node.id = \"nprogress-styles\";\n\t node.innerHTML = styles;\n\t document.head.appendChild(node);\n\t};\n\n/***/ }),\n\n/***/ 402:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(99219681209289, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(442) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 443:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.registerServiceWorker = function () {\n\t return true;\n\t};\n\n/***/ }),\n\n/***/ 444:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.onRouteUpdate = function (_ref) {\n\t var location = _ref.location;\n\t\n\t // Wait to ensure page is rendered first.\n\t setTimeout(function () {\n\t if (typeof twttr !== \"undefined\" && window.twttr.widgets && typeof window.twttr.widgets.load === \"function\") {\n\t window.twttr.widgets.load();\n\t }\n\t }, 0);\n\t};\n\n/***/ }),\n\n/***/ 449:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar scrollToHash = function scrollToHash(offsetY) {\n\t // Make sure React has had a change to flush to DOM first.\n\t setTimeout(function () {\n\t var hash = window.location.hash.replace(\"#\", \"\");\n\t if (hash !== \"\") {\n\t var element = document.getElementById(hash);\n\t if (element) {\n\t var offset = element.offsetTop;\n\t window.scrollTo(0, offset - offsetY);\n\t }\n\t }\n\t }, 10);\n\t};\n\t\n\texports.onClientEntry = function (args, pluginOptions) {\n\t var offsetY = 0;\n\t if (pluginOptions.offsetY) {\n\t offsetY = pluginOptions.offsetY;\n\t }\n\t // This code is only so scrolling to header hashes works in development.\n\t // For production, the equivalent code is in gatsby-ssr.js.\n\t if (false) {\n\t scrollToHash(offsetY);\n\t }\n\t};\n\t\n\texports.onRouteUpdate = function (args, pluginOptions) {\n\t var offsetY = 0;\n\t if (pluginOptions.offsetY) {\n\t offsetY = pluginOptions.offsetY;\n\t }\n\t\n\t scrollToHash(offsetY);\n\t};\n\n/***/ }),\n\n/***/ 531:\n/***/ (function(module, exports) {\n\n\tfunction n(n){return n=n||Object.create(null),{on:function(t,o){(n[t]||(n[t]=[])).push(o)},off:function(t,o){n[t]&&n[t].splice(n[t].indexOf(o)>>>0,1)},emit:function(t,o){(n[t]||[]).map(function(n){n(o)}),(n[\"*\"]||[]).map(function(n){n(t,o)})}}}module.exports=n;\n\t//# sourceMappingURL=mitt.js.map\n\n/***/ }),\n\n/***/ 533:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n\t * @license MIT */\n\t\n\t;(function(root, factory) {\n\t\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports === 'object') {\n\t module.exports = factory();\n\t } else {\n\t root.NProgress = factory();\n\t }\n\t\n\t})(this, function() {\n\t var NProgress = {};\n\t\n\t NProgress.version = '0.2.0';\n\t\n\t var Settings = NProgress.settings = {\n\t minimum: 0.08,\n\t easing: 'ease',\n\t positionUsing: '',\n\t speed: 200,\n\t trickle: true,\n\t trickleRate: 0.02,\n\t trickleSpeed: 800,\n\t showSpinner: true,\n\t barSelector: '[role=\"bar\"]',\n\t spinnerSelector: '[role=\"spinner\"]',\n\t parent: 'body',\n\t template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n\t };\n\t\n\t /**\n\t * Updates configuration.\n\t *\n\t * NProgress.configure({\n\t * minimum: 0.1\n\t * });\n\t */\n\t NProgress.configure = function(options) {\n\t var key, value;\n\t for (key in options) {\n\t value = options[key];\n\t if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n\t }\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Last number.\n\t */\n\t\n\t NProgress.status = null;\n\t\n\t /**\n\t * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n\t *\n\t * NProgress.set(0.4);\n\t * NProgress.set(1.0);\n\t */\n\t\n\t NProgress.set = function(n) {\n\t var started = NProgress.isStarted();\n\t\n\t n = clamp(n, Settings.minimum, 1);\n\t NProgress.status = (n === 1 ? null : n);\n\t\n\t var progress = NProgress.render(!started),\n\t bar = progress.querySelector(Settings.barSelector),\n\t speed = Settings.speed,\n\t ease = Settings.easing;\n\t\n\t progress.offsetWidth; /* Repaint */\n\t\n\t queue(function(next) {\n\t // Set positionUsing if it hasn't already been set\n\t if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\t\n\t // Add transition\n\t css(bar, barPositionCSS(n, speed, ease));\n\t\n\t if (n === 1) {\n\t // Fade out\n\t css(progress, { \n\t transition: 'none', \n\t opacity: 1 \n\t });\n\t progress.offsetWidth; /* Repaint */\n\t\n\t setTimeout(function() {\n\t css(progress, { \n\t transition: 'all ' + speed + 'ms linear', \n\t opacity: 0 \n\t });\n\t setTimeout(function() {\n\t NProgress.remove();\n\t next();\n\t }, speed);\n\t }, speed);\n\t } else {\n\t setTimeout(next, speed);\n\t }\n\t });\n\t\n\t return this;\n\t };\n\t\n\t NProgress.isStarted = function() {\n\t return typeof NProgress.status === 'number';\n\t };\n\t\n\t /**\n\t * Shows the progress bar.\n\t * This is the same as setting the status to 0%, except that it doesn't go backwards.\n\t *\n\t * NProgress.start();\n\t *\n\t */\n\t NProgress.start = function() {\n\t if (!NProgress.status) NProgress.set(0);\n\t\n\t var work = function() {\n\t setTimeout(function() {\n\t if (!NProgress.status) return;\n\t NProgress.trickle();\n\t work();\n\t }, Settings.trickleSpeed);\n\t };\n\t\n\t if (Settings.trickle) work();\n\t\n\t return this;\n\t };\n\t\n\t /**\n\t * Hides the progress bar.\n\t * This is the *sort of* the same as setting the status to 100%, with the\n\t * difference being `done()` makes some placebo effect of some realistic motion.\n\t *\n\t * NProgress.done();\n\t *\n\t * If `true` is passed, it will show the progress bar even if its hidden.\n\t *\n\t * NProgress.done(true);\n\t */\n\t\n\t NProgress.done = function(force) {\n\t if (!force && !NProgress.status) return this;\n\t\n\t return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n\t };\n\t\n\t /**\n\t * Increments by a random amount.\n\t */\n\t\n\t NProgress.inc = function(amount) {\n\t var n = NProgress.status;\n\t\n\t if (!n) {\n\t return NProgress.start();\n\t } else {\n\t if (typeof amount !== 'number') {\n\t amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n\t }\n\t\n\t n = clamp(n + amount, 0, 0.994);\n\t return NProgress.set(n);\n\t }\n\t };\n\t\n\t NProgress.trickle = function() {\n\t return NProgress.inc(Math.random() * Settings.trickleRate);\n\t };\n\t\n\t /**\n\t * Waits for all supplied jQuery promises and\n\t * increases the progress as the promises resolve.\n\t *\n\t * @param $promise jQUery Promise\n\t */\n\t (function() {\n\t var initial = 0, current = 0;\n\t\n\t NProgress.promise = function($promise) {\n\t if (!$promise || $promise.state() === \"resolved\") {\n\t return this;\n\t }\n\t\n\t if (current === 0) {\n\t NProgress.start();\n\t }\n\t\n\t initial++;\n\t current++;\n\t\n\t $promise.always(function() {\n\t current--;\n\t if (current === 0) {\n\t initial = 0;\n\t NProgress.done();\n\t } else {\n\t NProgress.set((initial - current) / initial);\n\t }\n\t });\n\t\n\t return this;\n\t };\n\t\n\t })();\n\t\n\t /**\n\t * (Internal) renders the progress bar markup based on the `template`\n\t * setting.\n\t */\n\t\n\t NProgress.render = function(fromStart) {\n\t if (NProgress.isRendered()) return document.getElementById('nprogress');\n\t\n\t addClass(document.documentElement, 'nprogress-busy');\n\t \n\t var progress = document.createElement('div');\n\t progress.id = 'nprogress';\n\t progress.innerHTML = Settings.template;\n\t\n\t var bar = progress.querySelector(Settings.barSelector),\n\t perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n\t parent = document.querySelector(Settings.parent),\n\t spinner;\n\t \n\t css(bar, {\n\t transition: 'all 0 linear',\n\t transform: 'translate3d(' + perc + '%,0,0)'\n\t });\n\t\n\t if (!Settings.showSpinner) {\n\t spinner = progress.querySelector(Settings.spinnerSelector);\n\t spinner && removeElement(spinner);\n\t }\n\t\n\t if (parent != document.body) {\n\t addClass(parent, 'nprogress-custom-parent');\n\t }\n\t\n\t parent.appendChild(progress);\n\t return progress;\n\t };\n\t\n\t /**\n\t * Removes the element. Opposite of render().\n\t */\n\t\n\t NProgress.remove = function() {\n\t removeClass(document.documentElement, 'nprogress-busy');\n\t removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n\t var progress = document.getElementById('nprogress');\n\t progress && removeElement(progress);\n\t };\n\t\n\t /**\n\t * Checks if the progress bar is rendered.\n\t */\n\t\n\t NProgress.isRendered = function() {\n\t return !!document.getElementById('nprogress');\n\t };\n\t\n\t /**\n\t * Determine which positioning CSS rule to use.\n\t */\n\t\n\t NProgress.getPositioningCSS = function() {\n\t // Sniff on document.body.style\n\t var bodyStyle = document.body.style;\n\t\n\t // Sniff prefixes\n\t var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n\t ('MozTransform' in bodyStyle) ? 'Moz' :\n\t ('msTransform' in bodyStyle) ? 'ms' :\n\t ('OTransform' in bodyStyle) ? 'O' : '';\n\t\n\t if (vendorPrefix + 'Perspective' in bodyStyle) {\n\t // Modern browsers with 3D support, e.g. Webkit, IE10\n\t return 'translate3d';\n\t } else if (vendorPrefix + 'Transform' in bodyStyle) {\n\t // Browsers without 3D support, e.g. IE9\n\t return 'translate';\n\t } else {\n\t // Browsers without translate() support, e.g. IE7-8\n\t return 'margin';\n\t }\n\t };\n\t\n\t /**\n\t * Helpers\n\t */\n\t\n\t function clamp(n, min, max) {\n\t if (n < min) return min;\n\t if (n > max) return max;\n\t return n;\n\t }\n\t\n\t /**\n\t * (Internal) converts a percentage (`0..1`) to a bar translateX\n\t * percentage (`-100%..0%`).\n\t */\n\t\n\t function toBarPerc(n) {\n\t return (-1 + n) * 100;\n\t }\n\t\n\t\n\t /**\n\t * (Internal) returns the correct CSS for changing the bar's\n\t * position given an n percentage, and speed and ease from Settings\n\t */\n\t\n\t function barPositionCSS(n, speed, ease) {\n\t var barCSS;\n\t\n\t if (Settings.positionUsing === 'translate3d') {\n\t barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n\t } else if (Settings.positionUsing === 'translate') {\n\t barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n\t } else {\n\t barCSS = { 'margin-left': toBarPerc(n)+'%' };\n\t }\n\t\n\t barCSS.transition = 'all '+speed+'ms '+ease;\n\t\n\t return barCSS;\n\t }\n\t\n\t /**\n\t * (Internal) Queues a function to be executed.\n\t */\n\t\n\t var queue = (function() {\n\t var pending = [];\n\t \n\t function next() {\n\t var fn = pending.shift();\n\t if (fn) {\n\t fn(next);\n\t }\n\t }\n\t\n\t return function(fn) {\n\t pending.push(fn);\n\t if (pending.length == 1) next();\n\t };\n\t })();\n\t\n\t /**\n\t * (Internal) Applies css properties to an element, similar to the jQuery \n\t * css method.\n\t *\n\t * While this helper does assist with vendor prefixed property names, it \n\t * does not perform any manipulation of values prior to setting styles.\n\t */\n\t\n\t var css = (function() {\n\t var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n\t cssProps = {};\n\t\n\t function camelCase(string) {\n\t return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n\t return letter.toUpperCase();\n\t });\n\t }\n\t\n\t function getVendorProp(name) {\n\t var style = document.body.style;\n\t if (name in style) return name;\n\t\n\t var i = cssPrefixes.length,\n\t capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t vendorName;\n\t while (i--) {\n\t vendorName = cssPrefixes[i] + capName;\n\t if (vendorName in style) return vendorName;\n\t }\n\t\n\t return name;\n\t }\n\t\n\t function getStyleProp(name) {\n\t name = camelCase(name);\n\t return cssProps[name] || (cssProps[name] = getVendorProp(name));\n\t }\n\t\n\t function applyCss(element, prop, value) {\n\t prop = getStyleProp(prop);\n\t element.style[prop] = value;\n\t }\n\t\n\t return function(element, properties) {\n\t var args = arguments,\n\t prop, \n\t value;\n\t\n\t if (args.length == 2) {\n\t for (prop in properties) {\n\t value = properties[prop];\n\t if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n\t }\n\t } else {\n\t applyCss(element, args[1], args[2]);\n\t }\n\t }\n\t })();\n\t\n\t /**\n\t * (Internal) Determines if an element or space separated list of class names contains a class name.\n\t */\n\t\n\t function hasClass(element, name) {\n\t var list = typeof element == 'string' ? element : classList(element);\n\t return list.indexOf(' ' + name + ' ') >= 0;\n\t }\n\t\n\t /**\n\t * (Internal) Adds a class to an element.\n\t */\n\t\n\t function addClass(element, name) {\n\t var oldList = classList(element),\n\t newList = oldList + name;\n\t\n\t if (hasClass(oldList, name)) return; \n\t\n\t // Trim the opening space.\n\t element.className = newList.substring(1);\n\t }\n\t\n\t /**\n\t * (Internal) Removes a class from an element.\n\t */\n\t\n\t function removeClass(element, name) {\n\t var oldList = classList(element),\n\t newList;\n\t\n\t if (!hasClass(element, name)) return;\n\t\n\t // Replace the class name.\n\t newList = oldList.replace(' ' + name + ' ', ' ');\n\t\n\t // Trim the opening and closing spaces.\n\t element.className = newList.substring(1, newList.length - 1);\n\t }\n\t\n\t /**\n\t * (Internal) Gets a space separated list of the class names on the element. \n\t * The list is wrapped with a single space on each end to facilitate finding \n\t * matches within the list.\n\t */\n\t\n\t function classList(element) {\n\t return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n\t }\n\t\n\t /**\n\t * (Internal) Removes an element from the DOM.\n\t */\n\t\n\t function removeElement(element) {\n\t element && element.parentNode && element.parentNode.removeChild(element);\n\t }\n\t\n\t return NProgress;\n\t});\n\t\n\n\n/***/ }),\n\n/***/ 404:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(144251824217401, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(302) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 405:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(213534597649335, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(303) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 406:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(129745722219136, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(304) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 407:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(213130420965792, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(305) })\n\t }\n\t });\n\t }\n\t \n\n/***/ }),\n\n/***/ 408:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(\n\t 5\n\t );\n\t module.exports = function(cb) { return __webpack_require__.e/* nsure */(183400410456155, function(_, error) {\n\t if (error) {\n\t console.log('bundle loading error', error)\n\t cb(true)\n\t } else {\n\t cb(null, function() { return __webpack_require__(306) })\n\t }\n\t });\n\t }\n\t \n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// app-ead52c5184c0b3f53abb.js","var plugins = [{\n plugin: require('/srv/node_modules/gatsby-remark-autolink-headers/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('/srv/node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"UA-110475271-1\"},\n },{\n plugin: require('/srv/node_modules/gatsby-plugin-nprogress/gatsby-browser.js'),\n options: {\"plugins\":[],\"color\":\"#c62828\"},\n },{\n plugin: require('/srv/node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('/srv/node_modules/gatsby-plugin-twitter/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('/srv/node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n// During bootstrap, we write requires at top of this file which looks\n// basically like:\n// var plugins = [\n// require('/path/to/plugin1/gatsby-browser.js'),\n// require('/path/to/plugin2/gatsby-browser.js'),\n// ]\n\nexport function apiRunner(api, args, defaultReturn) {\n let results = plugins.map(plugin => {\n if (plugin.plugin[api]) {\n const result = plugin.plugin[api](args, plugin.options)\n return result\n }\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexport function apiRunnerAsync(api, args, defaultReturn) {\n return plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/api-runner-browser.js","// prefer default export if available\nconst preferDefault = m => m && m.default || m\n\nexports.components = {\n \"component---node-modules-gatsby-plugin-offline-app-shell-js\": require(\"gatsby-module-loader?name=component---node-modules-gatsby-plugin-offline-app-shell-js!/srv/node_modules/gatsby-plugin-offline/app-shell.js\"),\n \"component---src-templates-post-jsx\": require(\"gatsby-module-loader?name=component---src-templates-post-jsx!/srv/src/templates/post.jsx\"),\n \"component---src-templates-tag-jsx\": require(\"gatsby-module-loader?name=component---src-templates-tag-jsx!/srv/src/templates/tag.jsx\"),\n \"component---src-templates-category-jsx\": require(\"gatsby-module-loader?name=component---src-templates-category-jsx!/srv/src/templates/category.jsx\"),\n \"component---src-pages-about-jsx\": require(\"gatsby-module-loader?name=component---src-pages-about-jsx!/srv/src/pages/about.jsx\"),\n \"component---src-pages-index-jsx\": require(\"gatsby-module-loader?name=component---src-pages-index-jsx!/srv/src/pages/index.jsx\")\n}\n\nexports.json = {\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"offline-plugin-app-shell-fallback.json\": require(\"gatsby-module-loader?name=path---offline-plugin-app-shell-fallback!/srv/.cache/json/offline-plugin-app-shell-fallback.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"first-post.json\": require(\"gatsby-module-loader?name=path---first-post!/srv/.cache/json/first-post.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"generating-text-using-an-lstm-neural-network.json\": require(\"gatsby-module-loader?name=path---generating-text-using-an-lstm-neural-network!/srv/.cache/json/generating-text-using-an-lstm-neural-network.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"vhdl-i-2-s-transmitter.json\": require(\"gatsby-module-loader?name=path---vhdl-i-2-s-transmitter!/srv/.cache/json/vhdl-i-2-s-transmitter.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"vhdl-sine-wave-oscillator.json\": require(\"gatsby-module-loader?name=path---vhdl-sine-wave-oscillator!/srv/.cache/json/vhdl-sine-wave-oscillator.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"yocto-linux-on-the-xilinx-zynq-zed-board.json\": require(\"gatsby-module-loader?name=path---yocto-linux-on-the-xilinx-zynq-zed-board!/srv/.cache/json/yocto-linux-on-the-xilinx-zynq-zed-board.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\": require(\"gatsby-module-loader?name=path---nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support!/srv/.cache/json/nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"real-time-sound-synthesis-with-jupyter.json\": require(\"gatsby-module-loader?name=path---real-time-sound-synthesis-with-jupyter!/srv/.cache/json/real-time-sound-synthesis-with-jupyter.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"lstm-neural-network-for-sequence-learning.json\": require(\"gatsby-module-loader?name=path---lstm-neural-network-for-sequence-learning!/srv/.cache/json/lstm-neural-network-for-sequence-learning.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\": require(\"gatsby-module-loader?name=path---basic-asymmetric-multi-processor-amp-setup-on-the-zedboard!/srv/.cache/json/basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-github.json\": require(\"gatsby-module-loader?name=path---tags-github!/srv/.cache/json/tags-github.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-blog.json\": require(\"gatsby-module-loader?name=path---tags-blog!/srv/.cache/json/tags-blog.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-artificial-intelligence.json\": require(\"gatsby-module-loader?name=path---tags-artificial-intelligence!/srv/.cache/json/tags-artificial-intelligence.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-lstm.json\": require(\"gatsby-module-loader?name=path---tags-lstm!/srv/.cache/json/tags-lstm.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-vhdl-fpga-dsp.json\": require(\"gatsby-module-loader?name=path---tags-vhdl-fpga-dsp!/srv/.cache/json/tags-vhdl-fpga-dsp.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-zynq-yocto-fpga-linux-xilinx.json\": require(\"gatsby-module-loader?name=path---tags-zynq-yocto-fpga-linux-xilinx!/srv/.cache/json/tags-zynq-yocto-fpga-linux-xilinx.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-microblaze-fpga-sdk.json\": require(\"gatsby-module-loader?name=path---tags-microblaze-fpga-sdk!/srv/.cache/json/tags-microblaze-fpga-sdk.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-audio.json\": require(\"gatsby-module-loader?name=path---tags-audio!/srv/.cache/json/tags-audio.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-sound.json\": require(\"gatsby-module-loader?name=path---tags-sound!/srv/.cache/json/tags-sound.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-jupyter.json\": require(\"gatsby-module-loader?name=path---tags-jupyter!/srv/.cache/json/tags-jupyter.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-javascript.json\": require(\"gatsby-module-loader?name=path---tags-javascript!/srv/.cache/json/tags-javascript.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-tensorflow.json\": require(\"gatsby-module-loader?name=path---tags-tensorflow!/srv/.cache/json/tags-tensorflow.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"tags-zynq-microblaze-yocto-linux-xilinx.json\": require(\"gatsby-module-loader?name=path---tags-zynq-microblaze-yocto-linux-xilinx!/srv/.cache/json/tags-zynq-microblaze-yocto-linux-xilinx.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"categories-blaat.json\": require(\"gatsby-module-loader?name=path---categories-blaat!/srv/.cache/json/categories-blaat.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"categories-artificial-intelligence.json\": require(\"gatsby-module-loader?name=path---categories-artificial-intelligence!/srv/.cache/json/categories-artificial-intelligence.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"categories-fpga.json\": require(\"gatsby-module-loader?name=path---categories-fpga!/srv/.cache/json/categories-fpga.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"categories-jupyter.json\": require(\"gatsby-module-loader?name=path---categories-jupyter!/srv/.cache/json/categories-jupyter.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"about.json\": require(\"gatsby-module-loader?name=path---about!/srv/.cache/json/about.json\"),\n \"layout-index.json\": require(\"gatsby-module-loader?name=path---!/srv/.cache/json/layout-index.json\"),\n \"index.json\": require(\"gatsby-module-loader?name=path---index!/srv/.cache/json/index.json\")\n}\n\nexports.layouts = {\n \"component---src-layouts-index-jsx\": require(\"gatsby-module-loader?name=component---src-layouts-index-jsx!/srv/.cache/layouts/index.js\")\n}\n\n\n// WEBPACK FOOTER //\n// ./.cache/async-requires.js","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { publicLoader } from \"./loader\"\nimport emitter from \"./emitter\"\nimport { apiRunner } from \"./api-runner-browser\"\n\nconst DefaultLayout = ({ children }) => <div>{children()}</div>\n\n// Pass pathname in as prop.\n// component will try fetching resources. If they exist,\n// will just render, else will render null.\nclass ComponentRenderer extends React.Component {\n constructor(props) {\n super()\n let location = props.location\n\n // This covers layout for when page not found, especially during production\n if (!loader.getPage(location.pathname)) {\n location = Object.assign({}, location, {\n ...location,\n pathname: `/404.html`,\n })\n }\n\n this.state = {\n location,\n pageResources: loader.getResourcesForPathname(props.location.pathname),\n }\n }\n\n componentWillReceiveProps(nextProps) {\n // During development, always pass a component's JSON through so graphql\n // updates go through.\n if (process.env.NODE_ENV !== `production`) {\n if (\n nextProps &&\n nextProps.pageResources &&\n nextProps.pageResources.json\n ) {\n this.setState({ pageResources: nextProps.pageResources })\n }\n }\n if (this.state.location.pathname !== nextProps.location.pathname) {\n const pageResources = loader.getResourcesForPathname(\n nextProps.location.pathname\n )\n if (!pageResources) {\n // Page resources won't be set in cases where the browser back button\n // or forward button is pushed as we can't wait as normal for resources\n // to load before changing the page.\n loader.getResourcesForPathname(\n nextProps.location.pathname,\n pageResources => {\n this.setState({\n location: nextProps.location,\n pageResources,\n })\n }\n )\n } else {\n this.setState({\n location: nextProps.location,\n pageResources,\n })\n }\n }\n }\n\n componentDidMount() {\n // Listen to events so when our page gets updated, we can transition.\n // This is only useful on delayed transitions as the page will get rendered\n // without the necessary page resources and then re-render once those come in.\n emitter.on(`onPostLoadPageResources`, e => {\n if (\n loader.getPage(this.state.location.pathname) &&\n e.page.path === loader.getPage(this.state.location.pathname).path\n ) {\n this.setState({ pageResources: e.pageResources })\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // 404\n if (!nextState.pageResources) {\n return true\n }\n\n // Check if the component or json have changed.\n if (!this.state.pageResources && nextState.pageResources) {\n return true\n }\n\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n\n return false\n }\n\n render() {\n const pluginResponses = apiRunner(`replaceComponentRenderer`, {\n props: { ...this.props, pageResources: this.state.pageResources },\n loader: publicLoader,\n })\n const replacementComponent = pluginResponses[0]\n // If page.\n if (this.props.page) {\n if (this.state.pageResources) {\n return (\n replacementComponent ||\n createElement(this.state.pageResources.component, {\n key: this.props.location.pathname,\n ...this.props,\n ...this.state.pageResources.json,\n })\n )\n } else {\n return null\n }\n // If layout.\n } else if (this.props.layout) {\n return (\n replacementComponent ||\n createElement(\n this.state.pageResources && this.state.pageResources.layout\n ? this.state.pageResources.layout\n : DefaultLayout,\n {\n key:\n this.state.pageResources && this.state.pageResources.layout\n ? this.state.pageResources.layout\n : `DefaultLayout`,\n ...this.props,\n }\n )\n )\n } else {\n return null\n }\n }\n}\n\nComponentRenderer.propTypes = {\n page: PropTypes.bool,\n layout: PropTypes.bool,\n location: PropTypes.object,\n}\n\nexport default ComponentRenderer\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/component-renderer.js","import mitt from \"mitt\"\nconst emitter = mitt()\nmodule.exports = emitter\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/emitter.js","// TODO add tests especially for handling prefixed links.\nimport { matchPath } from \"react-router-dom\"\n\nconst pageCache = {}\n\nmodule.exports = (pages, pathPrefix = ``) => rawPathname => {\n let pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n let trimmedPathname = pathname.slice(pathPrefix.length)\n\n // Remove any hashfragment\n if (trimmedPathname.split(`#`).length > 1) {\n trimmedPathname = trimmedPathname\n .split(`#`)\n .slice(0, -1)\n .join(``)\n }\n\n // Remove search query\n if (trimmedPathname.split(`?`).length > 1) {\n trimmedPathname = trimmedPathname\n .split(`?`)\n .slice(0, -1)\n .join(``)\n }\n\n if (pageCache[trimmedPathname]) {\n return pageCache[trimmedPathname]\n }\n\n let foundPage\n // Array.prototype.find is not supported in IE so we use this somewhat odd\n // work around.\n pages.some(page => {\n if (page.matchPath) {\n // Try both the path and matchPath\n if (\n matchPath(trimmedPathname, { path: page.path }) ||\n matchPath(trimmedPathname, {\n path: page.matchPath,\n })\n ) {\n foundPage = page\n pageCache[trimmedPathname] = page\n return true\n }\n } else {\n if (\n matchPath(trimmedPathname, {\n path: page.path,\n exact: true,\n })\n ) {\n foundPage = page\n pageCache[trimmedPathname] = page\n return true\n }\n\n // Finally, try and match request with default document.\n if (\n matchPath(trimmedPathname, {\n path: page.path + `index.html`,\n })\n ) {\n foundPage = page\n pageCache[trimmedPathname] = page\n return true\n }\n }\n\n return false\n })\n\n return foundPage\n}\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/find-page.js","import createHistory from \"history/createBrowserHistory\"\nimport { apiRunner } from \"./api-runner-browser\"\n\nconst pluginResponses = apiRunner(`replaceHistory`)\nconst replacementHistory = pluginResponses[0]\nconst history = replacementHistory || createHistory()\nmodule.exports = history\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/history.js","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./about.json\") })\n }\n }, \"path---about\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---about!./.cache/json/about.json\n// module id = 409\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\") })\n }\n }, \"path---basic-asymmetric-multi-processor-amp-setup-on-the-zedboard\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---basic-asymmetric-multi-processor-amp-setup-on-the-zedboard!./.cache/json/basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\n// module id = 410\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./categories-artificial-intelligence.json\") })\n }\n }, \"path---categories-artificial-intelligence\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---categories-artificial-intelligence!./.cache/json/categories-artificial-intelligence.json\n// module id = 411\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./categories-blaat.json\") })\n }\n }, \"path---categories-blaat\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---categories-blaat!./.cache/json/categories-blaat.json\n// module id = 412\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./categories-fpga.json\") })\n }\n }, \"path---categories-fpga\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---categories-fpga!./.cache/json/categories-fpga.json\n// module id = 413\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./categories-jupyter.json\") })\n }\n }, \"path---categories-jupyter\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---categories-jupyter!./.cache/json/categories-jupyter.json\n// module id = 414\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./first-post.json\") })\n }\n }, \"path---first-post\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---first-post!./.cache/json/first-post.json\n// module id = 415\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./generating-text-using-an-lstm-neural-network.json\") })\n }\n }, \"path---generating-text-using-an-lstm-neural-network\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---generating-text-using-an-lstm-neural-network!./.cache/json/generating-text-using-an-lstm-neural-network.json\n// module id = 416\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./index.json\") })\n }\n }, \"path---index\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---index!./.cache/json/index.json\n// module id = 417\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./layout-index.json\") })\n }\n }, \"path---\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---!./.cache/json/layout-index.json\n// module id = 7\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./lstm-neural-network-for-sequence-learning.json\") })\n }\n }, \"path---lstm-neural-network-for-sequence-learning\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---lstm-neural-network-for-sequence-learning!./.cache/json/lstm-neural-network-for-sequence-learning.json\n// module id = 418\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\") })\n }\n }, \"path---nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support!./.cache/json/nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\n// module id = 419\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./offline-plugin-app-shell-fallback.json\") })\n }\n }, \"path---offline-plugin-app-shell-fallback\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---offline-plugin-app-shell-fallback!./.cache/json/offline-plugin-app-shell-fallback.json\n// module id = 420\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./real-time-sound-synthesis-with-jupyter.json\") })\n }\n }, \"path---real-time-sound-synthesis-with-jupyter\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---real-time-sound-synthesis-with-jupyter!./.cache/json/real-time-sound-synthesis-with-jupyter.json\n// module id = 421\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-artificial-intelligence.json\") })\n }\n }, \"path---tags-artificial-intelligence\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-artificial-intelligence!./.cache/json/tags-artificial-intelligence.json\n// module id = 422\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-audio.json\") })\n }\n }, \"path---tags-audio\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-audio!./.cache/json/tags-audio.json\n// module id = 423\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-blog.json\") })\n }\n }, \"path---tags-blog\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-blog!./.cache/json/tags-blog.json\n// module id = 424\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-github.json\") })\n }\n }, \"path---tags-github\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-github!./.cache/json/tags-github.json\n// module id = 425\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-javascript.json\") })\n }\n }, \"path---tags-javascript\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-javascript!./.cache/json/tags-javascript.json\n// module id = 426\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-jupyter.json\") })\n }\n }, \"path---tags-jupyter\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-jupyter!./.cache/json/tags-jupyter.json\n// module id = 427\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-lstm.json\") })\n }\n }, \"path---tags-lstm\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-lstm!./.cache/json/tags-lstm.json\n// module id = 428\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-microblaze-fpga-sdk.json\") })\n }\n }, \"path---tags-microblaze-fpga-sdk\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-microblaze-fpga-sdk!./.cache/json/tags-microblaze-fpga-sdk.json\n// module id = 429\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-sound.json\") })\n }\n }, \"path---tags-sound\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-sound!./.cache/json/tags-sound.json\n// module id = 430\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-tensorflow.json\") })\n }\n }, \"path---tags-tensorflow\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-tensorflow!./.cache/json/tags-tensorflow.json\n// module id = 431\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-vhdl-fpga-dsp.json\") })\n }\n }, \"path---tags-vhdl-fpga-dsp\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-vhdl-fpga-dsp!./.cache/json/tags-vhdl-fpga-dsp.json\n// module id = 432\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-zynq-microblaze-yocto-linux-xilinx.json\") })\n }\n }, \"path---tags-zynq-microblaze-yocto-linux-xilinx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-zynq-microblaze-yocto-linux-xilinx!./.cache/json/tags-zynq-microblaze-yocto-linux-xilinx.json\n// module id = 433\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./tags-zynq-yocto-fpga-linux-xilinx.json\") })\n }\n }, \"path---tags-zynq-yocto-fpga-linux-xilinx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---tags-zynq-yocto-fpga-linux-xilinx!./.cache/json/tags-zynq-yocto-fpga-linux-xilinx.json\n// module id = 434\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./vhdl-i-2-s-transmitter.json\") })\n }\n }, \"path---vhdl-i-2-s-transmitter\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---vhdl-i-2-s-transmitter!./.cache/json/vhdl-i-2-s-transmitter.json\n// module id = 435\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./vhdl-sine-wave-oscillator.json\") })\n }\n }, \"path---vhdl-sine-wave-oscillator\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---vhdl-sine-wave-oscillator!./.cache/json/vhdl-sine-wave-oscillator.json\n// module id = 436\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/json-loader/index.js!./yocto-linux-on-the-xilinx-zynq-zed-board.json\") })\n }\n }, \"path---yocto-linux-on-the-xilinx-zynq-zed-board\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=path---yocto-linux-on-the-xilinx-zynq-zed-board!./.cache/json/yocto-linux-on-the-xilinx-zynq-zed-board.json\n// module id = 437\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./index.js\") })\n }\n }, \"component---src-layouts-index-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-layouts-index-jsx!./.cache/layouts/index.js\n// module id = 403\n// module chunks = 231608221292675","import React, { createElement } from \"react\"\nimport pageFinderFactory from \"./find-page\"\nimport emitter from \"./emitter\"\nlet findPage\n\nlet syncRequires = {}\nlet asyncRequires = {}\nlet pathScriptsCache = {}\nlet resourceStrCache = {}\nlet resourceCache = {}\nlet pages = []\n// Note we're not actively using the path data atm. There\n// could be future optimizations however around trying to ensure\n// we load all resources for likely-to-be-visited paths.\nlet pathArray = []\nlet pathCount = {}\nlet resourcesArray = []\nlet resourcesCount = {}\nconst preferDefault = m => (m && m.default) || m\nlet prefetcher\nlet inInitialRender = true\n\n// Prefetcher logic\nif (process.env.NODE_ENV === `production`) {\n prefetcher = require(`./prefetcher`)({\n getNextQueuedResources: () => resourcesArray.slice(-1)[0],\n createResourceDownload: resourceName => {\n fetchResource(resourceName, () => {\n resourcesArray = resourcesArray.filter(r => r !== resourceName)\n prefetcher.onResourcedFinished(resourceName)\n })\n },\n })\n emitter.on(`onPreLoadPageResources`, e => {\n prefetcher.onPreLoadPageResources(e)\n })\n emitter.on(`onPostLoadPageResources`, e => {\n prefetcher.onPostLoadPageResources(e)\n })\n}\n\nconst sortResourcesByCount = (a, b) => {\n if (resourcesCount[a] > resourcesCount[b]) {\n return 1\n } else if (resourcesCount[a] < resourcesCount[b]) {\n return -1\n } else {\n return 0\n }\n}\n\nconst sortPagesByCount = (a, b) => {\n if (pathCount[a] > pathCount[b]) {\n return 1\n } else if (pathCount[a] < pathCount[b]) {\n return -1\n } else {\n return 0\n }\n}\n\nconst fetchResource = (resourceName, cb = () => {}) => {\n if (resourceStrCache[resourceName]) {\n process.nextTick(() => {\n cb(null, resourceStrCache[resourceName])\n })\n } else {\n // Find resource\n const resourceFunction =\n resourceName.slice(0, 12) === `component---`\n ? asyncRequires.components[resourceName] ||\n asyncRequires.layouts[resourceName]\n : asyncRequires.json[resourceName]\n\n // Download the resource\n resourceFunction((err, executeChunk) => {\n resourceStrCache[resourceName] = executeChunk\n cb(err, executeChunk)\n })\n }\n}\n\nconst getResourceModule = (resourceName, cb) => {\n if (resourceCache[resourceName]) {\n process.nextTick(() => {\n cb(null, resourceCache[resourceName])\n })\n } else {\n fetchResource(resourceName, (err, executeChunk) => {\n if (err) {\n cb(err)\n } else {\n const module = preferDefault(executeChunk())\n resourceCache[resourceName] = module\n cb(err, module)\n }\n })\n }\n}\n\nlet mountOrder = 1\nconst queue = {\n empty: () => {\n pathArray = []\n pathCount = {}\n resourcesCount = {}\n resourcesArray = []\n pages = []\n },\n addPagesArray: newPages => {\n pages = newPages\n let pathPrefix = ``\n if (typeof __PREFIX_PATHS__ !== `undefined`) {\n pathPrefix = __PATH_PREFIX__\n }\n findPage = pageFinderFactory(newPages, pathPrefix)\n },\n addDevRequires: devRequires => {\n syncRequires = devRequires\n },\n addProdRequires: prodRequires => {\n asyncRequires = prodRequires\n },\n dequeue: path => pathArray.pop(),\n enqueue: path => {\n // Check page exists.\n if (!pages.some(p => p.path === path)) {\n return false\n }\n\n const mountOrderBoost = 1 / mountOrder\n mountOrder += 1\n // console.log(\n // `enqueue \"${path}\", mountOrder: \"${mountOrder}, mountOrderBoost: ${mountOrderBoost}`\n // )\n\n // Add to path counts.\n if (!pathCount[path]) {\n pathCount[path] = 1\n } else {\n pathCount[path] += 1\n }\n\n // Add path to queue.\n if (!queue.has(path)) {\n pathArray.unshift(path)\n }\n\n // Sort pages by pathCount\n pathArray.sort(sortPagesByCount)\n\n // Add resources to queue.\n const page = findPage(path)\n if (page.jsonName) {\n if (!resourcesCount[page.jsonName]) {\n resourcesCount[page.jsonName] = 1 + mountOrderBoost\n } else {\n resourcesCount[page.jsonName] += 1 + mountOrderBoost\n }\n\n // Before adding, checking that the JSON resource isn't either\n // already queued or been downloading.\n if (\n resourcesArray.indexOf(page.jsonName) === -1 &&\n !resourceStrCache[page.jsonName]\n ) {\n resourcesArray.unshift(page.jsonName)\n }\n }\n if (page.componentChunkName) {\n if (!resourcesCount[page.componentChunkName]) {\n resourcesCount[page.componentChunkName] = 1 + mountOrderBoost\n } else {\n resourcesCount[page.componentChunkName] += 1 + mountOrderBoost\n }\n\n // Before adding, checking that the component resource isn't either\n // already queued or been downloading.\n if (\n resourcesArray.indexOf(page.componentChunkName) === -1 &&\n !resourceStrCache[page.jsonName]\n ) {\n resourcesArray.unshift(page.componentChunkName)\n }\n }\n\n // Sort resources by resourcesCount.\n resourcesArray.sort(sortResourcesByCount)\n if (process.env.NODE_ENV === `production`) {\n prefetcher.onNewResourcesAdded()\n }\n\n return true\n },\n getResources: () => {\n return {\n resourcesArray,\n resourcesCount,\n }\n },\n getPages: () => {\n return {\n pathArray,\n pathCount,\n }\n },\n getPage: pathname => findPage(pathname),\n has: path => pathArray.some(p => p === path),\n getResourcesForPathname: (path, cb = () => {}) => {\n if (\n inInitialRender &&\n navigator &&\n navigator.serviceWorker &&\n navigator.serviceWorker.controller &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n // If we're loading from a service worker (it's already activated on\n // this initial render) and we can't find a page, there's a good chance\n // we're on a new page that this (now old) service worker doesn't know\n // about so we'll unregister it and reload.\n if (!findPage(path)) {\n navigator.serviceWorker\n .getRegistrations()\n .then(function(registrations) {\n // We would probably need this to\n // prevent unnecessary reloading of the page\n // while unregistering of ServiceWorker is not happening\n if (registrations.length) {\n for (let registration of registrations) {\n registration.unregister()\n }\n window.location.reload()\n }\n })\n }\n }\n inInitialRender = false\n // In development we know the code is loaded already\n // so we just return with it immediately.\n if (process.env.NODE_ENV !== `production`) {\n const page = findPage(path)\n if (!page) return cb()\n const pageResources = {\n component: syncRequires.components[page.componentChunkName],\n json: syncRequires.json[page.jsonName],\n layout: syncRequires.layouts[page.layoutComponentChunkName],\n page,\n }\n cb(pageResources)\n return pageResources\n // Production code path\n } else {\n const page = findPage(path)\n\n if (!page) {\n console.log(`A page wasn't found for \"${path}\"`)\n return cb()\n }\n\n // Use the path from the page so the pathScriptsCache uses\n // the normalized path.\n path = page.path\n\n // Check if it's in the cache already.\n if (pathScriptsCache[path]) {\n process.nextTick(() => {\n cb(pathScriptsCache[path])\n emitter.emit(`onPostLoadPageResources`, {\n page,\n pageResources: pathScriptsCache[path],\n })\n })\n return pathScriptsCache[path]\n }\n\n emitter.emit(`onPreLoadPageResources`, { path })\n // Nope, we need to load resource(s)\n let component\n let json\n let layout\n // Load the component/json/layout and parallel and call this\n // function when they're done loading. When both are loaded,\n // we move on.\n const done = () => {\n if (component && json && (!page.layoutComponentChunkName || layout)) {\n pathScriptsCache[path] = { component, json, layout, page }\n const pageResources = { component, json, layout, page }\n cb(pageResources)\n emitter.emit(`onPostLoadPageResources`, {\n page,\n pageResources,\n })\n }\n }\n getResourceModule(page.componentChunkName, (err, c) => {\n if (err) {\n console.log(`Loading the component for ${page.path} failed`)\n }\n component = c\n done()\n })\n getResourceModule(page.jsonName, (err, j) => {\n if (err) {\n console.log(`Loading the JSON for ${page.path} failed`)\n }\n json = j\n done()\n })\n\n page.layoutComponentChunkName &&\n getResourceModule(page.layoutComponentChunkName, (err, l) => {\n if (err) {\n console.log(`Loading the Layout for ${page.path} failed`)\n }\n layout = l\n done()\n })\n\n return undefined\n }\n },\n peek: path => pathArray.slice(-1)[0],\n length: () => pathArray.length,\n indexOf: path => pathArray.length - pathArray.indexOf(path) - 1,\n}\n\nexport const publicLoader = {\n getResourcesForPathname: queue.getResourcesForPathname,\n}\n\nexport default queue\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/loader.js","module.exports = [{\"componentChunkName\":\"component---node-modules-gatsby-plugin-offline-app-shell-js\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"offline-plugin-app-shell-fallback.json\",\"path\":\"/offline-plugin-app-shell-fallback/\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"first-post.json\",\"path\":\"/first-post\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"generating-text-using-an-lstm-neural-network.json\",\"path\":\"/generating-text-using-an-lstm-neural-network\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"vhdl-i-2-s-transmitter.json\",\"path\":\"/vhdl-i-2-s-transmitter\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"vhdl-sine-wave-oscillator.json\",\"path\":\"/vhdl-sine-wave-oscillator\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"yocto-linux-on-the-xilinx-zynq-zed-board.json\",\"path\":\"/yocto-linux-on-the-xilinx-zynq-zed-board\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support.json\",\"path\":\"/nexys-4-ddr-microblaze-with-ddr-ram-and-flash-bootloader-support\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"real-time-sound-synthesis-with-jupyter.json\",\"path\":\"/real-time-sound-synthesis-with-jupyter\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"lstm-neural-network-for-sequence-learning.json\",\"path\":\"/lstm-neural-network-for-sequence-learning\"},{\"componentChunkName\":\"component---src-templates-post-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"basic-asymmetric-multi-processor-amp-setup-on-the-zedboard.json\",\"path\":\"/basic-asymmetric-multi-processor-amp-setup-on-the-zedboard\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-github.json\",\"path\":\"/tags/github/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-blog.json\",\"path\":\"/tags/blog/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-artificial-intelligence.json\",\"path\":\"/tags/artificial-intelligence/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-lstm.json\",\"path\":\"/tags/lstm/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-vhdl-fpga-dsp.json\",\"path\":\"/tags/vhdl-fpga-dsp/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-zynq-yocto-fpga-linux-xilinx.json\",\"path\":\"/tags/zynq-yocto-fpga-linux-xilinx/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-microblaze-fpga-sdk.json\",\"path\":\"/tags/microblaze-fpga-sdk/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-audio.json\",\"path\":\"/tags/audio/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-sound.json\",\"path\":\"/tags/sound/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-jupyter.json\",\"path\":\"/tags/jupyter/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-javascript.json\",\"path\":\"/tags/javascript/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-tensorflow.json\",\"path\":\"/tags/tensorflow/\"},{\"componentChunkName\":\"component---src-templates-tag-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"tags-zynq-microblaze-yocto-linux-xilinx.json\",\"path\":\"/tags/zynq-microblaze-yocto-linux-xilinx/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-blaat.json\",\"path\":\"/categories/blaat/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-artificial-intelligence.json\",\"path\":\"/categories/artificial-intelligence/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-fpga.json\",\"path\":\"/categories/fpga/\"},{\"componentChunkName\":\"component---src-templates-category-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"categories-jupyter.json\",\"path\":\"/categories/jupyter/\"},{\"componentChunkName\":\"component---src-pages-about-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"about.json\",\"path\":\"/about/\"},{\"componentChunkName\":\"component---src-pages-index-jsx\",\"layout\":\"index\",\"layoutComponentChunkName\":\"component---src-layouts-index-jsx\",\"jsonName\":\"index.json\",\"path\":\"/\"}]\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./.cache/pages.json\n// module id = 482\n// module chunks = 231608221292675","module.exports = ({ getNextQueuedResources, createResourceDownload }) => {\n let pagesLoading = []\n let resourcesDownloading = []\n\n // Do things\n const startResourceDownloading = () => {\n const nextResource = getNextQueuedResources()\n if (nextResource) {\n resourcesDownloading.push(nextResource)\n createResourceDownload(nextResource)\n }\n }\n\n const reducer = action => {\n switch (action.type) {\n case `RESOURCE_FINISHED`:\n resourcesDownloading = resourcesDownloading.filter(\n r => r !== action.payload\n )\n break\n case `ON_PRE_LOAD_PAGE_RESOURCES`:\n pagesLoading.push(action.payload.path)\n break\n case `ON_POST_LOAD_PAGE_RESOURCES`:\n pagesLoading = pagesLoading.filter(p => p !== action.payload.page.path)\n break\n case `ON_NEW_RESOURCES_ADDED`:\n break\n }\n\n // Take actions.\n // Wait for event loop queue to finish.\n setTimeout(() => {\n if (resourcesDownloading.length === 0 && pagesLoading.length === 0) {\n // Start another resource downloading.\n startResourceDownloading()\n }\n }, 0)\n }\n\n return {\n onResourcedFinished: event => {\n // Tell prefetcher that the resource finished downloading\n // so it can grab the next one.\n reducer({ type: `RESOURCE_FINISHED`, payload: event })\n },\n onPreLoadPageResources: event => {\n // Tell prefetcher a page load has started so it should stop\n // loading anything new\n reducer({ type: `ON_PRE_LOAD_PAGE_RESOURCES`, payload: event })\n },\n onPostLoadPageResources: event => {\n // Tell prefetcher a page load has finished so it should start\n // loading resources again.\n reducer({ type: `ON_POST_LOAD_PAGE_RESOURCES`, payload: event })\n },\n onNewResourcesAdded: () => {\n // Tell prefetcher that more resources to be downloaded have\n // been added.\n reducer({ type: `ON_NEW_RESOURCES_ADDED` })\n },\n getState: () => {\n return { pagesLoading, resourcesDownloading }\n },\n empty: () => {\n pagesLoading = []\n resourcesDownloading = []\n },\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/prefetcher.js","if (__POLYFILL__) {\n require(`core-js/modules/es6.promise`)\n}\nimport { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React, { createElement } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, Route, withRouter, matchPath } from \"react-router-dom\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"domready\"\nimport history from \"./history\"\nimport emitter from \"./emitter\"\nwindow.___emitter = emitter\nimport pages from \"./pages.json\"\nimport redirects from \"./redirects.json\"\nimport ComponentRenderer from \"./component-renderer\"\nimport asyncRequires from \"./async-requires\"\nimport loader from \"./loader\"\nloader.addPagesArray(pages)\nloader.addProdRequires(asyncRequires)\nwindow.asyncRequires = asyncRequires\nwindow.___loader = loader\nwindow.matchPath = matchPath\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nconst maybeRedirect = pathname => {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n history.replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\n// Check for initial page-load redirect\nmaybeRedirect(window.location.pathname)\n\n// Let the site/plugins run code very early.\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n const navigateTo = pathname => {\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n pathname = redirect.toPath\n }\n\n // If we're already at this path, do nothing.\n if (window.location.pathname === pathname) {\n return\n }\n\n // Listen to loading events. If page resources load before\n // a second, navigate immediately.\n function eventHandler(e) {\n if (e.page.path === loader.getPage(pathname).path) {\n emitter.off(`onPostLoadPageResources`, eventHandler)\n clearTimeout(timeoutId)\n window.___history.push(pathname)\n }\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.off(`onPostLoadPageResources`, eventHandler)\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n window.___history.push(pathname)\n }, 1000)\n\n if (loader.getResourcesForPathname(pathname)) {\n // The resources are already loaded so off we go.\n clearTimeout(timeoutId)\n window.___history.push(pathname)\n } else {\n // They're not loaded yet so let's add a listener for when\n // they finish loading.\n emitter.on(`onPostLoadPageResources`, eventHandler)\n }\n }\n\n // window.___loadScriptsForPath = loadScriptsForPath\n window.___navigateTo = navigateTo\n\n // Call onRouteUpdate on the initial page load.\n apiRunner(`onRouteUpdate`, {\n location: history.location,\n action: history.action,\n })\n\n function attachToHistory(history) {\n if (!window.___history) {\n window.___history = history\n\n history.listen((location, action) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, action })\n }\n })\n }\n }\n\n function shouldUpdateScroll(prevRouterProps, { location: { pathname } }) {\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n pathname,\n })\n if (results.length > 0) {\n return results[0]\n }\n\n if (prevRouterProps) {\n const { location: { pathname: oldPathname } } = prevRouterProps\n if (oldPathname === pathname) {\n return false\n }\n }\n return true\n }\n\n const AltRouter = apiRunner(`replaceRouterComponent`, { history })[0]\n const DefaultRouter = ({ children }) => (\n <Router history={history}>{children}</Router>\n )\n\n const ComponentRendererWithRouter = withRouter(ComponentRenderer)\n\n loader.getResourcesForPathname(window.location.pathname, () => {\n const Root = () =>\n createElement(\n AltRouter ? AltRouter : DefaultRouter,\n null,\n createElement(\n ScrollContext,\n { shouldUpdateScroll },\n createElement(ComponentRendererWithRouter, {\n layout: true,\n children: layoutProps =>\n createElement(Route, {\n render: routeProps => {\n attachToHistory(routeProps.history)\n const props = layoutProps ? layoutProps : routeProps\n\n if (loader.getPage(props.location.pathname)) {\n return createElement(ComponentRenderer, {\n page: true,\n ...props,\n })\n } else {\n return createElement(ComponentRenderer, {\n page: true,\n location: { pathname: `/404.html` },\n })\n }\n },\n }),\n })\n )\n )\n\n const NewRoot = apiRunner(`wrapRootComponent`, { Root }, Root)[0]\n domReady(() =>\n ReactDOM.render(\n <NewRoot />,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n )\n })\n})\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/production-app.js","module.exports = []\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./.cache/redirects.json\n// module id = 483\n// module chunks = 231608221292675","import emitter from \"./emitter\"\n\nlet pathPrefix = `/`\nif (__PREFIX_PATHS__) {\n pathPrefix = __PATH_PREFIX__ + `/`\n}\n\nif (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${pathPrefix}sw.js`)\n .then(function(reg) {\n reg.addEventListener(`updatefound`, () => {\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n // We reload immediately so the user sees the new content.\n // This could/should be made configurable in the future.\n window.location.reload()\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n emitter.emit(`sw:installed`)\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n break\n }\n })\n })\n })\n .catch(function(e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./.cache/register-service-worker.js","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/domready/ready.js\n// module id = 388\n// module chunks = 231608221292675","\"use strict\";\n\n/* global document: false, __webpack_require__: false */\npatch();\n\nfunction patch() {\n var head = document.querySelector(\"head\");\n var ensure = __webpack_require__.e;\n var chunks = __webpack_require__.s;\n var failures;\n\n __webpack_require__.e = function (chunkId, callback) {\n var loaded = false;\n var immediate = true;\n\n var handler = function handler(error) {\n if (!callback) return;\n\n callback(__webpack_require__, error);\n callback = null;\n };\n\n if (!chunks && failures && failures[chunkId]) {\n handler(true);\n return;\n }\n\n ensure(chunkId, function () {\n if (loaded) return;\n loaded = true;\n\n if (immediate) {\n // webpack fires callback immediately if chunk was already loaded\n // IE also fires callback immediately if script was already\n // in a cache (AppCache counts too)\n setTimeout(function () {\n handler();\n });\n } else {\n handler();\n }\n });\n\n // This is |true| if chunk is already loaded and does not need onError call.\n // This happens because in such case ensure() is performed in sync way\n if (loaded) {\n return;\n }\n\n immediate = false;\n\n onError(function () {\n if (loaded) return;\n loaded = true;\n\n if (chunks) {\n chunks[chunkId] = void 0;\n } else {\n failures || (failures = {});\n failures[chunkId] = true;\n }\n\n handler(true);\n });\n };\n\n function onError(callback) {\n var script = head.lastChild;\n\n if (script.tagName !== \"SCRIPT\") {\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(\"Script is not a script\", script);\n }\n\n return;\n }\n\n script.onload = script.onerror = function () {\n script.onload = script.onerror = null;\n setTimeout(callback, 0);\n };\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader/patch.js\n// module id = 5\n// module chunks = 231608221292675","\"use strict\";\n\nmodule.exports = function (root, cb) {\n root.addEventListener(\"click\", function (ev) {\n if (ev.button !== 0 || ev.altKey || ev.ctrlKey || ev.metaKey || ev.shiftKey || ev.defaultPrevented) {\n return true;\n }\n\n var anchor = null;\n for (var n = ev.target; n.parentNode; n = n.parentNode) {\n if (n.nodeName === \"A\") {\n anchor = n;\n break;\n }\n }\n if (!anchor) return true;\n\n // Don't catch links where a target (other than self) is set\n // e.g. _blank.\n if (anchor.target && anchor.target.toLowerCase() !== \"_self\") return true;\n\n // Don't catch links pointed to the same page but with a hash.\n if (anchor.pathname === window.location.pathname && anchor.target.hash !== \"\") {\n return true;\n }\n\n // Don't catch links pointed at what look like file extensions (other than\n // .htm/html extensions).\n if (anchor.pathname.search(/^.*\\.((?!htm)[a-z0-9]{1,5})$/i) !== -1) {\n return true;\n }\n\n // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n var a1 = document.createElement(\"a\");\n a1.href = anchor.href;\n\n // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an anchor.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n var a2 = document.createElement(\"a\");\n a2.href = window.location.href;\n\n if (a1.host !== a2.host) return true;\n\n ev.preventDefault();\n\n cb(anchor.getAttribute(\"href\"));\n return false;\n });\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-catch-links/catch-links.js\n// module id = 438\n// module chunks = 231608221292675","\"use strict\";\n\nvar _gatsbyLink = require(\"gatsby-link\");\n\nvar _catchLinks = require(\"./catch-links\");\n\nvar _catchLinks2 = _interopRequireDefault(_catchLinks);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _catchLinks2.default)(window, function (href) {\n (0, _gatsbyLink.navigateTo)(href);\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-catch-links/gatsby-browser.js\n// module id = 439\n// module chunks = 231608221292675","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n // Don't track while developing.\n if (process.env.NODE_ENV === \"production\" && typeof ga === \"function\") {\n window.ga(\"set\", \"page\", (location || {}).pathname);\n window.ga(\"send\", \"pageview\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-google-analytics/gatsby-browser.js\n// module id = 440\n// module chunks = 231608221292675","\"use strict\";\n\nvar _nprogress = require(\"nprogress\");\n\nvar _nprogress2 = _interopRequireDefault(_nprogress);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.onClientEntry = function (a) {\n var pluginOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { color: \"#29d\" };\n\n window.___emitter.on(\"onDelayedLoadPageResources\", function () {\n _nprogress2.default.configure(pluginOptions);\n _nprogress2.default.start();\n });\n window.___emitter.on(\"onPostLoadPageResources\", function () {\n _nprogress2.default.done();\n });\n\n // Inject styles.\n var styles = \"#nprogress {\\n pointer-events: none;\\n}\\n#nprogress .bar {\\n background: \" + pluginOptions.color + \";\\n position: fixed;\\n z-index: 1031;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 2px;\\n}\\n#nprogress .peg {\\n display: block;\\n position: absolute;\\n right: 0px;\\n width: 100px;\\n height: 100%;\\n box-shadow: 0 0 10px \" + pluginOptions.color + \", 0 0 5px \" + pluginOptions.color + \";\\n opacity: 1.0;\\n -webkit-transform: rotate(3deg) translate(0px, -4px);\\n -ms-transform: rotate(3deg) translate(0px, -4px);\\n transform: rotate(3deg) translate(0px, -4px);\\n}\\n#nprogress .spinner {\\n display: block;\\n position: fixed;\\n z-index: 1031;\\n top: 15px;\\n right: 15px;\\n}\\n#nprogress .spinner-icon {\\n width: 18px;\\n height: 18px;\\n box-sizing: border-box;\\n border: solid 2px transparent;\\n border-top-color: \" + pluginOptions.color + \";\\n border-left-color: \" + pluginOptions.color + \";\\n border-radius: 50%;\\n -webkit-animation: nprogress-spinner 400ms linear infinite;\\n animation: nprogress-spinner 400ms linear infinite;\\n}\\n.nprogress-custom-parent {\\n overflow: hidden;\\n position: relative;\\n}\\n.nprogress-custom-parent #nprogress .spinner,\\n.nprogress-custom-parent #nprogress .bar {\\n position: absolute;\\n}\\n@-webkit-keyframes nprogress-spinner {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n }\\n}\\n@keyframes nprogress-spinner {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\";\n\n var node = document.createElement(\"style\");\n node.id = \"nprogress-styles\";\n node.innerHTML = styles;\n document.head.appendChild(node);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-nprogress/gatsby-browser.js\n// module id = 441\n// module chunks = 231608221292675","require(\n \"!../gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!./app-shell.js\") })\n }\n }, \"component---node-modules-gatsby-plugin-offline-app-shell-js\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---node-modules-gatsby-plugin-offline-app-shell-js!./~/gatsby-plugin-offline/app-shell.js\n// module id = 402\n// module chunks = 231608221292675","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return true;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-offline/gatsby-browser.js\n// module id = 443\n// module chunks = 231608221292675","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n // Wait to ensure page is rendered first.\n setTimeout(function () {\n if (typeof twttr !== \"undefined\" && window.twttr.widgets && typeof window.twttr.widgets.load === \"function\") {\n window.twttr.widgets.load();\n }\n }, 0);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-plugin-twitter/gatsby-browser.js\n// module id = 444\n// module chunks = 231608221292675","\"use strict\";\n\nvar scrollToHash = function scrollToHash(offsetY) {\n // Make sure React has had a change to flush to DOM first.\n setTimeout(function () {\n var hash = window.location.hash.replace(\"#\", \"\");\n if (hash !== \"\") {\n var element = document.getElementById(hash);\n if (element) {\n var offset = element.offsetTop;\n window.scrollTo(0, offset - offsetY);\n }\n }\n }, 10);\n};\n\nexports.onClientEntry = function (args, pluginOptions) {\n var offsetY = 0;\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n // This code is only so scrolling to header hashes works in development.\n // For production, the equivalent code is in gatsby-ssr.js.\n if (process.env.NODE_ENV !== \"production\") {\n scrollToHash(offsetY);\n }\n};\n\nexports.onRouteUpdate = function (args, pluginOptions) {\n var offsetY = 0;\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n\n scrollToHash(offsetY);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-remark-autolink-headers/gatsby-browser.js\n// module id = 449\n// module chunks = 231608221292675","function n(n){return n=n||Object.create(null),{on:function(t,o){(n[t]||(n[t]=[])).push(o)},off:function(t,o){n[t]&&n[t].splice(n[t].indexOf(o)>>>0,1)},emit:function(t,o){(n[t]||[]).map(function(n){n(o)}),(n[\"*\"]||[]).map(function(n){n(t,o)})}}}module.exports=n;\n//# sourceMappingURL=mitt.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/mitt/dist/mitt.js\n// module id = 531\n// module chunks = 231608221292675","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/nprogress/nprogress.js\n// module id = 533\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./about.jsx\") })\n }\n }, \"component---src-pages-about-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-pages-about-jsx!./src/pages/about.jsx\n// module id = 404\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./index.jsx\") })\n }\n }, \"component---src-pages-index-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-pages-index-jsx!./src/pages/index.jsx\n// module id = 405\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./category.jsx\") })\n }\n }, \"component---src-templates-category-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-templates-category-jsx!./src/templates/category.jsx\n// module id = 406\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./post.jsx\") })\n }\n }, \"component---src-templates-post-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-templates-post-jsx!./src/templates/post.jsx\n// module id = 407\n// module chunks = 231608221292675","require(\n \"!../../node_modules/gatsby-module-loader/patch.js\"\n );\n module.exports = function(cb) { return require.ensure([], function(_, error) {\n if (error) {\n console.log('bundle loading error', error)\n cb(true)\n } else {\n cb(null, function() { return require(\"!!../../node_modules/babel-loader/lib/index.js?{\\\"plugins\\\":[\\\"/srv/node_modules/gatsby/dist/utils/babel-plugin-extract-graphql.js\\\",\\\"/srv/node_modules/babel-plugin-lodash/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-add-module-exports/lib/index.js\\\",\\\"/srv/node_modules/babel-plugin-transform-object-assign/lib/index.js\\\"],\\\"presets\\\":[[\\\"/srv/node_modules/babel-preset-env/lib/index.js\\\",{\\\"loose\\\":true,\\\"uglify\\\":true,\\\"modules\\\":\\\"commonjs\\\",\\\"targets\\\":{\\\"browsers\\\":[\\\"> 1%\\\",\\\"last 2 versions\\\",\\\"IE >= 9\\\"]},\\\"exclude\\\":[\\\"transform-regenerator\\\",\\\"transform-es2015-typeof-symbol\\\"]}],\\\"/srv/node_modules/babel-preset-stage-0/lib/index.js\\\",\\\"/srv/node_modules/babel-preset-react/lib/index.js\\\"],\\\"cacheDirectory\\\":true}!./tag.jsx\") })\n }\n }, \"component---src-templates-tag-jsx\");\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/gatsby-module-loader?name=component---src-templates-tag-jsx!./src/templates/tag.jsx\n// module id = 408\n// module chunks = 231608221292675"],"sourceRoot":""}