{"version":3,"sources":["src/styles.css","node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///src/styles.css?7808"],"names":[],"mappings":"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","sourcesContent":["module.exports = [[module.id, \"/* You can add global styles to this file, and also import other style files */\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhFQUE4RSIsImZpbGUiOiJzcmMvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFlvdSBjYW4gYWRkIGdsb2JhbCBzdHlsZXMgdG8gdGhpcyBmaWxlLCBhbmQgYWxzbyBpbXBvcnQgb3RoZXIgc3R5bGUgZmlsZXMgKi9cclxuIl19 */\", '', '']]","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of