{"version":3,"sources":["webpack://gatsby-starter-default/./node_modules/@babel/runtime/regenerator/index.js","webpack://gatsby-starter-default/./node_modules/email-validator/index.js","webpack://gatsby-starter-default/./node_modules/jsonp/index.js","webpack://gatsby-starter-default/./node_modules/jsonp/node_modules/debug/src/browser.js","webpack://gatsby-starter-default/./node_modules/jsonp/node_modules/debug/src/debug.js","webpack://gatsby-starter-default/./node_modules/jsonp/node_modules/ms/index.js","webpack://gatsby-starter-default/./node_modules/gatsby-image/index.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-google-analytics/index.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-mailchimp/index.js","webpack://gatsby-starter-default/./src/components/EssentialLinks.jsx","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://gatsby-starter-default/./src/components/SubscribeForm.js","webpack://gatsby-starter-default/./node_modules/regenerator-runtime/runtime.js"],"names":["module","exports","tester","validate","email","length","test","parts","split","some","part","debug","url","opts","fn","script","timer","prefix","id","name","count","param","timeout","enc","encodeURIComponent","target","document","getElementsByTagName","head","setTimeout","cleanup","Error","parentNode","removeChild","window","noop","clearTimeout","data","indexOf","replace","createElement","src","insertBefore","load","r","storage","e","process","DEBUG","log","console","Function","prototype","apply","call","arguments","formatArgs","args","useColors","this","namespace","humanize","diff","c","color","splice","index","lastC","match","save","namespaces","removeItem","type","documentElement","style","WebkitAppearance","firebug","exception","table","navigator","userAgent","toLowerCase","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","j","v","JSON","stringify","err","message","enable","prevTime","createDebug","enabled","self","curr","Date","ms","prev","Array","i","coerce","unshift","format","formatter","val","logFn","bind","hash","charCodeAt","Math","abs","selectColor","init","stack","disable","names","skips","len","push","substr","s","m","h","d","y","plural","n","floor","ceil","options","str","String","exec","parseFloat","parse","isNaN","long","round","fmtShort","_interopRequireDefault","require","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","default","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","currentData","isArray","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","Object","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","Fragment","key","withMedia","without","forEach","variant","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","category","action","label","value","_ref$nonInteraction","nonInteraction","transport","hitCallback","_ref$callbackTimeout","callbackTimeout","ga","trackingEventOptions","eventCategory","eventAction","eventLabel","eventValue","callback","opt_timeout","called","raceCallback","createFunctionWithTimeout","OutboundLink","rest","onClick","redirect","button","altKey","ctrlKey","metaKey","shiftKey","defaultPrevented","href","location","obj","_jsonp","__esModule","_emailValidator","subscribeEmailToMailchimp","Promise","resolve","reject","convertListFields","fields","queryParams","field","hasOwnProperty","fieldTransformed","substring","toUpperCase","endpointOverride","isEmailValid","emailEncoded","result","msg","endpoint","__GATSBY_PLUGIN_MAILCHIMP_ADDRESS__","__GATSBY_PLUGIN_MAILCHIMP_TIMEOUT__","triggerGA","trackCustomEvent","gaCategory","borderColor","asyncGeneratorStep","gen","_next","_throw","arg","info","error","done","then","_asyncToGenerator","undefined","handleSubmit","preventDefault","userEmail","addToMailchimp","sub","handleChange","onSubmit","placeholder","onChange","React","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","defineProperty","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","TypeError","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","keys","reverse","pop","skipTempReset","charAt","slice","stop","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode"],"mappings":"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","file":"b7e47343be1046920e1db652414c6c252cd0ca0a-87ab46ea6743e806a0de.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\n\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/; // Thanks to:\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\n\nexports.validate = function (email) {\n if (!email) return false;\n if (email.length > 254) return false;\n var valid = tester.test(email);\n if (!valid) return false; // Further checking of some things regex can't handle\n\n var parts = email.split(\"@\");\n if (parts[0].length > 64) return false;\n var domainParts = parts[1].split(\".\");\n if (domainParts.some(function (part) {\n return part.length > 63;\n })) return false;\n return true;\n};","/**\n * Module dependencies\n */\nvar debug = require('debug')('jsonp');\n/**\n * Module exports.\n */\n\n\nmodule.exports = jsonp;\n/**\n * Callback index.\n */\n\nvar count = 0;\n/**\n * Noop function.\n */\n\nfunction noop() {}\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\n\nfunction jsonp(url, opts, fn) {\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n\n if (!opts) opts = {};\n var prefix = opts.prefix || '__jp'; // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n\n var id = opts.name || prefix + count++;\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n if (timeout) {\n timer = setTimeout(function () {\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup() {\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel() {\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function (data) {\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n }; // add qs component\n\n\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n debug('jsonp req \"%s\"', url); // create script\n\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n return cancel;\n}","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n } // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.debug;\n } catch (e) {} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\n\nexports.enable(load());\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n\nfunction createDebug(namespace) {\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug; // set `diff` timestamp\n\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr; // turn the `arguments` into a proper Array\n\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n } // apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val); // now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // apply env-specific formatting (colors, etc.)\n\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace); // env-specific initialization logic for debug instances\n\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n/**\n * Disable debug output.\n *\n * @api public\n */\n\n\nfunction disable() {\n exports.enable('');\n}\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\nfunction enabled(name) {\n var i, len;\n\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}","/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n\n return Math.ceil(ms / n) + ' ' + name + 's';\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.OutboundLink = OutboundLink;\nexports.trackCustomEvent = trackCustomEvent;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar createFunctionWithTimeout = function createFunctionWithTimeout(callback, opt_timeout) {\n if (opt_timeout === void 0) {\n opt_timeout = 1000;\n }\n\n var called = false;\n\n var raceCallback = function raceCallback() {\n if (!called) {\n called = true;\n callback();\n }\n };\n\n setTimeout(raceCallback, opt_timeout);\n return raceCallback;\n};\n\nfunction OutboundLink(props) {\n var eventCategory = props.eventCategory,\n eventAction = props.eventAction,\n eventLabel = props.eventLabel,\n eventValue = props.eventValue,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\"]);\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({}, rest, {\n onClick: function onClick(e) {\n if (typeof props.onClick === \"function\") {\n props.onClick(e);\n }\n\n var redirect = true;\n\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.defaultPrevented) {\n redirect = false;\n }\n\n if (props.target && props.target.toLowerCase() !== \"_self\") {\n redirect = false;\n }\n\n if (window.ga) {\n window.ga(\"send\", \"event\", {\n eventCategory: eventCategory || \"Outbound Link\",\n eventAction: eventAction || \"click\",\n eventLabel: eventLabel || props.href,\n eventValue: eventValue,\n transport: redirect ? \"beacon\" : \"\",\n hitCallback: function hitCallback() {\n if (redirect) {\n document.location = props.href;\n }\n }\n });\n } else {\n if (redirect) {\n document.location = props.href;\n }\n }\n\n return false;\n }\n }));\n}\n\nOutboundLink.propTypes = {\n href: _propTypes.default.string,\n target: _propTypes.default.string,\n eventCategory: _propTypes.default.string,\n eventAction: _propTypes.default.string,\n eventLabel: _propTypes.default.string,\n eventValue: _propTypes.default.number,\n onClick: _propTypes.default.func\n};\n/**\n * This allows the user to create custom events within their Gatsby projects.\n *\n * @param {import('gatsby-plugin-google-analytics').CustomEventArgs} args\n * @see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events\n */\n\nfunction trackCustomEvent(_ref) {\n var category = _ref.category,\n action = _ref.action,\n label = _ref.label,\n value = _ref.value,\n _ref$nonInteraction = _ref.nonInteraction,\n nonInteraction = _ref$nonInteraction === void 0 ? false : _ref$nonInteraction,\n transport = _ref.transport,\n hitCallback = _ref.hitCallback,\n _ref$callbackTimeout = _ref.callbackTimeout,\n callbackTimeout = _ref$callbackTimeout === void 0 ? 1000 : _ref$callbackTimeout;\n\n if (typeof window !== \"undefined\" && window.ga) {\n var trackingEventOptions = {\n eventCategory: category,\n eventAction: action,\n eventLabel: label,\n eventValue: value,\n nonInteraction: nonInteraction,\n transport: transport\n };\n\n if (hitCallback && typeof hitCallback === \"function\") {\n trackingEventOptions.hitCallback = createFunctionWithTimeout(hitCallback, callbackTimeout);\n }\n\n window.ga(\"send\", \"event\", trackingEventOptions);\n }\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true,\n});\nexports['default'] = void 0;\n\nvar _jsonp = _interopRequireDefault(require('jsonp'));\n\nvar _emailValidator = require('email-validator');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Make a jsonp request to user's mailchimp list\n * `param` object avoids CORS issues\n * timeout to 3.5s so user isn't waiting forever\n * usually occurs w/ privacy plugins enabled\n * 3.5s is a bit longer than the time it would take on a Slow 3G connection\n *\n * @param {String} url - concatenated string of user's gatsby-config.js\n * options, along with any MC list fields as query params.\n *\n * @return {Promise} - a promise that resolves a data object\n * or rejects an error object\n */\nvar subscribeEmailToMailchimp = function subscribeEmailToMailchimp(_ref) {\n var url = _ref.url,\n timeout = _ref.timeout;\n return new Promise(function(resolve, reject) {\n return (0, _jsonp['default'])(\n url,\n {\n param: 'c',\n timeout: timeout,\n },\n function(err, data) {\n if (err) reject(err);\n if (data) resolve(data);\n },\n );\n });\n};\n/**\n * Build a query string of MC list fields\n *\n * @param {Object} fields - a list of mailchimp audience field labels\n * and their values. We uppercase because that's what MC requires.\n * NOTE: GROUPS stay as lowercase (ex: MC uses group field names as `group[21269]`)\n *\n * @return {String} - `&FIELD1=value1&FIELD2=value2&group[21265][2]=group1`\n */\n\nvar convertListFields = function convertListFields(fields) {\n var queryParams = '';\n\n for (var field in fields) {\n if (Object.prototype.hasOwnProperty.call(fields, field)) {\n // If this is a list group, not user field then keep lowercase, as per MC reqs\n // https://github.com/benjaminhoffman/gatsby-plugin-mailchimp/blob/master/README.md#groups\n var fieldTransformed = field.substring(0, 6) === 'group[' ? field : field.toUpperCase();\n queryParams = queryParams.concat(\n '&'.concat(fieldTransformed, '=').concat(fields[field]),\n );\n }\n }\n\n return queryParams;\n};\n/**\n * Subscribe an email address to a Mailchimp email list.\n * We use ES5 function syntax (instead of arrow) because we need `arguments.length`\n *\n * @param {String} email - required; the email address you want to subscribe\n * @param {Object} fields - optional; add'l info (columns) you want included w/ this subscriber\n * @param {String} endpointOverride - optional; if you want to override the default MC mailing list\n * that's listed in your gatsby-config, pass the list in here\n *\n * @return {Object} -\n * {\n * result: (`success` || `error`)\n * msg: (`Thank you for subscribing!` || `The email you entered is not valid.`),\n * }\n */\n\nvar addToMailchimp = function addToMailchimp(email, fields, endpointOverride) {\n var isEmailValid = (0, _emailValidator.validate)(email);\n var emailEncoded = encodeURIComponent(email);\n\n if (!isEmailValid) {\n return Promise.resolve({\n result: 'error',\n msg: 'The email you entered is not valid.',\n });\n }\n\n var endpoint = __GATSBY_PLUGIN_MAILCHIMP_ADDRESS__; // eslint-disable-line no-undef\n\n var timeout = __GATSBY_PLUGIN_MAILCHIMP_TIMEOUT__; // eslint-disable-line no-undef\n // The following tests for whether you passed in a `fields` object. If\n // there are only two params and the second is a string, then we can safely\n // assume the second param is a MC mailing list, and not a fields object.\n\n if (arguments.length < 3 && typeof fields === 'string') {\n endpoint = fields;\n } else if (typeof endpointOverride === 'string') {\n endpoint = endpointOverride;\n } // Generates MC endpoint for our jsonp request. We have to\n // change `/post` to `/post-json` otherwise, MC returns an error\n\n endpoint = endpoint.replace(/\\/post/g, '/post-json');\n var queryParams = '&EMAIL='.concat(emailEncoded).concat(convertListFields(fields));\n var url = ''.concat(endpoint).concat(queryParams);\n return subscribeEmailToMailchimp({\n url: url,\n timeout: timeout,\n });\n};\n\nvar _default = addToMailchimp;\nexports['default'] = _default;\n","import React from \"react\"\nimport { trackCustomEvent } from \"gatsby-plugin-google-analytics\"\n\nconst triggerGA = (category, label) => {\n if (category, label) {\n trackCustomEvent({\n category: category,\n action: \"Click\",\n label: label\n })\n }\n}\n\nconst EssentialLinks = ({gaCategory}) => {\n return (\n <>\n

\n triggerGA(gaCategory, 'bandcamp')}\n >\n Bandcamp\n \n

