{"version":3,"sources":["Results.js","Calculator.js","App.js","serviceWorker.js","index.js"],"names":["Results","this","props","amount","totalMonths","years","months","amountMinusSavings","deposit","savings","amountToSaveEachMonth","eventLabel","value","monthText","className","onChange","toFixed","window","parent","postMessage","displayType","thousandSeparator","prefix","Component","Calculator","useState","houseValue","savingsValue","depositValue","yearsToSaveValue","monthsToSaveValue","inputValues","setInputValues","gtmConfig","useEffect","gtmSend","handleKeyPress","event","which","preventDefault","Input","label","type","inputMode","min","maxLength","placeholder","onKeyPress","inputVal","target","toString","val","replace","onKeyUp","pattern","Dropdown","defaultValue","selection","fluid","options","key","text","start","step","max","onMouseUp","App","Boolean","location","hostname","match","ReactDOM","render","StrictMode","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","error","console","message"],"mappings":"2YAGqBA,E,uKAET,IAAD,EAE2CC,KAAKC,MAAjDC,EAFC,EAEDA,OAEFC,EAAwB,IAJrB,EAEOC,QAFP,EAEcC,OAKjBC,EADoBJ,EAAS,IAN1B,EAEsBK,QAFtB,EAE+BC,QAOlCC,EAAwB,EAExBN,EAAc,GAChBM,EAAwBH,EAAqBH,GACjB,IAC1BM,EAAwB,IAG1BA,EAAwBH,GACI,IAC1BG,EAAwB,GAI5B,IAIiBC,EAAYC,EAJzBC,EAAYT,GAAe,EAAI,cAAgB,cAQnD,OACE,yBAAKU,UAAU,WACb,yBAAKA,UAAU,iBACb,wBAAIA,UAAU,iBAEXP,GAAsB,IACrB,yBAAKO,UAAU,oBAAmB,kDAAlC,kCAGF,oDACE,kBAAC,IAAD,CACEC,UAfKJ,EAea,wBAfDC,EAe0BF,EAAsBM,QAAQ,QAdnFC,OAAOC,OAAOC,YAAY,qCAAuCR,EAAa,IAAMC,EAHpE,mCAkBNA,MAAOF,EAAsBM,QAAQ,GACrCI,YAAa,OACbC,mBAAmB,EACnBC,OAAQ,SACTlB,EAAc,GAAKS,U,GAjDGU,aCoNtBC,MAjNf,WAAuB,IAAD,EAEkBC,mBAAS,CAC7CC,WAAY,IACZC,aAAc,EACdC,aAAc,GACdC,iBAAkB,EAClBC,kBAAmB,IAPD,mBAEbC,EAFa,KAEAC,EAFA,KAqEdC,EAAY,iCAElBC,qBAAU,WACRjB,OAAOC,OAAOC,YAAY,6DAA8Dc,KACvF,IAEH,IAAME,EAAU,SAACxB,EAAYC,GAC3BK,OAAOC,OAAOC,YAAY,mCAAqCR,EAAa,IAAMC,EAAOqB,IAiCrFG,EAAiB,SAACC,GACD,IAAhBA,EAAMC,OAA+B,IAAhBD,EAAMC,QAAiBD,EAAMC,MAAQ,IAAMD,EAAMC,MAAQ,KACjFD,EAAME,kBAIV,OACE,yBAAKzB,UAAU,cAEb,uDACA,yBAAKA,UAAU,oBACb,2DAAgC,gCAAQ,kBAAC,IAAD,CAAgBF,OAAQmB,EAAYL,WAAYN,YAAa,OAAQC,mBAAmB,EAAMC,OAAQ,WAE9I,kBAACkB,EAAA,EAAD,CACEC,MAAM,OACNC,KAAK,OACLC,UAAU,UACV/B,MAAOmB,EAAYL,WACnBkB,IAAK,EACLC,UAAW,GACXC,YAAY,SACZC,WAAYX,EACZrB,SApDiB,SAACsB,GACxB,IAAIW,EAAWX,EAAMY,OAAOrC,MAC5BoC,EAASE,WACT,IACIC,EADeH,EAASI,QAAQ,MAAO,IACpBA,QAAQ,WAAY,IAC3CpB,EAAe,2BAAKD,GAAN,IAAmBL,WAAYyB,MAgDvCE,QAAS,kBAAMlB,EAAQ,eAAgBJ,EAAYL,aACnD4B,QAAQ,WAGV,wEAA6C,gCAAQ,kBAAC,IAAD,CAAgB1C,OAAQmB,EAAYJ,aAAcP,YAAa,OAAQC,mBAAmB,EAAMC,OAAQ,WAE7J,kBAACkB,EAAA,EAAD,CACEC,MAAM,OACNC,KAAK,OACL9B,MAAOmB,EAAYJ,aACnBiB,IAAK,EACLC,UAAW,GACXC,YAAY,IACZH,UAAU,UACVI,WAAYX,EACZrB,SA5DmB,SAACsB,GAC1B,IAAIW,EAAWX,EAAMY,OAAOrC,MAC5BoC,EAASE,WACT,IACIC,EADeH,EAASI,QAAQ,MAAO,IACpBA,QAAQ,WAAY,IAC3CpB,EAAe,2BAAKD,GAAN,IAAmBJ,aAAcwB,MAwDzCE,QAAS,kBAAMlB,EAAQ,iBAAkBJ,EAAYJ,eACrD2B,QAAQ,WAGV,gEAIA,yBAAKxC,UAAU,oBAEb,yBAAKA,UAAU,YACb,kBAACyC,EAAA,EAAD,CACET,YAAY,QACZU,aAAc,EACdC,WAAS,EACTC,OAAK,EACLC,QA3IQ,CAClB,CAAEC,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,UAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,WAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,WAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,YAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,aAmGpB9C,SAtEc,SAACsB,EAAD,GAAuB,IAAbzB,EAAY,EAAZA,MAClCoB,EAAe,2BAAKD,GAAN,IAAmBF,iBAAkBjB,KACnDuB,EAAQ,gBAAiBvB,OAwEnB,yBAAKE,UAAU,YACb,kBAACyC,EAAA,EAAD,CACET,YAAY,SACZU,aAAc,EACdC,WAAS,EACTC,OAAK,EACLC,QArKS,CACnB,CAAEC,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,WAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,IAAKhD,MAAO,EAAGiD,KAAM,YAC5B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,aAC9B,CAAED,IAAK,KAAMhD,MAAO,GAAIiD,KAAM,cA0JpB9C,SA5Ee,SAACsB,EAAD,GAAuB,IAAbzB,EAAY,EAAZA,MACnCoB,EAAe,2BAAKD,GAAN,IAAmBD,kBAAmBlB,KACpDuB,EAAQ,iBAAkBvB,QA+EtB,yEACA,oCAAUmB,EAAYH,aAAtB,MAEA,2BACEc,KAAK,QACLoB,MAAO,EACPC,KAAM,EACNnB,IAAK,EACLoB,IAAK,IACLpD,MAAOmB,EAAYH,aACnBb,SAtFmB,SAACsB,GAC1BL,EAAe,2BAAKD,GAAN,IAAmBH,aAAcS,EAAMY,OAAOrC,UAsFtDqD,UAAW,kBAAO9B,EAAQ,2BAA4BJ,EAAYH,kBAKtE,kBAAC,EAAD,CACEzB,OAAQ4B,EAAYL,WACpBjB,QAASsB,EAAYJ,aACrBnB,QAASuB,EAAYH,aACrBvB,MAAO0B,EAAYF,iBACnBvB,OAAQyB,EAAYD,sBClMboC,MATf,WAEE,OACE,yBAAKpD,UAAU,OACb,kBAAC,EAAD,QCGcqD,QACW,cAA7BlD,OAAOmD,SAASC,UAEe,UAA7BpD,OAAOmD,SAASC,UAEhBpD,OAAOmD,SAASC,SAASC,MACvB,2DCZNC,IAASC,OACP,kBAAC,IAAMC,WAAP,KACE,kBAAC,EAAD,OAEFC,SAASC,eAAe,0BDyHpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBC,MAAK,SAAAC,GACJA,EAAaC,gBAEdC,OAAM,SAAAC,GACLC,QAAQD,MAAMA,EAAME,c","file":"static/js/main.9fd8450e.chunk.js","sourcesContent":["import React, { Component } from 'react'\nimport CurrencyFormat from 'react-currency-format';\n\nexport default class Results extends Component {\n\n render() {\n\n let { amount, years, months, deposit, savings } = this.props;\n\n let totalMonths = (+years * 12) + (+months);\n\n let amountWithDeposit = amount / 100 * deposit;\n let amountMinusSavings = amountWithDeposit - savings;\n\n let amountToSaveEachMonth = 0\n\n if (totalMonths > 0) {\n amountToSaveEachMonth = amountMinusSavings / totalMonths;\n if (amountToSaveEachMonth < 0) {\n amountToSaveEachMonth = 0\n }\n } else {\n amountToSaveEachMonth = amountMinusSavings;\n if (amountToSaveEachMonth < 0) {\n amountToSaveEachMonth = 0\n }\n }\n\n var monthText = totalMonths <= 1 ? ' this month' : ' each month';\n\n const gtmConfig = 'https://www.principality.co.uk';\n\n const gtmSend = (eventLabel, value) => {\n window.parent.postMessage('event~MortgageDepositCalculator~6_' + eventLabel + '~' + value, gtmConfig);\n }\n\n return (\n
\n
\n

\n\n {amountMinusSavings <= 0.1 &&\n
Congratulations! You have enough saved to buy!
\n }\n\n
You need to save \n \n {totalMonths > 0 && monthText}\n
\n\n

\n
\n
\n );\n }\n}","import React, { useState, useEffect } from 'react'\nimport { Input, Dropdown } from 'semantic-ui-react';\nimport CurrencyFormat from 'react-currency-format';\n\nimport Results from './Results';\n\nfunction Calculator() {\n\n const [inputValues, setInputValues] = useState({\n houseValue: 100000,\n savingsValue: 0,\n depositValue: 15,\n yearsToSaveValue: 0,\n monthsToSaveValue: 0\n });\n\n const monthOptions = [\n { key: '0', value: 0, text: '0 months' },\n { key: '1', value: 1, text: '1 month' },\n { key: '2', value: 2, text: '2 months' },\n { key: '3', value: 3, text: '3 months' },\n { key: '4', value: 4, text: '4 months' },\n { key: '5', value: 5, text: '5 months' },\n { key: '6', value: 6, text: '6 months' },\n { key: '7', value: 7, text: '7 months' },\n { key: '8', value: 8, text: '8 months' },\n { key: '9', value: 9, text: '9 months' },\n { key: '10', value: 10, text: '10 months' },\n { key: '11', value: 11, text: '11 months' },\n ]\n\n const yearOptions = [\n { key: '0', value: 0, text: '0 years' },\n { key: '1', value: 1, text: '1 year' },\n { key: '2', value: 2, text: '2 years' },\n { key: '3', value: 3, text: '3 years' },\n { key: '4', value: 4, text: '4 years' },\n { key: '5', value: 5, text: '5 years' },\n { key: '6', value: 6, text: '6 years' },\n { key: '7', value: 7, text: '7 years' },\n { key: '8', value: 8, text: '8 years' },\n { key: '9', value: 9, text: '9 years' },\n { key: '10', value: 10, text: '10 years' },\n { key: '11', value: 11, text: '11 years' },\n { key: '12', value: 12, text: '12 years' },\n { key: '13', value: 13, text: '13 years' },\n { key: '14', value: 14, text: '14 years' },\n { key: '15', value: 15, text: '15 years' },\n { key: '16', value: 16, text: '16 years' },\n { key: '17', value: 17, text: '17 years' },\n { key: '18', value: 18, text: '18 years' },\n { key: '19', value: 19, text: '19 years' },\n { key: '20', value: 20, text: '20 years' },\n { key: '21', value: 21, text: '21 years' },\n { key: '22', value: 22, text: '22 year' },\n { key: '23', value: 23, text: '23 years' },\n { key: '24', value: 24, text: '24 years' },\n { key: '25', value: 25, text: '25 years' },\n { key: '26', value: 26, text: '26 years' },\n { key: '27', value: 27, text: '27 years' },\n { key: '28', value: 28, text: '28 years' },\n { key: '29', value: 29, text: '29 years' },\n { key: '30', value: 30, text: '30 years' },\n { key: '31', value: 31, text: '31 years' },\n { key: '32', value: 32, text: '32 years' },\n { key: '33', value: 33, text: '33 year' },\n { key: '34', value: 34, text: '34 years' },\n { key: '35', value: 35, text: '35 years' },\n { key: '36', value: 36, text: '36 years' },\n { key: '37', value: 37, text: '37 years' },\n { key: '38', value: 38, text: '38 years' },\n { key: '39', value: 39, text: '39 years' },\n { key: '40', value: 40, text: '40 years' },\n ]\n\n const gtmConfig = 'https://www.principality.co.uk';\n\n useEffect(() => {\n window.parent.postMessage('pageview~/virtual/principality/mortgage-deposit-calculator', gtmConfig);\n }, [])\n\n const gtmSend = (eventLabel, value) => {\n window.parent.postMessage('event~MortgageDepositCalculator~' + eventLabel + '~' + value, gtmConfig);\n }\n\n const houseValueChange = (event) => {\n let inputVal = event.target.value;\n inputVal.toString();\n let newStringVal = inputVal.replace(/^0+/, \"\");\n let val = newStringVal.replace(/[^0-9]+/g, \"\");\n setInputValues({ ...inputValues, houseValue: val });\n }\n\n const savingsValueChange = (event) => {\n let inputVal = event.target.value;\n inputVal.toString();\n let newStringVal = inputVal.replace(/^0+/, \"\");\n let val = newStringVal.replace(/[^0-9]+/g, \"\");\n setInputValues({ ...inputValues, savingsValue: val });\n }\n\n const yearsToSaveChange = (event, { value }) => {\n setInputValues({ ...inputValues, yearsToSaveValue: value });\n gtmSend('3_yearsToSave', value)\n }\n\n const monthsToSaveChange = (event, { value }) => {\n setInputValues({ ...inputValues, monthsToSaveValue: value });\n gtmSend('4_monthsToSave', value)\n }\n\n const depositValueChange = (event) => {\n setInputValues({ ...inputValues, depositValue: event.target.value });\n }\n\n const handleKeyPress = (event) => {\n if ((event.which !== 8 && event.which !== 0) && (event.which < 48 || event.which > 57)) {\n event.preventDefault();\n }\n }\n\n return (\n
\n\n

House saving calculator

\n
\n \n\n gtmSend('1_houseValue', inputValues.houseValue)}\n pattern=\"[0-9]*\"\n />\n\n \n\n gtmSend('2_savingsValue', inputValues.savingsValue)}\n pattern=\"[0-9]*\"\n />\n\n \n\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n \n\n (gtmSend('5_depositValuePercentage', inputValues.depositValue))}\n />\n\n
\n\n \n\n
\n );\n}\n\nexport default Calculator;","import React from 'react';\nimport 'semantic-ui-css/semantic.min.css';\nimport './App.css';\nimport Calculator from './Calculator';\n\nfunction App() {\n\n return (\n
\n \n
\n );\n}\n\nexport default App;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('mortgageCalculatorApp')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}