{"version":3,"sources":["webpack:///v1-bundle-5022006c5140a924af73.js","webpack:///webpack/bootstrap 4d652c6586f100f112ee","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/index.js","webpack:///./node_modules/superagent/lib/is-object.js","webpack:///./src/lib/provider.js","webpack:///./src/v1/components/App.css","webpack:///./src/v1/client.js","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/scroll.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./src/lib/errorReporting.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/components/App.js","webpack:///./node_modules/superagent/lib/client.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/superagent/lib/request-base.js","webpack:///./node_modules/superagent/lib/response-base.js","webpack:///./node_modules/superagent/lib/utils.js","webpack:///./node_modules/superagent/lib/agent-base.js","webpack:///./src/v1/components/Info/index.js","webpack:///./src/v1/components/Info/index.css","webpack:///./src/v1/components/Map/index.js","webpack:///./node_modules/@mapbox/geojson-extent/index.js","webpack:///./node_modules/@mapbox/geojson-coords/index.js","webpack:///./node_modules/@mapbox/geojson-normalize/index.js","webpack:///./node_modules/geojson-flatten/index.js","webpack:///./node_modules/@mapbox/geojson-coords/flatten.js","webpack:///./node_modules/traverse/index.js","webpack:///./node_modules/@mapbox/extent/index.js","webpack:///./src/v1/components/Map/helpers.js","webpack:///./src/v1/components/Map/index.css","webpack:///./src/v1/components/Select/index.js","webpack:///./src/v1/components/Select/index.css","webpack:///./src/v1/components/SuggestSearch/index.js","webpack:///./node_modules/@nrk/core-input/core-input.min.js","webpack:///./src/v1/components/SuggestSearch/index.css","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./src/lib/getContextId.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","VNode","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","length","stack","push","pop","undefined","String","key","options","vnode","extend","obj","props","cloneElement","slice","enqueueRender","component","_dirty","items","debounceRendering","defer","rerender","list","renderComponent","isSameNodeType","node","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","document","createElementNS","createElement","removeNode","parentNode","removeChild","setAccessor","old","value","style","cssText","_typeof","IS_NON_DIMENSIONAL","test","innerHTML","__html","useCapture","replace","substring","addEventListener","eventProxy","removeEventListener","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","setAttribute","className","e","this","type","event","flushMounts","mounts","afterMount","componentDidMount","diff","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","appendChild","out","prevSvgMode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","buildComponentFromVNode","firstChild","fc","vchildren","a","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","len","childrenLen","vlen","_child","__key","trim","insertBefore","unmountOnly","unmountComponent","ref","removeChildren","lastChild","next","previousSibling","attrs","collectComponent","constructor","components","createComponent","Ctor","inst","render","Component","doRender","nextBase","splice","state","setComponentProps","opts","_disable","__ref","base","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","shouldComponentUpdate","componentWillUpdate","getChildContext","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","componentWillUnmount","inner","merge","Symbol","iterator","Promise","resolve","then","bind","setTimeout","setState","callback","forceUpdate","preact","default","toArray","getScrollTop","getScrollLeft","createUniqueId","bem","_array","_bem","_bem2","_scroll","_string","isObject","_objectWithoutProperties","keys","target","indexOf","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","connect","mapContextToProps","wrappedComponent","Connected","_Component2","_ref","_temp","_this2","_ret","_len","args","Array","_key","getPrototypeOf","apply","concat","ctx","_createClass","_preact","_extends","displayName","Provider","assign","source","defineProperties","descriptor","protoProps","staticProps","_Component","_props","__CTX__","root","app","app__header","app__form","app__mapWrapper","app__footer","app__sources","init","findElements","rootElementClassName","forEach","el","id","_dhUtils","window","getAttribute","preloadedState","JSON","parse","errorTrackingEnabled","simpleErrorReport","_errorReporting","createErrorReporter","listenAndCatch","gaPropertyId","metadata","title","selfId","published","googleAnalyticsTracker","_dhAnalyticsUtils","createGoogleAnalyticsTracker","publishedDate","Date","_getContextId","getContextId","location","href","sendError","message","sendErrorReport","sendGaEvent","eventObj","sendEvent","category","_provider","_App","App","getElementsByClassName","filter","isInitialized","_domready","_domready2","_App2","definition","listener","fns","doc","hack","documentElement","doScroll","loaded","readyState","shift","fn","nodeList","_toConsumableArray","arr","isArray","arr2","from","toStrings","blockName","modifiers","strings","modifier","objects","objectString","map","reduce","b","join","pageXOffset","scrollLeft","pageYOffset","scrollTop","prefix","Math","random","toString","substr","isErrorReportingEnabled","SimpleErrorReport","url","dryRun","_dhSimpleErrorReport","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","r","register","time","u","parseStack","errorRegister","filename","lineno","colno","line","column","error","stackTrace","reason","console","log","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","open","setRequestHeader","send","_interopRequireDefault","_superagent","_superagent2","_Info","_Info2","_Map","_Map2","_Select","_Select2","_SuggestSearch","_SuggestSearch2","_App3","_this","municipalityId","municipalityName","fires","municipality","fireName","handleSubmit","evt","preventDefault","handleSelectMunicipality","handleFireSelectBlur","handleFireSelectChange","superagent","api","baseUrl","res","body","catch","err","loadMunicipality","_this3","_state","fireMatches","fire","currentFire","class","styles","onSubmit","ajax","onSelect","disabled","label","onBlur","onChange","idx","accessToken","mapbox","connector","noop","serialize","pairs","pushEncodedKeyValuePair","val","v","subkey","encodeURIComponent","parseString","str","pair","pos","split","decodeURIComponent","parseHeader","index","field","lines","fields","isJSON","mime","Response","req","xhr","text","method","responseType","responseText","statusText","status","_setStatusProperties","header","headers","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_responseType","response","_parseBody","Request","_query","_header","on","Error","original","rawResponse","statusCode","emit","new_err","_isResponseOK","custom_err","del","data","request","end","warn","Emitter","RequestBase","ResponseBase","Agent","getXHR","protocol","ActiveXObject","serializeObject","types","html","json","xml","urlencoded","form","form-data","application/x-www-form-urlencoded","application/json","_parser","toError","msg","set","accept","auth","user","pass","btoa","encoder","string","_auth","query","attach","file","_data","_getFormData","append","_formData","FormData","_shouldRetry","_retry","_callback","clearTimeout","_maxRetries","retries","_retries","crossDomainError","crossDomain","buffer","ca","agent","pipe","write","_isHost","_endCalled","_finalizeQueryString","_end","_setTimeouts","onreadystatechange","_responseTimeoutTimer","timedout","_aborted","handleProgress","direction","total","percent","hasListeners","onprogress","upload","username","password","_withCredentials","withCredentials","contentType","_serializer","_setDefaults","head","patch","post","put","mixin","_callbacks","once","off","removeListener","removeAllListeners","callbacks","cb","listeners","_timer","timeout","_timeout","_responseTimeout","option","deadline","retry","count","_retryCallback","ERROR_CODES","override","code","reject","_fullfilledPromise","innerResolve","innerReject","use","ok","_okCallback","getHeader","unset","abort","base64Encoder","redirects","_maxRedirects","maxResponseSize","_maxResponseSize","toJSON","isObj","sortQuery","sort","_sort","queryArr","_appendQueryString","trace","_timeoutError","errno","utils","ct","params","links","link","parseLinks","statusType","info","redirect","clientError","serverError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","parts","cleanHeader","changesOrigin","_defaults","def","formatAreaDiff","toFixed","formatFootballFields","num","round","toLocaleString","formatArea","_index","_index2","Info","info__title","developed","info__section","info__icon","info__text","m2","polygon","properties","forest","footballFields","km2","info__icon--developed","info__icon--forest","info__icon--football","info__icon--fire","_geojsonExtent","_geojsonExtent2","_helpers","BBOX","SuggestSearch","mapboxLoaded","initializeMap","drawFires","drawMunicipality","drawSelectedFire","require","mapboxgl","Map","container","elm","addControl","NavigationControl","showCompass","dragRotate","disable","touchZoomRotate","disableRotation","fitBounds","padding","top","bottom","left","right","duration","addLayer","layout","paint","fill-color","fill-opacity","getLayer","removeLayer","getSource","removeSource","line-color","line-width","bounds","LngLatBounds","centroid","coordinates","movedFirePolygon","geojsonTranslate","_this4","getExtent","_","ext","extent","coords","geojsonCoords","include","traverse","geojsonTypesByDataAttributes","features","geometry","geometries","dataAttributes","bbox","bboxify","some","attribute","update","geojsonNormalize","geojsonFlatten","flatten","normalized","feature","normalize","gj","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","Feature","FeatureCollection","mem","geom","memo","geoms","_flatten","acc","item","Traverse","walk","immutable","path","parents","alive","walker","node_","updateState","objectKeys","isLeaf","circular","notLeaf","notRoot","isRoot","copy","keepGoing","level","x","stopHere","delete","remove","before","after","pre","stop","block","isLast","isFirst","src","dst","isDate","getTime","isRegExp","RegExp","isError","isBoolean","Boolean","isNumber","Number","isString","proto","T","toS","ps","has","paths","nodes","clone","xs","Extent","_bbox","Infinity","_valid","ll","max","equals","other","center","union","contains","_fastContains","lon","lat","intersect","Function","groupedCoordinates","coordinate","Select","select","for","viewBox","xlinkHref","_coreInput","_coreInput2","handleFilter","search","handleSelect","detail","btnEl","querySelector","handleAjax","responseJSON","coreInput","highlight","q","inputElm","firstElementChild","coreInputOpts","content","populate","suggestSearch","suggestSearch__input","placeholder","autoComplete","hidden","capture","CustomEvent","bubbles","cancelable","createEvent","initCustomEvent","dispatchEvent","nodeType","querySelectorAll","nextElementSibling","C","A","ctrlKey","altKey","metaKey","defaultPrevented","y","relatedTarget","currentTarget","textContent","focus","E","activeElement","keyCode","g","hasAttribute","k","timer","onload","w","navigator","userAgent","platform","passive","&","<",">","\"","/","'","escapeHTML","parentElement","previousElementSibling","ga","referrer","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","action","trackingId","cookieDomain","eventCategory","eventAction","eventLabel","eventValue","nonInteraction","fieldsObject","setInterval","clearInterval","extractPolopolyIdFromString","matches","match","POLOPOLY_ID_REGEX"],"mappings":"CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAvBA,GAAAD,KA4BAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,SAAAP,EAAAQ,EAAAC,GACAZ,EAAAa,EAAAV,EAAAQ,IACAG,OAAAC,eAAAZ,EAAAQ,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAZ,EAAAmB,EAAA,SAAAf,GACA,GAAAQ,GAAAR,KAAAgB,WACA,WAA2B,MAAAhB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDtB,EAAAyB,EAAA,mEAGAzB,IAAA0B,EAAA,KDMM,SAAUtB,EAAQD,EAASH,GAEjC,YEpEA,SAAS2B,MA8DT,QAASC,GAAEC,EAAUC,GACpB,GACIC,GACAC,EACAC,EACA5B,EAJA6B,EAAWC,CAKf,KAAK9B,EAAI+B,UAAUC,OAAQhC,KAAM,GAChCiC,EAAMC,KAAKH,UAAU/B,GAMtB,KAJIyB,GAAqC,MAAvBA,EAAWI,WACvBI,EAAMD,QAAQC,EAAMC,KAAKT,EAAWI,gBAClCJ,GAAWI,UAEZI,EAAMD,QACZ,IAAKL,EAAQM,EAAME,YAAwBC,KAAdT,EAAMQ,IAClC,IAAKnC,EAAI2B,EAAMK,OAAQhC,KACtBiC,EAAMC,KAAKP,EAAM3B,QAGG,iBAAV2B,KAAqBA,EAAQ,OAEpCC,EAA6B,kBAAbJ,MACN,MAATG,EAAeA,EAAQ,GAA6B,gBAAVA,GAAoBA,EAAQU,OAAOV,GAAiC,gBAAVA,KAAoBC,GAAS,IAGlIA,GAAUF,EACbG,EAASA,EAASG,OAAS,IAAML,EACvBE,IAAaC,EACvBD,GAAYF,GAEZE,EAASK,KAAKP,GAGfD,EAAaE,CAIf,IAAIR,GAAI,GAAIE,EASZ,OARAF,GAAEI,SAAWA,EACbJ,EAAES,SAAWA,EACbT,EAAEK,WAA2B,MAAdA,MAAqBW,GAAYX,EAChDL,EAAEkB,IAAoB,MAAdb,MAAqBW,GAAYX,EAAWa,QAG9BF,KAAlBG,EAAQC,OAAqBD,EAAQC,MAAMpB,GAExCA,EAUR,QAASqB,GAAOC,EAAKC,GACnB,IAAK,GAAI3C,KAAK2C,GACZD,EAAI1C,GAAK2C,EAAM3C,EAChB,OAAO0C,GAkBV,QAASE,GAAaJ,EAAOG,GAC3B,MAAOpB,GAAEiB,EAAMhB,SAAUiB,EAAOA,KAAWD,EAAMf,YAAakB,GAAQZ,UAAUC,OAAS,KAAOa,MAAM3C,KAAK6B,UAAW,GAAKS,EAAMX,UAUnI,QAASiB,GAAcC,IACjBA,EAAUC,SAAWD,EAAUC,QAAS,IAAkC,GAAzBC,EAAMf,KAAKa,KAC/DR,EAAQW,mBAAqBC,GAAOC,GAIvC,QAASA,KACR,GAAIhC,GACAiC,EAAOJ,CAEX,KADAA,KACO7B,EAAIiC,EAAKlB,OACXf,EAAE4B,QAAQM,EAAgBlC,GAYhC,QAASmC,GAAeC,EAAMhB,EAAOiB,GACnC,MAAqB,gBAAVjB,IAAuC,gBAAVA,OACZJ,KAAnBoB,EAAKE,UAEgB,gBAAnBlB,GAAMhB,UACPgC,EAAKG,uBAAyBC,EAAYJ,EAAMhB,EAAMhB,UAEzDiC,GAAaD,EAAKG,wBAA0BnB,EAAMhB,SAS3D,QAASoC,GAAYJ,EAAMhC,GACzB,MAAOgC,GAAKK,qBAAuBrC,GAAYgC,EAAKhC,SAASsC,gBAAkBtC,EAASsC,cAW1F,QAASC,GAAavB,GACpB,GAAIG,GAAQF,KAAWD,EAAMf,WAC7BkB,GAAMd,SAAWW,EAAMX,QAEvB,IAAImC,GAAexB,EAAMhB,SAASwC,YAClC,QAAqB5B,KAAjB4B,EACF,IAAK,GAAIhE,KAAKgE,OACK5B,KAAbO,EAAM3C,KACR2C,EAAM3C,GAAKgE,EAAahE,GAK9B,OAAO2C,GAQT,QAASsB,GAAWzC,EAAU0C,GAC7B,GAAIV,GAAOU,EAAQC,SAASC,gBAAgB,6BAA8B5C,GAAY2C,SAASE,cAAc7C,EAE7G,OADAgC,GAAKK,mBAAqBrC,EACnBgC,EAMR,QAASc,GAAWd,GACnB,GAAIe,GAAaf,EAAKe,UAClBA,IAAYA,EAAWC,YAAYhB,GAYxC,QAASiB,GAAYjB,EAAMlD,EAAMoE,EAAKC,EAAOT,GAG5C,GAFa,cAAT5D,IAAsBA,EAAO,SAEpB,QAATA,OAEG,IAAa,QAATA,EACNoE,GAAKA,EAAI,MACTC,GAAOA,EAAMnB,OACX,IAAa,UAATlD,GAAqB4D,EAEzB,GAAa,UAAT5D,GAIV,GAHKqE,GAA0B,gBAAVA,IAAqC,gBAARD,KACjDlB,EAAKoB,MAAMC,QAAUF,GAAS,IAE3BA,GAA0B,gBAAjB,KAAOA,EAAP,YAAAG,EAAOH,IAAoB,CACvC,GAAmB,gBAARD,GACV,IAAK,GAAI1E,KAAK0E,GACP1E,IAAK2E,KAAQnB,EAAKoB,MAAM5E,GAAK,GAGrC,KAAK,GAAIA,KAAK2E,GACbnB,EAAKoB,MAAM5E,GAAyB,gBAAb2E,GAAM3E,KAAkD,IAA/B+E,EAAmBC,KAAKhF,GAAe2E,EAAM3E,GAAK,KAAO2E,EAAM3E,QAG3G,IAAa,4BAATM,EACNqE,IAAOnB,EAAKyB,UAAYN,EAAMO,QAAU,QACtC,IAAe,KAAX5E,EAAK,IAAwB,KAAXA,EAAK,GAAW,CAC5C,GAAI6E,GAAa7E,KAAUA,EAAOA,EAAK8E,QAAQ,WAAY,IAC3D9E,GAAOA,EAAKwD,cAAcuB,UAAU,GAChCV,EACED,GAAKlB,EAAK8B,iBAAiBhF,EAAMiF,EAAYJ,GAElD3B,EAAKgC,oBAAoBlF,EAAMiF,EAAYJ,IAE3C3B,EAAKiC,aAAejC,EAAKiC,gBAAkBnF,GAAQqE,MAC9C,IAAa,SAATrE,GAA4B,SAATA,IAAoB4D,GAAS5D,IAAQkD,GAClEkC,EAAYlC,EAAMlD,EAAe,MAATqE,EAAgB,GAAKA,GAChC,MAATA,IAA2B,IAAVA,GAAiBnB,EAAKmC,gBAAgBrF,OACrD,CACN,GAAIsF,GAAK1B,GAAS5D,KAAUA,EAAOA,EAAK8E,QAAQ,WAAY,IAC/C,OAATT,IAA2B,IAAVA,EAChBiB,EAAIpC,EAAKqC,kBAAkB,+BAAgCvF,EAAKwD,eAAoBN,EAAKmC,gBAAgBrF,GAClF,kBAAVqE,KACbiB,EAAIpC,EAAKsC,eAAe,+BAAgCxF,EAAKwD,cAAea,GAAYnB,EAAKuC,aAAazF,EAAMqE,QAlCrHnB,GAAKwC,UAAYrB,GAAS,GA0C5B,QAASe,GAAYlC,EAAMlD,EAAMqE,GAChC,IACCnB,EAAKlD,GAAQqE,EACZ,MAAOsB,KAMV,QAASV,GAAWU,GACnB,MAAOC,MAAKT,WAAWQ,EAAEE,MAAM5D,EAAQ6D,OAAS7D,EAAQ6D,MAAMH,IAAMA,GAgBrE,QAASI,KAER,IADA,GAAIjG,GACGA,EAAIkG,EAAOnE,OACbI,EAAQgE,YAAYhE,EAAQgE,WAAWnG,GACvCA,EAAEoG,mBAAmBpG,EAAEoG,oBAU7B,QAASC,GAAKC,EAAKlE,EAAOmE,EAASC,EAAUC,EAAQC,GAE/CC,MAEJC,EAAsB,MAAVH,OAA6CzE,KAA3ByE,EAAOI,gBAGrCxD,EAAmB,MAAPiD,KAAiB,iBAAmBA,IAGjD,IAAIQ,GAAMC,EAAMT,EAAKlE,EAAOmE,EAASC,EAAUE,EAY/C,OATID,IAAUK,EAAI3C,aAAesC,GAAQA,EAAOO,YAAYF,KAGpDH,IACPtD,GAAY,EAEPqD,GAAeT,KAGda,EAIR,QAASC,GAAMT,EAAKlE,EAAOmE,EAASC,EAAUE,GAC7C,GAAIO,GAAMX,EACNY,EAAcN,CAMlB,IAHa,MAATxE,GAAkC,iBAAVA,KAAqBA,EAAQ,IAGpC,gBAAVA,IAAuC,gBAAVA,GAmBvC,MAhBIkE,QAAyBtE,KAAlBsE,EAAIhD,WAA2BgD,EAAInC,cAAgBmC,EAAIa,YAAcT,GAE3EJ,EAAIc,WAAahF,IACpBkE,EAAIc,UAAYhF,IAIjB6E,EAAMlD,SAASsD,eAAejF,GAC1BkE,IACCA,EAAInC,YAAYmC,EAAInC,WAAWmD,aAAaL,EAAKX,GACrDiB,EAAkBjB,GAAK,KAIzBW,EAAA,eAAuB,EAEhBA,CAIR,IAAIO,GAAYpF,EAAMhB,QACtB,IAAyB,kBAAdoG,GACV,MAAOC,GAAwBnB,EAAKlE,EAAOmE,EAASC,EAQrD,IAJAI,EAA0B,QAAdY,GAA2C,kBAAdA,GAAwCZ,EAGjFY,EAAYvF,OAAOuF,KACdlB,IAAQ9C,EAAY8C,EAAKkB,MAC7BP,EAAMpD,EAAW2D,EAAWZ,GAExBN,GAAK,CAER,KAAOA,EAAIoB,YACVT,EAAID,YAAYV,EAAIoB,WAEjBpB,GAAInC,YAAYmC,EAAInC,WAAWmD,aAAaL,EAAKX,GAGrDiB,EAAkBjB,GAAK,GAIzB,GAAIqB,GAAKV,EAAIS,WACTnF,EAAQ0E,EAAA,cACRW,EAAYxF,EAAMX,QAEtB,IAAa,MAATc,EAAe,CAClBA,EAAQ0E,EAAA,gBACR,KAAK,GAAIY,GAAIZ,EAAI5F,WAAYzB,EAAIiI,EAAEjG,OAAQhC,KAC1C2C,EAAMsF,EAAEjI,GAAGM,MAAQ2H,EAAEjI,GAAG2E,MAqB1B,OAhBKlB,GAAauE,GAAkC,IAArBA,EAAUhG,QAAwC,gBAAjBgG,GAAU,IAAyB,MAAND,OAA+B3F,KAAjB2F,EAAGrE,WAA6C,MAAlBqE,EAAGG,YACvIH,EAAGP,WAAaQ,EAAU,KAC7BD,EAAGP,UAAYQ,EAAU,KAIlBA,GAAaA,EAAUhG,QAAgB,MAAN+F,IACxCI,EAAcd,EAAKW,EAAWrB,EAASC,EAAUnD,GAA8C,MAAjCd,EAAMyF,yBAItEC,EAAehB,EAAK7E,EAAMf,WAAYkB,GAGtCqE,EAAYM,EAELD,EAUR,QAASc,GAAczB,EAAKsB,EAAWrB,EAASC,EAAU0B,GACzD,GAQIC,GACAnI,EACAoI,EACAC,EACA9G,EAZA+G,EAAmBhC,EAAIiC,WACvB9G,KACA+G,KACAC,EAAW,EACXC,EAAM,EACNC,EAAML,EAAiB1G,OACvBgH,EAAc,EACdC,EAAOjB,EAAYA,EAAUhG,OAAS,CAQ1C,IAAY,IAAR+G,EACH,IAAK,GAAI/I,GAAI,EAAGA,EAAI+I,EAAK/I,IAAK,CAC7B,GAAIkJ,GAASR,EAAiB1I,GAC1B2C,EAAQuG,EAAA,cACR5G,EAAM2G,GAAQtG,EAAQuG,EAAO3B,WAAa2B,EAAO3B,WAAW4B,MAAQxG,EAAML,IAAM,IACzE,OAAPA,GACHuG,IACAD,EAAMtG,GAAO4G,IACHvG,QAA+BP,KAArB8G,EAAOxF,WAA0B4E,GAAcY,EAAO1B,UAAU4B,OAAgBd,MACpGzG,EAASmH,KAAiBE,GAK7B,GAAa,IAATD,EACH,IAAK,GAAIjJ,GAAI,EAAGA,EAAIiJ,EAAMjJ,IAAK,CAC9ByI,EAAST,EAAUhI,GACnB2B,EAAQ,IAGR,IAAIW,GAAMmG,EAAOnG,GACjB,IAAW,MAAPA,EACCuG,OAA2BzG,KAAfwG,EAAMtG,KACrBX,EAAQiH,EAAMtG,GACdsG,EAAMtG,OAAOF,GACbyG,SAIG,KAAKlH,GAASmH,EAAME,EACvB,IAAKT,EAAIO,EAAKP,EAAIS,EAAaT,IAC9B,OAAoBnG,KAAhBP,EAAS0G,IAAoBhF,EAAenD,EAAIyB,EAAS0G,GAAIE,EAAQH,GAAc,CACtF3G,EAAQvB,EACRyB,EAAS0G,OAAKnG,GACVmG,IAAMS,EAAc,GAAGA,IACvBT,IAAMO,GAAKA,GACf,OAMJnH,EAAQwF,EAAMxF,EAAO8G,EAAQ9B,EAASC,GAEtC4B,EAAIE,EAAiB1I,GACjB2B,GAASA,IAAU+E,GAAO/E,IAAU6G,IAC9B,MAALA,EACH9B,EAAIU,YAAYzF,GACNA,IAAU6G,EAAEN,YACtB5D,EAAWkE,GAEX9B,EAAI2C,aAAa1H,EAAO6G,IAO5B,GAAIK,EACH,IAAK,GAAI7I,KAAK4I,OACIxG,KAAbwG,EAAM5I,IAAkB2H,EAAkBiB,EAAM5I,IAAI,EAK1D,MAAO8I,GAAOE,OAC6B5G,MAArCT,EAAQE,EAASmH,OAA+BrB,EAAkBhG,GAAO,GAQhF,QAASgG,GAAkBnE,EAAM8F,GAChC,GAAIvG,GAAYS,EAAK+D,UACjBxE,GAEHwG,EAAiBxG,IAIY,MAAzBS,EAAA,eAAiCA,EAAA,cAAsBgG,KAAKhG,EAAA,cAAsBgG,IAAI,OAEtE,IAAhBF,GAAkD,MAAzB9F,EAAA,eAC5Bc,EAAWd,GAGZiG,EAAejG,IAQjB,QAASiG,GAAejG,GAEvB,IADAA,EAAOA,EAAKkG,UACLlG,GAAM,CACZ,GAAImG,GAAOnG,EAAKoG,eAChBjC,GAAkBnE,GAAM,GACxBA,EAAOmG,GAST,QAAStB,GAAe3B,EAAKmD,EAAOnF,GACnC,GAAIpE,EAGJ,KAAKA,IAAQoE,GACNmF,GAAwB,MAAfA,EAAMvJ,IAA+B,MAAboE,EAAIpE,IAC1CmE,EAAYiC,EAAKpG,EAAMoE,EAAIpE,GAAOoE,EAAIpE,OAAQ8B,GAAW4E,EAK3D,KAAK1G,IAAQuJ,GACC,aAATvJ,GAAgC,cAATA,GAA2BA,IAAQoE,IAAQmF,EAAMvJ,MAAoB,UAATA,GAA6B,YAATA,EAAqBoG,EAAIpG,GAAQoE,EAAIpE,KAC/ImE,EAAYiC,EAAKpG,EAAMoE,EAAIpE,GAAOoE,EAAIpE,GAAQuJ,EAAMvJ,GAAO0G,GAY9D,QAAS8C,GAAiB/G,GACzB,GAAIzC,GAAOyC,EAAUgH,YAAYzJ,MAChC0J,EAAW1J,KAAU0J,EAAW1J,QAAa4B,KAAKa,GAIpD,QAASkH,GAAgBC,EAAMvH,EAAOgE,GACrC,GACIwD,GADA9G,EAAO2G,EAAWE,EAAK5J,KAY3B,IATI4J,EAAKhJ,WAAagJ,EAAKhJ,UAAUkJ,QACpCD,EAAO,GAAID,GAAKvH,EAAOgE,GACvB0D,EAAUnK,KAAKiK,EAAMxH,EAAOgE,KAE5BwD,EAAO,GAAIE,GAAU1H,EAAOgE,GAC5BwD,EAAKJ,YAAcG,EACnBC,EAAKC,OAASE,GAGXjH,EACH,IAAK,GAAIrD,GAAIqD,EAAKrB,OAAQhC,KACzB,GAAIqD,EAAKrD,GAAG+J,cAAgBG,EAAM,CACjCC,EAAKI,SAAWlH,EAAKrD,GAAGuK,SACxBlH,EAAKmH,OAAOxK,EAAG,EACf,OAIH,MAAOmK,GAIR,QAASG,GAAS3H,EAAO8H,EAAO9D,GAC/B,MAAOT,MAAK6D,YAAYpH,EAAOgE,GAShC,QAAS+D,GAAkB3H,EAAWJ,EAAOgI,EAAMhE,EAASC,GACvD7D,EAAU6H,WACd7H,EAAU6H,UAAW,GAEjB7H,EAAU8H,MAAQlI,EAAM6G,YAAY7G,GAAM6G,KAC1CzG,EAAUoG,MAAQxG,EAAML,YAAYK,GAAML,KAEzCS,EAAU+H,MAAQlE,EAClB7D,EAAUgI,oBAAoBhI,EAAUgI,qBAClChI,EAAUiI,2BACpBjI,EAAUiI,0BAA0BrI,EAAOgE,GAGxCA,GAAWA,IAAY5D,EAAU4D,UAC/B5D,EAAUkI,cAAalI,EAAUkI,YAAclI,EAAU4D,SAC9D5D,EAAU4D,QAAUA,GAGhB5D,EAAUmI,YAAWnI,EAAUmI,UAAYnI,EAAUJ,OAC1DI,EAAUJ,MAAQA,EAElBI,EAAU6H,UAAW,EAER,IAATD,IACU,IAATA,IAA+C,IAAjCpI,EAAQ4I,sBAAmCpI,EAAU+H,KAGtEhI,EAAcC,GAFdO,EAAgBP,EAAW,EAAG6D,IAM5B7D,EAAU8H,OAAO9H,EAAU8H,MAAM9H,IAStC,QAASO,GAAgBP,EAAW4H,EAAM/D,EAAUwE,GACnD,IAAIrI,EAAU6H,SAAd,CAEA,GAWIS,GACAlB,EACAmB,EAbA3I,EAAQI,EAAUJ,MAClB8H,EAAQ1H,EAAU0H,MAClB9D,EAAU5D,EAAU4D,QACpB4E,EAAgBxI,EAAUmI,WAAavI,EACvC6I,EAAgBzI,EAAU0I,WAAahB,EACvCiB,EAAkB3I,EAAUkI,aAAetE,EAC3CgF,EAAW5I,EAAU+H,KACrBP,EAAWxH,EAAUwH,SACrBqB,EAAcD,GAAYpB,EAC1BsB,EAAwB9I,EAAUwE,WAClCuE,GAAO,CAuBX,IAjBIH,IACH5I,EAAUJ,MAAQ4I,EAClBxI,EAAU0H,MAAQe,EAClBzI,EAAU4D,QAAU+E,EACP,IAATf,GAAc5H,EAAUgJ,wBAAoF,IAA3DhJ,EAAUgJ,sBAAsBpJ,EAAO8H,EAAO9D,GAClGmF,GAAO,EACG/I,EAAUiJ,qBACpBjJ,EAAUiJ,oBAAoBrJ,EAAO8H,EAAO9D,GAE7C5D,EAAUJ,MAAQA,EAClBI,EAAU0H,MAAQA,EAClB1H,EAAU4D,QAAUA,GAGrB5D,EAAUmI,UAAYnI,EAAU0I,UAAY1I,EAAUkI,YAAclI,EAAUwH,SAAW,KACzFxH,EAAUC,QAAS,GAEd8I,EAAM,CACVT,EAAWtI,EAAUqH,OAAOzH,EAAO8H,EAAO9D,GAGtC5D,EAAUkJ,kBACbtF,EAAUlE,EAAOA,KAAWkE,GAAU5D,EAAUkJ,mBAGjD,IACIC,GACApB,EAFAqB,EAAiBd,GAAYA,EAAS7J,QAI1C,IAA8B,kBAAnB2K,GAA+B,CAGzC,GAAIC,GAAarI,EAAasH,EAC9BlB,GAAO0B,EAEH1B,GAAQA,EAAKJ,cAAgBoC,GAAkBC,EAAW9J,KAAO6H,EAAKhB,MACzEuB,EAAkBP,EAAMiC,EAAY,EAAGzF,GAAS,IAEhDuF,EAAY/B,EAEZpH,EAAUwE,WAAa4C,EAAOF,EAAgBkC,EAAgBC,EAAYzF,GAC1EwD,EAAKI,SAAWJ,EAAKI,UAAYA,EACjCJ,EAAKkC,iBAAmBtJ,EACxB2H,EAAkBP,EAAMiC,EAAY,EAAGzF,GAAS,GAChDrD,EAAgB6G,EAAM,EAAGvD,GAAU,IAGpCkE,EAAOX,EAAKW,SAEZQ,GAAQM,EAGRM,EAAYL,EACRK,IACHZ,EAAQvI,EAAUwE,WAAa,OAG5BqE,GAAwB,IAATjB,KACdW,IAAOA,EAAM/D,WAAa,MAC9BuD,EAAOrE,EAAK6E,EAAOD,EAAU1E,EAASC,IAAa+E,EAAUC,GAAeA,EAAYrH,YAAY,GAItG,IAAIqH,GAAed,IAASc,GAAezB,IAAS0B,EAAuB,CAC1E,GAAIS,GAAaV,EAAYrH,UACzB+H,IAAcxB,IAASwB,IAC1BA,EAAW5E,aAAaoD,EAAMc,GAEzBM,IACJN,EAAYrE,WAAa,KACzBI,EAAkBiE,GAAa,KAUlC,GALIM,GACH3C,EAAiB2C,GAGlBnJ,EAAU+H,KAAOA,EACbA,IAASM,EAAS,CAGrB,IAFA,GAAImB,GAAexJ,EACfyJ,EAAIzJ,EACDyJ,EAAIA,EAAEH,mBACXE,EAAeC,GAAG1B,KAAOA,CAE3BA,GAAKvD,WAAagF,EAClBzB,EAAKnH,sBAAwB4I,EAAaxC,aAkB5C,IAdK4B,GAAY/E,EAChBN,EAAOmG,QAAQ1J,GACJ+I,IAMP/I,EAAU2J,oBACb3J,EAAU2J,mBAAmBnB,EAAeC,EAAeE,GAExDnJ,EAAQoK,aAAapK,EAAQoK,YAAY5J,IAGZ,MAA9BA,EAAU6J,iBACb,KAAO7J,EAAU6J,iBAAiB5K,QACjCe,EAAU6J,iBAAiBzK,MAAMjC,KAAK6C,EAInCgE,IAAcqE,GAAS/E,KAS7B,QAASwB,GAAwBnB,EAAKlE,EAAOmE,EAASC,GAOrD,IANA,GAAIxG,GAAIsG,GAAOA,EAAIa,WACfsF,EAAoBzM,EACpB0M,EAASpG,EACTqG,EAAgB3M,GAAKsG,EAAI/C,wBAA0BnB,EAAMhB,SACzDwL,EAAUD,EACVpK,EAAQoB,EAAavB,GAClBpC,IAAM4M,IAAY5M,EAAIA,EAAEiM,mBAC9BW,EAAU5M,EAAE2J,cAAgBvH,EAAMhB,QA2BnC,OAxBIpB,IAAK4M,KAAapG,GAAYxG,EAAEmH,aACnCmD,EAAkBtK,EAAGuC,EAAO,EAAGgE,EAASC,GACxCF,EAAMtG,EAAE0K,OAEJ+B,IAAsBE,IACzBxD,EAAiBsD,GACjBnG,EAAMoG,EAAS,MAGhB1M,EAAI6J,EAAgBzH,EAAMhB,SAAUmB,EAAOgE,GACvCD,IAAQtG,EAAEmK,WACbnK,EAAEmK,SAAW7D,EAEboG,EAAS,MAEVpC,EAAkBtK,EAAGuC,EAAO,EAAGgE,EAASC,GACxCF,EAAMtG,EAAE0K,KAEJgC,GAAUpG,IAAQoG,IACrBA,EAAOvF,WAAa,KACpBI,EAAkBmF,GAAQ,KAIrBpG,EAOR,QAAS6C,GAAiBxG,GACrBR,EAAQ0K,eAAe1K,EAAQ0K,cAAclK,EAEjD,IAAI+H,GAAO/H,EAAU+H,IAErB/H,GAAU6H,UAAW,EAEjB7H,EAAUmK,sBAAsBnK,EAAUmK,uBAE9CnK,EAAU+H,KAAO,IAGjB,IAAIqC,GAAQpK,EAAUwE,UAClB4F,GACH5D,EAAiB4D,GACPrC,IACNA,EAAA,eAAyBA,EAAA,cAAsBtB,KAAKsB,EAAA,cAAsBtB,IAAI,MAElFzG,EAAUwH,SAAWO,EAErBxG,EAAWwG,GACXhB,EAAiB/G,GAEjB0G,EAAeqB,IAGZ/H,EAAU8H,OAAO9H,EAAU8H,MAAM,MActC,QAASR,GAAU1H,EAAOgE,GACzBT,KAAKlD,QAAS,EAKdkD,KAAKS,QAAUA,EAKfT,KAAKvD,MAAQA,EAKbuD,KAAKuE,MAAQvE,KAAKuE,UA8DnB,QAASL,GAAO5H,EAAOqE,EAAQuG,GAC7B,MAAO3G,GAAK2G,EAAO5K,MAAW,EAAOqE,GAAQ,GFt5B/CpG,OAAOC,eAAeZ,EAAS,cAC9B6E,OAAO,GAGR,IAAIG,GAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,IErElQH,KAwBAN,KAEAH,KAmGAqB,EAA0B,kBAAXoK,SAAwBA,QAAQC,UAAUC,KAAKC,KAAKH,QAAQC,WAAaG,WAaxF5I,EAAqB,yDAIrB9B,KAkKAqD,KAGAS,EAAY,EAGZC,GAAY,EAGZvD,GAAY,EA6RZuG,IAqUJvH,GAAO4H,EAAUnJ,WAehB0M,SAAU,SAAkBnD,EAAOoD,GAClC,GAAIxM,GAAI6E,KAAKuE,KACRvE,MAAKuF,YAAWvF,KAAKuF,UAAYhJ,KAAWpB,IACjDoB,EAAOpB,EAAoB,kBAAVoJ,GAAuBA,EAAMpJ,EAAG6E,KAAKvD,OAAS8H,GAC3DoD,IAAW3H,KAAK0G,iBAAmB1G,KAAK0G,sBAAwB1K,KAAK2L,GACzE/K,EAAcoD,OAQf4H,YAAa,SAAqBD,GAC7BA,IAAW3H,KAAK0G,iBAAmB1G,KAAK0G,sBAAwB1K,KAAK2L,GACzEvK,EAAgB4C,KAAM,IAWvBkE,OAAQ,cAsBT,IAAI2D,IACHxM,EAAGA,EACH8C,cAAe9C,EACfqB,aAAcA,EACdyH,UAAWA,EACXD,OAAQA,EACRhH,SAAUA,EACVb,QAASA,EF+EVzC,GAAQkO,QE5EOD,EF6EfjO,EE5ESyB,IF6ETzB,EE7EiBuE,cAAL9C,EF8EZzB,EE9EgC8C,eF+EhC9C,EE/E8CuK,YFgF9CvK,EEhFyDsK,SFiFzDtK,EEjFiEsD,WFkFjEtD,EElF2EyC,WFuFrE,SAAUxC,EAAQD,EAASH,GAEjC,YAGAc,QAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EAAQmO,QAAUnO,EAAQoO,aAAepO,EAAQqO,cAAgBrO,EAAQsO,eAAiBtO,EAAQuO,QAAMjM,EG3kCxG,IAAAkM,GAAA3O,EAAA,GACA4O,EAAA5O,EAAA,IHglCI6O,EAMJ,SAAgC9L,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,IANpD6L,GG/kCnCE,EAAA9O,EAAA,IACA+O,EAAA/O,EAAA,GHslCAG,GGplCSuO,cHqlCTvO,EGrlCcsO,gCHslCdtO,EGtlC8BqO,8BHulC9BrO,EGvlC6CoO,4BHwlC7CpO,EGxlC2DmO,mBH4lCrD,SAAUlO,EAAQD,EAASH,GAEjC,YIzlCA,SAASgP,GAASjM,GAChB,MAAO,QAASA,GAAO,qBAAoBA,EAApB,YAAAoC,EAAoBpC,IJmmC7C,GAAIoC,GAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,GIhmCtQ3C,GAAOD,QAAU6O,GJ0mCX,SAAU5O,EAAQD,EAASH,GAEjC,YAcA,SAASiP,GAAyBlM,EAAKmM,GAAQ,GAAIC,KAAa,KAAK,GAAI9O,KAAK0C,GAAWmM,EAAKE,QAAQ/O,IAAM,GAAkBS,OAAOS,UAAUC,eAAejB,KAAKwC,EAAK1C,KAAc8O,EAAO9O,GAAK0C,EAAI1C,GAAM,OAAO8O,GAEnN,QAASE,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GK5nCje,QAASK,GAASC,GAChB,MAAO,UAACC,GAA0B,GAC1BC,GAD0B,SAAAC,GAAA,QAAAD,KAAA,GAAAE,GAAAC,EAAAC,EAAAC,CAAAtB,GAAA9I,KAAA+J,EAAA,QAAAM,GAAAxO,UAAAC,OAAAwO,EAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAA3O,UAAA2O,EAAA,OAAAN,GAAAC,EAAAjB,EAAAlJ,MAAAiK,EAAAF,EAAAJ,WAAApP,OAAAkQ,eAAAV,IAAA/P,KAAA0Q,MAAAT,GAAAjK,MAAA2K,OAAAL,KAAAH,EAE9BN,kBAAoB,SAACe,GACnB,MAAOf,GAAoBA,EAAkBe,GAAOA,GAHxBR,EAAAF,EAAAhB,EAAAiB,EAAAC,GAAA,MAAAf,GAAAU,EAAAC,GAAAa,EAAAd,IAAA3N,IAAA,SAAAqC,MAAA,WAM5B,OAAO,EAAAqM,EAAAzP,GAAEyO,EAAFiB,KACF/K,KAAK6J,kBAAkB7J,KAAKS,QAAL,SACvBT,KAAKvD,YARkBsN,GACR5F,YAcxB,OAHA4F,GAAUiB,YAAV,YAAmClB,EAAiBkB,aAClDlB,EAAiB1P,MACjB,aAFF,IAGO2P,GL2lCXxP,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EAAQgQ,QAAUhQ,EAAQqR,aAAW/O,EAErC,IAAI6O,GAAWxQ,OAAO2Q,QAAU,SAAUtC,GAAU,IAAK,GAAI9O,GAAI,EAAGA,EAAI+B,UAAUC,OAAQhC,IAAK,CAAE,GAAIqR,GAAStP,UAAU/B,EAAI,KAAK,GAAIsC,KAAO+O,GAAc5Q,OAAOS,UAAUC,eAAejB,KAAKmR,EAAQ/O,KAAQwM,EAAOxM,GAAO+O,EAAO/O,IAAY,MAAOwM,IAEnPiC,EAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,MKloChiB8B,EAAArR,EAAA,GAEMwR,EL4oCS,SAAUO,GAGvB,QAASP,KAGP,MAFAnC,GAAgB9I,KAAMiL,GAEf/B,EAA2BlJ,MAAOiL,EAAStB,WAAapP,OAAOkQ,eAAeQ,IAAWP,MAAM1K,KAAMnE,YAmB9G,MAxBAwN,GAAU4B,EAAUO,GAQpBX,EAAaI,IACX7O,IAAK,kBACLqC,MAAO,WKtpCU,GAAAgN,GACczL,KAAKvD,KADnBgP,GACT9P,QACR,QAAS+P,QAFQhD,EAAA+C,GAAA,iBL8pCjBrP,IAAK,SACLqC,MAAO,WK1pCP,MAAOuB,MAAKvD,MAAMd,SAAS,OL+pCtBsP,GKrqCc9G,YAUvB8G,GAASD,YAAc,WLosCvBpR,EK5qCSqR,WL6qCTrR,EK7qCmBgQ,WLirCb,SAAU/P,EAAQD,GMttCxBC,EAAAD,SAAkB+R,KAAA,iCAAAC,IAAA,gCAAAC,YAAA,wCAAAC,UAAA,sCAAAC,gBAAA,4CAAAC,YAAA,wCAAAC,aAAA,2CN6tCZ,SAAUpS,EAAQD,EAASH,GAEjCA,EAAoB,GACpBI,EAAOD,QAAUH,EAAoB,IAK/B,SAAUI,EAAQD,EAASH,GAEjC,cAMM,SAAUI,EAAQD,EAASH,GAEjC,YOhuCA,SAASyS,KACPC,EAAaC,QAAsBC,QAAQ,SAAAC,GACzCA,EAAGC,IAAK,EAAAC,EAAAtE,kBACRuE,OAAOL,QAAsBE,EAAGC,KAAM,CAGtC,IAAMnS,GAAOkS,EAAGI,aAAa,aACvBC,EAAiBC,KAAKC,MAAMP,EAAGI,aAAa,yBAC5CI,EAC+C,SAAnDR,EAAGI,aAAa,+BAGZK,GAAoB,EAAAC,EAAAC,qBAAoB7S,EAAM0S,EACpDC,GAAkBG,gBAGlB,IAAMC,GAAeb,EAAGI,aAAa,uBAC/BU,EAAWR,KAAKC,MAAMP,EAAGI,aAAa,kBACpCW,EAA6BD,EAA7BC,MAAOC,EAAsBF,EAAtBE,OAAQC,EAAcH,EAAdG,UAGjBC,GAAyB,EAAAC,EAAAC,+BAC7BtT,KAAM,KACN+S,eACAhE,MACEoD,GAAIe,EACJD,QACAM,cAAeJ,EAAY,GAAIK,MAAKL,GAAa,MAEnD9M,SACE8L,IAAI,EAAAsB,EAAAC,cAAa7P,SAAS8P,SAASC,SAIjCC,EAAY,SAAAC,GAChBnB,EAAkBoB,iBAAkBD,aAGhCE,EAAc,SAAAC,GAClBb,EAAuBc,UAAvBvD,GACEwD,qBAAsBnU,GACnBiU,MAKP,EAAAvD,EAAA5G,SACE,EAAA4G,EAAAzP,GAACmT,EAAAvD,UAAemD,YAAaA,EAAaH,UAAWA,IACnD,EAAAnD,EAAAzP,GAACoT,EAAAC,IAAQ/B,IAEXL,EACAA,EAAG1K,cAyBT,QAASuK,GAAcrM,GACrB,OAAO,EAAA0M,EAAAzE,SAAQ9J,SAAS0Q,uBAAuB7O,IAAY8O,OACzD,SAAAtC,GAAA,OAAOuC,EAAcvC,EAAIxM,KAI7B,QAAS+O,GAAevC,EAAIxM,GAC1B,MAAOwM,GAAGC,IAAME,OAAO3M,GAAWwM,EAAGC,IPgpCvC,GAAIxB,GAAWxQ,OAAO2Q,QAAU,SAAUtC,GAAU,IAAK,GAAI9O,GAAI,EAAGA,EAAI+B,UAAUC,OAAQhC,IAAK,CAAE,GAAIqR,GAAStP,UAAU/B,EAAI,KAAK,GAAIsC,KAAO+O,GAAc5Q,OAAOS,UAAUC,eAAejB,KAAKmR,EAAQ/O,KAAQwM,EAAOxM,GAAO+O,EAAO/O,IAAY,MAAOwM,IO/uCvPkG,EAAArV,EAAA,GPqvCIsV,EAkBJ,SAAgCvS,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,IAlB/CsS,GOpvCxChE,EAAArR,EAAA,GACA+S,EAAA/S,EAAA,GACAuT,EAAAvT,EAAA,IACAgV,EAAAhV,EAAA,IACAuV,EAAAvV,EAAA,GACAgU,EAAAhU,EAAA,IACAoU,EAAApU,EAAA,IACA+U,EAAA/U,EAAA,EAEAgT,QAAOL,QAAwBK,OAAOL,aAwFtC,EAAA2C,EAAAjH,SAASoE,IPowCH,SAAUrS,EAAQD,EAASH,GAEjC,YAGgC,mBAAX0N,SAAgCA,OAAOC;;;CQ52C3D,SAAUhN,EAAM6U,GAEmBpV,EAAOD,QAAUqV,KAInD,EAAY,WAEZ,GAAcC,GAAVC,KACAC,EAAMnR,SACNoR,EAAOD,EAAIE,gBAAgBC,SAE3BC,GAAUH,EAAO,aAAe,iBAAiBvQ,KAAKsQ,EAAIK,WAU9D,OAPKD,IACLJ,EAAIhQ,iBALmB,mBAKgB8P,EAAW,WAGhD,IAFAE,EAAI9P,oBANiB,mBAMqB4P,GAC1CM,EAAS,EACFN,EAAWC,EAAIO,SAASR,MAG1B,SAAUS,GACfH,EAAS/H,WAAWkI,EAAI,GAAKR,EAAInT,KAAK2T,ORq3CpC,SAAU9V,EAAQD,EAASH,GAEjC,YSj5CO,SAASsO,GAAQ6H,GACtB,SAAUjT,MAAM3C,KAAK4V,GTm5CvBrV,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,ESv5CgBmO,WT85CV,SAAUlO,EAAQD,EAASH,GAEjC,YUh6CA,SAASoW,GAAmBC,GAAO,GAAIvF,MAAMwF,QAAQD,GAAM,CAAE,IAAK,GAAIhW,GAAI,EAAGkW,EAAOzF,MAAMuF,EAAIhU,QAAShC,EAAIgW,EAAIhU,OAAQhC,IAAOkW,EAAKlW,GAAKgW,EAAIhW,EAAM,OAAOkW,GAAe,MAAOzF,OAAM0F,KAAKH,GAE1L,QAASI,GAAUpV,GACjB,MAAOP,QAAOoO,KAAK7N,GAAQ8T,OAAO,SAAUxS,GAC1C,MAAOtB,GAAOsB,KV+5ClB7B,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIG,GAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,GAkBtQ5C,GAAQkO,QUj7CQ,SAAUqI,GACxB,IAAK,GAAI9F,GAAOxO,UAAUC,OAAQsU,EAAY7F,MAAMF,EAAO,EAAIA,EAAO,EAAI,GAAIG,EAAO,EAAGA,EAAOH,EAAMG,IACnG4F,EAAU5F,EAAO,GAAK3O,UAAU2O,EAGlC,IAAI6F,GAAUD,EAAUxB,OAAO,SAAU0B,GACvC,MAA2B,gBAAbA,KAEZC,EAAUH,EAAUxB,OAAO,SAAU0B,GACvC,MAA2B,gBAApB,KAAOA,EAAP,YAAA1R,EAAO0R,MAGZE,EAAeD,EAAQE,IAAI,SAAU3V,GACvC,MAAOoV,GAAUpV,KAChB4V,OAAO,SAAU3O,EAAG4O,GACrB,SAAUhG,OAAOkF,EAAmB9N,GAAI8N,EAAmBc,QAG7D,QAAQR,GAAWxF,OAAO0F,EAAQI,IAAI,SAAUH,GAC9C,MAAOH,GAAY,KAAOG,KACxB3F,OAAO6F,EAAaC,IAAI,SAAUH,GACpC,MAAOH,GAAY,KAAOG,KACxBM,KAAK,OVs7CL,SAAU/W,EAAQD,EAASH,GAEjC,YWt9CO,SAASwO,KACd,MAAsB,mBAAXwE,QACF,EAGFA,OAAOoE,aAAe5S,SAASqR,iBAAmBrR,SAASqR,gBAAgBwB,YAAc,EAG3F,QAAS9I,KACd,MAAsB,mBAAXyE,QACF,EAGFA,OAAOsE,aAAe9S,SAASqR,iBAAmBrR,SAASqR,gBAAgB0B,WAAa,EX48CjGzW,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EW59CgBqO,gBX69ChBrO,EWr9CgBoO,gBXw+CV,SAAUnO,EAAQD,EAASH,GAEjC,YYl/CO,SAASyO,KACd,GAAIrF,GAAMhH,UAAUC,OAAS,OAAsBI,KAAjBL,UAAU,GAAmBA,UAAU,GAAK,GAC1EoV,EAASpV,UAAUC,OAAS,OAAsBI,KAAjBL,UAAU,GAAmBA,UAAU,GAAK,EAEjF,OAAO,GAAKoV,EAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAGxO,EAAMoO,EAAOnV,QZi/CzEvB,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EYx/CgBsO,kBZkgDV,SAAUrO,EAAQD,EAASH,GAEjC,YahgDO,SAASwT,GACd7S,EACAkX,GAEA,MAAO,IAAIC,sBACTnX,KAAMA,EACNoX,IAAK,0BACLC,QAASH,Ib4/Cb/W,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EatgDgBqT,qBAFhB,IAAAyE,GAAAjY,EAAA,KbshDM,SAAUI,EAAQD,EAASH,GAEjC,YACA,IAAIkY,GAAgCC,EAA8BC,EAE9DjT,EAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,Kc7hDrQ,SAASuD,EAAEnF,GAAG,UAAAgE,EAAiBhF,QAAS,KAAoBC,EAAOe,EAAEhB,IAA+CgY,GAAQhY,GAAR+X,EAAA,MAAAzV,MAAA2V,EAAA,kBAAAF,KAAAjH,MAAA9Q,EAAAgY,GAAAD,KAAA9X,EAAAD,QAAAiY,KAApH3V,EAA+K,SAAS6D,GAAgB,GAAInF,GAAE,WAAW,QAASmF,GAAEA,EAAEnF,GAAG,IAAI,GAAIkX,GAAE,EAAEA,EAAElX,EAAEkB,OAAOgW,IAAI,CAAC,GAAIxL,GAAE1L,EAAEkX,EAAGxL,GAAE5L,WAAW4L,EAAE5L,aAAY,EAAG4L,EAAE7L,cAAa,EAAG,SAAU6L,KAAIA,EAAEmD,UAAS,GAAIlP,OAAOC,eAAeuF,EAAEuG,EAAElK,IAAIkK,IAAI,MAAO,UAAS1L,EAAEkX,EAAExL,GAAG,MAAOwL,IAAG/R,EAAEnF,EAAEI,UAAU8W,GAAGxL,GAAGvG,EAAEnF,EAAE0L,GAAG1L,MAAUkX,EAAE,WAAW,QAAS/R,MAAK,SAASA,EAAEnF,GAAG,KAAKmF,YAAanF,IAAG,KAAM,IAAIqO,WAAU,sCAAsCjJ,KAAKD,GAAGC,KAAK+R,YAAY,MAAOnX,GAAEmF,IAAI3D,IAAI,qBAAqBqC,MAAM,SAASsB,GAAGC,KAAK+R,SAAS/V,MAAMgW,KAAK,GAAIpE,MAAKM,QAAQnO,OAAO3D,IAAI,0BAA0BqC,MAAM,SAASsB,EAAEnF,GAAG,MAAOoF,MAAK+R,SAASnD,OAAO,SAASkD,GAAG,MAAOA,GAAE5D,UAAUnO,GAAG,GAAI6N,MAAKkE,EAAEE,KAAKpX,IAAIkB,OAAO,MAAMiE,KAAKuG,EAAE/L,OAAO2Q,QAAQ,SAASnL,GAAG,IAAI,GAAInF,GAAE,EAAEA,EAAEiB,UAAUC,OAAOlB,IAAI,CAAC,GAAIkX,GAAEjW,UAAUjB,EAAG,KAAI,GAAI0L,KAAKwL,GAAEvX,OAAOS,UAAUC,eAAejB,KAAK8X,EAAExL,KAAKvG,EAAEuG,GAAGwL,EAAExL,IAAI,MAAOvG,IAAGjG,EAAE,WAAW,QAASiG,GAAEA,EAAEnF,GAAG,IAAI,GAAIkX,GAAE,EAAEA,EAAElX,EAAEkB,OAAOgW,IAAI,CAAC,GAAIxL,GAAE1L,EAAEkX,EAAGxL,GAAE5L,WAAW4L,EAAE5L,aAAY,EAAG4L,EAAE7L,cAAa,EAAG,SAAU6L,KAAIA,EAAEmD,UAAS,GAAIlP,OAAOC,eAAeuF,EAAEuG,EAAElK,IAAIkK,IAAI,MAAO,UAAS1L,EAAEkX,EAAExL,GAAG,MAAOwL,IAAG/R,EAAEnF,EAAEI,UAAU8W,GAAGxL,GAAGvG,EAAEnF,EAAE0L,GAAG1L,MAAUN,KAAKa,EAAE,WAAW,QAAS4E,GAAEnF,GAAG,GAAI0L,GAAE1L,EAAER,KAAKN,EAAEc,EAAE4W,IAAIrW,EAAEP,EAAE6W,OAAO1P,MAAE,KAAS5G,GAAGA,EAAE8W,EAAErX,EAAEsX,YAAY,SAASnS,EAAEnF,GAAG,KAAKmF,YAAanF,IAAG,KAAM,IAAIqO,WAAU,sCAAsCjJ,KAAKD,GAAGC,KAAK5F,KAAKkM,EAAEtG,KAAKwR,IAAI1X,EAAEkG,KAAKmS,cAAc,GAAIL,GAAE9R,KAAKyR,OAAO1P,EAAEkQ,IAAIjS,KAAKkS,WAAWD,GAAG3X,EAAE0B,KAAKgE,KAAK5F,MAAM,MAAON,GAAEiG,IAAI3D,IAAI,iBAAiBqC,MAAM,WAAW,GAAIsB,GAAEC,IAAK1F,GAAEwB,QAAQ,IAAI2Q,OAAOrN,iBAAiB,QAAQ,SAASxE,GAAG,GAAIkX,GAAElX,EAAEsT,QAAQpU,EAAEc,EAAEwX,SAAS9X,EAAEM,EAAEyX,OAAOlX,EAAEP,EAAE0X,MAAMvQ,GAAGmM,QAAQ4D,EAAG,MAAKhY,IAAIiI,EAAEyP,IAAI1X,GAAGQ,EAAE,IAAIyH,EAAEwQ,KAAKjY,GAAGa,EAAE,IAAI4G,EAAEyQ,OAAOrX,GAAGP,EAAE6X,OAAO,kBAAmB1S,GAAEmS,WAAWnS,EAAEmS,WAAWtX,EAAE6X,OAAOlL,KAAK,SAAS3M,GAAGmF,EAAEoO,gBAAgB7H,KAAKvE,GAAG2Q,WAAW9X,OAAOmF,EAAEoO,gBAAgBpM,KAAK0K,OAAOrN,iBAAiB,qBAAqB,SAASxE,GAAGmF,EAAEoO,iBAAiBD,QAAQ,gCAAgCtT,EAAE+X,eAAevW,IAAI,kBAAkBqC,MAAM,SAASsB,GAAG,GAAInF,GAAEkX,EAAExL,CAAEtG,MAAKyR,OAAO,mBAAoBmB,UAASA,QAAQC,IAAI,YAAYjG,KAAKkG,UAAU/S,IAAIC,KAAKmS,cAAcY,wBAAwBhT,EAAEmO,QAAQ,OAAOlO,KAAKmS,cAAca,mBAAmBjT,EAAEmO,SAAStT,EAAEoF,KAAKwR,IAAI,IAAIxR,KAAK5F,KAAK0X,EAAE/R,GAAGuG,EAAE,GAAI2M,iBAAgBC,KAAK,OAAOtY,GAAG0L,EAAE6M,iBAAiB,eAAe,oBAAoB7M,EAAE8M,KAAKxG,KAAKkG,UAAUhB,SAAS/R,IAAKA,GAAEwR,kBAAkBpW,EAAEZ,OAAOC,eAAeuF,EAAE,cAActB,OAAM,OdwmD/+E,SAAU5E,EAAQD,EAASH,GAEjC,YAsCA,SAAS4Z,GAAuB7W,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,GAEvF,QAASsM,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAzCjehP,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EAAQ8U,QAAMxS,EAEd,IAAI2O,GAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,Me9mDhiB8B,EAAArR,EAAA,GACA6Z,EAAA7Z,EAAA,IfmnDI8Z,EAAeF,EAAuBC,GelnD1C9E,EAAA/U,EAAA,GACA+Z,EAAA/Z,EAAA,IfunDIga,EAASJ,EAAuBG,GetnDpCE,EAAAja,EAAA,If0nDIka,EAAQN,EAAuBK,GeznDnCE,EAAAna,EAAA,If6nDIoa,EAAWR,EAAuBO,Ge5nDtCE,EAAAra,EAAA,IfgoDIsa,EAAkBV,EAAuBS,Ge9nD7C9E,EAAAvV,EAAA,GfkoDIua,EAAQX,EAAuBrE,Ge9mD7BP,Ef0nDK,SAAUjD,GAGnB,QAASiD,KACP,GAAIxE,GAEAC,EAAO+J,EAAO7J,CAElBtB,GAAgB9I,KAAMyO,EAEtB,KAAK,GAAIpE,GAAOxO,UAAUC,OAAQwO,EAAOC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC3EF,EAAKE,GAAQ3O,UAAU2O,EAGzB,OAAeN,GAAS+J,EAAQ/K,EAA2BlJ,MAAOiK,EAAOwE,EAAK9E,WAAapP,OAAOkQ,eAAegE,IAAOzU,KAAK0Q,MAAMT,GAAOjK,MAAM2K,OAAOL,KAAiB2J,EevoD1K1P,OACE2P,eAAgB,OAChBC,iBAAkB,YAClBC,MAAO,KACPC,aAAc,KACdC,SAAU,YfwoDPL,Ee/lDLM,aAAe,SAACC,GACdA,EAAIC,kBfgmDDR,Ee7lDLS,yBAA2B,SACzBR,EACAC,GAEAF,EAAKvM,UAAWwM,iBAAgBC,sBf2lD7BF,EexlDLU,qBAAuB,SAACH,GACtBP,EAAKvM,UAAW4M,SAAUE,EAAI5L,OAAOnK,OAAS,QfylD3CwV,EetlDLW,uBAAyB,SAACJ,GACxBP,EAAKvM,UAAW4M,SAAUE,EAAI5L,OAAOnK,OAAS,QfykDvC2L,EAcJF,EAAQhB,EAA2B+K,EAAO7J,GA4H/C,MAvJAf,GAAUoF,EAAMjD,GA8BhBX,EAAa4D,IACXrS,IAAK,oBACLqC,MAAO,WelpDY,GAAA0L,GAAAnK,IACnB6U,WACGla,IAAOqF,KAAKvD,MAAMqY,IAAIC,QADzB,UAEGxN,KAAK,SAAAyN,GACJ7K,EAAKzC,UAAW0M,MAAOY,EAAIC,SAE5BC,MAAM,SAAAC,GACLvC,QAAQC,IAAIsC,KAGhBnV,KAAKoV,sBfopDLhZ,IAAK,qBACLqC,MAAO,SelpDWuG,EAAkBO,GAChCA,EAAU2O,iBAAmBlU,KAAKuE,MAAM2P,gBAC1ClU,KAAKoV,sBfspDPhZ,IAAK,mBACLqC,MAAO,WenpDW,GAAA4W,GAAArV,KACVkU,EAAmBlU,KAAKuE,MAAxB2P,cAERlU,MAAK0H,UAAW2M,aAAc,OAEzBH,GAILW,UACGla,IAAOqF,KAAKvD,MAAMqY,IAAIC,QADzB,iBACiDb,GAC9C3M,KAAK,SAAAyN,GACJK,EAAK3N,UAAW2M,aAAcW,EAAIC,SAEnCC,MAAM,SAAAC,GACLvC,QAAQC,IAAIsC,QfupDhB/Y,IAAK,SACLqC,MAAO,WejoDC,GAAA6W,GACoDtV,KAAKuE,MAAzD8P,EADAiB,EACAjB,aAAcF,EADdmB,EACcnB,iBAAkBC,EADhCkB,EACgClB,MAAOE,EADvCgB,EACuChB,SACzCiB,EAAcnB,EAAQA,EAAMxF,OAAO,SAAA4G,GAAA,MAAQA,GAAKjJ,KAAO+H,OACvDmB,EAAcF,EAAY,IAAM,IAEtC,QACE,EAAAzK,EAAAzP,GAAA,WAASqa,MAAOC,UAAO/J,MACrB,EAAAd,EAAAzP,GAAA,UAAQqa,MAAOC,UAAO9J,cACpB,EAAAf,EAAAzP,GAAA,QAAMqa,MAAOC,UAAO7J,UAAW8J,SAAU5V,KAAKuU,eAC5C,EAAAzJ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAAC0Y,EAAAjM,SACC+N,KAAS7V,KAAKvD,MAAMqY,IAAIC,QAAxB,8BACAe,SAAU9V,KAAK0U,yBACfjW,MAAO0V,MAGX,EAAArJ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAACwY,EAAA/L,SACCiO,SAAwC,OAA9B/V,KAAKuE,MAAM2P,eACrB3H,GAAG,sBACHyJ,MAAM,iBACNvX,MAAOuB,KAAKuE,MAAM+P,SAClB2B,OAAQjW,KAAK2U,qBACbuB,SAAUlW,KAAK4U,uBACfvY,QACE+X,EACIA,EAAM3D,IAAI,SAAC+E,EAAMW,GAAP,OACV1X,MAAO+W,EAAKjJ,GACZyJ,mBAAoBR,EAAKjJ,eASvC,EAAAzB,EAAAzP,GAAA,OAAKqa,MAAOC,UAAO5J,kBACjB,EAAAjB,EAAAzP,GAACsY,EAAA7L,SACCsO,YAAapW,KAAKvD,MAAM4Z,OAAOD,YAC/BhC,MAAOpU,KAAKuE,MAAM6P,MAClBC,aAAcrU,KAAKuE,MAAM8P,aACzBC,SAAUtU,KAAKuE,MAAM+P,YAIxBD,GACCoB,IACA,EAAA3K,EAAAzP,GAACoY,EAAA3L,SACCqM,iBAAkBA,EAClBE,aAAcA,EACdC,SAAUA,EACVkB,KAAMC,KAIV,EAAA3K,EAAAzP,GAAA,UAAQqa,MAAOC,UAAO3J,cACpB,EAAAlB,EAAAzP,GAAA,OAAKqa,MAAOC,UAAO1J,cAAnB,iDfupDDwC,GelxDUtK,aA2IbmS,GAAY,EAAA9H,EAAA5E,UAEL8E,OAAM4H,EAAU7H,IfqpDvB,SAAU5U,EAAQD,EAASH,GAEjC,YgB5yDA,SAAS8c,MA4DT,QAASC,GAAUha,GACjB,IAAKiM,EAASjM,GAAM,MAAOA,EAC3B,IAAIia,KACJ,KAAK,GAAIra,KAAOI,GACdka,EAAwBD,EAAOra,EAAKI,EAAIJ,GAE1C,OAAOqa,GAAM7F,KAAK,KAYpB,QAAS8F,GAAwBD,EAAOra,EAAKua,GAC3C,GAAW,MAAPA,EACF,GAAIpM,MAAMwF,QAAQ4G,GAChBA,EAAItK,QAAQ,SAASuK,GACnBF,EAAwBD,EAAOra,EAAKwa,SAEjC,IAAInO,EAASkO,GAClB,IAAI,GAAIE,KAAUF,GAChBD,EAAwBD,EAAOra,EAAM,IAAMya,EAAS,IAAKF,EAAIE,QAG/DJ,GAAMza,KAAK8a,mBAAmB1a,GAC1B,IAAM0a,mBAAmBH,QAEd,QAARA,GACTF,EAAMza,KAAK8a,mBAAmB1a,IAkBlC,QAAS2a,GAAYC,GAMnB,IAAK,GAHDC,GACAC,EAHA1a,KACAia,EAAQO,EAAIG,MAAM,KAIbrd,EAAI,EAAG+I,EAAM4T,EAAM3a,OAAQhC,EAAI+I,IAAO/I,EAC7Cmd,EAAOR,EAAM3c,GACbod,EAAMD,EAAKpO,QAAQ,MACP,GAARqO,EACF1a,EAAI4a,mBAAmBH,IAAS,GAEhCza,EAAI4a,mBAAmBH,EAAKta,MAAM,EAAGua,KACnCE,mBAAmBH,EAAKta,MAAMua,EAAM,GAI1C,OAAO1a,GA8DT,QAAS6a,GAAYL,GAQnB,IAAK,GALDM,GACA/E,EACAgF,EACAZ,EALAa,EAAQR,EAAIG,MAAM,SAClBM,KAMK3d,EAAI,EAAG+I,EAAM2U,EAAM1b,OAAQhC,EAAI+I,IAAO/I,EAC7CyY,EAAOiF,EAAM1d,IAEE,KADfwd,EAAQ/E,EAAK1J,QAAQ,QAIrB0O,EAAQhF,EAAK5V,MAAM,EAAG2a,GAAO1Z,cAC7B+Y,EAAMzT,EAAKqP,EAAK5V,MAAM2a,EAAQ,IAC9BG,EAAOF,GAASZ,EAGlB,OAAOc,GAWT,QAASC,GAAOC,GAGd,MAAO,sBAAsB7Y,KAAK6Y,GAiDpC,QAASC,GAASC,GAChB7X,KAAK6X,IAAMA,EACX7X,KAAK8X,IAAM9X,KAAK6X,IAAIC,IAEpB9X,KAAK+X,KAA2B,QAAlB/X,KAAK6X,IAAIG,SAA8C,KAA1BhY,KAAK8X,IAAIG,cAAiD,SAA1BjY,KAAK8X,IAAIG,mBAA8D,KAA1BjY,KAAK8X,IAAIG,aAC5HjY,KAAK8X,IAAII,aACT,KACLlY,KAAKmY,WAAanY,KAAK6X,IAAIC,IAAIK,UAC/B,IAAIC,GAASpY,KAAK8X,IAAIM,MAEP,QAAXA,IACFA,EAAS,KAEXpY,KAAKqY,qBAAqBD,GAC1BpY,KAAKsY,OAAStY,KAAKuY,QAAUlB,EAAYrX,KAAK8X,IAAIU,yBAIlDxY,KAAKsY,OAAO,gBAAkBtY,KAAK8X,IAAIW,kBAAkB,gBACzDzY,KAAK0Y,qBAAqB1Y,KAAKsY,QAE3B,OAAStY,KAAK+X,MAAQF,EAAIc,cAC5B3Y,KAAKiV,KAAOjV,KAAK8X,IAAIc,SAErB5Y,KAAKiV,KAA0B,QAAnBjV,KAAK6X,IAAIG,OACjBhY,KAAK6Y,WAAW7Y,KAAK+X,KAAO/X,KAAK+X,KAAO/X,KAAK8X,IAAIc,UACjD,KAiER,QAASE,GAAQd,EAAQxG,GACvB,GAAIrI,GAAOnJ,IACXA,MAAK+Y,OAAS/Y,KAAK+Y,WACnB/Y,KAAKgY,OAASA,EACdhY,KAAKwR,IAAMA,EACXxR,KAAKsY,UACLtY,KAAKgZ,WACLhZ,KAAKiZ,GAAG,MAAO,WACb,GAAI9D,GAAM,KACNH,EAAM,IAEV,KACEA,EAAM,GAAI4C,GAASzO,GACnB,MAAMpJ,GAgBN,MAfAoV,GAAM,GAAI+D,OAAM,0CAChB/D,EAAItI,OAAQ,EACZsI,EAAIgE,SAAWpZ,EAEXoJ,EAAK2O,KAEP3C,EAAIiE,gBAA8C,KAAzBjQ,EAAK2O,IAAIG,aAA8B9O,EAAK2O,IAAII,aAAe/O,EAAK2O,IAAIc,SAEjGzD,EAAIiD,OAASjP,EAAK2O,IAAIM,OAASjP,EAAK2O,IAAIM,OAAS,KACjDjD,EAAIkE,WAAalE,EAAIiD,SAErBjD,EAAIiE,YAAc,KAClBjE,EAAIiD,OAAS,MAGRjP,EAAKxB,SAASwN,GAGvBhM,EAAKmQ,KAAK,WAAYtE,EAEtB,IAAIuE,EACJ,KACOpQ,EAAKqQ,cAAcxE,KACtBuE,EAAU,GAAIL,OAAMlE,EAAImD,YAAc,+BAExC,MAAMsB,GACNF,EAAUE,EAIRF,GACFA,EAAQJ,SAAWhE,EACnBoE,EAAQX,SAAW5D,EACnBuE,EAAQnB,OAASpD,EAAIoD,OACrBjP,EAAKxB,SAAS4R,EAASvE,IAEvB7L,EAAKxB,SAAS,KAAMqN,KAma1B,QAAS0E,GAAIlI,EAAKmI,EAAMhK,GACtB,GAAIkI,GAAM+B,EAAQ,SAAUpI,EAI5B,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAIzE,KAAKuG,GACfhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,EhB0+BT,GgBn0DIlM,GhBm0DA/M,EAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,GgBl0DhP,oBAAXiQ,QACTd,EAAOc,OACkB,mBAATtD,MAChBwC,EAAOxC,MAEPyJ,QAAQkH,KAAK,uEACbnO,SAGF,IAAIoO,GAAUtgB,EAAQ,IAClBugB,EAAcvgB,EAAQ,IACtBgP,EAAWhP,EAAQ,GACnBwgB,EAAexgB,EAAQ,IACvBygB,EAAQzgB,EAAQ,IAYhBmgB,EAAUhgB,EAAUC,EAAOD,QAAU,SAASoe,EAAQxG,GAExD,MAAI,kBAAqBA,GAChB,GAAI5X,GAAQkf,QAAQ,MAAOd,GAAQ6B,IAAIrI,GAI5C,GAAK3V,UAAUC,OACV,GAAIlC,GAAQkf,QAAQ,MAAOd,GAG7B,GAAIpe,GAAQkf,QAAQd,EAAQxG,GAGrC5X,GAAQkf,QAAUA,EAMlBc,EAAQO,OAAS,WACf,MAAIxO,EAAKsH,gBACAtH,EAAKoC,UAAY,SAAWpC,EAAKoC,SAASqM,UACvCzO,EAAK0O,eACf,MAAO,IAAIpH,eAEX,KAAM,MAAO,IAAIoH,eAAc,qBAAwB,MAAMta,IAC7D,IAAM,MAAO,IAAIsa,eAAc,sBAAyB,MAAMta,IAC9D,IAAM,MAAO,IAAIsa,eAAc,sBAAyB,MAAMta,IAC9D,IAAM,MAAO,IAAIsa,eAAc,kBAAqB,MAAMta,IAE5D,KAAMmZ,OAAM,yDAWd,IAAIhW,GAAO,GAAGA,KACV,SAAS/H,GAAK,MAAOA,GAAE+H,QACvB,SAAS/H,GAAK,MAAOA,GAAE+D,QAAQ,eAAgB,IAmDnD0a,GAAQU,gBAAkB9D,EAkC1BoD,EAAQ7C,YAAcA,EAStB6C,EAAQW,OACNC,KAAM,YACNC,KAAM,mBACNC,IAAK,WACLC,WAAY,oCACZC,KAAQ,oCACRC,YAAa,qCAYfjB,EAAQpD,WACNsE,oCAAqCtE,EACrCuE,mBAAoBnO,KAAKkG,WAY3B8G,EAAQ/M,OACNiO,oCAAqC/D,EACrCgE,mBAAoBnO,KAAKC,OA4H3BoN,EAAarC,EAAS5c,WAatB4c,EAAS5c,UAAU6d,WAAa,SAAS7B,GACvC,GAAInK,GAAQ+M,EAAQ/M,MAAM7M,KAAKC,KAC/B,OAAID,MAAK6X,IAAImD,QACJhb,KAAK6X,IAAImD,QAAQhb,KAAMgX,KAE3BnK,GAAS6K,EAAO1X,KAAKC,QACxB4M,EAAQ+M,EAAQ/M,MAAM,qBAEjBA,GAASmK,IAAQA,EAAIlb,QAAUkb,YAAezc,SACjDsS,EAAMmK,GACN,OAUNY,EAAS5c,UAAUigB,QAAU,WAC3B,GAAIpD,GAAM7X,KAAK6X,IACXG,EAASH,EAAIG,OACbxG,EAAMqG,EAAIrG,IAEV0J,EAAM,UAAYlD,EAAS,IAAMxG,EAAM,KAAOxR,KAAKoY,OAAS,IAC5DjD,EAAM,GAAI+D,OAAMgC,EAKpB,OAJA/F,GAAIiD,OAASpY,KAAKoY,OAClBjD,EAAI6C,OAASA,EACb7C,EAAI3D,IAAMA,EAEH2D,GAOTyE,EAAQhC,SAAWA,EAqEnBmC,EAAQjB,EAAQ9d,WAChBgf,EAAYlB,EAAQ9d,WAwBpB8d,EAAQ9d,UAAUiF,KAAO,SAASA,GAEhC,MADAD,MAAKmb,IAAI,eAAgBvB,EAAQW,MAAMta,IAASA,GACzCD,MAuBT8Y,EAAQ9d,UAAUogB,OAAS,SAASnb,GAElC,MADAD,MAAKmb,IAAI,SAAUvB,EAAQW,MAAMta,IAASA,GACnCD,MAaT8Y,EAAQ9d,UAAUqgB,KAAO,SAASC,EAAMC,EAAMlf,GACxC,IAAMR,UAAUC,SAAQyf,EAAO,IACf,gBAAhB,KAAOA,EAAP,YAAA3c,EAAO2c,KAA8B,OAATA,IAC9Blf,EAAUkf,EACVA,EAAO,IAEJlf,IACHA,GACE4D,KAAM,kBAAsBub,MAAO,QAAU,QAIjD,IAAIC,GAAU,SAASC,GACrB,GAAI,kBAAsBF,MACxB,MAAOA,MAAKE,EAEd,MAAM,IAAIxC,OAAM,iDAGlB,OAAOlZ,MAAK2b,MAAML,EAAMC,EAAMlf,EAASof,IAiBzC3C,EAAQ9d,UAAU4gB,MAAQ,SAASjF,GAGjC,MAFI,gBAAmBA,KAAKA,EAAMH,EAAUG,IACxCA,GAAK3W,KAAK+Y,OAAO/c,KAAK2a,GACnB3W,MAoBT8Y,EAAQ9d,UAAU6gB,OAAS,SAAStE,EAAOuE,EAAMzf,GAC/C,GAAIyf,EAAM,CACR,GAAI9b,KAAK+b,MACP,KAAM7C,OAAM,6CAGdlZ,MAAKgc,eAAeC,OAAO1E,EAAOuE,EAAMzf,GAAWyf,EAAK1hB,MAE1D,MAAO4F,OAGT8Y,EAAQ9d,UAAUghB,aAAe,WAI/B,MAHKhc,MAAKkc,YACRlc,KAAKkc,UAAY,GAAIvQ,GAAKwQ,UAErBnc,KAAKkc,WAYdpD,EAAQ9d,UAAU2M,SAAW,SAASwN,EAAKH,GACzC,GAAIhV,KAAKoc,aAAajH,EAAKH,GACzB,MAAOhV,MAAKqc,QAGd,IAAI1M,GAAK3P,KAAKsc,SACdtc,MAAKuc,eAEDpH,IACEnV,KAAKwc,cAAarH,EAAIsH,QAAUzc,KAAK0c,SAAW,GACpD1c,KAAKsZ,KAAK,QAASnE,IAGrBxF,EAAGwF,EAAKH,IASV8D,EAAQ9d,UAAU2hB,iBAAmB,WACnC,GAAIxH,GAAM,GAAI+D,OAAM,+JACpB/D,GAAIyH,aAAc,EAElBzH,EAAIiD,OAASpY,KAAKoY,OAClBjD,EAAI6C,OAAShY,KAAKgY,OAClB7C,EAAI3D,IAAMxR,KAAKwR,IAEfxR,KAAK2H,SAASwN,IAIhB2D,EAAQ9d,UAAU6hB,OAAS/D,EAAQ9d,UAAU8hB,GAAKhE,EAAQ9d,UAAU+hB,MAAQ,WAE1E,MADAnK,SAAQkH,KAAK,0DACN9Z,MAIT8Y,EAAQ9d,UAAUgiB,KAAOlE,EAAQ9d,UAAUiiB,MAAQ,WACjD,KAAM/D,OAAM,gEAWdJ,EAAQ9d,UAAUkiB,QAAU,SAAiB1gB,GAE3C,MAAOA,IAAO,qBAAoBA,EAApB,YAAAoC,EAAoBpC,MAAQ+N,MAAMwF,QAAQvT,IAAgD,oBAAxCjC,OAAOS,UAAUoW,SAASpX,KAAKwC,IAYjGsc,EAAQ9d,UAAU6e,IAAM,SAASlK,GAY/B,MAXI3P,MAAKmd,YACPvK,QAAQkH,KAAK,yEAEf9Z,KAAKmd,YAAa,EAGlBnd,KAAKsc,UAAY3M,GAAM4G,EAGvBvW,KAAKod,uBAEEpd,KAAKqd,QAGdvE,EAAQ9d,UAAUqiB,KAAO,WACvB,GAAIlU,GAAOnJ,KACP8X,EAAO9X,KAAK8X,IAAM8B,EAAQO,SAC1BR,EAAO3Z,KAAKkc,WAAalc,KAAK+b,KAElC/b,MAAKsd,eAGLxF,EAAIyF,mBAAqB,WACvB,GAAI9N,GAAaqI,EAAIrI,UAIrB,IAHIA,GAAc,GAAKtG,EAAKqU,uBAC1BjB,aAAapT,EAAKqU,uBAEhB,GAAK/N,EAAT,CAMA,GAAI2I,EACJ,KAAMA,EAASN,EAAIM,OAAS,MAAMrY,GAAKqY,EAAS,EAEhD,IAAKA,EAAQ,CACX,GAAIjP,EAAKsU,UAAYtU,EAAKuU,SAAU,MACpC,OAAOvU,GAAKwT,mBAEdxT,EAAKmQ,KAAK,QAIZ,IAAIqE,GAAiB,SAASC,EAAW7d,GACnCA,EAAE8d,MAAQ,IACZ9d,EAAE+d,QAAU/d,EAAEyP,OAASzP,EAAE8d,MAAQ,KAEnC9d,EAAE6d,UAAYA,EACdzU,EAAKmQ,KAAK,WAAYvZ,GAExB,IAAIC,KAAK+d,aAAa,YACpB,IACEjG,EAAIkG,WAAaL,EAAenW,KAAK,KAAM,YACvCsQ,EAAImG,SACNnG,EAAImG,OAAOD,WAAaL,EAAenW,KAAK,KAAM,WAEpD,MAAMzH,IAQV,IACMC,KAAKke,UAAYle,KAAKme,SACxBrG,EAAI5E,KAAKlT,KAAKgY,OAAQhY,KAAKwR,KAAK,EAAMxR,KAAKke,SAAUle,KAAKme,UAE1DrG,EAAI5E,KAAKlT,KAAKgY,OAAQhY,KAAKwR,KAAK,GAElC,MAAO2D,GAEP,MAAOnV,MAAK2H,SAASwN,GAOvB,GAHInV,KAAKoe,mBAAkBtG,EAAIuG,iBAAkB,IAG5Cre,KAAKkc,WAAa,OAASlc,KAAKgY,QAAU,QAAUhY,KAAKgY,QAAU,gBAAmB2B,KAAS3Z,KAAKkd,QAAQvD,GAAO,CAEtH,GAAI2E,GAActe,KAAKgZ,QAAQ,gBAC3BxC,EAAYxW,KAAKue,aAAe3E,EAAQpD,UAAU8H,EAAcA,EAAYnH,MAAM,KAAK,GAAK,KAC3FX,GAAakB,EAAO4G,KACvB9H,EAAYoD,EAAQpD,UAAU,qBAE5BA,IAAWmD,EAAOnD,EAAUmD,IAIlC,IAAK,GAAIpC,KAASvX,MAAKsY,OACjB,MAAQtY,KAAKsY,OAAOf,IAEpBvX,KAAKsY,OAAOrd,eAAesc,IAC7BO,EAAI3E,iBAAiBoE,EAAOvX,KAAKsY,OAAOf,GAa5C,OAVIvX,MAAK2Y,gBACPb,EAAIG,aAAejY,KAAK2Y,eAI1B3Y,KAAKsZ,KAAK,UAAWtZ,MAIrB8X,EAAI1E,SAAqB,KAATuG,EAAuBA,EAAO,MACvC3Z,MAGT4Z,EAAQmD,MAAQ,WACd,MAAO,IAAI7C,KAGZ,MAAO,OAAQ,UAAW,QAAS,MAAO,UAAU7N,QAAQ,SAAS2L,GACpEkC,EAAMlf,UAAUgd,EAAOpa,eAAiB,SAAS4T,EAAK7B,GACpD,GAAIkI,GAAM,GAAI+B,GAAQd,QAAQd,EAAQxG,EAKtC,OAJAxR,MAAKwe,aAAa3G,GACdlI,GACFkI,EAAIgC,IAAIlK,GAEHkI,KAIXqC,EAAMlf,UAAU0e,IAAMQ,EAAMlf,UAAN,OAYtB4e,EAAQjf,IAAM,SAAS6W,EAAKmI,EAAMhK,GAChC,GAAIkI,GAAM+B,EAAQ,MAAOpI,EAIzB,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAI+D,MAAMjC,GAChBhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,GAaT+B,EAAQ6E,KAAO,SAASjN,EAAKmI,EAAMhK,GACjC,GAAIkI,GAAM+B,EAAQ,OAAQpI,EAI1B,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAI+D,MAAMjC,GAChBhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,GAaT+B,EAAQvd,QAAU,SAASmV,EAAKmI,EAAMhK,GACpC,GAAIkI,GAAM+B,EAAQ,UAAWpI,EAI7B,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAIzE,KAAKuG,GACfhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,GAqBT+B,EAAA,IAAiBF,EACjBE,EAAA,OAAoBF,EAYpBE,EAAQ8E,MAAQ,SAASlN,EAAKmI,EAAMhK,GAClC,GAAIkI,GAAM+B,EAAQ,QAASpI,EAI3B,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAIzE,KAAKuG,GACfhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,GAaT+B,EAAQ+E,KAAO,SAASnN,EAAKmI,EAAMhK,GACjC,GAAIkI,GAAM+B,EAAQ,OAAQpI,EAI1B,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAIzE,KAAKuG,GACfhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,GAaT+B,EAAQgF,IAAM,SAASpN,EAAKmI,EAAMhK,GAChC,GAAIkI,GAAM+B,EAAQ,MAAOpI,EAIzB,OAHI,kBAAqBmI,KAAOhK,EAAKgK,EAAQA,EAAO,MAChDA,GAAM9B,EAAIzE,KAAKuG,GACfhK,GAAIkI,EAAIgC,IAAIlK,GACTkI,IhBu1DH,SAAUhe,EAAQD,EAASH,GAEjC,YiBhuFA,SAASsgB,GAAQvd,GACf,GAAIA,EAAK,MAAOqiB,GAAMriB,GAWxB,QAASqiB,GAAMriB,GACb,IAAK,GAAIJ,KAAO2d,GAAQ/e,UACtBwB,EAAIJ,GAAO2d,EAAQ/e,UAAUoB,EAE/B,OAAOI,GAzBP3C,EAAOD,QAAUmgB,EAqCnBA,EAAQ/e,UAAUie,GAClBc,EAAQ/e,UAAUoE,iBAAmB,SAASc,EAAOyP,GAInD,MAHA3P,MAAK8e,WAAa9e,KAAK8e,gBACtB9e,KAAK8e,WAAW,IAAM5e,GAASF,KAAK8e,WAAW,IAAM5e,QACnDlE,KAAK2T,GACD3P,MAaT+Z,EAAQ/e,UAAU+jB,KAAO,SAAS7e,EAAOyP,GACvC,QAASsJ,KACPjZ,KAAKgf,IAAI9e,EAAO+Y,GAChBtJ,EAAGjF,MAAM1K,KAAMnE,WAKjB,MAFAod,GAAGtJ,GAAKA,EACR3P,KAAKiZ,GAAG/Y,EAAO+Y,GACRjZ,MAaT+Z,EAAQ/e,UAAUgkB,IAClBjF,EAAQ/e,UAAUikB,eAClBlF,EAAQ/e,UAAUkkB,mBAClBnF,EAAQ/e,UAAUsE,oBAAsB,SAASY,EAAOyP,GAItD,GAHA3P,KAAK8e,WAAa9e,KAAK8e,eAGnB,GAAKjjB,UAAUC,OAEjB,MADAkE,MAAK8e,cACE9e,IAIT,IAAImf,GAAYnf,KAAK8e,WAAW,IAAM5e,EACtC,KAAKif,EAAW,MAAOnf,KAGvB,IAAI,GAAKnE,UAAUC,OAEjB,aADOkE,MAAK8e,WAAW,IAAM5e,GACtBF,IAKT,KAAK,GADDof,GACKtlB,EAAI,EAAGA,EAAIqlB,EAAUrjB,OAAQhC,IAEpC,IADAslB,EAAKD,EAAUrlB,MACJ6V,GAAMyP,EAAGzP,KAAOA,EAAI,CAC7BwP,EAAU7a,OAAOxK,EAAG,EACpB,OAGJ,MAAOkG,OAWT+Z,EAAQ/e,UAAUse,KAAO,SAASpZ,GAChCF,KAAK8e,WAAa9e,KAAK8e,cACvB,IAAIxU,MAAU3N,MAAM3C,KAAK6B,UAAW,GAChCsjB,EAAYnf,KAAK8e,WAAW,IAAM5e,EAEtC,IAAIif,EAAW,CACbA,EAAYA,EAAUxiB,MAAM,EAC5B,KAAK,GAAI7C,GAAI,EAAG+I,EAAMsc,EAAUrjB,OAAQhC,EAAI+I,IAAO/I,EACjDqlB,EAAUrlB,GAAG4Q,MAAM1K,KAAMsK,GAI7B,MAAOtK,OAWT+Z,EAAQ/e,UAAUqkB,UAAY,SAASnf,GAErC,MADAF,MAAK8e,WAAa9e,KAAK8e,eAChB9e,KAAK8e,WAAW,IAAM5e,QAW/B6Z,EAAQ/e,UAAU+iB,aAAe,SAAS7d,GACxC,QAAUF,KAAKqf,UAAUnf,GAAOpE,SjBivF5B,SAAUjC,EAAQD,EAASH,GAEjC,YkBj4FA,SAASugB,GAAYxd,GACnB,GAAIA,EAAK,MAAOqiB,GAAMriB,GAWxB,QAASqiB,GAAMriB,GACb,IAAK,GAAIJ,KAAO4d,GAAYhf,UAC1BwB,EAAIJ,GAAO4d,EAAYhf,UAAUoB,EAEnC,OAAOI,GlBw3FT,GAAIoC,GAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,IkBt5FlQiM,EAAWhP,EAAQ,EAMvBI,GAAOD,QAAUogB,EAkCjBA,EAAYhf,UAAUuhB,aAAe,WAKnC,MAJAA,cAAavc,KAAKsf,QAClB/C,aAAavc,KAAKwd,6BACXxd,MAAKsf,aACLtf,MAAKwd,sBACLxd,MAYTga,EAAYhf,UAAU6R,MAAQ,SAAe8C,GAE3C,MADA3P,MAAKgb,QAAUrL,EACR3P,MAqBTga,EAAYhf,UAAUid,aAAe,SAAStB,GAE5C,MADA3W,MAAK2Y,cAAgBhC,EACd3W,MAYTga,EAAYhf,UAAUwb,UAAY,SAAmB7G,GAEnD,MADA3P,MAAKue,YAAc5O,EACZ3P,MAgBTga,EAAYhf,UAAUukB,QAAU,SAAiBljB,GAC/C,IAAKA,GAAW,qBAAoBA,EAApB,YAAAuC,EAAoBvC,IAGlC,MAFA2D,MAAKwf,SAAWnjB,EAChB2D,KAAKyf,iBAAmB,EACjBzf,IAGT,KAAI,GAAI0f,KAAUrjB,GAChB,OAAOqjB,GACL,IAAK,WACH1f,KAAKwf,SAAWnjB,EAAQsjB,QACxB,MACF,KAAK,WACH3f,KAAKyf,iBAAmBpjB,EAAQuc,QAChC,MACF,SACEhG,QAAQkH,KAAK,yBAA0B4F,GAG7C,MAAO1f,OAcTga,EAAYhf,UAAU4kB,MAAQ,SAAeC,EAAOlQ,GAOlD,MALyB,KAArB9T,UAAUC,SAA0B,IAAV+jB,IAAgBA,EAAQ,GAClDA,GAAS,IAAGA,EAAQ,GACxB7f,KAAKwc,YAAcqD,EACnB7f,KAAK0c,SAAW,EAChB1c,KAAK8f,eAAiBnQ,EACf3P,KAGT,IAAI+f,IACF,aACA,YACA,YACA,kBAWF/F,GAAYhf,UAAUohB,aAAe,SAASjH,EAAKH,GACjD,IAAKhV,KAAKwc,aAAexc,KAAK0c,YAAc1c,KAAKwc,YAC/C,OAAO,CAET,IAAIxc,KAAK8f,eACP,IACE,GAAIE,GAAWhgB,KAAK8f,eAAe3K,EAAKH,EACxC,KAAiB,IAAbgL,EAAmB,OAAO,CAC9B,KAAiB,IAAbA,EAAoB,OAAO,EAE/B,MAAMjgB,GACN6S,QAAQH,MAAM1S,GAGlB,GAAIiV,GAAOA,EAAIoD,QAAUpD,EAAIoD,QAAU,KAAqB,KAAdpD,EAAIoD,OAAe,OAAO,CACxE,IAAIjD,EAAK,CACP,GAAIA,EAAI8K,OAASF,EAAYlX,QAAQsM,EAAI8K,MAAO,OAAO,CAEvD,IAAI9K,EAAIoK,SAAuB,gBAAZpK,EAAI8K,KAAwB,OAAO,CACtD,IAAI9K,EAAIyH,YAAa,OAAO,EAE9B,OAAO,GAUT5C,EAAYhf,UAAUqhB,OAAS,WAa7B,MAXArc,MAAKuc,eAGDvc,KAAK6X,MACP7X,KAAK6X,IAAM,KACX7X,KAAK6X,IAAM7X,KAAK4Z,WAGlB5Z,KAAK0d,UAAW,EAChB1d,KAAKyd,UAAW,EAETzd,KAAKqd,QAWdrD,EAAYhf,UAAUuM,KAAO,SAAcD,EAAS4Y,GAClD,IAAKlgB,KAAKmgB,mBAAoB,CAC5B,GAAIhX,GAAOnJ,IACPA,MAAKmd,YACPvK,QAAQkH,KAAK,kIAEf9Z,KAAKmgB,mBAAqB,GAAI9Y,SAAQ,SAAS+Y,EAAcC,GAC3DlX,EAAK0Q,IAAI,SAAS1E,EAAKH,GACjBG,EAAKkL,EAAYlL,GAChBiL,EAAapL,OAIxB,MAAOhV,MAAKmgB,mBAAmB5Y,KAAKD,EAAS4Y,IAG/ClG,EAAYhf,UAAZ,MAAiC,SAASokB,GACxC,MAAOpf,MAAKuH,SAAKrL,GAAWkjB,IAO9BpF,EAAYhf,UAAUslB,IAAM,SAAa3Q,GAEvC,MADAA,GAAG3P,MACIA,MAGTga,EAAYhf,UAAUulB,GAAK,SAASnB,GAClC,GAAI,kBAAsBA,GAAI,KAAMlG,OAAM,oBAE1C,OADAlZ,MAAKwgB,YAAcpB,EACZpf,MAGTga,EAAYhf,UAAUwe,cAAgB,SAASxE,GAC7C,QAAKA,IAIDhV,KAAKwgB,YACAxgB,KAAKwgB,YAAYxL,GAGnBA,EAAIoD,QAAU,KAAOpD,EAAIoD,OAAS,MAY3C4B,EAAYhf,UAAUL,IAAM,SAAS4c,GACnC,MAAOvX,MAAKgZ,QAAQzB,EAAM3Z,gBAe5Boc,EAAYhf,UAAUylB,UAAYzG,EAAYhf,UAAUL,IAuBxDqf,EAAYhf,UAAUmgB,IAAM,SAAS5D,EAAOZ,GAC1C,GAAIlO,EAAS8O,GAAQ,CACnB,IAAK,GAAInb,KAAOmb,GACdvX,KAAKmb,IAAI/e,EAAKmb,EAAMnb,GAEtB,OAAO4D,MAIT,MAFAA,MAAKgZ,QAAQzB,EAAM3Z,eAAiB+Y,EACpC3W,KAAKsY,OAAOf,GAASZ,EACd3W,MAeTga,EAAYhf,UAAU0lB,MAAQ,SAASnJ,GAGrC,aAFOvX,MAAKgZ,QAAQzB,EAAM3Z,qBACnBoC,MAAKsY,OAAOf,GACZvX,MAsBTga,EAAYhf,UAAUuc,MAAQ,SAASnd,EAAMuc,GAE3C,GAAI,OAASvc,OAAQ8B,KAAc9B,EACjC,KAAM,IAAI8e,OAAM,0CAOlB,IAJIlZ,KAAK+b,OACPnJ,QAAQH,MAAM,mGAGZhK,EAASrO,GAAO,CAClB,IAAK,GAAIgC,KAAOhC,GACd4F,KAAKuX,MAAMnb,EAAKhC,EAAKgC,GAEvB,OAAO4D,MAGT,GAAIuK,MAAMwF,QAAQ4G,GAAM,CACtB,IAAK,GAAI7c,KAAK6c,GACZ3W,KAAKuX,MAAMnd,EAAMuc,EAAI7c,GAEvB,OAAOkG,MAIT,GAAI,OAAS2W,OAAOza,KAAcya,EAChC,KAAM,IAAIuC,OAAM,yCAMlB,OAJI,iBAAqBvC,KACvBA,EAAM,GAAKA,GAEb3W,KAAKgc,eAAeC,OAAO7hB,EAAMuc,GAC1B3W,MASTga,EAAYhf,UAAU2lB,MAAQ,WAC5B,MAAI3gB,MAAK0d,SACA1d,MAETA,KAAK0d,UAAW,EAChB1d,KAAK8X,KAAO9X,KAAK8X,IAAI6I,QACrB3gB,KAAK6X,KAAO7X,KAAK6X,IAAI8I,QACrB3gB,KAAKuc,eACLvc,KAAKsZ,KAAK,SACHtZ,OAGTga,EAAYhf,UAAU2gB,MAAQ,SAASL,EAAMC,EAAMlf,EAASukB,GAC1D,OAAQvkB,EAAQ4D,MACd,IAAK,QACHD,KAAKmb,IAAI,gBAAiB,SAAWyF,EAActF,EAAO,IAAMC,GAChE,MAEF,KAAK,OACHvb,KAAKke,SAAW5C,EAChBtb,KAAKme,SAAW5C,CAChB,MAEF,KAAK,SACHvb,KAAKmb,IAAI,gBAAiB,UAAYG,GAG1C,MAAOtb,OAcTga,EAAYhf,UAAUqjB,gBAAkB,SAASpF,GAI/C,WAFU/c,IAAN+c,IAAiBA,GAAK,GAC1BjZ,KAAKoe,iBAAmBnF,EACjBjZ,MAWTga,EAAYhf,UAAU6lB,UAAY,SAASjmB,GAEzC,MADAoF,MAAK8gB,cAAgBlmB,EACdoF,MAUTga,EAAYhf,UAAU+lB,gBAAkB,SAASnmB,GAC/C,GAAI,gBAAoBA,GACtB,KAAMqO,WAAU,mBAGlB,OADAjJ,MAAKghB,iBAAmBpmB,EACjBoF,MAYTga,EAAYhf,UAAUimB,OAAS,WAC7B,OACEjJ,OAAQhY,KAAKgY,OACbxG,IAAKxR,KAAKwR,IACVmI,KAAM3Z,KAAK+b,MACXxD,QAASvY,KAAKgZ,UA4ClBgB,EAAYhf,UAAUoY,KAAO,SAASuG,GACpC,GAAIuH,GAAQzY,EAASkR,GACjB1Z,EAAOD,KAAKgZ,QAAQ,eAMxB,IAJIhZ,KAAKkc,WACPtJ,QAAQH,MAAM,gHAGZyO,IAAUlhB,KAAK+b,MACbxR,MAAMwF,QAAQ4J,GAChB3Z,KAAK+b,SACK/b,KAAKkd,QAAQvD,KACvB3Z,KAAK+b,cAEF,IAAIpC,GAAQ3Z,KAAK+b,OAAS/b,KAAKkd,QAAQld,KAAK+b,OACjD,KAAM7C,OAAM,+BAId,IAAIgI,GAASzY,EAASzI,KAAK+b,OACzB,IAAK,GAAI3f,KAAOud,GACd3Z,KAAK+b,MAAM3f,GAAOud,EAAKvd,OAEhB,gBAAmBud,IAEvB1Z,GAAMD,KAAKC,KAAK,QACrBA,EAAOD,KAAKgZ,QAAQ,gBAElBhZ,KAAK+b,MADH,qCAAuC9b,EAC5BD,KAAK+b,MACd/b,KAAK+b,MAAQ,IAAMpC,EACnBA,GAEU3Z,KAAK+b,OAAS,IAAMpC,GAGpC3Z,KAAK+b,MAAQpC,CAGf,QAAKuH,GAASlhB,KAAKkd,QAAQvD,GAClB3Z,MAIJC,GAAMD,KAAKC,KAAK,QACdD,OA+BTga,EAAYhf,UAAUmmB,UAAY,SAASC,GAGzC,MADAphB,MAAKqhB,UAAwB,KAATD,GAA8BA,EAC3CphB,MAQTga,EAAYhf,UAAUoiB,qBAAuB,WAC3C,GAAIxB,GAAQ5b,KAAK+Y,OAAOnI,KAAK,IAM7B,IALIgL,IACF5b,KAAKwR,MAAQxR,KAAKwR,IAAI3I,QAAQ,MAAQ,EAAI,IAAM,KAAO+S,GAEzD5b,KAAK+Y,OAAOjd,OAAS,EAEjBkE,KAAKqhB,MAAO,CACd,GAAI/J,GAAQtX,KAAKwR,IAAI3I,QAAQ,IAC7B,IAAIyO,GAAS,EAAG,CACd,GAAIgK,GAAWthB,KAAKwR,IAAIrS,UAAUmY,EAAQ,GAAGH,MAAM,IAC/C,mBAAsBnX,MAAKqhB,MAC7BC,EAASF,KAAKphB,KAAKqhB,OAEnBC,EAASF,OAEXphB,KAAKwR,IAAMxR,KAAKwR,IAAIrS,UAAU,EAAGmY,GAAS,IAAMgK,EAAS1Q,KAAK,QAMpEoJ,EAAYhf,UAAUumB,mBAAqB,WAAY3O,QAAQ4O,MAAM,gBAQrExH,EAAYhf,UAAUymB,cAAgB,SAAS9O,EAAQ4M,EAASmC,GAC9D,IAAI1hB,KAAK0d,SAAT,CAGA,GAAIvI,GAAM,GAAI+D,OAAMvG,EAAS4M,EAAU,cACvCpK,GAAIoK,QAAUA,EACdpK,EAAI8K,KAAO,eACX9K,EAAIuM,MAAQA,EACZ1hB,KAAKyd,UAAW,EAChBzd,KAAK2gB,QACL3gB,KAAK2H,SAASwN,KAGhB6E,EAAYhf,UAAUsiB,aAAe,WACnC,GAAInU,GAAOnJ,IAGPA,MAAKwf,WAAaxf,KAAKsf,SACzBtf,KAAKsf,OAAS7X,WAAW,WACvB0B,EAAKsY,cAAc,cAAetY,EAAKqW,SAAU,UAChDxf,KAAKwf,WAGNxf,KAAKyf,mBAAqBzf,KAAKwd,wBACjCxd,KAAKwd,sBAAwB/V,WAAW,WACtC0B,EAAKsY,cAAc,uBAAwBtY,EAAKsW,iBAAkB,cACjEzf,KAAKyf,qBlBy5FN,SAAU5lB,EAAQD,EAASH,GAEjC,YmB1jHA,SAASwgB,GAAazd,GACpB,GAAIA,EAAK,MAAOqiB,GAAMriB,GAWxB,QAASqiB,GAAMriB,GACb,IAAK,GAAIJ,KAAO6d,GAAajf,UAC3BwB,EAAIJ,GAAO6d,EAAajf,UAAUoB,EAEpC,OAAOI,GA9BT,GAAImlB,GAAQloB,EAAQ,GAMpBI,GAAOD,QAAUqgB,EAmCjBA,EAAajf,UAAUL,IAAM,SAAS4c,GACpC,MAAOvX,MAAKsY,OAAOf,EAAM3Z,gBAe3Bqc,EAAajf,UAAU0d,qBAAuB,SAASJ,GAKnD,GAAIsJ,GAAKtJ,EAAO,iBAAmB,EACnCtY,MAAKC,KAAO0hB,EAAM1hB,KAAK2hB,EAGvB,IAAIC,GAASF,EAAME,OAAOD,EAC1B,KAAK,GAAIxlB,KAAOylB,GAAQ7hB,KAAK5D,GAAOylB,EAAOzlB,EAE3C4D,MAAK8hB,QAGL,KACQxJ,EAAOyJ,OACP/hB,KAAK8hB,MAAQH,EAAMK,WAAW1J,EAAOyJ,OAE3C,MAAO5M,MA0Bb8E,EAAajf,UAAUqd,qBAAuB,SAASD,GACnD,GAAInY,GAAOmY,EAAS,IAAM,CAG1BpY,MAAKoY,OAASpY,KAAKqZ,WAAajB,EAChCpY,KAAKiiB,WAAahiB,EAGlBD,KAAKkiB,KAAO,GAAKjiB,EACjBD,KAAKugB,GAAK,GAAKtgB,EACfD,KAAKmiB,SAAW,GAAKliB,EACrBD,KAAKoiB,YAAc,GAAKniB,EACxBD,KAAKqiB,YAAc,GAAKpiB,EACxBD,KAAKyS,OAAS,GAAKxS,GAAQ,GAAKA,IAC1BD,KAAKib,UAIXjb,KAAKsiB,QAAU,KAAOlK,EACtBpY,KAAKuiB,SAAW,KAAOnK,EACvBpY,KAAKwiB,UAAY,KAAOpK,EACxBpY,KAAKyiB,WAAa,KAAOrK,EACzBpY,KAAK0iB,aAAe,KAAOtK,EAC3BpY,KAAK2iB,cAAgB,KAAOvK,EAC5BpY,KAAK4iB,UAAY,KAAOxK,EACxBpY,KAAK6iB,SAAW,KAAOzK,EACvBpY,KAAK8iB,oBAAsB,KAAO1K,InBklHhC,SAAUve,EAAQD,EAASH,GAEjC,YoBhtHAG,GAAQqG,KAAO,SAAS+W,GACtB,MAAOA,GAAIG,MAAM,SAASzH,SAW5B9V,EAAQioB,OAAS,SAAS7K,GACxB,MAAOA,GAAIG,MAAM,SAASzG,OAAO,SAASlU,EAAKwa,GAC7C,GAAI+L,GAAQ/L,EAAIG,MAAM,SAClB/a,EAAM2mB,EAAMrT,QACZiH,EAAMoM,EAAMrT,OAGhB,OADItT,IAAOua,IAAKna,EAAIJ,GAAOua,GACpBna,QAYX5C,EAAQooB,WAAa,SAAShL,GAC5B,MAAOA,GAAIG,MAAM,SAASzG,OAAO,SAASlU,EAAKwa,GAC7C,GAAI+L,GAAQ/L,EAAIG,MAAM,SAClB3F,EAAMuR,EAAM,GAAGpmB,MAAM,GAAI,EAG7B,OADAH,GADUumB,EAAM,GAAG5L,MAAM,SAAS,GAAGxa,MAAM,GAAI,IACpC6U,EACJhV,QAYX5C,EAAQopB,YAAc,SAAS1K,EAAQ2K,GAUrC,aATO3K,GAAO,sBACPA,GAAO,wBACPA,GAAO,2BACPA,GAAA,KAEH2K,UACK3K,GAAA,oBACAA,GAAA,QAEFA,IpBguHH,SAAUze,EAAQD,EAASH,GAEjC,YqBvyHA,SAASygB,KACPla,KAAKkjB,cAGN,MAAO,KAAM,OAAQ,MAAO,QAAS,OAAQ,SAAU,OAAQ,kBAAmB,YAAa,QAAS,KAAM,YAC9G,UAAW,SAAU,YAAa,QAAS,KAAM,MAAO,MAAO,QAAQ7W,QAAQ,SAASsD,GAEvFuK,EAAMlf,UAAU2U,GAAM,WAEpB,MADA3P,MAAKkjB,UAAUlnB,MAAM2T,GAAGA,EAAI9T,UAAUA,YAC/BmE,QAIXka,EAAMlf,UAAUwjB,aAAe,SAAS3G,GACpC7X,KAAKkjB,UAAU7W,QAAQ,SAAS8W,GAC9BtL,EAAIsL,EAAIxT,IAAIjF,MAAMmN,EAAKsL,EAAItnB,cAIjChC,EAAOD,QAAUsgB,GrB6yHX,SAAUrgB,EAAQD,EAASH,GAEjC,YAmBA,SAASqP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GsB30Hje,QAAS6Z,GAAgBrhB,EAAW4O,GAClC,OAAWA,EAAI5O,EAAI,KAAKshB,UAAUnkB,QAAQ,IAAK,KAA/C,KAGF,QAASokB,GAAsBC,GAC7B,SAAUrS,KAAKsS,MAAMD,GAClBE,iBACAvkB,QAAQ,IAAK,KACbA,QAAQ,IAAK,KAGlB,QAASwkB,GAAYH,GACnB,SAAUA,EAAIF,QAAQ,GAAGnkB,QAAQ,IAAK,KtB2yHxC3E,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIoM,GAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,MsBv0HhiBwD,EAAA/S,EAAA,GACAqR,EAAArR,EAAA,GAEAkqB,EAAAlqB,EAAA,ItB40HImqB,EAEJ,SAAgCpnB,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,IAFlDmnB,GsBpzH/BE,EtB00HK,SAAUrY,GAGnB,QAASqY,KAGP,MAFA/a,GAAgB9I,KAAM6jB,GAEf3a,EAA2BlJ,MAAO6jB,EAAKla,WAAapP,OAAOkQ,eAAeoZ,IAAOnZ,MAAM1K,KAAMnE,YAoHtG,MAzHAwN,GAAUwa,EAAMrY,GAQhBX,EAAagZ,IACXznB,IAAK,SACLqC,MAAO,WsBp1HC,GAAAgN,GACmDzL,KAAKvD,MAAxD4X,EADA5I,EACA4I,aAAcF,EADd1I,EACc0I,iBAAkBqB,EADhC/J,EACgC+J,KAAMlB,EADtC7I,EACsC6I,QAE9C,QACE,EAAAxJ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOuM,OACjB,EAAApX,EAAAzP,GAAA,MAAIqa,MAAOC,UAAOmO,aAAlB,yBACuB,EAAAhZ,EAAAzP,GAAA,cAASiZ,GADhC,cAGCD,EAAa0P,YACZ,EAAAjZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOqO,gBACjB,EAAAlZ,EAAAzP,GAAA,OAAKqa,OAAO,EAAAlJ,EAAArE,KAAIwN,UAAOsO,WAAY,gBACnC,EAAAnZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOuO,aACjB,EAAApZ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAAA,cACG+nB,EACC/O,EAAa0P,UAAUI,GACvB3O,EAAK4O,QAAQC,WAAWF,KAElB,IANZ,uBAOuBhQ,KAK5BE,EAAaiQ,SACZ,EAAAxZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOqO,gBACjB,EAAAlZ,EAAAzP,GAAA,OAAKqa,OAAO,EAAAlJ,EAAArE,KAAIwN,UAAOsO,WAAY,aACnC,EAAAnZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOuO,aACjB,EAAApZ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAAA,cACG+nB,EACC/O,EAAaiQ,OAAOH,GACpB3O,EAAK4O,QAAQC,WAAWF,KAElB,IANZ,qBAOqBhQ,MAK3B,EAAArJ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOqO,gBACjB,EAAAlZ,EAAAzP,GAAA,OAAKqa,OAAO,EAAAlJ,EAAArE,KAAIwN,UAAOsO,WAAY,eACnC,EAAAnZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOuO,aACjB,EAAApZ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAAA,cACGioB,EAAqB9N,EAAK4O,QAAQC,WAAWE,gBAAiB,KACvD,IAHZ,mBAQJ,EAAAzZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOqO,gBACjB,EAAAlZ,EAAAzP,GAAA,OAAKqa,OAAO,EAAAlJ,EAAArE,KAAIwN,UAAOsO,WAAY,WACnC,EAAAnZ,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOuO,aACjB,EAAApZ,EAAAzP,GAAA,YACE,EAAAyP,EAAAzP,GAAA,cACGqoB,EAAWlO,EAAK4O,QAAQC,WAAWG,KADtC,OACqD,KAC3C,IAHZ,mCtB64HHX,GsBp8HU1f,YtBu8HnBvK,GAAQkO,QsBn4HO+b,GtBu4HT,SAAUhqB,EAAQD,GuBv+HxBC,EAAAD,SAAkBsoB,KAAA,iCAAA4B,YAAA,wCAAAE,cAAA,0CAAAC,WAAA,uCAAAQ,wBAAA,kDAAAC,qBAAA,+CAAAC,uBAAA,iDAAAC,mBAAA,6CAAAV,WAAA,yCvB8+HZ,SAAUrqB,EAAQD,EAASH,GAEjC,YAqBA,SAAS4Z,GAAuB7W,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,GAEvF,QAASsM,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAxBjehP,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIoM,GAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,MwBt/HhiB6b,EAAAprB,EAAA,IxB0/HIqrB,EAAkBzR,EAAuBwR,GwBz/H7C/Z,EAAArR,EAAA,GACAsrB,EAAAtrB,EAAA,IAEAkqB,EAAAlqB,EAAA,IxB8/HImqB,EAAUvQ,EAAuBsQ,GwBj/H/BqB,IAAS,IAAK,KAAM,GAAI,OAExBC,ExB2/Hc,SAAUzZ,GAG5B,QAASyZ,KACP,GAAIhb,GAEAC,EAAO+J,EAAO7J,CAElBtB,GAAgB9I,KAAMilB,EAEtB,KAAK,GAAI5a,GAAOxO,UAAUC,OAAQwO,EAAOC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC3EF,EAAKE,GAAQ3O,UAAU2O,EAGzB,OAAeN,GAAS+J,EAAQ/K,EAA2BlJ,MAAOiK,EAAOgb,EAActb,WAAapP,OAAOkQ,eAAewa,IAAgBjrB,KAAK0Q,MAAMT,GAAOjK,MAAM2K,OAAOL,KAAiB2J,EwBpgI5L1P,OACE2gB,cAAc,GxBmgIP9a,EAEJF,EAAQhB,EAA2B+K,EAAO7J,GAsN/C,MArOAf,GAAU4b,EAAezZ,GAkBzBX,EAAaoa,IACX7oB,IAAK,oBACLqC,MAAO,WwBtgIPuB,KAAKmlB,mBxB0gIL/oB,IAAK,qBACLqC,MAAO,SwBxgIWuG,GACdhF,KAAKyQ,MAAQzL,EAAUoP,OAASpU,KAAKvD,MAAM2X,OAC7CpU,KAAKolB,YAGHplB,KAAKyQ,MAAQzL,EAAUqP,cAAgBrU,KAAKvD,MAAM4X,eACpDrU,KAAKqlB,mBACLrlB,KAAKslB,oBAGHtlB,KAAKyQ,KAAOzL,EAAUqP,cAAgBrU,KAAKvD,MAAM4X,cAC/CrP,EAAUqP,aAAa9H,KAAOvM,KAAKvD,MAAM4X,aAAa9H,KACxDvM,KAAKqlB,mBACLrlB,KAAKslB,oBAILtlB,KAAKyQ,KAAOzL,EAAUsP,WAAatU,KAAKvD,MAAM6X,UAChDtU,KAAKslB,sBxB4gIPlpB,IAAK,gBACLqC,MAAO,WwBzgIQ,GAAA0L,GAAAnK,IACfyM,QAAO8Y,SACJ,4DACD,SAAAC,GAEErb,EAAKqb,SAAWA,EAChBrb,EAAKqb,SAASpP,YAAcjM,EAAK1N,MAAM2Z,YAEvCjM,EAAKsG,IAAM,GAAI+U,GAASC,KACtBC,UAAWvb,EAAKwb,IAChBjnB,MAAO,kDAKTyL,EAAKsG,IAAImV,WACP,GAAIJ,GAASK,mBACXC,aAAa,IAEf,YAEF3b,EAAKsG,IAAIsV,WAAWC,UACpB7b,EAAKsG,IAAIwV,gBAAgBC,kBAEzB/b,EAAKsG,IAAI0V,UAAUnB,GACjBoB,SAAWC,IAAK,GAAIC,OAAQ,GAAIC,KAAM,GAAIC,MAAO,IACjDC,SAAU,IAGZtc,EAAKsG,IAAIwI,GAAG,OAAQ,WAClB9O,EAAKzC,UAAWwd,cAAc,IAG9B/a,EAAKib,YACLjb,EAAKkb,mBACLlb,EAAKmb,0BxB2gIXlpB,IAAK,YACLqC,MAAO,WwBtgII,GAAA4W,GAAArV,IACX,IAAKA,KAAKuE,MAAM2gB,aAAhB,CAKA,GAAMvL,GAAO3Z,KAAKvD,MAAM2X,KAIpBuF,IACFA,EAAKtN,QAAQ,SAACmJ,EAAMW,GAClBd,EAAK5E,IAAIiW,UACPna,UAAWpQ,OAAOga,GAClBlW,KAAM,OACNkL,QACElL,KAAM,UACN0Z,KAAMnE,EAAK4O,SAEbuC,UACAC,OACEC,aAAc,UACdC,eAAgB,YxB+gIxB1qB,IAAK,mBACLqC,MAAO,WwBxgIP,GAAKuB,KAAKuE,MAAM2gB,aAAhB,CAOA,GAAMvL,GAAO3Z,KAAKvD,MAAM4X,YAExB,IAAIsF,EAAM,CACJ3Z,KAAKyQ,IAAIsW,SAAS,iBACpB/mB,KAAKyQ,IAAIuW,YAAY,gBAGnBhnB,KAAKyQ,IAAIwW,UAAU,iBACrBjnB,KAAKyQ,IAAIyW,aAAa,gBAGxBlnB,KAAKyQ,IAAIiW,UACPna,GAAI,eACJtM,KAAM,OACNkL,QACElL,KAAM,UACN0Z,KAAMA,EAAKyK,SAEbuC,UACAC,OACEO,aAAc,UACdC,aAAc,IAIlB,IAAMC,GAAS,GAAIrnB,MAAKwlB,SAAS8B,cAAa,EAAAxC,EAAAhd,SAAc6R,EAAKyK,SAEjEpkB,MAAKyQ,IAAI0V,UAAUkB,GACjBjB,SAAWC,IAAK,GAAIC,OAAQ,GAAIC,KAAM,GAAIC,MAAO,WxB8gIrDpqB,IAAK,mBACLqC,MAAO,WwBzgIP,GAAKuB,KAAKuE,MAAM2gB,aAAhB,CADkB,GAAAzZ,GAQwBzL,KAAKvD,MAAvC2X,EARU3I,EAQV2I,MAAOC,EARG5I,EAQH4I,aAAcC,EARX7I,EAQW6I,QAE7B,IAAIF,GAASC,GAAgBC,EAAU,CACrC,GAAMiB,GAAcnB,EAAMxF,OAAO,SAAA4G,GAAA,MAAQA,GAAKjJ,KAAO+H,GAErD,IAAIiB,EAAYzZ,OAAQ,CACtB,GAAM0Z,GAAOD,EAAY,GAEnBhV,GACJiV,EAAK+R,SAASC,YAAY,GAAKnT,EAAakT,SAASC,YAAY,GACjEhS,EAAK+R,SAASC,YAAY,GAAKnT,EAAakT,SAASC,YAAY,IAG7DC,GAAmB,EAAA1C,EAAA2C,kBAAiBlS,EAAK4O,QAAS7jB,EAEpDP,MAAKyQ,IAAIsW,SAAS,gBACpB/mB,KAAKyQ,IAAIuW,YAAY,eAGnBhnB,KAAKyQ,IAAIwW,UAAU,gBACrBjnB,KAAKyQ,IAAIyW,aAAa,eAGxBlnB,KAAKyQ,IAAIiW,UACPna,GAAI,cACJtM,KAAM,OACNkL,QACElL,KAAM,UACN0Z,KAAM8N,GAERd,UACAC,OACEC,aAAc,UACdC,eAAgB,YxB4hIxB1qB,IAAK,SACLqC,MAAO,WwB9gIC,GAAAkpB,GAAA3nB,IACR,QAAO,EAAA8K,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOlF,IAAKnN,IAAK,SAAAqiB,GAAA,MAAQgC,GAAKhC,IAAMA,SxBshIlDV,GwBjuImB9gB,YxBouI5BvK,GAAQkO,QwBrhIOmd,GxByhIT,SAAUprB,EAAQD,EAASH,GAEjC,YyBvtIA,SAASmuB,GAAUC,GAIf,IAAK,GAFDC,GAAMC,IACNC,EAASC,EAAcJ,GAClB/tB,EAAI,EAAGA,EAAIkuB,EAAOlsB,OAAQhC,IAAKguB,EAAII,QAAQF,EAAOluB,GAC3D,OAAOguB,GA7CX,GAAIG,GAAgBxuB,EAAQ,IACxB0uB,EAAW1uB,EAAQ,IACnBsuB,EAAStuB,EAAQ,IAEjB2uB,GACAC,UAAW,qBACXb,aAAc,QAAS,aAAc,aAAc,kBAAmB,UAAW,gBACjFc,UAAW,WACXC,YAAa,uBAGbC,EAAiBjuB,OAAOoO,KAAKyf,EAEjCvuB,GAAOD,QAAU,SAASiuB,GACtB,MAAOD,GAAUC,GAAGY,QAGxB5uB,EAAOD,QAAQwqB,QAAU,SAASyD,GAC9B,MAAOD,GAAUC,GAAGzD,WAGxBvqB,EAAOD,QAAQ8uB,QAAU,SAASb,GAC9B,MAAOM,GAASN,GAAGpX,IAAI,SAAShS,GAC5B,GAAKA,EAAL,CAEc+pB,EAAeG,KAAK,SAASC,GACvC,QAAGnqB,EAAMmqB,KACmE,IAAjER,EAA6BQ,GAAW/f,QAAQpK,EAAMwB,UAMjExB,EAAMgqB,KAAOb,EAAUnpB,GAAOgqB,OAC9BzoB,KAAK6oB,OAAOpqB,SzBkxIlB,SAAU5E,EAAQD,EAASH,GAEjC,Y0BtzIA,IAAIqvB,GAAmBrvB,EAAQ,IAC3BsvB,EAAiBtvB,EAAQ,IACzBuvB,EAAUvvB,EAAQ,GAEtBI,GAAOD,QAAU,SAASiuB,GACtB,IAAKA,EAAG,QACR,IAAIoB,GAAaF,EAAeD,EAAiBjB,IAC7CL,IAKJ,OAJAyB,GAAWZ,SAAShc,QAAQ,SAAS6c,GAC5BA,EAAQZ,WACbd,EAAcA,EAAY7c,OAAOqe,EAAQE,EAAQZ,SAASd,iBAEvDA,I1B8zIL,SAAU3tB,EAAQD,EAASH,GAEjC,Y2BxzIA,SAAS0vB,GAAUC,GACf,IAAKA,IAAOA,EAAGnpB,KAAM,MAAO,KAC5B,IAAIA,GAAOsa,EAAM6O,EAAGnpB,KACpB,OAAKA,GAEQ,aAATA,GAEIA,KAAM,oBACNooB,WACIpoB,KAAM,UACNokB,cACAiE,SAAUc,KAGF,YAATnpB,GAEHA,KAAM,oBACNooB,UAAWe,IAEC,sBAATnpB,EACAmpB,MADJ,GAhBW,KAvBtBvvB,EAAOD,QAAUuvB,CAEjB,IAAI5O,IACA8O,MAAO,WACPC,WAAY,WACZC,WAAY,WACZC,gBAAiB,WACjBC,QAAS,WACTC,aAAc,WACdC,mBAAoB,WACpBC,QAAS,UACTC,kBAAmB,sB3Bk3IjB,SAAUhwB,EAAQD,EAASH,GAEjC,Y4B/3IA,SAASuvB,GAAQI,GACb,OAASA,GAAMA,EAAGnpB,MAAS,MACvB,IAAK,oBAID,MAHAmpB,GAAGf,SAAWe,EAAGf,SAAS3X,OAAO,SAASoZ,EAAKZ,GAC3C,MAAOY,GAAInf,OAAOqe,EAAQE,SAEvBE,CACX,KAAK,UACD,MAAKA,GAAGd,SACDU,EAAQI,EAAGd,UAAU7X,IAAI,SAASsZ,GACrC,OACI9pB,KAAM,UACNokB,WAAYzX,KAAKC,MAAMD,KAAKkG,UAAUsW,EAAG/E,aACzCiE,SAAUyB,KALOX,CAQ7B,KAAK,aACD,MAAOA,GAAG5B,YAAY/W,IAAI,SAASoX,GAC/B,OAAS5nB,KAAM,QAASunB,YAAaK,IAE7C,KAAK,eACD,MAAOuB,GAAG5B,YAAY/W,IAAI,SAASoX,GAC/B,OAAS5nB,KAAM,UAAWunB,YAAaK,IAE/C,KAAK,kBACD,MAAOuB,GAAG5B,YAAY/W,IAAI,SAASoX,GAC/B,OAAS5nB,KAAM,aAAcunB,YAAaK,IAElD,KAAK,qBACD,MAAOuB,GAAGb,WAAW9X,IAAIuY,GAAStY,OAAO,SAASsZ,EAAMC,GACpD,MAAOD,GAAKrf,OAAOsf,OAE3B,KAAK,QACL,IAAK,UACL,IAAK,aACD,OAAQb,IAIpBvvB,EAAOD,QAAUovB,G5Bs4IX,SAAUnvB,EAAQD,EAASH,GAEjC,Y6B/6IAI,GAAOD,QAAU,SAAiBuD,GAG9B,QAAS+sB,GAAS/sB,GACd,MAAIoN,OAAMwF,QAAQ5S,IAASA,EAAKrB,QACT,gBAAZqB,GAAK,IACJA,GAELA,EAAKuT,OAAO,SAAUyZ,EAAKC,GAC9B,MAAI7f,OAAMwF,QAAQqa,IAAS7f,MAAMwF,QAAQqa,EAAK,IACnCD,EAAIxf,OAAOuf,EAASE,KAE3BD,EAAInuB,KAAKouB,GACFD,QAZnB,MAAOD,GAAS/sB,K7Bq8Id,SAAUtD,EAAQD,EAASH,GAEjC,Y8Bp8IA,SAAS4wB,GAAU7tB,GACfwD,KAAKvB,MAAQjC,EAyGjB,QAAS8tB,GAAM3e,EAAMyT,EAAImL,GACrB,GAAIC,MACAC,KACAC,GAAQ,CAEZ,OAAQ,SAASC,GAAQC,GA+CrB,QAASC,KACL,GAA0B,WAAtBjsB,EAAO2F,EAAMjH,OAAoC,OAAfiH,EAAMjH,KAAe,CAClDiH,EAAMoE,MAAQpE,EAAMqmB,QAAUrmB,EAAMjH,OACrCiH,EAAMoE,KAAOmiB,EAAWvmB,EAAMjH,OAGlCiH,EAAMwmB,OAA8B,GAArBxmB,EAAMoE,KAAK7M,MAE1B,KAAK,GAAIhC,GAAI,EAAGA,EAAI2wB,EAAQ3uB,OAAQhC,IAChC,GAAI2wB,EAAQ3wB,GAAG8wB,QAAUA,EAAO,CAC5BrmB,EAAMymB,SAAWP,EAAQ3wB,EACzB,YAKRyK,GAAMwmB,QAAS,EACfxmB,EAAMoE,KAAO,IAGjBpE,GAAM0mB,SAAW1mB,EAAMwmB,OACvBxmB,EAAM2mB,SAAW3mB,EAAM4mB,OAnE3B,GAAI7tB,GAAOitB,EAAYa,EAAKR,GAASA,EACjCxa,KAEAib,GAAY,EAEZ9mB,GACAjH,KAAOA,EACPstB,MAAQA,EACRJ,QAAU7f,OAAO6f,GACjB7pB,OAAS8pB,EAAQA,EAAQ3uB,OAAS,GAClC2uB,QAAUA,EACVruB,IAAMouB,EAAK7tB,OAAO,GAAG,GACrBwuB,OAAyB,IAAhBX,EAAK1uB,OACdwvB,MAAQd,EAAK1uB,OACbkvB,SAAW,KACXnC,OAAS,SAAU0C,EAAGC,GACbjnB,EAAM4mB,SACP5mB,EAAM5D,OAAOrD,KAAKiH,EAAMnI,KAAOmvB,GAEnChnB,EAAMjH,KAAOiuB,EACTC,IAAUH,GAAY,IAE9BI,OAAW,SAAUD,SACVjnB,GAAM5D,OAAOrD,KAAKiH,EAAMnI,KAC3BovB,IAAUH,GAAY,IAE9BK,OAAS,SAAUF,GACXzb,EAAQxL,EAAM5D,OAAOrD,MACrBiH,EAAM5D,OAAOrD,KAAKgH,OAAOC,EAAMnI,IAAK,SAG7BmI,GAAM5D,OAAOrD,KAAKiH,EAAMnI,KAE/BovB,IAAUH,GAAY,IAE9B1iB,KAAO,KACPgjB,OAAS,SAAUrpB,GAAK8N,EAAUub,OAASrpB,GAC3CspB,MAAQ,SAAUtpB,GAAK8N,EAAUwb,MAAQtpB,GACzCupB,IAAM,SAAUvpB,GAAK8N,EAAUyb,IAAMvpB,GACrCqc,KAAO,SAAUrc,GAAK8N,EAAUuO,KAAOrc,GACvCwpB,KAAO,WAAcpB,GAAQ,GAC7BqB,MAAQ,WAAcV,GAAY,GAGtC,KAAKX,EAAO,MAAOnmB,EA0BnBsmB,IAGA,IAAI7pB,GAAMoe,EAAGplB,KAAKuK,EAAOA,EAAMjH,KAK/B,YAJYpB,KAAR8E,GAAqBuD,EAAMskB,QAAQtkB,EAAMskB,OAAO7nB,GAEhDoP,EAAUub,QAAQvb,EAAUub,OAAO3xB,KAAKuK,EAAOA,EAAMjH,MAEpD+tB,GAEoB,UAArBzsB,EAAO2F,EAAMjH,OACC,OAAfiH,EAAMjH,MAAkBiH,EAAMymB,WAC7BP,EAAQzuB,KAAKuI,GAEbsmB,IAEAxe,EAAQ9H,EAAMoE,KAAM,SAAUvM,EAAKtC,GAC/B0wB,EAAKxuB,KAAKI,GAENgU,EAAUyb,KAAKzb,EAAUyb,IAAI7xB,KAAKuK,EAAOA,EAAMjH,KAAKlB,GAAMA,EAE9D,IAAIX,GAAQkvB,EAAOpmB,EAAMjH,KAAKlB,GAC1BmuB,IAAatvB,EAAejB,KAAKuK,EAAMjH,KAAMlB,KAC7CmI,EAAMjH,KAAKlB,GAAOX,EAAM6B,MAG5B7B,EAAMuwB,OAASlyB,GAAKyK,EAAMoE,KAAK7M,OAAS,EACxCL,EAAMwwB,QAAe,GAALnyB,EAEZsW,EAAUuO,MAAMvO,EAAUuO,KAAK3kB,KAAKuK,EAAO9I,GAE/C+uB,EAAKvuB,QAETwuB,EAAQxuB,OAGRmU,EAAUwb,OAAOxb,EAAUwb,MAAM5xB,KAAKuK,EAAOA,EAAMjH,MAEhDiH,GA9BgBA,GA+BxBoH,GAAMrO,KAGb,QAAS8tB,GAAMc,GACX,GAAmB,gBAAf,KAAOA,EAAP,YAAAttB,EAAOstB,KAA4B,OAARA,EAAc,CACzC,GAAIC,EAEJ,IAAIpc,EAAQmc,GACRC,SAEC,IAAIC,EAAOF,GACZC,EAAM,GAAIve,MAAKse,EAAIG,QAAUH,EAAIG,UAAYH,OAE5C,IAAII,EAASJ,GACdC,EAAM,GAAII,QAAOL,OAEhB,IAAIM,EAAQN,GACbC,GAAQje,QAASge,EAAIhe,aAEpB,IAAIue,EAAUP,GACfC,EAAM,GAAIO,SAAQR,OAEjB,IAAIS,EAAST,GACdC,EAAM,GAAIS,QAAOV,OAEhB,IAAIW,EAASX,GACdC,EAAM,GAAIhwB,QAAO+vB,OAEhB,IAAI3xB,OAAOiP,QAAUjP,OAAOkQ,eAC7B0hB,EAAM5xB,OAAOiP,OAAOjP,OAAOkQ,eAAeyhB,QAEzC,IAAIA,EAAIroB,cAAgBtJ,OACzB4xB,SAEC,CACD,GAAIW,GACCZ,EAAIroB,aAAeqoB,EAAIroB,YAAY7I,WACjCkxB,EAAIviB,cAGPojB,EAAI,YACRA,GAAE/xB,UAAY8xB,EACdX,EAAM,GAAIY,GAMd,MAHA1gB,GAAQye,EAAWoB,GAAM,SAAU9vB,GAC/B+vB,EAAI/vB,GAAO8vB,EAAI9vB,KAEZ+vB,EAEN,MAAOD,GAShB,QAASc,GAAKxwB,GAAO,MAAOjC,QAAOS,UAAUoW,SAASpX,KAAKwC,GAC3D,QAAS4vB,GAAQ5vB,GAAO,MAAoB,kBAAbwwB,EAAIxwB,GACnC,QAAS8vB,GAAU9vB,GAAO,MAAoB,oBAAbwwB,EAAIxwB,GACrC,QAASgwB,GAAShwB,GAAO,MAAoB,mBAAbwwB,EAAIxwB,GACpC,QAASiwB,GAAWjwB,GAAO,MAAoB,qBAAbwwB,EAAIxwB,GACtC,QAASmwB,GAAUnwB,GAAO,MAAoB,oBAAbwwB,EAAIxwB,GACrC,QAASqwB,GAAUrwB,GAAO,MAAoB,oBAAbwwB,EAAIxwB,G9ByqIrC,GAAIoC,GAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,I8B38IlQ2rB,EAAWtuB,EAAOD,QAAU,SAAU4C,GACtC,MAAO,IAAI6tB,GAAS7tB,GAOxB6tB,GAASrvB,UAAUL,IAAM,SAAUsyB,GAE/B,IAAK,GADD3vB,GAAO0C,KAAKvB,MACP3E,EAAI,EAAGA,EAAImzB,EAAGnxB,OAAQhC,IAAM,CACjC,GAAIsC,GAAM6wB,EAAGnzB,EACb,KAAKwD,IAASrC,EAAejB,KAAKsD,EAAMlB,GAAM,CAC1CkB,MAAOpB,EACP,OAEJoB,EAAOA,EAAKlB,GAEhB,MAAOkB,IAGX+sB,EAASrvB,UAAUkyB,IAAM,SAAUD,GAE/B,IAAK,GADD3vB,GAAO0C,KAAKvB,MACP3E,EAAI,EAAGA,EAAImzB,EAAGnxB,OAAQhC,IAAM,CACjC,GAAIsC,GAAM6wB,EAAGnzB,EACb,KAAKwD,IAASrC,EAAejB,KAAKsD,EAAMlB,GACpC,OAAO,CAEXkB,GAAOA,EAAKlB,GAEhB,OAAO,GAGXiuB,EAASrvB,UAAUmgB,IAAM,SAAU8R,EAAIxuB,GAEnC,IAAK,GADDnB,GAAO0C,KAAKvB,MACP3E,EAAI,EAAGA,EAAImzB,EAAGnxB,OAAS,EAAGhC,IAAM,CACrC,GAAIsC,GAAM6wB,EAAGnzB,EACRmB,GAAejB,KAAKsD,EAAMlB,KAAMkB,EAAKlB,OAC1CkB,EAAOA,EAAKlB,GAGhB,MADAkB,GAAK2vB,EAAGnzB,IAAM2E,EACPA,GAGX4rB,EAASrvB,UAAUyV,IAAM,SAAU2O,GAC/B,MAAOkL,GAAKtqB,KAAKvB,MAAO2gB,GAAI,IAGhCiL,EAASrvB,UAAUqR,QAAU,SAAU+S,GAEnC,MADApf,MAAKvB,MAAQ6rB,EAAKtqB,KAAKvB,MAAO2gB,GAAI,GAC3Bpf,KAAKvB,OAGhB4rB,EAASrvB,UAAU0V,OAAS,SAAU0O,EAAIlT,GACtC,GAAItG,GAA4B,IAArB/J,UAAUC,OACjBquB,EAAMvkB,EAAO5F,KAAKvB,MAAQyN,CAM9B,OALAlM,MAAKqM,QAAQ,SAAUkf,GACdvrB,KAAKmrB,QAAWvlB,IACjBukB,EAAM/K,EAAGplB,KAAKgG,KAAMmqB,EAAKoB,MAG1BpB,GAGXE,EAASrvB,UAAUmyB,MAAQ,WACvB,GAAIhD,KAIJ,OAHAnqB,MAAKqM,QAAQ,SAAUkf,GACnBpB,EAAInuB,KAAKgE,KAAKwqB,QAEXL,GAGXE,EAASrvB,UAAUoyB,MAAQ,WACvB,GAAIjD,KAIJ,OAHAnqB,MAAKqM,QAAQ,SAAUkf,GACnBpB,EAAInuB,KAAKgE,KAAK1C,QAEX6sB,GAGXE,EAASrvB,UAAUqyB,MAAQ,WACvB,GAAI5C,MAAc2C,IAElB,OAAQ,SAASC,GAAOnB,GACpB,IAAK,GAAIpyB,GAAI,EAAGA,EAAI2wB,EAAQ3uB,OAAQhC,IAChC,GAAI2wB,EAAQ3wB,KAAOoyB,EACf,MAAOkB,GAAMtzB,EAIrB,IAAmB,gBAAf,KAAOoyB,EAAP,YAAAttB,EAAOstB,KAA4B,OAARA,EAAc,CACzC,GAAIC,GAAMf,EAAKc,EAWf,OATAzB,GAAQzuB,KAAKkwB,GACbkB,EAAMpxB,KAAKmwB,GAEX9f,EAAQye,EAAWoB,GAAM,SAAU9vB,GAC/B+vB,EAAI/vB,GAAOixB,EAAMnB,EAAI9vB,MAGzBquB,EAAQxuB,MACRmxB,EAAMnxB,MACCkwB,EAGP,MAAOD,IAEZlsB,KAAKvB,OA2KZ,IAAIqsB,GAAavwB,OAAOoO,MAAQ,SAAenM,GAC3C,GAAIwY,KACJ,KAAK,GAAI5Y,KAAOI,GAAKwY,EAAIhZ,KAAKI,EAC9B,OAAO4Y,IAWPjF,EAAUxF,MAAMwF,SAAW,SAAkBud,GAC7C,MAA8C,mBAAvC/yB,OAAOS,UAAUoW,SAASpX,KAAKszB,IAGtCjhB,EAAU,SAAUihB,EAAI3d,GACxB,GAAI2d,EAAGjhB,QAAS,MAAOihB,GAAGjhB,QAAQsD,EAC7B,KAAK,GAAI7V,GAAI,EAAGA,EAAIwzB,EAAGxxB,OAAQhC,IAChC6V,EAAG2d,EAAGxzB,GAAIA,EAAGwzB,GAIrBjhB,GAAQye,EAAWT,EAASrvB,WAAY,SAAUoB,GAC9C+rB,EAAS/rB,GAAO,SAAUI,GACtB,GAAI8N,MAAU3N,MAAM3C,KAAK6B,UAAW,GAChCyK,EAAI,GAAI+jB,GAAS7tB,EACrB,OAAO8J,GAAElK,GAAKsO,MAAMpE,EAAGgE,KAI/B,IAAIrP,GAAiBV,OAAOU,gBAAkB,SAAUuB,EAAKJ,GACzD,MAAOA,KAAOI,K9B29IZ,SAAU3C,EAAQD,EAASH,GAEjC,Y+BnxJA,SAAS8zB,GAAO9E,GACZ,KAAMzoB,eAAgButB,IAClB,MAAO,IAAIA,GAAO9E,EAEtBzoB,MAAKwtB,MAAQ/E,IAASgF,IAAUA,KAAWA,KAAWA,KACtDztB,KAAK0tB,SAAWjF,EAPpB5uB,EAAOD,QAAU2zB,EAUjBA,EAAOvyB,UAAUktB,QAAU,SAASyF,GAMhC,MALA3tB,MAAK0tB,QAAS,EACd1tB,KAAKwtB,MAAM,GAAKtc,KAAKtO,IAAI5C,KAAKwtB,MAAM,GAAIG,EAAG,IAC3C3tB,KAAKwtB,MAAM,GAAKtc,KAAKtO,IAAI5C,KAAKwtB,MAAM,GAAIG,EAAG,IAC3C3tB,KAAKwtB,MAAM,GAAKtc,KAAK0c,IAAI5tB,KAAKwtB,MAAM,GAAIG,EAAG,IAC3C3tB,KAAKwtB,MAAM,GAAKtc,KAAK0c,IAAI5tB,KAAKwtB,MAAM,GAAIG,EAAG,IACpC3tB,MAGXutB,EAAOvyB,UAAU6yB,OAAS,SAAShG,GAC/B,GAAIiG,EAEJ,OAD2BA,GAAvBjG,YAAa0F,GAAkB1F,EAAEY,OAAyBZ,EACvD7nB,KAAKwtB,MAAM,IAAMM,EAAM,IAC1B9tB,KAAKwtB,MAAM,IAAMM,EAAM,IACvB9tB,KAAKwtB,MAAM,IAAMM,EAAM,IACvB9tB,KAAKwtB,MAAM,IAAMM,EAAM,IAG/BP,EAAOvyB,UAAU+yB,OAAS,SAASlG,GAC/B,MAAK7nB,MAAK0tB,SAEL1tB,KAAKwtB,MAAM,GAAKxtB,KAAKwtB,MAAM,IAAM,GACjCxtB,KAAKwtB,MAAM,GAAKxtB,KAAKwtB,MAAM,IAAM,GAHb,MAM7BD,EAAOvyB,UAAUgzB,MAAQ,SAASnG,GAC9B7nB,KAAK0tB,QAAS,CACd,IAAII,EAMJ,OAL2BA,GAAvBjG,YAAa0F,GAAkB1F,EAAEY,OAAyBZ,EAC9D7nB,KAAKwtB,MAAM,GAAKtc,KAAKtO,IAAI5C,KAAKwtB,MAAM,GAAIM,EAAM,IAC9C9tB,KAAKwtB,MAAM,GAAKtc,KAAKtO,IAAI5C,KAAKwtB,MAAM,GAAIM,EAAM,IAC9C9tB,KAAKwtB,MAAM,GAAKtc,KAAK0c,IAAI5tB,KAAKwtB,MAAM,GAAIM,EAAM,IAC9C9tB,KAAKwtB,MAAM,GAAKtc,KAAK0c,IAAI5tB,KAAKwtB,MAAM,GAAIM,EAAM,IACvC9tB,MAGXutB,EAAOvyB,UAAUytB,KAAO,WACpB,MAAKzoB,MAAK0tB,OACH1tB,KAAKwtB,MADa,MAI7BD,EAAOvyB,UAAUizB,SAAW,SAASN,GACjC,IAAKA,EAAI,MAAO3tB,MAAKkuB,eACrB,KAAKluB,KAAK0tB,OAAQ,MAAO,KACzB,IAAIS,GAAMR,EAAG,GAAIS,EAAMT,EAAG,EAC1B,OAAO3tB,MAAKwtB,MAAM,IAAMW,GACpBnuB,KAAKwtB,MAAM,IAAMY,GACjBpuB,KAAKwtB,MAAM,IAAMW,GACjBnuB,KAAKwtB,MAAM,IAAMY,GAGzBb,EAAOvyB,UAAUqzB,UAAY,SAASxG,GAClC,IAAK7nB,KAAK0tB,OAAQ,MAAO,KAEzB,IAAII,EAGJ,OAF2BA,GAAvBjG,YAAa0F,GAAkB1F,EAAEY,OAAyBZ,IAG5D7nB,KAAKwtB,MAAM,GAAKM,EAAM,IACtB9tB,KAAKwtB,MAAM,GAAKM,EAAM,IACtB9tB,KAAKwtB,MAAM,GAAKM,EAAM,IACtB9tB,KAAKwtB,MAAM,GAAKM,EAAM,KAI5BP,EAAOvyB,UAAUkzB,cAAgB,WAC7B,IAAKluB,KAAK0tB,OAAQ,MAAO,IAAIY,UAAS,eACtC,IAAIrZ,GAAO,UACPjV,KAAKwtB,MAAM,GAAK,cAChBxtB,KAAKwtB,MAAM,GAAK,cAChBxtB,KAAKwtB,MAAM,GAAK,cAChBxtB,KAAKwtB,MAAM,GAAK,UACpB,OAAO,IAAIc,UAAS,KAAMrZ,IAG9BsY,EAAOvyB,UAAUopB,QAAU,WACvB,MAAKpkB,MAAK0tB,QAENztB,KAAM,UACNunB,eAGSxnB,KAAKwtB,MAAM,GAAIxtB,KAAKwtB,MAAM,KAE1BxtB,KAAKwtB,MAAM,GAAIxtB,KAAKwtB,MAAM,KAE1BxtB,KAAKwtB,MAAM,GAAIxtB,KAAKwtB,MAAM,KAE1BxtB,KAAKwtB,MAAM,GAAIxtB,KAAKwtB,MAAM,KAE1BxtB,KAAKwtB,MAAM,GAAIxtB,KAAKwtB,MAAM,OAdd,O/BuyJvB,SAAU3zB,EAAQD,EAASH,GAEjC,YgC33JO,SAASiuB,GAAkB/N,EAAWpZ,GAC3C,OAAQoZ,EAAK2O,SAASroB,MACpB,IAAK,UACH,MAAA8K,MACK4O,GACH2O,UACEroB,KAAM,UACNunB,YAAa7N,EAAK2O,SAASd,YAAY/W,IAAI,SAAA8d,GACzC,MAAOA,GAAmB9d,IAAI,SAAA+d,GAC5B,OAAQA,EAAW,GAAKjuB,EAAK,GAAIiuB,EAAW,GAAKjuB,EAAK,UAMhE,KAAK,eACH,MAAAwK,MACK4O,GACH2O,UACEroB,KAAM,eACNunB,YAAa7N,EAAK2O,SAASd,YAAY/W,IAAI,SAAA8d,GACzC,MAAOA,GAAmB9d,IAAI,SAAA+d,GAC5B,MAAOA,GAAW/d,IAAI,SAAAvW,GACpB,OAAQA,EAAE,GAAKqG,EAAK,GAAIrG,EAAE,GAAKqG,EAAK,YAOhD,SACE,KAAM,IAAI2Y,OAAJ,4BAAsCS,EAAK2O,SAASroB,OhC+1JhE1F,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIsM,GAAWxQ,OAAO2Q,QAAU,SAAUtC,GAAU,IAAK,GAAI9O,GAAI,EAAGA,EAAI+B,UAAUC,OAAQhC,IAAK,CAAE,GAAIqR,GAAStP,UAAU/B,EAAI,KAAK,GAAIsC,KAAO+O,GAAc5Q,OAAOS,UAAUC,eAAejB,KAAKmR,EAAQ/O,KAAQwM,EAAOxM,GAAO+O,EAAO/O,IAAY,MAAOwM,GAEvPhP,GgCp4JgB8tB,oBhCw6JV,SAAU7tB,EAAQD,GiC36JxBC,EAAAD,SAAkB6W,IAAA,kCjCk7JZ,SAAU5W,EAAQD,EAASH,GAEjC,YAiBA,SAASqP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAlBjehP,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIoM,GAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,MkCv7JhiB8B,EAAArR,EAAA,GAEAkqB,EAAAlqB,EAAA,IlC27JImqB,EAEJ,SAAgCpnB,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,IAFlDmnB,GkCz6J/B8K,ElCs7JO,SAAUjjB,GAGrB,QAASijB,KAGP,MAFA3lB,GAAgB9I,KAAMyuB,GAEfvlB,EAA2BlJ,MAAOyuB,EAAO9kB,WAAapP,OAAOkQ,eAAegkB,IAAS/jB,MAAM1K,KAAMnE,YAkD1G,MAvDAwN,GAAUolB,EAAQjjB,GAQlBX,EAAa4jB,IACXryB,IAAK,SACLqC,MAAO,WkCh8JC,GAAAgN,GAC0DzL,KAAKvD,MAA/D8P,EADAd,EACAc,GAAIyJ,EADJvK,EACIuK,MAAOvX,EADXgN,EACWhN,MAAOpC,EADlBoP,EACkBpP,QAAS4Z,EAD3BxK,EAC2BwK,OAAQC,EADnCzK,EACmCyK,SAAUH,EAD7CtK,EAC6CsK,QAErD,QACE,EAAAjL,EAAAzP,GAAA,OAAKqa,MAAOC,UAAO+Y,SACjB,EAAA5jB,EAAAzP,GAAA,SAAOszB,IAAKpiB,GAAKyJ,IACjB,EAAAlL,EAAAzP,GAAA,UACEoD,MAAOA,EACPwX,OAAQA,EACRC,SAAUA,EACVH,SAAUA,EACVxJ,GAAIA,GAEHlQ,EAAQoU,IAAI,SAACiP,EAAQvJ,GACpB,OACE,EAAArL,EAAAzP,GAAA,UACEe,IAAKD,OAAOga,GACZ1X,MAAOihB,EAAOjhB,MACdyD,yBAA2BlD,OAAQ0gB,EAAO1J,aAKlD,EAAAlL,EAAAzP,GAAA,OAAKuzB,QAAQ,cACX,EAAA9jB,EAAAzP,GAAA,OAAKwzB,UAAU,4BlCq9JhBJ,GkC9+JYtqB,YlCi/JrBvK,GAAQkO,QkCj9JO2mB,GlCq9JT,SAAU50B,EAAQD,GmC7gKxBC,EAAAD,SAAkB80B,OAAA,qCnCohKZ,SAAU70B,EAAQD,EAASH,GAEjC,YAmBA,SAAS4Z,GAAuB7W,GAAO,MAAOA,IAAOA,EAAI3B,WAAa2B,GAAQsL,QAAStL,GAEvF,QAASsM,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2BC,EAAMnP,GAAQ,IAAKmP,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpP,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmP,EAAPnP,EAElO,QAASqP,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIN,WAAU,iEAAoEM,GAAeD,GAAStO,UAAYT,OAAOiP,OAAOD,GAAcA,EAAWvO,WAAa6I,aAAepF,MAAO6K,EAAU5O,YAAY,EAAO+O,UAAU,EAAMhP,cAAc,KAAe8O,IAAYhP,OAAOmP,eAAiBnP,OAAOmP,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAtBjehP,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,GAGT,IAAIoM,GAAe,WAAc,QAASO,GAAiBxC,EAAQnM,GAAS,IAAK,GAAI3C,GAAI,EAAGA,EAAI2C,EAAMX,OAAQhC,IAAK,CAAE,GAAIuR,GAAa5O,EAAM3C,EAAIuR,GAAW3Q,WAAa2Q,EAAW3Q,aAAc,EAAO2Q,EAAW5Q,cAAe,EAAU,SAAW4Q,KAAYA,EAAW5B,UAAW,GAAMlP,OAAOC,eAAeoO,EAAQyC,EAAWjP,IAAKiP,IAAiB,MAAO,UAAUrC,EAAasC,EAAYC,GAAiJ,MAA9HD,IAAYF,EAAiBpC,EAAYhO,UAAWsQ,GAAiBC,GAAaH,EAAiBpC,EAAauC,GAAqBvC,MoCzhKhiB8lB,EAAAr1B,EAAA,IpC6hKIs1B,EAAc1b,EAAuByb,GoC5hKzChkB,EAAArR,EAAA,GAEAkqB,EAAAlqB,EAAA,IpCgiKImqB,EAAUvQ,EAAuBsQ,GoClhK/BsB,EpC+hKc,SAAUzZ,GoC3hK5B,QAAAyZ,GAAaxoB,GAAcqM,EAAA9I,KAAAilB,EAAA,IAAAhR,GAAA/K,EAAAlJ,MAAAilB,EAAAtb,WAAApP,OAAAkQ,eAAAwa,IAAAjrB,KAAAgG,MAAA,OAAAiU,GAkC3B+a,aAAe,SAACxa,GACdA,EAAIC,gBADuB,IAGnB7L,GAAW4L,EAAX5L,MAEJA,IACFqL,EAAKgb,OAAOrmB,EAAOnK,QAxCIwV,EA4C3Bib,aAAe,SAAC1a,GACd,GAAMpa,GAAOoa,EAAI2a,OAAO1wB,MAClB2wB,EAAQnb,EAAK0R,IAAI0J,cAAT,iBAAwCj1B,EAAxC,KAEd,IAAIg1B,EAAO,CACT,GAAM7iB,GAAK6iB,EAAM1iB,aAAa,UAC9BuH,GAAKxX,MAAMqZ,SAASvJ,GAAM,KAAMnS,KAlDT6Z,EAsD3Bqb,WAAa,SAAC9a,GACZ,GAAMzX,GAAQyX,EAAI2a,OAAOI,cAEzB,EAAAR,EAAAjnB,SACE0M,EAAI5L,OACJ7L,EAAMjB,OACFiB,EACC0T,IACC,SAAA2Z,GAAA,2CACuCA,EAAK7d,GAD5C,WAEI6d,EAAKhwB,KAFT,KAGOo1B,UAAUC,UACbrF,EAAKhwB,KACLoa,EAAI5L,OAAOnK,OALf,mBAQDmS,KAAK,IACN,uDArENqD,EAAK1P,OACHmrB,EAAGjzB,EAAMgC,OAAS,IAHKwV,EpCgrK3B,MApJA5K,GAAU4b,EAAezZ,GA4CzBX,EAAaoa,IACX7oB,IAAK,oBACLqC,MAAO,WoChkKP,GAAMkxB,GAAgB3vB,KAAK2lB,IAAIiK,iBAE/B,KAAKD,EAEH,WADA/c,SAAQkH,KAAK,+BAIf9Z,MAAK2lB,IAAIvmB,iBAAiB,eAAgBY,KAAKgvB,cAC/ChvB,KAAK2lB,IAAIvmB,iBAAiB,eAAgBY,KAAKkvB,cAC/ClvB,KAAK2lB,IAAIvmB,iBAAiB,aAAcY,KAAKsvB,WAE7C,IAAMO,IACJ3c,MAAM,EACN4c,QAAS,KACTja,KAAM7V,KAAKvD,MAAMoZ,OAGnB,EAAAkZ,EAAAjnB,SAAU6nB,EAAUE,GAEhB7vB,KAAKvD,MAAMgC,QACbkxB,EAASlxB,MAAQuB,KAAKvD,MAAMgC,UpCqkK9BrC,IAAK,SACLqC,MAAO,SoCzhKDixB,GAAW,GAAAvlB,GAAAnK,IACjBA,MAAK0H,UAAWgoB,MAEZ1vB,KAAK8X,KAEP9X,KAAK8X,IAAI6I,OAGX,IAAM7I,GAAM,GAAI7E,gBACVzB,EAAMxR,KAAKvD,MAAMoZ,KAAK3W,QAAQ,YAAawwB,EAEjD1vB,MAAK8X,IAAMA,EAEXA,EAAIyF,mBAAqB,WACvB,GAAuB,IAAnBzF,EAAIrI,WAAkB,CACxB,IACE,GAAM1S,GAAQ6P,KAAKC,MAAMiL,EAAII,aAC7B/N,GAAK4lB,SAAShzB,GACd,MAAO8qB,IAGT1d,EAAK2N,IAAM,OAIfA,EAAI5E,KAAK,MAAO1B,GAEhBsG,EAAI1E,UpC8hKJhX,IAAK,WACLqC,MAAO,SoC5hKC1B,GAAY,GAAAsY,GAAArV,MACpB,EAAA+uB,EAAAjnB,SACE9H,KAAK2lB,IAAIiK,kBACT7yB,EAAMjB,OACFiB,EACCJ,MAAM,EAAG,GACT8T,IACC,SAAA2Z,GAAA,2CACuCA,EAAK7d,GAD5C,WAEI6d,EAAKhwB,KAFT,KAGOo1B,UAAUC,UACbrF,EAAKhwB,KACLib,EAAK9Q,MAAMmrB,GALf,mBAQD9e,KAAK,IACN,yDpCohKNxU,IAAK,SACLqC,MAAO,WoCjhKC,GAAAkpB,GAAA3nB,IACR,QACE,EAAA8K,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOqa,gBACjB,EAAAllB,EAAAzP,GAAA,SAAOszB,IAAI,+BAAX,qBACA,EAAA7jB,EAAAzP,GAAA,OAAKqa,MAAOC,UAAOsa,qBAAsB3sB,IAAK,SAAAqiB,GAAA,MAAQgC,GAAKhC,IAAMA,KAC/D,EAAA7a,EAAAzP,GAAA,SACE4E,KAAK,OACL7F,KAAK,IACL81B,YAAY,MACZC,aAAa,MACb5jB,GAAG,iCAEL,EAAAzB,EAAAzP,GAAA,MAAI+0B,QAAA,MAEN,EAAAtlB,EAAAzP,GAAA,OAAKuzB,QAAQ,cACX,EAAA9jB,EAAAzP,GAAA,OAAKwzB,UAAU,sBpCoiKhB5J,GoCprKmB9gB,YpCurK5BvK,GAAQkO,QoChiKOmd,GpCoiKT,SAAUprB,EAAQD,EAASH,GAEjC,YACA,IAAIkY,GAAgCE,EAEhCjT,EAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,KqCttKrQ,SAASuD,EAAEuG,GAAG,UAAA1H,EAAiBhF,QAAS,KAAoBC,EAAOA,EAAOD,QAAQ0M,KAA0CqL,EAAA,MAAAzV,MAAA2V,EAAA,kBAAAF,KAAA3X,KAAAJ,EAAAH,EAAAG,EAAAC,GAAA8X,KAAA9X,EAAAD,QAAAiY,KAA5H3V,EAA4J,WAAoR,QAASoK,GAAEvG,EAAEuG,EAAE1L,EAAEkX,OAAI,KAASA,IAAIA,GAAE,GAAI,mBAAoBrF,SAAQA,OAAO1M,EAAEA,EAAE,IAAIuG,KAAMxM,GAAG,oBAAiBgY,EAAjB,YAAAlT,EAAiBkT,MAAIA,EAAE4a,QAAQ5a,EAAEue,WAAW,WAAW/pB,GAAG,SAASA,EAAEmG,OAAOxO,UAAUmB,iBAAiBqN,OAAO1M,GAAGuG,EAAE1L,EAAEkX,IAAqF,QAASA,GAAE/R,GAAG,MAAO5D,QAAO4D,GAAG,IAAIb,QAAQ,YAAY,SAASa,GAAG,MAAOnF,GAAEmF,KAA0D,QAASkS,GAAElS,EAAEuG,EAAE1L,OAAG,KAASA,IAAIA,KAAM,IAAIkX,GAAEhY,EAAE,GAAGiI,EAAEuE,CAAE,IAAGvG,EAAEjG,GAAG,OAAM,CAAGiG,GAAEjG,IAAG,EAAG,kBAAmB2S,QAAO6jB,YAAYxe,EAAE,GAAIrF,QAAO6jB,YAAYhqB,GAAGiqB,SAAQ,EAAGC,YAAW,EAAGrB,OAAOv0B,KAAKkX,EAAE7T,SAASwyB,YAAY,gBAAgBC,gBAAgBpqB,GAAE,GAAG,EAAG1L,EAAG,IAAIN,GAAEyF,EAAE4wB,cAAc7e,EAAG,OAAO/R,GAAEjG,GAAG,KAAKQ,EAAE,QAASJ,GAAE6F,EAAEuG,GAAG,OAAG,KAASA,IAAIA,EAAErI,UAAU8B,EAAE,CAAC,GAAGA,EAAE6wB,SAAS,OAAO7wB,EAAG,IAAG,gBAAiBA,GAAE,SAASpD,MAAM3C,KAAKsM,EAAEuqB,iBAAiB9wB,GAAI,IAAGA,EAAEjE,OAAO,SAASa,MAAM3C,KAAK+F,GAAG,SAAkI,QAASwrB,GAAExrB,EAAEuG,GAAG,GAAIwL,GAAE,oBAAiBxL,EAAjB,YAAA1H,EAAiB0H,IAAEA,GAAGwpB,QAAQxpB,GAAGxM,EAAE,gBAAiBgY,GAAEge,OAAQ,OAAO51B,GAAE6F,GAAG0Q,IAAI,SAAS1Q,GAAG,GAAIuG,GAAEvG,EAAE+wB,mBAAmBl2B,MAAE,KAASkX,EAAE+D,KAAK9V,EAAE2M,aAAavS,GAAG2X,EAAE+D,IAAK,OAAO9V,GAAEF,aAAa1F,EAAES,GAAG,IAAImF,EAAEF,aAAavF,EAAE,YAAY,OAAO,YAAYyF,EAAEF,aAAa,oBAAoB,QAAQE,EAAEF,aAAa,eAAe,OAAO/F,IAAIwM,EAAEvH,UAAU+S,EAAEge,SAAS51B,EAAE,WAAWoM,GAAG+F,QAAQ0kB,GAAGC,EAAEjxB,EAAE+R,EAAEoB,MAAMnT,IAAI,QAAS1E,GAAE0G,GAAGA,EAAEkvB,SAASlvB,EAAEmvB,QAAQnvB,EAAEovB,SAASpvB,EAAEqvB,kBAAkBl3B,EAAE,IAAIC,EAAE,KAAKkS,QAAQ,SAAStM,GAAG,GAAIuG,GAAE1L,EAAEkX,EAAE/R,EAAE+wB,mBAAmBh3B,EAAEiG,IAAIgC,EAAE6G,QAAQkJ,EAAEmc,SAASlsB,EAAE6G,QAAQtO,EAAE,UAAUyH,EAAE9B,MAAMnG,GAAGI,EAAEm3B,EAAEvf,GAAGlD,OAAO,SAAS7O,GAAG,MAAOA,GAAEkuB,SAASlsB,EAAE6G,UAAU,EAAGtO,IAAGgM,EAAEvG,EAAEnF,GAAG02B,cAAcxf,EAAEyf,cAAcj3B,EAAEmE,MAAMnE,EAAEmE,OAAOnE,EAAEk3B,YAAYtuB,QAAQ+O,EAAE3L,EAAE,eAAe1L,KAAK0L,EAAE7H,MAAM7D,EAAE6D,MAAM6H,EAAEmrB,QAAQT,EAAE1qB,GAAE,KAAM0qB,EAAEjxB,EAAEjG,KAAK,QAAS43B,GAAE3xB,EAAEuG,GAAG,GAAI1L,GAAEmF,EAAE+wB,mBAAmBhf,EAAE5X,EAAEm3B,EAAE,iBAAiBz2B,GAAGd,EAAEgY,EAAEjJ,QAAQ5K,SAAS0zB,eAAer3B,GAAE,CAAGgM,GAAEsrB,UAAUC,EAAEv3B,EAAEwX,EAAEhY,EAAE,IAAIgY,EAAE,GAAGxL,EAAEsrB,UAAUjhB,EAAErW,EAAEwX,EAAEhY,EAAE,IAAIgY,EAAE7V,MAAMrB,EAAEqzB,SAAS3nB,EAAEsC,UAAUtC,EAAEsrB,UAAUhb,GAAGtQ,EAAEsrB,UAAU12B,EAAEZ,EAAEwX,EAAE7V,MAAMqK,EAAEsrB,UAAU33B,GAAGqM,EAAEsrB,UAAUz2B,EAAEb,EAAEwX,EAAE,GAAGxL,EAAEsrB,UAAU73B,GAAGgG,EAAE0xB,SAAS72B,EAAEk3B,aAAa,WAAWxrB,EAAEsrB,UAAUtvB,GAAGgE,EAAEmO,iBAAiBuc,EAAEjxB,EAAEuG,EAAEsrB,UAAUtvB,IAAG,IAAKhI,GAAGgM,EAAEmO,iBAAiBna,GAAGA,EAAEm3B,QAAQ,QAAST,GAAEjxB,EAAEuG,OAAG,KAASA,IAAIA,EAAE,SAASvG,EAAE2M,aAAa,kBAAkB3M,EAAE+wB,mBAAmBxqB,EAAE,kBAAkB,gBAAgB,SAAS,IAAIvG,EAAEF,aAAa,gBAAgByG,GAAG,QAASyqB,GAAEhxB,EAAEuG,EAAE1L,GAAGmF,EAAEF,aAAa,aAAaE,EAAEyxB,YAAYtuB,OAAO,MAAMoD,EAAE,GAAG,OAAO1L,EAAEkB,QAAQiE,EAAEF,aAAa,WAAW,MAAM,QAASkyB,GAAEhyB,GAAG,GAAIuG,GAAEvG,EAAE2M,aAAavS,GAAGS,EAAEm3B,EAAEla,IAAIka,EAAEla,KAAK,GAAIpL,QAAOwG,cAAe,KAAI3M,EAAE,OAAM,CAAGiW,cAAawV,EAAEC,OAAOp3B,EAAE+lB,QAAQ/lB,EAAEq3B,OAAO,WAAW,IAAIr3B,EAAE20B,aAAa3iB,KAAKC,MAAMjS,EAAEsd,cAAc,MAAMnY,GAAGnF,EAAE20B,cAAa,EAAGtd,EAAElS,EAAE,aAAanF,IAAIm3B,EAAEC,MAAMvqB,WAAW,WAAW1H,EAAEtB,QAAQ7D,EAAEsY,KAAK,MAAM5M,EAAEpH,QAAQ,YAAYuN,OAAOqK,mBAAmB/W,EAAEtB,SAAQ,GAAI7D,EAAEwY,SAAS8e,GAA3lG,GAAInyB,GAAE,mBAAoB0M,QAAOnS,GAAGyF,GAAG,aAAajB,KAAKqzB,UAAUC,WAAWryB,GAAG,mBAAmBjB,KAAK3C,OAAOg2B,UAAUE,YAAYv4B,EAAE,SAASiG,OAAG,KAASA,IAAIA,GAAE,EAAI,KAAI0M,OAAOrN,iBAAiB,OAAO,MAAMkzB,cAAcvyB,GAAE,KAAM,MAAMA,IAAI,MAAOA,MAA8NnF,GAAG23B,IAAI,QAAQC,IAAI,OAAOC,IAAI,OAAOC,IAAI,SAASC,IAAI,SAASC,IAAI,UAA+F7wB,EAAE,+CAAygB5H,EAAE,6BAA6B+E,QAAQ,OAAO,KAAKnF,EAAE,GAAGuI,EAAE,GAAGnH,EAAE,GAAGD,EAAE,GAAG0b,EAAE,GAAG3c,EAAE,GAAG0W,EAAE,GAAGkhB,EAAE,GAAGR,EAAE,kBAAkBa,EAAE,GAA22D,OAAO3G,GAAEsH,WAAW/gB,EAAEyZ,EAAEkE,UAAU,SAAS1vB,EAAEuG,GAAG,GAAI1L,GAAE0L,EAAEpH,QAAQ,wBAAwB,OAAQ,OAAO4S,GAAE/R,GAAGb,QAAQ,GAAIqtB,QAAO3xB,GAAG,KAAK,MAAM,oBAAoB0L,EAAEnM,EAAE,QAAQkB,GAAGiL,EAAEnM,EAAE,QAAQkB,GAAE,GAAIiL,EAAEnM,EAAE,QAAQ,SAAS4F,GAAG,GAAI+R,GAAExL,EAAE1L,EAAEmF,EAAE6I,MAAOhO,GAAEk3B,aAAa33B,KAAKmM,GAAGgrB,eAAexf,EAAElX,GAAGk2B,oBAAoB7e,EAAEH,EAAE,eAAexL,KAAKyrB,EAAEjgB,IAAI5X,EAAEm3B,EAAEvf,EAAEgf,oBAAoBpgB,OAAO,SAAS3Q,EAAEuG,GAAG,GAAI1L,IAAG,IAAI0L,EAAEkrB,YAAY5zB,cAAciL,QAAQiJ,EAAErT,MAAMb,cAAe,OAAO0I,GAAE1L,EAAE,kBAAkB,gBAAgB,SAAS,IAAIA,EAAEmF,EAAE4K,OAAOrE,GAAGvG,OAAOsM,QAAQ0kB,MAAMzqB,EAAEnM,EAAE,UAAU,SAAS4F,GAAG,KAAKA,EAAEkxB,SAASlxB,EAAEmxB,QAAQnxB,EAAEoxB,SAAS,CAAC,GAAGpxB,EAAE6I,OAAOkpB,aAAa33B,GAAG,MAAOu3B,GAAE3xB,EAAE6I,OAAO7I,EAAG,KAAI,GAAIuG,GAAEvG,EAAE6I,OAAOhO,MAAE,GAAO0L,EAAEA,EAAEA,EAAEwsB,cAAc,IAAIl4B,EAAE0L,EAAEysB,yBAAyBn4B,EAAEk3B,aAAa33B,GAAG,MAAOu3B,GAAE92B,EAAEmF,MAAMwrB,KrCuzK9gI,SAAU1xB,EAAQD,GsCtzKxBC,EAAAD,SAAkBo2B,cAAA,0CAAAC,qBAAA,mDtC6zKZ,SAAUp2B,EAAQD,EAASH,GAEjC,YACA,IAAIkY,GAAgCC,EAA8BC,EAE9DjT,EAA4B,kBAAXuI,SAAoD,gBAApBA,QAAOC,SAAwB,SAAU5K,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX2K,SAAyB3K,EAAIqH,cAAgBsD,QAAU3K,IAAQ2K,OAAOnM,UAAY,eAAkBwB,KuCn0KrQ,SAASuD,EAAEnF,GAAG,UAAAgE,EAAiBhF,QAAS,KAAoBC,EAAOe,EAAEhB,IAA+CgY,GAAQhY,GAAR+X,EAAA,MAAAzV,MAAA2V,EAAA,kBAAAF,KAAAjH,MAAA9Q,EAAAgY,GAAAD,KAAA9X,EAAAD,QAAAiY,KAApH3V,EAA8K,SAAS6D,GAAgB,QAASnF,KAAI,MAAO6R,QAAOumB,GAAG,GAAI1sB,GAAE/L,OAAO2Q,QAAQ,SAASnL,GAAG,IAAI,GAAInF,GAAE,EAAEA,EAAEiB,UAAUC,OAAOlB,IAAI,CAAC,GAAI0L,GAAEzK,UAAUjB,EAAG,KAAI,GAAIN,KAAKgM,GAAE/L,OAAOS,UAAUC,eAAejB,KAAKsM,EAAEhM,KAAKyF,EAAEzF,GAAGgM,EAAEhM,IAAI,MAAOyF,GAAGA,GAAE2N,6BAA6B,SAAS3N,GAAG,GAAIzF,MAAKwX,EAAE/R,EAAE3F,KAAK2H,EAAEhC,EAAEoN,aAAarT,EAAEiG,EAAEoJ,KAAKpP,EAAEgG,EAAEU,OAAQ,MAAKqR,GAAG/P,GAAGjI,GAAGC,GAAG,KAAM,IAAImf,OAAM,0JAA2J,IAAIhf,GAAEiB,EAAEhB,EAAE8X,EAAE3P,EAAEuvB,EAAE32B,EAAEm2B,EAAEa,GAAGh4B,EAAEJ,EAAEyS,GAAGpR,EAAEpB,EAAEwS,GAAGpS,EAAEL,EAAEuT,MAAM4E,EAAEnY,EAAE6T,cAAcrL,EAAEpI,IAAIiB,EAAE02B,EAAE5zB,SAASg1B,UAAUC,WAAWh5B,EAAE,MAAMA,EAAE,KAAKi5B,WAAWh5B,GAAG,KAAKi5B,WAAWnhB,EAAE9V,OAAO8V,EAAEohB,eAAe,KAAKC,WAAWrhB,EAAE9V,OAAO8V,EAAEshB,WAAW,GAAG,KAAKC,WAAWvhB,EAAE9V,OAAO8V,EAAEwhB,WAAW,KAAKC,WAAW7B,EAAE3yB,QAAQ,sBAAsB,MAAMy0B,WAAW9B,EAAE3yB,QAAQ,iBAAiB,IAAIA,QAAQ,QAAQ,IAAI00B,YAAYtxB,EAAE,KAAKnH,EAAE,MAAMA,EAAE,OAAOyb,GAAG1b,EAAEZ,EAAE+2B,GAAE,EAAG,SAAStxB,EAAEzF,EAAEwX,EAAE/P,EAAEjI,GAAG,IAAIgY,EAAEvD,WAAWuD,EAAE+hB,OAAO,KAAM,IAAI3a,OAAM,oGAAqGte,MAAKy2B,IAAI,SAAStxB,EAAEnF,GAAG6R,OAAOumB,GAAG,UAAUc,WAAWl5B,EAAEm5B,aAAa,OAAO35B,KAAK2F,IAAI0M,OAAOumB,GAAGjzB,EAAE,OAAO,eAAc,IAAKA,EAAEzF,GAAG+2B,GAAE,GAAI5kB,OAAOumB,GAAGjzB,EAAE,QAAQ,QAAQ,SAASA,EAAEnF,GAAG,GAAIN,KAAKyF,GAAE9E,eAAe,cAAcX,EAAE05B,cAAcj0B,EAAEwO,UAAUxO,EAAE9E,eAAe,YAAYX,EAAE25B,YAAYl0B,EAAE8zB,QAAQ9zB,EAAE9E,eAAe,WAAWX,EAAE45B,WAAWn0B,EAAEiW,OAAOjW,EAAE9E,eAAe,WAAWX,EAAE65B,WAAWp0B,EAAEtB,OAAOnE,EAAE85B,eAAer0B,EAAEq0B,iBAAgB,CAAG,IAAItiB,GAAExL,KAAK1L,EAAEmF,EAAEs0B,aAAc,OAAO/tB,MAAKhM,EAAEwX,IAAIA,EAAE/P,KAAK7G,EAAEc,KAAK8V,KAAK7X,EAAEq6B,YAAY,WAAW,GAAG15B,IAAI,IAAI25B,cAAct6B,GAAGK,EAAEwB,QAAQ,CAAC,GAAIiE,GAAEzF,EAAEoV,OAAQkH,GAAE9E,EAAE/P,EAAEhC,EAAEmyB,KAAK,IAAK,QAAO5jB,UAAU,SAASvO,GAAG6W,EAAE9E,EAAE/P,EAAEhC,EAAEmyB,MAAM33B,OAAOC,eAAeuF,EAAE,cAActB,OAAM,OvCq3K35D,SAAU5E,EAAQD,EAASH,GAEjC,YwCn3KO,SAASqU,GAAc0D,GAC5B,MAAOgjB,GAA4BhjB,GAGrC,QAASgjB,GAA6Bxd,GACpC,GAAMyd,GAAUzd,EAAI0d,MAAMC,EAE1B,OAAIF,IAAWA,EAAQ34B,OACd24B,EAAQ,GAGV,KxC22KTl6B,OAAOC,eAAeZ,EAAS,cAC7B6E,OAAO,IAET7E,EwCz3KgBkU,cAFhB,IAAM6mB,GAAoB","file":"v1-bundle-5022006c5140a924af73.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"https://dh-static.mesos.nrk.no/dh-skogbrann-sverige-2018/static/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 5);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/** Virtual DOM Node */\nfunction VNode() {}\n\n/** Global options\n *\t@public\n *\t@namespace options {Object}\n */\nvar options = {\n\n\t/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n */\n\t//syncComponentUpdates: true,\n\n\t/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n */\n\t//vnode(vnode) { }\n\n\t/** Hook invoked after a component is mounted. */\n\t// afterMount(component) { }\n\n\t/** Hook invoked after the DOM is updated with a component's latest render. */\n\t// afterUpdate(component) { }\n\n\t/** Hook invoked immediately before a component is unmounted. */\n\t// beforeUnmount(component) { }\n};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n\treturn h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (opts !== 0) {\n\t\tif (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\t\t\t// set up high order component link\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || opts === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
hello!
, document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n\treturn diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexports.default = preact;\nexports.h = h;\nexports.createElement = h;\nexports.cloneElement = cloneElement;\nexports.Component = Component;\nexports.render = render;\nexports.rerender = rerender;\nexports.options = options;\n//# sourceMappingURL=preact.esm.js.map\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = exports.getScrollTop = exports.getScrollLeft = exports.createUniqueId = exports.bem = undefined;\n\nvar _array = __webpack_require__(9);\n\nvar _bem = __webpack_require__(10);\n\nvar _bem2 = _interopRequireDefault(_bem);\n\nvar _scroll = __webpack_require__(11);\n\nvar _string = __webpack_require__(12);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.bem = _bem2.default;\nexports.createUniqueId = _string.createUniqueId;\nexports.getScrollLeft = _scroll.getScrollLeft;\nexports.getScrollTop = _scroll.getScrollTop;\nexports.toArray = _array.toArray;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction isObject(obj) {\n return null !== obj && 'object' === (typeof obj === 'undefined' ? 'undefined' : _typeof(obj));\n}\n\nmodule.exports = isObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.connect = exports.Provider = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(0);\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n _classCallCheck(this, Provider);\n\n return _possibleConstructorReturn(this, (Provider.__proto__ || Object.getPrototypeOf(Provider)).apply(this, arguments));\n }\n\n _createClass(Provider, [{\n key: 'getChildContext',\n value: function getChildContext() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['children']);\n\n return { __CTX__: props };\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children[0];\n }\n }]);\n\n return Provider;\n}(_preact.Component);\n\nProvider.displayName = 'Provider';\n\nfunction connect(mapContextToProps) {\n return function (wrappedComponent) {\n var Connected = function (_Component2) {\n _inherits(Connected, _Component2);\n\n function Connected() {\n var _ref;\n\n var _temp, _this2, _ret;\n\n _classCallCheck(this, Connected);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = Connected.__proto__ || Object.getPrototypeOf(Connected)).call.apply(_ref, [this].concat(args))), _this2), _this2.mapContextToProps = function (ctx) {\n return mapContextToProps ? mapContextToProps(ctx) : ctx;\n }, _temp), _possibleConstructorReturn(_this2, _ret);\n }\n\n _createClass(Connected, [{\n key: 'render',\n value: function render() {\n return (0, _preact.h)(wrappedComponent, _extends({}, this.mapContextToProps(this.context['__CTX__']), this.props));\n }\n }]);\n\n return Connected;\n }(_preact.Component);\n\n Connected.displayName = 'connect(' + (wrappedComponent.displayName || wrappedComponent.name || 'Component') + ')';\n return Connected;\n };\n}\n\nexports.Provider = Provider;\nexports.connect = connect;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"dh-skogbrann-sverige-2018-root\",\"app\":\"dh-skogbrann-sverige-2018-app\",\"app__header\":\"dh-skogbrann-sverige-2018-app__header\",\"app__form\":\"dh-skogbrann-sverige-2018-app__form\",\"app__mapWrapper\":\"dh-skogbrann-sverige-2018-app__mapWrapper\",\"app__footer\":\"dh-skogbrann-sverige-2018-app__footer\",\"app__sources\":\"dh-skogbrann-sverige-2018-app__sources\"};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(6);\nmodule.exports = __webpack_require__(7);\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable */\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* global __HOT__ */\n\n// @jsx h\n\nvar _domready = __webpack_require__(8);\n\nvar _domready2 = _interopRequireDefault(_domready);\n\nvar _preact = __webpack_require__(0);\n\nvar _dhUtils = __webpack_require__(1);\n\nvar _errorReporting = __webpack_require__(13);\n\nvar _App = __webpack_require__(15);\n\nvar _App2 = __webpack_require__(4);\n\nvar _dhAnalyticsUtils = __webpack_require__(39);\n\nvar _getContextId = __webpack_require__(40);\n\nvar _provider = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nwindow[_App2.root] = window[_App2.root] || {};\n\nfunction init() {\n findElements(_App2.root).forEach(function (el) {\n el.id = (0, _dhUtils.createUniqueId)();\n window[_App2.root][el.id] = true;\n\n // Extract values sent from server\n var name = el.getAttribute('data-name');\n var preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'));\n var errorTrackingEnabled = el.getAttribute('data-error-tracking-enabled') === 'true';\n\n // setup error reporting\n var simpleErrorReport = (0, _errorReporting.createErrorReporter)(name, errorTrackingEnabled);\n simpleErrorReport.listenAndCatch();\n\n // Extract metadata required to create google analytics tracker\n var gaPropertyId = el.getAttribute('data-ga-property-id');\n var metadata = JSON.parse(el.getAttribute('data-metadata'));\n var title = metadata.title,\n selfId = metadata.selfId,\n published = metadata.published;\n\n // create google analytics tracker\n\n var googleAnalyticsTracker = (0, _dhAnalyticsUtils.createGoogleAnalyticsTracker)({\n name: 'dh',\n gaPropertyId: gaPropertyId,\n self: {\n id: selfId,\n title: title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: (0, _getContextId.getContextId)(document.location.href)\n }\n });\n\n var sendError = function sendError(message) {\n simpleErrorReport.sendErrorReport({ message: message });\n };\n\n var sendGaEvent = function sendGaEvent(eventObj) {\n googleAnalyticsTracker.sendEvent(_extends({\n category: 'dh-modul-' + name\n }, eventObj));\n };\n\n // ... and render with the exact same props as on server\n (0, _preact.render)((0, _preact.h)(\n _provider.Provider,\n { sendGaEvent: sendGaEvent, sendError: sendError },\n (0, _preact.h)(_App.App, preloadedState)\n ), el, el.firstChild);\n\n // Enable webpack hot-reloading\n if (false) {\n // Reload and re-render preact application\n module.hot.accept('./client', function () {\n var _require = require('./components/App'),\n App = _require.App;\n\n var _require2 = require('../lib/provider'),\n CustomProvider = _require2.Provider;\n\n (0, _preact.render)((0, _preact.h)(\n CustomProvider,\n { sendGaEvent: sendGaEvent, sendError: sendError },\n (0, _preact.h)(App, preloadedState)\n ), el, el.firstChild);\n });\n }\n });\n}\n\nif (false) {\n require('preact/debug');\n}\n\nfunction findElements(className) {\n return (0, _dhUtils.toArray)(document.getElementsByClassName(className)).filter(function (el) {\n return !isInitialized(el, className);\n });\n}\n\nfunction isInitialized(el, className) {\n return el.id && window[className][el.id];\n}\n\n(0, _domready2.default)(init);\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (true) module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toArray = toArray;\nfunction toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexports.default = function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return (typeof modifier === 'undefined' ? 'undefined' : _typeof(modifier)) === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getScrollLeft = getScrollLeft;\nexports.getScrollTop = getScrollTop;\nfunction getScrollLeft() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nfunction getScrollTop() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || 0;\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUniqueId = createUniqueId;\nfunction createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createErrorReporter = createErrorReporter;\n\nvar _dhSimpleErrorReport = __webpack_require__(14);\n\nfunction createErrorReporter(name, isErrorReportingEnabled) {\n return new _dhSimpleErrorReport.SimpleErrorReport({\n name: name,\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n });\n}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : n(e[\"simple-error-report\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n var n = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var r = function () {\n function e() {\n !function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.register = [];\n }return n(e, [{ key: \"addErrorToRegister\", value: function value(e) {\n this.register.push({ time: new Date(), message: e });\n } }, { key: \"isInRegisterWithinRange\", value: function value(e, n) {\n return this.register.filter(function (r) {\n return r.message === e && new Date() - r.time < n;\n }).length > 0;\n } }]), e;\n }(),\n t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var r = arguments[n];for (var t in r) {\n Object.prototype.hasOwnProperty.call(r, t) && (e[t] = r[t]);\n }\n }return e;\n },\n i = function () {\n function e(e, n) {\n for (var r = 0; r < n.length; r++) {\n var t = n[r];t.enumerable = t.enumerable || !1, t.configurable = !0, \"value\" in t && (t.writable = !0), Object.defineProperty(e, t.key, t);\n }\n }return function (n, r, t) {\n return r && e(n.prototype, r), t && e(n, t), n;\n };\n }();var o = [],\n s = function () {\n function e(n) {\n var t = n.name,\n i = n.url,\n s = n.dryRun,\n a = void 0 === s || s,\n u = n.parseStack;!function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.name = t, this.url = i, this.errorRegister = new r(), this.dryRun = a, u && (this.parseStack = u), o.push(this.name);\n }return i(e, [{ key: \"listenAndCatch\", value: function value() {\n var e = this;o.length <= 1 && (window.addEventListener(\"error\", function (n) {\n var r = n.message,\n i = n.filename,\n o = n.lineno,\n s = n.colno,\n a = { message: r };\"\" !== i && (a.url = i), o > 0 && (a.line = o), s > 0 && (a.column = s), n.error && \"function\" == typeof e.parseStack ? e.parseStack(n.error).then(function (n) {\n e.sendErrorReport(t({}, a, { stackTrace: n }));\n }) : e.sendErrorReport(a);\n }), window.addEventListener(\"unhandledrejection\", function (n) {\n e.sendErrorReport({ message: \"Unhandled Promise Rejection: \" + n.reason });\n }));\n } }, { key: \"sendErrorReport\", value: function value(e) {\n var n, r, t;this.dryRun ? \"undefined\" != typeof console && console.log(\"Dry run: \" + JSON.stringify(e)) : this.errorRegister.isInRegisterWithinRange(e.message, 500) || (this.errorRegister.addErrorToRegister(e.message), n = this.url + \"/\" + this.name, r = e, (t = new XMLHttpRequest()).open(\"POST\", n), t.setRequestHeader(\"Content-Type\", \"application/json\"), t.send(JSON.stringify(r)));\n } }]), e;\n }();e.SimpleErrorReport = s, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.App = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _superagent = __webpack_require__(16);\n\nvar _superagent2 = _interopRequireDefault(_superagent);\n\nvar _provider = __webpack_require__(3);\n\nvar _Info = __webpack_require__(22);\n\nvar _Info2 = _interopRequireDefault(_Info);\n\nvar _Map = __webpack_require__(24);\n\nvar _Map2 = _interopRequireDefault(_Map);\n\nvar _Select = __webpack_require__(34);\n\nvar _Select2 = _interopRequireDefault(_Select);\n\nvar _SuggestSearch = __webpack_require__(36);\n\nvar _SuggestSearch2 = _interopRequireDefault(_SuggestSearch);\n\nvar _App2 = __webpack_require__(4);\n\nvar _App3 = _interopRequireDefault(_App2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable promise/always-return */\n\nvar _App = function (_Component) {\n _inherits(_App, _Component);\n\n function _App() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, _App);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = _App.__proto__ || Object.getPrototypeOf(_App)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n municipalityId: '1103',\n municipalityName: 'Stavanger',\n fires: null,\n municipality: null,\n fireName: 'Enskogen'\n }, _this.handleSubmit = function (evt) {\n evt.preventDefault();\n }, _this.handleSelectMunicipality = function (municipalityId, municipalityName) {\n _this.setState({ municipalityId: municipalityId, municipalityName: municipalityName });\n }, _this.handleFireSelectBlur = function (evt) {\n _this.setState({ fireName: evt.target.value || null });\n }, _this.handleFireSelectChange = function (evt) {\n _this.setState({ fireName: evt.target.value || null });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(_App, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n _superagent2.default.get(this.props.api.baseUrl + '/fires').then(function (res) {\n _this2.setState({ fires: res.body });\n }).catch(function (err) {\n console.log(err);\n });\n\n this.loadMunicipality();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (prevState.municipalityId !== this.state.municipalityId) {\n this.loadMunicipality();\n }\n }\n }, {\n key: 'loadMunicipality',\n value: function loadMunicipality() {\n var _this3 = this;\n\n var municipalityId = this.state.municipalityId;\n\n\n this.setState({ municipality: null });\n\n if (!municipalityId) {\n return;\n }\n\n _superagent2.default.get(this.props.api.baseUrl + '/municipality/' + municipalityId).then(function (res) {\n _this3.setState({ municipality: res.body });\n }).catch(function (err) {\n console.log(err);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _state = this.state,\n municipality = _state.municipality,\n municipalityName = _state.municipalityName,\n fires = _state.fires,\n fireName = _state.fireName;\n\n var fireMatches = fires ? fires.filter(function (fire) {\n return fire.id === fireName;\n }) : [];\n var currentFire = fireMatches[0] || null;\n\n return (0, _preact.h)(\n 'section',\n { 'class': _App3.default.app },\n (0, _preact.h)(\n 'header',\n { 'class': _App3.default.app__header },\n (0, _preact.h)(\n 'form',\n { 'class': _App3.default.app__form, onSubmit: this.handleSubmit },\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_SuggestSearch2.default, {\n ajax: this.props.api.baseUrl + '/municipalities?q={{value}}',\n onSelect: this.handleSelectMunicipality,\n value: municipalityName\n })\n ),\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_Select2.default, {\n disabled: this.state.municipalityId === null,\n id: 'dh-skogbrann-select',\n label: 'Velg skogbrann',\n value: this.state.fireName,\n onBlur: this.handleFireSelectBlur,\n onChange: this.handleFireSelectChange,\n options: fires ? fires.map(function (fire, idx) {\n return {\n value: fire.id,\n label: 'Brannen i ' + fire.id\n };\n }) : []\n })\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': _App3.default.app__mapWrapper },\n (0, _preact.h)(_Map2.default, {\n accessToken: this.props.mapbox.accessToken,\n fires: this.state.fires,\n municipality: this.state.municipality,\n fireName: this.state.fireName\n })\n ),\n municipality && currentFire && (0, _preact.h)(_Info2.default, {\n municipalityName: municipalityName,\n municipality: municipality,\n fireName: fireName,\n fire: currentFire\n }),\n (0, _preact.h)(\n 'footer',\n { 'class': _App3.default.app__footer },\n (0, _preact.h)(\n 'div',\n { 'class': _App3.default.app__sources },\n 'KILDER: Copernicus EMS, SSB, Kartverket'\n )\n )\n );\n }\n }]);\n\n return _App;\n}(_preact.Component);\n\n/*\nconst mapContextToProps = context => ({\n ...context,\n sendCustomGaEvent: () => context.sendEvent({ action: 'my custom event action' })\n})\n*/\n\nvar connector = (0, _provider.connect)();\n// const connector = connect(mapContextToProps)\nvar App = exports.App = connector(_App);\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self !== 'undefined') {\n // Web Worker\n root = self;\n} else {\n // Other environments\n console.warn(\"Using browser-only version of superagent in non-browser environment\");\n root = undefined;\n}\n\nvar Emitter = __webpack_require__(17);\nvar RequestBase = __webpack_require__(18);\nvar isObject = __webpack_require__(2);\nvar ResponseBase = __webpack_require__(19);\nvar Agent = __webpack_require__(21);\n\n/**\n * Noop.\n */\n\nfunction noop() {};\n\n/**\n * Expose `request`.\n */\n\nvar request = exports = module.exports = function (method, url) {\n // callback\n if ('function' == typeof url) {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest && (!root.location || 'file:' != root.location.protocol || !root.ActiveXObject)) {\n return new XMLHttpRequest();\n } else {\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch (e) {}\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch (e) {}\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch (e) {}\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch (e) {}\n }\n throw Error(\"Browser-only version of superagent could not find XHR\");\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim ? function (s) {\n return s.trim();\n} : function (s) {\n return s.replace(/(^\\s*|\\s*$)/g, '');\n};\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val != null) {\n if (Array.isArray(val)) {\n val.forEach(function (v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (var subkey in val) {\n pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]);\n }\n } else {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(val));\n }\n } else if (val === null) {\n pairs.push(encodeURIComponent(key));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos == -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return (/[\\/+]json($|[^-\\w])/.test(mime)\n );\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = this.req.method != 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n this._setStatusProperties(status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (null === this.text && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method != 'HEAD' ? this._parseBody(this.text ? this.text : this.xhr.response) : null;\n }\n}\n\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n var parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n return parse && str && (str.length || str instanceof Object) ? parse(str) : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function () {\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', function () {\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch (e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n var new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n }\n } catch (custom_err) {\n new_err = custom_err; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\nEmitter(Request.prototype);\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function (user, pass, options) {\n if (1 === arguments.length) pass = '';\n if ((typeof pass === 'undefined' ? 'undefined' : _typeof(pass)) === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n if (!options) {\n options = {\n type: 'function' === typeof btoa ? 'basic' : 'auto'\n };\n }\n\n var encoder = function encoder(string) {\n if ('function' === typeof btoa) {\n return btoa(string);\n }\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function (val) {\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function () {\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function () {\n console.warn(\"This is not supported in browser version of superagent\");\n return this;\n};\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.pipe = Request.prototype.write = function () {\n throw Error(\"Streaming is not supported in browser version of superagent\");\n};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nRequest.prototype._isHost = function _isHost(obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && 'object' === (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn(\"Warning: .end() was called twice. This is not supported in superagent\");\n }\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n return this._end();\n};\n\nRequest.prototype._end = function () {\n var self = this;\n var xhr = this.xhr = request.getXHR();\n var data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = function () {\n var readyState = xhr.readyState;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n if (4 != readyState) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try {\n status = xhr.status;\n } catch (e) {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function handleProgress(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = direction;\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n try {\n xhr.onprogress = handleProgress.bind(null, 'download');\n if (xhr.upload) {\n xhr.upload.onprogress = handleProgress.bind(null, 'upload');\n }\n } catch (e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n\n if (this.header.hasOwnProperty(field)) xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\nrequest.agent = function () {\n return new Agent();\n};\n\n[\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"].forEach(function (method) {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n var req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype['delete'];\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function (url, data, fn) {\n var req = request('GET', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = function (url, data, fn) {\n var req = request('HEAD', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = function (url, data, fn) {\n var req = request('OPTIONS', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function (url, data, fn) {\n var req = request('PATCH', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = function (url, data, fn) {\n var req = request('POST', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = function (url, data, fn) {\n var req = request('PUT', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\r\n * Expose `Emitter`.\r\n */\n\nif (true) {\n module.exports = Emitter;\n}\n\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n return this;\n};\n\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1),\n callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isObject = __webpack_require__(2);\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in RequestBase.prototype) {\n obj[key] = RequestBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function _clearTimeout() {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function parse(fn) {\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function (val) {\n this._responseType = val;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function serialize(fn) {\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function timeout(options) {\n if (!options || 'object' !== (typeof options === 'undefined' ? 'undefined' : _typeof(options))) {\n this._timeout = options;\n this._responseTimeout = 0;\n return this;\n }\n\n for (var option in options) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n default:\n console.warn(\"Unknown timeout option\", option);\n }\n }\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function retry(count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\nvar ERROR_CODES = ['ECONNRESET', 'ETIMEDOUT', 'EADDRINFO', 'ESOCKETTIMEDOUT'];\n\n/**\n * Determine if a request should be retried.\n * (Borrowed from segmentio/superagent-retry)\n *\n * @param {Error} err\n * @param {Response} [res]\n * @returns {Boolean}\n */\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch (e) {\n console.error(e);\n }\n }\n if (res && res.status && res.status >= 500 && res.status != 501) return true;\n if (err) {\n if (err.code && ~ERROR_CODES.indexOf(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code == 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function () {\n\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function then(resolve, reject) {\n if (!this._fullfilledPromise) {\n var self = this;\n if (this._endCalled) {\n console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\");\n }\n this._fullfilledPromise = new Promise(function (innerResolve, innerReject) {\n self.end(function (err, res) {\n if (err) innerReject(err);else innerResolve(res);\n });\n });\n }\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype['catch'] = function (cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function use(fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if ('function' !== typeof cb) throw Error(\"Callback required\");\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, val) {\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n */\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name\n * @param {String|Blob|File|Buffer|fs.ReadStream} val\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function (name, val) {\n // name should be either a string or an object.\n if (null === name || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n this.field(key, name[key]);\n }\n return this;\n }\n\n if (Array.isArray(val)) {\n for (var i in val) {\n this.field(name, val[i]);\n }\n return this;\n }\n\n // val should be defined now\n if (null === val || undefined === val) {\n throw new Error('.field(name, val) val can not be empty');\n }\n if ('boolean' === typeof val) {\n val = '' + val;\n }\n this._getFormData().append(name, val);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n this._aborted = true;\n this.xhr && this.xhr.abort(); // browser\n this.req && this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer':\n // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', 'Bearer ' + user);\n break;\n }\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on == undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does noting in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function (n) {\n if ('number' !== typeof n) {\n throw TypeError(\"Invalid argument\");\n }\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.send = function (data) {\n var isObj = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObj && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data ? this._data + '&' + data : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObj || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function () {\n var query = this._query.join('&');\n if (query) {\n this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query;\n }\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n if (index >= 0) {\n var queryArr = this.url.substring(index + 1).split('&');\n if ('function' === typeof this._sort) {\n queryArr.sort(this._sort);\n } else {\n queryArr.sort();\n }\n this.url = this.url.substring(0, index) + '?' + queryArr.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = function () {\n console.trace(\"Unsupported\");\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n var err = new Error(reason + timeout + 'ms exceeded');\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n var self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function () {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function () {\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Module dependencies.\n */\n\nvar utils = __webpack_require__(20);\n\n/**\n * Expose `ResponseBase`.\n */\n\nmodule.exports = ResponseBase;\n\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n obj[key] = ResponseBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct);\n\n // params\n var params = utils.params(ct);\n for (var key in params) {\n this[key] = params[key];\n }this.links = {};\n\n // links\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (err) {\n // ignore\n }\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponseBase.prototype._setStatusProperties = function (status) {\n var type = status / 100 | 0;\n\n // status / class\n this.status = this.statusCode = status;\n this.statusType = type;\n\n // basics\n this.info = 1 == type;\n this.ok = 2 == type;\n this.redirect = 3 == type;\n this.clientError = 4 == type;\n this.serverError = 5 == type;\n this.error = 4 == type || 5 == type ? this.toError() : false;\n\n // sugar\n this.created = 201 == status;\n this.accepted = 202 == status;\n this.noContent = 204 == status;\n this.badRequest = 400 == status;\n this.unauthorized = 401 == status;\n this.notAcceptable = 406 == status;\n this.forbidden = 403 == status;\n this.notFound = 404 == status;\n this.unprocessableEntity = 422 == status;\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nexports.type = function (str) {\n return str.split(/ *; */).shift();\n};\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.params = function (str) {\n return str.split(/ *; */).reduce(function (obj, str) {\n var parts = str.split(/ *= */);\n var key = parts.shift();\n var val = parts.shift();\n\n if (key && val) obj[key] = val;\n return obj;\n }, {});\n};\n\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.parseLinks = function (str) {\n return str.split(/ *, */).reduce(function (obj, str) {\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n return obj;\n }, {});\n};\n\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\nexports.cleanHeader = function (header, changesOrigin) {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header['host'];\n // secuirty\n if (changesOrigin) {\n delete header['authorization'];\n delete header['cookie'];\n }\n return header;\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Agent() {\n this._defaults = [];\n}\n\n[\"use\", \"on\", \"once\", \"set\", \"query\", \"type\", \"accept\", \"auth\", \"withCredentials\", \"sortQuery\", \"retry\", \"ok\", \"redirects\", \"timeout\", \"buffer\", \"serialize\", \"parse\", \"ca\", \"key\", \"pfx\", \"cert\"].forEach(function (fn) {\n /** Default setting for all requests from this agent */\n Agent.prototype[fn] = function () /*varargs*/{\n this._defaults.push({ fn: fn, arguments: arguments });\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach(function (def) {\n req[def.fn].apply(req, def.arguments);\n });\n};\n\nmodule.exports = Agent;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dhUtils = __webpack_require__(1);\n\nvar _preact = __webpack_require__(0);\n\nvar _index = __webpack_require__(23);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nfunction formatAreaDiff(a, b) {\n return (b / a * 100).toFixed().replace('.', ',') + ' %';\n}\n\nfunction formatFootballFields(num) {\n return '' + Math.round(num).toLocaleString().replace(',', ' ').replace('.', ' ');\n}\n\nfunction formatArea(num) {\n return '' + num.toFixed(1).replace('.', ',');\n}\n\nvar Info = function (_Component) {\n _inherits(Info, _Component);\n\n function Info() {\n _classCallCheck(this, Info);\n\n return _possibleConstructorReturn(this, (Info.__proto__ || Object.getPrototypeOf(Info)).apply(this, arguments));\n }\n\n _createClass(Info, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n municipality = _props.municipality,\n municipalityName = _props.municipalityName,\n fire = _props.fire,\n fireName = _props.fireName;\n\n\n return (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info },\n (0, _preact.h)(\n 'h3',\n { 'class': _index2.default.info__title },\n 'Arealet av brannen i ',\n (0, _preact.h)(\n 'strong',\n null,\n fireName\n ),\n ' tilsvarer'\n ),\n municipality.developed && (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__section },\n (0, _preact.h)('div', { 'class': (0, _dhUtils.bem)(_index2.default.info__icon, 'developed') }),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__text },\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'strong',\n null,\n formatAreaDiff(municipality.developed.m2, fire.polygon.properties.m2)\n ),\n ' ',\n 'av by og tettsted i ',\n municipalityName\n )\n )\n ),\n municipality.forest && (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__section },\n (0, _preact.h)('div', { 'class': (0, _dhUtils.bem)(_index2.default.info__icon, 'forest') }),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__text },\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'strong',\n null,\n formatAreaDiff(municipality.forest.m2, fire.polygon.properties.m2)\n ),\n ' ',\n 'av skogsarealet i ',\n municipalityName\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__section },\n (0, _preact.h)('div', { 'class': (0, _dhUtils.bem)(_index2.default.info__icon, 'football') }),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__text },\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'strong',\n null,\n formatFootballFields(fire.polygon.properties.footballFields),\n ' '\n ),\n ' ',\n 'fotballbaner'\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__section },\n (0, _preact.h)('div', { 'class': (0, _dhUtils.bem)(_index2.default.info__icon, 'fire') }),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.info__text },\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'strong',\n null,\n formatArea(fire.polygon.properties.km2),\n ' km\\xB2',\n ' '\n ),\n ' ',\n 'hittil ber\\xF8rt av brannen'\n )\n )\n )\n );\n }\n }]);\n\n return Info;\n}(_preact.Component);\n\nexports.default = Info;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"info\":\"dh-skogbrann-sverige-2018-info\",\"info__title\":\"dh-skogbrann-sverige-2018-info__title\",\"info__section\":\"dh-skogbrann-sverige-2018-info__section\",\"info__icon\":\"dh-skogbrann-sverige-2018-info__icon\",\"info__icon--developed\":\"dh-skogbrann-sverige-2018-info__icon--developed\",\"info__icon--forest\":\"dh-skogbrann-sverige-2018-info__icon--forest\",\"info__icon--football\":\"dh-skogbrann-sverige-2018-info__icon--football\",\"info__icon--fire\":\"dh-skogbrann-sverige-2018-info__icon--fire\",\"info__text\":\"dh-skogbrann-sverige-2018-info__text\"};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _geojsonExtent = __webpack_require__(25);\n\nvar _geojsonExtent2 = _interopRequireDefault(_geojsonExtent);\n\nvar _preact = __webpack_require__(0);\n\nvar _helpers = __webpack_require__(32);\n\nvar _index = __webpack_require__(33);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\nvar BBOX = [[4.7, 58], [31, 71.2]];\n\nvar SuggestSearch = function (_Component) {\n _inherits(SuggestSearch, _Component);\n\n function SuggestSearch() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, SuggestSearch);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = SuggestSearch.__proto__ || Object.getPrototypeOf(SuggestSearch)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n mapboxLoaded: false\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(SuggestSearch, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.initializeMap();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.map && !prevProps.fires && this.props.fires) {\n this.drawFires();\n }\n\n if (this.map && !prevProps.municipality && this.props.municipality) {\n this.drawMunicipality();\n this.drawSelectedFire();\n }\n\n if (this.map && prevProps.municipality && this.props.municipality) {\n if (prevProps.municipality.id !== this.props.municipality.id) {\n this.drawMunicipality();\n this.drawSelectedFire();\n }\n }\n\n if (this.map && prevProps.fireName !== this.props.fireName) {\n this.drawSelectedFire();\n }\n }\n }, {\n key: 'initializeMap',\n value: function initializeMap() {\n var _this2 = this;\n\n window.require(['https://api.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.js'], function (mapboxgl) {\n // console.log('[map]', 'mapboxgl.initialize')\n _this2.mapboxgl = mapboxgl;\n _this2.mapboxgl.accessToken = _this2.props.accessToken;\n\n _this2.map = new mapboxgl.Map({\n container: _this2.elm,\n style: 'mapbox://styles/nrk/cjf2taj8r1dnj2tk8hsd0mhaf'\n // zoomControl: true\n });\n\n // Setup controls\n _this2.map.addControl(new mapboxgl.NavigationControl({\n showCompass: false\n }), 'top-left');\n _this2.map.dragRotate.disable();\n _this2.map.touchZoomRotate.disableRotation();\n\n _this2.map.fitBounds(BBOX, {\n padding: { top: 10, bottom: 10, left: 10, right: 10 },\n duration: 0\n });\n\n _this2.map.on('load', function () {\n _this2.setState({ mapboxLoaded: true });\n // console.log('[map]', 'mapboxgl.load')\n\n _this2.drawFires();\n _this2.drawMunicipality();\n _this2.drawSelectedFire();\n });\n });\n }\n }, {\n key: 'drawFires',\n value: function drawFires() {\n var _this3 = this;\n\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw fires')\n return;\n }\n\n var data = this.props.fires;\n\n // console.log('[map]', 'drawFires')\n\n if (data) {\n data.forEach(function (fire, idx) {\n _this3.map.addLayer({\n id: 'fire' + String(idx),\n type: 'fill',\n source: {\n type: 'geojson',\n data: fire.polygon\n },\n layout: {},\n paint: {\n 'fill-color': '#E51C30',\n 'fill-opacity': 0.8\n }\n });\n });\n }\n }\n }, {\n key: 'drawMunicipality',\n value: function drawMunicipality() {\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw municipality')\n return;\n }\n\n // console.log('[map]', 'drawMunicipality')\n\n var data = this.props.municipality;\n\n if (data) {\n if (this.map.getLayer('municipality')) {\n this.map.removeLayer('municipality');\n }\n\n if (this.map.getSource('municipality')) {\n this.map.removeSource('municipality');\n }\n\n this.map.addLayer({\n id: 'municipality',\n type: 'line',\n source: {\n type: 'geojson',\n data: data.polygon\n },\n layout: {},\n paint: {\n 'line-color': '#171A1B',\n 'line-width': 2\n }\n });\n\n var bounds = new this.mapboxgl.LngLatBounds((0, _geojsonExtent2.default)(data.polygon));\n\n this.map.fitBounds(bounds, {\n padding: { top: 10, bottom: 10, left: 10, right: 10 }\n });\n }\n }\n }, {\n key: 'drawSelectedFire',\n value: function drawSelectedFire() {\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw selected fire')\n return;\n }\n\n // console.log('[map]', 'drawSelectedFire')\n\n var _props = this.props,\n fires = _props.fires,\n municipality = _props.municipality,\n fireName = _props.fireName;\n\n\n if (fires && municipality && fireName) {\n var fireMatches = fires.filter(function (fire) {\n return fire.id === fireName;\n });\n\n if (fireMatches.length) {\n var fire = fireMatches[0];\n\n var diff = [fire.centroid.coordinates[0] - municipality.centroid.coordinates[0], fire.centroid.coordinates[1] - municipality.centroid.coordinates[1]];\n\n var movedFirePolygon = (0, _helpers.geojsonTranslate)(fire.polygon, diff);\n\n if (this.map.getLayer('currentFire')) {\n this.map.removeLayer('currentFire');\n }\n\n if (this.map.getSource('currentFire')) {\n this.map.removeSource('currentFire');\n }\n\n this.map.addLayer({\n id: 'currentFire',\n type: 'fill',\n source: {\n type: 'geojson',\n data: movedFirePolygon\n },\n layout: {},\n paint: {\n 'fill-color': '#E51C30',\n 'fill-opacity': 0.8\n }\n });\n\n // const bounds = new this.mapboxgl.LngLatBounds(\n // geojsonExtent(movedFirePolygon)\n // )\n //\n // this.map.fitBounds(bounds, {\n // padding: { top: 40, bottom: 40, left: 40, right: 40 }\n // })\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n return (0, _preact.h)('div', { 'class': _index2.default.map, ref: function ref(elm) {\n return _this4.elm = elm;\n } });\n }\n }]);\n\n return SuggestSearch;\n}(_preact.Component);\n\nexports.default = SuggestSearch;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar geojsonCoords = __webpack_require__(26),\n traverse = __webpack_require__(30),\n extent = __webpack_require__(31);\n\nvar geojsonTypesByDataAttributes = {\n features: ['FeatureCollection'],\n coordinates: ['Point', 'MultiPoint', 'LineString', 'MultiLineString', 'Polygon', 'MultiPolygon'],\n geometry: ['Feature'],\n geometries: ['GeometryCollection']\n};\n\nvar dataAttributes = Object.keys(geojsonTypesByDataAttributes);\n\nmodule.exports = function (_) {\n return getExtent(_).bbox();\n};\n\nmodule.exports.polygon = function (_) {\n return getExtent(_).polygon();\n};\n\nmodule.exports.bboxify = function (_) {\n return traverse(_).map(function (value) {\n if (!value) return;\n\n var isValid = dataAttributes.some(function (attribute) {\n if (value[attribute]) {\n return geojsonTypesByDataAttributes[attribute].indexOf(value.type) !== -1;\n }\n return false;\n });\n\n if (isValid) {\n value.bbox = getExtent(value).bbox();\n this.update(value);\n }\n });\n};\n\nfunction getExtent(_) {\n var bbox = [Infinity, Infinity, -Infinity, -Infinity],\n ext = extent(),\n coords = geojsonCoords(_);\n for (var i = 0; i < coords.length; i++) {\n ext.include(coords[i]);\n }return ext;\n}\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar geojsonNormalize = __webpack_require__(27),\n geojsonFlatten = __webpack_require__(28),\n flatten = __webpack_require__(29);\n\nmodule.exports = function (_) {\n if (!_) return [];\n var normalized = geojsonFlatten(geojsonNormalize(_)),\n coordinates = [];\n normalized.features.forEach(function (feature) {\n if (!feature.geometry) return;\n coordinates = coordinates.concat(flatten(feature.geometry.coordinates));\n });\n return coordinates;\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = normalize;\n\nvar types = {\n Point: 'geometry',\n MultiPoint: 'geometry',\n LineString: 'geometry',\n MultiLineString: 'geometry',\n Polygon: 'geometry',\n MultiPolygon: 'geometry',\n GeometryCollection: 'geometry',\n Feature: 'feature',\n FeatureCollection: 'featurecollection'\n};\n\n/**\n * Normalize a GeoJSON feature into a FeatureCollection.\n *\n * @param {object} gj geojson data\n * @returns {object} normalized geojson data\n */\nfunction normalize(gj) {\n if (!gj || !gj.type) return null;\n var type = types[gj.type];\n if (!type) return null;\n\n if (type === 'geometry') {\n return {\n type: 'FeatureCollection',\n features: [{\n type: 'Feature',\n properties: {},\n geometry: gj\n }]\n };\n } else if (type === 'feature') {\n return {\n type: 'FeatureCollection',\n features: [gj]\n };\n } else if (type === 'featurecollection') {\n return gj;\n }\n}\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction flatten(gj) {\n switch (gj && gj.type || null) {\n case 'FeatureCollection':\n gj.features = gj.features.reduce(function (mem, feature) {\n return mem.concat(flatten(feature));\n }, []);\n return gj;\n case 'Feature':\n if (!gj.geometry) return gj;\n return flatten(gj.geometry).map(function (geom) {\n return {\n type: 'Feature',\n properties: JSON.parse(JSON.stringify(gj.properties)),\n geometry: geom\n };\n });\n case 'MultiPoint':\n return gj.coordinates.map(function (_) {\n return { type: 'Point', coordinates: _ };\n });\n case 'MultiPolygon':\n return gj.coordinates.map(function (_) {\n return { type: 'Polygon', coordinates: _ };\n });\n case 'MultiLineString':\n return gj.coordinates.map(function (_) {\n return { type: 'LineString', coordinates: _ };\n });\n case 'GeometryCollection':\n return gj.geometries.map(flatten).reduce(function (memo, geoms) {\n return memo.concat(geoms);\n }, []);\n case 'Point':\n case 'Polygon':\n case 'LineString':\n return [gj];\n }\n}\n\nmodule.exports = flatten;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function flatten(list) {\n return _flatten(list);\n\n function _flatten(list) {\n if (Array.isArray(list) && list.length && typeof list[0] === 'number') {\n return [list];\n }\n return list.reduce(function (acc, item) {\n if (Array.isArray(item) && Array.isArray(item[0])) {\n return acc.concat(_flatten(item));\n } else {\n acc.push(item);\n return acc;\n }\n }, []);\n }\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar traverse = module.exports = function (obj) {\n return new Traverse(obj);\n};\n\nfunction Traverse(obj) {\n this.value = obj;\n}\n\nTraverse.prototype.get = function (ps) {\n var node = this.value;\n for (var i = 0; i < ps.length; i++) {\n var key = ps[i];\n if (!node || !hasOwnProperty.call(node, key)) {\n node = undefined;\n break;\n }\n node = node[key];\n }\n return node;\n};\n\nTraverse.prototype.has = function (ps) {\n var node = this.value;\n for (var i = 0; i < ps.length; i++) {\n var key = ps[i];\n if (!node || !hasOwnProperty.call(node, key)) {\n return false;\n }\n node = node[key];\n }\n return true;\n};\n\nTraverse.prototype.set = function (ps, value) {\n var node = this.value;\n for (var i = 0; i < ps.length - 1; i++) {\n var key = ps[i];\n if (!hasOwnProperty.call(node, key)) node[key] = {};\n node = node[key];\n }\n node[ps[i]] = value;\n return value;\n};\n\nTraverse.prototype.map = function (cb) {\n return walk(this.value, cb, true);\n};\n\nTraverse.prototype.forEach = function (cb) {\n this.value = walk(this.value, cb, false);\n return this.value;\n};\n\nTraverse.prototype.reduce = function (cb, init) {\n var skip = arguments.length === 1;\n var acc = skip ? this.value : init;\n this.forEach(function (x) {\n if (!this.isRoot || !skip) {\n acc = cb.call(this, acc, x);\n }\n });\n return acc;\n};\n\nTraverse.prototype.paths = function () {\n var acc = [];\n this.forEach(function (x) {\n acc.push(this.path);\n });\n return acc;\n};\n\nTraverse.prototype.nodes = function () {\n var acc = [];\n this.forEach(function (x) {\n acc.push(this.node);\n });\n return acc;\n};\n\nTraverse.prototype.clone = function () {\n var parents = [],\n nodes = [];\n\n return function clone(src) {\n for (var i = 0; i < parents.length; i++) {\n if (parents[i] === src) {\n return nodes[i];\n }\n }\n\n if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) === 'object' && src !== null) {\n var dst = copy(src);\n\n parents.push(src);\n nodes.push(dst);\n\n forEach(objectKeys(src), function (key) {\n dst[key] = clone(src[key]);\n });\n\n parents.pop();\n nodes.pop();\n return dst;\n } else {\n return src;\n }\n }(this.value);\n};\n\nfunction walk(root, cb, immutable) {\n var path = [];\n var parents = [];\n var alive = true;\n\n return function walker(node_) {\n var node = immutable ? copy(node_) : node_;\n var modifiers = {};\n\n var keepGoing = true;\n\n var state = {\n node: node,\n node_: node_,\n path: [].concat(path),\n parent: parents[parents.length - 1],\n parents: parents,\n key: path.slice(-1)[0],\n isRoot: path.length === 0,\n level: path.length,\n circular: null,\n update: function update(x, stopHere) {\n if (!state.isRoot) {\n state.parent.node[state.key] = x;\n }\n state.node = x;\n if (stopHere) keepGoing = false;\n },\n 'delete': function _delete(stopHere) {\n delete state.parent.node[state.key];\n if (stopHere) keepGoing = false;\n },\n remove: function remove(stopHere) {\n if (isArray(state.parent.node)) {\n state.parent.node.splice(state.key, 1);\n } else {\n delete state.parent.node[state.key];\n }\n if (stopHere) keepGoing = false;\n },\n keys: null,\n before: function before(f) {\n modifiers.before = f;\n },\n after: function after(f) {\n modifiers.after = f;\n },\n pre: function pre(f) {\n modifiers.pre = f;\n },\n post: function post(f) {\n modifiers.post = f;\n },\n stop: function stop() {\n alive = false;\n },\n block: function block() {\n keepGoing = false;\n }\n };\n\n if (!alive) return state;\n\n function updateState() {\n if (_typeof(state.node) === 'object' && state.node !== null) {\n if (!state.keys || state.node_ !== state.node) {\n state.keys = objectKeys(state.node);\n }\n\n state.isLeaf = state.keys.length == 0;\n\n for (var i = 0; i < parents.length; i++) {\n if (parents[i].node_ === node_) {\n state.circular = parents[i];\n break;\n }\n }\n } else {\n state.isLeaf = true;\n state.keys = null;\n }\n\n state.notLeaf = !state.isLeaf;\n state.notRoot = !state.isRoot;\n }\n\n updateState();\n\n // use return values to update if defined\n var ret = cb.call(state, state.node);\n if (ret !== undefined && state.update) state.update(ret);\n\n if (modifiers.before) modifiers.before.call(state, state.node);\n\n if (!keepGoing) return state;\n\n if (_typeof(state.node) == 'object' && state.node !== null && !state.circular) {\n parents.push(state);\n\n updateState();\n\n forEach(state.keys, function (key, i) {\n path.push(key);\n\n if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);\n\n var child = walker(state.node[key]);\n if (immutable && hasOwnProperty.call(state.node, key)) {\n state.node[key] = child.node;\n }\n\n child.isLast = i == state.keys.length - 1;\n child.isFirst = i == 0;\n\n if (modifiers.post) modifiers.post.call(state, child);\n\n path.pop();\n });\n parents.pop();\n }\n\n if (modifiers.after) modifiers.after.call(state, state.node);\n\n return state;\n }(root).node;\n}\n\nfunction copy(src) {\n if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) === 'object' && src !== null) {\n var dst;\n\n if (isArray(src)) {\n dst = [];\n } else if (isDate(src)) {\n dst = new Date(src.getTime ? src.getTime() : src);\n } else if (isRegExp(src)) {\n dst = new RegExp(src);\n } else if (isError(src)) {\n dst = { message: src.message };\n } else if (isBoolean(src)) {\n dst = new Boolean(src);\n } else if (isNumber(src)) {\n dst = new Number(src);\n } else if (isString(src)) {\n dst = new String(src);\n } else if (Object.create && Object.getPrototypeOf) {\n dst = Object.create(Object.getPrototypeOf(src));\n } else if (src.constructor === Object) {\n dst = {};\n } else {\n var proto = src.constructor && src.constructor.prototype || src.__proto__ || {};\n var T = function T() {};\n T.prototype = proto;\n dst = new T();\n }\n\n forEach(objectKeys(src), function (key) {\n dst[key] = src[key];\n });\n return dst;\n } else return src;\n}\n\nvar objectKeys = Object.keys || function keys(obj) {\n var res = [];\n for (var key in obj) {\n res.push(key);\n }return res;\n};\n\nfunction toS(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isDate(obj) {\n return toS(obj) === '[object Date]';\n}\nfunction isRegExp(obj) {\n return toS(obj) === '[object RegExp]';\n}\nfunction isError(obj) {\n return toS(obj) === '[object Error]';\n}\nfunction isBoolean(obj) {\n return toS(obj) === '[object Boolean]';\n}\nfunction isNumber(obj) {\n return toS(obj) === '[object Number]';\n}\nfunction isString(obj) {\n return toS(obj) === '[object String]';\n}\n\nvar isArray = Array.isArray || function isArray(xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nvar forEach = function forEach(xs, fn) {\n if (xs.forEach) return xs.forEach(fn);else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nforEach(objectKeys(Traverse.prototype), function (key) {\n traverse[key] = function (obj) {\n var args = [].slice.call(arguments, 1);\n var t = new Traverse(obj);\n return t[key].apply(t, args);\n };\n});\n\nvar hasOwnProperty = Object.hasOwnProperty || function (obj, key) {\n return key in obj;\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = Extent;\n\nfunction Extent(bbox) {\n if (!(this instanceof Extent)) {\n return new Extent(bbox);\n }\n this._bbox = bbox || [Infinity, Infinity, -Infinity, -Infinity];\n this._valid = !!bbox;\n}\n\nExtent.prototype.include = function (ll) {\n this._valid = true;\n this._bbox[0] = Math.min(this._bbox[0], ll[0]);\n this._bbox[1] = Math.min(this._bbox[1], ll[1]);\n this._bbox[2] = Math.max(this._bbox[2], ll[0]);\n this._bbox[3] = Math.max(this._bbox[3], ll[1]);\n return this;\n};\n\nExtent.prototype.equals = function (_) {\n var other;\n if (_ instanceof Extent) {\n other = _.bbox();\n } else {\n other = _;\n }\n return this._bbox[0] == other[0] && this._bbox[1] == other[1] && this._bbox[2] == other[2] && this._bbox[3] == other[3];\n};\n\nExtent.prototype.center = function (_) {\n if (!this._valid) return null;\n return [(this._bbox[0] + this._bbox[2]) / 2, (this._bbox[1] + this._bbox[3]) / 2];\n};\n\nExtent.prototype.union = function (_) {\n this._valid = true;\n var other;\n if (_ instanceof Extent) {\n other = _.bbox();\n } else {\n other = _;\n }\n this._bbox[0] = Math.min(this._bbox[0], other[0]);\n this._bbox[1] = Math.min(this._bbox[1], other[1]);\n this._bbox[2] = Math.max(this._bbox[2], other[2]);\n this._bbox[3] = Math.max(this._bbox[3], other[3]);\n return this;\n};\n\nExtent.prototype.bbox = function () {\n if (!this._valid) return null;\n return this._bbox;\n};\n\nExtent.prototype.contains = function (ll) {\n if (!ll) return this._fastContains();\n if (!this._valid) return null;\n var lon = ll[0],\n lat = ll[1];\n return this._bbox[0] <= lon && this._bbox[1] <= lat && this._bbox[2] >= lon && this._bbox[3] >= lat;\n};\n\nExtent.prototype.intersect = function (_) {\n if (!this._valid) return null;\n\n var other;\n if (_ instanceof Extent) {\n other = _.bbox();\n } else {\n other = _;\n }\n\n return !(this._bbox[0] > other[2] || this._bbox[2] < other[0] || this._bbox[3] < other[1] || this._bbox[1] > other[3]);\n};\n\nExtent.prototype._fastContains = function () {\n if (!this._valid) return new Function('return null;');\n var body = 'return ' + this._bbox[0] + '<= ll[0] &&' + this._bbox[1] + '<= ll[1] &&' + this._bbox[2] + '>= ll[0] &&' + this._bbox[3] + '>= ll[1]';\n return new Function('ll', body);\n};\n\nExtent.prototype.polygon = function () {\n if (!this._valid) return null;\n return {\n type: 'Polygon',\n coordinates: [[\n // W, S\n [this._bbox[0], this._bbox[1]],\n // E, S\n [this._bbox[2], this._bbox[1]],\n // E, N\n [this._bbox[2], this._bbox[3]],\n // W, N\n [this._bbox[0], this._bbox[3]],\n // W, S\n [this._bbox[0], this._bbox[1]]]]\n };\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.geojsonTranslate = geojsonTranslate;\nfunction geojsonTranslate(data, diff) {\n switch (data.geometry.type) {\n case 'Polygon':\n return _extends({}, data, {\n geometry: {\n type: 'Polygon',\n coordinates: data.geometry.coordinates.map(function (groupedCoordinates) {\n return groupedCoordinates.map(function (coordinate) {\n return [coordinate[0] - diff[0], coordinate[1] - diff[1]];\n });\n })\n }\n });\n\n case 'MultiPolygon':\n return _extends({}, data, {\n geometry: {\n type: 'MultiPolygon',\n coordinates: data.geometry.coordinates.map(function (groupedCoordinates) {\n return groupedCoordinates.map(function (coordinate) {\n return coordinate.map(function (c) {\n return [c[0] - diff[0], c[1] - diff[1]];\n });\n });\n })\n }\n });\n\n default:\n throw new Error('Unexpected geojson type: ' + data.geometry.type);\n }\n}\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"map\":\"dh-skogbrann-sverige-2018-map\"};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = __webpack_require__(0);\n\nvar _index = __webpack_require__(35);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable jsx-a11y/label-has-associated-control */\n/* eslint-disable jsx-a11y/label-has-for */\n\nvar Select = function (_Component) {\n _inherits(Select, _Component);\n\n function Select() {\n _classCallCheck(this, Select);\n\n return _possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).apply(this, arguments));\n }\n\n _createClass(Select, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n id = _props.id,\n label = _props.label,\n value = _props.value,\n options = _props.options,\n onBlur = _props.onBlur,\n onChange = _props.onChange,\n disabled = _props.disabled;\n\n\n return (0, _preact.h)(\n 'div',\n { 'class': _index2.default.select },\n (0, _preact.h)(\n 'label',\n { 'for': id },\n label\n ),\n (0, _preact.h)(\n 'select',\n {\n value: value,\n onBlur: onBlur,\n onChange: onChange,\n disabled: disabled,\n id: id\n },\n options.map(function (option, idx) {\n return (0, _preact.h)('option', {\n key: String(idx),\n value: option.value,\n dangerouslySetInnerHTML: { __html: option.label }\n });\n })\n ),\n (0, _preact.h)(\n 'svg',\n { viewBox: '0 0 30 30' },\n (0, _preact.h)('use', { xlinkHref: '#nrk-chevron-down' })\n )\n );\n }\n }]);\n\n return Select;\n}(_preact.Component);\n\nexports.default = Select;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"select\":\"dh-skogbrann-sverige-2018-select\"};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _coreInput = __webpack_require__(37);\n\nvar _coreInput2 = _interopRequireDefault(_coreInput);\n\nvar _preact = __webpack_require__(0);\n\nvar _index = __webpack_require__(38);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // @jsx h\n\n/* eslint-disable jsx-a11y/label-has-associated-control */\n/* eslint-disable jsx-a11y/label-has-for */\n\nvar SuggestSearch = function (_Component) {\n _inherits(SuggestSearch, _Component);\n\n function SuggestSearch(props) {\n _classCallCheck(this, SuggestSearch);\n\n var _this = _possibleConstructorReturn(this, (SuggestSearch.__proto__ || Object.getPrototypeOf(SuggestSearch)).call(this));\n\n _this.handleFilter = function (evt) {\n evt.preventDefault();\n\n var target = evt.target;\n\n\n if (target) {\n _this.search(target.value);\n }\n };\n\n _this.handleSelect = function (evt) {\n var name = evt.detail.value;\n var btnEl = _this.elm.querySelector('button[value=\"' + name + '\"]');\n\n if (btnEl) {\n var id = btnEl.getAttribute('data-id');\n _this.props.onSelect(id || null, name);\n }\n };\n\n _this.handleAjax = function (evt) {\n var items = evt.detail.responseJSON;\n\n (0, _coreInput2.default)(evt.target, items.length ? items.map(function (item) {\n return '
  • ';\n }).join('') : '
  • ');\n };\n\n _this.state = {\n q: props.value || ''\n // loading: false,\n // focused: false\n };\n return _this;\n }\n\n _createClass(SuggestSearch, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var inputElm = this.elm.firstElementChild;\n\n if (!inputElm) {\n console.warn('Could not find input element');\n return;\n }\n\n this.elm.addEventListener('input.filter', this.handleFilter);\n this.elm.addEventListener('input.select', this.handleSelect);\n this.elm.addEventListener('input.ajax', this.handleAjax);\n\n var coreInputOpts = {\n open: false,\n content: null,\n ajax: this.props.ajax\n };\n\n (0, _coreInput2.default)(inputElm, coreInputOpts);\n\n if (this.props.value) {\n inputElm.value = this.props.value;\n }\n }\n }, {\n key: 'search',\n value: function search(q) {\n var _this2 = this;\n\n this.setState({ q: q });\n\n if (this.xhr) {\n // console.log('abort')\n this.xhr.abort();\n }\n\n var xhr = new XMLHttpRequest();\n var url = this.props.ajax.replace('{{value}}', q);\n\n this.xhr = xhr;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n try {\n var items = JSON.parse(xhr.responseText);\n _this2.populate(items);\n } catch (_) {\n // ignore\n }\n _this2.xhr = null;\n }\n };\n\n xhr.open('GET', url);\n\n xhr.send();\n }\n }, {\n key: 'populate',\n value: function populate(items) {\n var _this3 = this;\n\n (0, _coreInput2.default)(this.elm.firstElementChild, items.length ? items.slice(0, 5).map(function (item) {\n return '
  • ';\n }).join('') : '
  • ');\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n return (0, _preact.h)(\n 'div',\n { 'class': _index2.default.suggestSearch },\n (0, _preact.h)(\n 'label',\n { 'for': 'dh-skogbrann-suggest-search' },\n 'Finn din kommune'\n ),\n (0, _preact.h)(\n 'div',\n { 'class': _index2.default.suggestSearch__input, ref: function ref(elm) {\n return _this4.elm = elm;\n } },\n (0, _preact.h)('input', {\n type: 'text',\n name: 'q',\n placeholder: 'S\\xF8k',\n autoComplete: 'off',\n id: 'dh-skogbrann-suggest-search'\n }),\n (0, _preact.h)('ul', { hidden: true })\n ),\n (0, _preact.h)(\n 'svg',\n { viewBox: '0 0 30 30' },\n (0, _preact.h)('use', { xlinkHref: '#nrk-search' })\n )\n );\n }\n }]);\n\n return SuggestSearch;\n}(_preact.Component);\n\nexports.default = SuggestSearch;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, t) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = t() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : e.coreInput = t();\n}(undefined, function () {\n \"use strict\";\n var e = \"undefined\" != typeof window,\n o = (e && /(android)/i.test(navigator.userAgent), e && /iPad|iPhone|iPod/.test(String(navigator.platform))),\n i = function (e) {\n void 0 === e && (e = !1);try {\n window.addEventListener(\"test\", null, { get passive() {\n e = !0;\n } });\n } catch (e) {}return e;\n }();function t(e, t, n, r) {\n (void 0 === r && (r = !1), \"undefined\" == typeof window || window[e = e + \"-\" + t]) || (i || \"object\" != (typeof r === \"undefined\" ? \"undefined\" : _typeof(r)) || (r = Boolean(r.capture)), (\"resize\" === t || \"load\" === t ? window : document).addEventListener(window[e] = t, n, r));\n }var n = { \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"/\": \"/\", \"'\": \"'\" };function r(e) {\n return String(e || \"\").replace(/[&<>\"'/]/g, function (e) {\n return n[e];\n });\n }var a = \"prevent_recursive_dispatch_maximum_callstack\";function u(e, t, n) {\n void 0 === n && (n = {});var r,\n i = \"\" + a + t;if (e[i]) return !0;e[i] = !0, \"function\" == typeof window.CustomEvent ? r = new window.CustomEvent(t, { bubbles: !0, cancelable: !0, detail: n }) : (r = document.createEvent(\"CustomEvent\")).initCustomEvent(t, !0, !0, n);var o = e.dispatchEvent(r);return e[i] = null, o;\n }function c(e, t) {\n if (void 0 === t && (t = document), e) {\n if (e.nodeType) return [e];if (\"string\" == typeof e) return [].slice.call(t.querySelectorAll(e));if (e.length) return [].slice.call(e);\n }return [];\n }var d = \"data-@nrk/core-input-1.0.4\".replace(/\\W+/g, \"-\"),\n l = 13,\n f = 27,\n s = 33,\n p = 34,\n v = 35,\n m = 36,\n b = 38,\n g = 40,\n y = '[tabindex=\"-1\"]',\n w = 500;function x(e, t) {\n var r = \"object\" == (typeof t === \"undefined\" ? \"undefined\" : _typeof(t)) ? t : { content: t },\n i = \"string\" == typeof r.content;return c(e).map(function (e) {\n var t = e.nextElementSibling,\n n = void 0 === r.ajax ? e.getAttribute(d) : r.ajax;return e.setAttribute(d, n || \"\"), e.setAttribute(o ? \"data-role\" : \"role\", \"combobox\"), e.setAttribute(\"aria-autocomplete\", \"list\"), e.setAttribute(\"autocomplete\", \"off\"), i && (t.innerHTML = r.content), c(\"a,button\", t).forEach(C), A(e, r.open), e;\n });\n }function h(a) {\n a.ctrlKey || a.altKey || a.metaKey || a.defaultPrevented || c(\"[\" + d + \"]\").forEach(function (e) {\n var t,\n n,\n r = e.nextElementSibling,\n i = e === a.target || r.contains(a.target),\n o = \"click\" === a.type && i && c(y, r).filter(function (e) {\n return e.contains(a.target);\n })[0];o ? (t = e, n = { relatedTarget: r, currentTarget: o, value: o.value || o.textContent.trim() }, u(t, \"input.select\", n) && (t.value = n.value, t.focus(), A(t, !1))) : A(e, i);\n });\n }function E(e, t) {\n var n = e.nextElementSibling,\n r = c(y + \":not([hidden])\", n),\n i = r.indexOf(document.activeElement),\n o = !1;t.keyCode === g ? o = r[i + 1] || r[0] : t.keyCode === b ? o = r[i - 1] || r.pop() : n.contains(t.target) && (t.keyCode === v || t.keyCode === p ? o = r.pop() : t.keyCode === m || t.keyCode === s ? o = r[0] : t.keyCode !== l && e.focus()), n.hasAttribute(\"hidden\") || t.keyCode !== f || t.preventDefault(), A(e, t.keyCode !== f), !1 !== o && t.preventDefault(), o && o.focus();\n }function A(e, t) {\n void 0 === t && (t = \"true\" === e.getAttribute(\"aria-expanded\")), e.nextElementSibling[t ? \"removeAttribute\" : \"setAttribute\"](\"hidden\", \"\"), e.setAttribute(\"aria-expanded\", t);\n }function C(e, t, n) {\n e.setAttribute(\"aria-label\", e.textContent.trim() + \", \" + (t + 1) + \" av \" + n.length), e.setAttribute(\"tabindex\", \"-1\");\n }function k(e) {\n var t = e.getAttribute(d),\n n = k.req = k.req || new window.XMLHttpRequest();if (!t) return !1;clearTimeout(k.timer), n.abort(), n.onload = function () {\n try {\n n.responseJSON = JSON.parse(n.responseText);\n } catch (e) {\n n.responseJSON = !1;\n }u(e, \"input.ajax\", n);\n }, k.timer = setTimeout(function () {\n e.value && (n.open(\"GET\", t.replace(\"{{value}}\", window.encodeURIComponent(e.value)), !0), n.send());\n }, w);\n }return x.escapeHTML = r, x.highlight = function (e, t) {\n var n = t.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");return r(e).replace(new RegExp(n || \".^\", \"gi\"), \"$&\");\n }, t(d, \"click\", h), t(d, \"focus\", h, !0), t(d, \"input\", function (e) {\n var r,\n t,\n n = e.target;n.hasAttribute(d) && (t = { relatedTarget: (r = n).nextElementSibling }, u(r, \"input.filter\", t) && !k(r) && c(y, r.nextElementSibling).reduce(function (e, t) {\n var n = -1 !== t.textContent.toLowerCase().indexOf(r.value.toLowerCase());return t[n ? \"removeAttribute\" : \"setAttribute\"](\"hidden\", \"\"), n ? e.concat(t) : e;\n }, []).forEach(C));\n }), t(d, \"keydown\", function (e) {\n if (!(e.ctrlKey || e.altKey || e.metaKey)) {\n if (e.target.hasAttribute(d)) return E(e.target, e);for (var t = e.target, n = void 0; t; t = t.parentElement) {\n if ((n = t.previousElementSibling) && n.hasAttribute(d)) return E(n, e);\n }\n }\n }), x;\n});\n//# sourceMappingURL=core-input.min.js.map\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"suggestSearch\":\"dh-skogbrann-sverige-2018-suggestSearch\",\"suggestSearch__input\":\"dh-skogbrann-sverige-2018-suggestSearch__input\"};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n!function (e, n) {\n \"object\" == ( false ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? n(exports) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : n(e[\"dh-analytics-utils\"] = {});\n}(undefined, function (e) {\n \"use strict\";\n function n() {\n return window.ga;\n }var t = Object.assign || function (e) {\n for (var n = 1; n < arguments.length; n++) {\n var t = arguments[n];for (var o in t) {\n Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n }\n }return e;\n };e.createGoogleAnalyticsTracker = function (e) {\n var o = [],\n r = e.name,\n a = e.gaPropertyId,\n i = e.self,\n l = e.context;if (!(r && a && i && l)) throw new Error(\"Unable to create google analytics tracker. Please pass an object containing name, gaPropertyId, self and context to createGoogleAnalyticsTracker method\");var c,\n s,\n d,\n u,\n f,\n g,\n p,\n y,\n w = (c = i.id, s = l.id, d = i.title, u = i.publishedDate, f = c === s, g = document.referrer, { dimension1: c ? \"pp:\" + c : null, dimension2: d || null, dimension3: u ? String(u.getFullYear()) : null, dimension4: u ? String(u.getMonth() + 1) : null, dimension5: u ? String(u.getDate()) : null, dimension6: g.replace(/^(https?:\\/\\/)?www./, \"$1\"), dimension7: g.replace(/^(https?:\\/\\/)/, \"\").replace(/^www./, \"\"), dimension10: f ? null : s ? \"pp:\" + s : null }),\n v = (p = o, y = !1, function (e, o, r, a, i) {\n if (!r.category || !r.action) throw new Error(\"Error sending event to google analytics: Event is missing mandatory fields category and/or action\");n() ? (y || (function (e, n) {\n window.ga(\"create\", { trackingId: n, cookieDomain: \"auto\", name: e }), window.ga(e + \".set\", \"anonymizeIp\", !0);\n }(e, o), y = !0), window.ga(e + \".send\", \"event\", function (e, n) {\n var o = {};e.hasOwnProperty(\"category\") && (o.eventCategory = e.category), e.hasOwnProperty(\"action\") && (o.eventAction = e.action), e.hasOwnProperty(\"label\") && (o.eventLabel = e.label), e.hasOwnProperty(\"value\") && (o.eventValue = e.value), o.nonInteraction = e.nonInteraction || !1;var r = t({}, n, e.fieldsObject);return t({}, o, r);\n }(r, a))) : p.push(r);\n }),\n m = setInterval(function () {\n if (n()) for (clearInterval(m); o.length;) {\n var e = o.shift();v(r, a, e, w);\n }\n }, 1e3);return { sendEvent: function sendEvent(e) {\n v(r, a, e, w);\n } };\n }, Object.defineProperty(e, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getContextId = getContextId;\nvar POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g;\n\nfunction getContextId(url) {\n return extractPolopolyIdFromString(url);\n}\n\nfunction extractPolopolyIdFromString(str) {\n var matches = str.match(POLOPOLY_ID_REGEX);\n\n if (matches && matches.length) {\n return matches[0];\n }\n\n return null;\n}\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// v1-bundle-5022006c5140a924af73.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://dh-static.mesos.nrk.no/dh-skogbrann-sverige-2018/static/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4d652c6586f100f112ee","/** Virtual DOM Node */\nfunction VNode() {}\n\n/** Global options\n *\t@public\n *\t@namespace options {Object}\n */\nvar options = {\n\n\t/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n */\n\t//syncComponentUpdates: true,\n\n\t/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n */\n\t//vnode(vnode) { }\n\n\t/** Hook invoked after a component is mounted. */\n\t// afterMount(component) { }\n\n\t/** Hook invoked after the DOM is updated with a component's latest render. */\n\t// afterUpdate(component) { }\n\n\t/** Hook invoked immediately before a component is unmounted. */\n\t// beforeUnmount(component) { }\n};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\n/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
    Hello!
    `\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (opts !== 0) {\n\t\tif (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\t\t\t// set up high order component link\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || opts === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
    ;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
    hello!
    , document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\n//# sourceMappingURL=preact.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/preact/dist/preact.esm.js","import { toArray } from './array';\nimport bem from './bem';\nimport { getScrollLeft, getScrollTop } from './scroll';\nimport { createUniqueId } from './string';\n\nexport { bem, createUniqueId, getScrollLeft, getScrollTop, toArray };\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/index.js","'use strict';\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return null !== obj && 'object' === typeof obj;\n}\n\nmodule.exports = isObject;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/is-object.js","// @flow @jsx h\n\nimport { h, Component } from 'preact'\n\nclass Provider extends Component<{ children: Array }, {}> {\n getChildContext () {\n const { children, ...props } = this.props\n return { __CTX__: props }\n }\n render () {\n return this.props.children[0]\n }\n}\n\nProvider.displayName = 'Provider'\n\ntype MapContextToProps = ({}) => Object\n\nfunction connect (mapContextToProps?: MapContextToProps) {\n return (wrappedComponent: any) => {\n class Connected extends Component<{}, {}> {\n mapContextToProps = (ctx: {}): Object => {\n return mapContextToProps ? mapContextToProps(ctx) : ctx\n }\n render () {\n return h(wrappedComponent, {\n ...this.mapContextToProps(this.context['__CTX__']),\n ...this.props\n })\n }\n }\n Connected.displayName = `connect(${wrappedComponent.displayName ||\n wrappedComponent.name ||\n 'Component'})`\n return Connected\n }\n}\n\nexport { Provider, connect }\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/provider.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"root\":\"dh-skogbrann-sverige-2018-root\",\"app\":\"dh-skogbrann-sverige-2018-app\",\"app__header\":\"dh-skogbrann-sverige-2018-app__header\",\"app__form\":\"dh-skogbrann-sverige-2018-app__form\",\"app__mapWrapper\":\"dh-skogbrann-sverige-2018-app__mapWrapper\",\"app__footer\":\"dh-skogbrann-sverige-2018-app__footer\",\"app__sources\":\"dh-skogbrann-sverige-2018-app__sources\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/App.css\n// module id = 4\n// module chunks = 0","/* global __HOT__ */\n\n// @jsx h\n\nimport domready from 'domready'\nimport { h, render } from 'preact'\nimport { toArray, createUniqueId } from '@nrk/dh-utils'\nimport { createErrorReporter } from '../lib/errorReporting'\nimport { App } from './components/App'\nimport { root as rootElementClassName } from './components/App.css'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils'\nimport { getContextId } from '../lib/getContextId'\nimport { Provider as CustomProvider } from '../lib/provider'\n\nwindow[rootElementClassName] = window[rootElementClassName] || {}\n\nfunction init () {\n findElements(rootElementClassName).forEach(el => {\n el.id = createUniqueId()\n window[rootElementClassName][el.id] = true\n\n // Extract values sent from server\n const name = el.getAttribute('data-name')\n const preloadedState = JSON.parse(el.getAttribute('data-preloaded-state'))\n const errorTrackingEnabled =\n el.getAttribute('data-error-tracking-enabled') === 'true'\n\n // setup error reporting\n const simpleErrorReport = createErrorReporter(name, errorTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n const sendError = message => {\n simpleErrorReport.sendErrorReport({ message })\n }\n\n const sendGaEvent = eventObj => {\n googleAnalyticsTracker.sendEvent({\n category: `dh-modul-${name}`,\n ...eventObj\n })\n }\n\n // ... and render with the exact same props as on server\n render(\n \n \n ,\n el,\n el.firstChild\n )\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload and re-render preact application\n module.hot.accept('./client', () => {\n const { App } = require('./components/App')\n const { Provider: CustomProvider } = require('../lib/provider')\n render(\n \n \n ,\n el,\n el.firstChild\n )\n })\n }\n })\n}\n\nif (__HOT__) {\n require('preact/debug')\n}\n\nfunction findElements (className) {\n return toArray(document.getElementsByClassName(className)).filter(\n el => !isInitialized(el, className)\n )\n}\n\nfunction isInitialized (el, className) {\n return el.id && window[className][el.id]\n}\n\ndomready(init)\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/client.js","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/domready/ready.js","export function toArray(nodeList) {\n return [].slice.call(nodeList);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/array.js","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/bem.js","export function getScrollLeft() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || 0;\n}\n\nexport function getScrollTop() {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || 0;\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/scroll.js","export function createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-utils/dist/module/string.js","// @flow\n\nimport { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter (\n name: string,\n isErrorReportingEnabled: boolean\n): SimpleErrorReport {\n return new SimpleErrorReport({\n name: name,\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/errorReporting.js","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"simple-error-report\"]={})}(this,function(e){\"use strict\";var n=function(){function e(e,n){for(var r=0;r0}}]),e}(),t=Object.assign||function(e){for(var n=1;n0&&(a.line=o),s>0&&(a.column=s),n.error&&\"function\"==typeof e.parseStack?e.parseStack(n.error).then(function(n){e.sendErrorReport(t({},a,{stackTrace:n}))}):e.sendErrorReport(a)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=s,Object.defineProperty(e,\"__esModule\",{value:!0})});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","// @flow @jsx h\n\n/* eslint-disable promise/always-return */\n\nimport { h, Component } from 'preact'\nimport superagent from 'superagent'\nimport { connect } from '../../lib/provider'\nimport Info from './Info'\nimport Map from './Map'\nimport Select from './Select'\nimport SuggestSearch from './SuggestSearch'\n\nimport styles from './App.css'\n\ntype Props = {\n sendGaEvent: Object => void,\n api: {\n baseUrl: string\n },\n mapbox: {\n accessToken: string\n }\n}\n\ntype State = {\n municipalityId: string | null,\n municipalityName: string | null,\n fires: any | null,\n municipality: any | null,\n fireName: string | null\n}\n\nclass _App extends Component {\n state = {\n municipalityId: '1103',\n municipalityName: 'Stavanger',\n fires: null,\n municipality: null,\n fireName: 'Enskogen'\n }\n\n componentDidMount () {\n superagent\n .get(`${this.props.api.baseUrl}/fires`)\n .then(res => {\n this.setState({ fires: res.body })\n })\n .catch(err => {\n console.log(err)\n })\n\n this.loadMunicipality()\n }\n\n componentDidUpdate (prevProps: Props, prevState: State) {\n if (prevState.municipalityId !== this.state.municipalityId) {\n this.loadMunicipality()\n }\n }\n\n loadMunicipality () {\n const { municipalityId } = this.state\n\n this.setState({ municipality: null })\n\n if (!municipalityId) {\n return\n }\n\n superagent\n .get(`${this.props.api.baseUrl}/municipality/${municipalityId}`)\n .then(res => {\n this.setState({ municipality: res.body })\n })\n .catch(err => {\n console.log(err)\n })\n }\n\n handleSubmit = (evt: any) => {\n evt.preventDefault()\n }\n\n handleSelectMunicipality = (\n municipalityId: string,\n municipalityName: string\n ) => {\n this.setState({ municipalityId, municipalityName })\n }\n\n handleFireSelectBlur = (evt: any) => {\n this.setState({ fireName: evt.target.value || null })\n }\n\n handleFireSelectChange = (evt: any) => {\n this.setState({ fireName: evt.target.value || null })\n }\n\n render () {\n const { municipality, municipalityName, fires, fireName } = this.state\n const fireMatches = fires ? fires.filter(fire => fire.id === fireName) : []\n const currentFire = fireMatches[0] || null\n\n return (\n
    \n
    \n
    \n
    \n \n
    \n
    \n ({\n value: fire.id,\n label: `Brannen i ${fire.id}`\n }))\n : []\n }\n />\n
    \n
    \n
    \n\n
    \n \n
    \n\n {municipality &&\n currentFire && (\n \n )}\n\n
    \n
    \n KILDER: Copernicus EMS, SSB, Kartverket\n
    \n
    \n
    \n )\n }\n}\n\n/*\nconst mapContextToProps = context => ({\n ...context,\n sendCustomGaEvent: () => context.sendEvent({ action: 'my custom event action' })\n})\n*/\n\nconst connector = connect()\n// const connector = connect(mapContextToProps)\nexport const App = connector(_App)\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/App.js","/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') { // Browser window\n root = window;\n} else if (typeof self !== 'undefined') { // Web Worker\n root = self;\n} else { // Other environments\n console.warn(\"Using browser-only version of superagent in non-browser environment\");\n root = this;\n}\n\nvar Emitter = require('component-emitter');\nvar RequestBase = require('./request-base');\nvar isObject = require('./is-object');\nvar ResponseBase = require('./response-base');\nvar Agent = require('./agent-base');\n\n/**\n * Noop.\n */\n\nfunction noop(){};\n\n/**\n * Expose `request`.\n */\n\nvar request = exports = module.exports = function(method, url) {\n // callback\n if ('function' == typeof url) {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n}\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest\n && (!root.location || 'file:' != root.location.protocol\n || !root.ActiveXObject)) {\n return new XMLHttpRequest;\n } else {\n try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}\n }\n throw Error(\"Browser-only version of superagent could not find XHR\");\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim\n ? function(s) { return s.trim(); }\n : function(s) { return s.replace(/(^\\s*|\\s*$)/g, ''); };\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val != null) {\n if (Array.isArray(val)) {\n val.forEach(function(v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for(var subkey in val) {\n pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]);\n }\n } else {\n pairs.push(encodeURIComponent(key)\n + '=' + encodeURIComponent(val));\n }\n } else if (val === null) {\n pairs.push(encodeURIComponent(key));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var pair;\n var pos;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos == -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] =\n decodeURIComponent(pair.slice(pos + 1));\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) { // could be empty line, just skip it\n continue;\n }\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[\\/+]json($|[^-\\w])/.test(mime);\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined')\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n var status = this.xhr.status;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n this._setStatusProperties(status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (null === this.text && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body = this.req.method != 'HEAD'\n ? this._parseBody(this.text ? this.text : this.xhr.response)\n : null;\n }\n}\n\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function(str) {\n var parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n return parse && str && (str.length || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function(){\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', function(){\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch(e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n var new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n }\n } catch(custom_err) {\n new_err = custom_err; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\nEmitter(Request.prototype);\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass, options){\n if (1 === arguments.length) pass = '';\n if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n if (!options) {\n options = {\n type: 'function' === typeof btoa ? 'basic' : 'auto',\n };\n }\n\n var encoder = function(string) {\n if ('function' === typeof btoa) {\n return btoa(string);\n }\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, options){\n if (file) {\n if (this._data) {\n throw Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n return this;\n};\n\nRequest.prototype._getFormData = function(){\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n var fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){\n console.warn(\"This is not supported in browser version of superagent\");\n return this;\n};\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.pipe = Request.prototype.write = function(){\n throw Error(\"Streaming is not supported in browser version of superagent\");\n};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\nRequest.prototype._isHost = function _isHost(obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';\n}\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n if (this._endCalled) {\n console.warn(\"Warning: .end() was called twice. This is not supported in superagent\");\n }\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n return this._end();\n};\n\nRequest.prototype._end = function() {\n var self = this;\n var xhr = (this.xhr = request.getXHR());\n var data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = function(){\n var readyState = xhr.readyState;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n if (4 != readyState) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(direction, e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n e.direction = direction;\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n try {\n xhr.onprogress = handleProgress.bind(null, 'download');\n if (xhr.upload) {\n xhr.upload.onprogress = handleProgress.bind(null, 'upload');\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) {\n // serialize stuff\n var contentType = this._header['content-type'];\n var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n\n if (this.header.hasOwnProperty(field))\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\nrequest.agent = function() {\n return new Agent();\n};\n\n[\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"].forEach(function(method) {\n Agent.prototype[method.toLowerCase()] = function(url, fn) {\n var req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype['delete'];\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn) {\n var req = request('GET', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn) {\n var req = request('HEAD', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = function(url, data, fn) {\n var req = request('OPTIONS', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n var req = request('DELETE', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest['del'] = del;\nrequest['delete'] = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn) {\n var req = request('PATCH', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn) {\n var req = request('POST', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn) {\n var req = request('PUT', url);\n if ('function' == typeof data) (fn = data), (data = null);\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/client.js","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/component-emitter/index.js","'use strict';\n\n/**\n * Module of mixed-in functions shared between node and client code\n */\nvar isObject = require('./is-object');\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in RequestBase.prototype) {\n obj[key] = RequestBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function _clearTimeout(){\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function parse(fn){\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function(val){\n this._responseType = val;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function serialize(fn){\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function timeout(options){\n if (!options || 'object' !== typeof options) {\n this._timeout = options;\n this._responseTimeout = 0;\n return this;\n }\n\n for(var option in options) {\n switch(option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n default:\n console.warn(\"Unknown timeout option\", option);\n }\n }\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function retry(count, fn){\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\nvar ERROR_CODES = [\n 'ECONNRESET',\n 'ETIMEDOUT',\n 'EADDRINFO',\n 'ESOCKETTIMEDOUT'\n];\n\n/**\n * Determine if a request should be retried.\n * (Borrowed from segmentio/superagent-retry)\n *\n * @param {Error} err\n * @param {Response} [res]\n * @returns {Boolean}\n */\nRequestBase.prototype._shouldRetry = function(err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n if (this._retryCallback) {\n try {\n var override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch(e) {\n console.error(e);\n }\n }\n if (res && res.status && res.status >= 500 && res.status != 501) return true;\n if (err) {\n if (err.code && ~ERROR_CODES.indexOf(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code == 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function() {\n\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function then(resolve, reject) {\n if (!this._fullfilledPromise) {\n var self = this;\n if (this._endCalled) {\n console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\");\n }\n this._fullfilledPromise = new Promise(function(innerResolve, innerReject) {\n self.end(function(err, res) {\n if (err) innerReject(err);\n else innerResolve(res);\n });\n });\n }\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype['catch'] = function(cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function use(fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function(cb) {\n if ('function' !== typeof cb) throw Error(\"Callback required\");\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function(res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function(field){\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function(field, val){\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n */\nRequestBase.prototype.unset = function(field){\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name\n * @param {String|Blob|File|Buffer|fs.ReadStream} val\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function(name, val) {\n // name should be either a string or an object.\n if (null === name || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObject(name)) {\n for (var key in name) {\n this.field(key, name[key]);\n }\n return this;\n }\n\n if (Array.isArray(val)) {\n for (var i in val) {\n this.field(name, val[i]);\n }\n return this;\n }\n\n // val should be defined now\n if (null === val || undefined === val) {\n throw new Error('.field(name, val) val can not be empty');\n }\n if ('boolean' === typeof val) {\n val = '' + val;\n }\n this._getFormData().append(name, val);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\nRequestBase.prototype.abort = function(){\n if (this._aborted) {\n return this;\n }\n this._aborted = true;\n this.xhr && this.xhr.abort(); // browser\n this.req && this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function(user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass));\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', 'Bearer ' + user);\n break;\n }\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function(on) {\n // This is browser-only functionality. Node side is no-op.\n if (on == undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does noting in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function(n){\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function(n){\n if ('number' !== typeof n) {\n throw TypeError(\"Invalid argument\");\n }\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function() {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header,\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.send = function(data){\n var isObj = isObject(data);\n var type = this._header['content-type'];\n\n if (this._formData) {\n console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n }\n\n if (isObj && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data\n ? this._data + '&' + data\n : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObj || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function(sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function(){\n var query = this._query.join('&');\n if (query) {\n this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query;\n }\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n var index = this.url.indexOf('?');\n if (index >= 0) {\n var queryArr = this.url.substring(index + 1).split('&');\n if ('function' === typeof this._sort) {\n queryArr.sort(this._sort);\n } else {\n queryArr.sort();\n }\n this.url = this.url.substring(0, index) + '?' + queryArr.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = function() {console.trace(\"Unsupported\");}\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function(reason, timeout, errno){\n if (this._aborted) {\n return;\n }\n var err = new Error(reason + timeout + 'ms exceeded');\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function() {\n var self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(function(){\n self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT');\n }, this._responseTimeout);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/request-base.js","'use strict';\n\n/**\n * Module dependencies.\n */\n\nvar utils = require('./utils');\n\n/**\n * Expose `ResponseBase`.\n */\n\nmodule.exports = ResponseBase;\n\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in ResponseBase.prototype) {\n obj[key] = ResponseBase.prototype[key];\n }\n return obj;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponseBase.prototype.get = function(field) {\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponseBase.prototype._setHeaderProperties = function(header){\n // TODO: moar!\n // TODO: make this a util\n\n // content-type\n var ct = header['content-type'] || '';\n this.type = utils.type(ct);\n\n // params\n var params = utils.params(ct);\n for (var key in params) this[key] = params[key];\n\n this.links = {};\n\n // links\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch (err) {\n // ignore\n }\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponseBase.prototype._setStatusProperties = function(status){\n var type = status / 100 | 0;\n\n // status / class\n this.status = this.statusCode = status;\n this.statusType = type;\n\n // basics\n this.info = 1 == type;\n this.ok = 2 == type;\n this.redirect = 3 == type;\n this.clientError = 4 == type;\n this.serverError = 5 == type;\n this.error = (4 == type || 5 == type)\n ? this.toError()\n : false;\n\n // sugar\n this.created = 201 == status;\n this.accepted = 202 == status;\n this.noContent = 204 == status;\n this.badRequest = 400 == status;\n this.unauthorized = 401 == status;\n this.notAcceptable = 406 == status;\n this.forbidden = 403 == status;\n this.notFound = 404 == status;\n this.unprocessableEntity = 422 == status;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/response-base.js","'use strict';\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nexports.type = function(str){\n return str.split(/ *; */).shift();\n};\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.params = function(str){\n return str.split(/ *; */).reduce(function(obj, str){\n var parts = str.split(/ *= */);\n var key = parts.shift();\n var val = parts.shift();\n\n if (key && val) obj[key] = val;\n return obj;\n }, {});\n};\n\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.parseLinks = function(str){\n return str.split(/ *, */).reduce(function(obj, str){\n var parts = str.split(/ *; */);\n var url = parts[0].slice(1, -1);\n var rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n return obj;\n }, {});\n};\n\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\nexports.cleanHeader = function(header, changesOrigin){\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header['host'];\n // secuirty\n if (changesOrigin) {\n delete header['authorization'];\n delete header['cookie'];\n }\n return header;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/utils.js","function Agent() {\n this._defaults = [];\n}\n\n[\"use\", \"on\", \"once\", \"set\", \"query\", \"type\", \"accept\", \"auth\", \"withCredentials\", \"sortQuery\", \"retry\", \"ok\", \"redirects\",\n \"timeout\", \"buffer\", \"serialize\", \"parse\", \"ca\", \"key\", \"pfx\", \"cert\"].forEach(function(fn) {\n /** Default setting for all requests from this agent */\n Agent.prototype[fn] = function(/*varargs*/) {\n this._defaults.push({fn:fn, arguments:arguments});\n return this;\n }\n});\n\nAgent.prototype._setDefaults = function(req) {\n this._defaults.forEach(function(def) {\n req[def.fn].apply(req, def.arguments);\n });\n};\n\nmodule.exports = Agent;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/superagent/lib/agent-base.js","// @flow @jsx h\n\nimport { bem } from '@nrk/dh-utils'\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\n\ntype Props = {\n municipality: any,\n municipalityName: string,\n fire: any,\n fireName: string\n}\n\nfunction formatAreaDiff (a: number, b: number) {\n return `${(b / a * 100).toFixed().replace('.', ',')} %`\n}\n\nfunction formatFootballFields (num: number) {\n return `${Math.round(num)\n .toLocaleString()\n .replace(',', ' ')\n .replace('.', ' ')}`\n}\n\nfunction formatArea (num: number) {\n return `${num.toFixed(1).replace('.', ',')}`\n}\n\nclass Info extends Component {\n render () {\n const { municipality, municipalityName, fire, fireName } = this.props\n\n return (\n
    \n

    \n Arealet av brannen i {fireName} tilsvarer\n

    \n {municipality.developed && (\n
    \n
    \n
    \n
    \n \n {formatAreaDiff(\n municipality.developed.m2,\n fire.polygon.properties.m2\n )}\n {' '}\n av by og tettsted i {municipalityName}\n
    \n
    \n
    \n )}\n {municipality.forest && (\n
    \n
    \n
    \n
    \n \n {formatAreaDiff(\n municipality.forest.m2,\n fire.polygon.properties.m2\n )}\n {' '}\n av skogsarealet i {municipalityName}\n
    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n \n {formatFootballFields(fire.polygon.properties.footballFields)}{' '}\n {' '}\n fotballbaner\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n {formatArea(fire.polygon.properties.km2)} km²{' '}\n {' '}\n hittil berørt av brannen\n
    \n
    \n
    \n
    \n )\n }\n}\n\nexport default Info\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Info/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"info\":\"dh-skogbrann-sverige-2018-info\",\"info__title\":\"dh-skogbrann-sverige-2018-info__title\",\"info__section\":\"dh-skogbrann-sverige-2018-info__section\",\"info__icon\":\"dh-skogbrann-sverige-2018-info__icon\",\"info__icon--developed\":\"dh-skogbrann-sverige-2018-info__icon--developed\",\"info__icon--forest\":\"dh-skogbrann-sverige-2018-info__icon--forest\",\"info__icon--football\":\"dh-skogbrann-sverige-2018-info__icon--football\",\"info__icon--fire\":\"dh-skogbrann-sverige-2018-info__icon--fire\",\"info__text\":\"dh-skogbrann-sverige-2018-info__text\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Info/index.css\n// module id = 23\n// module chunks = 0","// @flow @jsx h\n\nimport geojsonExtent from '@mapbox/geojson-extent'\nimport { Component, h } from 'preact'\nimport { geojsonTranslate } from './helpers'\n\nimport styles from './index.css'\n\ntype Props = {\n accessToken: string,\n fires: any | null,\n municipality: any | null,\n fireName: string | null\n}\n\ntype State = {\n mapboxLoaded: boolean\n}\n\nconst BBOX = [[4.7, 58], [31, 71.2]]\n\nclass SuggestSearch extends Component {\n elm: HTMLDivElement\n mapboxgl: any\n map: any\n\n state = {\n mapboxLoaded: false\n }\n\n componentDidMount () {\n this.initializeMap()\n }\n\n componentDidUpdate (prevProps: Props) {\n if (this.map && !prevProps.fires && this.props.fires) {\n this.drawFires()\n }\n\n if (this.map && !prevProps.municipality && this.props.municipality) {\n this.drawMunicipality()\n this.drawSelectedFire()\n }\n\n if (this.map && prevProps.municipality && this.props.municipality) {\n if (prevProps.municipality.id !== this.props.municipality.id) {\n this.drawMunicipality()\n this.drawSelectedFire()\n }\n }\n\n if (this.map && prevProps.fireName !== this.props.fireName) {\n this.drawSelectedFire()\n }\n }\n\n initializeMap () {\n window.require(\n ['https://api.mapbox.com/mapbox-gl-js/v0.47.0/mapbox-gl.js'],\n mapboxgl => {\n // console.log('[map]', 'mapboxgl.initialize')\n this.mapboxgl = mapboxgl\n this.mapboxgl.accessToken = this.props.accessToken\n\n this.map = new mapboxgl.Map({\n container: this.elm,\n style: 'mapbox://styles/nrk/cjf2taj8r1dnj2tk8hsd0mhaf'\n // zoomControl: true\n })\n\n // Setup controls\n this.map.addControl(\n new mapboxgl.NavigationControl({\n showCompass: false\n }),\n 'top-left'\n )\n this.map.dragRotate.disable()\n this.map.touchZoomRotate.disableRotation()\n\n this.map.fitBounds(BBOX, {\n padding: { top: 10, bottom: 10, left: 10, right: 10 },\n duration: 0\n })\n\n this.map.on('load', () => {\n this.setState({ mapboxLoaded: true })\n // console.log('[map]', 'mapboxgl.load')\n\n this.drawFires()\n this.drawMunicipality()\n this.drawSelectedFire()\n })\n }\n )\n }\n\n drawFires () {\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw fires')\n return\n }\n\n const data = this.props.fires\n\n // console.log('[map]', 'drawFires')\n\n if (data) {\n data.forEach((fire, idx) => {\n this.map.addLayer({\n id: `fire${String(idx)}`,\n type: 'fill',\n source: {\n type: 'geojson',\n data: fire.polygon\n },\n layout: {},\n paint: {\n 'fill-color': '#E51C30',\n 'fill-opacity': 0.8\n }\n })\n })\n }\n }\n\n drawMunicipality () {\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw municipality')\n return\n }\n\n // console.log('[map]', 'drawMunicipality')\n\n const data = this.props.municipality\n\n if (data) {\n if (this.map.getLayer('municipality')) {\n this.map.removeLayer('municipality')\n }\n\n if (this.map.getSource('municipality')) {\n this.map.removeSource('municipality')\n }\n\n this.map.addLayer({\n id: 'municipality',\n type: 'line',\n source: {\n type: 'geojson',\n data: data.polygon\n },\n layout: {},\n paint: {\n 'line-color': '#171A1B',\n 'line-width': 2\n }\n })\n\n const bounds = new this.mapboxgl.LngLatBounds(geojsonExtent(data.polygon))\n\n this.map.fitBounds(bounds, {\n padding: { top: 10, bottom: 10, left: 10, right: 10 }\n })\n }\n }\n\n drawSelectedFire () {\n if (!this.state.mapboxLoaded) {\n // console.log('[map]', 'could not draw selected fire')\n return\n }\n\n // console.log('[map]', 'drawSelectedFire')\n\n const { fires, municipality, fireName } = this.props\n\n if (fires && municipality && fireName) {\n const fireMatches = fires.filter(fire => fire.id === fireName)\n\n if (fireMatches.length) {\n const fire = fireMatches[0]\n\n const diff = [\n fire.centroid.coordinates[0] - municipality.centroid.coordinates[0],\n fire.centroid.coordinates[1] - municipality.centroid.coordinates[1]\n ]\n\n const movedFirePolygon = geojsonTranslate(fire.polygon, diff)\n\n if (this.map.getLayer('currentFire')) {\n this.map.removeLayer('currentFire')\n }\n\n if (this.map.getSource('currentFire')) {\n this.map.removeSource('currentFire')\n }\n\n this.map.addLayer({\n id: 'currentFire',\n type: 'fill',\n source: {\n type: 'geojson',\n data: movedFirePolygon\n },\n layout: {},\n paint: {\n 'fill-color': '#E51C30',\n 'fill-opacity': 0.8\n }\n })\n\n // const bounds = new this.mapboxgl.LngLatBounds(\n // geojsonExtent(movedFirePolygon)\n // )\n //\n // this.map.fitBounds(bounds, {\n // padding: { top: 40, bottom: 40, left: 40, right: 40 }\n // })\n }\n }\n }\n\n render () {\n return
    (this.elm = elm)} />\n }\n}\n\nexport default SuggestSearch\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Map/index.js","var geojsonCoords = require('@mapbox/geojson-coords'),\n traverse = require('traverse'),\n extent = require('@mapbox/extent');\n\nvar geojsonTypesByDataAttributes = {\n features: ['FeatureCollection'],\n coordinates: ['Point', 'MultiPoint', 'LineString', 'MultiLineString', 'Polygon', 'MultiPolygon'],\n geometry: ['Feature'],\n geometries: ['GeometryCollection']\n}\n\nvar dataAttributes = Object.keys(geojsonTypesByDataAttributes);\n\nmodule.exports = function(_) {\n return getExtent(_).bbox();\n};\n\nmodule.exports.polygon = function(_) {\n return getExtent(_).polygon();\n};\n\nmodule.exports.bboxify = function(_) {\n return traverse(_).map(function(value) {\n if (!value) return ;\n\n var isValid = dataAttributes.some(function(attribute){\n if(value[attribute]) {\n return geojsonTypesByDataAttributes[attribute].indexOf(value.type) !== -1;\n }\n return false;\n });\n\n if(isValid){\n value.bbox = getExtent(value).bbox();\n this.update(value);\n }\n\n });\n};\n\nfunction getExtent(_) {\n var bbox = [Infinity, Infinity, -Infinity, -Infinity],\n ext = extent(),\n coords = geojsonCoords(_);\n for (var i = 0; i < coords.length; i++) ext.include(coords[i]);\n return ext;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@mapbox/geojson-extent/index.js","var geojsonNormalize = require('@mapbox/geojson-normalize'),\n geojsonFlatten = require('geojson-flatten'),\n flatten = require('./flatten');\n\nmodule.exports = function(_) {\n if (!_) return [];\n var normalized = geojsonFlatten(geojsonNormalize(_)),\n coordinates = [];\n normalized.features.forEach(function(feature) {\n if (!feature.geometry) return;\n coordinates = coordinates.concat(flatten(feature.geometry.coordinates));\n });\n return coordinates;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@mapbox/geojson-coords/index.js","module.exports = normalize;\n\nvar types = {\n Point: 'geometry',\n MultiPoint: 'geometry',\n LineString: 'geometry',\n MultiLineString: 'geometry',\n Polygon: 'geometry',\n MultiPolygon: 'geometry',\n GeometryCollection: 'geometry',\n Feature: 'feature',\n FeatureCollection: 'featurecollection'\n};\n\n/**\n * Normalize a GeoJSON feature into a FeatureCollection.\n *\n * @param {object} gj geojson data\n * @returns {object} normalized geojson data\n */\nfunction normalize(gj) {\n if (!gj || !gj.type) return null;\n var type = types[gj.type];\n if (!type) return null;\n\n if (type === 'geometry') {\n return {\n type: 'FeatureCollection',\n features: [{\n type: 'Feature',\n properties: {},\n geometry: gj\n }]\n };\n } else if (type === 'feature') {\n return {\n type: 'FeatureCollection',\n features: [gj]\n };\n } else if (type === 'featurecollection') {\n return gj;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@mapbox/geojson-normalize/index.js","function flatten(gj) {\n switch ((gj && gj.type) || null) {\n case 'FeatureCollection':\n gj.features = gj.features.reduce(function(mem, feature) {\n return mem.concat(flatten(feature));\n }, []);\n return gj;\n case 'Feature':\n if (!gj.geometry) return gj;\n return flatten(gj.geometry).map(function(geom) {\n return {\n type: 'Feature',\n properties: JSON.parse(JSON.stringify(gj.properties)),\n geometry: geom\n };\n });\n case 'MultiPoint':\n return gj.coordinates.map(function(_) {\n return { type: 'Point', coordinates: _ };\n });\n case 'MultiPolygon':\n return gj.coordinates.map(function(_) {\n return { type: 'Polygon', coordinates: _ };\n });\n case 'MultiLineString':\n return gj.coordinates.map(function(_) {\n return { type: 'LineString', coordinates: _ };\n });\n case 'GeometryCollection':\n return gj.geometries.map(flatten).reduce(function(memo, geoms) {\n return memo.concat(geoms);\n }, []);\n case 'Point':\n case 'Polygon':\n case 'LineString':\n return [gj];\n }\n}\n\nmodule.exports = flatten;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/geojson-flatten/index.js","module.exports = function flatten(list) {\n return _flatten(list);\n\n function _flatten(list) {\n if (Array.isArray(list) && list.length &&\n typeof list[0] === 'number') {\n return [list];\n }\n return list.reduce(function (acc, item) {\n if (Array.isArray(item) && Array.isArray(item[0])) {\n return acc.concat(_flatten(item));\n } else {\n acc.push(item);\n return acc;\n }\n }, []);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@mapbox/geojson-coords/flatten.js","var traverse = module.exports = function (obj) {\n return new Traverse(obj);\n};\n\nfunction Traverse (obj) {\n this.value = obj;\n}\n\nTraverse.prototype.get = function (ps) {\n var node = this.value;\n for (var i = 0; i < ps.length; i ++) {\n var key = ps[i];\n if (!node || !hasOwnProperty.call(node, key)) {\n node = undefined;\n break;\n }\n node = node[key];\n }\n return node;\n};\n\nTraverse.prototype.has = function (ps) {\n var node = this.value;\n for (var i = 0; i < ps.length; i ++) {\n var key = ps[i];\n if (!node || !hasOwnProperty.call(node, key)) {\n return false;\n }\n node = node[key];\n }\n return true;\n};\n\nTraverse.prototype.set = function (ps, value) {\n var node = this.value;\n for (var i = 0; i < ps.length - 1; i ++) {\n var key = ps[i];\n if (!hasOwnProperty.call(node, key)) node[key] = {};\n node = node[key];\n }\n node[ps[i]] = value;\n return value;\n};\n\nTraverse.prototype.map = function (cb) {\n return walk(this.value, cb, true);\n};\n\nTraverse.prototype.forEach = function (cb) {\n this.value = walk(this.value, cb, false);\n return this.value;\n};\n\nTraverse.prototype.reduce = function (cb, init) {\n var skip = arguments.length === 1;\n var acc = skip ? this.value : init;\n this.forEach(function (x) {\n if (!this.isRoot || !skip) {\n acc = cb.call(this, acc, x);\n }\n });\n return acc;\n};\n\nTraverse.prototype.paths = function () {\n var acc = [];\n this.forEach(function (x) {\n acc.push(this.path); \n });\n return acc;\n};\n\nTraverse.prototype.nodes = function () {\n var acc = [];\n this.forEach(function (x) {\n acc.push(this.node);\n });\n return acc;\n};\n\nTraverse.prototype.clone = function () {\n var parents = [], nodes = [];\n \n return (function clone (src) {\n for (var i = 0; i < parents.length; i++) {\n if (parents[i] === src) {\n return nodes[i];\n }\n }\n \n if (typeof src === 'object' && src !== null) {\n var dst = copy(src);\n \n parents.push(src);\n nodes.push(dst);\n \n forEach(objectKeys(src), function (key) {\n dst[key] = clone(src[key]);\n });\n \n parents.pop();\n nodes.pop();\n return dst;\n }\n else {\n return src;\n }\n })(this.value);\n};\n\nfunction walk (root, cb, immutable) {\n var path = [];\n var parents = [];\n var alive = true;\n \n return (function walker (node_) {\n var node = immutable ? copy(node_) : node_;\n var modifiers = {};\n \n var keepGoing = true;\n \n var state = {\n node : node,\n node_ : node_,\n path : [].concat(path),\n parent : parents[parents.length - 1],\n parents : parents,\n key : path.slice(-1)[0],\n isRoot : path.length === 0,\n level : path.length,\n circular : null,\n update : function (x, stopHere) {\n if (!state.isRoot) {\n state.parent.node[state.key] = x;\n }\n state.node = x;\n if (stopHere) keepGoing = false;\n },\n 'delete' : function (stopHere) {\n delete state.parent.node[state.key];\n if (stopHere) keepGoing = false;\n },\n remove : function (stopHere) {\n if (isArray(state.parent.node)) {\n state.parent.node.splice(state.key, 1);\n }\n else {\n delete state.parent.node[state.key];\n }\n if (stopHere) keepGoing = false;\n },\n keys : null,\n before : function (f) { modifiers.before = f },\n after : function (f) { modifiers.after = f },\n pre : function (f) { modifiers.pre = f },\n post : function (f) { modifiers.post = f },\n stop : function () { alive = false },\n block : function () { keepGoing = false }\n };\n \n if (!alive) return state;\n \n function updateState() {\n if (typeof state.node === 'object' && state.node !== null) {\n if (!state.keys || state.node_ !== state.node) {\n state.keys = objectKeys(state.node)\n }\n \n state.isLeaf = state.keys.length == 0;\n \n for (var i = 0; i < parents.length; i++) {\n if (parents[i].node_ === node_) {\n state.circular = parents[i];\n break;\n }\n }\n }\n else {\n state.isLeaf = true;\n state.keys = null;\n }\n \n state.notLeaf = !state.isLeaf;\n state.notRoot = !state.isRoot;\n }\n \n updateState();\n \n // use return values to update if defined\n var ret = cb.call(state, state.node);\n if (ret !== undefined && state.update) state.update(ret);\n \n if (modifiers.before) modifiers.before.call(state, state.node);\n \n if (!keepGoing) return state;\n \n if (typeof state.node == 'object'\n && state.node !== null && !state.circular) {\n parents.push(state);\n \n updateState();\n \n forEach(state.keys, function (key, i) {\n path.push(key);\n \n if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);\n \n var child = walker(state.node[key]);\n if (immutable && hasOwnProperty.call(state.node, key)) {\n state.node[key] = child.node;\n }\n \n child.isLast = i == state.keys.length - 1;\n child.isFirst = i == 0;\n \n if (modifiers.post) modifiers.post.call(state, child);\n \n path.pop();\n });\n parents.pop();\n }\n \n if (modifiers.after) modifiers.after.call(state, state.node);\n \n return state;\n })(root).node;\n}\n\nfunction copy (src) {\n if (typeof src === 'object' && src !== null) {\n var dst;\n \n if (isArray(src)) {\n dst = [];\n }\n else if (isDate(src)) {\n dst = new Date(src.getTime ? src.getTime() : src);\n }\n else if (isRegExp(src)) {\n dst = new RegExp(src);\n }\n else if (isError(src)) {\n dst = { message: src.message };\n }\n else if (isBoolean(src)) {\n dst = new Boolean(src);\n }\n else if (isNumber(src)) {\n dst = new Number(src);\n }\n else if (isString(src)) {\n dst = new String(src);\n }\n else if (Object.create && Object.getPrototypeOf) {\n dst = Object.create(Object.getPrototypeOf(src));\n }\n else if (src.constructor === Object) {\n dst = {};\n }\n else {\n var proto =\n (src.constructor && src.constructor.prototype)\n || src.__proto__\n || {}\n ;\n var T = function () {};\n T.prototype = proto;\n dst = new T;\n }\n \n forEach(objectKeys(src), function (key) {\n dst[key] = src[key];\n });\n return dst;\n }\n else return src;\n}\n\nvar objectKeys = Object.keys || function keys (obj) {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n};\n\nfunction toS (obj) { return Object.prototype.toString.call(obj) }\nfunction isDate (obj) { return toS(obj) === '[object Date]' }\nfunction isRegExp (obj) { return toS(obj) === '[object RegExp]' }\nfunction isError (obj) { return toS(obj) === '[object Error]' }\nfunction isBoolean (obj) { return toS(obj) === '[object Boolean]' }\nfunction isNumber (obj) { return toS(obj) === '[object Number]' }\nfunction isString (obj) { return toS(obj) === '[object String]' }\n\nvar isArray = Array.isArray || function isArray (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nforEach(objectKeys(Traverse.prototype), function (key) {\n traverse[key] = function (obj) {\n var args = [].slice.call(arguments, 1);\n var t = new Traverse(obj);\n return t[key].apply(t, args);\n };\n});\n\nvar hasOwnProperty = Object.hasOwnProperty || function (obj, key) {\n return key in obj;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/traverse/index.js","module.exports = Extent;\n\nfunction Extent(bbox) {\n if (!(this instanceof Extent)) {\n return new Extent(bbox);\n }\n this._bbox = bbox || [Infinity, Infinity, -Infinity, -Infinity];\n this._valid = !!bbox;\n}\n\nExtent.prototype.include = function(ll) {\n this._valid = true;\n this._bbox[0] = Math.min(this._bbox[0], ll[0]);\n this._bbox[1] = Math.min(this._bbox[1], ll[1]);\n this._bbox[2] = Math.max(this._bbox[2], ll[0]);\n this._bbox[3] = Math.max(this._bbox[3], ll[1]);\n return this;\n};\n\nExtent.prototype.equals = function(_) {\n var other;\n if (_ instanceof Extent) { other = _.bbox(); } else { other = _; }\n return this._bbox[0] == other[0] &&\n this._bbox[1] == other[1] &&\n this._bbox[2] == other[2] &&\n this._bbox[3] == other[3];\n};\n\nExtent.prototype.center = function(_) {\n if (!this._valid) return null;\n return [\n (this._bbox[0] + this._bbox[2]) / 2,\n (this._bbox[1] + this._bbox[3]) / 2]\n};\n\nExtent.prototype.union = function(_) {\n this._valid = true;\n var other;\n if (_ instanceof Extent) { other = _.bbox(); } else { other = _; }\n this._bbox[0] = Math.min(this._bbox[0], other[0]);\n this._bbox[1] = Math.min(this._bbox[1], other[1]);\n this._bbox[2] = Math.max(this._bbox[2], other[2]);\n this._bbox[3] = Math.max(this._bbox[3], other[3]);\n return this;\n};\n\nExtent.prototype.bbox = function() {\n if (!this._valid) return null;\n return this._bbox;\n};\n\nExtent.prototype.contains = function(ll) {\n if (!ll) return this._fastContains();\n if (!this._valid) return null;\n var lon = ll[0], lat = ll[1];\n return this._bbox[0] <= lon &&\n this._bbox[1] <= lat &&\n this._bbox[2] >= lon &&\n this._bbox[3] >= lat;\n};\n\nExtent.prototype.intersect = function(_) {\n if (!this._valid) return null;\n\n var other;\n if (_ instanceof Extent) { other = _.bbox(); } else { other = _; }\n\n return !(\n this._bbox[0] > other[2] ||\n this._bbox[2] < other[0] ||\n this._bbox[3] < other[1] ||\n this._bbox[1] > other[3]\n );\n};\n\nExtent.prototype._fastContains = function() {\n if (!this._valid) return new Function('return null;');\n var body = 'return ' +\n this._bbox[0] + '<= ll[0] &&' +\n this._bbox[1] + '<= ll[1] &&' +\n this._bbox[2] + '>= ll[0] &&' +\n this._bbox[3] + '>= ll[1]';\n return new Function('ll', body);\n};\n\nExtent.prototype.polygon = function() {\n if (!this._valid) return null;\n return {\n type: 'Polygon',\n coordinates: [\n [\n // W, S\n [this._bbox[0], this._bbox[1]],\n // E, S\n [this._bbox[2], this._bbox[1]],\n // E, N\n [this._bbox[2], this._bbox[3]],\n // W, N\n [this._bbox[0], this._bbox[3]],\n // W, S\n [this._bbox[0], this._bbox[1]]\n ]\n ]\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@mapbox/extent/index.js","// @flow\n\ntype Point = [number, number]\n\nexport function geojsonTranslate (data: any, diff: Point) {\n switch (data.geometry.type) {\n case 'Polygon':\n return {\n ...data,\n geometry: {\n type: 'Polygon',\n coordinates: data.geometry.coordinates.map(groupedCoordinates => {\n return groupedCoordinates.map(coordinate => {\n return [coordinate[0] - diff[0], coordinate[1] - diff[1]]\n })\n })\n }\n }\n\n case 'MultiPolygon':\n return {\n ...data,\n geometry: {\n type: 'MultiPolygon',\n coordinates: data.geometry.coordinates.map(groupedCoordinates => {\n return groupedCoordinates.map(coordinate => {\n return coordinate.map(c => {\n return [c[0] - diff[0], c[1] - diff[1]]\n })\n })\n })\n }\n }\n\n default:\n throw new Error(`Unexpected geojson type: ${data.geometry.type}`)\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Map/helpers.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"map\":\"dh-skogbrann-sverige-2018-map\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Map/index.css\n// module id = 33\n// module chunks = 0","// @flow @jsx h\n\n/* eslint-disable jsx-a11y/label-has-associated-control */\n/* eslint-disable jsx-a11y/label-has-for */\n\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\n\ntype Option = {\n value: string,\n label: string\n}\n\ntype Props = {\n id: string,\n label: string,\n value: string,\n options: Option[],\n disabled: boolean,\n\n onBlur?: () => void,\n onChange?: () => void\n}\n\nclass Select extends Component {\n render () {\n const { id, label, value, options, onBlur, onChange, disabled } = this.props\n\n return (\n
    \n \n \n {options.map((option, idx) => {\n return (\n \n )\n })}\n \n \n \n \n
    \n )\n }\n}\n\nexport default Select\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/Select/index.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"select\":\"dh-skogbrann-sverige-2018-select\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/Select/index.css\n// module id = 35\n// module chunks = 0","// @flow @jsx h\n\n/* eslint-disable jsx-a11y/label-has-associated-control */\n/* eslint-disable jsx-a11y/label-has-for */\n\nimport coreInput from '@nrk/core-input'\nimport { Component, h } from 'preact'\n\nimport styles from './index.css'\n\ntype Props = {\n ajax: string,\n value: string | null,\n onSelect: (value: string | null, name: string | null) => void\n}\n\ntype State = {\n q: string\n // loading: boolean,\n // focused: boolean\n}\n\nclass SuggestSearch extends Component {\n elm: HTMLDivElement\n xhr: XMLHttpRequest | null\n\n constructor (props: Props) {\n super()\n this.state = {\n q: props.value || ''\n // loading: false,\n // focused: false\n }\n }\n\n componentDidMount () {\n const inputElm: any = this.elm.firstElementChild\n\n if (!inputElm) {\n console.warn('Could not find input element')\n return\n }\n\n this.elm.addEventListener('input.filter', this.handleFilter)\n this.elm.addEventListener('input.select', this.handleSelect)\n this.elm.addEventListener('input.ajax', this.handleAjax)\n\n const coreInputOpts = {\n open: false,\n content: null,\n ajax: this.props.ajax\n }\n\n coreInput(inputElm, coreInputOpts)\n\n if (this.props.value) {\n inputElm.value = this.props.value\n }\n }\n\n handleFilter = (evt: any) => {\n evt.preventDefault()\n\n const { target } = evt\n\n if (target) {\n this.search(target.value)\n }\n }\n\n handleSelect = (evt: any) => {\n const name = evt.detail.value\n const btnEl = this.elm.querySelector(`button[value=\"${name}\"]`)\n\n if (btnEl) {\n const id = btnEl.getAttribute('data-id')\n this.props.onSelect(id || null, name)\n }\n }\n\n handleAjax = (evt: any) => {\n const items = evt.detail.responseJSON\n\n coreInput(\n evt.target,\n items.length\n ? items\n .map(\n item =>\n `
  • `\n )\n .join('')\n : '
  • '\n )\n }\n\n search (q: string) {\n this.setState({ q })\n\n if (this.xhr) {\n // console.log('abort')\n this.xhr.abort()\n }\n\n const xhr = new XMLHttpRequest()\n const url = this.props.ajax.replace('{{value}}', q)\n\n this.xhr = xhr\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n try {\n const items = JSON.parse(xhr.responseText)\n this.populate(items)\n } catch (_) {\n // ignore\n }\n this.xhr = null\n }\n }\n\n xhr.open('GET', url)\n\n xhr.send()\n }\n\n populate (items: any) {\n coreInput(\n this.elm.firstElementChild,\n items.length\n ? items\n .slice(0, 5)\n .map(\n item =>\n `
  • `\n )\n .join('')\n : '
  • '\n )\n }\n\n render () {\n return (\n
    \n \n
    (this.elm = elm)}>\n \n
    \n \n \n \n
    \n )\n }\n}\n\nexport default SuggestSearch\n\n\n\n// WEBPACK FOOTER //\n// ./src/v1/components/SuggestSearch/index.js","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.coreInput=t()}(this,function(){\"use strict\";var e=\"undefined\"!=typeof window,o=(e&&/(android)/i.test(navigator.userAgent),e&&/iPad|iPhone|iPod/.test(String(navigator.platform))),i=function(e){void 0===e&&(e=!1);try{window.addEventListener(\"test\",null,{get passive(){e=!0}})}catch(e){}return e}();function t(e,t,n,r){(void 0===r&&(r=!1),\"undefined\"==typeof window||window[e=e+\"-\"+t])||(i||\"object\"!=typeof r||(r=Boolean(r.capture)),(\"resize\"===t||\"load\"===t?window:document).addEventListener(window[e]=t,n,r))}var n={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"/\":\"/\",\"'\":\"'\"};function r(e){return String(e||\"\").replace(/[&<>\"'/]/g,function(e){return n[e]})}var a=\"prevent_recursive_dispatch_maximum_callstack\";function u(e,t,n){void 0===n&&(n={});var r,i=\"\"+a+t;if(e[i])return!0;e[i]=!0,\"function\"==typeof window.CustomEvent?r=new window.CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n}):(r=document.createEvent(\"CustomEvent\")).initCustomEvent(t,!0,!0,n);var o=e.dispatchEvent(r);return e[i]=null,o}function c(e,t){if(void 0===t&&(t=document),e){if(e.nodeType)return[e];if(\"string\"==typeof e)return[].slice.call(t.querySelectorAll(e));if(e.length)return[].slice.call(e)}return[]}var d=\"data-@nrk/core-input-1.0.4\".replace(/\\W+/g,\"-\"),l=13,f=27,s=33,p=34,v=35,m=36,b=38,g=40,y='[tabindex=\"-1\"]',w=500;function x(e,t){var r=\"object\"==typeof t?t:{content:t},i=\"string\"==typeof r.content;return c(e).map(function(e){var t=e.nextElementSibling,n=void 0===r.ajax?e.getAttribute(d):r.ajax;return e.setAttribute(d,n||\"\"),e.setAttribute(o?\"data-role\":\"role\",\"combobox\"),e.setAttribute(\"aria-autocomplete\",\"list\"),e.setAttribute(\"autocomplete\",\"off\"),i&&(t.innerHTML=r.content),c(\"a,button\",t).forEach(C),A(e,r.open),e})}function h(a){a.ctrlKey||a.altKey||a.metaKey||a.defaultPrevented||c(\"[\"+d+\"]\").forEach(function(e){var t,n,r=e.nextElementSibling,i=e===a.target||r.contains(a.target),o=\"click\"===a.type&&i&&c(y,r).filter(function(e){return e.contains(a.target)})[0];o?(t=e,n={relatedTarget:r,currentTarget:o,value:o.value||o.textContent.trim()},u(t,\"input.select\",n)&&(t.value=n.value,t.focus(),A(t,!1))):A(e,i)})}function E(e,t){var n=e.nextElementSibling,r=c(y+\":not([hidden])\",n),i=r.indexOf(document.activeElement),o=!1;t.keyCode===g?o=r[i+1]||r[0]:t.keyCode===b?o=r[i-1]||r.pop():n.contains(t.target)&&(t.keyCode===v||t.keyCode===p?o=r.pop():t.keyCode===m||t.keyCode===s?o=r[0]:t.keyCode!==l&&e.focus()),n.hasAttribute(\"hidden\")||t.keyCode!==f||t.preventDefault(),A(e,t.keyCode!==f),!1!==o&&t.preventDefault(),o&&o.focus()}function A(e,t){void 0===t&&(t=\"true\"===e.getAttribute(\"aria-expanded\")),e.nextElementSibling[t?\"removeAttribute\":\"setAttribute\"](\"hidden\",\"\"),e.setAttribute(\"aria-expanded\",t)}function C(e,t,n){e.setAttribute(\"aria-label\",e.textContent.trim()+\", \"+(t+1)+\" av \"+n.length),e.setAttribute(\"tabindex\",\"-1\")}function k(e){var t=e.getAttribute(d),n=k.req=k.req||new window.XMLHttpRequest;if(!t)return!1;clearTimeout(k.timer),n.abort(),n.onload=function(){try{n.responseJSON=JSON.parse(n.responseText)}catch(e){n.responseJSON=!1}u(e,\"input.ajax\",n)},k.timer=setTimeout(function(){e.value&&(n.open(\"GET\",t.replace(\"{{value}}\",window.encodeURIComponent(e.value)),!0),n.send())},w)}return x.escapeHTML=r,x.highlight=function(e,t){var n=t.replace(/[-/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\");return r(e).replace(new RegExp(n||\".^\",\"gi\"),\"$&\")},t(d,\"click\",h),t(d,\"focus\",h,!0),t(d,\"input\",function(e){var r,t,n=e.target;n.hasAttribute(d)&&(t={relatedTarget:(r=n).nextElementSibling},u(r,\"input.filter\",t)&&!k(r)&&c(y,r.nextElementSibling).reduce(function(e,t){var n=-1!==t.textContent.toLowerCase().indexOf(r.value.toLowerCase());return t[n?\"removeAttribute\":\"setAttribute\"](\"hidden\",\"\"),n?e.concat(t):e},[]).forEach(C))}),t(d,\"keydown\",function(e){if(!(e.ctrlKey||e.altKey||e.metaKey)){if(e.target.hasAttribute(d))return E(e.target,e);for(var t=e.target,n=void 0;t;t=t.parentElement)if((n=t.previousElementSibling)&&n.hasAttribute(d))return E(n,e)}}),x});\n//# sourceMappingURL=core-input.min.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/@nrk/core-input/core-input.min.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"suggestSearch\":\"dh-skogbrann-sverige-2018-suggestSearch\",\"suggestSearch__input\":\"dh-skogbrann-sverige-2018-suggestSearch__input\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/v1/components/SuggestSearch/index.css\n// module id = 38\n// module chunks = 0","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;n