\n

\n triggerGA(gaCategory, 'soundcloud')}\n >\n SoundCloud\n \n

\n

\n triggerGA(gaCategory, 'spotify')}\n >\n Spotify\n \n

\n

\n triggerGA(gaCategory, 'instagram')}\n >\n Instagram\n \n

\n \n )\n}\n\nexport default EssentialLinks;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { Link } from \"gatsby\"\nimport React from \"react\"\n\nimport addToMailchimp from 'gatsby-plugin-mailchimp'\n\nimport './subscribe-form.scss'\n\nclass SubscribeForm extends React.Component {\n state = {\n email: '',\n error: null,\n message: null\n }\n\n handleChange(e) {\n const userEmail = e.target.value;\n this.setState(() => ({\n [e.target.name]: userEmail,\n error: null\n }));\n }\n\n handleSubmit = async (e) => {\n e.preventDefault();\n const userEmail = this.state.email;\n const sub = await addToMailchimp(userEmail);\n console.log(sub)\n this.setState(() => ({\n message: sub.result\n }))\n }\n\n render() {\n \n return (\n
\n this.handleChange(e)} />\n \n {this.state.error && (\n

{this.state.error}

\n )}\n {this.state.message && (\n

{this.state.message}

\n )}\n
\n )\n }\n}\n\nexport default SubscribeForm;\n\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n"],"sourceRoot":""}