\n\t\t\t\n\t\t>\n\t);\n};\n\nexport default Footer;\n","import React from 'react';\n\nimport SEO from '../components/seo';\nimport Layout from '../components/layout/layout';\nimport CalculatorLayout from '../components/calculator/calculator-layout';\nimport BlogPost from '../components/blog/post';\nimport Footer from '../components/footer/footer';\nimport styles from './index.module.scss';\nimport { CalculatorProvider } from '../contexts/calculator';\n\nconst Index = () => {\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t>\n\t);\n};\n\nexport default Index;\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","require(\"core-js/modules/es6.date.now\");\n\n// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\n\nconst Button = ({ children, type, classes, size, onClick, disabled, ariaLabel }) => {\n\treturn ;\n};\n\nButton.defaultProps = {\n\ttype: 'button',\n\tclasses: 'primary',\n\tsize: '',\n\tonClick: null,\n\tdisabled: false,\n\tariaLabel: null\n};\n\nButton.propTypes = {\n\tchildren: PropTypes.node.isRequired,\n\ttype: PropTypes.string,\n\tclasses: PropTypes.string,\n\tsize: PropTypes.string,\n\tonClick: PropTypes.func,\n\tdisabled: PropTypes.bool,\n\tariaLabel: PropTypes.string\n};\n\nexport default Button;\n","module.exports = __webpack_public_path__ + \"static/notification-ok-ec5b0ba9a80a76881578301a72354dd9.png\";","'use strict';\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es7.array.includes\");\n\nrequire(\"core-js/modules/es6.string.includes\");\n\nvar _slicedToArray = require(\"/Users/user/Desktop/100kvadratov/krediti/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nrequire(\"core-js/modules/es6.number.is-nan\");\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.sort\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar _toConsumableArray = require(\"/Users/user/Desktop/100kvadratov/krediti/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar decodeComponent = require('decode-uri-component');\n\nvar splitOnFirst = require('split-on-first');\n\nvar isNullOrUndefined = function isNullOrUndefined(value) {\n return value === null || value === undefined;\n};\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return function (key) {\n return function (result, value) {\n var index = result.length;\n\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', index, ']'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')]);\n };\n };\n\n case 'bracket':\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]=', encode(value, options)].join('')]);\n };\n };\n\n case 'comma':\n case 'separator':\n return function (key) {\n return function (result, value) {\n if (value === null || value === undefined || value.length === 0) {\n return result;\n }\n\n if (result.length === 0) {\n return [[encode(key, options), '=', encode(value, options)].join('')];\n }\n\n return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n };\n };\n\n default:\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [encode(key, options)]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '=', encode(value, options)].join('')]);\n };\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n var result;\n\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n case 'comma':\n case 'separator':\n return function (key, value, accumulator) {\n var isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n var newValue = isArray ? value.split(options.arrayFormatSeparator).map(function (item) {\n return decode(item, options);\n }) : value === null ? value : decode(value, options);\n accumulator[key] = newValue;\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction validateArrayFormatSeparator(value) {\n if (typeof value !== 'string' || value.length !== 1) {\n throw new TypeError('arrayFormatSeparator must be single character string');\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction removeHash(input) {\n var hashStart = input.indexOf('#');\n\n if (hashStart !== -1) {\n input = input.slice(0, hashStart);\n }\n\n return input;\n}\n\nfunction getHash(url) {\n var hash = '';\n var hashStart = url.indexOf('#');\n\n if (hashStart !== -1) {\n hash = url.slice(hashStart);\n }\n\n return hash;\n}\n\nfunction extract(input) {\n input = removeHash(input);\n var queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {\n value = Number(value);\n } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n value = value.toLowerCase() === 'true';\n }\n\n return value;\n}\n\nfunction parse(input, options) {\n options = Object.assign({\n decode: true,\n sort: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ',',\n parseNumbers: false,\n parseBooleans: false\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n var formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n var ret = Object.create(null);\n\n if (typeof input !== 'string') {\n return ret;\n }\n\n input = input.trim().replace(/^[?#&]/, '');\n\n if (!input) {\n return ret;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = input.split('&')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var param = _step.value;\n\n var _splitOnFirst = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '='),\n _splitOnFirst2 = _slicedToArray(_splitOnFirst, 2),\n key = _splitOnFirst2[0],\n value = _splitOnFirst2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n value = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n formatter(decode(key, options), value, ret);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n for (var _i = 0, _Object$keys = Object.keys(ret); _i < _Object$keys.length; _i++) {\n var _key = _Object$keys[_i];\n var _value = ret[_key];\n\n if (typeof _value === 'object' && _value !== null) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(_value); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n _value[k] = parseValue(_value[k], options);\n }\n } else {\n ret[_key] = parseValue(_value, options);\n }\n }\n\n if (options.sort === false) {\n return ret;\n }\n\n return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce(function (result, key) {\n var value = ret[key];\n\n if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (object, options) {\n if (!object) {\n return '';\n }\n\n options = Object.assign({\n encode: true,\n strict: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ','\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n\n var shouldFilter = function shouldFilter(key) {\n return options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === '';\n };\n\n var formatter = encoderForArrayFormat(options);\n var objectCopy = {};\n\n for (var _i3 = 0, _Object$keys3 = Object.keys(object); _i3 < _Object$keys3.length; _i3++) {\n var key = _Object$keys3[_i3];\n\n if (!shouldFilter(key)) {\n objectCopy[key] = object[key];\n }\n }\n\n var keys = Object.keys(objectCopy);\n\n if (options.sort !== false) {\n keys.sort(options.sort);\n }\n\n return keys.map(function (key) {\n var value = object[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n return value.reduce(formatter(key), []).join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&');\n};\n\nexports.parseUrl = function (input, options) {\n return {\n url: removeHash(input).split('?')[0] || '',\n query: parse(extract(input), options)\n };\n};\n\nexports.stringifyUrl = function (input, options) {\n var url = removeHash(input.url).split('?')[0] || '';\n var queryFromUrl = exports.extract(input.url);\n var parsedQueryFromUrl = exports.parse(queryFromUrl);\n var hash = getHash(input.url);\n var query = Object.assign(parsedQueryFromUrl, input.query);\n var queryString = exports.stringify(query, options);\n\n if (queryString) {\n queryString = \"?\".concat(queryString);\n }\n\n return \"\".concat(url).concat(queryString).concat(hash);\n};","require(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nvar parser = require('graphql/language/parser');\n\nvar parse = parser.parse; // Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\n\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n} // A map docString -> graphql document\n\n\nvar docCache = {}; // A map fragmentName -> [normalized source]\n\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n} // For testing.\n\n\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n} // Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\n\n\nvar printFragmentWarnings = true;\n\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); // We know something about this fragment\n\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\" + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\" + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n } // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n\n\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n } // https://github.com/apollographql/graphql-tag/issues/40\n\n\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\n\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, {\n experimentalFragmentVariables: experimentalFragmentVariables\n });\n\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n } // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n\n\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n} // XXX This should eventually disallow arbitrary string interpolation, like Relay does\n\n\nfunction gql()\n/* arguments */\n{\n var args = Array.prototype.slice.call(arguments);\n var literals = args[0]; // We always get literals[0] and then matching post literals for each arg given\n\n var result = typeof literals === \"string\" ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n} // Support typescript, which isn't as nice as Babel about default exports\n\n\ngql[\"default\"] = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\nmodule.exports = gql;","function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTYuOTM0IiBoZWlnaHQ9IjI2LjgiIHZpZXdCb3g9IjAgMCAxNTYuOTM0IDI2LjgiPjxkZWZzPjxzdHlsZT4uYXtmaWxsOiNjMTFiNWY7fS5ie2ZpbGw6I2Q2MWQ2NDt9LmN7ZmlsbDojZTgzNDc5O308L3N0eWxlPjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjQ3Ljk5MyAtMzk5NCkiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00MSAzOTIzKSI+PHBhdGggY2xhc3M9ImEiIGQ9Ik0wLDAsMTIuMTM5LDEzLjJ2MTMuMkgwWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzAzLjI2MiA3MS4wMDEpIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0tNDcuNjg1LS4wMTUtMzUuNTQ2LDEzLjE4SC01MGwuMi0xMy4yWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUwLjk0NiA3MS4wMTYpIi8+PHBhdGggY2xhc3M9ImMiIGQ9Ik0wLDEzLjIsMTIuMTM5LDBWMjYuNDA4SDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2ODguOTkzIDcxLjAwMSkiLz48L2c+PHBhdGggZD0iTS01OS45ODMtOS44aDIuNDY0bDMuMDUyLDYuMDIsMy4wMjQtNi4wMmgyLjQ1VjBoLTEuOTg4Vi02LjYyMkwtNTMuNzY3LS45OTRoLTEuNDI4bC0yLjgtNS42MjhWMGgtMS45ODhabTE2LjUyLDIuMmE0LjUwOCw0LjUwOCwwLDAsMSwyLjEwNy40NzYsMy40MzUsMy40MzUsMCwwLDEsMS40MjEsMS4zNDQsMy45NDIsMy45NDIsMCwwLDEsLjUsMi4wMTYsMy45NTIsMy45NTIsMCwwLDEtLjUsMi4wMDlBMy40NjcsMy40NjcsMCwwLDEtNDEuMzU2LS40YTQuNDU0LDQuNDU0LDAsMCwxLTIuMTA3LjQ4M0E0LjQ4NSw0LjQ4NSwwLDAsMS00NS41ODQtLjRhMy40NjcsMy40NjcsMCwwLDEtMS40MjEtMS4zNTgsMy45NTIsMy45NTIsMCwwLDEtLjUtMi4wMDksMy45NDIsMy45NDIsMCwwLDEsLjUtMi4wMTYsMy40MzUsMy40MzUsMCwwLDEsMS40MjEtMS4zNDRBNC41MzksNC41MzksMCwwLDEtNDMuNDYzLTcuNlptMCwxLjc5MmExLjc2NCwxLjc2NCwwLDAsMC0xLjM2NS41NzQsMi4xMzMsMi4xMzMsMCwwLDAtLjUyNSwxLjUsMi4xMzMsMi4xMzMsMCwwLDAsLjUyNSwxLjUsMS43NjQsMS43NjQsMCwwLDAsMS4zNjUuNTc0LDEuNzQ4LDEuNzQ4LDAsMCwwLDEuMzUxLS41NzQsMi4xMzMsMi4xMzMsMCwwLDAsLjUyNS0xLjUsMi4xMzMsMi4xMzMsMCwwLDAtLjUyNS0xLjVBMS43NDgsMS43NDgsMCwwLDAtNDMuNDYzLTUuODFabTQsNi43NDhhMi41MDcsMi41MDcsMCwwLDAsLjYuMTEyQS43NTkuNzU5LDAsMCwwLTM4LjIuNzg0YTEuMjc1LDEuMjc1LDAsMCwwLC4yMjQtLjgxMnYtNy41aDIuMTQyVi4zMDhhMi40NTQsMi40NTQsMCwwLDEtLjY3MiwxLjgyNywyLjUxMiwyLjUxMiwwLDAsMS0xLjg0OC42NjUsMy45MSwzLjkxLDAsMCwxLTEuNTU0LS4yOTRabTIuNTItMTEuODE2YTEuMTM0LDEuMTM0LDAsMCwxLC44NDcuMzM2LDEuMTg4LDEuMTg4LDAsMCwxLC4zMjkuODY4LDEuMTg4LDEuMTg4LDAsMCwxLS4zMjkuODY4LDEuMTM0LDEuMTM0LDAsMCwxLS44NDcuMzM2LDEuMSwxLjEsMCwwLDEtLjgzMy0uMzQzLDEuMTk0LDEuMTk0LDAsMCwxLS4zMjktLjg2MSwxLjE4OCwxLjE4OCwwLDAsMSwuMzI5LS44NjhBMS4xMTcsMS4xMTcsMCwwLDEtMzYuOTM5LTEwLjg3OFptMy4xMDgsMy4zNDZoMi4xNTZWMGgtMi4xNTZabTEuMDY0LTMuMzQ2YTEuMTM0LDEuMTM0LDAsMCwxLC44NDcuMzM2LDEuMTg4LDEuMTg4LDAsMCwxLC4zMjkuODY4LDEuMTg4LDEuMTg4LDAsMCwxLS4zMjkuODY4LDEuMTM0LDEuMTM0LDAsMCwxLS44NDcuMzM2LDEuMSwxLjEsMCwwLDEtLjgzMy0uMzQzLDEuMTk0LDEuMTk0LDAsMCwxLS4zMjktLjg2MSwxLjE4OCwxLjE4OCwwLDAsMSwuMzI5LS44NjhBMS4xMTcsMS4xMTcsMCwwLDEtMzIuNzY3LTEwLjg3OFpNLTI0LjU5MSwwbC0xLjgyLTMuMDY2LS45NjYsMS4wMjJWMGgtMi4xNTZWLTEwLjM4OGgyLjE1NnY1LjcxMmwyLjc1OC0yLjg0MmgyLjQ1bC0yLjc1OCwyLjlMLTIyLjA0MywwWm0yLjUyLTcuNTE4LDIuMjI2LS4wMTQsMS43NzgsNS40ODhMLTE2LjMtNy41MzJoMi4xNDJMLTE3LDBoLTIuMjEyWk0tOS4wNTEsMFYtLjg4MmEyLjQxNiwyLjQxNiwwLDAsMS0uOTguNzI4QTMuNTY1LDMuNTY1LDAsMCwxLTExLjQxNy4xYTIuNjY1LDIuNjY1LDAsMCwxLTEuODktLjY1MSwyLjIxNSwyLjIxNSwwLDAsMS0uNy0xLjcsMiwyLDAsMCwxLC43NDktMS42NTksMy4zOTQsMy4zOTQsMCwwLDEsMi4xMjEtLjYwOWgyLjA3MnYtLjE0YTEuMTM5LDEuMTM5LDAsMCwwLS40LS45MzEsMS44LDEuOCwwLDAsMC0xLjE2OS0uMzI5LDQuNjU4LDQuNjU4LDAsMCwwLTIuMjQuNjU4bC0uNjcyLTEuNDg0YTksOSwwLDAsMSwxLjY4LS42NTgsNi42NDUsNi42NDUsMCwwLDEsMS43MjItLjIxQTMuNSwzLjUsMCwwLDEtNy44LTYuOWEyLjUxNywyLjUxNywwLDAsMSwuODQ3LDEuOTg4TC02LjkzNywwWm0tMS43NjQtMS40NDJhMi4wNjgsMi4wNjgsMCwwLDAsMS4xNjItLjMyMiwxLjI1OCwxLjI1OCwwLDAsMCwuNTg4LS44MTJ2LS42NzJoLTEuNjk0YTEuNjksMS42OSwwLDAsMC0uOTMxLjIuNzI4LjcyOCwwLDAsMC0uMy42NTEuODUxLjg1MSwwLDAsMCwuMzE1LjY5M0ExLjMxNiwxLjMxNiwwLDAsMC0xMC44MTUtMS40NDJaTTIuMzU5LTEwLjM4OFYwSC4yMTdWLTEuMTA2QTIuNjYxLDIuNjYxLDAsMCwxLS43OTEtLjIxN2EzLjAyNywzLjAyNywwLDAsMS0xLjM3Mi4zQTMuNTYyLDMuNTYyLDAsMCwxLTQuMDMyLS40LDMuMjQyLDMuMjQyLDAsMCwxLTUuMjc4LTEuNzY0YTQuNDgxLDQuNDgxLDAsMCwxLS40NDEtMi4wMyw0LjQyLDQuNDIsMCwwLDEsLjQzNC0yQTMuMTgzLDMuMTgzLDAsMCwxLTQuMDUzLTcuMTRhMy41MTEsMy41MTEsMCwwLDEsMS44MzQtLjQ3NkEyLjgsMi44LDAsMCwxLC4yMTctNi40MjZ2LTMuOTYyWk0tMS42NTktMS42NTJBMS43MzgsMS43MzgsMCwwLDAtLjMwOC0yLjIzMywyLjE1OSwyLjE1OSwwLDAsMCwuMjE3LTMuNzM4YTIuMTU5LDIuMTU5LDAsMCwwLS41MjUtMS41LDEuNzM4LDEuNzM4LDAsMCwwLTEuMzUxLS41ODEsMS43NTQsMS43NTQsMCwwLDAtMS4zNjUuNTgxLDIuMjExLDIuMjExLDAsMCwwLS41MzksMS41LDIuMjExLDIuMjExLDAsMCwwLC41MzksMS41MDVBMS43NTQsMS43NTQsMCwwLDAtMS42NTktMS42NTJabTguMzMtNC41MjJBMi43NCwyLjc0LDAsMCwxLDcuNjkzLTcuMjM4YTIuOTg5LDIuOTg5LDAsMCwxLDEuNDctLjM3OHYyLjAzQTIuOTUyLDIuOTUyLDAsMCwwLDguODI3LTUuNmEyLjIyNSwyLjIyNSwwLDAsMC0xLjU3NS41MzksMS44NjQsMS44NjQsMCwwLDAtLjU4MSwxLjQzNVYwSDQuNTE1Vi03LjUzMkg2LjY3MVpNMTQuNDY5LDBWLS44ODJhMi40MTYsMi40MTYsMCwwLDEtLjk4LjcyOEEzLjU2NSwzLjU2NSwwLDAsMSwxMi4xLjFhMi42NjUsMi42NjUsMCwwLDEtMS44OS0uNjUxLDIuMjE1LDIuMjE1LDAsMCwxLS43LTEuNywyLDIsMCwwLDEsLjc0OS0xLjY1OSwzLjM5NCwzLjM5NCwwLDAsMSwyLjEyMS0uNjA5aDIuMDcydi0uMTRhMS4xMzksMS4xMzksMCwwLDAtLjQtLjkzMSwxLjgsMS44LDAsMCwwLTEuMTY5LS4zMjksNC42NTgsNC42NTgsMCwwLDAtMi4yNC42NThMOS45NzUtNi43NDhhOSw5LDAsMCwxLDEuNjgtLjY1OCw2LjY0NSw2LjY0NSwwLDAsMSwxLjcyMi0uMjEsMy41LDMuNSwwLDAsMSwyLjM0NS43MTQsMi41MTcsMi41MTcsMCwwLDEsLjg0NywxLjk4OEwxNi41ODMsMFpNMTIuNzA1LTEuNDQyYTIuMDY4LDIuMDY4LDAsMCwwLDEuMTYyLS4zMjIsMS4yNTgsMS4yNTgsMCwwLDAsLjU4OC0uODEydi0uNjcySDEyLjc2MWExLjY5LDEuNjksMCwwLDAtLjkzMS4yLjcyOC43MjgsMCwwLDAtLjMuNjUxLjg1MS44NTEsMCwwLDAsLjMxNS42OTNBMS4zMTYsMS4zMTYsMCwwLDAsMTIuNzA1LTEuNDQyWk0yMy4xMDctLjQyYTMuNTIzLDMuNTIzLDAsMCwxLS45MzEuMzg1QTQuMDcsNC4wNywwLDAsMSwyMS4xNDcuMWEyLjQzMiwyLjQzMiwwLDAsMS0xLjcwOC0uNiwyLjIxNiwyLjIxNiwwLDAsMS0uNjU4LTEuNzIyVi01LjcxMmgtMS4wNVYtNy4yaDEuMDVWLTkuMjY4aDIuMTQyVi03LjJoMi4wNDR2MS41SDIwLjkyM1YtMi41OXEwLC44NjguNjg2Ljg2OEEyLjQyNCwyLjQyNCwwLDAsMCwyMi42NTktMlptMS4zLTcuMTEyaDIuMTU2VjBIMjQuNDA5Wm0xLjA2NC0zLjM0NmExLjEzNCwxLjEzNCwwLDAsMSwuODQ3LjMzNiwxLjE4OCwxLjE4OCwwLDAsMSwuMzI5Ljg2OCwxLjE4OCwxLjE4OCwwLDAsMS0uMzI5Ljg2OCwxLjEzNCwxLjEzNCwwLDAsMS0uODQ3LjMzNiwxLjEsMS4xLDAsMCwxLS44MzMtLjM0MywxLjE5NCwxLjE5NCwwLDAsMS0uMzI5LS44NjEsMS4xODgsMS4xODgsMCwwLDEsLjMyOS0uODY4QTEuMTE3LDEuMTE3LDAsMCwxLDI1LjQ3My0xMC44NzhabTMuNDg2LDkuNzE2YS42MDkuNjA5LDAsMCwxLC40NDguMTgyLjYwOS42MDksMCwwLDEsLjE4Mi40NDguNjMyLjYzMiwwLDAsMS0uMTgyLjQ1NS42LjYsMCwwLDEtLjQ0OC4xODkuNTg2LjU4NiwwLDAsMS0uNDQxLS4xODIuNjM5LjYzOSwwLDAsMS0uMTc1LS40NjIuNjIyLjYyMiwwLDAsMSwuMTc1LS40NDhBLjU4Ni41ODYsMCwwLDEsMjguOTU5LTEuMTYyWk0zNi44LTUuNjdhMy4wMzksMy4wMzksMCwwLDAtMi4yLS44NjgsMi43NzUsMi43NzUsMCwwLDAtMS40MTQuMzY0LDIuNTMzLDIuNTMzLDAsMCwwLS45OCwxLjAxNSwzLjEsMy4xLDAsMCwwLS4zNSwxLjQ5MSwzLjE0LDMuMTQsMCwwLDAsLjM1LDEuNSwyLjUyMiwyLjUyMiwwLDAsMCwuOTgsMS4wMjJBMi43NzUsMi43NzUsMCwwLDAsMzQuNi0uNzg0YTMuMzIzLDMuMzIzLDAsMCwwLDEuMzA5LS4yNTIsMi42NTcsMi42NTcsMCwwLDAsMS0uNzI4bC41MzIuNTZhMy4yNywzLjI3LDAsMCwxLTEuMjMyLjkxLDQuMTA4LDQuMTA4LDAsMCwxLTEuNjUyLjMyMiwzLjczMiwzLjczMiwwLDAsMS0xLjg3Ni0uNDY5LDMuMzQ1LDMuMzQ1LDAsMCwxLTEuMy0xLjMxNiwzLjg3OCwzLjg3OCwwLDAsMS0uNDY5LTEuOTExLDMuODc4LDMuODc4LDAsMCwxLC40NjktMS45MTEsMy4zNDUsMy4zNDUsMCwwLDEsMS4zLTEuMzE2LDMuNzMyLDMuNzMyLDAsMCwxLDEuODc2LS40NjksNC4yLDQuMiwwLDAsMSwxLjU2MS4yOCwzLjUyNCwzLjUyNCwwLDAsMSwxLjIxMS43ODRabTUuMzItMS42OTRhMy44MzgsMy44MzgsMCwwLDEsMS45LjQ2OSwzLjM3OSwzLjM3OSwwLDAsMSwxLjMxNiwxLjMwOSwzLjc5NCwzLjc5NCwwLDAsMSwuNDc2LDEuOSwzLjg2MSwzLjg2MSwwLDAsMS0uNDc2LDEuOTI1QTMuMzY2LDMuMzY2LDAsMCwxLDQ0LjAyMy0uNDQxYTMuODM4LDMuODM4LDAsMCwxLTEuOS40NjksMy44MzgsMy44MzgsMCwwLDEtMS45LS40NjlBMy4zNjYsMy4zNjYsMCwwLDEsMzguOS0xLjc1N2EzLjg2MSwzLjg2MSwwLDAsMS0uNDc2LTEuOTI1LDMuNzk0LDMuNzk0LDAsMCwxLC40NzYtMS45QTMuMzc5LDMuMzc5LDAsMCwxLDQwLjIxNS02LjksMy44MzgsMy44MzgsMCwwLDEsNDIuMTE5LTcuMzY0Wm0wLC44MTJhMi44LDIuOCwwLDAsMC0xLjQyOC4zNjQsMi41MjIsMi41MjIsMCwwLDAtLjk4LDEuMDIyLDMuMTQsMy4xNCwwLDAsMC0uMzUsMS41LDMuMTcxLDMuMTcxLDAsMCwwLC4zNSwxLjUxMiwyLjUyMiwyLjUyMiwwLDAsMCwuOTgsMS4wMjIsMi44LDIuOCwwLDAsMCwxLjQyOC4zNjQsMi44LDIuOCwwLDAsMCwxLjQyOC0uMzY0LDIuNTIyLDIuNTIyLDAsMCwwLC45OC0xLjAyMiwzLjE3MSwzLjE3MSwwLDAsMCwuMzUtMS41MTIsMy4xNCwzLjE0LDAsMCwwLS4zNS0xLjUsMi41MjIsMi41MjIsMCwwLDAtLjk4LTEuMDIyQTIuOCwyLjgsMCwwLDAsNDIuMTE5LTYuNTUyWm0xNS4wNS0uODEyYTIuNjg2LDIuNjg2LDAsMCwxLDIuMDMuNzU2LDIuOSwyLjksMCwwLDEsLjcyOCwyLjFWMGgtLjk1MlYtNC4yODRhMi4yMzcsMi4yMzcsMCwwLDAtLjU2Ny0xLjYzMUEyLjA4MSwyLjA4MSwwLDAsMCw1Ni44NDctNi41YTIuMzYzLDIuMzYzLDAsMCwwLTEuODQxLjgxMiwzLjEsMy4xLDAsMCwwLS42NjUsMi4wNzJWMGgtLjk1MlYtNC4yODRhMi4yMzcsMi4yMzcsMCwwLDAtLjU2Ny0xLjYzMUEyLjA4MSwyLjA4MSwwLDAsMCw1MS4yNjEtNi41YTIuMzg1LDIuMzg1LDAsMCwwLTEuODQ4LjgxMiwzLjA3NCwzLjA3NCwwLDAsMC0uNjcyLDIuMDcyVjBINDcuOFYtNy4zMzZoLjkzOHYxLjcyMmEyLjY2OCwyLjY2OCwwLDAsMSwxLjA4NS0xLjMsMy40NDEsMy40NDEsMCwwLDEsMS43NTctLjQ0OCwyLjgzMSwyLjgzMSwwLDAsMSwxLjc0My41MTgsMi40NjEsMi40NjEsMCwwLDEsLjkxNywxLjQ1NiwyLjc1MiwyLjc1MiwwLDAsMSwxLjA4NS0xLjQ3QTMuMzc0LDMuMzc0LDAsMCwxLDU3LjE2OS03LjM2NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc0NSA0MDE4KSIvPjxwYXRoIGQ9Ik0zLjctN2EzLDMsMCwwLDEsMi4wMjUuNjJBMi4xOCwyLjE4LDAsMCwxLDYuNDQtNC42NGEyLjMxMSwyLjMxMSwwLDAsMS0uNzIsMS44MTVBMi45MjMsMi45MjMsMCwwLDEsMy43LTIuMThIMS45NlYwSDFWLTdaTTMuNjYtMy4wNWEyLjEyMSwyLjEyMSwwLDAsMCwxLjM4LS4zOTVBMS40MjEsMS40MjEsMCwwLDAsNS41Mi00LjYxYTEuMzY4LDEuMzY4LDAsMCwwLS40OC0xLjEzNUEyLjE2LDIuMTYsMCwwLDAsMy42Ni02LjEzbC0xLjcuMDF2My4wN1pNOS44Mi01LjMyYTIuODU1LDIuODU1LDAsMCwxLDEuNDA1LjM0LDIuNDQ2LDIuNDQ2LDAsMCwxLC45Ni45NDVBMi43NDYsMi43NDYsMCwwLDEsMTIuNTMtMi42NWEyLjc3NCwyLjc3NCwwLDAsMS0uMzQ1LDEuMzksMi40MzYsMi40MzYsMCwwLDEtLjk2Ljk1QTIuODU1LDIuODU1LDAsMCwxLDkuODIuMDMsMi44NzYsMi44NzYsMCwwLDEsOC40LS4zMWEyLjQ0NiwyLjQ0NiwwLDAsMS0uOTYtLjk0NUEyLjc2NiwyLjc2NiwwLDAsMSw3LjEtMi42NWEyLjc0NiwyLjc0NiwwLDAsMSwuMzQ1LTEuMzg1QTIuNDQ2LDIuNDQ2LDAsMCwxLDguNC00Ljk4LDIuODc2LDIuODc2LDAsMCwxLDkuODItNS4zMlptMCwuODFhMS43OCwxLjc4LDAsMCwwLS45MjUuMjQsMS42NTksMS42NTksMCwwLDAtLjYzLjY2NSwyLjAzMSwyLjAzMSwwLDAsMC0uMjI1Ljk2NSwyLjA4MiwyLjA4MiwwLDAsMCwuMjI1Ljk4QTEuNjE4LDEuNjE4LDAsMCwwLDguOS0xLDEuODA5LDEuODA5LDAsMCwwLDkuODItLjc2LDEuNzg5LDEuNzg5LDAsMCwwLDEwLjczNS0xYTEuNjE4LDEuNjE4LDAsMCwwLC42My0uNjY1LDIuMDgyLDIuMDgyLDAsMCwwLC4yMjUtLjk4LDIuMDMxLDIuMDMxLDAsMCwwLS4yMjUtLjk2NSwxLjY1OSwxLjY1OSwwLDAsMC0uNjMtLjY2NUExLjc2LDEuNzYsMCwwLDAsOS44Mi00LjUxWm0yLjk1LS43OGguOTdMMTUuMjItLjkybDEuNDYtNC4zN2guOTdMMTkuMTItLjkybDEuNDYtNC4zN2guOTZMMTkuNTksMGgtLjk3TDE3LjE2LTQuMTYsMTUuNywwaC0uOTdabTExLjU4LS4wM2EyLjMzMSwyLjMzMSwwLDAsMSwxLjg2LjcyNSwyLjk3MiwyLjk3MiwwLDAsMSwuNjMsMi4wMTVxMCwuMi0uMDEuM0gyMi42NWExLjgsMS44LDAsMCwwLC41OTUsMS4xMywxLjc2MSwxLjc2MSwwLDAsMCwxLjIuNDIsMi4yMzgsMi4yMzgsMCwwLDAsLjg3NS0uMTcsMi4xLDIuMSwwLDAsMCwuNy0uNDhsLjUxLjUzYTIuNjcyLDIuNjcyLDAsMCwxLS45NC42NSwzLjEzMywzLjEzMywwLDAsMS0xLjIyLjIzLDIuODExLDIuODExLDAsMCwxLTEuMzg1LS4zMzUsMi4zNTMsMi4zNTMsMCwwLDEtLjk0LS45NDUsMi44NCwyLjg0LDAsMCwxLS4zMzUtMS4zOSwyLjgxMSwyLjgxMSwwLDAsMSwuMzM1LTEuMzg1LDIuNDM5LDIuNDM5LDAsMCwxLC45MzUtLjk1QTIuNywyLjcsMCwwLDEsMjQuMzUtNS4zMlpNMjYtM2ExLjYxNiwxLjYxNiwwLDAsMC0uNDgtMS4xMzUsMS42MjIsMS42MjIsMCwwLDAtMS4xNi0uNDE1LDEuNjczLDEuNjczLDAsMCwwLTEuMTY1LjQyQTEuNzYyLDEuNzYyLDAsMCwwLDIyLjY0LTNabTMuMDQtMS4xNWExLjkxNSwxLjkxNSwwLDAsMSwuNzQtLjg2NSwyLjIsMi4yLDAsMCwxLDEuMTQtLjN2LjlBMS43NzksMS43NzksMCwwLDAsMjkuNjEtNGExLjc4LDEuNzgsMCwwLDAtLjU3LDEuMjFWMGgtLjkzVi01LjI5aC45M1ptNS4wMS0xLjE3YTIuMzMxLDIuMzMxLDAsMCwxLDEuODYuNzI1LDIuOTcyLDIuOTcyLDAsMCwxLC42MywyLjAxNXEwLC4yLS4wMS4zSDMyLjM1YTEuOCwxLjgsMCwwLDAsLjYsMS4xMywxLjc2MSwxLjc2MSwwLDAsMCwxLjE5NS40MiwyLjIzOCwyLjIzOCwwLDAsMCwuODc1LS4xNywyLjEsMi4xLDAsMCwwLC43LS40OGwuNTEuNTNhMi42NzIsMi42NzIsMCwwLDEtLjk0LjY1LDMuMTMzLDMuMTMzLDAsMCwxLTEuMjIuMjMsMi44MTEsMi44MTEsMCwwLDEtMS4zODUtLjMzNSwyLjM1MywyLjM1MywwLDAsMS0uOTQtLjk0NSwyLjg0LDIuODQsMCwwLDEtLjMzNS0xLjM5LDIuODExLDIuODExLDAsMCwxLC4zMzUtMS4zODUsMi40MzksMi40MzksMCwwLDEsLjkzNS0uOTVBMi43LDIuNywwLDAsMSwzNC4wNS01LjMyWk0zNS43LTNhMS42MTYsMS42MTYsMCwwLDAtLjQ4LTEuMTM1LDEuNjIyLDEuNjIyLDAsMCwwLTEuMTYtLjQxNSwxLjY3MywxLjY3MywwLDAsMC0xLjE2NS40MkExLjc2MiwxLjc2MiwwLDAsMCwzMi4zNC0zWm03LjA0LTQuNDJWMGgtLjkzVi0xLjA1QTIuMSwyLjEsMCwwLDEsNDEtLjIzNSwyLjM1LDIuMzUsMCwwLDEsMzkuODMuMDUsMi41MjUsMi41MjUsMCwwLDEsMzguNS0uM2EyLjM3LDIuMzcsMCwwLDEtLjktLjk2LDMsMywwLDAsMS0uMzItMS40LDIuOTE3LDIuOTE3LDAsMCwxLC4zMi0xLjM4NSwyLjM1MSwyLjM1MSwwLDAsMSwuOS0uOTQ1LDIuNTM0LDIuNTM0LDAsMCwxLDEuMzE1LS4zNCwyLjQzNCwyLjQzNCwwLDAsMSwxLjE5LjI4LDEuOTkyLDEuOTkyLDAsMCwxLC44LjgxVi03LjQyWk00MC4wMi0uNzVhMS43OCwxLjc4LDAsMCwwLC45MjUtLjI0LDEuNjg1LDEuNjg1LDAsMCwwLC42MzUtLjY3LDIuMDI0LDIuMDI0LDAsMCwwLC4yMy0uOTcsMi4wNDUsMi4wNDUsMCwwLDAtLjIzLS45OCwxLjY4NSwxLjY4NSwwLDAsMC0uNjM1LS42NywxLjc4LDEuNzgsMCwwLDAtLjkyNS0uMjQsMS43NTIsMS43NTIsMCwwLDAtLjkyNS4yNDUsMS43MjEsMS43MjEsMCwwLDAtLjYzNS42NzUsMi4wMjQsMi4wMjQsMCwwLDAtLjIzLjk3LDIuMDI0LDIuMDI0LDAsMCwwLC4yMy45NywxLjY4NSwxLjY4NSwwLDAsMCwuNjM1LjY3QTEuNzgsMS43OCwwLDAsMCw0MC4wMi0uNzVaTTUwLjE3LTUuMzJhMi41NjEsMi41NjEsMCwwLDEsMS4zMi4zNCwyLjMzMywyLjMzMywwLDAsMSwuOS45NSwyLjk2OSwyLjk2OSwwLDAsMSwuMzIsMS40LDIuOTU1LDIuOTU1LDAsMCwxLS4zMTUsMS4zODUsMi4yODQsMi4yODQsMCwwLDEtLjg5Ljk0QTIuNTY0LDIuNTY0LDAsMCwxLDUwLjE5LjAzYTIuNDEyLDIuNDEyLDAsMCwxLTEuMTgtLjI4LDIuMDA4LDIuMDA4LDAsMCwxLS44LS44VjBoLS45M1YtNy40MmguOTN2My4xOGEyLjAxNywyLjAxNywwLDAsMSwuOC0uOEEyLjM2MywyLjM2MywwLDAsMSw1MC4xNy01LjMyWk00OS45OS0uNzhhMS43NiwxLjc2LDAsMCwwLC45MTUtLjI0LDEuNjUxLDEuNjUxLDAsMCwwLC42My0uNjcsMi4wNiwyLjA2LDAsMCwwLC4yMjUtLjk3LDIsMiwwLDAsMC0uMjMtLjk2LDEuNywxLjcsMCwwLDAtLjYzLS42NywxLjczNCwxLjczNCwwLDAsMC0uOTEtLjI0LDEuNzYsMS43NiwwLDAsMC0uOTE1LjI0LDEuNjg1LDEuNjg1LDAsMCwwLS42MzUuNjcsMiwyLDAsMCwwLS4yMy45NiwyLjAxNiwyLjAxNiwwLDAsMCwuMjMuOTc1LDEuNjk0LDEuNjk0LDAsMCwwLC42MzUuNjY1QTEuNzYsMS43NiwwLDAsMCw0OS45OS0uNzhaTTU1LjY4Ljc1YTIuMTEyLDIuMTEyLDAsMCwxLS42NjUuOTIsMS41ODQsMS41ODQsMCwwLDEtLjk3NS4zMSwxLjgzMywxLjgzMywwLDAsMS0uNjItLjEsMS44NTIsMS44NTIsMCwwLDEtLjU0LS4zMWwuNC0uNzNhMS4yMTIsMS4yMTIsMCwwLDAsLjcxLjI1Ljk2Ni45NjYsMCwwLDAsLjktLjY4bC4yLS40N0w1Mi45LTUuMjloLjk4bDEuNjgsNC4yNCwxLjU5LTQuMjRoLjk1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjg0IDQwMDIpIi8+PC9nPjwvc3ZnPg==\"","function useGa() {\n\tconst getTrackingId = () => {\n\t\treturn 'UA-109126882-11';\n\t};\n\n\tconst isReady = () => {\n\t\treturn (typeof window !== 'undefined' && typeof window.gtag !== 'undefined');\n\t};\n\n\tconst sendPageView = (page) => {\n\t\tif (isReady()) {\n\t\t\t// https://developers.google.com/gtagjs/reference/api#event\n\t\t\twindow.gtag('config', getTrackingId(), {\n\t\t\t\t// hitType: 'pageview',\n\t\t\t\tpage_location: page || 1\n\t\t\t});\n\n\t\t\t// Debug\n\t\t\tconsole.log('PageView sent!', page || 1);\n\t\t}\n\t};\n\n\tconst sendEvent = (category, action, label, value) => {\n\t\tif (isReady()) {\n\t\t\tconst options = {\n\t\t\t\teventCategory: (category !== undefined && category !== null) ? category : 'Button',\n\t\t\t\teventAction: (action !== undefined && action !== null) ? action : 'click',\n\t\t\t\teventLabel: (label !== undefined && label !== null) ? label : '',\n\t\t\t\teventValue: (value !== undefined && value !== null) ? value : ''\n\t\t\t};\n\n\t\t\t// https://developers.google.com/analytics/devguides/collection/gtagjs/events\n\t\t\twindow.gtag('event', options.eventAction, {\n\t\t\t\tevent_category: options.eventCategory,\n\t\t\t\tevent_label: options.eventLabel,\n\t\t\t\tvalue: options.eventValue\n\t\t\t});\n\n\t\t\t// Debug\n\t\t\tconsole.log(options.eventCategory, options.eventAction, options.eventLabel, options.eventValue);\n\t\t}\n\t};\n\n\treturn { sendPageView, sendEvent };\n}\n\nexport default useGa;\n","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.function.bind\";\nimport { parser, operationName, DocumentType, getApolloContext } from '@apollo/react-common';\nexport { ApolloConsumer, ApolloProvider, getApolloContext, resetApolloContext } from '@apollo/react-common';\nimport { __extends, __assign } from 'tslib';\nimport React, { useRef, useContext, useReducer, useEffect, useState } from 'react';\nimport { NetworkStatus, ApolloError } from 'apollo-client';\nimport { equal } from '@wry/equality';\nimport { invariant } from 'ts-invariant';\n\nvar OperationData = function () {\n function OperationData(options, context) {\n this.isMounted = false;\n this.previousOptions = {};\n this.context = {};\n this.options = {};\n this.options = options || {};\n this.context = context || {};\n }\n\n OperationData.prototype.getOptions = function () {\n return this.options;\n };\n\n OperationData.prototype.setOptions = function (newOptions, storePrevious) {\n if (storePrevious === void 0) {\n storePrevious = false;\n }\n\n if (storePrevious && !equal(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n\n this.options = newOptions;\n };\n\n OperationData.prototype.unmount = function () {\n this.isMounted = false;\n };\n\n OperationData.prototype.refreshClient = function () {\n var client = this.options && this.options.client || this.context && this.context.client;\n process.env.NODE_ENV === \"production\" ? invariant(!!client, 2) : invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' + 'Wrap the root component in an , or pass an ' + 'ApolloClient instance in via options.');\n var isNew = false;\n\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n\n return {\n client: this.client,\n isNew: isNew\n };\n };\n\n OperationData.prototype.verifyDocumentType = function (document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n process.env.NODE_ENV === \"production\" ? invariant(operation.type === type, 3) : invariant(operation.type === type, \"Running a \" + requiredOperationName + \" requires a graphql \" + (requiredOperationName + \", but a \" + usedOperationName + \" was used instead.\"));\n };\n\n return OperationData;\n}();\n\nvar QueryData = function (_super) {\n __extends(QueryData, _super);\n\n function QueryData(_a) {\n var options = _a.options,\n context = _a.context,\n forceUpdate = _a.forceUpdate;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.previousData = {};\n _this.currentObservable = {};\n _this.runLazy = false;\n\n _this.runLazyQuery = function (options) {\n _this.cleanup();\n\n _this.runLazy = true;\n _this.lazyOptions = options;\n\n _this.forceUpdate();\n };\n\n _this.getExecuteResult = function () {\n var result = _this.getQueryResult();\n\n _this.startQuerySubscription();\n\n return result;\n };\n\n _this.obsRefetch = function (variables) {\n return _this.currentObservable.query.refetch(variables);\n };\n\n _this.obsFetchMore = function (fetchMoreOptions) {\n return _this.currentObservable.query.fetchMore(fetchMoreOptions);\n };\n\n _this.obsUpdateQuery = function (mapFn) {\n return _this.currentObservable.query.updateQuery(mapFn);\n };\n\n _this.obsStartPolling = function (pollInterval) {\n _this.currentObservable && _this.currentObservable.query && _this.currentObservable.query.startPolling(pollInterval);\n };\n\n _this.obsStopPolling = function () {\n _this.currentObservable && _this.currentObservable.query && _this.currentObservable.query.stopPolling();\n };\n\n _this.obsSubscribeToMore = function (options) {\n return _this.currentObservable.query.subscribeToMore(options);\n };\n\n _this.forceUpdate = forceUpdate;\n return _this;\n }\n\n QueryData.prototype.execute = function () {\n this.refreshClient();\n\n var _a = this.getOptions(),\n skip = _a.skip,\n query = _a.query;\n\n if (skip || query !== this.previousData.query) {\n this.removeQuerySubscription();\n this.previousData.query = query;\n }\n\n this.updateObservableQuery();\n if (this.isMounted) this.startQuerySubscription();\n return this.getExecuteSsrResult() || this.getExecuteResult();\n };\n\n QueryData.prototype.executeLazy = function () {\n return !this.runLazy ? [this.runLazyQuery, {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined\n }] : [this.runLazyQuery, this.execute()];\n };\n\n QueryData.prototype.fetchData = function () {\n var options = this.getOptions();\n if (options.skip || options.ssr === false) return false;\n var obs = this.currentObservable.query;\n var currentResult = obs.getCurrentResult();\n return currentResult.loading ? obs.result() : false;\n };\n\n QueryData.prototype.afterExecute = function (_a) {\n var _this = this;\n\n var _b = (_a === void 0 ? {} : _a).lazy,\n lazy = _b === void 0 ? false : _b;\n this.isMounted = true;\n\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n setTimeout(function () {\n _this.currentObservable.query && _this.currentObservable.query.resetQueryStoreErrors();\n });\n }\n\n this.previousOptions = this.getOptions();\n return this.unmount.bind(this);\n };\n\n QueryData.prototype.cleanup = function () {\n this.removeQuerySubscription();\n delete this.currentObservable.query;\n delete this.previousData.result;\n };\n\n QueryData.prototype.getOptions = function () {\n var options = _super.prototype.getOptions.call(this);\n\n if (this.lazyOptions) {\n options.variables = __assign(__assign({}, options.variables), this.lazyOptions.variables);\n options.context = __assign(__assign({}, options.context), this.lazyOptions.context);\n }\n\n if (this.runLazy) {\n delete options.skip;\n }\n\n return options;\n };\n\n QueryData.prototype.getExecuteSsrResult = function () {\n var treeRenderingInitiated = this.context && this.context.renderPromises;\n var ssrDisabled = this.getOptions().ssr === false;\n var fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n var ssrLoading = {\n loading: true,\n networkStatus: NetworkStatus.loading,\n called: true,\n data: undefined\n };\n\n if (ssrDisabled && (treeRenderingInitiated || fetchDisabled)) {\n return ssrLoading;\n }\n\n var result;\n\n if (treeRenderingInitiated) {\n result = this.context.renderPromises.addQueryPromise(this, this.getExecuteResult) || ssrLoading;\n }\n\n return result;\n };\n\n QueryData.prototype.prepareObservableQueryOptions = function () {\n var options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n var displayName = options.displayName || 'Query';\n\n if (this.context && this.context.renderPromises && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options.fetchPolicy = 'cache-first';\n }\n\n return __assign(__assign({}, options), {\n displayName: displayName,\n context: options.context,\n metadata: {\n reactComponent: {\n displayName: displayName\n }\n }\n });\n };\n\n QueryData.prototype.initializeObservableQuery = function () {\n if (this.context && this.context.renderPromises) {\n this.currentObservable.query = this.context.renderPromises.getSSRObservable(this.getOptions());\n }\n\n if (!this.currentObservable.query) {\n var observableQueryOptions = this.prepareObservableQueryOptions();\n this.previousData.observableQueryOptions = __assign(__assign({}, observableQueryOptions), {\n children: null\n });\n this.currentObservable.query = this.refreshClient().client.watchQuery(__assign({}, observableQueryOptions));\n\n if (this.context && this.context.renderPromises) {\n this.context.renderPromises.registerSSRObservable(this.currentObservable.query, observableQueryOptions);\n }\n }\n };\n\n QueryData.prototype.updateObservableQuery = function () {\n if (!this.currentObservable.query) {\n this.initializeObservableQuery();\n return;\n }\n\n var newObservableQueryOptions = __assign(__assign({}, this.prepareObservableQueryOptions()), {\n children: null\n });\n\n if (!equal(newObservableQueryOptions, this.previousData.observableQueryOptions)) {\n this.previousData.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable.query.setOptions(newObservableQueryOptions)[\"catch\"](function () {});\n }\n };\n\n QueryData.prototype.startQuerySubscription = function () {\n var _this = this;\n\n if (this.currentObservable.subscription || this.getOptions().skip) return;\n var obsQuery = this.currentObservable.query;\n this.currentObservable.subscription = obsQuery.subscribe({\n next: function next(_a) {\n var loading = _a.loading,\n networkStatus = _a.networkStatus,\n data = _a.data;\n var previousResult = _this.previousData.result;\n\n if (previousResult && previousResult.loading === loading && previousResult.networkStatus === networkStatus && equal(previousResult.data, data)) {\n return;\n }\n\n _this.forceUpdate();\n },\n error: function error(_error) {\n _this.resubscribeToQuery();\n\n if (!_error.hasOwnProperty('graphQLErrors')) throw _error;\n var previousResult = _this.previousData.result;\n\n if (previousResult && previousResult.loading || !equal(_error, _this.previousData.error)) {\n _this.previousData.error = _error;\n\n _this.forceUpdate();\n }\n }\n });\n };\n\n QueryData.prototype.resubscribeToQuery = function () {\n this.removeQuerySubscription();\n var lastError = this.currentObservable.query.getLastError();\n var lastResult = this.currentObservable.query.getLastResult();\n this.currentObservable.query.resetLastResults();\n this.startQuerySubscription();\n Object.assign(this.currentObservable.query, {\n lastError: lastError,\n lastResult: lastResult\n });\n };\n\n QueryData.prototype.getQueryResult = function () {\n var result = this.observableQueryFields();\n var options = this.getOptions();\n\n if (options.skip) {\n result = __assign(__assign({}, result), {\n data: undefined,\n error: undefined,\n loading: false,\n called: true\n });\n } else {\n var currentResult = this.currentObservable.query.getCurrentResult();\n var loading = currentResult.loading,\n partial = currentResult.partial,\n networkStatus = currentResult.networkStatus,\n errors = currentResult.errors;\n var error = currentResult.error,\n data = currentResult.data;\n\n if (errors && errors.length > 0) {\n error = new ApolloError({\n graphQLErrors: errors\n });\n }\n\n result = __assign(__assign({}, result), {\n loading: loading,\n networkStatus: networkStatus,\n error: error,\n called: true\n });\n\n if (loading) {\n var previousData = this.previousData.result && this.previousData.result.data;\n result.data = previousData && data ? __assign(__assign({}, previousData), data) : previousData || data;\n } else if (error) {\n Object.assign(result, {\n data: (this.currentObservable.query.getLastResult() || {}).data\n });\n } else {\n var fetchPolicy = this.currentObservable.query.options.fetchPolicy;\n var partialRefetch = options.partialRefetch;\n\n if (partialRefetch && !data && partial && fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading\n });\n result.refetch();\n return result;\n }\n\n result.data = data;\n }\n }\n\n result.client = this.client;\n this.previousData.loading = this.previousData.result && this.previousData.result.loading || false;\n this.previousData.result = result;\n return result;\n };\n\n QueryData.prototype.handleErrorOrCompleted = function () {\n var obsQuery = this.currentObservable.query;\n if (!obsQuery) return;\n\n var _a = obsQuery.getCurrentResult(),\n data = _a.data,\n loading = _a.loading,\n error = _a.error;\n\n if (!loading) {\n var _b = this.getOptions(),\n query = _b.query,\n variables = _b.variables,\n onCompleted = _b.onCompleted,\n onError = _b.onError;\n\n if (this.previousOptions && !this.previousData.loading && equal(this.previousOptions.query, query) && equal(this.previousOptions.variables, variables)) {\n return;\n }\n\n if (onCompleted && !error) {\n onCompleted(data);\n } else if (onError && error) {\n onError(error);\n }\n }\n };\n\n QueryData.prototype.removeQuerySubscription = function () {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n };\n\n QueryData.prototype.observableQueryFields = function () {\n var observable = this.currentObservable.query;\n return {\n variables: observable.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore\n };\n };\n\n return QueryData;\n}(OperationData);\n\nfunction useDeepMemo(memoFn, key) {\n var ref = useRef();\n\n if (!ref.current || !equal(key, ref.current.key)) {\n ref.current = {\n key: key,\n value: memoFn()\n };\n }\n\n return ref.current.value;\n}\n\nfunction useBaseQuery(query, options, lazy) {\n if (lazy === void 0) {\n lazy = false;\n }\n\n var context = useContext(getApolloContext());\n\n var _a = useReducer(function (x) {\n return x + 1;\n }, 0),\n tick = _a[0],\n forceUpdate = _a[1];\n\n var updatedOptions = options ? __assign(__assign({}, options), {\n query: query\n }) : {\n query: query\n };\n var queryDataRef = useRef();\n\n if (!queryDataRef.current) {\n queryDataRef.current = new QueryData({\n options: updatedOptions,\n context: context,\n forceUpdate: forceUpdate\n });\n }\n\n var queryData = queryDataRef.current;\n queryData.setOptions(updatedOptions);\n queryData.context = context;\n var memo = {\n options: __assign(__assign({}, updatedOptions), {\n onError: undefined,\n onCompleted: undefined\n }),\n context: context,\n tick: tick\n };\n var result = useDeepMemo(function () {\n return lazy ? queryData.executeLazy() : queryData.execute();\n }, memo);\n var queryResult = lazy ? result[1] : result;\n useEffect(function () {\n return queryData.afterExecute({\n lazy: lazy\n });\n }, [queryResult.loading, queryResult.networkStatus, queryResult.error, queryResult.data]);\n useEffect(function () {\n return function () {\n return queryData.cleanup();\n };\n }, []);\n return result;\n}\n\nfunction useQuery(query, options) {\n return useBaseQuery(query, options, false);\n}\n\nfunction useLazyQuery(query, options) {\n return useBaseQuery(query, options, true);\n}\n\nvar MutationData = function (_super) {\n __extends(MutationData, _super);\n\n function MutationData(_a) {\n var options = _a.options,\n context = _a.context,\n result = _a.result,\n setResult = _a.setResult;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.runMutation = function (mutationFunctionOptions) {\n if (mutationFunctionOptions === void 0) {\n mutationFunctionOptions = {};\n }\n\n _this.onMutationStart();\n\n var mutationId = _this.generateNewMutationId();\n\n return _this.mutate(mutationFunctionOptions).then(function (response) {\n _this.onMutationCompleted(response, mutationId);\n\n return response;\n })[\"catch\"](function (error) {\n _this.onMutationError(error, mutationId);\n\n if (!_this.getOptions().onError) throw error;\n });\n };\n\n _this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n\n _this.result = result;\n _this.setResult = setResult;\n _this.mostRecentMutationId = 0;\n return _this;\n }\n\n MutationData.prototype.execute = function (result) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n result.client = this.refreshClient().client;\n return [this.runMutation, result];\n };\n\n MutationData.prototype.afterExecute = function () {\n this.isMounted = true;\n return this.unmount.bind(this);\n };\n\n MutationData.prototype.cleanup = function () {};\n\n MutationData.prototype.mutate = function (mutationFunctionOptions) {\n var _a = this.getOptions(),\n mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n update = _a.update,\n _b = _a.context,\n mutationContext = _b === void 0 ? {} : _b,\n _c = _a.awaitRefetchQueries,\n awaitRefetchQueries = _c === void 0 ? false : _c,\n fetchPolicy = _a.fetchPolicy;\n\n var mutateOptions = __assign({}, mutationFunctionOptions);\n\n var mutateVariables = Object.assign({}, variables, mutateOptions.variables);\n delete mutateOptions.variables;\n return this.refreshClient().client.mutate(__assign({\n mutation: mutation,\n optimisticResponse: optimisticResponse,\n refetchQueries: mutateOptions.refetchQueries || this.getOptions().refetchQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n update: update,\n context: mutationContext,\n fetchPolicy: fetchPolicy,\n variables: mutateVariables\n }, mutateOptions));\n };\n\n MutationData.prototype.onMutationStart = function () {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n };\n\n MutationData.prototype.onMutationCompleted = function (response, mutationId) {\n var _a = this.getOptions(),\n onCompleted = _a.onCompleted,\n ignoreResults = _a.ignoreResults;\n\n var data = response.data,\n errors = response.errors;\n var error = errors && errors.length > 0 ? new ApolloError({\n graphQLErrors: errors\n }) : undefined;\n\n var callOncomplete = function callOncomplete() {\n return onCompleted ? onCompleted(data) : null;\n };\n\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data: data,\n error: error\n });\n }\n\n callOncomplete();\n };\n\n MutationData.prototype.onMutationError = function (error, mutationId) {\n var onError = this.getOptions().onError;\n\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error: error,\n data: undefined,\n called: true\n });\n }\n\n if (onError) {\n onError(error);\n }\n };\n\n MutationData.prototype.generateNewMutationId = function () {\n return ++this.mostRecentMutationId;\n };\n\n MutationData.prototype.isMostRecentMutation = function (mutationId) {\n return this.mostRecentMutationId === mutationId;\n };\n\n MutationData.prototype.updateResult = function (result) {\n if (this.isMounted && (!this.previousResult || !equal(this.previousResult, result))) {\n this.setResult(result);\n this.previousResult = result;\n }\n };\n\n return MutationData;\n}(OperationData);\n\nfunction useMutation(mutation, options) {\n var context = useContext(getApolloContext());\n\n var _a = useState({\n called: false,\n loading: false\n }),\n result = _a[0],\n setResult = _a[1];\n\n var updatedOptions = options ? __assign(__assign({}, options), {\n mutation: mutation\n }) : {\n mutation: mutation\n };\n var mutationDataRef = useRef();\n\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context: context,\n result: result,\n setResult: setResult\n });\n }\n\n return mutationDataRef.current;\n }\n\n var mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n useEffect(function () {\n return mutationData.afterExecute();\n });\n return mutationData.execute(result);\n}\n\nvar SubscriptionData = function (_super) {\n __extends(SubscriptionData, _super);\n\n function SubscriptionData(_a) {\n var options = _a.options,\n context = _a.context,\n setResult = _a.setResult;\n\n var _this = _super.call(this, options, context) || this;\n\n _this.currentObservable = {};\n _this.setResult = setResult;\n\n _this.initialize(options);\n\n return _this;\n }\n\n SubscriptionData.prototype.execute = function (result) {\n if (this.getOptions().skip === true) {\n this.cleanup();\n return {\n loading: false,\n error: undefined,\n data: undefined,\n variables: this.getOptions().variables\n };\n }\n\n var currentResult = result;\n\n if (this.refreshClient().isNew) {\n currentResult = this.getLoadingResult();\n }\n\n var shouldResubscribe = this.getOptions().shouldResubscribe;\n\n if (typeof shouldResubscribe === 'function') {\n shouldResubscribe = !!shouldResubscribe(this.getOptions());\n }\n\n if (shouldResubscribe !== false && this.previousOptions && Object.keys(this.previousOptions).length > 0 && (this.previousOptions.subscription !== this.getOptions().subscription || !equal(this.previousOptions.variables, this.getOptions().variables) || this.previousOptions.skip !== this.getOptions().skip)) {\n this.cleanup();\n currentResult = this.getLoadingResult();\n }\n\n this.initialize(this.getOptions());\n this.startSubscription();\n this.previousOptions = this.getOptions();\n return __assign(__assign({}, currentResult), {\n variables: this.getOptions().variables\n });\n };\n\n SubscriptionData.prototype.afterExecute = function () {\n this.isMounted = true;\n };\n\n SubscriptionData.prototype.cleanup = function () {\n this.endSubscription();\n delete this.currentObservable.query;\n };\n\n SubscriptionData.prototype.initialize = function (options) {\n if (this.currentObservable.query || this.getOptions().skip === true) return;\n this.currentObservable.query = this.refreshClient().client.subscribe({\n query: options.subscription,\n variables: options.variables,\n fetchPolicy: options.fetchPolicy\n });\n };\n\n SubscriptionData.prototype.startSubscription = function () {\n if (this.currentObservable.subscription) return;\n this.currentObservable.subscription = this.currentObservable.query.subscribe({\n next: this.updateCurrentData.bind(this),\n error: this.updateError.bind(this),\n complete: this.completeSubscription.bind(this)\n });\n };\n\n SubscriptionData.prototype.getLoadingResult = function () {\n return {\n loading: true,\n error: undefined,\n data: undefined\n };\n };\n\n SubscriptionData.prototype.updateResult = function (result) {\n if (this.isMounted) {\n this.setResult(result);\n }\n };\n\n SubscriptionData.prototype.updateCurrentData = function (result) {\n var onSubscriptionData = this.getOptions().onSubscriptionData;\n this.updateResult({\n data: result.data,\n loading: false,\n error: undefined\n });\n\n if (onSubscriptionData) {\n onSubscriptionData({\n client: this.refreshClient().client,\n subscriptionData: result\n });\n }\n };\n\n SubscriptionData.prototype.updateError = function (error) {\n this.updateResult({\n error: error,\n loading: false\n });\n };\n\n SubscriptionData.prototype.completeSubscription = function () {\n var onSubscriptionComplete = this.getOptions().onSubscriptionComplete;\n if (onSubscriptionComplete) onSubscriptionComplete();\n this.endSubscription();\n };\n\n SubscriptionData.prototype.endSubscription = function () {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n };\n\n return SubscriptionData;\n}(OperationData);\n\nfunction useSubscription(subscription, options) {\n var context = useContext(getApolloContext());\n var updatedOptions = options ? __assign(__assign({}, options), {\n subscription: subscription\n }) : {\n subscription: subscription\n };\n\n var _a = useState({\n loading: !updatedOptions.skip,\n error: undefined,\n data: undefined\n }),\n result = _a[0],\n setResult = _a[1];\n\n var subscriptionDataRef = useRef();\n\n function getSubscriptionDataRef() {\n if (!subscriptionDataRef.current) {\n subscriptionDataRef.current = new SubscriptionData({\n options: updatedOptions,\n context: context,\n setResult: setResult\n });\n }\n\n return subscriptionDataRef.current;\n }\n\n var subscriptionData = getSubscriptionDataRef();\n subscriptionData.setOptions(updatedOptions, true);\n subscriptionData.context = context;\n useEffect(function () {\n return subscriptionData.afterExecute();\n });\n useEffect(function () {\n return subscriptionData.cleanup.bind(subscriptionData);\n }, []);\n return subscriptionData.execute(result);\n}\n\nfunction useApolloClient() {\n var client = React.useContext(getApolloContext()).client;\n process.env.NODE_ENV === \"production\" ? invariant(client, 1) : invariant(client, 'No Apollo Client instance can be found. Please ensure that you ' + 'have called `ApolloProvider` higher up in your tree.');\n return client;\n}\n\nfunction makeDefaultQueryInfo() {\n return {\n seen: false,\n observable: null\n };\n}\n\nvar RenderPromises = function () {\n function RenderPromises() {\n this.queryPromises = new Map();\n this.queryInfoTrie = new Map();\n }\n\n RenderPromises.prototype.registerSSRObservable = function (observable, props) {\n this.lookupQueryInfo(props).observable = observable;\n };\n\n RenderPromises.prototype.getSSRObservable = function (props) {\n return this.lookupQueryInfo(props).observable;\n };\n\n RenderPromises.prototype.addQueryPromise = function (queryInstance, finish) {\n var info = this.lookupQueryInfo(queryInstance.getOptions());\n\n if (!info.seen) {\n this.queryPromises.set(queryInstance.getOptions(), new Promise(function (resolve) {\n resolve(queryInstance.fetchData());\n }));\n return null;\n }\n\n return finish();\n };\n\n RenderPromises.prototype.hasPromises = function () {\n return this.queryPromises.size > 0;\n };\n\n RenderPromises.prototype.consumeAndAwaitPromises = function () {\n var _this = this;\n\n var promises = [];\n this.queryPromises.forEach(function (promise, queryInstance) {\n _this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n };\n\n RenderPromises.prototype.lookupQueryInfo = function (props) {\n var queryInfoTrie = this.queryInfoTrie;\n var query = props.query,\n variables = props.variables;\n var varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query)) queryInfoTrie.set(query, varMap);\n var variablesString = JSON.stringify(variables);\n var info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString)) varMap.set(variablesString, info);\n return info;\n };\n\n return RenderPromises;\n}();\n\nexport { RenderPromises, useApolloClient, useLazyQuery, useMutation, useQuery, useSubscription };","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};"],"sourceRoot":""}